今回もまた、予定の更新日から大幅に遅れてしまったことをまずお詫びしたい。で、今回のテーマはJXTAである。以前にもJXTAに関しては紹介したことがあるが、米国からJXTAの担当者が来日した際にインタビューを行なうことができたので、改めてJXTAの基本的な概要を語っていただいた。
8月上旬に、米国からMatt Reid氏とLi Gong博士が来日した際にお二人にインタビューする機会があったので、今回はその時の内容をお伝えしたい。Matt Reid氏には主にビジネス面から、Li Gong博士には技術面からJXTAについて説明いただいたのだが、本稿ではお二人の発言を特に区別はしないのでご了承いただきたい。
![]() | Matt Reid Business Development Group Manager, Project Juxtapose, Sun Microsystems |
---|
![]() | Li Gong, Ph.D.Director of Engineering, Peer-to-Peer Networking, Sun Microsystems 博士は、jxta.orgで公開されているドキュメント“Project JXTA: A Technology Overview”の執筆者でもある |
---|
JXTAプロジェクトを開始したわけ
現在のネットワーク環境では、より多くのユーザー/より多くのデバイスが接続されてきている。そして、この1年ほどで、Napster、Gnutella、GrooveといったさまざまなP2Pアプリケーションが登場してきた。Sunでは、Bill JoyとMike Claryがこうした「より分散的なコンピューティングモデル」の必要性と可能性について研究を始めた。
ごく初期の段階では、特定のビジネスユニットに属さない、独立したごく小さな研究チームが組織された。このチームは最初にP2P関連業界の企業やエバンジェリストとの対話を行ない、その結果みんなが同じようなアーキテクチャの土台を作成していること、その土台は作成するのが面倒であること、そして、この土台自体はたいした利益をもたらさないということを見出した。
P2P関連企業は、それぞれ独自のプロトコルスタックを作成していた。主な問題点は2点あった。まず、基盤となる低レベルのネットワークソフトウェアの部分で、これは作成に手間がかかる一方で企業の利益には結びつきにくい。もう1点は、異なるP2Pアプリケーション間での通信を実現するための適切な手段がないことだ。そこで、P2Pアプリケーションが必要とする機能をまとめた汎用的なプラットフォームを作成する必要があり、かつここにビジネスチャンスがあると考えられた。確かにSunにとっても技術的に困難な挑戦課題ではあったが、社内にはネットワーキングの専門家が多数存在するし、過去の経験と実績に照らせば決して解決できないものではないと考えた。
JXTAの基本アーキテクチャ
JXTAのアーキテクチャには、核となる4つの要素が導入された。まずは、Pier Groupである。Pier Groupは、あるPierがほかのPierを検索する場合に詳細な情報を記述するために使われる。次に、Pier Pipeがある。Pier PipeはピアまたはPier Groupが相互に通信する際に利用される通信メカニズムである。3番目がPier Monitoringである。この機能は、Pierの接続状況やコンテンツへのアクセス状況を把握して、この情報をアプリケーションやサービスに通知するために利用される。ピアへの課金といったモデルを考える場合には、この機能がとても重要な意味を持つ。最後に、セキュリティの機能がある。JXTAでは特定のセキュリティポリシーを定める代わりに、セキュリティ機構を“プラグイン”するためのセキュリティフレームワークを用意することにした。そして、これらの機能にアクセスし、利用するために定められたプロトコル群がJXTAの中核(JXTA Core)となる。プロトコルを定義することで、Java環境でも非Java環境でも、また下層でどのようなネットワークトランスポートが利用されていたとしてもJXTAの利用が可能になる。
JXTA Coreのレイヤの上位にはJXTA Servicesレイヤが載る。ここには、P2Pアプリケーションで利用される機能が再利用可能なサービスとして実装される。この開発は、基本的にはSunではなくパートナーが担当することを想定している。予想される機能としては、分散検索システム、ファイル共有、ファイルのストリーミング転送、セキュリティサービスなどが挙げられる。
最上位のレイヤは、JXTAアプリケーションである。JXTAアプリケーションとしてもっとも興味深いのは、CDN(Contents Delivery Network)である。JavaOneの際に公開されたデモンストレーションでも、パートナーが作成したJXTAベースのストリーミングビデオ配信アプリケーションなどを紹介している。このほか、コミュニケーションやコラボレーションのツールも有望だろう。ここでは、ホワイトボードの共有やアプリケーションの共有といった機能が考えられる。具体例として、社内の承認回覧プロセスを効率化するためのアプリケーションを開発しているパートナーもすでにある。
近い将来には、分散ストレージの分野が重要となると予想されるが、この分野でもJXTAの利用例が出てくるものと予想される。さらに、分散処理に関してもすでに実装例が出てきているが、実のところ現状の実装ではまだP2Pというよりはクライアント/サーバモデルのアーキテクチャに基づくものに見える、という段階である。
JXTAの開発手法
プロジェクトのごく初期の段階、P2P関連企業との協力体制を構築する過程で、JXTAのオープンソースプロジェクト化が決定された。P2Pに関わるさまざまな問題を解決するために、Sunの社内だけではなく、広く社外の技術者の協力を得られるという点で、オープンソースはJXTAにとって大変重要な要素である。
JXTAでは、ソースコード、ドキュメント、サンプルアプリケーションなど、すべての開発成果がjxta.orgで公開される。ライセンスに関しては、Apacheのモデルを採用した。4月末に公開して以来、7月末の段階でユーザー登録数は5000人を越えている。一方、ダウンロード件数は19万に上る。
コミュニティの中では、すでに新しいプロジェクトもいくつか開始されている。中でも興味深いのは、JXTAをC言語で実装しようという試みと、JXTAをJ2ME環境に対応させるjxmeというプロジェクトだ。
SunがJXTAプロジェクトで目指しているのは、P2Pの分野への参入障壁を取り除き、多くの開発者がP2Pアプリケーションの開発に取り組めるような環境を用意することである。これによって、さまざまな革新的なアプリケーションがネットワークコンピューティングの分野で実現されることを期待している。
渡邉利和
