汎用ビジネス・オブジェクトの設計 (InterChange Server Express のみ)

汎用ビジネス・オブジェクト には、複数の多様なアプリケーションまたはプログラム・エンティティーによって使用されるエンティティーを表す情報のスーパーセットが反映されます。

InterChange Server Express コラボレーション・オブジェクトでは、汎用ビジネス・オブジェクトを使用して、各種の多様なアプリケーションに合った情報の提供を可能にしています。そのため、汎用ビジネス・オブジェクトの設計は、コラボレーション・オブジェクト開発の一環として行われます。汎用ビジネス・オブジェクトを設計するときには、次の点を考慮してください。

汎用ビジネス・オブジェクトの設計標準

汎用ビジネス・オブジェクトとの整合性を取るため、汎用ビジネス・オブジェクトを設計するときは、次の指針に従ってください。

イベント分離のための設計

汎用ビジネス・オブジェクトを設計する際には、「コラボレーション開発ガイド」の『並列実行の設計』という題名のセクションに解説されているイベント分離の必要性を考慮するようお勧めします。

複数のコラボレーション・オブジェクトが同時に同じデータを更新するのを防ぐため、各ビジネス・オブジェクトを変更できるのは、1 つのタイプのコラボレーション・オブジェクトに限定するようにしてください。例えば、Customer ビジネス・オブジェクトは、CustomerSync コラボレーション・オブジェクトによってのみ変更できるようにします。

あるコラボレーション・オブジェクトが子ビジネス・オブジェクトを含むビジネス・オブジェクトを変更し、その子ビジネス・オブジェクトが別のトップレベルのビジネス・オブジェクトにも包含され、このトップレベルのビジネス・オブジェクトに専用の変更コラボレーション・オブジェクトが存在する場合には、これらトップレベルのビジネス・オブジェクトを、その子を構造的にではなく意味的に包含するように設計します。共有された子を変更するためには、第 3 のコラボレーション・オブジェクトを作成します。2 つのトップレベルのビジネス・オブジェクトを所有するコラボレーション・オブジェクトの場合、共有された子の処理を 3 つ目のコラボレーション・オブジェクトに委任する必要があります。

例えば、Customer ビジネス・オブジェクトと Contact ビジネス・オブジェクトの両方に同じ住所データが格納されている場合は、Customer と Contact によって参照されるトップレベルのビジネス・オブジェクトとして Address ビジネス・オブジェクトを設計します。ただし、Address ビジネス・オブジェクトは、Customer と Contact の 2 つのオブジェクトに包含されないようにします。住所データの変更のためには、別個の Address コラボレーション・オブジェクトを作成します。

一方、別の例として、Order ビジネス・オブジェクトが OrderLineItem データを変更する唯一のビジネス・オブジェクトである場合は、OrderLineItem 子ビジネス・オブジェクトを単に参照するのではなく包含するように、Order を設計することができます。

言い換えると、Customer および Contact ビジネス・オブジェクトは、Address ビジネス・オブジェクトを参照する外部キー属性を格納するように、つまり Address に対応したキー値だけを格納するように設計する必要があります。Address ビジネス・オブジェクトは、すべての値が含まれる Address ビジネス・オブジェクトを表す属性が格納されないように設計してください。一方、Order ビジネス・オブジェクトは、すべての値が含まれる OrderLineItem ビジネス・オブジェクト表す属性を格納するように設計します。

注:
共有ビジネス・オブジェクトを包含されるものではなく参照されるものとして設計すると、ビジネス・オブジェクトの分散が容易になります。複数のビジネス・オブジェクト定義に同じ子ビジネス・オブジェクトが定義されている場合、repos_copy ユーティリティーは、インストール時にこのビジネス・オブジェクトを 2 回ロードしようとするため、ロールバックが発生します。このデフォルト動作を変更する repos_copy フラグについては、「システム管理ガイド」を参照してください。

汎用ビジネス・オブジェクトの属性

汎用ビジネス・オブジェクトの属性を定義するときは、その汎用ビジネス・オブジェクトのマップ先のアプリケーションに固有のビジネス・オブジェクトの属性を調べる必要があります。その場合の指針を次に示します。

一般に、汎用ビジネス・オブジェクト定義には、その汎用ビジネス・オブジェクトがマップされるすべてのアプリケーション固有のビジネス・オブジェクトの間で変換されるすべてのデータ要素がキャプチャーされるように、属性を組み込む必要があります。

属性にはできるだけわかりやすい名前を付けてください。例えば、ある 1 つのエンティティーを顧客 (Customer) として参照するアプリケーションが複数存在し、企業 (Business Organization) として参照するアプリケーションが 1 つのみの場合、汎用属性の命名には、より汎用性の高い用語を使用します。

注:
属性の名前に使用できる文字は、英数字と下線 (_) に限定されています。

既存の汎用ビジネス・オブジェクトの評価

汎用ビジネス・オブジェクトの開発を容易にするには、既存のものをコピーしカスタマイズするのも 1 つの方法です。

汎用ビジネス・オブジェクトを評価するには、そのインターフェースに組み込まれているデータを調べます。方針としては、提供された汎用ビジネス・オブジェクトの 1 つにデータの 80% 以上が存在する場合には、その既存のオブジェクトをカスタマイズします。

この分析を行うときは、ビジネス・オブジェクトの属性よりも構造に注目することが重要です。属性は比較的簡単に追加したり削除したりできますが、構造や階層の変更には手間がかかります。

既存の汎用ビジネス・オブジェクトをカスタマイズする場合は、ビジネス・オブジェクト定義を調べて、必要な属性が欠落していないかを確認してください。属性の欠落は、マッピング設計時にさらに発見しやすくなります。汎用ビジネス・オブジェクトが 1 つ以上の追加属性を必要としている場合は、その追加属性を格納する子ビジネス・オブジェクトを作成します。カスタムの属性を子ビジネス・オブジェクトに隔離しておくと、IBM 提供のビジネス・オブジェクトに対する将来のアップグレードが容易になります。

IBM 提供のビジネス・オブジェクトにカスタム属性を埋め込むと、ビジネス・オブジェクトを新バージョンにアップグレードする際、新しいビジネス・オブジェクトにこれらの属性を埋め込み直さなければなりません。カスタム属性を独自のビジネス・オブジェクトに隔離させると、新規 IBM ビジネス・オブジェクトに、親ビジネス・オブジェクトとカスタム子ビジネス・オブジェクトの関係を作成する属性を 1 つ追加できます。親と子の両方に追加の属性を必要とする階層型ビジネス・オブジェクトをカスタマイズする場合は、それぞれに別個の子ビジネス・オブジェクトを作成してください。

カスタム属性およびビジネス・オブジェクトに、その性質がわかる名前を指定することをお勧めします。簡単な命名規則の 1 つは、各カスタム名に _x をサフィックスとして付けるという方法です。例えば、汎用 Order ビジネス・オブジェクトに属性を追加するカスタム子ビジネス・オブジェクトを作成する場合は、その子オブジェクトは Order_x という名前にします。これにより、一覧表示のときに関連のある名前がアルファベット順にまとまって表示されます。カスタム・ビジネス・オブジェクトまたは属性を識別することの方が、カスタム・オブジェクトとその汎用オブジェクトをアルファベット順に並べることより重要な場合は、各カスタム名にプレフィックスとして x_ を追加します。詳しくは、「Naming IBM WebSphere InterChange Server Express Components」を参照してください。

Copyright IBM Corp. 2004