その他のアプリケーションとの統合 > Info*Engine アダプタ > JNDI Adapter Guide > Info*Engine アーキテクチャ > アダプタを介した接続の設定
  
アダプタを介した接続の設定
アダプタは、Info*Engine サーバーと情報システム間の接続を確立します。アダプタの一端は Info*Engine サーバーと通信し、もう一方は情報システムと通信します。アダプタは Info*Engine サーバーのリクエストを情報システムのリクエストに変換します。
Info*Engine には 2 種類のアダプタが用意されています。
ネイティブアダプタは Java 言語で実装され、正式な Info*Engine インタフェース仕様に準拠しています。たとえば、JDBC アダプタや JNDI アダプタはネイティブアダプタです。
非ネイティブアダプタは Java 以外の言語で実装されるか、または正式な Info*Engine インタフェース仕様に準拠していません。また、実装が Info*Engine とは異なるため、インストールする非ネイティブアダプタごとにゲートウェイを定義する必要があります。ゲートウェイは、アダプタが処理できるように Info*Engine リクエストを変換します。アダプタはリクエストを受け取ると、関連付けられているデータベースまたはデータリポジトリにそのリクエストを送信します。アダプタはデータリポジトリから取得した情報を、それを変換するゲートウェイに返し、Info*Engine サーバーに渡します。
使用するアダプタは、情報の読み込み元の情報システムによって異なります。Info*Engine には情報システムごとに固有のアダプタが用意されています。
ネイティブアダプタは、以下のようにインストールできます。
アダプタにアクセスする Info*Engine Webject と同じ Java 仮想マシンにインストールします。これは、プロセス内 (in-process) アダプタとして知られています。
同じハードウェアシステムまたはリモートハードウェアシステム上のアダプタ自の Java 仮想マシンに分散させます。これは、プロセス外 (out-of-process) アダプタとして知られています。
ネイティブアダプタのインストール方法は、サイトによって異なります。
ゲートウェイのコードは Info*Engine の一部としてインストールされるので、ゲートウェイは通常、呼び出し側の Webject と同じ Java 仮想マシン内にあります。
非ネイティブアダプタは、必ず独自の環境に分散され、プロセス外 (out-of-process) アダプタとして実行されます。
以下の各セクションでは、インストールオプションについて説明します。
プロセス内 (In-Process) アダプタとゲートウェイの使用
プロセス内 (in-process) アダプタおよびゲートウェイは、呼び出し側 Webject と同じ Java 仮想マシン (JVM) にインストールされ、実行されます。呼び出し側の Webject と同じ JVM で実行されるように設定できるのは、ネイティブアダプタとゲートウェイだけです。SAK によって、プロセス内 (in-process) アダプタまたはゲートウェイに対する Webject の処理時に必要なクラスが調べられ、そのクラスが JVM 内でインスタンス化されます。したがって、Webject とアダプタまたはゲートウェイ間の通信が効率よく行われます。
プロセス内 (in-process) アダプタおよびゲートウェイを設定すると、通信遅延とリソース使用率が最小限に抑えられます。ただし、アダプタまたはゲートウェイを実行する負荷が加わるので、Info*Engine コードのホストとなるマシンの全体的なリソース使用率が増加する場合があります。
アダプタがプロセス内 (in-process) アダプタとして設定されている場合は、アダプタ Webject を実行するどの SAK でもアダプタクラスをインスタンス化できます。以下の図は、カスタム Java アプリケーション、Web サーバー、および Info*Engine サーバーの JVM 内に常駐するアダプタクラスを示しています。
図に示されているように、アダプタが同じプロセス内にある場合、SAK とアダプタ間の外部通信は必要ありません。
一般に、1 台のシステム上でのリソース使用量が多くない場合は、プロセス内 (in-process) ネイティブアダプタとゲートウェイを実行するように設定します。
プロセス外 (Out-of-Process) アダプタとゲートウェイの使用
複数のハードウェアシステムにわたってアダプタを分散させると、Info*Engine コードをホストするマシン上でのリソース総使用量が減少しますが、Info*Engine コンポーネントと各アダプタ間の通信に必要な TCP/IP 接続の使用に関連して遅延とリソース使用量の増加が生じます。
以下の図は、3 つのアダプタと 1 つのゲートウェイを分散させるときに使用する通信回線を示しています。
分散されたネイティブアダプタとゲートウェイは、独自の Java 仮想マシン (JVM) にインストールされ、実行されます。これらの仮想マシンは、Info*Engine サーバーと同じハードウェアシステム上に配置することも、別のハードウェアシステム上に配置することもできます。非ネイティブアダプタは、プロセス外 (out-of-process) アダプタとしてのみ設定でき、必ず別個のプロセスとして実行されます。非ネイティブアダプタ用のゲートウェイは通常、通信遅延を最小限に抑えるためにプロセス内 (in-process) ゲートウェイとして設定されますが、同じプロセス内にある必要はありません。
アダプタを分散させてサイトに配置するかどうかは、アダプタがアクセスするアプリケーションの近くにアダプタを配置する必要があるかどうかという企業方針や、管理上の理由に基づいて決定される場合もあります。独自の Java 仮想マシン内でネイティブアダプタを実行する 1 つの理由は、仮想マシンのリソース使用率をより適切に管理するためです。