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