JADE LEAP for Android
JADE(Java Agent Development Framework)という、LGPLのマルチエージェントのJava実装があります。いわゆるエージェント指向のひとつのようです。JADEは、FIPA(http://fipa.org)で定めているマルチエージェントの仕様を実装したものです。これのAndroid用アドオンが出ているのでちょっと試している最中です。セットアップが結構面倒だったので、方法を備忘録として書きます。
1.ソースの取得
・http://jade.cselt.it/から、JADEのソース(full版でも可)をダウンロードする。(ユーザー登録が必要)
・「add-ons and 3rd party sw」のページ(http://jade.cselt.it/community-addons.php)からLeapとJADE Androidを取得し展開する
・以下のようなディレクトリ構成になるようマージする
jade/ | |-add-ons/ |- … |-android JADE LEAP for Androidのディレクトリ |- demo |- doc |- lib |- src |-leap/ | |- … | |-src/ LEAPのソースファイル |- … |-src/ JADEのソースファイル
2. build.propertiesの修正
JADE LEAP for Androidのディレクトリにあるbuild.propertiesを修正(Android SDKの場所など)
3. jarの生成
※ Antが必要です。Antのインストールと環境変数への設定(PATH等)を済ませておいて下さい。
・LEAPのビルド
leapディレクトリに移動し、
ant
leap/j2se/libに、JadeLeap.jarが出来ていればOK。
・JADE LEAP for Androidのビルド
/add-ons/androidに移動し、
ant jar
を実行。うまくいくとJadeLeapAndroid.jarが出来る。
4. JADE LEAP Main Containerの起動
leapディレクトリで
java -cp j2se/lib/JadeLeap.jar jade.Boot -gui
等と実行すると起動する。
5. 使い方、試し方
Androidのプロジェクトでは、JadeLeapAndroid.jarをビルドパスに含み
AndroidManifestに
<uses-permission android:name="android.permission.INTERNET" />
<service android:name="jade.android.MicroRuntimeService" />
を追加しておけば使えます。
JADE LEAP for AndroidのdemoディレクトリをそのままEclipseプロジェクトにインポートすればデモを試すことが出来ます。ただし、stringのvalue.xmlにIPアドレスの定義などがあるので、環境に合わせて変更する必要があるようです。デモを実行するとこんな画面が開きます。

GUI側にもエージェントが新たに追加されています。

このデモでは、Android端末からInteraction Protocol(対話の種類みたいなもの)を選んで、任意のエージェントへメッセージを投げることが出来ます。私はまだマルチエージェントの細かい振る舞いや仕様をよく知らないので、これから勉強してみます。ちょっとみた感じでは、メッセージを受け取ったときにそのメッセージに対応する処理を実装するだけでよさそうなので、プロセス間通信の仕組みとしては、シンプルでわかりやすいんじゃないかと思いました。