エクスポートによってインテグレーション・モジュール内のサービスが外部クライアントに使用可能となり、インポートによってインテグレーション・モジュール内の SCA コンポーネントが外部サービスを呼び出すことができるようになります。エクスポートまたはインポートに関連付けられたバインディングは、プロトコル・メッセージとビジネス・オブジェクトとの関係を指定します。また、操作と障害を選択する方法も指定します。
エクスポートによる情報のフロー
エクスポートは、インポートがワイヤリングされたコンポーネントを対象とする要求を受信します。要求の受信に試用される特定のトランスポート (例えば、HTTP) は、エクスポートに関連付けられたバインディングによって決まります。図 1. エクスポートを経由したコンポーネントへの要求のフロー
エクスポートが要求を受信するとき、以下の一連のイベントが発生します。
- WebSphere® MQ バインディングの場合に限り、ヘッダー・データ・バインディングがプロトコル・ヘッダーをヘッダー・データ・オブジェクトに変換します。
- 関数セレクターがプロトコル・メッセージからネイティブ・メソッド名を判別します。ネイティブ・メソッド名は、エクスポート構成により、エクスポートのインターフェース上の操作名にマップされています。
- メソッドの要求データ・ハンドラーまたは要求データ・バインディングは、要求を要求ビジネス・オブジェクトに変換します。
- エクスポートは要求ビジネス・オブジェクトでコンポーネント・メソッドを呼び出します。
- HTTP エクスポート・バインディングと Web サービス・エクスポート・バインディングは、SCA コンポーネントに対して同期呼び出しを行います。
- JMS、汎用 JMS、MQ JMS、および WebSphere MQ エクスポート・バインディングは、SCA コンポーネントに対して非同期呼び出しを行います。
エクスポートは、コンテキスト伝搬が有効になっている場合、プロトコル経由で受信したヘッダーおよびユーザー・プロパティーを伝搬できます。その後、エクスポートにワイヤリングされたコンポーネントは、これらのヘッダーおよびユーザー・プロパティーにアクセスできます。詳しくは、WebSphere Integration
Developer インフォメーション・センターのトピック『伝搬』を参照してください。
これが両方向操作の場合、コンポーネントは応答を返します。
以下の一連のステップが発生します。
- 通常の応答メッセージがエクスポート・バインディングによって受信されると、メソッドの応答データ・ハンドラーまたは応答データ・バインディングは、ビジネス・オブジェクトを応答に変換します。
応答が障害の場合、メソッドの障害データ・ハンドラーまたは障害データ・バインディングは障害を障害応答に変換します。
HTTP エクスポート・バインディングにのみ適用されることですが、応答がランタイム例外の場合、ランタイム例外データ・ハンドラー (構成済みの場合) が呼び出されます。
- WebSphere MQ バインディングの場合に限り、ヘッダー・データ・バインディングがヘッダー・データ・オブジェクトをプロトコル・ヘッダーに変換します。
- エクスポートはサービス応答をトランスポート経由で送信します。
インポートによる情報のフロー
コンポーネントはインポートを使用して、モジュール外部のサービスに要求を送信します。
要求は、関連付けられたバインディングによって決まる特定のトランスポートを使用して送信されます。図 3. インポートを経由したコンポーネントからサービスへのフロー
コンポーネントは、要求ビジネス・オブジェクトでインポートを呼び出します。
注: - HTTP インポート・バインディング、Web サービス・インポート・バインディング、および EJB インポート・バインディングは、呼び出し側コンポーネントが同期方式で呼び出す必要があります。
- JMS、汎用 JMS、MQ JMS、および WebSphere MQ インポート・バインディングは、非同期方式で呼び出す必要があります。
コンポーネントがインポートを呼び出した後、以下の一連のイベントが発生します。
- メソッドの要求データ・ハンドラーまたは要求データ・バインディングは、要求ビジネス・オブジェクトをプロトコル要求メッセージに変換します。
- WebSphere MQ バインディングの場合に限り、メソッドのヘッダー・データ・バインディングがヘッダー・ビジネス・オブジェクトをプロトコル・ヘッダーに設定します。
- インポートはトランスポートを経由して、サービス要求でサービスを呼び出します。
これが両方向操作の場合、サービスは応答を戻し、以下の一連のステップが発生します。
- WebSphere MQ バインディングの場合に限り、ヘッダー・データ・バインディングがプロトコル・ヘッダーをヘッダー・データ・オブジェクトに変換します。
- 応答が障害かどうかを判別します。
- 応答が障害の場合、障害セレクターは障害を検査して、どの WSDL 障害にマップするかを決定します。次にメソッドの障害データ・ハンドラーは、障害を障害応答に変換します。
- 応答がランタイム例外の場合、ランタイム例外データ・ハンドラー (構成済みの場合) が呼び出されます。
- メソッドの応答データ・ハンドラーまたは応答データ・バインディングは、応答を応答ビジネス・オブジェクトに変換します。
- インポートは応答ビジネス・オブジェクトをコンポーネントに返します。