1

私は、2 つの独立したシステム (例: 受信者 <=> 中間層 (IL) <=> 送信者) 間で (HTTP 経由で) データを交換する必要がある中間層を作成する任務を負っています。Receiver と Sender は両方とも、Web サービスを介して一連の API を公開します。Sender システムでトランザクションが発生するたびに、IL はそれを認識し (Sender に常に ping を送信する Windows サービスを作成することを考えています)、データをマッサージしてから、Receiver に配信する必要があります。IL は、Receiver にデータが転送されるまで、一時的に SQL データベースにデータを格納できます。次の質問があります -

  1. WCF (あまり使用していません) を使用して、送信者と受信者 (どちらも Web サービスを公開しています) と通信できますか?
  2. 配送を保証するにはどうすればよいですか?
  3. インターネット上のメッセージのセキュリティを確保するにはどうすればよいですか?
  4. 同時実行の問題を処理するためのベスト プラクティスは何ですか?
  5. エラー処理のベスト プラクティスは何ですか?
  6. データの信頼性を確保するにはどうすればよいですか (データは途中で改ざんされません)
  7. 送信者へのデータの受信を確実にするにはどうすればよいですか?
  8. 知っておく必要がある制約は何ですか?

カスタム .NET ソリューションを使用して、これを MS プラットフォームに実装する必要があります。BizTalk などのミドルウェアは使用しないように言われました。それが重要な場合、受信者は SDFC インスタンスです。

どんなポインタでも大歓迎です。ありがとうございました。

4

1 に答える 1

2

交換を調整する Windows サービスは問題ないように思えます。はい、WCF は従来の Web サービスを処理できます。

配送を保証するにはどうすればよいですか?

配信を確実にするために、 TransactionScopeReceiver <=> Intermediate Layerを使用してとの間のデータの受け渡しを処理 できますがIntermediate Layer <=> Sender、それらを一緒に実行しようとはしません。

データを受信側に送信するために、何らかのキューイング メカニズムを検討する必要がある場合があります。私は、実際のキューイング コンポーネントというよりも、むしろ論理的なキューを考えていると思います。ワークフロー フレームワークもオプションになる可能性があります。

適切なログ記録/監査が実施されていることを確認してください。堅実で、適切な情報があり、読みやすいものであることを確認してください。サービスを作成すると仮定すると、サービスは監視なしで実行されるため、運用/サポートの側面はより要求が厳しくなります。

シナリオについて考えてみましょう:

  • 配送の失敗をどのように管理していますか?
  • 受信者 (または送信者) が一定期間 (どのくらいの時間) 利用できない場合はどうなりますか? たとえば、メールでオペレーターに「エスカレーション」する必要がありますか?

インターネット上のメッセージのセキュリティを確保するにはどうすればよいですか?

HTTPS。他の既存のクライアントが Web サービスを呼び出すと仮定すると、それらはどのようにセキュリティを確保するのでしょうか? (私は暗号化を考えています)。

同時実行の問題を処理するためのベスト プラクティスは何ですか?

うーん、おそらく別の質問です。それに関する情報を簡単に見つけることができるはずです。どのくらいのデータを取得していますか? どのような周波数ですか?Windows サービスのインスタンスをいくつ持つことを考えていましたか? 1 つあれば十分な場合、なぜ同時実行性が問題になるのでしょうか?

エラー処理のベスト プラクティスは何ですか?

同時実行の場合と同じですが、いくつかのヒントを提供できます。

  • 確立されたロギング フレームワークを使用します。私は MS EntLibs が非常に気に入っていますが、他にもあります (現在使用されているものを再利用することは、おそらくより理にかなっているでしょう。何かあれば)。
  • 実行は無人で行われるため、情報が完全で明確で曖昧でないことを確認してください。快適なレベルに達したら、さらにログを記録してダイヤルダウンしたくなるでしょう。
  • トップレベルのハンドラーを使用して、何も失われないようにします。ただし、有用なコンテキスト (送受信されるデータのメタデータなど) を取得できるアプリケーションに深くログインすることを恐れないでください。

送信者へのデータの受信を確実にするにはどうすればよいですか?

トランザクションの一部であるステップとしてそれを含めます (領収書の送信)。

別の角度から見ると、ESB タイプ ライブラリの CodePlex を見てみると、役に立つものが見つかるかもしれません: http://www.codeplex.com/site/search?query=ESB&ac=8 たとえば、クラス ライブラリのように見えるESBasic再利用できます。

于 2011-07-28T04:00:23.453 に答える