Skip to content

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()

のようにしてエージェント化できます。