WebSphere Business Integration Server Express システム内の有効なアプリケーション固有ビジネス・オブジェクトによって、eMatrix システムの必須のコンポーネントがモデル化されます。以下の eMatrix コンポーネントは、ビジネス・オブジェクトとしてモデル化することができます。
ビジネス・オブジェクト定義は、ビジネス・オブジェクト・レベルで定義されたアプリケーション固有情報 (ASI) の ematrix_class の値で表されているコンポーネントを指定します。上述の eMatrix コンポーネントに対応する 3 つの有効な ematrix_class の値については、次のセクションで説明します。
WebSphere Business Integration Server Express システムでは、eMatrix ビジネス・オブジェクト・タイプは、値が business_object の ematrix_class を指定するビジネス・オブジェクト・レベルの ASI を含むビジネス・オブジェクト定義によって示されます。また、ASI には、この特定のビジネス・オブジェクトがモデルとなる eMatrix ビジネス・オブジェクト・タイプの名前を指定する object_type パラメーターが含まれていなければなりません。例えば、次のようになります。
ematrix_class=business_object; object_type=<name of eMatrix business object type>
eMatrix ビジネス・オブジェクト・タイプには、2 セットのフィールドが含まれています (従ってシステム内のそれらのビジネス・オブジェクト定義にも含まれます)。フィールド・セットは以下のとおりです。
ビジネス・オブジェクトを通じて提供される eMatrix プロパティーが、表 6 にリストされています。
プロパティー | 説明 | 予期される属性タイプ |
---|---|---|
object_id | eMatrix オブジェクトの一意の ID | String |
Name | eMatrix オブジェクトの名前 | String |
Revision | eMatrix オブジェクト改訂番号 | String |
Policy | eMatrix オブジェクトの制御ポリシー | String |
Owner | eMatrix オブジェクトの所有者 | String |
State | eMatrix オブジェクトの現在の状態 | String |
Vault | このオブジェクトを格納する eMatrix ボールト | String |
to_relationship | このオブジェクトがサポートする 1 つ以上の「関係先」 eMatrix 関係 | eMatrix 関係をモデル化する子オブジェクト Cardinality = 1...n |
from_relationship | このオブジェクトがサポートする 1 つ以上の「関係元」 eMatrix 関係 | eMatrix 関係をモデル化する子オブジェクト Cardinality = 1...n |
eMatrix では、オブジェクト ID を通じて、またはタイプ、名前、および改訂の組み合わせを通じて、ユーザーがオブジェクトを識別します。そのため、すべてのビジネス・オブジェクトは、以下のいずれかを含んでいなければなりません。
これらは、ビジネス・オブジェクト定義内のキー値となります。例については 、ビジネス・オブジェクト定義の例を参照してください。
特定のビジネス・オブジェクト属性が eMatrix 属性にマップされるように指定するためには、以下を実行します。
attr=<eMatrix attribute name>
と記述します。表 7 に、PartNumber および Size の 2 つのユーザー定義 eMatrix 属性を含み、ASI プロパティー object_id にマップされるビジネス・オブジェクト定義を示します。
属性名 | タイプ | デフォルト値 | アプリケーション固有情報 | IsKey |
---|---|---|---|---|
ObjectId | String | prop=object_id | はい | |
State | String | prop=state | いいえ | |
PartNumber | String | ASX31 | attr=PartNumber | いいえ |
Size | Integer | 15 | attr=Size | いいえ |
表 8 に示すのは同じビジネス・オブジェクト定義ですが、eMatrix プロパティーの name および revision にマップされています。
属性名 | タイプ | デフォルト値 | アプリケーション固有情報 | IsKey |
---|---|---|---|---|
Name | String | AllSeasonX31 | prop=name | あり |
Revision | String | 1 | prop=revision | あり |
State | String | prop=state | なし | |
PartNumber | String | ASX31 | attr=PartNumber | なし |
Size | Integer | 15 | attr=Size | なし |
WebSphere Business Integration Server Express システムでは、eMatrix 関係は、値が relationship の ematrix_class を指定するビジネス・オブジェクト・レベルの ASI を含むビジネス・オブジェクト定義によって示されます。また、ASI には、この特定のビジネス・オブジェクトがモデルとなる eMatrix 関係の名前を指定する object_type パラメーターが含まれていなければなりません。例えば、次のようになります。
ematrix_class=relationship; object_type=<name of eMatrix relationship type>
前述のビジネス・オブジェクト定義と同様に、eMatrix 関係を反映するビジネス・オブジェクト定義には、eMatrix プロパティー (固定) および属性 (ユーザー定義) の組み合わせを含めることができます。
表 9 に、関係プロパティーをリストします。
プロパティー | 説明 | 予期される属性タイプ |
---|---|---|
relationship_id | eMatrix 関係の一意の ID | String |
to_object |
この関係の関係先の eMatrix オブジェクト |
eMatrix ビジネス・オブジェクトをモデル化する子オブジェクト Cardinality = 1 |
from_object |
この関係の関係元の eMatrix オブジェクト |
eMatrix ビジネス・オブジェクトをモデル化する子オブジェクト Cardinality = 1 |
すべての関係ビジネス・オブジェクト定義には、以下のデータが含まれていなければなりません。
関係定義は、以下のいずれかの書式で記述します。
--Business_Object_A | -- to_relationship = Relationship_A_to_B | -- to_object = Business_Object_B
または
--Business_Object_A | -- from_relationship = Relationship_A_to_B | -- from_object = Business_Object_B
例については、関係の例を参照してください。
アダプターは、ビジネス・オブジェクト定義で明示的にその関係を定義した場合のみ、異なるオブジェクト間の関係を認識できます。ビジネス・オブジェクト同士が関連する場合、アダプターは、ビジネス・オブジェクトを接続するために関係オブジェクトを必要とします。ビジネス・オブジェクト同士が関係オブジェクトによって接続されていない場合、関連しないものと見なされます。
例えば、次のようなビジネス・オブジェクトを定義します。
--Business_Object_A | -- to_relationship = Relationship_A_to_B | -- to_object = Business_Object_B
そして親ビジネス・オブジェクト (オブジェクト A) で Retrieve を実行した場合、アダプターは A を取り込み、また、A から B への関係を通じて A に関係付けられているタイプ B のオブジェクトのみを取り込みます。
ただし、次のビジネス・オブジェクトでは異なる結果になります。
--Business_Object_D | -- Business_Object_E
このとき、親ビジネス・オブジェクト (オブジェクト D) で Retrieve を実行すると、アダプターは D を取り込み、また、D に関連するかどうかにかかわらずタイプ E のオブジェクトを取り込みます。この場合、ビジネス・オブジェクト E は、有効な検索基準を含む属性を持っていなければなりません。持たない場合はエラーとなります。
ビジネス・シナリオおよび関係に応じて、関連するビジネス・オブジェクトと関連のないビジネス・オブジェクトを定義中で結合することができます。例えば、以下のようなビジネス・オブジェクトを定義することができます。
--Business_Object_A | -- to_relationship = Relationship_A_to_B | -- to_object = Business_Object_B | -- Business_Object_D
ここで、ビジネス・オブジェクト A および B は互いに関連していますが、ビジネス・オブジェクト D はそのどちらにも関連していません。
以下の 2 つの例では、それぞれのビジネス・オブジェクト定義内で関係の定義は異なっていますが、同じ方法で関連付けられています。
--Car | -- to_relationship = CarToTireRelationship | -- to_object = Tire
--Tire | -- from_relationship = CarToTireRelationship | -- from_object = Car
WebSphere Business Integration Server Express システムでは、eMatrix コマンドは、command という値を使用して ematrix_class を指定する、ビジネス・オブジェクト・レベルの ASI を含むビジネス・オブジェクト定義で表現されます。例えば、次のようになります。
ematrix_class=command
コマンド・ビジネス・オブジェクト定義は、以下のような構造になっています。
コマンド・オブジェクトには 2 つの属性があります。1 つはコマンドの入力を表し、もう 1 つはコマンドの出力を表します。 入力属性は必須であり、オブジェクトである必要があります。出力属性はオプションであり、ストリングまたはオブジェクトです。入力属性および出力属性は、対応する属性レベル ASI で識別されます (type=input または type=output)。
入力オブジェクトには、実行されるコマンド・ストリングと複数の変数が含まれ、この変数の値がコマンドに挿入されます。コマンド・ストリングは入力オブジェクトのビジネス・オブジェクト・レベル ASI に入れられ、command= プレフィックスで識別されます。次のスクリーン・ショットは、コマンドと入力変数を含む入力オブジェクトを示します。
このスクリーン・ショットには、expand bus コマンドが含まれています。 入力オブジェクトの属性は、MQL インタープリターに送信される前にこのコマンド・ストリングに挿入される変数を表します (図 5 を参照)。
出力属性はストリングまたはビジネス・オブジェクトです。 ビジネス・オブジェクトの出力属性がストリングの場合、出力属性にはコマンドによって戻されるテキストが含まれます。出力属性がオブジェクトの場合、コマンドの結果はデータ・ハンドラーを介して渡され、その後ビジネス・オブジェクト階層に変換されます。 この場合、コマンド・オブジェクトの出力属性にはデータ・ハンドラーを起動する情報を含める必要があります。出力属性の ASI には、次のフィールドが追加される場合があります。
ASI 出力属性 | 説明 |
---|---|
dh_mo | データ・ハンドラー・メタオブジェクト名を指定します |
dh_mimetype | データ・ハンドラーに渡される
MIME タイプ・コンテンツを指定します |
dh_classname | 完全修飾データ・ハンドラー
Java クラス名を指定します |
次のスクリーン・ショットは、出力属性と、その対応する出力オブジェクトの例を示します。これらのスクリーン・ショットは、前出の入力オブジェクトのスクリーン・ショットとは関連していません。
すべてのビジネス・オブジェクトは動詞を含んでおり、この動詞は、アプリケーション固有のビジネス・オブジェクト内のデータを eMatrix アダプターが 処理する方法を記述しています。
アダプターは、一意のオブジェクト ID を用いるか、またはタイプ、名前、および改訂の組み合わせを用いて、ビジネス・オブジェクトを識別します。これらはすべてユーザー定義のプロパティーです。詳細については、ビジネス・オブジェクトのタイプを参照してください。
アダプターは、eMatrix オブジェクトのクラスが異なる場合、同じ動詞について異なる解釈をします。アダプターは、ビジネス・オブジェクト定義内の ematrix_class の値を チェックしてから、ビジネス・オブジェクトを処理します。
表 11 に、Adapter for eMatrix で使用可能なビジネス・オブジェクト動詞をリストし、それぞれの動詞でアダプターが実行するアクションを説明します。
動詞 | eMatrix クラス | アクション |
---|---|---|
Create | ビジネス・オブジェクト | eMatrix 内で、1 つ以上の新規ビジネス・オブジェクトを関係と共に作成します。要求で指定された名前、タイプ、および改訂を使用します。ボールトとポリシーが指定されていればそれらを使用し、指定されていなければデフォルトを使用します。 指定された子オブジェクトと関係を作成します。 |
関係 | すべての子オブジェクトは親オブジェクトと同じ動詞を持つ必要があるため、関係をそれぞれ独立して作成することはできません。すでに関係が存在しているオブジェクト間に新規の関係を作成するには、Update を使用します。 | |
コマンド | eMatrix システムでコマンドを実行し、要求オブジェクトに結果をすべて戻します。 | |
Update | ビジネス・オブジェクトおよび関係 | 1 つ以上の指定されたビジネス・オブジェクトおよびそれらの関係を更新します。例については後述します。 |
Delete | ビジネス・オブジェクト | 指定されたビジネス・オブジェクトを削除し、それに結び付けられた関係を自動的に削除します。すべての削除は物理的削除です。 |
関係 | 関係 ID が示す関係を削除します。その関係に結び付くビジネス・オブジェクトの接続を解除しますが、ビジネス・オブジェクトは削除しません。 | |
Retrieve | ビジネス・オブジェクトおよび関係 | 関係と、ビジネス・オブジェクト内の属性に対応する eMatrix ビジネス・オブジェクトを含む、ビジネス・オブジェクト全体を、eMatrix から取り込みます。 統合ブローカーに戻されるビジネス・オブジェクトは、ビジネス・オブジェクト定義内の構造を正確に反映していなければなりません。 |
RetrieveBy
Content |
ビジネス・オブジェクトおよび関係 | キー情報または非キー情報、あるいはその両方を使用して、eMatrix からビジネス・オブジェクト全体を取り込みます。一致が複数検出された場合は、最初の一致を戻し、「複数のヒット」を知らせるメッセージを送信します。 |
Exists | ビジネス・オブジェクトおよび関係 | トップレベル・ビジネス・オブジェクトが eMatrix 内に存在するかどうかを確認します。 |
動詞は、アプリケーション固有のビジネス・オブジェクト内部に含まれています。ビジネス・オブジェクトを作成するブローカーによって値が設定されます。アダプターは、動詞およびビジネス・オブジェクトの内容に応じて、eMatrix アプリケーション上で異なる操作を実行します。
アダプターは、ビジネス・オブジェクトを処理し、eMatrix システム内で必要なアクションを起動すると、状況コードを戻します。また、アプリケーションの状態に関する情報を含む新規ビジネス・オブジェクトを統合ブローカーに戻すこともあります。
ビジネス・オブジェクト定義には、それらのビジネス・オブジェクト属性で設定可能な、さまざまなプロパティーがあります。以下の表に属性とその値を示します。
表 12 には単純属性をリ ストしています。
属性 | プロパティー |
---|---|
Name | ビジネス・オブジェクトのフィールド名を指定します。 |
Type | ビジネス・オブジェクトのフィールド・タイプを指定します。 |
MaxLength | デフォルトは 255 です。 |
IsKey | 各ビジネス・オブジェクトは、少なくとも 1 つのキー属性を持 つ必要があります。キー属性は、属性のキー・プロパティーを true に設定することで指定します。 |
IsForeighKey | 使用されません。 |
Is Required | 使用されません。 |
AppSpecInfo | attr=<attribute name> などの、アプリケーション固有情報 (ASI) を格納します。 |
DefaultValue | 必要な属性が設定されていない場合に、コネクターがインバウンド・ビジネス・オブジェクト内の単純属性用に使用するデフォルト値を指定します。 |
アプリケーション固有情報 (ASI) は、ビジネス・オブジェクトの処理方法に関するアプリケーション固有の指示を含むコネクターを提供します。ビジネス・オブジェクト定義を拡張または変更する場合は、定義内のアプリケーション固有情報が、コネクターが期待する構文と一致することを 確認する必要があります。
アプリケーション固有情報は、ビジネス・オブジェクトおよび各ビジネス・オブジェクト属性で指定することができ、各動詞ごとに指定することもできます。単純属性の場合、ASI は eMatrix 属性のタイプまたは eMatrix プロパティー (名前、改訂、ボールトなど) の名前のいずれかを指定します。子ビジネス・オブジェクトの場合、ASI は (eMatrix ビジネス・オブジェクトおよび関係を表すオブジェクト階層の) 関係の方向を指定します。