WebSphere Business Integration システム内のビジネス・オブジェクト

WebSphere Business Integration システムは、以下のコンポーネントから構成されています。

WebSphere Business Integration システムでは、コンポーネント間で送受信される情報が、ビジネス・オブジェクトの形式でパッケージ化されます。

アプリケーション固有のビジネス・オブジェクトと汎用オブジェクトは両方とも、設計時にビジネス・オブジェクト定義 としてモデル化されます。このビジネス・オブジェクト定義は、ビジネス・インテグレーション・システムに保管されます。実行時には、データは、適切な定義に基づいて ビジネス・オブジェクト・インスタンス (「ビジネス・オブジェクト」とも呼ばれる) に取り込まれます。ビジネス・オブジェクトは、ルーティング・ルールやビジネス・ロジック・ルールの指定に従って、ビジネス・インテグレーション・システムの中を移動します。

ビジネス・オブジェクト定義

ビジネス・オブジェクト定義 は、集合的単位として扱えるデータ用のテンプレートとなっています。これには、ビジネス・オブジェクト定義の名前およびバージョンを指定するビジネス・オブジェクト・ヘッダーが含まれています。ビジネス・オブジェクト定義には、そのほか以下の情報も含まれています。

ビジネス・オブジェクト定義の一部を、図 1 に示します。

図 1. ビジネス・オブジェクト定義 (一部)


ビジネス・オブジェクトの属性および属性プロパティー

ビジネス・オブジェクトには属性が含まれています。属性 はそれぞれ、1 つのデータ・エンティティーを表します。ビジネス・オブジェクト定義には、各属性の名前およびその他の属性プロパティー を定義してください。各属性の値は、ビジネス・オブジェクトのインスタンスによって保持されます (つまり、属性には値が含まれないということです)。

ビジネス・オブジェクト定義には、属性に適用される各種のプロパティーが組み込まれます。これらのプロパティーから、コネクター、データ・ハンドラー、およびその他のコンポーネントは、属性のタイプ、サイズ、デフォルト値についての情報を知ることができます。次に、属性プロパティーについて詳しく説明します。

Name プロパティー

ビジネス・オブジェクト定義の内部にある各ビジネス・オブジェクト属性は、一意の名前を持つ必要があります。この名前はその属性が格納するデータを示すものにしてください。属性の名前は、80 文字までです。英数字と下線を含めることはできますが、スペース、句読点、または特殊文字を含めることはできません。

注:

  1. アプリケーション固有のビジネス・オブジェクトを設計する際には、そのアダプターのユーザーズ・ガイドまたは「データ・ハンドラー・ガイド」で、特定の命名要件および推奨事項を調べてください。

  2. この属性名には、英語 (U.S.) のロケール (en_US) に関連したコード・セットで定義されている文字のみ を使用する必要があります。

Type プロパティー

Type プロパティーは属性のデータ型を定義します。

注:
子ビジネス・オブジェクトを表すすべての属性には ContainedObjectVersion プロパティー (子オブジェクトのビジネス・オブジェクト定義のバージョン番号を指定)、および Relationship プロパティー (値として Containment を指定) も含まれています。

Cardinality プロパティー

単純属性はそれぞれ、単一カーディナリティー (カーディナリティー 1) を持ちます。

複合属性は、子ビジネス・オブジェクトを表す場合は単一カーディナリティーを、子ビジネス・オブジェクトの配列を表す場合は複数カーディナリティー (カーディナリティー n) をそれぞれ持ちます。

カーディナリティーについて詳しくは、階層型ビジネス・オブジェクトを参照してください。

注:
必須属性に指定されている場合、単一カーディナリティーは、子ビジネス・オブジェクトが必ず 存在することを示すのに対し、複数カーディナリティーは、子ビジネス・オブジェクトのインスタンスが存在しないか、1 個以上存在することを示します。

Key プロパティー

各ビジネス・オブジェクトの少なくとも 1 つの属性をそのオブジェクトのキーとして指定する必要があります。キー属性には、ビジネス・オブジェクトを一意に識別する値が含まれています。属性をキーとして定義するには、Key プロパティーを true に設定します。

注:
ビジネス・オブジェクト内のキー値は、一般的に基本キー と呼ばれます。

複合属性をキーとして指定した場合は、以下のようになります。

Foreign key プロパティー

Foreign Key プロパティーは通常、ある属性の値が別のビジネス・オブジェクトの基本キーを保持するよう指定するためにアプリケーション固有のビジネス・オブジェクトで使用します。これにより、2 つのビジネス・オブジェクトがリンクされます。

別のビジネス・オブジェクトの基本キーを保持する属性のことを、foreign key と呼びます。Foreign Key プロパティーは、外部キーを表す各属性に対して true に設定してください。

Foreign Key プロパティーは、他の処理命令にも使用することができます。例えば、このプロパティーは、コネクターが実行する外部キー検索の種類を指定する目的でも使用できます。この場合、外部キーを true に設定して、データベース内に該当のエンティティーが存在するかをチェックし、そのエンティティーのレコードが存在している場合に限り関係を作成するようコネクターに指示します。

Required プロパティー

Required プロパティーは、属性に対する値の指定が必要であるかどうかを指定します。ビジネス・オブジェクトのデータの処理を可能にするため、そのビジネス・オブジェクト内の特定の属性に値を含めることを必須とする場合、その属性の Required プロパティーを true に設定してください。

AppSpecificInfo

AppSpecificInfo プロパティーには、1000 文字以内の String を含めることができます。これは、主にアプリケーション固有のビジネス・オブジェクトに対して指定されます。このプロパティーについては、ビジネス・オブジェクトのアプリケーション固有の情報を参照してください。

注:
アプリケーション固有の情報はマッピング処理では使用できません

Max Length プロパティー

Max Length プロパティーには、String 型の属性に格納できるバイト数を設定します。この値の使用は WebSphere Business Integration システムでは規定されていませんが、この値を使用するコネクターやデータ・ハンドラーもあります。ビジネス・オブジェクトを処理する特定のアダプターのガイド、またはデータ・ハンドラーのガイドを参照して、使用可能な最小長と最大長を確認してください。

重要:
Max Length プロパティーは、固定幅のデータ・ハンドラーを使用する場合にきわめて重要です。
注:
属性長はマッピング処理では使用できません

Default value プロパティー

Default Value プロパティーは、属性に対してデフォルト値を指定するために使用します。

アプリケーション固有のビジネス・オブジェクトに対してこのプロパティーが指定されている場合、UseDefaults コネクター構成プロパティーが true に設定されていれば、コネクターは、実行時に値が指定されていない属性に値を設定するために、ビジネス・オブジェクト定義に指定されたデフォルト値を使用できます。

注:

  1. 属性のデフォルト値には、現在のロケールに関連したコード・セットで定義された文字を使用することができます。

  2. 属性の型が String である場合は、ブランク文字をデフォルト値として指定可能です。

Comments プロパティー

Comments プロパティーを使用すると、属性に対するコメントの指定が可能になります。AppSpecificInfo プロパティーがビジネス・オブジェクトの処理に使用されるのに対し、Comments プロパティーは、他の開発者が設計上の決定事項を理解するのに役立つ文書情報のみを備えています。

注:
属性のコメントには、現在のロケールに関連したコード・セットで定義された文字を使用することができます。ただし、改行文字は無効です。

ObjectEventId 属性

ObjectEventId 属性は必須属性であるだけでなく、各ビジネス・オブジェクト内で最後の属性にする必要があります。WebSphere Business Integration システムは、システム内でのイベントの流れの識別と追跡にこの属性を使用します。

ObjectEventId 属性は、WebSphere Business Integration システム内の各イベントを識別する一意の値を格納します。コネクター・フレームワークは、この属性の値を、親ビジネス・オブジェクト内および各子オブジェクト内に生成します。

重要:
ObjectEventId 属性は、マッピングしたり、コネクターやデータ・ハンドラーから値を設定したりできません。この属性の値は、ビジネス・インテグレーション・システムによって処理されます。

ビジネス・オブジェクトの動詞

ビジネス・オブジェクト定義には、ビジネス・オブジェクトがサポートできる動詞のリストが含まれています。これらの動詞は、ビジネス・オブジェクト内のデータに対して有効な操作に対応しています。実行時には、ビジネス・オブジェクトにアクティブな動詞が 1 つ含まれますが、それは、特定のビジネス・オブジェクト内のデータに対して実行する操作について説明しています。

表 2 に、ビジネス・オブジェクト定義がサポートできる基本的な動詞を示します。

表 2. 基本的な動詞
動詞 機能
Create 新規のエンティティーをアプリケーション内に作成します。
Retrieve キー値を使用して、完全なビジネス・オブジェクトを戻します。
Update アプリケーション・エンティティー内の 1 つ以上のフィールドの値を変更します。
Delete アプリケーションからエンティティーを除去します。この操作では、事実上必ず物理的な削除が行われます。

表 2 の基本的な動詞に加えて、以下の動詞のうちの 1 つ以上が、ビジネス・オブジェクト定義によってサポートされていなければなりません。

ビジネス・オブジェクトのアプリケーション固有の情報

ビジネス・オブジェクト定義には、アプリケーション固有の情報 を指定できます。この情報の内容によって、ビジネス・オブジェクトを処理するコンポーネントに対応したメタデータが提供されます。

アプリケーション固有の情報は、一般的に、ビジネス・オブジェクトの処理の仕方に対するアプリケーション依存の指示を、コネクターまたはデータ・ハンドラーに提供する目的に使用されます。アプリケーション固有の情報は、ビジネス・オブジェクト設計時に入力されるストリングで、実行時にコネクターまたはデータ・ハンドラーが読み取ります。

注:
アプリケーション固有のビジネス・オブジェクトの定義に含まれるアプリケーション固有の情報を使用するように設計されたコネクターのことをメタデータ主導型コネクター と呼びます。処理情報がハードコーディングされずに構成可能となっているため、メタデータ主導型コネクターは、メタデータ主導型でないものに比べると、はるかに柔軟であり保守も容易です。

ビジネス・オブジェクト定義に含まれるアプリケーション固有の情報は、以下の 3 つのレベルのいずれかで指定できます。

アプリケーション固有の情報は、AppSpecificInfo プロパティーと呼ばれる、ビジネス・オブジェクト定義内のフィールドに保存されます。

AppSpecificInfo プロパティーの値は、該当のビジネス・オブジェクトまたはアプリケーションについて任意の情報を記述できるテキスト・ストリングです。図 2 に、ビジネス・オブジェクト定義の主な要素と、各要素に対するアプリケーション固有のプロパティーを示します。

図 2. 各要素に対するアプリケーション固有のプロパティーを示すビジネス・オブジェクト定義


このセクションの内容は次のとおりです。

ビジネス・オブジェクトのアプリケーション固有の情報

ビジネス・オブジェクト・レベルのアプリケーション固有の情報は、コネクターまたはデータ・ハンドラーがデータの処理に使う情報の提供に使用します。ビジネス・オブジェクト・レベルのアプリケーション固有の情報は、処理命令がビジネス・オブジェクト階層全体にかかわる場合は常に使用されます。例えば、オブジェクト・レベルのアプリケーション固有の情報は、次のような目的で使用されます。

図 3 に、アプリケーション内でフォーム名またはテーブル名を識別するためのアプリケーション固有の情報を示します。コネクターは、AppSpecificInfo プロパティーからテーブル名またはフォーム名を取得し、API 呼び出しにおいて、取得した名前を使ってアプリケーションからデータを検索することができます。

図 3. ビジネス・オブジェクトのアプリケーション固有の情報


属性のアプリケーション固有の情報

ビジネス・オブジェクト定義の各属性は、対応するアプリケーション固有の情報を持つことができます。属性レベルのアプリケーション固有の情報は、処理命令が単一の属性にかかわる場合は常に使用されます。この情報には、例えば、フォーム上のフィールド、テーブル内の列、またはコネクターが属性を見つけたり処理するために必要な任意の情報を指定できます。ビジネス・オブジェクトの特定の属性がアプリケーション内の特定のサブフォームに配置する場合、この情報をエンコードする場所としては AppSpecificInfo プロパティーが適しています。

図 4 に、AppSpecificInfo 属性のプロパティーを示します。この例では、アプリケーション固有の情報は、サブフォームおよびフィールドの名前を指定します。

図 4. 属性のアプリケーション固有の情報


図 5 に、オブジェクト・レベルおよび属性レベルのアプリケーション固有の情報に指定されるフォーム、サブフォーム、およびフィールド名の関係を示します。この例では、請求のためのアプリケーションを示しますが、このアプリケーションはフォームをベースとしていて、このアプリケーション内の請求書とは、メイン・フォーム CustAccount のサブフォームである Invoice フォームを介して対話するものとします。Invoice サブフォーム上にあるフィールドは、CustName、CustAddr、 InvNum、DollarAmount、および Terms です。

図 5. ビジネス・オブジェクト定義のアプリケーション固有の情報の使用


図 5 では、属性レベルの AppSpecificInfo プロパティーを使用して、Invoice サブフォームの名前と属性内の対応フィールドの名前を格納しています。この例では、情報の指定には名前と値のペアを使用しています。

動詞のアプリケーション固有の情報

各動詞定義には、その動詞がアクティブなときにビジネス・オブジェクトをどのように処理するかに関する命令をコネクターまたはデータ・ハンドラーに知らせるアプリケーション固有の情報を組み込むことができます。

注:
ビジネス・オブジェクト・ハンドラーは、InterChange Server Express からコネクターへ送られた要求を処理するコネクターの一部となっているため、それらのアプリケーション固有のビジネス・オブジェクト定義の動詞に含まれるアプリケーション固有の情報を使用する設計にできます。そのようなビジネス・オブジェクト・ハンドラーのことを メタデータ主導型ビジネス・オブジェクト・ハンドラー と呼びます。処理情報は、ハードコーディングされずに構成可能となっているため、メタデータ主導型ビジネス・オブジェクト・ハンドラーは、メタデータ主導型でないものに比べると、はるかに柔軟であり保守も容易です。

例えば、アプリケーション・データベースの更新を処理するのに API を使用しているコネクターは、アプリケーション固有の情報から API を実行するための情報を得ることができます。

動詞のアプリケーション固有の情報も、ビジネス・オブジェクトの処理のために、アプリケーション内で呼び出す関数の名前の指定に使用できます。

ビジネス・オブジェクトのインスタンス

ビジネス・オブジェクト定義は、データのコレクション用のテンプレートを意味するのに対し、ビジネス・オブジェクトのインスタンス (一般的には単に「ビジネス・オブジェクト」と呼ばれる) は、実際のデータを含んだランタイム・エンティティーです。ビジネス・オブジェクトは、ビジネス・インテグレーション・システムのコンポーネント間で渡されるものです。

ビジネス・オブジェクトに格納される情報は次のとおりです。

図 6 に、Customer ビジネス・オブジェクト定義、およびこの定義に対応するビジネス・オブジェクトのインスタンスを示します。

図 6. ビジネス・オブジェクト定義およびビジネス・オブジェクトの例


Copyright IBM Corp. 2004