2003年度 データベース論

JXTAの概要
P2P特論 (ソフトウェア特論)
第3回 / 2005-04-27
1
JXTAとは何か
2
JXTA




「じゃくすた」と発音
P2Pに必要な機能をプロトコルとしてまとめ
ている
プロトコルだけでなく、参照実装も含まれて
いる
http://www.jxta.org/
3
P2Pに必要な機能




Peerの集団に加入する
Peerを探索する
Peerどうしが通信する
NATやファイアウォールを越えて通信する
↓
JXTAはこうした機能を用意する
4
JXTAとプログラミング言語


JXTAはプログラミング言語に依存しない
「参照実装」として Java版と C言語版



参照実装 = プロトコル(仕様)の実装例
いちばん発展しているのはJava
ほかにも次のような言語が

J2ME / Perl / Python / Ruby など
5
JXTAとオーバレイ・ネットワーク



D・E・Fは、物理ネット
ワークを超えて、(仮想
的に)P2Pネットワークに
参加している。
この仮想的なネットワー
クを「オーバレイ・ネット
ワーク」と言う。
JXTAを利用して、オーバ
レイ・ネットワークを構築
できる。
6
JXTAと通信



JXTAは通信プロトコルに依存しない
TCP/IP, Bluetooth など
通信のためにIPを使わなければならない、
ということはない
7
JXTAはオープンソース


JXTAのライセンスは Sun Microsystems
社の独自のもの
ただし、BSDライセンスとほとんど変わらな
い
8
Project JXTAの歴史 (1)


もともとは Bill Joy が Sun Microsystems
社ではじめた研究プロジェクト
Bill Joy





Sun Microsystems 創立者のひとり
BSD Unix 開発者
vi 開発者
Java の仕様策定者のひとり
Jini
9
JXTAの語源

Juxtapose




動詞
・・・を並列する (ジーニアス英和辞典より)
この単語を短くしたもの
JXTAは「サーバ・クライアント方式」を置き
換えるのではなく、並列して相互に補完す
べきである、という意味がこめられている。
10
Project JXTAの歴史 (2)



2001-04-25 www.jxta.org 開設
JXTA 1.0 リリース
2003-03-01 JXTA 2.0 リリース
プロトコルが変更
(1.0と互換性なし)
2005-03-15 JXTA 2.3.3 リリース
11
JXTAの基本コンセプト
12
Peer

Peer = ネットワーク
上のデバイス

PC, Work station,
PDA, 携帯電話など
13
Peer Group

Peer は Peer Group
に参加できる


ひとつの Peer は複数
の Peer Group に参
加できる
Peer Group が P2Pの
サービスに相当する

例えばファイル共有や
メッセンジャーなど
14
Pipe



Peer 間でのメッセージ
の送受信に使用する。
input pipe (入力パイ
プ) と output pipe (出
力パイプ) がある。
Unix のパイプ (“|”) と
考え方は同じ。
15
ID



JXTAで使われる資源には、IDが振られる。
資源 = Peer, Peer Group, Pipe など
Peer の ID の例:
urn:jxta:uuid59616261646162614A78746150325033
88D9B1D1048B4CE99A7CB17A2CB3E5F
703
16
Advertisements (告知)



Peer, Peer Group, Pipe などの資源につい
て記述したもの。メタデータ。
JXTAでの資源の発見 = Advertisement
の発見
Advertisement は XML で書かれる。
17
Advertisements (告知)
パイプ告知の例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxta:PipeAdvertisement>
<jxta:PipeAdvertisement
xmlns:jxta="http://jxta.org">
<Id>
urn:jxta:uuid59616261646162614E504720503250330937A65BF6C641
0E923799B39ED9B20C04
</Id>
<Type>JxtaUnicast</Type>
<Name>mypipe</Name>
</jxta:PipeAdvertisement>
18
パイプ告知を
用いた通信
19
Peerの種類 (1)

Edge Peer (エッジ・ピア)


RendezVous Peer (ランデブー・ピア)



平民。通信を行う。
Advertisement のインデックスを管理。
他のPeerからの問い合わせに対応する。
Relay Peer (リレー・ピア)

ファイアウォールやNATをまたいで通信する。
20
Peerの種類 (2)

Edge Peer と RendezVous Peer は固定的
な役割ではない。



Edge Peer が RendezVous Peer に。
また、RendezVous が Edge に。
ある Peer Group では RendezVous でも、
別の Peer Group では Edge の場合があ
る。
21
JXTAのアーキテクチャ
(3 Layer Cake)
22
JXTA Protocols
23