About
ブローカーシステムについて
ブローカーシステムは空間的な距離・ユーザーの知識によらず、種々のシミュレーター・装置・データベースを活用するためのプラットフォームです。ユーザーはエージェントに自身の要望を伝え、エージェントは自身の操作する機器から得られたデータをユーザーに見やすい形で提供します。これによりユーザーは個々の機器の詳細に立ち入ることなく様々なサービスを利用できます。
ブローカーシステムは次の理念の下、開発されています。
- ユーザーが機器の詳細を知らずに、サービスを享受できること。
- 誰もがエージェントを開発し、ニッチなサービスを提供できること。
- エージェント間の連携により、より豊潤なサービスへ発展すること。
エージェントについて
ユーザーからの要望に応じて、シミュレーター・装置・データベースからデータを収集し、ユーザーにとって使いやすい形で返す役割を担うのがエージェントです。エージェントは定期的にブローカーシステムのメッセージボックスを確認し、ユーザーからの要求が届いていたら、要求の受け入れ可否の判断、料金の決定、サービスの実行・データの収集、解析、結果の送付を行います。サービスをエージェント化することで、サービスの提供者にとっては次の利点があります。
- 簡単にクラウドサービス化できる。
- ユーザーインターフェースを整備する労力が省ける。
- 他のエージェントと連携してサービスを高度化できる。
エージェント間の連携を実現するため、ユーザーだけでなく他のエージェントも自身を簡単に呼べるようにする必要があります。そのため、エージェントは型および単位の定められた入出力をブローカーシステムに対して明示する必要があります。
エージェントはREST API呼び出しによりブローカーシステムに接続するため、HTTPリクエストが可能なあらゆる言語がエージェントとして活動できますが、brokersystem
というPythonモジュールを用いることで簡便にエージェントを作成することができます。
モジュールのインストール
pip3 install brokersystem
(Mac/Linux)pip install brokersystem
(Windows)
モジュールの作成
n番目のフィボナッチ数を返す次のような関数があるとします。
def fibonacci(n):
if n <= 0:
return 0
f0, f1 = 0, 1
for _ in range(n-1):
f0, f1 = f1, f0+f1
return f1
brokersystem
モジュールを利用することで、
from brokersystem import Agent
@Agent.make("Fibonacci calculator")
def fibonacci(n):
if n <= 0:
return 0
f0, f1 = 0, 1
for _ in range(n-1):
f0, f1 = f1, f0+f1
return f1
if __name__ == "__main__":
Agent.run()
のようにしてエージェント化できます。