P2P for Java/JXTA(8/6 - 8/10)


・ ネットワークの拡大とそのブロードバンド化は、ネットワーク利用の新しいスタイルを 産み出そうとしています。新しい動きの一つは、サーバ/クライアントというネットワーク上の 階層を踏み超えて、技術的には、フラットなPeer to Peerのネットワークとして、ネットワ ークを 再構築しようというトレンドです。技術面でのこうした動きが、社会的に、Person to Personの ネットワークとして意識され始めたのも新しい傾向です。コースでは、これらを「P2P」として とらえて、その基礎をJavaで学びます。

E 編集者への手紙 --- JXTAについて、雑誌編集者とのメールの一部です。

丸山です。

P2PとJavaとは、直接の関係はないし、JXTA自身も開発言語をJavaに絞っている 訳ではありません。そこは、Javaのオブジェクトの共有を目指したJiniとは違います。 JXTAの頭文字の'J'は、Javaの'J'ではありません。その意味では、貴誌で、 JXTAを扱うのには、工夫が必要なのかもしれません。

P2PとJXTAは、切っても切れない関係にあります。P2Pの御三家は、 Napster,Gnutella,Freenetでしょうが、JXTAは、これらの新世代だと 考えればいいかもしれません。JXTA = JINI + SOAP + Gnutellaといったほうが もっと背景は分かりやすいかもしれません。(「背景」に過ぎないのですが)

もっと大きな背景は、コンピュータのパワーがあがっていることと、ネットワークの ブロードバンド化があります。机の上のPCは、値段は10万台でも、10数年前の スーパーコンピュータのパワーを持っています。ネットワークも、WDMの登場で、 天井知らずの高速ネットワークが目の前に現われ始めています。それにも関わらず、 ネットワーク・プログラミングは、この10数年間、WWWを含めて、 「サーバ・クライアント」の図式から抜け出せません。

すべてのノードが、高速のネットワークに常時接続し、すべてのノードがクライアント であると同時にサーバであるという、フラットなネットワークの技術が求められています。 突破口はNapsterだったので、様々な物議をかもしましたが、Peer to Peerは、 CPUパワーの増大とネットワークの高速化がもたらす、技術的必然です。

JXTAのソースを読んで感激したことは、僕らは、みなUNIXで育った世代なのですが、 UNIXの、入出力デバイスを含めて、全てのリソースをファイルとして管理する思想や、 入出力の標準化とリダイレクトによって複数のプロセスを結合するアイデア、 様々なプロセスを呼び出し結合するユーザインターフェースとしてのshellの提供など、 20数年前に、UNIXが、単一のCPUで行なおうとしたことを、そして、そのスマートさに 僕らは熱狂したのですが、それと同じ事を、JXTAは、グローバルなネットワークの上で 実現しようとしていることです。

同時に、Napsterが一騒動を起こしたように、P2Pは、人と人をつなぐ、Person to Person のネットワークの構築を目指すものでもあります。

Bill Joyのプロジェクトは、面白いですね。