コネクター・アーキテクチャー

コネクターは、2 つのコンポーネントで構成されています。コネクター・フレームワークおよびアプリケーション固有のコンポーネントです。コネクター・フレームワークは InterChange Server Express とアプリケーション固有のコンポーネントの間の仲介役として機能し、そのコードはどのコネクターにも共通です。アプリケーション固有のコンポーネントには、特定のテクノロジー (この場合は JD Edwards OneWorld) またはアプリケーションに合わせて作成されたコードが含まれます。コネクター・フレームワークは、InterChange Server Express とアプリケーション固有のコンポーネントの間で、以下のサービスを提供します。

本書では、コネクター・フレームワークとアプリケーション固有のコンポーネントの両方について説明します。ここでは、これらの両方のコンポーネントを「コネクター」と呼んでいます。

すべての WebSphere Business Integration Server Express Plus アダプターでは、 統合ブローカーとして InterChange Server Express を使用できます。詳細については、ご使用のブローカーのインストールおよび実装に関する資料を参照してください。



図 1. ビジネス・オブジェクトのアーキテクチャー

ビジネス関数

OneWorld ビジネス関数は、ジャーナル記入トランザクション、減価償却費の計算、および販売注文トランザクションなどの、特定のタスクを実行します。2 種類のビジネス関数があります。レギュラー・ビジネス関数は、税額計算やアカウント番号検証などの単純なタスクを実行します。マスター・ビジネス関数は、さらに複雑なタスクを実行するもので、レギュラー・ビジネス関数をいくつか呼び出して、それらのタスクを実行することができます。

インターオペラビリティー・フレームワークには、大小のビジネス関数にアクセスする単一のポイントを提供するビジネス関数ラッパーが含まれています。マスター・ビジネス関数ラッパーも含まれています。次の図では、OneWorld およびサード・パーティーのアプリケーションが API およびマスター・ビジネス関数を用いて相互作用する方法を示しています。

OneWorld は、Java、COM、DB2 および Oracle 用のネイティブ専有データベース API、XML、Table Conversion などのサード・パーティーのアプリケーションと通信するための API をいくつかサポートしています。

アダプターは Java API を使用して OneWorld 内のビジネス関数を起動します。ビジネス・オブジェクトは、ビジネス関数クラスまたはオブジェクトにマップされます。

実装の作業についてまとめると、以下のようになります。

  1. GenJava プロセスの実行用に iJDEScript ファイルを作成します。GenJava スクリプト・ファイルのサンプルを参照してください。
  2. GenJava ユーティリティーを実行して、OneWorld オブジェクトの JAR ファイルを生成します。
  3. キー・フィールドを設定します。
  4. アダプター構成ファイルにビジネス・オブジェクトを追加します。付録 B, Connector Configurator Expressを参照してください。
  5. アダプターを始動します。コネクターの始動を参照してください。

要求処理

コネクター・フレームワークは、InterChange Server Express から要求を受け取ると、要求ビジネス・オブジェクトのビジネス・オブジェクト定義と関連したビジネス・オブジェクト・ハンドラー・クラスの doVerbFor() メソッドを呼び出します。doVerbFor() メソッドの役割は、要求ビジネス・オブジェクトのアクティブな動詞に基づいて、実行する動詞の処理を決定することにあります。要求ビジネス・オブジェクトから情報を取得して、オペレーションの要求を作成し、アプリケーションへ送信します。

コネクター・フレームワークが要求ビジネス・オブジェクトを doVerbFor() に渡すと、このビジネス・オブジェクトがインターフェース・オブジェクトにマップされている場合、BO ハンドラーが動詞 ASI を読み込み、それを一連の呼び出し可能な関数に変換します。これらの関数には、Business Object Designer Express で稼働している Object Discovery Agent (ODA) から、特定のセマンティックを与えることができます。ODA を使用してメソッド呼び出しシーケンスを動詞に割り当てる方法の詳細については、ビジネス・オブジェクトの作成および変更を参照してください。オブジェクトの処理を正常に行うためには、呼び出す順序が非常に重要になります。

動詞 ASI がブランクのインターフェース・ビジネス・オブジェクトの場合、BO ハンドラーは、取り込んだパラメーターでビジネス関数属性を検索し、そのビジネス関数を呼び出します。1 つのメソッドのみにデータを取り込むことができます。そうではなく、複数のメソッドにデータが取り込まれているが、動詞 ASI はブランクであるという場合には、コネクターはエラーをログに記録して FAIL コードを戻します。エラー処理の詳細については、エラー処理を参照してください。

ビジネス・オブジェクトがビジネス関数オブジェクトにマップされている場合、BO ハンドラーは、そのビジネス・オブジェクトで指定されたデータを持つ特定のビジネス関数を起動します。

コネクターは、インターフェース・ビジネス・オブジェクトの特定の動詞はサポートしませんが、ビジネス・オブジェクトの動詞は、ODA を使用して構成できます。WebSphere Business Integration Server Express Plus で使用される標準の動詞は、CreateRetrieveUpdate、および Delete です。

ビジネス関数ビジネス・オブジェクトには、ODA がデフォルトの動詞 Execute を生成します。これらのビジネス・オブジェクトには、動詞 ASI は必要ありません。

ビジネス・オブジェクトの特殊なアクセス権をサポートするため、ACCESS_LEVEL という名前のメタ・ビジネス・オブジェクトが定義されています。ACCESS_LEVEL ビジネス・オブジェクトには、Username および Password という 2 つの属性があり、どちらもタイプはストリングです。特殊なアクセス規則を持ち、コネクター構成ファイルで指定された Username によってアクセスできない OneWorld ビジネス・オブジェクトは、このビジネス・オブジェクト (ACCESS_LEVEL) を単一カーディナリティーの子ビジネス・オブジェクトとします。この子ビジネス・オブジェクトは、doVerbFor 呼び出し内でトップレベル・ビジネス・オブジェクトのみに追加する必要があります。このトップレベル・ビジネス・オブジェクトのすべての子ビジネス・オブジェクトは、ACCESS_LEVEL 子ビジネス・オブジェクト内で指定された Username を通じてアクセス可能でなければなりません。

BO ハンドラーは、トップレベル・ビジネス・オブジェクトにタイプ ACCESS_LEVEL の子ビジネス・オブジェクトがあるかどうかをチェックします。そのような子ビジネス・オブジェクトがあり、そのビジネス・オブジェクト内の Username 属性の値がアダプターの使用している値と異なる場合は、新規の接続を開いて、子ビジネス・オブジェクトの属性 Username および Password の値を使用してビジネス・オブジェクトを処理します。ビジネス・オブジェクトの処理が完了してから、接続を閉じます。

トップレベル・ビジネス・オブジェクトがタイプ ACCESS_LEVEL の子オブジェクトを持たない場合、または UserName 属性がアダプター・プロパティーで指定されている UserName と同じ場合は、BO ハンドラーはプールから接続オブジェクトを取り出します。

使用可能な接続オブジェクトが存在しない場合、プール・サイズが最大値に達していなければ、BO ハンドラーは新規の接続オブジェクトをプール内に作成します。使用可能な接続オブジェクトが存在せず、プール・サイズが最大値に達している場合は、BO ハンドラーは使用可能になるまで待機します。

アプリケーション・イベントの処理

イベント通知には、アダプターとともに出荷されるイベント・パッケージ BIA_EVENT のインストールと、JDE データベースへのイベント表およびアーカイブ表の作成が必要です。

イベント・パッケージ BIA_EVENT のインストールおよび構成の方法の情報については、IBM イベント・ストアのインストールおよび構成を参照してください。

JD Edwards OneWorld アプリケーションにおけるレコードの作成、更新、または削除の操作は、イベントとして処理できます。イベント表の取り込みには、OneWorld でサポートされるテーブル・トリガーを使用できます。イベント表にイベントを生成するには、JD Edwards が推奨するその他のメソッドを使用することもできます。これらのレコードは、pollForEvents の呼び出し中に取得および処理されます。イベントに関連するイベント・テーブル・ストアの情報は、表 6 で説明しています。

注:
Event ID は、イベント表内で一意である必要があります。

注:
イベントがサブスクライブされている間に、コネクターは、表 6 の情報を使用して対応するビジネス・オブジェクトをビルドし、後続処理のためにそれらのオブジェクトをコネクター・フレームワークに送信します。

イベント処理用ビジネス・オブジェクトの検索

イベント処理のためのオブジェクトの検索は、キー属性と非キー属性の両方に基づいて行います。ビジネス・オブジェクトが JD Edwards のビジネス関数を表す場合には動詞 Execute が、ビジネス・オブジェクトがインターフェースを表す場合には動詞 Retrieve がサポートされることが必須です。

イベント管理

コネクターは IBM イベント表 (F5501005) を一定間隔でポーリングしてイベントを検索し、最初は優先順位順に、次に順次にイベントを処理します。コネクターがイベントを処理すると、イベントの状況がそれに応じて更新されます。

ArchiveProcessed プロパティーを設定すると、イベントの状況を更新後、コネクターが IBM アーカイブ表 (F5501006) にイベントをアーカイブするかどうかが決定します。ArchiveProcessed プロパティーの詳細については、コネクターの構成を参照してください。表 2 は、ArchiveProcessed プロパティーの設定に基づいたアーカイブの振る舞いを示しています。

Copyright IBM Corp. 2004