1. Oracle Forms Server をクリックします。
11.2 Forms Server のビルトイン最適化機能 のビルトイン最適化機能 のビルトイン最適化機能 のビルトイン最適化機能
Forms ServerおよびJavaクライアントには、いくつかの最適化機能が含まれており、大き
く次の項目に分類できます。
■ クライアント・リソース要件の最小化
■ Forms Serverリソース要件の最小化
■ ネットワーク使用量の最小化
■ ネットワークを介して送信されるパケットの効率の拡大
■ クライアントでのアプリケーション画面の効率的なレンダリング
11.2.1 クライアント・リソース要件の最小化 クライアント・リソース要件の最小化 クライアント・リソース要件の最小化 クライアント・リソース要件の最小化
Javaクライアントは、主にアプリケーション画面のレンダリングを行います。Javaクライア ントには、埋込みアプリケーションのロジックはありません。Javaクライアントをロードす ると、複数のフォームを同時に表示できます。すべてのForms Serverアプリケーションに 対応する汎用Javaクライアントを使用すると、各アプリケーションにカスタマイズされた Javaクライアントと比較して、クライアント上のリソースが少なくて済みます。
Javaクライアントは、多くのJavaクラスで構成されています。これらのクラスは、スプ ラッシュ画面の表示、ネットワーク通信およびルック・アンド・フィールの変更などの、機 能サブコンポーネントにグループ化されます。機能サブコンポーネントを使用すると、
Forms DeveloperおよびJava仮想マシン(JVM)は、すべての機能クラスを一度にダウン
ロードせず、必要に応じて機能をロードできます。
11.2.2 Forms Server リソース要件の最小化 リソース要件の最小化 リソース要件の最小化 リソース要件の最小化
フォームの定義をFMXファイルからロードすると、実行プロセスのプロファイルは次のも のに要約できます。
■ Encoded Program Units
■ Boilerplate Object/Image
■ Data Segments
これらの中で、Data Segmentsセクションのみがアプリケーションの指定したインスタンス に対して一意です。Encoded Program UnitsおよびBoilerplate Objects/Imagesはすべての アプリケーション・ユーザーに対して共通です。Forms Serverは共有コンポーネントを物理 メモリーにマップして、同じFMXファイルにアクセスするすべてのプロセスでそのコン ポーネントを共有します。
指定したFMXファイルをロードする最初のユーザーは、そのフォームに必要な全メモリー 量を使用します。ただし、後続のユーザーの場合は必要なメモリー量が大幅に減らされてい るので、ローカル・データのエクステントにのみ依存します。共有コンポーネントをマップ するこのメソッドを使用すると、指定したアプリケーションに必要な、ユーザーごとの平均 メモリー量を減らすことができます。
11.2.3 ネットワーク使用量の最小化 ネットワーク使用量の最小化 ネットワーク使用量の最小化 ネットワーク使用量の最小化
帯域幅は重要なリソースで、インターネット・コンピューティングの一般的な広がりととも に、インフラストラクチャにますます大きな負担を強いるようになっています。このため、
アプリケーションはネットワークの容量を節約して使用することが重要です。
Forms Serverは、メタデータ・メッセージを使用するJavaクライアントと通信します。メ
タデータ・メッセージは、実行対象のオブジェクトとその実行方法をクライアントに通知す る名前と値のペアのコレクションです。パラメータのみをJavaクライアント上の汎用オブ ジェクトに送信することで、(同じ効果になるよう新規コードを送信した場合と比較して)
通信量を約90%減らすことができます。
Forms Serverでは、次の3つの方法で効果的にデータ・ストリームを圧縮します。
■ 同じようなメッセージの集合(名前と値のペアのコレクション)を送信すると、2番目 以降のメッセージには、前のメッセージとの相違点のみ含まれます。この結果、ネット ワーク・トラフィックを大幅に減らすことができます。このプロセスは、message diff-ingと呼ばれます。
■ 同じ文字列がクライアント画面で繰り返されると(たとえば、同じ企業名が記載されて いる複数行のデータが表示される場合)、Forms Serverはその文字列を一度のみ送信し、
後続のメッセージではその文字列を参照します。参照によって文字列を渡すことで、帯 域幅の効率は向上します。
■ データ・タイプはその値に必要な最小のバイト数で送信されます。
11.2.4 ネットワークを介して送信されるパケットの効率の拡大 ネットワークを介して送信されるパケットの効率の拡大 ネットワークを介して送信されるパケットの効率の拡大 ネットワークを介して送信されるパケットの効率の拡大
待ち時間は、アプリケーションの応答時間に影響を与える最も重要な要因です。待ち時間の 影響をなるべく受けないようにする最もよい方法の1つは、JavaクライアントとForms
Server間で、対話中に送信されるネットワーク・パケットの数を最小限にすることです。
Forms Developerモデル内のトリガーを多数使用すると大きな効果がありますが、各トリ
ガーにネットワークの往復が必要なため、待ち時間の影響が大きくなります。トリガーに関 連する待ち時間を避ける方法の1つは、イベント・バンドルを介してトリガーをグループ化 することです。たとえば、ユーザーが項目Aから項目Bにナビゲートする場合(あるエン トリ・フィールドから別のフィールドへタブする場合など)、トリガー実行前後の範囲には、
それぞれForms Server上での処理が必要です。
イベント・バンドルは、2つのオブジェクト間をナビゲートしている間にトリガーされたす べてのイベントを集めて、それらを単一のパケットとしてForms Serverに配布して処理し ます。ナビゲートに多くのオブジェクトの問合せが関連している場合(離れているオブジェ クト上でマウスのクリックを行った場合など)、イベント・バンドルは問い合されたすべて のオブジェクトからすべてのイベントを集めて、そのグループを単一のネットワーク・メッ セージとしてForms Serverに配布します。
11.2.5 クライアントでのアプリケーション画面の効率的なレンダリング クライアントでのアプリケーション画面の効率的なレンダリング クライアントでのアプリケーション画面の効率的なレンダリング クライアントでのアプリケーション画面の効率的なレンダリング
指定したフォーム内のすべてのボイラープレート・オブジェクトは仮想グラフィック・シス テム(VGS)ツリーの一部です。VGSは、すべてのForms Developer製品に共通の図形サ ブコンポーネントです。VGSツリー・オブジェクトは、座標、カラー、線幅およびフォント などの属性を使用して記述します。オブジェクトのVGSツリーをJavaクライアントに送信 する場合、送信する属性のみが指定したオブジェクト・タイプのデフォルトと異なる属性に なります。
イメージは圧縮されたJPEGイメージとして送信および格納されます。これにより、ネット ワーク・オーバーヘッドとクライアントの必要なメモリー量の両方を減らすことができま す。
リソースの最小化には、クライアントおよびサーバー・プロセスのメモリー・オーバーヘッ ドの最小化も含まれます。ネットワークを最適な状態で使用するには、帯域幅を最小に維持 し、ネットワークの待ち時間の影響も含まれるため、クライアントおよびForms Server間 の通信に使用するパケット数を最小化することが必要です。