アダプターは、メタデータ主導型です。アダプターは、JavaTM Message Service (JMS) の MQ インプリメンテーション、つまり、エンタープライズ・メッセージング・システムにアクセスするための API を使用します。
アダプターは、WebSphere MQ のキューを使用して、WebSphere Commerce から InterChange Server Express および InterChange Server Express から WebSphere Commerce への非同期データ交換を実現します。データは、WebSphere Commerce のキューと InterChange Server Express との間で XML メッセージ形式でやり取りされます。InterChange Server Express コラボレーション・オブジェクトで処理できるビジネス・オブジェクトへのデータ変換には、XML データ・ハンドラーを使用します。
同期交換でのアダプターの使い方については、要求と応答の同期対話を参照してください。
注文が WebSphere Commerce に入ると、OrderCreate メッセージが XML 形式で生成され、以下の図に示すように WebSphere MQ 出力キューに入ります。この図では、WebSphere Commerce と InterChange Server Express は、異なるキュー・マネージャーを使用する別々のマシンにインストールされているので、WebSphere Commerce からの出力用のリモート・キュー定義を用意し、InterChange Server Express から見るとローカルにある入力キューに接続することが必要であるものとします。WebSphere Commerce と InterChange Server Express が同じマシンにインストールされている場合は、1 つのキューで、WebSphere Commerce からの出力キューと InterChange Server Express 用の入力キューの両方の役割を果たすことができます。
WebSphere Commerce でのデータ・イベントを検出するため、アダプターは WebSphere Commerce 出力キューをポーリングして、新しい XML メッセージを検索します。新しいメッセージが見つかると、アダプターはそれを入力キューに渡し、データ・ハンドラーを呼び出して、そのメッセージを、WebSphere Commerce から出力されるデータの構造に固有のビジネス・オブジェクトに変換してから、そのビジネス・オブジェクトを InterChange Server Express 内のコネクターに渡します。コネクターは、マップを呼び出して、WebSphere Commerce 固有のビジネス・オブジェクトから汎用のビジネス・オブジェクトを生成し、その汎用のビジネス・オブジェクトを 1 つ以上のコラボレーション・オブジェクトに引き渡します。コラボレーション・オブジェクトによるビジネス・オブジェクトの処理が終了すると、汎用のビジネス・オブジェクトはアプリケーション固有のビジネス・オブジェクトにマップされて、バックエンド・アプリケーションに合わせて構成されているアダプター (SAP 用の WebSphere Business Integration Server Express アダプターなど) に引き渡されます。
反対に、ICS から WebSphere への送信では、Adapter for WebSphere Commerce は、コラボレーションからビジネス・オブジェクトを受け取り、データ・ハンドラーを使用してそれらを XML 形式のメッセージに変換してから、そのメッセージを WebSphere Commerce WebSphere MQ キューに引き渡します。
要求と応答の同期対話では、以下のトピックで説明するように、WebSphere Commerce アプリケーションへの追加やカスタマイズが必要となります。
WebSphere Commerce 拡張パック (
http://www-3.ibm.com/software/webservers/commerce/epacks/v54/
で入手可能) を追加すれば、アダプターを使用して、WebSphere Commerce
メッセージング・システムから InterChange Server Express
などの外部システムへの要求と応答の対話で同期メッセージ・フローを設定することができます。この方法の詳細については、WebSphere Commerce 5.4 および IBM WebSphere
Business Integration Server Express システムの統合資料を参照してください。
WebSphere Commerce 拡張パックを使用せずに、Replyto キューを使って、WebSphere Commerce と InterChange Server Express 間の同期交換のシミュレーションを設定することもできます。
この方法の詳細については、同期の引き渡しを参照してください。
WebSphere Commerce アプリケーションで発生したデータ・イベントの通知は、アダプターのポーリング機構を介して実現されます。アダプターは、複数の入力キューをポーリングし、ラウンドロビン方法で各キューをポーリングしながら、それぞれのキューから指定された数のメッセージを取得します。ポーリング時に取得したメッセージごとに、アダプターは動的子メタオブジェクトを追加します (ビジネス・オブジェクトで指定されている場合)。子メタオブジェクトの値を使用して、アダプターは、メッセージのフォーマットの属性と、メッセージの取得元の入力キューの名前の属性を生成することができます。
入力キューからメッセージを取得すると、アダプターは、メッセージ・ヘッダーの FORMAT フィールドに関連付けられたビジネス・オブジェクト名を探します。次に、メッセージ本体が、該当するビジネス・オブジェクトの新しいインスタンスと共に、データ・ハンドラーに渡されます。フォーマットに関連付けられたビジネス・オブジェクト名が見つからない場合は、メッセージ本体だけがデータ・ハンドラーに渡されます。メッセージの内容からビジネス・オブジェクトが正常に生成された場合、アダプターは、それがサブスクライブされているかどうかを確認してから、InterChange Server Express に引き渡します。
メッセージを処理する場合に使用するビジネス・オブジェクトと動詞のタイプは、WebSphere MQ メッセージ・ヘッダーに収められている FORMAT フィールドに基づきます。アダプターは、メタオブジェクトの項目を使用して、ビジネス・オブジェクトの名前と動詞を判断します。WebSphere MQ メッセージ・ヘッダーの FORMAT フィールド・テキストと関連付けるビジネス・オブジェクト名と動詞を格納する、メタオブジェクトを作成します。
必要に応じて、アダプターに渡すビジネス・オブジェクトに子として追加する動的メタオブジェクトを作成することもできます。子メタオブジェクトの値は、アダプター全体に対して指定される静的メタオブジェクトで指定されている値をオーバーライドします。子メタオブジェクトが定義されていない、または必要な変換プロパティーが定義されていない場合、アダプターは、デフォルトで、静的メタオブジェクトの値を調べます。単一の静的アダプター・メタオブジェクトの代わりに、または補足として、1 つ以上の動的子メタオブジェクトを指定することができます。