Phase.2 エージェントのパッケージを構成する要素
Chapter.9 エージェント間のデータの受渡し
このPhaseの最後に、エージェント間でデータを受け渡すのにどんな方法があるのかを説明しましょう。代表的なものは三つです。
- パラメタとして渡す
- Legistryを使う
- その他のファイルを使う
1番目は、一番簡単な方法です。キャビネットからエージェントを呼び出す際、またはエージェントからエージェントを呼び出す際にパラメタを記述することができます。手軽に扱えますが、直接呼び出されるエージェントにしかデータを渡せない、多量のデータを受け渡すのに向かない等のデメリットがあります。不特定多数のエージェントから呼び出される共通エージェントの場合に有効です。
2番目は、手軽でかつ柔軟なデータの受渡しが可能です(筆者が最も多用している方法です)。Legistryとは、WindowsのRegistryと似た手順で扱えるデータベースです。Delphi Script,VB Script,Air Cの各言語から自由にデータの読み取り・書き込みを行うことができ、データの量にも制限がありません(……あるのかな?(^^;)。特定のキーのデータを取り出せるので、ランダムにデータにアクセスしたい場合に有効です。
3番目は、そのエージェント独自の仕様のファイルを作り、そこに書き込まれたデータを共有する方法です。ファイル仕様そのものがオリジナルなので制限は全くありませんが、仕様を知らないと内容を理解できません。データベースを用いずに標準ファイルにアクセスする場合、ScriptからもAir Cからも基本的にはシーケンシャルアクセス(ファイルの先頭から順にデータを読み込む・書き込むこと)になります。大量の整列されたデータを読み書きする場合に有効です。
エージェントに何らかの設定項目がある場合、上記のいずれかの手段を用いてデータの受渡しを行う必要があります。筆者としては、共通部品的なエージェントの場合はパラメタ渡し、オリジナルエージェント同士の場合はLegistryを使用することをお勧めします。受け渡すデータの数が多くなるとパラメタ渡しの場合はその判別だけで一苦労ですが、Legistryなら特定キーのデータを読み取れば済むので、プログラミングが楽になるからです。
『スタパライフ』エージェントの場合、ブラウザエージェントへはパラメタ、巡回エージェントやセットアップエージェントに対してはLegistryを使って必要なデータを連携します。
次のPhaseでは、いよいよ各エージェントの作成の具体例に入ります。