P2P Memo For Beginner

P2P & JXTA Memo
For Beginners
Hosei Graduation School
ITPC 02R3315
Katsuhiro Chiba
1
P2Pとは
各デバイス(PC・PDA・携帯電話など)が、
それぞれ同等に通信し合う仕組みや技術。
 このP2Pを利用することで、ピア同士が
様々なリソースやサービスを提供しあうことが
可能になる。
*「ピア」=「各デバイス」

2
P2Pの特徴
1、 中央で一括処理を行うサーバを必要としない。
(サーバを排除するわけではない)
2、 サーバ構築がないため、運営コストがかからず、
メンテナンスも必要としない。
3、 集中的な負荷がかからないため、
ネットワークの帯域幅を効率的に利用できる。
4、 NATやファイアウォールといった、
ネットワークの構成に影響されることがない。
3
P2Pの種類(1)

ハイブリット型
 サーバが存在するP2P。
 サーバはクライアントの所在情報のみを管理し、
共有されるリソースはクライアント側で保有する。
 サーバへは所在情報の問い合わせを行い、
リソースの提供は、クライアント間で行われる。
 例:Napster、WinMX
4
P2Pの種類(2)

ピュア型
 クライアント、サーバといった役割分担が
存在せず、ピア(クライアント)のみで動作する。
 サーバが存在しないため、自己増殖的に、
そして自発的にネットワークを形成することが
可能である。
 ピア間でメッセージの受け渡しは、ルーティング
することによって成立している。(マルチホップ)
 例:Gnutella、Winny
5
P2Pの利用事例

コラボレーション
>複数ユーザの強調活動を支援する

分散処理
>大規模なデータ処理を小さな単位に分割し、
>それらをネットワーク上のPCに処理させる

ストレージ
>ファイル共有。
6
JXTAの特徴


JXTAとは、Sunによって作られたP2Pプロトコル。
主なコンセプト
 相互運用性
→相互通信のための様々なサービスを提供する。
 プラットフォーム非依存性
→プログラミング言語、OS、通信プロトコル、
ハードウェアのどれにも依存しない。
 遍在性
→携帯電話、PC、PDAなどのデバイスにも実装可能。
7
JXTAのアーキテクチャ(1)
8
JXTAのアーキテクチャ(2)

JXTAで可能なこと(*アーキテクチャ図参照)
 ファイアウォールやNATを越えて、
動的にピアを探し出す
 簡単にデータ、ドキュメントを共有する。
 他のピアのリソースを探し出す
 サービスを提供するグループの作成する。
 他のピアの状態を監視する。
 他のピアとセキュアな通信する。
9
JXTAの構成要素(1)
ピア
 ピアグループ
 サービス
 パイプ
 アドバタイズメント
 ID

10
JXTAの構成要素(2)

ピア



JXTAネットワークを形成する最小単位。
ピアは独立して存在し、他のピアの動作に関係なく、
非同期で動作する。
ピアの種類



マイクロピア・・・携帯電話やPDAなどのスペックが限られたピア。
シンプルピア・・・パソコンやサーバなどの一般的なピア。
スーパーピア・・・高スペックのパソコンやアドレスを持ったサーバなど
特別な機能を持つピア。下記の2種類がある。


ランデブーピア・・・ピア同士の出会いの場を提供するピア。
リレーピア・・・メッセージの受け渡し、中継を行うピア。
11
JXTAの構成要素(3)

ピアグループ
 複数のピアが集まって構成されたグループ。
 サービスを提供することで、グループのピアが
同一の動作をふるまうことを可能にする。
 セキュリティを実装することが可能。
 階層的なグループ形成が可能。
12
JXTAの構成要素(4)

サービス
 ピアが利用する基本機能(共通的)
 具体的には、ファイル交換・コンテンツ配信など。

パイプ
 ピアがお互いに通信するための伝送路。
 非同期で短方向のメッセージ通信経路。
 パイプ上で流れるメッセージはXML。
13
JXTAの構成要素(5)

アドバタイズメント
 ピア・ピアグループ・パイプ・サービスなど、さまざまな
リソースを表すXMLドキュメント
 アドバタイズメントを利用することによって、JXTAネット
ワークで利用できるリソースの情報を得る。
 ピアは各リソースのアドバタイズメントを作成し、外部に
公開する。他のピアはこの公開されたアドバタイズメント
を検索・発見し、いろいろなリソースを享受する。
14
JXTAの構成要素(6)

ID
 JXTAで扱われる各リソースは、ユニークIDを
持っているため、識別が可能である。
 様々なデバイスが、様々なネットワークトランス
ポートを利用するため、より柔軟な識別情報を
もつ必要がある。JXTAでは各リソースにIDを
持たせることによって、これをクリアしている。
15
参考資料

C Magazine/2003年01号/P37~74
「ピア・ツー・ピア プログラミング」
16