コネクターは、コネクター・モジュールを使用して 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
ビジネス・オブジェクトが次のように使用される場合は、動詞のアプリケーション固有情報にパッケージ名およびクラス名を指定する必要はありません。
ほとんどのビジネス・オブジェクト処理は、それぞれのコネクター・モジュールに固有です。コネクターでは、デフォルトで ABAP Extension Module が使用されます。 ABAP Extension Module 用のビジネス・オブジェクト処理の詳細については、"ビジネス・オブジェクトの処理"、ビジネス・オブジェクト・データおよび ABAP Handler、および アーカイブ対象オブジェクトの構成を参照してください。
ALE Module 用のアプリケーション固有動詞情報について詳しくは、 "イベント処理"および ラッパー・ビジネス・オブジェクトがある複数の IDocs の処理を参照してください。
システム全体のコネクター・フレームワークは、アプリケーション・イベントを処理するスレッドと、ビジネス・オブジェクト要求を処理するスレッドを別個に作成できます。統合ブローカーから受け取った複数の要求を処理するとき、複数のスレッドを作成して、複数のビジネス・オブジェクト要求を処理することができます。例えば、統合ブローカーが InterChange System の場合、コネクターは、複数のコラボレーションやマルチスレッドのコラボレーションから複数のビジネス・オブジェクト要求を受け取ることができます。
図 3 に、マルチスレッド化アーキテクチャーを示します。
図 3. Connector for SAP のマルチスレッド化アーキテクチャー
コネクターでは、ポーリング呼び出しを処理する際に、以下に示すステップが実行されます。
ポーリング・スレッドは、コネクターがシャットダウンされるときにのみ終了します。
システム全体のコネクター・フレームワークは、ポーリング用スレッドとは別に、要求処理用の複数のスレッド (要求ビジネス・オブジェクト 1 つに 1 つのスレッド) を作成することができます。それぞれの要求スレッドは、次に示す場合に応じて、適切なビジネス・オブジェクト・ハンドラーのインスタンスを生成します。
例えば、InterChange Server Express からのビジネス・オブジェクト要求を処理するとき、ビジネス・オブジェクト・ハンドラーの数とタイプは、要求の送り元コラボレーションの数とタイプにより決まります。
コネクターの MaxNumberOfConnections 構成プロパティーが 1 より大きい数値として評価された場合、Vision コネクター・フレームワークは、1 つの接続を SAP のポーリング専用に使用し、それ以外の接続は、要求処理専用のプールに割り振ります。
図 3 に示すように、コネクターは、ビジネス・オブジェクト要求を処理するとき、次のステップを実行します。
コネクターの MaxNumberOfConnections 構成プロパティーの値が 1 であれば、Vision ビジネス・オブジェクト・ハンドラーは、イベント処理と 1 つの接続を共有します。
使用可能な接続ハンドルの最大数を指定するには、MaxNumberOfConnections 構成プロパティーを使用します。接続数は、ダイアログ・プロセスの数を超えることはできません。
SAP では、相互作用の処理中にはダイアログ・プロセスをロックし、相互作用が完了したときにのみダイアログ・プロセスを解放します。そのため、並行する複数の要求は、処理が終了するまで同じ数のダイアログ・プロセスをロックします。
デフォルトでは、コネクターは単一スレッド化だけをサポートします。コネクターで複数のスレッドがサポートされるようにするには、コネクター始動スクリプトから次のフラグを除去してください。
OS400 |
---|
-tMAIN_SINGLE_THREADED |
Linux |
---|
-tMAIN_SINGLE_THREADED |
Windows |
---|
-tSINGLE_THREADED |