歴史
ACE(エディター)
ACE ( ACE-共同編集者 )は、プラットフォームに依存しない、リアルタイムの共同編集者です。これは、地理的に分散した複数のユーザーが共有テキストドキュメントを同時に表示および編集できるようにするリアルタイムの共同編集システムです。
前書き
ACEは、コピー/貼り付けやロード/保存などの標準機能を備えたシンプルなテキストエディターです。複数のドキュメントを同時に編集できます。さらに、ACEは、通信ネットワーク(LAN、インターネット)で接続された異なるコンピューター上の他のユーザーとドキュメントを共有できます。 ACEはまた、ローカルエリアネットワークでユーザーとその共有ドキュメントを自動的に検出します。ユーザーは、検出された共有ドキュメントへの参加を選択できます。これらすべてのために、それはzero-confネットワーキングに基づいているため、設定は必要ありません。
ユーザーが共有ドキュメントに参加すると、すべての参加者が仮想チームとして同時にドキュメントを自由に編集できます。いわゆる認識情報は、不必要な競合(つまり、2人のユーザーが同時に編集し、テキストの場所)を回避するのに役立ちます。認識情報には、カーソルと、各ユーザーの色でマークされた他のユーザーの現在選択されているテキストが含まれます。
アプリケーションの中心は、操作変換の革新的な概念に基づいた同時実行制御アルゴリズムです。これにより、複数のユーザーがドキュメントをロックなしで編集できます。編集の制約が課せられず、すべての競合が自動的に解決されます。このアルゴリズムは、リアルタイムの共同編集システムの設計と実装における最も重要な課題の1つ、つまり一貫性の維持を克服します。これは、静止時(つまり、メッセージが送信されていないとき)に、すべての参加者で共有ドキュメントが同一になるようにするためです。
ACEは、BEEP(RFC 3080)やzero-confネットワーキングなどのオープンテクノロジーに基づいています。これにより、ACEのパブリックプロトコルを理解するさまざまなアプリケーションと通信する可能性が開かれます。
ACEは、Windows、Mac OS X、Linuxなどのすべての主要なオペレーティングシステムで実行され、フリーソフトウェアです。
ユースケースの例
図に示すように、ビル、スティーブ、およびスコットという名前の3人の参加者との共同編集セッションを検討してください。セッションに参加していないサムという名前の4番目のユーザーもいます。ユーザーが共同編集するドキュメントはCollaboration.txtです。ユーザーScottは、その所有者および発行者です。ユーザーSteveとBillはMicrosoft Windows OSで作業しますが、ScottはMac OS XとSam Linux OSを使用します。青色は常に、ACEインスタンスのローカルユーザーによって書き込まれたテキストを示していることに注意してください。参加者に一致する色は、GUIの参加者ビューに表示されます。
使用法
ACEの使用方法に関するいくつかの例のリストを次に示します。
- グループブレーンストーミング
- ソースコード開発(XP)
- 一括メモ取り
- 一緒にテキストを書く(電子メール、手紙、日記など)
- 教育目的
最後のポイントは、共同編集システムの潜在的な可能性を示しています。2〜3人の学生のグループが一緒にエッセイを書くことができます。一方で、彼らはお互いに書き言葉の使い方を教え、他方では、コンピューター上のハンズオンアプリケーションを使用して一緒に楽しんで、コンピューターとの接触の恐怖をなくすことができます。今日の教育。
技術の背景
ACEなどのリアルタイムの共同編集システムにより、複数のユーザーが地理的に分散した複数のサイトから同じドキュメントを同時に表示および編集できます。サイトは通信ネットワークで接続されています。このようなシステムでは、次の要件が確認されています。
- リアルタイム :ローカルユーザーアクションへの応答は迅速で、理想的にはシングルユーザーエディターと同じくらい迅速である必要があり、リモートユーザーアクションを反映するための待機時間は短いです(外部通信の待機時間によってのみ決定されます)。
- 分散 :協力するユーザーは、通信ネットワークで接続された異なるマシンに存在し、待ち時間は非決定的です。
- 制約なし :複数のユーザー間で自由で自然な情報の流れを促進するために、複数のユーザーがドキュメントの任意の部分をいつでも同時に独立して編集できます。
リアルタイムの共同編集システムはn個のインスタンスで構成され、各インスタンスは異なるユーザーによって実行されます。すべてのインスタンスはネットワークで接続されています。リアルタイムの共同編集システムの設計と実装における最も重要な課題の1つは、さまざまなドキュメントレプリカ(各サイトに1つ)間の一貫性の維持です。協調編集システムは、常に次のプロパティを維持している場合、一貫していると言われます。
- 収束 :同じ操作セット(たとえば、文字の挿入/削除など)がすべてのサイトで実行され、共有ドキュメントのすべてのコピー(レプリカとも呼ばれる)が同一であることを保証します。つまり、このプロパティは、共同編集セッションの終了時に最終結果の一貫性を保証します。
- 因果関係の保存 : OaとObのオペレーションのペアで、 Oa- > Ob (つまり、 ObがOaに依存している)の場合、 OaはすべてのサイトでObの前に実行されます。つまり、このプロパティは、協調編集セッション中に依存操作のすべてのサイトで実行順序の一貫性を保証します。
- 意図-保存 :任意の動作Oの場合、すべてのサイトでOの実行の効果がOの意図、および独立した操作の効果を変更しないOの実行の効果と同様です。つまり、このプロパティは、リモートサイトでの操作の実行が、生成時にローカルサイトでのこの操作の実行と同じ効果を達成し、独立した操作の実行効果が互いに干渉しないことを保証します。
整合性制御を実現する1つのソリューションは、 Operational Transformation (OT)アルゴリズムによって提供されます。 OTアルゴリズムのアプローチは、2つの主要なコンポーネントで構成されています。
- 操作の受信、ブロードキャスト、および実行を担当する統合アルゴリズム 。ドキュメントのレプリカとアプリケーションの種類には依存しません。
- 変換関数は、2つの同時操作をマージします。アプリケーションに依存します。たとえば、テキストエディターには、ホワイトボードアプリケーションとは異なる操作があります。
一貫性の維持に関する理論は、短いCSCWのためのComputer Supported Cooperative Workと呼ばれる研究分野に由来します。