アダプターは、Java Message Service (JMS) の IBM の WebSphere MQ インプリメンテーションを利用します。JMS は、エンタープライズ・メッセージング・システムにアクセスするためのオープン・スタンダードの API です。JMS の目的は、ビジネス・アプリケーションが、ビジネス・データとイベントを非同期で送受信できるようにすることです。
図 2 に、メッセージ要求通信を示します。doVerbFor() メソッドがコラボレーションからビジネス・オブジェクトを受け取ると、アダプターはそのビジネス・オブジェクトをデータ・ハンドラーに渡します。データ・ハンドラーは、ビジネス・オブジェクトを XML テキストに変換し、アダプターはメッセージとしてそのテキストをキューに発行します。そこで、JMS レイヤーが、キュー・セッションを開いてメッセージを転送するための適切な呼び出しを行います。
図 2. アプリケーションとアダプター間の通信方式: メッセージ要求
図 3 に、メッセージが戻る方向を示します。pollForEvents() メソッドが、入力キューから次に該当するメッセージを取得します。メッセージは、処理中キューに入り、処理が完了するまでそこに置かれます。静的または動的いずれかのメタオブジェクトを使用して、アダプターは、まずメッセージ・タイプがサポートされているかどうかを判断します。サポートされていれば、構成されているデータ・ハンドラーにそのメッセージを渡し、そのデータ・ハンドラーがメッセージをビジネス・オブジェクトに変換します。設定されている動詞は、メッセージ・タイプについて設定されている変換プロパティーを反映します。その後、アダプターはビジネス・オブジェクトがコラボレーションでサブスクライブされているかどうかを判断します。サブスクライブされている場合は、gotApplEvents() メソッドがビジネス・オブジェクトを InterChange Server Express に引き渡して、そのメッセージは処理中キューから除去されます。