Sun ONE ロゴ
Sun ONE Application Server 7, Enterprise Edition サーバーアーキテクチャの概要

サーバーのアーキテクチャの概要

SunTM Open Net Environment (ONE) Application Server 7, Enterprise Edition は、クラスタリング、ロードバランス、HTTP セッションフェイルオーバー、高可用性などの機能を JavaTM 2 Platform, Enterprise Edition (J2EETM) のアプリケーションに提供するように設計されています。

クラスタは通常、HTTP セッションデータを 1 つの持続データストア (インストールされている高可用性データベース (HADB)) に保存するように設定されたいくつかの Sun ONE Application Server インスタンスと、ロードバランサを使用するように設定された 1 台の Web サーバーで構成されます。Sun ONE Application Server に付属するロードバランサプラグインを使用することも、サードパーティ製のロードバランサを使用することもできます。クラスタは、外部クライアントからは Sun ONE Application Server の 1 つのインストールに見えます。クラスタ内では、Sun ONE Application Server の個々のインスタンスはノードと呼ばれます。

ロードバランサプラグイン

ロードバランサプラグインは、Sun ONE Web Server または Apache Web サーバーなどの Web サーバーの拡張機能としてインストールされます。Web サーバーが HTTP 要求をプラグインに委任すると、プラグインは委任された HTTP 要求をクラスタの個々のノードに配信します。


Sun ONE Application Server では、このロードバランサプラグインを使用しなくてもかまいません。クラスタ全体への要求の配信には、サードパーティ製のロードバランサも使用できます。ただし、『入門ガイド』の例では、ロードバランサプラグインが使用されています。


HTTP セッションの持続性とフェールオーバー

クラスタ内のノードが HTTP セッションを持続するように設定されている場合は、そのノードが失敗すると、失敗したノードの HTTP セッションの状態に別のノードがアクセスし、クライアントへの応答を続行できます。本稼働環境では、Sun ONE Application Server は HTTP セッションデータを HADB (高い可用性と拡張性を備えたトランザクションベースのデータストア) に保存します。

クラスタリングシナリオの例

次の図は、ロードバランサプラグインを備えた Web サーバー、HADB を使用して HTTP セッションデータを保存するように設定された 2 つの Sun ONE Application Server インスタンス、およびアプリケーションデータを保存するためのリモートデータベース管理システム (RDBMS) で構成されている、簡単なクラスタリングシナリオを示しています。

図 1 クラスタリングシナリオの例

クラスタの例

次の手順では、要求がどのように処理されるかについて説明します。

  1. 着信クライアントが Web サーバーによって処理された URL に HTTP 要求を送信します。Web サーバーは、ロードバランサプラグインによって着信 HTTP 要求が処理されるように設定されています。
  2. 次に、ロードバランサプラグインはクラスタ内の Sun ONE Application Server ノードの 1 つに要求を転送します。プラグインでは、重み付けラウンドロビン方式のロードバランスを使用して、ターゲットとなるノードを決めます。
  3. ターゲットノードは、ロードバランサプラグインから転送された要求を受信し、HTTP セッションを開始して、HTTP セッションデータを HADB に格納し、J2EE アプリケーションデータを RDBMS に格納します。クライアントがアプリケーションを実行すると、HTTP セッションデータが更新されて HADB に格納され、アプリケーションデータが更新されて RDBMS に格納されます。
  4. システムクラッシュのためにノードが失敗すると、ロードバランサはそのノードによる要求の応答が停止したことを検知し、クラスタ内の別のノードに要求を転送し始めます。
  5. 新しいターゲットノードでは、引き継がれた HTTP セッション情報を HADB から取り出し、クライアントの要求への応答を続行して、クライアントがデータを失わずに HTTP セッションを完了できるようにします。

Sun ONE Application Server の配備シナリオの詳細は、『Sun ONE Application Server Operational Deployment Guide』を参照してください。

単一の Application Server の配備

アプリケーションサーバーのインスタンスは、配備する Application Server の基本となります。各サーバーインスタンスには、J2EE プラットフォームの Web コンテナと EJBTM コンテナがあります。Web コンテナには、検証済みの高性能 HTTP サーバーがあります。オブジェクトリクエストブローカ (Object Request Broker (ORB)) モジュールにより、RMI-IIOP を使用して EJB を呼び出すことができます。

アプリケーションは、バックエンドシステムにアクセスするため、J2EE コネクタアーキテクチャに対応したリソースアダプタ、サードパーティのリソースアダプタ、JMS、組み込みの JMS プロバイダまたはサードパーティのプロバイダに加えて、一般的なサードパーティ製の JDBC ドライバ (任意の組み合わせ) を使用します。分散トランザクションの範囲内であれば、バックエンドシステムへのアクセスは、すべてが Java で記述された内蔵のトランザクションマネージャを使って管理できます。

管理サーバーは、コア管理アプリケーションと SNMP エージェントを実行する特別なサーバーインスタンスです。リモート管理はすべて、管理サーバー経由で行われます。管理サーバーには、コマンド行や Web ブラウザベースの管理クライアントから HTTP や HTTPS (セキュリティ保護付き) を使って直接アクセスします。

図 2 Sun ONE Application Server の実装

単一のアプリケーションサーバーインスタンスの図

Web サーバーのプラグイン (ロードバランサプラグインなど) を使用すると、1 つ以上のファイアウォール層によって保護された非武装地帯 (DMZ) にある 1 つまたは複数の Web サーバーの背後に Application Server を配備できます。フロントエンドの Web サーバー層は、このプラグインを使って、インターネットから受信した HTTP/HTTPS トラフィックをバックエンドのアプリケーションサーバー層にある Application Server (複数可) に送信します。

さまざまなクライアントアプリケーションが、Application Server に配備されたビジネスサービスにアクセスできます。Web サービスクライアントとブラウザベースのクライアントは、HTTP または HTTPS を使って、Web サービス、サーバーサイドのエンドポイント、J2EE Web アプリケーションにアクセスできます。




Copyright 2003 Sun Microsystems, Inc. All rights reserved.