コラム / 今週のキーワード
Jxta 〜Sun MicrosystemsのP2Pプロジェクト〜
2001年3月9日
2月14〜16日に米国San Franciscoで開催された“O'Reilly Peer-to-Peer Conference”の15日朝に行なわれた基調講演で、Sun Microsystemsの共同創立者でありChief ScientistでもあるBill Joy氏が“From UNIX to Java to XML to Peer-to-Peer”と題した講演を行なった。その中で、“Jxta”と呼ばれるプロジェクトに言及したことで、その存在が明らかになったと報道されている。JxtaはProject Juxtapose(Juxtaposeは「並列する」といった意味)で研究中のフレームワークで、正式発表は4月の予定だったという。つまり、現時点では公式に発表されたものではなく、あくまでもBill Joy氏が個人的に語っただけ、という位置づけである。実際、本稿執筆時点ではSun Microsystemsから公式なアナウンスや解説ドキュメントの公開などは行なわれていない。
Jxtaとは何か
Jxtaに関しては、正式発表前ということもあり、その技術的詳細に関してはほとんど情報がない。Bill Joyの発言内容を報道した各種ニュース記事がわずかな情報源としてある程度だ。
報道されている講演内容を見ると、Jxtaはそれ自体がP2Pアプリケーションというわけではなく、「P2Pアプリケーションを作成する際の土台を提供するフレームワーク」と位置づけられるようだ。
P2Pアプリケーションとしては、現在「Napstar」や「Gnutella」がよく知られている。これらはファイル交換機能を核としたアプリケーションだ。ファイル交換を実行する部分だけを取り出してみれば、P2Pといってもクライアント/サーバモデルのアプリケーションと大きな差はなく、単に1台のマシン上でクライアントとサーバが同時に動いているだけという見方も可能だ。しかし、NapstarやGnutellaの興味深い点は、相互に同じアプリケーションが動作しているノードを見つけだしてネットワークを構築し、その中で動的に目的とするファイルの所在を見つけだす機能を備えている点だ。この意味で、P2Pアプリケーションのポイントは「ダイナミックな情報検索手段の実装」と言えるかもしれない。
Jxtaでは、この情報検索に関する共通機能や、セキュリティ関連の機能が提供されるようだ。Jxtaは「UNIXシステムにおけるパイプ(“|”)のように単純で標準化された通信メカニズム」を提供し、さらに通信をモニタし、制御する機能を備えるらしい。
どうやら、JxtaはP2Pアプリケーションに対して標準インターフェイスを提供し、インターネット全域に散在するリソースに前提知識なしにアクセスし、利用するための基本的な枠組みを提供することを狙っているものと想像される。
Sun ONEとの関連
Sunは、「Sun Open Network Environment(Sun ONE)」と呼ばれるWebサービス構想を明らかにしている。ここでは、インターネット上に多数用意された「機能コンポーネント」を統合し、組み合わせてより洗練された「サービス」を実現する、というコンセプトが語られている。Jxtaという形で存在が明らかになったSunのP2Pへの取り組みは、もしかしたらWebサービスの検索に利用されることを意図したものかもしれない。
P2Pで利用される検索手法は、現在のWebサーバを探す方法とは異なるモデルを採用しているといえる。Webサーバは、基本的にはWeb以外の手段で提供されたURLを頼りに、DNS検索を介してアクセスされる。つまり、サーバを見つけだす手がかりは事前に与えられており、かつサーバの場所は固定されているのである。もちろん、URLを知らない場合には検索エンジン等を活用してWebサーバを見つけだすことができるが、実際にはこれもある程度静的な情報である。というのも、検索エンジンは問い合わせを受けるたびにインターネット全域を探し回っているわけではなく、事前に作成したデータベースを調べているだけのことが多いからだ。つまり、Webサーバはある程度静的な存在であることが前提となっているのである。
一方、P2Pアプリケーションでは、情報提供主体となるのは固定されたサーバではないため、必要となった時点ではインターネット上に存在しないかもしれないし、まったく新しい情報提供ノードが多数出現しているかもしれない。従って、インターネット全域とは言わないまでも、ある程度の範囲で毎回動的に情報検索をする手法が採られている。
こうした手法で情報を探し出すことは、ダイヤルアップ接続を主体とした従来の個人ユーザーのインターネット利用では有効活用しにくい。しかし、遅れていると言われている日本のインターネット接続環境も、最近ではCATVネットワークやADSLサービスなどが普及し始め、大容量の常時接続が一般化しつつある。こうしたネットワークインフラを前提とすれば、ダイナミックに出現/消滅を繰り返す情報提供ノードを的確に探し出し、必要に応じて通信を行なうことが可能となるだろう。Jxtaは、こうしたダイナミックなリソース検索の手法を提供することになるかもしれない。
Sun ONEは、現在個別に提供されているWebアプリケーションをコンポーネント化し、このコンポーネントをさらに組み合わせて洗練された「サービス」にまとめ上げる、という考え方に基づいている。このとき、インターネット上に散在するコンポーネントはどうやって見つけだせばよいのだろうか。実は、Sun ONEでは詳細なアトリビュートを格納したディレクトリサーバを使ってサービスの検索を行なうモデルが提案されている。これは、従来のURLからWebサーバを見つけだすモデルに近い。しかし、これを補完する形でその場その場でダイナミックにサービスを探し出す手法も平行して使われるかもしれない。このときに、Jxtaがその基礎となるのではないだろうか。
もちろん、このほかにも、現在のNapstarやGnutellaに相当するアプリケーションを構築するためにも使えるはずだ。その場合、用意されたセキュリティ機能などを活用することで、企業がビジネス目的で利用可能な、信頼できる安全なサービスを実現できるように考えられているのは間違いないだろう。現在のNapstarやGnutellaがなにやら怪しげでイリーガルな雰囲気をまとっているのに対し、Jxtaではそうした「不正なデータ交換」というニュアンスを排除した「公明正大なP2Pアプリケーション」の構築のための土台を提供するはずだ。
(渡邉利和 toshi-w@tt.rim.or.jp)
|