このページの本文へ

前へ 1 2 3 4 次へ

World Wide Webに続くもの

2001年05月29日 17時21分更新

文● 渡邉 利和(toshi-w@tt.rim.or.jp)

  • この記事をはてなブックマークに追加
  • 本文印刷

では、実際に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環境のためのコマンドラインユーザーインターフェイスである。

JXTA Shell
JXTAShellを起動したところ。一番下に見える“JXTA>”がプロンプトだ。ここでコマンドをタイプして実行する。利用感はUNIX系OSのシェルそのものである

ここからJXTA対応のアプリケーション/コマンドを起動することもできるし、環境の設定やCodat/Advertizementの作成といった「システム管理」的な作業もできる。ここでコマンドラインから操作することで基本的なP2Pアプリケーションの動作をまねることができるが、正直言ってかなりたいへんだ。ちゃんとした処理はやはり専用に作成したアプリケーションに任せるべきだという印象を強く受ける。

簡単なコマンドを実行してみよう。“peer”コマンドを実行すると、その時点でこのpeerが認識しているpeerの一覧が表示される。ただし、最初はほかのpeerの検索等を実行していないので、自分自身しか見つからない。次に、“peer -r”と“-r”オプションをつけて実行すると、ほかのpeerの検索メッセージを発信する。次に再度“peer”と実行すると、検索の結果見つかったpeerが一覧表示される、はずなのだが、実はちょっと時間がかかった。しかも、筆者の想定とは異なり、同じプライベートネットワーク内に用意したWindows peer(「Win98」という名前)のほかに、インターネット上のJXTA peerがけっこうな数見つかってしまった。

インターネット上のJXTA peer
peersコマンドを使ってほかのpeerを検索してみた。想定では“Win98”を見つけて終わるはずだったのだが、それ以外にもけっこうな数のpeerを発見したようだ。Webサーバと異なり、これが「現在ユーザーがログオンしており、JXTAを実行しているpeerだ」という認識があるためか、無人の荒野に人影を見たかのような嬉しさを感じてしまう点が面白いところだ

この実験はNATを使ったファイアウォール内部にある2台のマシンを利用して行なっているため、本来ならインターネット上のpeerの存在は認識できないはずだが、JXTAではNATへの対応も考慮されているため、これがちゃんと見える辺りが面白い。ちなみに、これはインターネット上に「情報中継ホスト」を置くことで実現している。

このほか、組み込みコマンドのようなイメージでTALKコマンドなども用意されており、ほかのpeerと簡単なテキストメッセージを交換することができるし、

JXTAでテキストメッセージ交換
こちらは、Windowsマシン側でJXTAShellを立ち上げ、talkコマンドの受け入れ準備をして待っていたところ、Solarisマシン(peer名はSparcSol、ユーザー名はsparcsolUserとした)からテキストチャットメッセージが届いた。シェル上でユーザー名を登録し、ログイン(talk -login)を実行してようやく受信準備が整うわけで、ちょっと使いにくい。もちろん、このとき「ユーザー名win98Userであるユーザーがpeer名Win98であるマシン上でtalkコマンドの受け入れ準備をして待っています」という情報を格納したAdvertizementが作成され、それがネットワークに発信されたのだろう。このシェルをいじるだけでもJXTAがどのような処理をするかイメージできるようになってくる

テキストファイルなどをCodat化し、これをほかのpeerに送付することで簡単なファイル転送が実現できたりする。ちょっと使いにくい気もするが、JXTAが提供する機能の触りはこのshellだけでけっこう体験できるようになっている。

次に、InstantP2Pだが、こちらはウィンドウアプリケーションで簡単なアプリケーション機能が実装されている。こちらのほうが、一般的には“デモアプリケーション”らしく見えるだろう。

InstantP2P
InstantP2PをSolaris上で実行したところ。上左側には検索の結果発見されたPeer Groupが一覧表示されている。右にあるのは、デフォルトのグループであるNetPeerGroupのメンバーの一覧である。筆者が設定したマシンは特にGroupの設定をしていないため、このNetPeerGroupのメンバーとなっている。ここでLAN内のWindowsクライアントを選択し、下のアプリケーションタブで「Chat」を選ぶと、テキストチャットが実行できる。下部の「Send Message」フィールドにテキストをタイプし、リターンキーを打つと、中程のシェル風のペインにそのテキストが移動され、同時に相手のpeerに送られるわけだ

ここでは、同様にほかのpeerを検索し、見つかった中からもう1台の実験マシンに対してテキストチャットを実行したところだ。InstantP2PをWindows側で実行してみても、ほぼ同じイメージに見える。

Windowsで実行したInstantP2P
同様にテキストチャットをWindowsクライアント側から実行してみたところ。見えているクライアントの数が違うのは、JXTAを起動してからの経過時間がSolarisマシンとWindowsマシンとでは異なっているため。当然、長い間起動しておけばそれだけたくさんのメッセージを受信し、多数のpeerを発見することになる

JXTAのデモパッケージは、インストール用のJava VMを同梱したもので3.4MB(Windows用)~8.5MB(Linux用)、Java VMなしなら1.2MB程度のサイズなので、ぜひ試してみていただきたい。少なくとも、JXTAプロジェクトが考えるP2Pシステムとはどのようなものなのか、という点については、実際に試してみることでよく理解できるようになるものと思う。

渡邉利和

前へ 1 2 3 4 次へ

カテゴリートップへ

アスキー・ビジネスセレクション

ASCII.jp ビジネスヘッドライン

ピックアップ