関連システムとの比較

佐藤一郎 1997/9/29

既存のJavaベースのモーバイルエージェントシステムとの相違

AgentSpace は、Javaベースのモーバイルエージェントシステムであり、 同様にJavaベースのシステムである IBM社のAglets、Fujitsu社のKafka、ObjectStore社のVoyager、 General Magich社のOdysseyなどとは類似性があります。しかし、 他のシステムとの比較において言及すべき重要な相違として、 そのエージェント転送方法があげられます。

他のJavaベースのモーバイルエージェントシステムでは実行状態を転送した後、 必要なコード(クラスファイル)をオンデマンドで転送します。このため、転送 するデータ総量は少くなる可能性がありますが、多くのシステムではHTTPと同 様の手順でクラスコードを保持しているコンピュータに対し、クラスコードの 転送要求を送り、そのコードを受け取る方法をとっています。これは、一つの クラスコードを転送するのに最小でも2回の通信メッセージを必要とするなり、 エージェント転送時間が遅くしている原因となっています。

このため、AgentSpaceでは、一つのエージェントを構成する全ての情報、つま り実行状態やコード(クラスファイル)などをひとつにまとめてから、エージェントを 転送する方法をとっています。これにより、通信メッセージ数を削減し、 高速化をはかっています。特に、他のシステムの方法では、一つメッセージの 通信遅延が大きくなればなるほど転送時間が増大化するという問題を避けられて いるため、遠隔化されたコンピュータ間でのエージェント移動には有効となります。

また、転送中はZIP 形式のデータ圧縮をして通信の高速化をはかっています。 圧縮・解凍時間が小さくなるように工夫がなされています。また、セキュリティ 確保のために転送中データの暗号化も可能になっています。

一つにまとめてエージェントを転送する方法は、形態端末や不安定な通信シス テムにおいても有効となります。こうした通信では、通信回線が切断すること がありますが、既存のシステムはAglets、Kafka、Voyager、Odysseyなどでは 問題があります。Java言語は動的なクラスローディングを基礎としているために、 転送されたエージェントが、その転送直後ではなくある程度の時間がおいてか らクラスコードが必要となり、転送要求を行う場合が考えられます。しかし、 クラスコードをもつ先のコンピュータとの通信回線が絶たれると、それ以上の 処理の継続が不可能になります。

これに対してAgentSpaceでは、エージェントが実行に必要な全ての情報は 転送済となるために、こうした通信環境においても処理の継続が可能になります。 なお、AgentSpaceでは、エージェントを転送する際に、何らかの転送上の問題が 生じた場合は、所定かい転送を繰り返した後、転送前の状態に戻るようになって おり、PDAや無線通信システムを考慮した設計になっています。

Applet 及び Servlet との相違

Java の Appletはサーバ上のプログラムをクライアントに転送し、クライ アント上でプログラムの実行を開始します。また、Servletではクライアント のプログラムをサーバに転送し、サーバでプログラムの実行を開始します。前 者はプル転送、後者はプッシュ転送に対応しますが、両者とも転送先のコンピュー タではプログラムの初期状態から処理が行われるため、このシステムとは異な り、処理中のプログラムのその途中の状態を含めて転送することはできません。 また、このシステムでは、プル転送とプッシュ転送の両方が実現できるだけで なくシームレスに融合しています。

RPC 呼び出しとの相違

未完

多くの分散システムでは、コンピュータ間の通信方法としてRPC(遠隔手続 き呼び出し)を採用しています。RPCでは、通常のローカル関数やメソッドと同 様のプログラミングスタイルで、リモート上のプログラムの関数やオブジェク トのメソッドが呼び出せる利点があります。しかし、幾つかの問題があります。 RPCでは呼び出し中のプログラムは返値を受け取るまで処理が停止し、分散シ ステムのもつ並列性を十分にいかせません。このほか、RPCの引数として与え られるオブジェクトは、数値や文字列などに制限されていることが多いです。 これに対して、このシステムではRPCに対応するプリミティブをもっていませ んが、エージェントを移動を通信相手のコンピュータに移動して通信を行い、 その後に、そのエージェントを送信元のコンピュータに結果伝達のために戻す ことによって実現できます。また、その間、送信元のコンピュータは別の処理 をすることもできますし、通信ネットワークの接続が絶たれていても問題あり ません。

CORBA及びDCOMとの相違

未完