サービス・メッセージ・オブジェクト (SMO) は、サービス間で交換されるメッセージを処理し、取り扱うための抽象化層を提供します。
このすべての情報は SDO DataObject としてアクセスされます。 さらに、SMO の全体的な構造を指定するスキーマ宣言があります。スキーマは WebSphere Integration Developer によって生成されます。
すべての SMO は同一の基本構造を持ちます。この構造は、ServiceMessageObject と呼ばれるルート・データ・オブジェクトで構成されており、ルート・データ・オブジェクト内にヘッダー、本体、添付ファイル、およびコンテキスト・データを表す他のデータ・オブジェクトが格納されています。ヘッダー、本体、およびコンテキストの正確な構造は、統合開発でメディエーション・フローをどのように定義するかにより異なります。メディエーション・フローはサービス間でメディエートするために実行時に使用されます。
通常、アプリケーション・データを保持している SMO 本体の構造は、メディエーション・フローの構成時に指定した Web サービス記述言語 (WSDL) メッセージによって決定されます。
SMO コンテキスト・オブジェクトは、ユーザー定義、またはシステム定義です。 ユーザー定義コンテキスト・オブジェクトを使用してプロパティーを保管し、メディエーション・プリミティブはこれを後でフロー内で使用することができます。 ユーザー定義コンテキスト・オブジェクトの構造をビジネス・オブジェクト内で定義し、そのビジネス・オブジェクトを要求フローの入力ノードで使用します。 相関コンテキスト、一時コンテキスト、および共用コンテキストは、ユーザー定義コンテキスト・オブジェクトです。
SMO は、メッセージ・ヘッダー、メッセージ・ペイロード、メッセージの添付ファイル、およびメッセージ・コンテキストへのアクセスまたはこれらの変更を行うためのインターフェースを提供します。
ランタイムは、対話エンドポイント間でやり取りされるメッセージに作用します。ランタイムは SMO オブジェクトを作成し、メディエーション・フローはこれを使用してメッセージを処理します。
メディエーション・フローを作成するときに、WebSphere Integration Developer は各端末 (入力、出力、または障害) のメッセージ本文のタイプを指定し、オプションでコンテキスト情報のタイプも指定します。ランタイムは、この情報を使用してメッセージを指定されたタイプの SMO オブジェクトに変換します。
動的ルーティングを実現するには、WebSphere Service Registry and Repository (WSRR)、つまりデータベースを使用して、対話エンドポイントを検索します。WSRR 照会、またはデータベース検索の結果は SMO の特定の位置に保管できます。ランタイムはそこから動的エンドポイントを取得します。