Oracle Forms Servicesのアーキテクチャ
Oracle Forms Servicesは、複雑なトランザクションFormsアプリケーションをイントラネットやインターネットなどのネットワークにデプロイするための中間層アプリケーション・フレームワークです。
Forms Servicesアーキテクチャは、3層で構成されています。開発者は、Forms Developerを使用してFormsアプリケーションを作成し、Forms Servicesを使用して作成したアプリケーションを配布します。また、開発者は、以前にクライアント/サーバーにデプロイされたアプリケーションを、3層のアーキテクチャに移動することもできます。3層アーキテクチャへの移行では、アプリケーション・コードの小規模な変更が必要になることもあります。
アーキテクチャの3つの層は、次のとおりです。
- クライアント層: クライアント層(図-1の上部)には、次の2つの構成のいずれかが含まれます:
- Formsスタンドアロン・ランチャ(FSAL)およびJava Runtime EnvironmentまたはJava Development Kit (JDK)。
- Java Web Start (JWS)でアプリケーションを起動するために使用されるJava Plug-In/Java Runtime (JPI/JRE)。
ノート:
IEモードのMicrosoft Edgeなどの一部のブラウザには、この構成に必要なコンポーネントが含まれている場合がありますが、この構成は使用しないことをお薦めします。
- 中間層: 中間層(図-1の中央)は、アプリケーション・ロジック、サーバー・ソフトウェアおよびコンパイル済Formsアプリケーション・モジュールが格納されるアプリケーション・サーバーです。
Formsリスナー・サーブレットおよびFormsランタイム・プロセスも中間層に常駐します。
- データベース層: データベース層(図-1の下部)は、データベース・サーバー・ソフトウェアが格納されるデータベース・サーバーです。
Formsリスナー・サーブレット
Formsリスナー・サーブレットは、JavaクライアントとFormsランタイム・プロセス間でブローカとしての役割を果たします。サーブレットは、Javaクライアント・プロセスから接続リクエストを受け取ると、Javaクライアント・プロセスにかわってFormsランタイム・プロセスを開始します。
アプリケーションでForms REST統合を使用している場合、RESTへのコールはFormsリスナー・サーブレットによって実行されます。
図-2は、クライアントがHTTPリクエストを送信し、Forms ServicesからHTTPレスポンスを受信する仕組みを示しています。Oracle Forms ServicesはFormsリスナー・サーブレットを使用して、Formsランタイム・プロセスの開始と終了、Formsランタイム・プロセスとの通信を行います。この図では、クライアントは左側に示されています。図の中央に示されているHTTPリスナーは、クライアントのネットワーク・エンドポイントとしての役割を果たし、他のサーバー・マシンやポートがファイアウォールで公開されないようにします。
図の右側に示されているFormsランタイム・プロセスは、特定のFormsアプリケーションに含まれているコードを実行します。Formsリスナー・サーブレットは、クライアントごとにFormsランタイム・プロセスの生成を管理し、クライアントとそれに対応するFormsランタイム・プロセス間のネットワーク通信を管理します。
ノート:
Formsリスナー・サーブレットは、Oracle Fusion Middlewareのインストール・プロセスで構成されます。Formsランタイム・プロセス
アプリケーション・サーバーには、Oracle Formsセッションごとに1つのOracle Formsランタイム・プロセスが存在します。Oracle Formsは実際にはこのプロセスで実行され、アプリケーション・ロジックと処理はこのプロセスにより管理されます。また、データベース接続の管理、データの問合せと更新、フォーム内の任意のPL/SQLの実行、トリガーの実行なども行います。クライアント/サーバー・モードで実行するのに使用されたのと同じフォーム、メニューおよびライブラリ・ファイルを使用します。
また、Formsランタイム・プロセスでは、必要に応じて、Java仮想マシン(JVM)を使用して、アプリケーションにインポートされたカスタムJava、Oracle Reportsへのコール、またはOracle Business Intelligence Publisher (Analytics Publisherとも呼ばれる)へのコールも実行されます。Formsランタイム・プロセスによって消費されるメモリーの量を制限するために、Forms JVMコントローラを構成して有効にできます。JVMコントローラを有効にすると、このJVMで必要なメモリーを複数のJVM間で共有できるため、合計メモリー消費を減らし、サーバー上のより多くのリソースを解放できます。JVMの使用とプーリングを管理する場合は、「Java仮想マシンの構成と管理」を参照してください。