2

だから私はクライアントサーバーアプリケーションを構築しており、それらが互いに通信する方法を選択する必要があります。できます:

  1. クライアントとサーバーの間に TCP 接続がある
  2. REST または SOAP 経由でメッセージを送信する
  3. Tibco RV、EMS、または IBM MQ を使用します。.

これらのテクノロジーのいずれかを使用する場所と別のテクノロジーを使用する場所を示すマトリックスがどこかにありますか。パフォーマンス、信頼性などは役に立ちます。

4

3 に答える 3

7

純粋な .NET から .NET へのアプリケーションがある場合は、WCF を使用してください。これにより、TCP/IP を行う際の作業が簡素化されますが、メッセージングに対するオブジェクト指向設計の優れたレイヤーが維持されます。また、メッセージング コードの単体テストが非常に簡単になります。これが最大のメリットだと思います。

WCF は TCP/IP を実行し、ローカル マシンでパイプ処理を行い、多くの HTTP ベースのソリューションもサポートします。また、そのほとんどでセキュリティを無料で取得でき、コードは通信レイヤーで多くのエラー処理を行います.

MQ ソリューションが必要な場合は、楽しんでください。MSMQ はサポートされていますが、これも MSMQ です。

他のソリューションを使用すると、より多くの機能を利用できますが、機能には複雑さとリスクが伴います。私は個人的に .Net アプリケーションを websphere MQ と統合しましたが、ソリューションのコストと利点に感銘を受けませんでした。P シリーズ以外のハードウェアでの MQ のパフォーマンスは、控えめに言っても不足していることは言うまでもありません。

于 2009-06-04T02:22:20.477 に答える
6

キューに入れられたか、キューに入れられなかったか?

メッセージングソリューションから何が必要ですか?

  1. 相互運用性?ソリューションを他のアプリケーションに公開できる必要がありますか?次に、そこでサポートされている形式とプロトコルの1つを使用する必要があり、その99%はRESTまたはSOAPを意味します
  2. 可用性?サーバーがダウンしている、使用できない、またはメンテナンスが行われている場合でも、クライアントがメッセージを送信できる必要がありますか?その場合は、キューに入れられたソリューション(MSMQ、MQ、SSB)が必要になります。
  3. セキュリティ?クライアントとサーバーは、信頼のドメイン間で認証する必要がありますか?次に、ソリューションに認証用の非ドメインベースのストーリー(証明書など)があることを確認する必要があります。
  4. 信頼性?クライアントがクラッシュした場合、保留中のメッセージの送信を再開する必要がありますか?ここでも、キューに入れられたソリューションのみが役立ちます。
  5. 相関関係?相関メッセージを順番に処理する必要がありますか、相関メッセージへの排他的アクセスが必要ですか、返信を返信する必要がありますか?すべてのソリューションがセッションセマンティクスを提供するわけではありません。
  6. スケーラビリティ?1人のクライアントをサポートする必要がありますか、それとも100万人をサポートする必要がありますか?繰り返しになりますが、キューに入れられたソリューションのみが特定のスケールの後で機能します。
  7. スパイク?トラフィックが急増する特定の時間や日など、トラフィックにスパイクはありますか?遭遇する可能性のある最大のスパイクを受け入れる能力については、結合されたソリューションを計画する必要があります。そうしないと、クライアントを不用意に拒否します。ハードウェアが通常のスパイクに対処できない場合は、キューに入れられたソリューションを使用する必要があります。

あなたがWCFが好きなら、あなたはそれからたくさんを無料で手に入れるつもりです。ただし、基本的に、メッセージングを行うには、キューに入れられるモードとキューに入れられないモードの2つのモードがあります。WCFは、.configファイルを変更するだけで切り替え可能な、交換可能なチャネル、バインディング、形式、プロトコル、および認証方法の膨大なマトリックスを提供します。しかし、それらはすべて非キューモード用です。結合された通信チャネルでソリューションに問題がない場合は、CLRアプリケーションにとって現時点でWCFに勝るものはおそらくありません。要件がキューベースのソリューションを課している場合は、互換性のあるクールなバインディングトイをすべて失い、WCFからシリアル化とサービスのアクティベーションモデルを活用します。

最後になりましたが、メッセージングソリューションで送信されるメッセージの90%はデータベースに送信され、かなりの数がデータベースから発信されます。信頼性の高い配信を保証しながらパフォーマンスを提供するSQLServerデータベースとの緊密な統合が必要な場合は、SSBにそのソリューションがあります。

于 2009-06-04T03:30:04.397 に答える
2

.NET で通信アプリを構築する場合、ほとんどの場合、答えは WCF です。WCF は

  • SOAP - WS-* を含む
  • REST - XML、JSON、その他
  • ソケット
  • パイプ
  • バイナリ形式
  • ティブコ RV
  • IBM MQ
  • MSMQ
  • SAP
  • さらに多く

WCF の背後にある考え方は次のとおりです。これは、使用したい任意の通信基盤をマップする一般的な通信フレームワークです。これは、プログラミング モデルに一貫性があり、概念に一貫性があり、操作/管理に一貫性があることを意味します。WCF を選択し、ロギングが必要な場合は、選択したサブストレートに関係なく、同じように機能します。また、WCF を選択した場合は、当事者がローカルの場合は名前付きパイプを使用し、配布する場合は TCP に切り替えることができます。コードを変更する必要はなく、構成を変更するだけです。これはいいことです。

基板の選択に関しては、まあ、それはあなた次第です。必要な機能と機能、要件によって異なります。

于 2009-06-04T02:58:55.147 に答える