Sun Java Enterprise System 2005Q4 技術の概要

次元 3: サービスの品質

すでに説明したアーキテクチャーの 2 つの次元 (インフラストラクチャーサービスの依存関係および論理層) では、主にアーキテクチャーの論理的な面に焦点を当てました。 つまり、サービスをエンドユーザーに配信するためにどのような方法で対話するか、あるいはどのようなコンポーネントが必要であるかについてです。一方、配備されるソリューションで同様に重要な次元は、サービス品質の要件を満たすためのソリューションの機能です。

ソリューションアーキテクチャーのサービスの品質の次元は、Java ES サービス品質コンポーネントが果たす役割を明らかにします。

サービス品質

ビジネスの運営におけるインターネットサービスや e コマースサービスの重要性が増しているため、これらのサービスのパフォーマンス、可用性、セキュリティー、スケーラビリティー、および保守性は、高いパフォーマンスを備えた大規模な配備アーキテクチャーの重要なサービス品質要件になりました。

優れたソフトウェアソリューションを設計するには、適切なサービス品質要件を設定し、それらの要件を満たすアーキテクチャーを設計する必要があります。いくつかの重要なサービス品質により、サービス品質要件を指定します。これらのサービス品質を次の表に要約してあります。

表 2–2 ソリューションアーキテクチャーに影響するサービス品質

システムサービス品質 

説明 

パフォーマンス

ユーザーの負荷条件に関する応答時間の測定 

可用性

システムのリソースやサービスがエンドユーザーにアクセス可能になる頻度 (システムの「稼働時間」) の測定。

セキュリティー

システムとそのユーザーの整合性を記述する要素の複雑な組み合わせ。セキュリティーには、システムの物理セキュリティー、ネットワークセキュリティー、アプリケーションおよびデータのセキュリティー (ユーザーの認証および承認)、またセキュリティー保護された情報のトランスポートも含まれます。 

スケーラビリティー

配備されたシステムに対して、随時、容量を拡張する機能。通常、スケーラビリティーにはシステムへのリソースの追加が含まれるが、追加時に配備アーキテクチャーを変更する必要はありません。 

潜在能力

システムでリソースを追加せずに、異常なピーク負荷使用を処理する機能 

保守性

配備されたシステムの保守のしやすさ。 システムの監視、発生した問題の修復、ハードウェアおよびソフトウェアのコンポーネントのアップグレードなどが含まれます。 

サービス品質の次元は、ソリューションの配備アーキテクチャーに、つまりアプリケーションコンポーネントとインフラストラクチャーコンポーネントが物理環境内でどのように配備されるかに、大きな影響を与えます。

配備アーキテクチャーに影響を与えるサービス品質は、互いに密接に関係しています。あるシステム品質に対する要件がほかのサービス品質の設計に影響を与えることが、よくあります。たとえば、セキュリティーのレベルを上げるとパフォーマンスに影響を与える可能性がありますが、これに伴って可用性にも影響が生じます。冗長性を使用して可用性の問題に対処するためにコンピュータを追加すると、保守コスト (保守性) に影響を与える可能性があります。

ビジネスの要件と制約の両方を満たす配備アーキテクチャーを設計するには、複数のサービス品質が相互に関連する仕組み、およびこれらのかね合いを理解しておくことが重要です。

Java Enterprise System サービス品質コンポーネント

システムサービスコンポーネントまたは分散型アプリケーションコンポーネントが提供するサービス品質を向上するために、主にいくつかの Java ES コンポーネントが使用されます。これらのソフトウェアコンポーネントは、多くの場合、ロードバランサやファイアウォールなどのハードウェアコンポーネントとともに使用されます。

「サービス品質コンポーネント」で紹介した Java ES サービス品質コンポーネントについて、次に要約します。

次の表は、アーキテクチャーの観点からの最も重要な Java ES サービス品質コンポーネントと、それらの各コンポーネントが最も影響を及ぼすシステム品質を示しています。

表 2–3 サービス品質コンポーネントと影響を受けるシステム品質

コンポーネント 

影響を受けるシステム品質 

Communications Express

セキュリティー

スケーラビリティー 

Directory Proxy Server

セキュリティー

スケーラビリティー

High Availability Session Store 

可用性

Portal Server, Secure Remote Access

セキュリティー

スケーラビリティー

Sun Cluster 

可用性

スケーラビリティー

Web Proxy Server 

セキュリティー パフォーマンス 保守性

Sun Cluster ソフトウェア

Sun Cluster ソフトウェアは、高可用性サービスおよび高スケーラビリティーサービスを、Java ES コンポーネントおよび Java ES インフラストラクチャーがサポートするアプリケーションに対して提供します。

クラスタとは緩やかに結合された一連のコンピュータのことであり、サービス、システムリソース、およびデータの単一のクライアントビューを一括して提供します。クラスタの内部では、冗長コンピュータ、インターコネクト、データ記憶域、およびネットワークインタフェースを使用して、クラスタベースのサービスおよびデータに高可用性を提供します。

Sun Cluster ソフトウェアは、メンバーノードおよびその他のクラスタリソースの健全性を継続的に監視します。障害が発生した場合、Sun Cluster ソフトウェアは監視対象のリソースのフェイルオーバーを開始するために介入し、内部の冗長性を使用して、リソースへのほぼ連続的なアクセスを可能にします。

Messaging Server および Calendar Server 用のデータストアサービスをサポートする 2 つのノードから成るクラスタを次の図に示します。

図 2–6 Sun Cluster ノードによる可用性の設計

Sun Cluster 可用性設計に含まれる冗長のコンピュータ、データストア、およびインターコネクトを示す図。

Sun Cluster データサービスパッケージ (Sun Cluster エージェントと呼ばれることもある) が、すべての Java ES システムサービスコンポーネントに利用できます。カスタム開発されたアプリケーションコンポーネント用のエージェントを記述することもできます。

Sun Cluster ソフトウェアによる制御が行われるので、スケーラブルなサービスも提供できます。クラスタのグローバルファイルシステムおよびクラスタ内の複数のノードの機能を利用して、インフラストラクチャーサービスやアプリケーションサービスを実行することにより、サービスの複数の並行インスタンス間で、これらのサービスに対して増加する要求のバランスを取ることができます。したがって、正しく設定されていれば、Sun Cluster ソフトウェアは分散型のエンタープライズアプリケーションに高可用性とスケーラビリティーの両方を提供できます。

Sun Cluster 環境をサポートするのに必要な冗長性のために、ソリューションに Sun Cluster を含めると、物理環境に必要なコンピュータやネットワークリンクの数がかなり増えます。

Sun Cluster の可用性サービスは、ほかの Java ES コンポーネントが提供するサービスとは異なり、分散型のピアツーピアサービスです。したがって、Sun Cluster ソフトウェアは、クラスタ内のすべてのコンピュータにインストールする必要があります。