サービス・セレクターは、同じサービス・インターフェースの複数の実装を 1 つのエンドポイント・アドレスにまとめてグループ化できるようにするサービス実装パターンです。サービス実装によって異なるサービス品質または振る舞いを提供することができるため、それぞれの要件または優先順位に応じた特定の実装に対して、各クライアント要求を突き合わせることができます。
このパターンは、以下の目的で使用できます。
サービス・プロバイダーのセットが、同じインターフェースを実装するエンタープライズ・サービス・バス (ESB) メディエーションをデプロイすることによって仮想化されます。このメディエーションは、各クライアント要求のコンテキストとコンテンツに基づいて特定のエンドポイントを選択するために必要なロジックを実装し、選択されたサービス・プロバイダーに要求をルーティングします。クライアントに表示されるのは、メディエーションによって提供された仮想サービスだけです。クライアントには、メディエーションがサービスの実際のプロバイダーのように見えます。
サービス・メディエーションは、以下を含めた多数の追加機能を実装できます。
サービス選択シナリオの例を下図に示します。
このソリューションが実装するメディエーション・フローには以下のフローが含まれます。
要求フローは、各インバウンド要求を、複数の定義済みサービス・プロバイダー・エンドポイントのいずれかにマップします。
さらに、必要に応じて要求メッセージおよび応答メッセージをログに記録し、トレースすることができます。