JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 / 2005-05-10
JXTAの基本コンセプト (復習)
JXTA 「じゃくすた」と発音 P2Pに必要な機能をプロトコルとしてまとめている プロトコルだけでなく、参照実装も含まれている http://www.jxta.org/
JXTAとオーバレイ・ネットワーク D・E・Fは、物理ネットワークを超えて、(仮想的に)P2Pネットワークに参加している。 この仮想的なネットワークを「オーバレイ・ネットワーク」と言う。 JXTAを利用して、オーバレイ・ネットワークを構築できる。
Peer Peer = ネットワーク上のデバイス PC, Work station, PDA, 携帯電話など
Peer Group Peer は Peer Group に参加できる Peer Group が P2Pのサービスに相当する 例えばファイル共有やメッセンジャーなど
Pipe Peer 間でのメッセージの送受信に使用する。 input pipe (入力パイプ) と output pipe (出力パイプ) がある。 Unix のパイプ (“|”) と考え方は同じ。
ID JXTAで使われる資源には、IDが振られる。 資源 = Peer, Peer Group, Pipe など Peer の ID の例: urn:jxta:uuid-59616261646162614A7874615032503388D9B1D1048B4CE99A7CB17A2CB3E5F703
Advertisements (告知) Peer, Peer Group, Pipe などの資源について記述したもの。メタデータ。 JXTAでの資源の発見 = Advertisement の発見 Advertisement は XML で書かれる。
Advertisements (告知) パイプ告知の例 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PipeAdvertisement> <jxta:PipeAdvertisement xmlns:jxta="http://jxta.org"> <Id> urn:jxta:uuid-59616261646162614E504720503250330937A65BF6C6410E923799B39ED9B20C04 </Id> <Type>JxtaUnicast</Type> <Name>mypipe</Name> </jxta:PipeAdvertisement>
パイプ告知を用いた通信
JXTA Shell
JXTAのアーキテクチャ (3 Layer Cake)
JXTA Shell JXTAのプロトコル上で動くアプリケーション Unix の Shell のように、コマンドを利用して P2P を使った情報の公開、転送などを行う。 コマンドは自分で新規作成可能 Java言語を用いる
JXTA Shell のダウンロード
ダウンロード (1) Javaで動くので、J2SEがインストールされている必要あり JXTAのWebページ (http://www.jxta.org/) を見てみよう downloads --> JXTA Technology Download Site をクリック http://download.jxta.org/ に行けばよい
ダウンロード (2) "Latest" をクリック (2005年5月現在) http://download.jxta.org/build/release/2.3.3/ に飛ぶ "jxta-shell-2.3.3.zip" をクリックしてダウンロード "jxta-shell-2.3.3.zip" を展開 "jxta-shell-2.3.3" ディレクトリが生成される
JXTA Shell の起動 -- ひとつめの Peer を起動 --
ディレクトリの移動 (1) "jxta-shell-2.3.3" ディレクトリに移動 サブディレクトリが2つある lib ... JXTA Shell の動作に必要な Jar ファイルがある shell ... JXTA Shell の起動スクリプト・実行ファイルなどがある
ディレクトリの移動 (2) shell ディレクトリ (およびディレクトリ中の全ファイル) を shell2 にコピーする lib ディレクトリ、shell ディレクトリのほかに shell2 ディレクトリができた shell2 ディレクトリは、もうひとつの Peer の起動に使う shell ディレクトリに移動
JXTA Shell の起動 JXTA Shell を起動する (Windowsでは) jxta.exe あるいは run.bat を起動 (Unix系OSでは) run.sh を起動
“JXTA Configurator” ウィンドウが表示される
JXTA Configurator の設定 "Peer Name" に適当な名前 (ここでは tomoharu-peer1) "Password" には適当なパスワード "Verify Password" は、"Password" 欄に入力したものを再度入力 "OK" ボタンを押す
“Initialize JXTA Keystore” ウィンドウ "Identity" が "tomoharu-peer1" であることを確認 "Identity Password" では、"JXTA Configurator" で設定したパスワードを入力する
ひとつめの Peer が起動されて、"JXTA Shell" が使えるようになる
“.jxta” ディレクトリ 設定情報・キャッシュなどは、起動ディレクトリの ".jxta" ディレクトリに保管される 2度目に起動したときは、”.jxta” ディレクトリの情報を読み出すので、”JXTA Configurator” ウィンドウは表示されない。
コマンドの実行
プロンプトの表示 ウィンドウの “JXTA>” というプロンプトにコマンドを入力する
whoami コマンド (1) プロンプトに対して “whoami” と入力する JXTA>whoami <Peer>tomoharu-peer1</Peer> <Description>Platform Config Advertisement created by : net.jxta.impl.peergroup.DefaultConfigurator</Description> <PeerId>urn:jxta:uuid-59616261646162614A7874615032503316B8DAE33952487E95978C43004EA73E03</PeerId> ...... JXTA>
(正確には Peer の告知 (Advertisement) の一部) whoami コマンド (2) JXTA>whoami <Peer>tomoharu-peer1</Peer> <Description>Platform Config Advertisement created by : net.jxta.impl.peergroup.DefaultConfigurator</Description> <PeerId>urn:jxta:uuid-59616261646162614A7874615032503316B8DAE33952487E95978C43004EA73E03</PeerId> ...... JXTA> Peer に関する情報が出力された (正確には Peer の告知 (Advertisement) の一部)
man コマンド whoami コマンドの使い方は、man コマンドで調べることができる。 JXTA>man whoami -g と -l という2つのオプションがあることがわかる。
whoami コマンド (3) JXTA>whoami -l <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta="http://jxta.org"> <PID>urn:jxta:uuid-59616261646162614A7874615032503316B8DAE33952487E95978C43004EA73E03 </PID> <GID>urn:jxta:jxta-NetGroup</GID> <Name>tomoharu-peer1</Name> <Desc> Platform Config Advertisement created by : net.jxta.impl.peergroup.DefaultConfigurator </Desc> ......
whoami コマンド (4) -l オプションを使った。 このPeerに関する告知 (Advertisement) が表示される。 JXTA>whoami -l <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta="http://jxta.org"> <PID>urn:jxta:uuid-59616261646162614A7874615032503316B8DAE33952487E95978C43004EA73E03 </PID> <GID>urn:jxta:jxta-NetGroup</GID> <Name>tomoharu-peer1</Name> <Desc> Platform Config Advertisement created by : net.jxta.impl.peergroup.DefaultConfigurator </Desc> ...... -l オプションを使った。 このPeerに関する告知 (Advertisement) が表示される。
whoami コマンド (5) -g オプションで、所属している Peer Group の情報を出力する。 JXTA>whoami -g <PeerGroup>NetPeerGroup</PeerGroup> <Description>default Net Peer Group</Description> <PeerGroupId>urn:jxta:jxta-NetGroup</PeerGroupId> JXTA> -g オプションで、所属している Peer Group の情報を出力する。 JXTA では、デフォルトで NetPeerGroup という Peer Group に参加している