2012-02-16 16 views
0

私は、イベントベースの既存の定期的な同期を変更しようと考えていますが、すでに存在していますがこれまで失敗しているメカニズムを見つけようとしていました。 私はそれがうまくいくと思う方法を説明しようとします。もし誰かがこれが既に行われていることを知っていたら、私に指摘してください。 だから、システムは次のようになります。今永続サブスクリプション

enter image description here

- 興味深い部分:
- 私は
、サブスクライブするクライアントは、彼がオフラインだったときに、それらのイベントが発生した場合でも、イベントを受け取ることになることを必要とする - しかし、不在他のクライアントのイベント受信をブロックしてはいけません。

例:複数の受信者に電子メールを送信できます。同じ受信者に2番目のメールを送信できます。誰もが最初のメッセージを読むまで待たずに、すべてのメールを受信します。メールが断絶した場合でも、誰もメールを失うことはありません。

質問どのようにこのような構成が見えるでしょうか?
WCFがこれをサポートしていない場合、そのようなシナリオを処理できるオープンソースプロジェクトはありますか?

答えて

1

WCFは、このままではサポートしていません。あなたはWCFを使ってパブサブパターンを構築することができます。Juval Lowyはこれについて2006で話しました。netMsmqBindingを使って独自のパターンを作成することもできます。

しかし、オープンソースフレームワークはNServiceBusというMSMQの上にあり、起動するのは非常に高速です。ただし、WCFは使用しません。余談として

UPDATE

- あなたは、システム全体のサブスクリプション管理/ストレージを一元化しているように見えるので、あなたは上記提供のサブスクリプション・デザインは私の意見では壊れやすいです。何より良いのは、分散型のサブスクリプション管理モデルである:私はNServiceBusをチェックしました

enter image description here

+0

- そしてそれは私が必要なすべてを行います。サブスクリプションストレージの集中化について - 私は管理が簡単だと思っていました。パブリッシャー/サブスクライバのための単一のポイントがあれば、それはBizTalkがやっていることではありませんか? – Giedrius

+1

あなたは正しいです、BizTalkは一括して購読を維持します。ただし、サブスクリプション管理データを含むBizTalkメッセージボックスDBをクラスタリングすることをお勧めします。このようにして、データが配布されていると言えるでしょう。 –