Presentation is loading. Please wait.

Presentation is loading. Please wait.

JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 / 2005-05-25.

Similar presentations


Presentation on theme: "JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 / 2005-05-25."— Presentation transcript:

1 JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /

2 JXTA Shell

3 JXTAのアーキテクチャ (3 Layer Cake)

4 JXTA Shell JXTAのプロトコル上で動くアプリケーション
Unix の Shell のように、コマンドを利用して P2P を使った情報の公開、転送などを行う。 コマンドは自分で新規作成可能 Java言語を用いる

5 JXTA Shell の起動 -- ひとつめの Peer を起動 --

6 ディレクトリの移動 (1) "jxta-shell-2.3.3" ディレクトリに移動 サブディレクトリが2つある
lib ... JXTA Shell の動作に必要な Jar ファイルがある shell ... JXTA Shell の起動スクリプト・実行ファイルなどがある

7 ディレクトリの移動 (2) shell ディレクトリ (およびディレクトリ中の全ファイル) を shell2 にコピーする
lib ディレクトリ、shell ディレクトリのほかに shell2 ディレクトリができた shell2 ディレクトリは、もうひとつの Peer の起動に使う shell ディレクトリに移動

8 JXTA Shell の起動 JXTA Shell を起動する (Windowsでは) jxta.exe あるいは run.bat を起動
(Unix系OSでは) run.sh を起動

9 “JXTA Configurator” ウィンドウが表示される

10 JXTA Configurator の設定 "Peer Name" に適当な名前 (ここでは tomoharu-peer1)
"Password" には適当なパスワード "Verify Password" は、"Password" 欄に入力したものを再度入力 "OK" ボタンを押す

11 “Initialize JXTA Keystore” ウィンドウ
"Identity" が "tomoharu-peer1" であることを確認 "Identity Password" では、"JXTA Configurator" で設定したパスワードを入力する

12 ひとつめの Peer が起動されて、"JXTA Shell" が使えるようになる

13 “.jxta” ディレクトリ 設定情報・キャッシュなどは、起動ディレクトリの ".jxta" ディレクトリに保管される
2度目に起動したときは、”.jxta” ディレクトリの情報を読み出すので、”JXTA Configurator” ウィンドウは表示されない。

14 コマンドの実行

15 プロンプトの表示 ウィンドウの “JXTA>” というプロンプトにコマンドを入力する

16 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 A B8DAE E95978C43004EA73E03</PeerId> ...... JXTA>

17 (正確には 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 A B8DAE E95978C43004EA73E03</PeerId> ...... JXTA> Peer に関する情報が出力された (正確には Peer の告知 (Advertisement) の一部)

18 man コマンド whoami コマンドの使い方は、man コマンドで調べることができる。 JXTA>man whoami
-g と -l という2つのオプションがあることがわかる。

19 whoami コマンド (3) JXTA>whoami -l
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta=" <PID>urn:jxta:uuid A B8DAE E95978C43004EA73E03 </PID> <GID>urn:jxta:jxta-NetGroup</GID> <Name>tomoharu-peer1</Name> <Desc> Platform Config Advertisement created by : net.jxta.impl.peergroup.DefaultConfigurator </Desc> ......

20 whoami コマンド (4) -l オプションを使った。 このPeerに関する告知 (Advertisement) が表示される。
JXTA>whoami -l <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta=" <PID>urn:jxta:uuid A B8DAE E95978C43004EA73E03 </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) が表示される。

21 Peer告知 PID 要素は Peer ID を表す。 GID 要素は、このPeerが属している Peer Group
JXTA>whoami -l <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta=" <PID>urn:jxta:uuid A B8DAE E95978C43004EA73E03 </PID> <GID>urn:jxta:jxta-NetGroup</GID> <Name>tomoharu-peer1</Name> <Desc> Platform Config Advertisement created by : net.jxta.impl.peergroup.DefaultConfigurator </Desc> ...... PID 要素は Peer ID を表す。 GID 要素は、このPeerが属している Peer Group Name 要素は、JXTA Configurator で指定した Peer の名前

22 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 に参加している

23 2つめの Peer を起動

24 JXTA Shell の起動 別のターミナルで "jxta-shell-2.3.3/shell2" に移動 JXTA Shell を起動する
(Windowsでは) jxta.exe あるいは run.bat を起動 (Unix系OSでは) run.sh を起動

25 “JXTA Configurator” ウィンドウが表示される

26 JXTA Configurator の設定 "Peer Name" に適当な名前 (ここでは tomoharu-peer2)
"Password" には適当なパスワード "Verify Password" は、"Password" 欄に入力したものを再度入力

27 ポート番号の設定 (1) "Advanced" タブを選択する

28 ポート番号の設定 (2) "TCP Settings" で "9701" となっているポート番号を "9702" に変更する
同一ホストで複数の Peer を立ち上げるとき、ポート番号を変更する必要がある "OK" ボタンを押す

29 Peerの起動 "Initialize JXTA Keystore" ウィンドウが表示される
"Identity" が "tomoharu-peer2" であることを確認 "Identity Password" では、"JXTA Configurator" で設定したパスワードを入力する ひとつめの Peer が起動されて、"JXTA Shell" が使えるようになる

30 Peer ID の確認 whoami -l コマンドを実行して、Advertisement 中の PID 要素をチェックしよう。
PID 要素は、Peer ID を表す。 tomoharu-peer1 と tomoharu-peer2 で Peer ID が違うことを確認しよう。

31 入力パイプの生成と公開

32 パイプ告知を用いた通信

33 newpipe コマンド JXTA>tomoharuPipeAdv = newpipe -n tomoharuPipe

34 env コマンド (1) JXTA>env ......
tomoharuPipeAdv = "Pipe Advertisement" [net.jxta.impl.protocol.PipeAdv] JXTA>

35 env コマンド (2) 現在の環境変数を一覧できるコマンド
“tomoharuPipeAdv” という環境変数は “Pipe Advertisement” (=パイプ告知) であることがわかる。 tomoharuPipeAdv = "Pipe Advertisement" [net.jxta.impl.protocol.PipeAdv]

36 cat コマンド 環境変数の値を出力するコマンド tomoharuPipeAdvはパイプ告知なので、告知のXMLファイルが出力される。
JXTA>cat tomoharuPipeAdv <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PipeAdvertisement> <jxta:PipeAdvertisement xmlns:jxta=" <Id> urn:jxta:uuid E E104B85EE4B641EEBAA8C28A49556DA204 </Id> <Type>JxtaUnicast</Type> <Name>tomoharuPipe</Name> </jxta:PipeAdvertisement> JXTA> 環境変数の値を出力するコマンド tomoharuPipeAdvはパイプ告知なので、告知のXMLファイルが出力される。

37 パイプ告知 Id 要素、Type 要素、Name 要素がある。 Name 要素の内容は、newpipe コマンドで指定した名前
JXTA>cat tomoharuPipeAdv <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PipeAdvertisement> <jxta:PipeAdvertisement xmlns:jxta=" <Id> urn:jxta:uuid E E104B85EE4B641EEBAA8C28A49556DA204 </Id> <Type>JxtaUnicast</Type> <Name>tomoharuPipe</Name> </jxta:PipeAdvertisement> JXTA> Id 要素、Type 要素、Name 要素がある。 Name 要素の内容は、newpipe コマンドで指定した名前

38 mkpipe コマンド JXTA>tomoharuInputPipe = mkpipe -i tomoharuPipeAdv

39 publish コマンド JXTA>publish tomoharuPipeAdv

40 出力パイプの生成と ファイルの送受信

41 search コマンド (1) 公開された告知を探索するためのコマンド
“search -r” で、ほかの Peer から新しい告知を見つけ出す JXTA>search -r JXTA>search JXTA>search -a Name -v tomoharuPipe JXTA Advertisement adv0 [jxta:PipeAdvertisement] (Search criteria: Attribute="Name" Value="tomoharuPipe")

42 search コマンド (2) “search” で、ローカルにキャッシュされた告知をリスト表示する。
JXTA>search -r JXTA>search JXTA>search -a Name -v tomoharuPipe JXTA Advertisement adv0 [jxta:PipeAdvertisement] (Search criteria: Attribute="Name" Value="tomoharuPipe") “search” で、ローカルにキャッシュされた告知をリスト表示する。 “search -a Name -v tomoharuPipe” タグ名が “Name” 内容が “tomoharuPipe” である告知を探索する

43 search コマンド (3) 目的の告知が見つかった! 告知の名前は adv0 JXTA>search -r
JXTA>search -a Name -v tomoharuPipe JXTA Advertisement adv0 [jxta:PipeAdvertisement] (Search criteria: Attribute="Name" Value="tomoharuPipe") 目的の告知が見つかった! 告知の名前は adv0

44 adv0 の確認 ひとつめのPeerで作成した tomoharuPipeAdv と同じであることを確認しよう JXTA>env
JXTA>cat adv0 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jxta:PipeAdvertisement> <jxta:PipeAdvertisement xmlns:jxta=" <Id> urn:jxta:uuid E E104B85EE4B641EEBAA8C28A49556DA204 </Id> <Type>JxtaUnicast</Type> <Name>tomoharuPipe</Name> </jxta:PipeAdvertisement> JXTA> ひとつめのPeerで作成した tomoharuPipeAdv と同じであることを確認しよう

45 mkpipe コマンド JXTA>tomoharuOutputPipe = mkpipe -o adv0

46 importfile コマンド JXTA>myfile = importfile hello.xml
hello.xml という XML ファイルを myfile という環境変数に読み込む

47 myfile 環境変数の中身 JXTA>env JXTA>cat myfile
<?xml version="1.0" encoding="UTF-8"?> <greeting> Hello, world ! </greeting> JXTA>

48 mkmsg コマンド JXTA>tomoharuMsg = mkmsg

49 put コマンド JXTA>put tomoharuMsg tomoharuTag myfile
mkmsg で作ったメッセージに、インポートしたファイルを追加する このとき、”tomoharuTag” というタグをつける

50 recv コマンド JXTA>tomoharuNewMsg = recv tomoharuInputPipe
ひとつめのShellに移る tomoharuInputPipe (入力パイプ) から、データを読み込む準備をする 待機モードになる

51 send コマンド JXTA>send tomoharuOutputPipe tomoharuMsg 2つめのShellに戻る

52 そのときひとつめのShellでは JXTA>tomoharuNewMsg = recv tomoharuInputPipe
recv has received a message JXTA> 入力パイプがメッセージを受信した メッセージは tomoharuNewMsg に格納

53 tomoharuNewMsg の中身 JXTA>cat tomoharuNewMsg Message Element # 1
name : / tomoharuTag type : text/xml;charset=UTF-8 body : (78 bytes) JXTA> tomoharuTag というものがある

54 get コマンド JXTA>tomoharuNewFile = get tomoharuNewMsg tomoharuTag
受け取ったメッセージからデータを取り出す。 データは tomoharuNewFile に格納 タグとして “tomoharuTag” を指定

55 tomoharuNewFile の中身 JXTA>cat tomoharuNewFile
<?xml version="1.0" encoding="UTF-8"?> <greeting> Hello, world ! </greeting> JXTA>

56 exportfile コマンド JXTA>exportfile received.xml tomoharuNewFile
tomoharuNewFile の中身を received.xml ファイルに保存する

57 パイプ告知を用いた通信


Download ppt "JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 / 2005-05-25."

Similar presentations


Ads by Google