6月25日にリリースされたEclipse Ganymedeに関して(source)、InfoQは一連のEclipseのサブプロジェクトを取り上げている。今日のトピックは、Eclipse Communication Frameworkである(サイト・英語)。InfoQは、ECFのプロジェクトのリードであり、コンサルティング会社Composent, Inc(サイト・英語).の社長であるScott Lewis氏に(source)話を聞き、ECFとECFでどのような機能が提供されるのかを確認した。
Lewis氏は、開発者に2つのことを示しながらECFを説明する。
- Eclipseを使うチームのためのリアルタイムコミュニケーションとコラボレーションの機能。ピアツーピアのファイル共有、Eclipseのビューのリモートオープン、画面キャプチャの共有、リアルタイム共同編集などである。
- コミュニケーションのためのAPIやフレームワークで、既存のプロトコル(Google Talk、 XMPP、SSH、HTTP/HTTPS、Rendevous、IRC、その他)を構築した。これにより開発者は、Equinoxベースのプラグインにコミュニケーションやメッセージを追加したり、ECFアプリケーションのカスタマイズや拡張を行ったりする。このAPIでは、ピアツーピアもクライアントサーバやマルチポイントのメッセージもサポートし、特定のタイプのコミュニケーションに力を注いでいる。ピアツーピアファイル転送、presence/IM/チャット、動的サービスディスカバリ、リモートOSGiサービス、メッセージチャネルなどである。
Ganymedeの新しい機能には、スクリーンショットを撮って連絡先に送信する機能が含まれる。その他にリアルタイム共同編集の機能もあり、テキストエディタ (Java、XMLなど) を使ってECFを経由して別のユーザと共有することができる。ローカルの開発者のエディタで変更されたことが遠隔地の開発者に同期し、その逆も可能である。
Lewis氏は、ECF APIと異なるサービスでコミュニケーションできる個々のプロバイダの間の関係を説明した。
ECFには、bittorrent、skype、xmppなどこれを達成するプロトコルよりも高いレベルのプログラミングの必要性に注目して、APIを作成する一般的な方法があります。(例えば、ファイルを転送したり、サービスを発見したり、テキストメッセージを送ったりすること) 例えば、私たちはファイル転送APIを作成しました。そのAPIでは、ファイルの送信と取得、そしてリモートファイルシステムのブラウズの機能も明らかになっています。この拡張性のある同じAPIが、bittorrent、XMPP、http、ftp、そして scp/sshによって実装されます。実装はそれぞれ「プロバイダ」として参照され、これらのプロバイダは関連するプロトコルの詳細について知っています。
ECFファイル転送APIは、p2として参照される (これは、InfoQで以前取り上げられました(参考記事・英語)) 新しいEclipse Ganymedeのインストールとアップデートの機能でファイル転送を提供するのに使われます。これによりhttp/https以外のファイル転送プロトコルは、Eclipse インストール/アップデートで使われます。
しかしながら、ECFはファイル転送に関するものだけではない。一般的なDiscovery APIは、SLP(source) (jSLP経由(source)) や Zeroconf (source)(JmDNS経由(source))などの発見プロトコル上に抽象化を提供する。さらに、ECFはリモートコミュニケーション(同期、または非同期)を可能にするプロバイダの一環としてR-OSGiも(source)発表し、OSGi Enterprise Expert Groupに参加している(サイト・英語)。
詳細については、ECFのオンラインセミナーを見たり(サイト・英語)、ポッドキャストを聴いたりしよう(サイト・英語)。ポッドキャストは、Eclipseに統合されたSkyPEやJingleで録音されている。コミュニティ駆動プロジェクトとして、ECFは常に貢献者を探している(source)。
最後に、ECFがどのようにE4に統合されるか、または、影響されるかと尋ねられて、Lewis氏は言った。
原文はこちらです:Real-Time Shared Editingの作業で、私たちはモデリング (例えば、EMFやDOM、または他のモデル) で、配布とプロセス間通信 (ECF) を統合する道を進み始めました。リアルタイム共同編集で起こった本当のことは、ドキュメントモデルが複数のシステムを複製し、変更がリアルタイムで配布 (ECFを経由して) されることです。モデルを配布し、複数の人達がそのモデルを編集/操作できるようになるやいなや、複製されたデータの同期化の難しさを扱わなければなりません。同期できない場合はその時点で、ユーザーにとって、そのソフトウェアは効果的に動かないことになります。
サーバでEclipse E4に接続するウェブクライアントなどの複数のプロセスの間でモデルを配布したり操作したりすることに注目しているE4の各部分に関して、ECFが役に立つことができる、または役に立つであろうことを期待します。私たちは、ECFと構築された非同期メッセージの構造がこれらの分野でE4にかなり役立つだろうという望みを抱いています。ECFは、配布されたアプリケーションを構築し、配布された状態を同期させておくのに使うことができるライトウェイトなAPI群を提供します。