コンピューター・ソフトウェア業界は、開発者がビジネス・オブジェクト (BO) 情報をカプセル化することを可能にする複数のプログラミング・モデルとフレームワークを開発してきました。
一般に、BO フレームワークに必要とされるのは、データベースの独立性を提供し、カスタム・ビジネス・オブジェクトをデータベース表またはエンタープライズ情報システム内のデータ構造に透過的にマップし、ビジネス・オブジェクトをユーザー・インターフェースにバインドすることです。
現在ではおそらく XML スキーマが、ビジネス・オブジェクトの構造を表す方法として最もよく使用され、支持されています。
ツールの点から言うと、WebSphere® Integration Developer は、開発者にさまざまなドメインからの各種のエンティティーを表す共通 BO モデルを提供します。
開発時には、WebSphere Integration Developer はビジネス・オブジェクトを XML スキーマとして表します。
しかし実行時には、これらのビジネス・オブジェクトはメモリー内で SDO の Java™ インスタンスによって表されます。
SDO は、IBM® と BEA Systems が共同で開発し、同意した標準仕様です。
IBM はこの SDO 仕様を拡張し、ビジネス・オブジェクト内でのデータ操作を容易にする追加サービスを組み込みました。
BO フレームワークの詳細に入る前に、操作対象の基本的なデータ・タイプについて説明しておきます。
- インスタンス・データは、スカラー・プロパティーを持つ単純な基本オブジェクトから、大規模で複雑なオブジェクト階層にまで至る、実際のデータおよびデータ構造です。
インスタンス・データには、基本属性タイプの記述、複合タイプの情報、カーディナリティー、デフォルト値などのデータ定義も含まれます。
- インスタンス・メタデータは、インスタンス固有のデータです。
基本データには、変更のトラッキング (変更サマリーとしても知られています)、オブジェクトまたはデータを作成した方法に関連付けられたコンテキスト情報やメッセージ・ヘッダーおよびフッターなどの増分情報が追加されます。
- タイプ・メタデータは通常、アプリケーション固有の情報です。この情報には、宛先エンタープライズ情報システム (EIS) データ列との属性レベルのマッピングなどがあります (例えば、BO フィールド名と SAP 表の列名とのマッピング)。
- サービスは、基本的に、データの取得、データの設定、サマリーの変更、またはデータ定義タイプのアクセスを行うヘルパー・サービスです。
以下の表に、WebSphere プラットフォームでは基本タイプのデータがどのように実装されているかを記載します。
表 1. データ抽象化および対応する実装データ抽象化 |
実装 |
インスタンス・データ |
ビジネス・オブジェクト (SDO) |
インスタンス・メタデータ |
ビジネス・グラフ |
タイプ・メタデータ |
エンタープライズ・メタデータ、ビジネス・オブジェクト・タイプ・メタデータ |
サービス |
ビジネス・オブジェクト・サービス |
IBM ビジネス・オブジェクト・フレームワークの操作
前述したように、WebSphere ESB BO フレームワークは SDO 標準の拡張です。そのため、WebSphere ESB コンポーネント間で交換されるビジネス・オブジェクトは、commonj.sdo.DataObject クラスのインスタンスです。ただし、WebSphere ESB BO
フレームワークは、基本的な DataObject 機能を単純化し、充実させる複数のサービスと関数を追加しています。
ビジネス・オブジェクトの作成と操作を容易にするため、WebSphere BO フレームワークは一連の Java サービスを提供することによって SDO 仕様を拡張します。
これらのサービスは、com.ibm.websphere.bo という名前のパッケージに含まれています。
- BOFactory: ビジネス・オブジェクトのインスタンスをさまざまな方法で作成できるようにする主要なサービスです。
- BOXMLSerializer: ストリームからのビジネス・オブジェクトを拡張する方法や、ビジネス・オブジェクトのコンテンツを XML フォーマットでストリームに書き込む方法を提供します。
- BOCopy: ビジネス・オブジェクトのコピーを作成するメソッドを提供します (「ディープ」および「シャロー」のセマンティクス)。
- BODataObject: ビジネス・オブジェクトのデータ・オブジェクトの側面 (変更サマリー、ビジネス・グラフ、イベント・サマリーなど) にアクセスできるようにします。
- BOXMLDocument: サービスに対するフロントエンドで、ここではビジネス・オブジェクトを XML 文書として操作できます。
- BOChangeSummary および BOEventSummary: ビジネス・オブジェクトの変更サマリーおよびイベント・サマリーの部分に簡単にアクセスして操作できるようにします。
- BOEquality: 2 つのビジネス・オブジェクトに同じ情報が含まれているかどうかを判別できるようにするサービスです。
ディープおよびシャロー両方の等価をサポートします。
- BOType および BOTypeMetaData: これらのサービスは commonj.sdo.Type のインスタンスを実体化して、関連するメタデータを操作できるようにします。
これによって、Type のインスタンスを使用して「タイプ別」にビジネス・オブジェクトを作成することができます。
- BOInstanceValidator : ビジネス・オブジェクト内のデータを検証して、XSD に準拠しているかどうかを調べます。