| 安定リリース | 4.6.0 / 2022年12月19日 |
|---|---|
| 書かれた | ジャワ |
| プラットフォーム | Java SE |
| タイプ | マルチエージェントシステム、ソフトウェアフレームワーク |
| ライセンス | GNU 劣等一般公衆利用許諾書 |
| Webサイト | jade-project.gitlab.io |
Java エージェント開発フレームワーク( JADE ) は、 Javaで実装されたソフトウェア エージェント開発用のソフトウェア フレームワークです。JADE システムは、複数のエージェントFIPA間の調整をサポートし、通信言語FIPA-ACLの標準実装を提供します。これにより、エージェント間の通信が容易になり、システムのサービス検出が可能になります。JADE は元々 Telecom Italiaによって開発され、フリー ソフトウェアとして配布されています。
再開する
JADE は、 FIPA標準に基づくマルチエージェント システムの開発を容易にするミドルウェアです。この目的で、エージェント用の複数のコンテナを作成し、各コンテナを 1 つ以上のシステムで実行できます。コンテナのセットがプラットフォームを構成することが理解されています。
JADE は以下を提供します:
- JADEエージェントが実行される環境
- 動作の継承と再定義を使用してエージェントを作成するためのクラスライブラリ
- インテリジェントエージェントのプラットフォームを監視および管理するためのグラフィカルツールキット
歴史
JADE は当初、Telecom Italia Lab によって開発されました。この部門は、技術革新の推進を担当する Telecom Italia グループの R&D 部門です。Telecom Italia は2000 年に JADE を考案し、推進しました。最新のバージョンは 2022 年 12 月 (バージョン 4.6.0) から利用可能です。無料ソフトウェアとして配布された JADE の最初のバージョンは、2000 年 2 月から利用可能です (バージョン 1.3)。
2003 年 3 月、モトローラとテレコム イタリアは、モバイル通信業界でミドルウェアベースとして JADE の開発と採用を促進する目的で JADE 管理委員会を設立しました。JADE 管理委員会は、JADE の商用利用と活用に関心のあるあらゆる企業や組織を受け入れ、その開発と推進に取り組んでいます。
2021年、JADEの開発に成功したチームは、これ以上の作業を継続できないと発表しました。現在は、JADEから分岐した研究者チームがプラットフォームの開発を進めています。
プラットフォーム
JADE は分散エージェント プラットフォームであり、エージェントを実行するホストごとにコンテナーがあります。さらに、このプラットフォームには、さまざまなデバッグ ツール、コードおよびコンテンツ エージェントのモビリティ、エージェントの動作の並列実行の可能性、言語およびオントロジーの定義のサポートがあります。各プラットフォームには、AMS と DF と呼ばれる 2 つの特別なエージェントを持つ親コンテナーが必要です。
- DF (ディレクトリ ファシリテーター) は、プラットフォーム上で利用可能なエージェントを通知するディレクトリを提供します。
- AMS (エージェント管理システム) はプラットフォームを制御します。他のエージェントを作成および破棄したり、コンテナを破棄したり、プラットフォームを停止したりできるのは AMS だけです。
DFエージェント
DF エージェントにアクセスするには、クラス「jade.domain.DFService」とその静的メソッド ( register、deregister、modify、Search)が使用されます。
AMSエージェント
AMS サービスにアクセスするために、新しいエージェントからメソッドセットアップを実行する前に、デフォルトで AMS の登録メソッドを自動的に実行するエージェントが作成されます。エージェントが破棄されると、デフォルトでtakeDown()メソッドが実行され、 AMS の 登録解除メソッドが自動的に呼び出されます。
エージェントクラス
Agent クラスは、ユーザーが JADE エージェントを作成できるようにするスーパークラスです。エージェントを作成するには、Agentから直接継承する必要があります。通常、各エージェントは複数のサービスを記録し、1 つ以上の動作によって実装する必要があります。
このクラスは、エージェントの基本的なタスクを実行するためのメソッドを提供します。
- パターンマッチングを使用して、オブジェクト ACLMessage でメッセージを渡す
- エージェントのライフサイクルをサポートする
- 複数のアクティビティを同時に計画し実行する
JADEエージェント
JADE エージェントのライフサイクルは、FIPA が提案するサイクルに従います。これらのエージェントは、次のように定義されるさまざまな状態を経ます。
- 開始済み: エージェントは作成されましたが、まだ AMS に登録されていません。
- アクティブ: エージェントは登録されており、名前が付いています。この状態では、他のエージェントと通信できます。
- 中断: スレッドが中断されているため、エージェントは停止しています。
- 待機中: エージェントはイベントを待機してブロックされています。
- 削除済み: エージェントが終了し、そのスレッドの実行が終了し、AMS にはそれ以上のものが存在しません。
- 移動: エージェントは新しい場所に移動します。
エージェントの行動
動作は、特定のイベントにおけるアクションを定義します。エージェントのこの動作は、メソッドsetupでメソッドaddBehaviourを使用して定義されます。エージェントが採用するさまざまな動作は、抽象クラス Behaviour から定義されます。クラス Behaviour には、抽象メソッドが含まれています。
- action(): アクションが発生したときに実行されます。
- done(): パフォーマンスの終了時に実行されます。
ユーザーは、メソッドonStart()およびOnEnd()プロパティをオーバーライドできます。さらに、エージェントの動作を変更するために使用される block ()やrestart()などの他のメソッドもあります。エージェントがロックされている場合、さまざまな方法でロックを解除できます。それ以外の場合は、ユーザーはエージェントが持つメソッドonStart()およびonEnd()をオーバーライドできます。
エージェントのロックを解除する
- メッセージを受信しています。
- タイムアウトが発生すると、ブロック () に関連付けられます。
- 再起動を呼び出します。
ACL メッセージ
メッセージ パッシングACL (Agent Communication Language) は、エージェント間の通信の基盤です。メッセージの送信は、 Agent クラスのsendメソッドによって行われます。このメソッドでは、受信者情報、言語、コーディング、およびメッセージの内容を含む ACLMessage 型のオブジェクトを渡す必要があります。これらのメッセージは非同期で送信され、受信されたメッセージはメッセージ キューに格納されます。ACL メッセージの受信には、ブロッキングと非ブロッキングの 2 種類があります。このために、それぞれ、 blockingReceive()メソッドとreceive()メソッドを提供します。両方のメソッドで、異なるテンプレートを設定することにより、キューから取得するメッセージをフィルタリングできます。
拡張機能
JADE には、WADE (Workflows and Agents Development Environment) と呼ばれる拡張機能があり、これはWOLF というグラフィック エディターによるプロセスの作成を可能にする ワークフローシステムです。
参照
参考文献
- ジェイドニュースアーカイブ
- ウェイド ユーザーガイド
- JADE によるマルチエージェント システムの開発、第 7 巻 Wiley Series in Agent Technology、Fabio Luigi Bellifemine、Giovanni Caire、Dominic Greenwood ISBN 9780470058404
- エージェント指向ミドルウェアのセキュリティと信頼性、第 6 回インターナショナル、 OTM 2003 ワークショップ。OTM 2003。コンピュータ サイエンスの講義ノート、第 2889 巻。Springer、ベルリン、A Poggi、M Tomaiuolo、G Vitaglione。ISBN 978-3-540-20494-7
外部リンク
- 公式サイト
- WADEの公式サイト
- JADE によるマルチエージェント システムの開発
