この記事には複数の問題があります。改善にご協力いただくか、トークページでこれらの問題について議論してください。(これらのメッセージを削除する方法とタイミングについてはこちらをご覧ください)
|
| エース | |
|---|---|
![]() | |
| 開発者 | ピロン、ラス、ズビンデン |
| 安定版リリース | M4 [1]
/ 2006年3月7日 |
| オペレーティング·システム | Windows、Mac OS X、Linux |
| プラットフォーム | ジャワ |
| タイプ | テキストエディタ |
| ライセンス | GPL-2.0以降 |
| Webサイト | sourceforge.net/projects/ace/ |
ACE(ACE – 共同エディタ)は、プラットフォームに依存しない共同リアルタイムエディタです。地理的に離れた複数のユーザーが同時に 共有テキスト文書を閲覧・編集できる、リアルタイム協調編集システムです。
導入
ACEは、コピー/ペーストや読み込み/保存などの標準機能を備えたシンプルなテキストエディタです。複数のドキュメントを同時に編集できます。さらに、ACEは通信ネットワーク(LAN、インターネット)で接続された異なるコンピュータ上の他のユーザーとドキュメントを共有できます。ACEはローカルエリアネットワーク(LAN)内のユーザーと共有ドキュメントを自動的に検出します。ユーザーは、検出された共有ドキュメントに参加できます。ACEはゼロ構成ネットワークに基づいているため、設定は一切不要です。
ユーザーが共有ドキュメントに参加すると、仮想チームとして参加者全員と同時にドキュメントを自由に編集できます。いわゆる「認識情報」は、不要な競合(2人のユーザーが同時に編集している場合やテキストの位置が一致していない場合など)を回避するのに役立ちます。認識情報には、他のユーザーが現在選択しているカーソルとテキストが、それぞれのユーザーの色でマークされて表示されます。
このアプリケーションの中核となるのは、革新的なオペレーション変換コンセプトに基づく同時実行制御アルゴリズムです。このアルゴリズムにより、複数のユーザーによるロックフリーなドキュメント編集が可能になります。編集上の制約は一切なく、すべての競合を自動的に解決します。このアルゴリズムは、リアルタイム共同編集システムの設計と実装における最も重要な課題の一つである一貫性の維持を克服します。つまり、静止時(つまり、メッセージが送信されていない時)に、共有ドキュメントがすべての参加者にとって同一であることを保証するのです。
ACEは、 BEEP (RFC 3080)やゼロコンフィグレーション・ネットワーキングなどのオープンテクノロジーを基盤としています。これにより、ACEのパブリックプロトコルを理解する異なるアプリケーションとの通信が可能になります。
ACEはWindows、Mac OS X、Linuxなどの主要なオペレーティングシステムで動作し、フリーソフトウェアです。[2]
使用例
図に示すように、Bill、Steve、Scottという3人の参加者による共同編集セッションを考えてみましょう。セッションには参加していないSamという4人目のユーザーもいます。ユーザーが共同編集するドキュメントはCollaboration.txtです。ユーザーScottがその所有者兼発行者です。ユーザーSteveとBillはMicrosoft Windows OSで作業しているのに対し、ScottはMac OS Xを、SamはLinux OSを使用していることに注意してください。青色は常にACEインスタンスのローカルユーザーが書き込んだテキストを示すことに注意してください。参加者に対応する色は、GUIの参加者ビューに表示されます。
使用法
ACE の使用方法の例をいくつか示したリストを以下に示します。
最後の点は、協調編集システムのさらなる可能性を示しています。2~3人の生徒がグループで一緒にエッセイを書くことができます。一方では、互いに書き言葉の使い方を教え合い、他方では、コンピュータ上の実践的なアプリケーションを使って一緒に楽しみながら学ぶことができます。こうすることで、今日の教育に不可欠なコンピュータとの接触に対する恐怖心を払拭することができます。
技術的背景
ACEのようなリアルタイム協調編集システムでは、地理的に離れた複数の拠点から複数のユーザーが同時に同じ文書を閲覧・編集できます。拠点は通信ネットワークで接続されています。このようなシステムには、以下の要件が求められます。
- リアルタイム: ローカル ユーザーの操作に対する応答は迅速である必要があり、理想的には単一のユーザー エディターと同じくらい速く、リモート ユーザーの操作を反映するための遅延は低い必要があります (外部通信の遅延のみによって決まります)。
- 分散型: 協力するユーザーは、非決定論的な遅延を持つ通信ネットワークによって接続された異なるマシン上に存在する場合があります。
- 制約なし: 複数のユーザー間での自由で自然な情報の流れを促進するために、複数のユーザーがいつでもドキュメントの任意の部分を同時に独立して編集できます。
リアルタイム協調編集システムはn個のインスタンスで構成され、各インスタンスは異なるユーザーによって実行されます。すべてのインスタンスはネットワークで接続されています。リアルタイム協調編集システムの設計と実装における最も重要な課題の一つは、異なるドキュメントレプリカ(各サイトに1つずつ)間の一貫性の維持です。協調編集システムが一貫性を持つとされるのは、以下の特性が常に維持されている場合です。
- 収束性:すべてのサイトで同じ操作セット(例えば、文字の挿入/削除など)が実行された場合、共有ドキュメントのすべてのコピー(レプリカとも呼ばれる)が同一であることを保証します。つまり、この特性により、共同編集セッションの終了時に最終結果の一貫性が確保されます。
- 因果関係の保存:任意の操作OaとObのペアについて、Oa -> Ob(つまり、 ObがOaに依存している)の場合、すべてのサイトにおいてOa がObより先に実行されます。つまり、この特性により、協調編集セッション中、依存する操作のすべてのサイトにおける実行順序の一貫性が保証されます。
- 意図保存性:任意の操作Oについて、すべてのサイトでO を実行した場合の効果はOの意図と同じであり、Oの実行効果は独立した操作の効果に影響を与えません。つまり、この特性は、ある操作をリモートサイトで実行した場合、その操作が生成された時点でローカルサイトで実行した場合と同じ効果が得られ、独立した操作の実行効果が互いに干渉しないことを保証します。
一貫性制御を実現するソリューションの一つとして、オペレーショナル・トランスフォーメーション(OT)アルゴリズムが挙げられます。OTアルゴリズムは、主に以下の2つの要素から構成されます。
- 受信、ブロードキャスト、および操作の実行を担う統合アルゴリズム。ドキュメントレプリカの種類やアプリケーションに依存しません。
- 変換関数は、2つの同時操作をマージする役割を担います。これはアプリケーションに依存します。例えば、テキストエディタとホワイトボードアプリケーションでは操作が異なります。
一貫性維持に関する理論は、 Computer Supported Cooperative Work (略してCSCW)と呼ばれる研究分野に由来しています。
参照
参考文献
- ^ 「ACE - 共同エディタコード」。
- ^ 「Windows vs MacOS vs Linux – オペレーティングシステムハンドブック」. freeCodeCamp.org . 2022年4月12日. 2023年1月25日閲覧。
外部リンク
- SourceForgeのACE(編集者)
