 |
|
前のページ 1 2 3 次のページ
|
 |
クラスタの構成
|
JBossのようなJ2EEサーバを用いたシステムでのクラスタの構成は、通常論理的に図2のようになります。クライアント(ユーザ)からは論理的に1台のサーバに見えますが、実際には同じ機能を持つ複数台のサーバから構成されます。

図2:クラスタの構成
|
Webサーバは、主にクライアントからのリクエスト受け付け、クライアントへ静的なページの返信、動的な処理を必要とするリクエストをJ2EEサーバへの転送を行います。その際図2のようにWebサーバに負荷分散モジュール(プラグイン)を組み込んでロードバランシングを行います。
J2EEサーバでは、主にビジネスロジックの実行、動的なページの生成・返信、データベース操作を行います。
さらにJ2EEサーバは大きくWebコンテナとEJBコンテナ部分に分かれます。WebコンテナではJSPが動的なユーザインターフェースを担当し、ServletがJSPやEJBをコントロールします。EJBコンテナでは文字通りEJBが動作し、ビジネスロジックやデータ処理を担当します。
J2EEサーバ内部ではWebコンテナからEJBコンテナへのリクエストが発生するので、WebコンテナからEJBコンテナへのロードバランシングも考慮する必要があります。
J2EEアプリケーションのクライアントはWebブラウザであることが多いため、システムとのやり取りはHTTPを利用することになります。HTTPはステートレスな(各リクエスト間の状態を保持しない)プロトコルのため、J2EEサーバでは各ユーザのリクエストをまたがる状態をセッション情報(Javaオブジェクト)としてサーバ側で保持しています。
J2EEサーバでのフェイルオーバー機能は、このようなセッション情報をクラスタ内の同じ処理機能を持つ各サーバ間で複製することで実現しています。
これは一般的にセッションレプリケーションと呼ばれています。セッションレプリケーションにより、サーバAで障害が発生しても、セッション情報はサーバBに複製してあるので、ユーザとの処理とデータはサーバBに引き継ぐことができます。
ユーザのセッション情報はWebコンテナ内でHttpSessionオブジェクトとして、またEJBコンテナ内でステートフルセッションBeanとして保持することができます。WebブラウザをクライアントとするWebアプリケーションでは、WebコンテナのHttpSessionオブジェクトでセッション情報を保持するのが一般的です。
このようにクラスタには主に次の機能から実現されていることがわかります。
|
- Webコンテナへのロードバランシング
- Webコンテナでのセッションレプリケーション
- EJBコンテナへのロードバランシング
- EJBコンテナでのセッションレプリケーション
|
 |
前のページ 1 2 3 次のページ
|

|
|

|
著者プロフィール
日本ヒューレット・パッカード株式会社 水野 浩典
1991年、同社入社以来、エンタープライズ環境でHP-UXを使用しているお客様のサポートの仕事に従事。その後、IA-64(Itanium)とPA-RISCのダイナミックトランスレータの開発経験を経て、Java、J2EEベースのベンチマークや障害解析、コンサルティングを経験。現在は、オープンソースのコンサルティングやサポートを行っている。8bitのバイト列やアセンブラコードを見て、解析することを何よりの楽しみ(?)にしています。
|

|
著者プロフィール
日本ヒューレット・パッカード株式会社 佐藤 修一
2000年より自社J2EEサーバの開発/国際化/テストに従事。以来、商用/オープンソース問わずJ2EEベースのシステム構築、ベンチマーク等を担当。現在は主にオープンソースのJ2EEサーバである「JBoss AS」を含めた「JEMS製品」や、同じくオープンソースのRDBMS「MySQL」のコンサルティングやサポートを精力的に行いながら、毎日、ソースコードと戯れています。
|
|
|
|