2

WCF と Service Bus のトピックを読んでいますが、一部のトピックでは Service Bus を使用できません。Service Bus の使用のこのイメージを確認してください。

http://ecn.channel9.msdn.com/o9/learn/Azure/Labs/IntroServiceBus/Lab.html/html/images/4a0aa8f8-f4d1-49b6-b950-cf954402c599.png

上の画像では、サービスはファイアウォールの背後にあり、明らかにサービス バスが必要です。しかし、あなたのサービスを公開したいのであれば、単純にファイアウォールを取り除くことが解決策ではないでしょうか? そして、すべてのクライアントがあなたのサービスに接続できます。

ネットワーク全体のファイアウォールを削除したくないことは承知していますが、IIS を使用して一般に公開されている Web サーバーを作成し、その上でサービスを実行することができます。または、何か不足していますか?

4

3 に答える 3

6

WCF は、通信インターフェイスを設定および管理する方法です。メッセージの内容は気にしません。

ただし、サービス バスは、メッセージ ルーティングを担当するという点で異なります。

WCF やその他のビットを使用してサービス バスを構築できますが、WCF 自体はサービス バスではありません。

于 2010-11-20T15:53:19.683 に答える
5

サービス バスは、サービス アーキテクチャの強化に役立ちます。

多くの組織は、ポイントツーポイントまたはスパゲッティ統合と呼ばれるものを持っています。これは良くない。サービス バスは、単一の統合ポイントを持つのに役立ちます。たとえば、リンクしたイメージ (Azure Service BUS アーキテクチャ) では、サービスを ESB に追加することで、各サービスがそれ自体を認証するのではなく、ファイアウォールの背後にある場合でも、アクセス制御を使用してサービス認証を統合できます。さらに、サービスのアドレスが変更されたとしても、それを参照するすべてのアプリケーションではなく、1 つの場所 (ESB) で変更するだけで済みます。

サービスバスは、サービスメッセージの検証、要件を満たさない場合のメッセージの拡張、プレーンな古い XML から SOAP への変換、メッセージのルーティング、メッセージの拡張など、他にも多くのことを実行できます。

于 2010-11-21T12:55:44.620 に答える
2

Service Bus はリレー サービスであるため、すべてのクライアントがクラウドを指します。ハッカーは、WCF サービスではなく、クラウドのリレー サービスを攻撃します。すべてのセキュリティ面はリレー サービスによって処理されます。

あなたの質問に正確に答えるために、すべての WCF サービスがサービス バスでホストされているわけではなく、あなたのソリューションで十分かもしれません。お客様のニーズと既存のインフラストラクチャによって異なります。

Juval Lowy のこの記事を強くお勧めします。

記事からの抜粋:

リレー サービスは、クラウドに常駐するサービスであり、接続を支援し、クライアント コールをサービスにリレーします。このようなリレー ソリューションでは、クライアントとサービスの両方のイントラネットがクラウドへの接続を許可する必要がありますが、クラウドはクライアントとサービスの両方にとって中立的な領域を構成するため、ほとんどの環境ではインターネットへの呼び出しが許可されます。まず、サービスとクライアントの両方が接続を確立し、リレー サービスに対して認証を行う必要があります。この時点で、リレーはサービスの場所と、サービスにコールバックする最適な方法も記録します。クライアントがリレー サービスを呼び出すと、リレー サービスはその呼び出し (クライアント メッセージ) をサービスに転送します。シーケンスは単純に見えますが、実際にはかなりの量の複雑なネットワーク プログラミングが必要です。メッセージングと標準のノウハウ、セキュリティの専門知識など。このようなソリューションは、大部分のアプリケーションにとって単純に手の届かないものです。これはまさに、Microsoft .NET Service Bus が埋めるように設計されたギャップです。これは、Microsoft のデータ センターでホストおよび管理される、既製のリレー サービスです。.NET Service Bus は、クラウド内の境界ネットワークとして機能し、クライアントとサービスの資格情報を管理する単一の場所を提供します。.NET Service Bus はサービスのフロント エンドです。サービスをカプセル化して、インターネット上に潜む悪意のある呼び出し元から隔離し、サービス拒否攻撃からリプレイ攻撃までのさまざまな攻撃を撃退する役割を担いますが、実際のサービスの身元と実際の場所を隠します。 通常の Windows Communication Foundation (WCF) サービスへの接続とリレー サービスの使用の主な違いは、ホスティングに関係しています。中継の場合、クライアントが要求を送信する前に、サービスは .NET Service Bus に接続し、自身を認証し、中継サービスからの呼び出しをリッスンする必要があります。つまり、ホストを明示的に起動するか、NT サービスをホストとして使用する必要があり、Windows Activation Service (WAS) (または IIS) でホストするメリットはありません。WAS は最初の要求が入った後にのみホストを起動するためです。 、ホストがそもそも .NET Service Bus に接続していないため、それは決して起こりません。.NET Service Bus は、専用のバインドと動作のセットを提供することで、WCF に適したプログラミング モデルをサポートします。概して、プログラミング モデルに若干のねじれがあることを除けば、リレー サービスを操作することは、他の WCF サービスを操作することと何ら変わりはありません。。

于 2013-11-06T01:03:31.157 に答える