3.7.4 CTMを利用した負荷分散(Stateless Session Beanの場合)

アクセスポイントになるコンポーネントがStateless Session Beanの場合に,CTMによって負荷を分散する構成です。

<この項の構成>
(1) システム構成の特徴
(2) それぞれのマシンに必要なソフトウェアと起動するプロセス

(1) システム構成の特徴

J2EEサーバ上で動作するアプリケーションのアクセスポイントがStateless Session Beanの場合に,CTMを使用して実現する構成です。ここでは,クライアントがEJBクライアントアプリケーションの場合について説明します。

EJBクライアントアプリケーションは,システムプロパティに登録したグローバルCORBAネーミングサービスからオブジェクトリファレンスをラウンドロビン方式でルックアップすることで,リクエストの振り分け先を分散します。ただし,それぞれのJ2EEサーバでは同じ名前(同じ別名)でStateless Session Beanを開始しておく必要があります。

Stateless Session Beanを対象にしたCTMによる負荷分散の構成の例を次の図に示します。

図3-40 Stateless Session Beanを対象にしたCTMによる負荷分散の構成の例

[図データ]

これ以外の凡例については,「3.2 システム構成の説明について」を参照してください。

特徴
  • Stateless Session Beanの負荷の均衡を実現して,高い可用性を確保できます。
  • EJBクライアントからのラウンドロビン方式によるグローバルCORBAネーミングサービスのルックアップと,CTMによるリクエストの振り分けによって,J2EEサーバ間の負荷均衡が実現できます。
  • Stateless Session Beanのスケールアウトが容易に実現できるので,アプリケーションサーバの稼働率を向上できます。
  • 特定のJ2EEサーバにトラブルが発生した場合,CTMによってほかのJ2EEサーバにリクエストをスケジューリングすることで,システムの縮退運転ができます。また,EJBクライアントアプリケーションからは,トラブルを検知したJ2EEサーバにはアクセスされません。
リクエストの流れ
アクセスポイントであるJ2EEサーバ上のStateless Session Beanへのリクエストは,EJBクライアントからCTM経由で送られます。その際,EJBクライアントは,グローバルCORBAネーミングサービスからStateless Session BeanのEJBHomeオブジェクトリファレンスの名前をルックアップします。そのあと,リクエストはCTMによって,適切なアプリケーションサーバ上のJ2EEサーバに振り分けられます。

CTMを使用して負荷を分散する場合,グローバルCORBAネーミングサービスを独立したマシンに配置することもできます。このとき,グローバルCORBAネーミングサービスを配置したマシンを,統合ネーミングスケジューラサーバといいます。

統合ネーミングスケジューラサーバを配置したシステムの構成を次の図に示します。

図3-41 Stateless Session Beanを対象にしたCTMによる負荷分散の構成の例(統合ネーミングスケジューラサーバを配置した場合)

[図データ]

凡例については,「3.2 システム構成の説明について」を参照してください。

特徴
  • Stateless Session Beanの負荷の均衡を実現して,高い可用性を確保できます。
  • 統合ネーミングスケジューラサーバのレプリカを作成して複数配置することで,ネーミングサービスの可用性を確保できます。
  • EJBクライアントからのラウンドロビン方式によるグローバルCORBAネーミングサービスのルックアップと,CTMによるリクエストの振り分けによって,J2EEサーバ間の負荷均衡が実現できます。
  • Stateless Session Beanのスケールアウトが容易に実現できるので,アプリケーションサーバの稼働率を向上できます。スケールアウト時に,EJBクライアントで定義したグローバルCORBAネーミングサービスのリストを変更する必要はありません。
  • 特定のJ2EEサーバにトラブルが発生した場合,CTMによってほかのJ2EEサーバにリクエストをスケジューリングすることで,システムの縮退運転ができます。EJBクライアントアプリケーションからは,トラブルを検知したJ2EEサーバにはアクセスされません。
  • EJBクライアントは,統合ネーミングスケジューラサーバ上のグローバルCORBAネーミングサービスからStateless Session BeanのEJBHomeオブジェクトリファレンスの名前をルックアップします。そのあと,アプリケーションサーバのCTMデーモンに処理が振り分けられます。

(2) それぞれのマシンに必要なソフトウェアと起動するプロセス

CTMを使用して負荷を分散する場合に,それぞれのマシンに必要なソフトウェアと起動するプロセスについて説明します。

(a) アプリケーションサーバマシン

アプリケーションサーバマシンには,Application Server Enterpriseをインストールする必要があります。

起動するプロセスは次のとおりです。

(b) 統合ネーミングスケジューラサーバマシン

統合ネーミングスケジューラサーバを配置するシステム構成の場合,統合ネーミングスケジューラサーバマシンには,Application Server Enterpriseをインストールする必要があります。

起動するプロセスは次のとおりです。J2EEサーバを起動する必要はありません。

(c) 運用管理サーバマシン

運用管理サーバマシンには,Application Server StandardまたはApplication Server Enterpriseをインストールする必要があります。

起動するプロセスは次のとおりです。

(d) EJBクライアントマシン

EJBクライアントマシンには,Application Server Standard,Application Server Enterprise,またはuCosminexus Client(Windowsの場合)をインストールする必要があります。

起動するプロセスはEJBクライアントアプリケーションのプロセスです。