2010-11-19 14 views
1

質問を正しく作成する方法がわからないので、より良いアイディアがあれば、進んでお勧めします。ブローカー(メディエーター)ベースのコミュニケーションのすぐに使用できる実装

問題は簡単です。私はファイアウォールの背後にある2つのピアAとBを持っています。私は、公共のブローカーまたはメディエーターを使って、彼らがお互いにコミュニケーションをとることを望みます。

通信は非同期であり、このようなものになる:

  1. AとBの両方が定期的に彼らのためにメッセージがあるかどうかを確認するブローカーをポーリングします。
  2. AがBと通信したい場合は、Bのメッセージであることを示すメッセージをブローカに送信します。
  3. Bがブローカをポーリングすると、ブローカは実際にメッセージを受信したと判断してそれに応じて応答します。
  4. Bは、メッセージを処理し、これはいくつかの点AポーリングブローカでA.
  5. から特定のメッセージに対する応答であることを示す、ブローカーに応答を送信し、
B.からレスポンスを受信します

私はこの種のコミュニケーションに突入する前に、このようなコミュニケーションを可能にするパッケージを使用する準備ができているかどうか疑問に思っています。

誰でも?

ありがとうございました。

EDIT1私はピアがメッセージサーバがインストールされていない可能性があることを強調したい

。 2つの一方向の接続で要求応答をシミュレートする意味はありません。私は本当にピアの応答への返答を得ることができなければならないので、一方向のコミュニケーションではありません。

EDIT2

もう一つの制約は、HTTP(S)ポートが通信のために開いていてもよいということであるので、AおよびBは、それらがHTTP(Sを使用してブローカと通信状況であってもよく、薬剤)のみ。

答えて

0

このようなブローカーは、AzureプラットフォームのAppFabricの一部として存在します。 AppFabricでは、そのような中継された通信を許可するService busを使用できます。しかし、あなたはそれを使用するときに料金を支払わなければなりません。

+0

Azureプラットフォームを使用することは、やりすぎです。より軽いものがより適切でしょう。 – mark

1

any esb wold do?たとえば、http://www.nservicebus.com/以上の軽量:http://www.zeromq.org/

+0

NServiceBusはウェブサイトで軽量であると主張しています。あなたはどんな経験をしていますか? – mark

+0

私は両方とも演奏しました。しかし、生産には何もない。 nservicebusは以前よりも軽量です。 ZeroMQは簡単です。 – jgauffin

+0

+1のリンクはありますが、NServiceBusがどのように役立つのか分かりません。それは片方向のメッセージですが、私は自分の要求に答えることができる必要があります。ピアにメッセージサーバをインストールすることは許可されていないため、メッセージでシミュレートすることはできません。 – mark

1

HTTPSスタックを使用して簡単に(IMO)できます。ブローカのアーキテクチャは、処理する必要があるボリュームと並行性に依存します。アプリケーションがPUTおよびGETメッセージ(URIに宛先ノードを含む)を送信し、応答アドレス用のパラメーターを追加できるように、リソース・モデルを作成します。実際のリソース・モデルを把握するのに約1日かかり、コード化するのに4時間かかります。ボリュームが必要な場合は、zeromqバックエンドを持つmongrel2のようなサーバーを利用してください。またはnode.js、これはすばらしいことです。

ZeroMQは、並行アプリケーションを構築するのに理想的ですが、HTTP/Sサービスではありません。これは、mongrel2のような専用のフロントエンドによってより適切に処理されます。

+0

入力いただきありがとうございます。私は、私の必要性がそれほど奇妙ではなく、棚のソリューションからすぐに準備ができていることを期待していました。私は誰もいないと思うし、私は自分でそれらを実装する必要があります。 – mark

関連する問題