MobileSpaces インストール |
佐藤一郎 (お茶の水女子大学理学部情報科学科) |
MobileSpaces はシステム及びすべてJava の実行には JDK 1.2 以上 (JDK1.3以上を推奨)が必要です。また、JDK 1.2 以上が稼働するハードウェアとOSならば基本的に動作しますが、開発者により動作確認がなされているハードウェアはIBM PC/AT互換機、OSは Windows98 と WindowsNT 4.0、Linux だけです。
mobilespace-bin.zip を解凍してください。このファイルはzipアーカイブ により圧縮されています。
解凍後のファイル構成例
-|-README.html (このドキュメント) |-(document)-|- |-(system)-|-README.txt |-*.jar (サンプルエージェント) |-(mobilespaces)-|- (MobileSpacesシステム) |-Main.class 起動用クラス
環境変数CLASSPATHに「 . 」(カレントディレクトリ)が含まれいることを確認して下さい。上記の system ディレクトリをカレントディレクトリにしてください。
それぞれのコンピュータでMobileSpacesシステムが起動してください。起動は コマンドラインから下記を入力します。
java mobilespaces.Main
正常に起動されると下記のようなウィンドウが表示されます。
次に下記のウィンドウが表示されます。これはエージェントへの操作、例えば起動、停止、階層構造の管理を行うコントロール用ウィンドウであり、下部の白い部分にはこのランタイムシステムにロードされているエージェントのリストが表示されます。特定のエージェントに操作を行うときは、このリストからエージェントを選択してから行います。また、階層構造の変更はリスト内のドラッグアンドドロップ操作を通じて行うことができます。
なお、幾つかの起動オプションが用意されています。例えば
java -nw mobilespaces.Main
としますと、ウィンドウが表示されません。
エージェントの起動には二つの方法が用意されています。一つはコントロールウィンドウを利用した方法です。ウィンドウのの「File」メニューから「Open」項目を選択してください。
ファイル名入力を促すダイアログウィンドウが表示されます。拡張子が「.jar」となるファイルを選択してください。
ここででは「Editor.jar」ファイルを選択したとします。選択を行うと下記のようなウィンドウが表示されます。
これはモバイルエージェントして実現されたエディタープログラムです。モバイルエージェントはその特徴として実行状態をもって移動をすることができますので、エディターに書かれたテキストを当然として、ウィンドウのサイズや位置なども実行状態として保持され、移動先で再現されます。
このパッケージではこの他に「LIFEGAME.jar」、「TELEPORT.jar」、「MATP.jar」、「file.jar」というエージェントが用意されています。
ここで、「LIFEGAME.jar」はライフゲームをモバイルエージェントとして実装したものです。エージェント内部スレッドを開始・停止を行うことで、移動後もそのまま処理を行います。
そして、「TELEPORT.jar」はモバイルエージェントとして実装されたウィンドウマネジャーです。これの特徴はこのエージェントの中に、つまり子エージェントして他のエージェントをその内部に起動することができます。これはMobileSpacesのモバイルエージェント階層構造を利用したものですが、「TELEPORT.jar」が移動したときにはそれの子エージェントも一緒に移動することになります。
また、シェルが用意されています。利用するときは、コンソール画面に「[MobileSpaces]> 」というプロンプトが表示されていることを確認してください(表示されていないときはリターンキーを押してください)。そして、「[MobileSpaces]> 」に続けて、「create Editor.jar」と入力してリターンキーを押してください。エージェントがロードされます。
MobileSpacesはその特徴としてランタイムシステム自身ではエージェントのコンピュータ間移動を行うことはできません。コンピュータ間移動を実現するモバイルエージェントが必要となります。このパッケージにはTCP/IPによりエージェントを移動を実現するエージェントである「MATP.jar」が用意されているので、それ移動元と移動先のランタイムシステムにロードします。ロードの仕方は先の「Editor.jar」の場合と同様です。
移動操作はMobileSpacesのウィンドウのエージェントリストを使って実現します。リスト上から移動したいエージェントをマウスなどで選択し、やはりリスト上のMATPエージェントの上にドラッグアンドドロップしてください。
上記のような移動先の入力を促すダイアログが現れますので、そのダイアログに次のように入力してください。なお、ここでは移動先コンピュータの名前がdestination、そしてMATPのポート番号が5000番(デフォルト)であるとします。
://destination:5000/
ダイアログのアドレス用テキストフィールに上記入力したらOKボタンをクリックしてください。移動先のMATPエージェントのあいだで通信を行い、エージェントを移動させます。
なお、シェルを利用するときは、コンソール画面に「[MobileSpaces]> 」という プロンプトから、
create MATP.jar
というコマンドにより「MATP.jar」を 起動します。そして、移動対象となるエージェント(ここでは「Editor.jar」)を 次のコマンドにより起動します。
create EDITOR.jar
そして、移動先コンピュータの名前がdestination、そしてMATPのポート番号が 5000番(デフォルト)ならば
move /Editor /MATP://destination:5000/
とすると、移動を開始します。
また、エージェントのファイル化、つまり永続化も動作環境、例えばファイルシステムやオペレーティングシステムに依存します。このため、ランタイムシステムではなくモバイルエージェントの永続化を行うモバイルエージェントを提供しています。これは「FILE.jar」という名前で提供されています。これも「MATP.jar」と同様に起動して、MobileSpacesシステムのコントロールウィンドウ上でファイルとして保存したいエージェントのリストを「MATP.jar」のリスト上にドラッグアンドドロップしてください。
エージェントはmobilespaces.Agentクラスのサブクラスでなければいけません。 仮にeditor/Editor.javaがそのmobilespaces.Agentのサブクラスならば、これを コンパイルして、Editor.classを生成してください。そして、JDKのjarコマンド を使って次のように入力します。
javac editor/Editor.java jar cvfM Editor.jar editor/Editor.class
ここではエージェントのファイル名はEditor.jarとなります。永続化されたエー ジェントも標準のJAR形式で保存されます。