berryMQ作業メモ 9/27版

http://bitbucket.org/shibu/berrymq/
http://berrymq.shibu.jp/

プロセス間通信の実装メモ

  • JSON-RPCをバックエンドに利用
    • 最初のテストは、JSON-RPCレベルで直アクセスでおこなった。(test_interprocess_low.py)
    • 次に、実際のAPIの体裁を整えるラッパー部分を実装している最中。(test_interprocess.py)
  • Connectionクラスを作って、そいつがJSON-RPCの次に低レベルな部分を担当
    • Connectionクラスは基底クラスと、Style02のプロセス間通信のクライアント/サーバ
    • ConnectionQueueクラスはStyle03のプロセス間通信のサーバ側
    • ConnectionQueueClientクラスはStyle03のプロセス間通信のクライアント側
    • ConnectionInteractiveクラスは、Style01のプロセス間通信のクライアント/サーバ
  • JSON-RPCに公開するのは、ExportedFunctionクラスのオブジェクト
    • こいつはフォワードするだけで、中身はほぼ空。矢面に立つクラスは仕事しない方がいいと思われるので。主にセキュリティ的な意味で。
  • 仕事するのはConnectionPointクラス
    • 他のノードとのコネクション情報などを管理する。
    • berryMQのローカル通信で来たメッセージを外部に中継する
    • 外部から来たメッセージをローカルに中継する。また、他のノードにも中継する

ネットワークのプログラムの開発手順はいつも悩む。今回はJSON-RPCの直接アクセス部分と、高水準なAPIの2段階に分けて行った。今回はやらなかったけど、JSON-RPCやXML-RPCであれば、Excelか何かに応答手順を書いておいて、クライアント、サーバの両方のモックを用意してテストする、というのもできるかもしれない。以前はMockSocketなんぞを作ってみたけど、あまり低水準すぎてもテストはしにくいので。