Vision コネクター・フレームワークの動作方法

コネクターは、コネクター・モジュールを使用して SAP アプリケーションと対話します。コネクター・モジュールは SAP のネイティブ・インターフェースに対して呼び出しを行い、SAP アプリケーションとの間でデータ (ビジネス・オブジェクトまたはイベント・データ) の受け渡しを行います。コネクターは柔軟に設計されているため、SAP アプリケーション用コネクターの初期化や、ビジネス・オブジェクト・データの受け渡しなどの異なるタスクに対して、異なるモジュールを使用できます。

コネクターと SAP アプリケーションの間の通信

コネクターでは、SAP の RFC (Remote Function Call) ライブラリーを使用して、SAP アプリケーションと通信します。SAP の RFC API を使用することで、外部プログラムから SAP アプリケーション内の ABAP 機能モジュールを呼び出すことができます。

ビジネス・オブジェクトの処理

コネクターは、メタデータ主導型です。メタデータ (WebSphere Business Integration システム内の場合) は、ビジネス・オブジェクトに格納されるアプリケーション固有データであり、コネクター・モジュールとアプリケーションとの対話を支援します。メタデータ主導型コネクター・モジュールは、サポートする各ビジネス・オブジェクトを処理する際に、コネクター・モジュール内にハードコーディングされた命令ではなく、ビジネス・オブジェクト定義にエンコードされたメタデータに基づいて処理を行います。

ビジネス・オブジェクトのメタデータには、ビジネス・オブジェクトの構造、その属性プロパティーの設定、およびアプリケーション固有情報の内容が含まれます。コネクター・モジュールはメタデータ主導型なので、新規ビジネス・オブジェクトでも変更されたビジネス・オブジェクトでも、コネクター・モジュール・コードの変更なしに処理できます。

Vision コネクター・フレームワークでは、トップレベルのビジネス・オブジェクトの動詞のアプリケーション固有情報の値 を使用して、ビジネス・オブジェクトを処理するために適切なコネクター・モジュールを呼び出します。動詞のアプリケーション固有情報は、コネクター・モジュールのクラス名を提供します。

ほとんどのトップレベル・ビジネス・オブジェクトの動詞のアプリケーション固有情報では、コネクター・モジュールのクラス名を示す必要があります。この動詞のアプリケーション固有情報の構文は、次のとおりです。

AppSpecificInfo = PartialPackageName.ClassName,

例えば、次のようにします。

AppSpecificInfo = sap.sapextensionmodule.VSapBOHandler,

この例では、sap.sapextensionmodule は部分パッケージ名であり、VSapBOHandler はクラス名です。完全パッケージ名には com.crossworlds.connectors 接頭部が含まれます。これは、WebSphere Business Integration システムによってパッケージ名に自動的に追加されます。つまり、この例の完全なテキストは次のようになります。

com.crossworlds.connectors.sap.sapextensionmodule.VSapBOHandler

注:
ほとんどのトップレベル・ビジネス・オブジェクトの動詞のアプリケーション固有情報では、コネクターのクラス名の後に、コンマ (,) 区切り文字を入れる必要があります。ただし、RFC Server Module で使用される Server 動詞は、セミコロン (;) で区切られます。サーバー動詞については、RFC Server Module の動作方法および サポートされる動詞を参照してください。

ビジネス・オブジェクトが次のように使用される場合は、動詞のアプリケーション固有情報にパッケージ名およびクラス名を指定する必要はありません。

重要:
RFC Server Module 向けのビジネス・オブジェクトを処理するカスタマー生成コネクター・モジュールでは、完全パッケージ名を指定する必要があります。この完全パッケージ名は、bapi で始まる必要があります。例えば、bapi.client.Bapi_customer_getdetail2 となります。この例での完全パッケージ名は、bapi.client、クラス名は Bapi_customer_getdetail2 です。

ほとんどのビジネス・オブジェクト処理は、それぞれのコネクター・モジュールに固有です。 ABAP Extension Module 用のビジネス・オブジェクト処理の詳細に ついては、ビジネス・オブジェクトの処理ビジネス・オブジェクト・データおよび ABAP Handler、および アーカイブ対象オブジェクトの構成を参照してください。

ALE Module 用のアプリケーション固有動詞情報について詳しくは、イベント処理および ラッパー・ビジネス・オブジェクトがある複数の IDocs の処理を参照してください。

同時実行可能な複数の相互作用の処理

アダプター・フレームワークは、アプリケーション・イベントを処理するスレッドと、ビジネス・オブジェクト要求を処理するスレッドを別個に作成できます。統合ブローカーから受け取った複数の要求を処理するとき、複数のスレッドを作成して、複数のビジネス・オブジェクト要求を処理することができます。例えば、InterChange Server Express では、コネクターが、複数のコラボレーションやマルチスレッド化されたコラボレーションから複数のビジネス・オブジェクト要求を受け取ることができます。

図 4 に、マルチスレッド化アーキテクチャーを示します。

図 4. Connector for SAP のマルチスレッド化アーキテクチャー

イベント処理

コネクターでは、ポーリング呼び出しを処理する際に、以下に示すステップが実行されます。

  1. アダプター・フレームワークは、ポーリング呼び出しを処理するため専用のスレッドを 1 つ作成します。このスレッドは、Vision コネクター・フレームワークの pollForEvents() メソッドを、PollFrequency 構成プロパティーに指定された頻度で呼び出します。
  2. スレッドは SAP をポーリングします。SAP では、ダイアログ・プロセスを使用してイベントを位置指定して戻します。
    注:
    コネクターの MaxNumberOfConnections 構 成プロパティーが 1 より大きい数値として評価された場合、Vision コネクター・フレームワークは、1 つの接続を SAP のポーリング専用に使用します。MaxNumberOfConnections の値が 1 であれば、イベント処理とサービス呼び出し要求処理は、SAP との 1 つの接続を共有して実行されます。

ポーリング・スレッドは、コネクターがシャットダウンされるときにのみ終了します。

注:
RFC Server コネクター・エージェントは、イベントをポーリングするのではなくイベントを SAP からプッシュするため、コネクター・フレームワークによって作成されたスレッドを使用する代わりにそれ自身でスレッドを作成します。ALE コネクター・エージェントは、RFC Server コネクター・エージェントを使用してイベントにアクセスするため、イベントを処理する際には、コネクター・フレームワークによって作成されたスレッドを使用する代わりにそれ自身でスレッドを作成します。

要求処理

アダプター・フレームワークは、ポーリング用スレッドとは別に、要求処理用の複数のスレッド (要求ビジネス・オブジェクト 1 つに 1 つのスレッド) を作成することができます。それぞれの要求スレッドは、次に示す場合に応じて、適切なビジネス・オブジェクト・ハンドラーのインスタンスを生成します。

例えば、InterChange Server Express からのビジネス・オブジェクト要求を処理するとき、ビジネス・オブジェクト・ハンドラーの数とタイプは、要求の送り元コラボレーションの数とタイプにより決まります。

コネクターの MaxNumberOfConnections 構成プロパティーが 1 より大きい数値として評価された場合、Vision コネクター・フレームワーク は、1 つの接続を SAP のポーリング専用に使用し、それ以外の接続は、要求処理専用のプールに割り振ります。

図 4 に示すように、コネクターは、ビジネス・オブジェクト要求を処理するとき、次のステップを実行します。

  1. アダプター・フレームワークは、ビジネス・オブジェクト要求ごとにスレッドを作成します。各スレッドは、Vision ビジネス・オブジェクト・ハンドラーの doVerbFor() メソッドを呼び出します。
  2. コネクターの MaxNumberOfConnections 構 成プロパティーが 1 より大きい数値として評価された場合、Vision ビジネス・オ ブジェクト・ハンドラーは Vision コネクター・フレームワークの接続プールを検 査して、接続ハンドルが使用可能かどうかを判断します。

    コネクターの MaxNumberOfConnections 構成プロパティーの 値が 1 であれば、Vision ビジネス・オブジェクト・ハンドラー は、イベント処理と 1 つの接続を共有します。

    以下に注意してください。

  3. SAP は、処理が完了し、戻りコードを送信した後、ダイアログ・プロセスを解放します。
  4. コネクターは、SAP からの戻りコードを受信した後、接続ハンドルを解放します。

使用可能な接続数の設定

使用可能な接続ハンドルの最大数を指定するには、MaxNumberOfConnections 構成プロパティーを使用します。接続数は、ダイアログ・プロセスの数を超えることはできません。

SAP では、相互作用の処理中にはダイアログ・プロセスをロックし、相互作用が完了したときにのみダイアログ・プロセスを解放します。そのため、並行する複数の要求は、処理が終了するまで同じ数のダイアログ・プロセスをロックします。

重要:
MaxNumberOfConnections の値を設定する前に、SAP BASIS 管理者に問い合わせて、アプリケーション・サーバーのパフォーマンスに悪影響を与えずにスループットを最大化できる適切な値を決定してください。

複数の接続のサポート

デフォルトでは、コネクターは単一スレッド化だけをサポートします。コネクターで複数のスレッドがサポートされるようにするには、コネクター始動スクリプトから次のフラグを除去してください。

Copyright IBM Corp. 2004, 2005