ODA の実行

実行時に、ODA の実行には次のコンポーネントが関与します。

図 52 は、ODA ランタイム・アーキテクチャーのコンポーネントを示しています。

図 52. Object Discovery Agent のアーキテクチャー


ビジネス・オブジェクト定義を生成するために、ODA は次のステップを実行する必要があります。

  1. データ・ソース (アプリケーション、データベース、またはファイル・システムなど) に接続するために ODA が必要とする ODA 構成プロパティーの値 (ユーザー名やデータベース・タイプなど) を取得します。
  2. これらの構成プロパティーを使用してデータ・ソースに接続します。
  3. ビジネス・オブジェクト定義を生成するソース・ノードのリストを取得します。
  4. (アプリケーション、データベースの表、ファイル・システム、または DTD によって定義された) ソース・ノードの基礎となるデータ・ソース・エンティティーの要件を検出します。
  5. WebSphere Business Integration システムの要件、およびビジネス・オブジェクトを処理するコンポーネントの要件を満たすビジネス・オブジェクト定義を作成し、それらの定義を戻します。

注:
ビジネス・オブジェクト定義の他に、ODA はファイルをコンテンツとして生成することもできます。詳しくは、コンテンツの生成を参照してください。

表 16 は、ODA 実行のステップと、それを開始するビジネス・オブジェクト・ウィザードのステップを示しています。


表 16.
Object Discovery Agent の実行
作業 ビジネス・オブジェクト・ウィザードのステップ 詳細情報の参照先
1. 開始する ODA を選択します。 ステップ 1: エージェントの選択 ODA の選択
2. ODA 構成プロパティーを取得します (開くデータ・ソースを記述する構成プロパティーも含めて)。 ステップ 2: エージェントの構成 ODA 構成プロパティーの取得
3. ODA コンテンツを生成するソース・データを取得します。 ステップ 3: ソースの選択 ソース・データの選択および確認
4. 選択したソース・データを確認します。 ステップ 4: ソース・ノードの確認 ソース・データの選択および確認
5. ビジネス・オブジェクト定義を生成します。 ステップ 5: ビジネス・オブジェクトの生成中 コンテンツの生成


ビジネス・オブジェクト・プロパティー ビジネス・オブジェクト・プロパティーの取得
6. ビジネス・オブジェクト定義を保管します。 ステップ 6: ビジネス・オブジェクトの保管 コンテンツの保管

ODA の選択

「ファイル」->「ODA を使用して新規作成」を選択すると、Business Object Designer Express は、ODA を実行するためにビジネス・オブジェクト・ウィザードを起動します。ビジネス・オブジェクト・ウィザードのステップ 1 では、「エージェントの選択」ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、使用可能なすべての Object Discovery Agent にグラフィックによりアクセスすることができます。

このダイアログ・ボックスから、ユーザーが、実行する ODA を選択します。

ビジネス・オブジェクト・ウィザードはその ODA に接続し、次のステップを実行します。

注:
ODA を事前に開始しておかないと、ビジネス・オブジェクト・ウィザードは、その ODA を選択可能な ODA としてリストしません。詳しくは、ODA を使用するための準備を参照してください。

ODA クラスの作成方法については、ODA 基底クラスの拡張を参照してください。

ODA 構成プロパティーの取得

ビジネス・オブジェクト・ウィザードのステップ 2 では、「エージェントの構成」ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、ODA の構成プロパティーが表示されます。

構成プロパティー は、ODA が実行を開始するために必要なプロパティーです。ODK API は、構成プロパティーをエージェント・プロパティー (AgentProperty) オブジェクトとして表します。

このステップでは、ウィザードに構成プロパティーが表示されます。ユーザーがそれらの構成プロパティーを更新すると、ユーザーにより初期化されたプロパティーが ODA ランタイム・メモリーに書き込まれます。

図 53. ビジネス・オブジェクト・ウィザードのエージェントの構成 (ステップ 2)


図 53 に示すように、ビジネス・オブジェクト・ウィザードは次のステップを実行します。

  1. 選択された ODA から構成プロパティーを取得し、それを「エージェントの構成」ダイアログ・ボックスに表示します。

    ODA から構成プロパティーを取得する際、ウィザードは、ODA 基底クラス (ODKAgentBase2) に定義されている getAgentProperties() メソッドを呼び出します。

    このメソッドは、ODA クラスの一部として開発者が実装する必要のある抽象メソッドです。これにより、ODA の構成プロパティーが AgentProperty オブジェクトの配列としてビジネス・オブジェクト・ウィザードに戻されます。これらの構成プロパティーには、名前、タイプ、任意の有効な値、説明、入力上の制限、および任意のデフォルト値を含めることができます。

    getAgentProperties() が提供する構成プロパティーの他に、ビジネス・オブジェクト・ウィザードは常に、すべての ODA に共通の以下の標準構成プロパティーを提供します。

    詳しくは、構成プロパティーの取得を参照してください。

  2. 「エージェントの構成」ダイアログ・ボックスから、ユーザーが入力または変更した構成プロパティーの値を受け入れます。ウィザードは、ユーザーが初期化した構成プロパティーを ODA に送ります。

    ビジネス・オブジェクト・ウィザードは、これらのプロパティーを ODA ランタイム・メモリーに保管します。ODA 内では、ODKUtility クラスのインスタンスを通じて、これらのプロパティーにアクセスできます (ODKUtility クラスには、プロパティーへのアクセスのために getAgentProperty() メソッドと getAllAgentProperties() メソッドが用意されています)。

  3. ODA のメタデータを初期化します。ODA のメタデータには、ODA とその機能についての情報が記述されています。

    getAgentProperties() を呼び出した後、ビジネス・オブジェクト・ウィザードは ODA 基底クラス (ODKAgentBase2) の getMetaData() メソッドを呼び出します。

    このメソッドは、ODA クラスの一部として開発者が実装する必要のある抽象メソッドです。これにより、ODA メタデータを含む初期化済みの AgentMetaData オブジェクトが戻されます。

  4. ユーザーが初期化した始動プロパティーに基づいて ODA を初期化します。

    ODA を初期化する際、ウィザードは ODA 基底クラス (ODKAgentBase2) の init() メソッドを呼び出します。

    このメソッドは、ODA クラスの一部として開発者が実装する必要のある抽象メソッドです。これにより、リソース割り振りやデータ・ソースへの接続作成などの初期化タスクが実行されます

この章では、ODA の初期化に必要なメソッドの実装方法に関して、次のトピックを取り上げます。
初期化メソッド 詳細情報の参照先
getAgentProperties() 構成プロパティーの取得
getMetaData() ODA メタデータの初期化
init() ODA 開始の初期化

ソース・データの選択および確認

ビジネス・オブジェクト・ウィザードのステップ 3 では、「ソースの選択」ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、データ・ソースのソース・ノード が表示されます。

ソース・ノードはソース・ノード階層内に配列されています。各ソース・ノードは、ODA がデータ・ソース内で「検出」したオブジェクトの名前です。ソース・ノードを展開すれば、その他の子ノードを表示することができます。また、ソース・ノードを選択すれば、コンテンツを生成することができます。ユーザーは、このソース・ノード階層を展開し、データ・ソースからオブジェクトを選択して、コンテンツへの変換を行うことができます。詳しくは、ソース・ノード階層内での移動を参照してください。

ステップ 3 でウィザードは次のステップを実行します。

  1. 選択された ODA からソース・ノード階層を取得し、そのトップレベルを「ソースの選択」ダイアログ・ボックスに表示します。

    ソース・コード階層を取得する際、ウィザードは IGeneratesBoDefs インターフェースの getTreeNodes() メソッドを呼び出します。

    ODA 開発者は、ODA クラスに IGeneratesBoDefs インターフェースを実装する際に、このメソッドを実装する必要があります。このメソッドは、データ・ソースを検索してソース・ノードを「検出」し、それらのソース・ノードを TreeNode オブジェクトの配列としてビジネス・オブジェクト・ウィザードに戻します。最初にノードを展開したとき、ウィザードは getTreeNodes() を呼び出して、ソース・ノード階層の特定のレベルを表示します。この階層を横断することにより、詳細のレベルを選択できます。詳しくは、ソース・ノード階層内での移動を参照してください。

  2. 「ソースの選択」ダイアログ・ボックスで、コンテンツ生成のために選択された階層内のソース・ノードの名前を追跡します。ウィザードは、選択されたソース・ノードの名前を含む配列を生成します。

ビジネス・オブジェクト・ウィザードのステップ 4 では、「ソース・ノードの確認」ダイアログ・ボックスが表示されます。このダイアログでは、ユーザーが選択したソース・ノードが表示されます。

ユーザーは、選択内容を確認したり、「ソースの選択」ダイアログ・ボックスに戻ってソース・ノードを選択し直したりすることができます。「次へ」ボタンをクリックすると、ウィザードはコンテンツの生成を開始します。

getTreeNodes() メソッドの実装方法については、ソース・ノードの生成を参照してください。

コンテンツの生成

ODA を作成すると、表 17 に示すコンテンツ・タイプ のどちらか一方または両方を生成できます。

ODA が生成するデータの構造体は、コンテンツ・タイプによって決まります。 ODA で特定のコンテンツをサポートするには、ODA に対して適切なコンテンツ生成インターフェース を実装する必要があります。表 17 は、ODA がサポートするコンテンツ・タイプと、それに対して ODA が実装する必要のあるコンテンツ生成インターフェースを示しています。


表 17. ODA のコンテンツ・タイプ
コンテンツ・タイプ 説明 コンテンツ生成インターフェース
ビジネス・オブジェクト定義 ODA は、データ・ソース内のオブジェクトを表すビジネス・オブジェクト定義を生成します。 IGeneratesBoDefs
バイナリー・ファイル ODA は、生成されたコンテンツに関する情報を保持するファイル・オブジェクトを生成します。 IGeneratesBinFiles

注:
今回のリリースでは、ODA は、コンテンツとしてのビジネス・オブジェクト定義の生成をサポートする必要があります。したがって、ODA は IGeneratesBoDefs インターフェースを実装する必要があります。また、ODA は IGeneratesBinFiles インターフェースを実装することにより、コンテンツとしてのファイルの生成をサポートすることができます。

ソース・ノードを選択し、確認すると、ビジネス・オブジェクト・ウィザードはステップ 5 のコンテンツ生成を開始します。

このステップでは、「ビジネス・オブジェクトの生成中」画面が表示されます。また、ビジネス・オブジェクト定義のコンテンツ生成メソッド generateBoDefs() が呼び出され、(ステップ 4 で) ユーザーが選択したソース・ノードの配列が ODA に渡されます。

このメソッドは、選択したソース・ノードに対応するビジネス・オブジェクト定義を生成します。 ODA は、要求時コンテンツ・プロトコルでビジネス・オブジェクト定義の生成をサポートする必要がある ため、ビジネス・オブジェクト・ウィザードは 必ず generateBoDefs() メソッドを呼び出します。したがって、ODA 開発者は、ODA に IGeneratesBoDefs インターフェースを実装する際に、このメソッドを実装する必要があります。

ODA でファイル・コンテンツが生成されるかどうかは、IGeneratesBinFiles インターフェースが実装されているかどうかで決まります。ODA クラスがこのインターフェースを実装している場合、生成されたコンテンツを実際に提供するメソッドは、ファイル・コンテンツ・タイプに対して ODA が使用しているコンテンツ・プロトコル によって異なります。

したがって、ビジネス・オブジェクト・ウィザードがファイル用のコンテンツ生成メソッド generateBinFiles() を呼び出すかどうかは、次のことによって決まります。

注:
コンテンツ・プロトコルについては、ODA コンテンツ・プロトコルの選択を参照してください。

どのコンテンツ・プロトコルを使用する場合でも、コンテンツを生成するには、次のステップを実行する必要があります。

  1. 必要に応じて、動詞の値などの追加情報をビジネス・オブジェクト・プロパティーとして取得します。
  2. 要求されたコンテンツを生成し、それを ODA メモリー内の生成済みコンテンツ構造体に保管します。

以降のセクションでは、これらのステップについて概説します。コンテンツ生成プロセスの概要についてもう少し詳しく知りたい方は、表 18 に示す参照先をご覧になり、サポートされるコンテンツ・タイプの詳細な情報を確認してください。

表 18. コンテンツ生成プロセス
コンテンツ・タイプ 詳細情報の参照先
ビジネス・オブジェクト定義 ビジネス・オブジェクト定義の生成
バイナリー・ファイル ファイルの生成

ビジネス・オブジェクト・プロパティーの取得

通常 ODA は、ビジネス・オブジェクト定義を生成する前に、追加情報を必要とします。 ODA は、ビジネス・オブジェクト・プロパティー を定義することにより、このような追加情報を要求できます。

ODK API は、ビジネス・オブジェクト・プロパティーをエージェント・プロパティー (AgentProperty) オブジェクトとして表します。

ビジネス・オブジェクト・プロパティーを収集するために、ODA はビジネス・オブジェクト・ウィザードに「BO プロパティー」ダイアログ・ボックスを表示することができます。

このダイアログ・ボックスでは、ウィザードによりビジネス・オブジェクト・プロパティーが表示されます。それらのビジネス・オブジェクト・プロパティーを更新すると、ユーザーにより初期化されたプロパティーが ODA ランタイム・メモリーに書き込まれます (図 51 を参照)。

「BO プロパティー」ダイアログ・ボックスを表示するために、ODA のコンテンツ生成メソッドは、ODKUtility クラスで定義されている getBOSpecificProps() メソッドを呼び出します。

図 54. ビジネス・オブジェクト・プロパティーの取得


図 54 に示すように、getBOSpecificProps() メソッドでは次のステップが実行されます。

  1. ビジネス・オブジェクト・プロパティーをビジネス・オブジェクト・ウィザードに送ります。これらのビジネス・オブジェクト・プロパティーは、「BO プロパティー」ダイアログ・ボックスに表示されます。

    ビジネス・オブジェクト・プロパティーを送信するために、getBOSpecificProps() メソッドは、エージェント・プロパティー (AgentProperty) オブジェクト (表示する各ビジネス・オブジェクト・プロパティーごとに 1 つのオブジェクト) の初期化済みの配列を引き数として送ります。

  2. 「BO プロパティー」ダイアログ・ボックスから、値を追加または変更できます。「次へ」ボタンがクリックされると、ウィザードは、ユーザーが初期化したビジネス・オブジェクト・プロパティーを ODA 内の getBOSpecificProps() メソッドに戻します。

    ODA 内のこれらのビジネス・オブジェクト・プロパティーにアクセスするには、getBOSpecificProps() によって戻される Java Hashtable オブジェクトを使用します。または、getBOSpecificProperty() メソッドと getAllBOSpecificProperties() メソッドを提供する ODKUtility クラスのインスタンスを使用してこれらのプロパティーにアクセスすることもできます。

ODA は、getBOSpecificProps() を繰り返し呼び出すことで、さまざまなビジネス・オブジェクトのプロパティー・セットを取得できます。getBOSpecificProps() メソッドの使用方法については、ビジネス・オブジェクト・プロパティーの要求を参照してください。

生成済みコンテンツの提供

ODA は、生成したコンテンツを次の 2 つの部分に分けてビジネス・オブジェクト・ウィザードに提供します。

生成済みコンテンツを提供するメソッドは、特定のコンテンツ・タイプに対して ODA が使用しているコンテンツ・プロトコルによって異なります。

注:
コンテンツ・プロトコルについては、ODA コンテンツ・プロトコルの選択を参照してください。

次の表は、生成済みコンテンツの提供方法に関する情報の参照先を示しています。
コンテンツ・タイプ 詳細情報の参照先
ビジネス・オブジェクト定義 生成済みのビジネス・オブジェクト定義の提供
バイナリー・ファイル 生成されたファイルの提供

生成済みコンテンツを取得する際、ビジネス・オブジェクト・ウィザードは、表 19 に示すコンテンツ取得メソッドを呼び出します。


表 19. コンテンツ取得メソッド
コンテンツ・タイプ コンテンツ取得メソッド 詳細情報の参照先
ビジネス・オブジェクト定義 IGeneratesBoDefs.getBoDefs()
生成済みビジネス・オブジェクト定義へのアクセスの提供
バイナリー・ファイル IGeneratesBinFiles.getBinFile()
生成済みファイルへのアクセスの提供

コンテンツ取得メソッドは、ODA オブジェクト内の生成済みコンテンツ構造体にアクセスし、配列内の指定されたコンテンツをビジネス・オブジェクト・ウィザードに戻します。ビジネス・オブジェクト・ウィザードは、ステップ 6 におけるコンテンツ保管要求を処理する前に、生成済みコンテンツへのアクセスが必要となります。詳しくは、コンテンツの保管を参照してください。

コンテンツの保管

ビジネス・オブジェクト・ウィザードのステップ 6 では、「ビジネス・オブジェクトの保管」ダイアログが表示されます。このダイアログ・ボックスでは、生成済みのビジネス・オブジェクト定義を保管する方法を選択できます。

図 42 に示すように、ビジネス・オブジェクト・ウィザードでは、生成済みコンテンツを ICL プロジェクトまたはファイルに保管したり、Business Object Designer Express で各ビジネス・オブジェクト定義を開いたりすることができます。生成済みのビジネス・オブジェクト定義を指定した形式で保管するには、ビジネス・オブジェクト・ウィザードは生成済みコンテンツにアクセスできなければなりません。ビジネス・オブジェクト・ウィザードは、表 19 に示す ODA のコンテンツ取得メソッドを使用して、前のステップ (ステップ 5) でこのコンテンツを取得しています。

Copyright IBM Corp. 2004