![]() ![]() ![]() ![]() |
この章では、AquaLogic Service Bus のローカル転送について説明します。内容は以下のとおりです。
通常、サービス バス アーキテクチャには、複雑なメッセージ フローが含まれています。そのメッセージ フローでは、メッセージは、より大きな複数のプロキシ サービス フローにまとめられる複数のプロキシ サービスにルーティングされています。これらの複数のプロキシ サービスのシナリオにおける個々のプロキシ サービスは、フローの次のプロキシ サービスにルーティング、パブリッシュ、またはコールアウトされます。複数のプロキシ サービスを設計する理由は、エンド ツー エンドのメッセージ フローのさまざまなコンポーネントのモジュール性と区分化をサポートするためです。複数のプロキシ サービス フローにおける個々のプロキシ サービスには以下が必要です。
ローカル転送ベースのプロキシ サービスは、その他のプロキシ サービスからのみ呼び出すことができ、その他のクライアントからは呼び出せません。呼び出しは、AquaLogic Service Bus によって最適化されます。ローカル プロキシ サービスは URI を持ちません。ただし、ローカル転送プロキシ サービスによってサポートされるサービスとインタフェースのタイプには制約はありません。1 つの例外は、SAML がパス スルー シナリオでのみサポートされることです。
呼び出しを行うプロキシ サービスのサービス品質 (QoS) が Exactly Once に定義されている場合、そのサービスのトランザクションは、ローカル転送プロキシ サービスに伝播されます。
つまり、呼び出されたローカル転送プロキシ サービスは呼び出しを行ったプロキシ サービスのトランザクション動作を継承します。プロキシ サービスは転送レベルまたはメッセージ レベルで認証を行うことができます。メッセージレベルが有効な場合は、メッセージレベルで認証されたクライアントが有効になります。メッセージレベルで認証されたクライアントが有効でない場合は、転送レベルで認証されたクライアントが有効になります (転送レベルが有効な場合)。メッセージレベルおよび転送レベルで認証されたクライアントのいずれも有効になっていない場合、匿名のクライアントが有効なクライアントになります。
プロキシ サービスがローカル転送プロキシ サービスを呼び出す場合、呼び出しを行うプロキシ サービスの有効なクライアントが、呼び出されるローカル プロキシ サービスの転送レベルのクライアントになります。ローカル転送プロキシ サービスでは、アクセス制御ポリシーを使用して、このクライアントにアクセスを認可できます。この方法により、エンド ツー エンドのメッセージ フロー全体で、最初のプロキシ サービスのクライアントを、後続のすべてのプロキシ サービスに伝播できます。
ローカル転送プロキシ サービスは、ユーザ定義の転送ヘッダをサポートします。プロキシ サービスで HTTP 転送を使用するシナリオを想定してください。HTTP 転送により、ローカル プロキシ サービスにルーティングし、HTTP プロキシ サービスは転送ヘッダ アクションを使用して、ヘッダをローカル プロキシ サービスに渡します。このシナリオでは、HTTP プロキシ サービスが Content-Type ヘッダを受け取った場合、このヘッダをユーザ ヘッダとしてローカル転送で使用できるため、型付きの転送ヘッダとしてではなく、標準のユーザ ヘッダを使用してアクセスできます。
AquaLogic Service Bus のテスト ブラウザからローカル転送プロキシ サービスを呼び出すことができます。その他のすべてのサービスと同様に、ローカル転送プロキシ サービス用にメトリックが収集されます。ただし、ローカル転送プロキシ サービスは UDDI にはパブリッシュできません。
ローカル転送プロキシ サービスを使用してサポートされる一般的なシナリオは、プロキシ サービスを異なる転送を使用して呼び出す必要があるシナリオです。これは、メッセージ フローのパスで、フロントエンド プロキシ サービス (転送ごとに 1 つのサービス) のセットをローカル転送プロキシ サービスの前に置くことによって実現されます。これらのフロントエンド プロキシ サービスは、メッセージをローカル転送プロキシ サービスにルーティングするだけです。次の図は、このシナリオについて説明しています。
もう 1 つの一般的なシナリオは、プロキシ サービスのタイプが任意の SOAP または任意の XML である場合に、プロキシ サービスが、異なるエンタープライズ システムに対するフロントエンドとして機能するシナリオです。このフロントエンド プロキシ サービスでは、さまざまなフォーマットでメッセージを受信し、受信したすべてのメッセージに共通の方法 (WS-Addressing SOAP ヘッダなど) を使用して、メッセージを適切なローカル転送プロキシ サービスにルーティングできます。このシナリオでは、フロントエンド プロキシ サービスは、エンタープライズ システムまたはメッセージ フォーマットとセマンティクスの情報をほとんど持たない汎用ルータとして機能します。設計時にルーティング ルールの情報をさらに抽象化するために、フロントエンド プロキシ サービスは、動的なルーティングを使用してメッセージをローカル転送プロキシ サービスにルーティングできます。動的なルーティングがプロキシ サービスでどのように使用されるかを示す例については、『ユーザーズ ガイド』の「動的ルーティングの使用」を参照してください。
フロントエンド サービスからメッセージをルーティングされた各ローカル転送プロキシ サービスは、今度は、特定のビジネス サービスのフロントエンド プロキシ サービスとして機能します。ローカル転送プロキシ サービスは、ルーティングするビジネス サービスで必要なメッセージ フォーマットを認識しています。このシナリオでは、これらのローカル転送プロキシ サービスは、機能上のプロキシ サービスとして動作します。機能上のプロキシ サービスの役割は、特定のビジネス サービスの呼び出しにアクセス制御を適用したり、対象ビジネス サービスを適切に呼び出すために必要なメッセージのトランスフォーメーションを実行したりすることです。次の図は、このシナリオについて説明しています。
![]() ![]() ![]() |