WebSphere Business Integration システムがサポートする関係のタイプを理解するには、IBM が次の概念をどのようにインプリメントしているかを理解する必要があります。
表 80 に示すように、関係は 2
つの部分からなるエンティティーで、リポジトリー・エンティティーとランタイム・オブジェクトで構成されます。
リポジトリー・エンティティー | ランタイム・オブジェクト |
---|---|
関係定義 | 関係インスタンス |
WebSphere Business Integration システムとの関係は、関係定義 を使用して定義します。 関係定義は、各参加者を識別して、参加者を関連付ける方法を指定します。図 96 では、CustIden は関係定義で、アプリケーション A、アプリケーション B、汎用顧客 という 3 つの参加者に関する情報を含んでいます。
システムは、関係定義をリポジトリーに保管します。 Relationship Designer Express ツールは、関係定義の作成に役立つダイアログを提供します。このツールを使用すると、完了した関係定義をリポジトリーに保管することもできます。
関係定義は、関係に関する次の情報を提供します。
関係定義は、関係の単なるテンプレートまたは説明であり、実際のビジネス・オブジェクトではありません。したがって、関係定義の名前は、関連するビジネス・オブジェクトの名前にすることはできません。
リレーションシップ・データベース は、関係の関係表を保持します。
関係は、関係表を使用して、関連するアプリケーション固有の値を追跡します。詳細については、"関係表"を参照してください。
実行時にリレーションシップ・データベースにアクセスするには、次の情報が必要です。
デフォルトでは、リレーションシップ・データベースは WebSphere Business Integration システム・リポジトリーです。つまり、Relationship Designer Express は、リポジトリーのすべての関係表を作成します。 Relationship Designer Express を使用すると、次のいずれかの方法で関係表の位置を指定できます。
詳細については、"グローバル・デフォルト設定"を参照してください。
詳細については、"関係定義の拡張設定"を参照してください。
関係定義は、関係のランタイム・インスタンス化 (関係インスタンス) を行うためのテンプレートです。
マップの実行時に、関係定義に基づいて、変換される実際のビジネス・オブジェクトの値を使用して、関係のインスタンスが作成されます。
例: CustLkUp 参照関係の関係データ (図 98 を参照してください) は、Clarify アプリケーションの顧客状況 Inactive が、SAP アプリケーションの顧客状況 05 と同じであることを示しています。これらの状況コードは異なりますが、図 103 に示すように、同じ顧客状況を表しているため、同じ関係インスタンスにあります。
関係インスタンスは、Relationship クラスまたは IdentityRelationship クラスのインスタンスによって、マッピング API で表されます。
関係インスタンスを検索するには、次の情報が必要です。
関係表 は、関係のある参加者に関する関係ランタイム・データを保持するデータベース表です。 InterChange Server Express は、関係インスタンスを関係表に保管します。1 つの関係表 (参加者表 とも呼ばれる) には、その関係における 1 つの参加者に関する情報が保管されます。 例えば、図 97 の CustLkUp 参照関係の場合、InterChange Server Express は図 103 に示すように、2 つの参加者表を必要とします。
関係定義を作成すると、Relationship Designer Express によって、関係が必要とする表スキーマが自動的に作成されます。つまり、各参加者に必要な列を含む関係表が作成されます。実行時に、これらの表は関係インスタンスのデータを保持します。
関係表は参加者に関連付けられているため、この表の名前は、参加者定義の一部として定義されます。デフォルトでは、関係表の名前の形式は次のとおりです。
RelationshipDefName_ParticipantDefName
Relationship Designer Express を使用すると、参加者定義を作成するプロセスの一部として、関係表の名前をカスタマイズできます。
詳細については、参加者定義の拡張設定を参照してください。
リレーションシップ・データベースの名前は、関係定義の一部として設定されます。デフォルトでは、リレーションシップ・データベースはシステム・リポジトリーです。 詳細については、"関係定義の拡張設定"を参照してください。
マップ変換ステップでは、関係表は、Relationship クラス、IdentityRelationship クラス、および Participant クラスのメソッドを使用して管理されます。 マッピング API メソッドによっては、関係表を自動的に管理するものもあります。これらの関係表に明示的にアクセスして、この関係データを取得することもできます。
WebSphere Business Integration システムは、関係インスタンス と呼ばれる固有の整数値を割り当てることで、各関係インスタンスを一意的に識別します。 このインスタンス ID を使用すると、参加者値を関連付けることができます。通常は、関係の任意の参加者の場合、関係インスタンス ID を指定することで、関係の他の参加者に関するデータを検索できます。
例: Clarify アプリケーションと SAP アプリケーションの顧客状況コード間の関係の場合、WebSphere Business Integration システムは、参照関係の各関係インスタンスに関係インスタンス ID を割り当てます。図 104 に、ClarLkUpと SAPLkUp の 2 つのアプリケーション固有の参加者がインスタンス ID 47 を介して関連付けられている状態を示します。 ID 47 が Inactive の Clarify 顧客状況と、05 の SAP 顧客状況値をどのように関連付けるかを示します。この関係は基本的に、関係インスタンス ID を追加することで、図 103 の関係と同じであることに注意してください。
WebSphere Business Integration システムは、一致関係の参加者間の関係にも関係インスタンス ID を使用します。 CustIden 関係 (図 99 を参照してください) では、このインスタンス ID は、Clarify_Site ビジネス・オブジェクトの SiteID 属性、汎用 Customer ビジネス・オブジェクトの CustomerID 属性、および SAP_Customer ビジネス・オブジェクトの RefID 属性に保管された顧客 ID を関連付けます。図 105 に、CustIden 関係の各参加者の関係インスタンス・データが、関係インスタンス ID を使用して関連付けられる方法を示します。
図 105 では、わかりやすくするために CWCust 参加者の関係表が含まれていますが、表は厳密には必要ありません。実際には、関係の汎用ビジネス・オブジェクトを表す参加者の関係表は、汎用ビジネス・オブジェクトの関連する属性に汎用 ID を生成する場合のみ 必要です。図 105 の関係は、汎用 Customer ビジネス・オブジェクトの CustomerID 属性の汎用 ID (07) を生成します。
関係定義を簡略化して、汎用ビジネス・オブジェクトを表す参加者の関係表を除去することで、パフォーマンスを向上させることができます。これは、関係定義を作成するときに、参加者の「managed」オプションを選択して実行します。この設定の詳細については、"参加者定義の拡張設定"を参照してください。
CWCust 参加者に対して managed 設定が指定された場合、CustIden 関係で関係インスタンス・データがどのように関連付けられるかを、図 106 に示します。
WebSphere Business Integration システムは、関係インスタンス ID を各参加者の関係表に保管します。 図 104 から図 106 に示すように、関係の各関係表には、関係インスタンス ID の列があります。このインスタンス ID 列は、ICS Express で表スキーマが作成されるときに、自動的に作成されます。
関係には参加者
が含まれます。参加者は、関係に参加するエンティティーを説明したものです。表 81 に示すように、参加者は 2
つの部分からなるエンティティーで、リポジトリー・エンティティーとランタイム・オブジェクトで構成されます。
リポジトリー・エンティティー | ランタイム・オブジェクト |
---|---|
参加者定義 | 参加者インスタンス |
関係定義には、参加者定義 のリストが含まれています。 例えば、図 99 の CustIden 関係定義は、Clarify および SAP の顧客ビジネス・オブジェクトを関連付け、SAPCust、CWCust、および ClarCust という参加者定義を含んでいます。
WebSphere Business Integration システムは、参加者定義をリポジトリーに保管します。 Relationship Designer Express ツールは、参加者定義の作成に役立つダイアログを提供します。このツールを使用すると、完了した参加者定義をリポジトリーに保管することもできます。
参加者定義は、参加者に関する次の情報を提供します。
参加者定義は、参加者の単なるテンプレートまたは説明であり、実際のビジネス・オブジェクトではありません。したがって、参加者定義の名前は、関連するビジネス・オブジェクトの名前にすることはできません。
ビジネス・オブジェクト定義の属性と同様に、関係定義の参加者にも関連するタイプがあります。参加者タイプは、参加者のインスタンスに関連付けられたデータの種類を指定します。参加者タイプは、次のいずれかです。
このタイプの参加者を含む関係は、ビジネス・オブジェクト全体の関連を設定します。この場合、参加者を関係の他の参加者に関連付けるビジネス・オブジェクトの属性を指定します。選択した属性 (通常はビジネス・オブジェクトのキー属性) は、参加者インスタンス ID になります。
参加者定義では、Data は、String、long、int、double、float、または boolean など、サポートされている属性データ型を表します。ビジネス・オブジェクトの特定の属性間に関連を設定する関係の参加者のタイプとして、Data を指定します。参照関係の参加者には、Data の参加者タイプがあります。
参加者のタイプの定義方法の詳細については、"関係定義の作成"を参照してください。
InterChange Server Express は、各参加者ごとに以下のデータベース・エンティティーを作成します。
デフォルトでは、Relationship Designer Express は、参加者の表とストアード・プロシージャーに RelName_ParticipantName_X という形式の名前を割り当てます。RelName は関係定義の名前、ParticipantName は参加者定義の名前、X は、参加者表の場合は T、ストアード・プロシージャーの場合は SP になります。デフォルトでは、Relationship Designer Express は、WebSphere Business Integration システム・リポジトリーに関係表を作成します。
Relationship Designer Express を使用すると、参加者表とストアード・プロシージャーの名前をカスタマイズできます。参加者表とストアード・プロシージャーの命名の詳細については、"参加者定義の拡張設定"を参照してください。
参加者定義は、参加者のランタイム・インスタンス化 (参加者インスタンス) を行うためのテンプレートです。 マップの実行時に、WebSphere Business Integration システムは、参加者定義と、変換される実際のビジネス・オブジェクトの属性値に基づいて、参加者のインスタンスを作成します。
WebSphere Business Integration システムは、参加者の関係表の列として参加者インスタンスを保管します。
例: 図 99 の CustIden 関係の場合、ClarCust 参加者には、参加者インスタンスの値を保持するために、参加者表に SiteID という列があります。SAPCust 参加者には、参加者インスタンスの値を保持するために、参加者表に RefID という列があります。