圧縮ファイルを展開すると次のようなディレクトリが作成されます。
-<agentspace_v3>---<agentspace>---
| |-AgentIdentifier.class
| |-AgentIdentifier.java
| |-AgentManager.class
| |-AgentServer.class
| |-Context.class
| |-DuplicatableAgent.class
| |-IllegalAgentStateException.class
| |-InvalidAgentException.class
| |-InvalidURLException.class
| |-Message.class
| |-MobileAgent.class
| |-NoSuchAgentException.class
| |-NoSuchResourceException.class
| |-SerializableAgent.class
| |-StationaryAgent.class
| |-<context>-
| |-<network>-
| |-<runtime>
| |-<event>-
|-<agent>-
|-<docs>-
上記のagentspace_v3のディレクトリをカレントディレクトリとして、下記をコマンドを実行してください。
java -Djava.net.preferIPv4Stack=true agentspace.AgentServer
ここで -Djava.net.preferIPv4Stack=trueはjavaコマンドのオプションでIPv4に限定するものです。IPv6でも動くはずなのですが、検証が十分ではないことから、以下はIPv4を前提にした説明になっています。なお、下記でも同様に起動することができます。
java -Djava.net.preferIPv4Stack=true -jar agentspace.jar
なお、エージェント転送用の通信ポートをデフォルトでは7000番になります。ポート番号を変更する場合は次のように起動してください。
java -Djava.net.preferIPv4Stack=true agentspace.AgentServer -port 8000
上記の例では8000番に変更する場合です。なお、一台のコンピュータしか手元にないときは下記のように待ち受けポート番号を変更すると、一つのコンピュータ上でTCPを介してエージェントが移動できるようになります。なお、後述するようにシステム管理用の通信に7001番のポートを使っているので、7001は使わないでください
java -Djava.net.preferIPv4Stack=true agentspace.AgentServedr -port 7000
を実行し、別のターミナル(WindowsならばMS-DOSウィンドウ)を開いて書きのコマンドを実行します。
java -Djava.net.preferIPv4Stack=true agentspace.AgentServedr -port 7002
2020年末にUDPマルチキャストを使って周辺ネットワーク上のAgentSpaceを見つける機能を導入しました。ただし、ネットワーク環境によってはUDPマルチキャストに制約がかかるケースがあり、その場合
java -Djava.net.preferIPv4Stack=true agentspace.AgentServedr -na
というオプション付きで起動すると、UDPマルチキャストを使わずに起動します
さて無事に起動すると次のようなコントロールウィンドウが表示されます。
このウィンドウのボタンによりエージェントのロード、セーブ、停止、複製、移動などができます。
エージェントのロードボタンを押して、サンプルエージェントのWindow.jarを選んでみましょう。samplesというフォルダーの中に格納されています。これはエディター機能をもつエージェントです。ロードするとウィンドウが表示されるので、そのなかにテキストを書き込むことができ、その内容は移動後も保持されます。そのエージェントをコントロールウィンドウのエージェントリストで選択して、移動ボタンを押して宛先を入力します。
移動先のコンピュータでも新版AgentSpaceが動いていれば移動ができるはずです。
この例ではコントロールウィンドウからエージェントを制御しましたが、エージェント自身で移動することもできます。コントロールウィンドウからロードボタンを押して、Test.jarというエージェントを選択してください。次のようなウィンドウを表示するので、その丈夫にあるMoveボタンを押すと移動先を聞いてきますので、入力するとそのコンピュータに移動します。また、Saveボタンを押すと指定するファイルにエージェントをセーブします。また、Stopボタンを押すとエージェントの複製が生成されます。そして、Stopボタンを押すとエージェントは停止します。
なお、エージェントの移動先コンピュータのOSやハードウェアが異なっていてJavaがその相違を吸収してくれますので、移動先は同じ種類のOSやハードウェアである必要はありません。
〒101-8430 東京都 千代田区 一ツ橋 2-1-2
国立情報学研究所
佐藤一郎 (E-mail: ichiro@nii.ac.jp)
Tel: 03-4212-2546
http://research.nii.ac.jp/~ichiro/