2012-04-27 4 views
2

外部システムとのインタフェースをとる私のシステムをどのように構成すべきかについて質問があります。ここで外部システムとの接続|システムを設計する方法

は、私は一緒に置くことを考えていた様々なパーツ、以下のとおりです。

オプション1

  • 私は、システムへのメッセージの異なる3種類にもたらし3つの外部サービスを持っています。
  • 私はこれらの外部サービスをすべてリッスンするWCFサービスを用意しています。これらのサービスは、メッセージを共通の形式に変換します。
  • デュプレックスTCPバインディングを使用してWCFサービスに接続されたWPF UIがあり、UIでメッセージが更新されます。
  • また、UIは発信メッセージをそのサービスに送信し、サービスはそれを外部サービスに送信します。

私の質問は、このソリューションをスケーラブルで、維持可能で、費用対効果の高い方法だと思いますか?イントラネットのシナリオでこれを導入すると、特定の問題が発生する可能性がありますか?

オプション2

  • は、外部サービスに接続する3つのWindowsサービスを持っている:

    は私が与えていた他の考慮事項は以下の通りでした。
  • 各サービスは、メッセージを標準形式に変換し、メッセージバス上の特定のトピックに配置します。
  • 新しいメッセージのメッセージバス上のトピックをリッスンするWCFサービスがあります。
  • デュプレックスバインディングを使用して、受信メッセージでクライアントを更新します。
  • クライアントは、送信メッセージをWCFサービスに送信します.WCFサービスは、Windowsサービスによって受信された特定のトピックにドロップし、外部サービスに送信します。

私はここで少し混乱していますが、どちらがより良いアプローチになるのかお手伝いしてください。可能であれば、これらのシナリオについて説明するリンクを教えてください。

データ交換の量は、5分ごとに400のメッセージで、外部システムに分けられます。

私はこの状況に直面している可能性が高いと確信しています。この方が良い方法があれば教えてください。

おかげで、 -Mike

答えて

1

は、私は確かに3つの似ていますが、異なるメッセージ・フォーマットを扱うとき、あなたのオプション2が正しいことだと思います。これは、2つの積分パターン、adaptercanonical messageを実装します。

しかし、反対の方向に移動するメッセージのコンジットとして同じ「アダプタ」サービスを使用するのは間違いだと思います。要求処理パイプラインから応答チャネルを抽象化する方がよいでしょう。

要求元への応答メッセージのルーティングを処理するディストリビュータ(またはrouter)パターンを実装できます。

関連する問題