では、実際にJXTAを動かしてみよう。JXTAはプロトコルでありフレームワークでもあるが、これだけでは実際には何ともしようがない。WebからダウンロードできるJXTAのパッケージはその点ぬかりなく、ちゃんとサンプルアプリケーションが付属しているので、ここではこのサンプルアプリケーションを中心に紹介しよう。
パッケージは、5種類のプラットフォームに対応したものが用意されている。Windows、Solaris、Linux、UNIX、Other Java-enabled Platformsの5種類だ。もちろんソースコードも公開されている。今回は、Solaris 8(SPARCシステム)とWindows(98 Second Edition)がそれぞれ動作する2台のマシンにJXTAをインストールし、相互に通信を試みた。
インストール自体はごく簡単で、しかもSolarisでもWindowsでも同じである。インストールが終了すると、サンプルアプリケーションが実行できる。サンプルとして用意されているのは、“JXTA Shell”と“Instant P2P”の2種類だ。
JXTA Shellは、JXTA環境のためのコマンドラインユーザーインターフェイスである。
JXTAShellを起動したところ。一番下に見える“JXTA>”がプロンプトだ。ここでコマンドをタイプして実行する。利用感はUNIX系OSのシェルそのものである |
ここからJXTA対応のアプリケーション/コマンドを起動することもできるし、環境の設定やCodat/Advertizementの作成といった「システム管理」的な作業もできる。ここでコマンドラインから操作することで基本的なP2Pアプリケーションの動作をまねることができるが、正直言ってかなりたいへんだ。ちゃんとした処理はやはり専用に作成したアプリケーションに任せるべきだという印象を強く受ける。
簡単なコマンドを実行してみよう。“peer”コマンドを実行すると、その時点でこのpeerが認識しているpeerの一覧が表示される。ただし、最初はほかのpeerの検索等を実行していないので、自分自身しか見つからない。次に、“peer -r”と“-r”オプションをつけて実行すると、ほかのpeerの検索メッセージを発信する。次に再度“peer”と実行すると、検索の結果見つかったpeerが一覧表示される、はずなのだが、実はちょっと時間がかかった。しかも、筆者の想定とは異なり、同じプライベートネットワーク内に用意したWindows peer(「Win98」という名前)のほかに、インターネット上のJXTA peerがけっこうな数見つかってしまった。
peersコマンドを使ってほかのpeerを検索してみた。想定では“Win98”を見つけて終わるはずだったのだが、それ以外にもけっこうな数のpeerを発見したようだ。Webサーバと異なり、これが「現在ユーザーがログオンしており、JXTAを実行しているpeerだ」という認識があるためか、無人の荒野に人影を見たかのような嬉しさを感じてしまう点が面白いところだ |
この実験はNATを使ったファイアウォール内部にある2台のマシンを利用して行なっているため、本来ならインターネット上のpeerの存在は認識できないはずだが、JXTAではNATへの対応も考慮されているため、これがちゃんと見える辺りが面白い。ちなみに、これはインターネット上に「情報中継ホスト」を置くことで実現している。
このほか、組み込みコマンドのようなイメージでTALKコマンドなども用意されており、ほかのpeerと簡単なテキストメッセージを交換することができるし、
テキストファイルなどをCodat化し、これをほかのpeerに送付することで簡単なファイル転送が実現できたりする。ちょっと使いにくい気もするが、JXTAが提供する機能の触りはこのshellだけでけっこう体験できるようになっている。
次に、InstantP2Pだが、こちらはウィンドウアプリケーションで簡単なアプリケーション機能が実装されている。こちらのほうが、一般的には“デモアプリケーション”らしく見えるだろう。
ここでは、同様にほかのpeerを検索し、見つかった中からもう1台の実験マシンに対してテキストチャットを実行したところだ。InstantP2PをWindows側で実行してみても、ほぼ同じイメージに見える。
同様にテキストチャットをWindowsクライアント側から実行してみたところ。見えているクライアントの数が違うのは、JXTAを起動してからの経過時間がSolarisマシンとWindowsマシンとでは異なっているため。当然、長い間起動しておけばそれだけたくさんのメッセージを受信し、多数のpeerを発見することになる |
JXTAのデモパッケージは、インストール用のJava VMを同梱したもので3.4MB(Windows用)~8.5MB(Linux用)、Java VMなしなら1.2MB程度のサイズなので、ぜひ試してみていただきたい。少なくとも、JXTAプロジェクトが考えるP2Pシステムとはどのようなものなのか、という点については、実際に試してみることでよく理解できるようになるものと思う。
渡邉利和