
概説
佐藤一郎 1997/9/29
AgentSpace
は、モーバイルエージェントを実現するランタイムシステムと、エージェントプログラムの作成を容易にするフレームワークライブラリから構成されます。また、Agent
プログラムはJava 言語で記述され、システム自体も Java
言語のみを利用して書かれているため、JDK1.1以上が動作するコンピュータ・OSであれば動作し高いポータビリティをもっています。
用語
- エージェント
- エージェントは能動的に動作するプログラムであり、他のエージェントやランタイムシステムとの通信手段をもっています。
- モーバイルエージェント
- モーバイルエージェントは別のコンピュータに移動することができ、個々のコンピュータに束縛されない存在です。また、エージェントは移動するときに、実行に必要な情報、つまり、コード、データ、実行状態を保存したまま移動することができます。このため、移動先のコンピュータでこれまでの処理の続きを行うことができますし、移動先にプログラムがある必要はなく、また、以前いたコンピュータと通信をする必要もありません。
- ステーショナリエージェント
- 特定のコンピュータだけで実行されるエージェントです。モーバイルエージェントから移動能力をなくした存在です。入出力やディレクトリサービスなどの特定のコンピュータに依存した処理を代行します。ここで提案するシステムでは、エージェントランタイムシステムはモーバイルエージェントからは一つのステーショナリエージェントとして抽象化されます。
- エージェント間通信
- エージェントは、別のエージェントと情報の交換や、処理の代行を依頼することができます。情報交換の方法は、分散オブジェクトコンピューティングと同様な、一方向の非同期メッセージ通信、同期的メソッド呼び出し(直接的に呼ぶわけではない)、フューチャーベースの非同期メソッド呼び出しの三つの方法をもっています。なお、通信対象となるエージェントは同じエージェントラインタイム内のものに限られます。
- エージェントの状態
- このシステムでは、JavaのCore
APIと仮想機械(VM)を拡張することなく実現されています。しかし、このため、エージェントの移動に際して移動できる情報は、ヒープ領域に割り当てられたものに限られます。このため、スレッドや実行スタック内(実行途中のメソッドなど)の情報は転送の対象とはなりません。
- エージェントの認証
- エージェントはコンピュータに依存しない識別子をもっています。エージェント間通信では、この識別子を用いてエージェントを特定し、通信を行います。
- エージェントロケーション
- 一つのエージェントは同時に複数のエージェントランタイム内に存在することはできません。
- エージェントランタイムシステム
- エージェントランタイムシステムはエージェントの生成、実行、転送、永続化、終了を行います。また、これは一つのコンピュータに複数存在することがあり、各エージェントからは一つのステーショナリエージェントとして抽象化されます。