3

私の雇用主は特定の市場向けのソフトウェアベンダーです。お客様は、Webサービスを使用して当社のシステムを他のシステムと統合します。マイクロソフトのテクノロジを使用しており、WebサービスはASP.NETとWCFに実装されています。

現在の一連のサービスを確認し、将来の統合のための会社の基準を考え出す時が来ました。私は「エンタープライズ統合パターン」を読んでおり、nServiceBusとMassTransitについても少し調べています。これらは、コントラクトのバージョン管理や単体テストなどの問題を単純化する可能性がありますが、外部クライアントにサービスを公開するためではなく、内部サービスバスを提供するために最も役立つようです。

お客様はさまざまなプラットフォームを使用しており、サービスが標準に準拠している必要があります。それは人によって意味が異なるかもしれませんが、WSDLで記述されたWebサービスにアクセスしたいと思っていると考えるのは安全だと思います。

このシナリオでは、WCFを使用する方法はありますか?

4

2 に答える 2

2

WCFは、Microsoftプラットフォームで最も標準に準拠したスタックです。良い点は、「箱から出して」さまざまなクライアントに対して非常に柔軟であり、悲しみを引き起こすものがある場合、それらのほとんどは、あまり問題なくカスタム動作を介して変更できることです。

于 2009-12-23T03:38:30.103 に答える
1

私が通常お勧めする代替手段は、メッセージブローカー間のAMQPを介した統合です。つまり、ポーリングパラダイムの代わりにプッシュパラダイムを使用できます(これは、比較すると非常に強力でスケーラブルです)。

RabbitMQなどの独自のブローカーをローカルにセットアップします。次に、統合パートナーに設定させます。(簡単:ダウンロードするだけです)。

パートナーが同じデータセンターから統合している場合は、ネットワークの分割をほとんど想定しないでください。つまり、ブローカーを共有できます。一方、異なるネットワークを使用している場合は、ブローカーフェデレーションモードで設定できます。(実行して他のブローカーrabbitmq-plugins enable rabbitmq_federationポイントします)

これで、たとえばMassTransitを使用できます。

ServiceBusFactory.New(sbc =>
{
    sbc.UseRabbitMqRouting();
    sbc.ReceiveFrom("rabbitmq://rabbitmq.mydomain.local/myvhost/myapplication");
    // sbc.Subscribe( s => s ... );
});

、統合を行わない場合と同じように。

http://rabbitmq.mydomain.local:55672/を見ると、RabbitMQの管理インターフェイスが見つかります。MassTransitは、メッセージタイプごとに交換を作成し(その交換にそのようなメッセージを送信すると、すべてのサブスクライバーにファンアウトされます)、承認ルールを設定できます。

承認ルールは、ユーザーごとの正規表現の形式にすることも、LDAPに統合することもできます。これについては、ドキュメントを参照してください。

WANを経由していて、IPSecトンネルがない場合にもSSLが必要になります。そのドキュメントはhttp://www.rabbitmq.com/ssl.htmlにあり、次のように有効にします。これ

それでおしまい!楽しみ!

ポストスクリプト:副作用としてすべてのインフラストラクチャを管理するのに役立つ冒険を感じている場合は、puppetを見ることができます。Puppetは、サーバーのプロビジョナーおよび構成マネージャーです。この場合、puppetを使用してSSLを設定することに関心があります。まず、ドメインのワイルドカードサブドメイン証明書を注文し、その証明書を使用して他の証明書に署名します。これを委任できます。「これで、テスト認証局が使用するキーと証明書を生成できます。 。」-新しい権限を作成する代わりに、証明書の証明書署名要求を生成します-そしてRMQにこれをSSLに使用させます-インターネットで有効になります。

于 2012-05-03T09:51:21.420 に答える