2010-11-20 8 views
2

私はWCFとサービスバスのトピックを読んでいますが、一部のトピックではサービスバスを使用しません。サービスバスの使用のこのイメージを確認:上の画像でWCFを持っているとサービスバスが必要なのはなぜですか?

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

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

私は、ネットワーク全体のファイアウォールを削除したくないことを理解していますが、IISで公開されているWebサーバーを作成し、そのサービスを実行することができます。または私は何かを逃していますか?

+0

しかし、彼らはおそらく企業のウェブサイト用のウェブサーバーを持っています。彼らはそれでサービスを実行することができますか? – Thomas

答えて

6

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

しかし、service busは、メッセージルーティングを担当するという点で異なります。

WCFなどのビットを使用してサービスバスを構築することはできますが、WCF自体はサービスバスではありません。

5

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

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

サービスバスがメッセージを高め、サービスのメッセージを検証し、彼らはあなたの要件を満たしていない場合には、それらを強化する、SOAPに昔ながらのXMLから例えばそれらを変換し、メッセージのルーティングを含む他の多くのことを行うことができますなど

2

サービスバスはすべてのクライアントがクラウドを指すようにリレーサービスです。ハッカーはあなたのWCFサービスではなく、クラウドの中継サービスを攻撃します。すべてのセキュリティの側面が中継サービスによって配慮されました。

あなたの質問に正確に答えるために、すべてのWCFサービスがサービスバスでホストされているわけではなく、あなたの解決策で十分です。あなたのニーズと既存のインフラに依存します。

Juval Lowy's this articleを強くお勧めします。記事から

抜粋:

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

関連する問題