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