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の下部)は、データベース・サーバー・ソフトウェアが格納されるデータベース・サーバーです。

図-1 フォームを実行する3層構造

図-1の説明が続きます
「図-1 フォームを実行する3層構造」の説明

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のインストール・プロセスで構成されます。

図-2 Formsリスナー・サーブレットを使用したアーキテクチャ

図-2の説明が続きます
「図-2 Formsリスナー・サーブレットを使用したアーキテクチャ」の説明

Formsランタイム・プロセス

Formsランタイム・プロセスには、サーバーとしてクライアント層と通信するときと、クライアントとしてデータベース・サーバーと通信するときの、2つの役割があります。クライアント層と通信するときは、クライアント層からのリクエストを管理し、メタデータをクライアントに送信してユーザー・インタフェースを記述します。データベース・サーバーと通信するときは、リクエストされたデータをデータベース・サーバーに問い合せます。

アプリケーション・サーバーには、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仮想マシンの構成と管理」を参照してください。