稚内北星学園大学
Javaってなに?

TOPページへ

WAKHOK Newsletter

連載最新号


安藤友晴
情報メディア学部講師。担当科目:データベース論、ソフトウェア特論など。

J2EEとその関連分野に関心を持つ。

Javaプログラミングの講義を担当。学生にはプログラミングの楽しさを伝えたいと思っている。







過去の連載
最新号

第1回
第2回
第3回
第4回
第5回
第6回


稚内北星学園大学
〒097-0013
北海道稚内市若葉台2290番28
Tel:0162-32-7511
Fax:0162-32-7500
フリーダイアル :
0120-311014
E-mail : www-admin@wakhok.ac.jp

      第7回 JXTAというP2P技術       

 みなさんは、 「P2P」というインターネットで利用されている技術をご存知 でしょうか?
 僕は9月14日に、日本ソフトウェア科学会のチュートリアル「P2Pコンピュー ティング −基盤技術と社会的側面−」に参加してきました。 このチュートリ アルは、 P2Pについて技術的な点と社会的な点の両方から迫っていこう、とい うものです。
 今回の「あさめしJava」では、このP2Pについてご紹介しましょう。

●P2Pとは何か

インターネットでは通常、あるサービスを提供する「サーバ」と そのサービスを利用する「クライアント」が通信を行います。 例えば稚内北星学園大学のWebページを見る場合、 稚内北星学園大学のWebページを提供する「Webサーバ」と、 そのWebページを見るためのクライアントである「Webブラウザ」が 通信を行うことで、Webページを見ることができるのです。 こうした通信方法のことを「サーバ・クライアントモデル」と言います。

これに対してP2Pでは、サーバとクライアントの区別はありません。 「P2P」は正確には「Peer to Peer」と言われます。 Peerというものは、だいたい一台のコンピュータだと思って大丈夫です。 P2Pでは、Peer と Peer が対等の役割で通信を行います。

●P2Pはアブナイ?

こうしたP2Pの特徴を生かしたソフトウェアに、 個人が所有しているファイルを 別の人と共有したり交換したりするタイプのものがあります。

このタイプのソフトウェアでは、 不特定多数の人にファイルが行き渡ってしまうため、 音楽CDから変換したMP3ファイルなど 再配布が禁じられているようなモノを共有してしまい、 法的な責任を問われるケースもあります。

ファイル共有ソフト「Winny」を使って他者の著作権を侵害したとして 逮捕された人がいます。 また、 今年の5月にはWinnyの開発者が著作権法違反を幇助したとして逮捕されました。 アメリカでも以前「Napster」というP2Pを使ったファイル共有ソフトウェアが 著作権上問題があるとされ、公開が停止されました。

Winnyなどを使って他人の著作権を侵害するのはもちろんいけないことです。 ただ、Winnyの開発者が逮捕されたことについては、 その是非をめぐってさまざまな意見が出されていることは指摘しておきます。

こうしたことから、P2Pというと「アブナイ」とか「違法だ」といったような ネガティブなイメージを持つ人が多いようです。

●P2Pで何ができるか

では、P2Pというのは、良くない技術なのでしょうか? そんなことはありません。

P2Pの「PeerとPeerが直接通信する」という特徴は、 いまのインターネットをさらに使いやすくする可能性を持っています。

「サーバ・クライアントモデル」では、どうしてもサーバに負荷が 集中しがちです。P2Pでは、サーバとクライアントの区別がないため、 サーバにかかる負荷をそれぞれのPeerで分け合うことができます。

また、PeerとPeerが直接通信を行う特徴を、 人と人が直接コミュニケーションする様子になぞらえ、 コミュニケーションツールとしてP2Pを利用する例も増えています。 例えば、コンピュータを使って電話をする "Skype" というソフトウェアでは、 P2Pが使われています。

さらに、ひとつの大規模な計算を複数のコンピュータに分担させてその処理結果をまとめる "Grid Computing" という分野でも、P2P が使われるケースがあります。

●JXTA

JXTA (「じゃくすた」と呼びます)は、 P2Pに必要なプロトコル(通信の手順)と、そのプロトコルを実現するためのライブラリを提供しています。

JXTAは BSD Unix で著名な (当時) Sun Microsystems の Bill Joy 氏を中心としたプロジェクトで開発され、2001年に発表されました。それ以来、オープンソースの形式で開発が進められています。プログラミング言語としてはJavaが中心ですが、CやRuby, Python といった言語でも JXTA を利用できます。

JXTAでは "Network Overlay" という、仮想的なネットワークを利用できます。 ある目的を実現する Peer 同士がファイアウォールを超えて グループを形成することができ、互いに通信できるのです。

僕は2001年にJXTAが出たばかりのころ、稚内北星の丸山学長のサマースクールで JXTAプログラミングを体験しました。 それ以来、JXTAプログラミングからはご無沙汰していたのですが、 冒頭に述べた「P2Pコンピューティング −基盤技術と社会的側面−」への参加がきっかけて、再び勉強をはじめました。 JXTAは構造がきれいで、プログラミングがとてもおもしろいです!

次回では、この楽しさをご紹介できればな〜、と思っています。


Copyright (C) 2004 Wakkanai Hokusei Gakuen College. All rights reserved.