2.1.2 アプリケーションのスケーリング方法

これらの設計上の目標に対応するため、Productionサンプル・アプリケーションは次のようにしてスケーリングされています:

  • ステートレス・オブジェクト・モデルを実装して、サーバー・プロセスが同時に管理できるクライアント・リクエストの数を増やします。
  • University、BillingおよびOracle Tuxedo Tellerアプリケーションのサーバー・プロセスを、それらの構成が行われているグループ内でレプリケートします。該当するグループは、UBBCONFIGファイルで定義されているORA_GRPサーバー・グループおよびAPP_GRPサーバー・グループです。
  • ORA_GRPサーバー・グループおよびAPP_GRPサーバー・グループを追加のサーバー・マシンであるProductionマシン2上でレプリケートし、データベースのパーティション化も行います。
  • 次のオブジェクトに一意のオブジェクトID (OID)を割り当て、それらがそれぞれのグループにおいて同時に複数回インスタンス化されるようにします。
  • RegistrarFactory
  • Registrar
  • TellerFactory
  • Teller

    これにより、これらのオブジェクトはプロセスではなくクライアント・アプリケーションごとに利用可能となるので、並列処理機能に対応できるようになります。

  • ファクトリ・ベース・ルーティングを実装して、一部の学生のクライアント・リクエストを1つのマシンに、他の学生のクライアント・リクエストを別のマシンに振り分けます。

ノート:

Productionサンプル・アプリケーションの使用を簡単にするには、1つのデータベースを使い、1つのマシン上で実行されるように、アプリケーションをOracle Tuxedoソフトウェア・キット上で構成します。ただし、この章で示した例では、アプリケーションは2つのデータベースを使って2つのマシン上で動作しています。Productionサンプル・アプリケーションは、数台のマシン上で動作し、複数のデータベースを使用すべく構成できるよう設計されています。構成を複数のマシンとデータベース用に変更するには、UBBCONFIGファイルを修正して、データベースをパーティション化する必要があります。この手順は、「アプリケーションをさらにスケーリングする方法」で説明しています。

次の項では、Productionサンプル・アプリケーションがレプリケートされたサーバー・プロセスとサーバー・グループ、オブジェクト状態管理、およびファクトリ・ベース・ルーティングをどのように使用して、スケーラビリティの目標を達成するかを説明します。