この付録では、UMLシーケンス・ダイアグラムを示し、Service Busランタイムを使用したメソッド・コールのフローについて説明します。
この付録の内容は次のとおりです。
図E-1のシーケンス・ダイアグラムに、Service Busランタイムでのインバウンド・メッセージのフローを示します。
最初に、HTTP Servletなどのインバウンド・アーティファクトが、クライアント・リクエストを受け取ります。トランスポート・プロバイダが、InboundTransportMessageContext
と呼ばれるデータ構造を作成します。メッセージ・コンテキストが、リクエストのヘッダーをメタデータ・オブジェクトにパッケージ化し、HTTPストリームのペイロードを特定のService Busソース・オブジェクトに変換します。トランスポート・プロバイダは、トランスポート・マネージャを呼び出し、メッセージを受信します。転送マネージャがメッセージを処理し、Service Busランタイムでの処理に渡します。ランタイムは、メッセージ・コンテキストのサービス、サービスのバージョンおよびその他の情報を要求します。また、処理に必要なメタデータおよびペイロードについても要求します。ランタイムは、レスポンス・メタデータおよびレスポンス・ペイロードを作成するようMessageContext
に要求し、その後でclose()
を呼び出します。クライアントにレスポンスが返されます。
図E-2のシーケンス・ダイアグラムに、Service Busランタイムでのアウトバウンド・メッセージのフローを示します。
Service Busランタイムは、メッセージを外部サービスにルーティングします。トランスポート・プロバイダはリクエストのメタデータおよびTransportSender
オブジェクトを作成します。このオブジェクトには、ペイロード、サービス品質および再試行に関する情報が含まれます。次に、プロバイダは、(トランスポート・サブシステムの中心となるハブである) TransportManager
をコールし、メッセージを非同期で送信します。TransportManager
は、トランスポート・プロバイダをコールし、メッセージを送信します。トランスポート・プロバイダはOutboundTransportMessageContext
を作成します。その後、トランスポート・プロバイダは、メタデータ、ペイロードおよびその他の情報を要求し、適切なアクションを実行します。たとえば、JMSメッセージの場合、トランスポート・プロバイダは、JMS APIを使用してヘッダーおよびペイロードにデータを設定し、プロトコル固有の送信操作を呼び出します。
レスポンスを受信すると、トランスポート・プロバイダはTransportSendListener
オブジェクトをコールします。最終的に、トランスポート・マネージャがレスポンス・パイプラインを呼び出します。パイプライン・アクションが実行された後、アウトバウンド・エンドポイントが閉じられます。
サービスを作成する際は、ウィザードの指示に従って、Oracle Service Bus Consoleの複数のページで設定を行います。トランスポート・タイプを選択する場合、Oracle Service Busコンソールは、トランスポート・マネージャを呼び出して、リストにある各エントリに対応するオブジェクトを取得し、各トランスポート・プロバイダからバインディングを取得します。このバインディングは、サポートされるものとされないものなど、コンソールがリクエストする質問を解決します。この手順により、コンソールのページに適切な情報が入力されます。図E-3に、サービスの作成プロセスを示します。次に、トランスポート・ベースのサービスの基本手順を示します。