WebSphere® eXtreme Scale は、 柔軟性があってスケーラブルな、メモリー内データ・グリッドです。データ・グリッドは、複数のサーバーにまたがって、アプリケーション・データおよびビジネス・ロジックを 動的にキャッシュに入れ、区画化し、複製し、管理します。WebSphere eXtreme Scale は、高い効率性と直線的に伸びるスケーラビリティーを備えた、大量のトランザクション処理を実現します。 WebSphere eXtreme Scale を使用すると、トランザクションの整合性、高可用性、予測可能な応答時間などの高いサービス品質も手に入れることができます。
WebSphere eXtreme Scale の使用方法は いくつかあります。非常に強力なキャッシュとしても、アプリケーション状態を管理するメモリー内データベース処理スペースとしても、Extreme Transaction Processing (XTP) アプリケーションを構築するためにも、この製品を使用することができます。これらの XTP 機能には、最もビジネス上重要で要求が厳しいアプリケーションをサポートするためのアプリケーション・インフラストラクチャーが組み込まれています。
分散オブジェクト・キャッシュを使用することによって、柔軟性のあるスケーラビリティーが可能になります。 柔軟性のあるスケーラビリティーによって、データ・グリッドはそれ自体をモニターし、管理します。 データ・グリッドは、トポロジーへのサーバーの追加または削除を行うことができます。これにより、必要に応じてメモリー、ネットワーク・スループット、および処理能力の増加や減少を行います。 スケールアウト処理が開始すると、データ・グリッドの実行中に、再始動を必要とせずに、キャパシティーが追加されます。 逆に、スケールイン処理は即時にキャパシティーを除去します。 データ・グリッドは、障害から自動的にリカバリーすることで自己修復も行います。
WebSphere eXtreme Scale を実際のメモリー内データベースとみなすことはできません。メモリー内データベースは、単純すぎて WebSphere eXtreme Scale が管理できる複雑さを取り扱えない場合があります。メモリー内データベースは、サーバーに障害が起きても、その問題を修正できません。環境全体がその 1 台のサーバー上にある場合、障害が悲惨な結果を招く場合があります。
この種の障害に関する問題に対処するため、eXtreme Scale は所与のデータ・セットを、コンストレインド・ツリー・スキーマに相当する区画に分割します。 コンストレインド・ツリー・スキーマは、エンティティー間のリレーションシップを記述します。 区画を使用している場合、エンティティー・リレーションシップはツリー・データ構造をモデル化します。この構造では、ツリーの先頭がルート・エンティティーで、区画化される唯一のエンティティーです。ルート・エンティティーの他の子はすべて、ルート・エンティティーと同一の区画に保管されています。それぞれの区画は、プライマリー・コピーまたは断片として存在します。区画には、データのバックアップ用レプリカ断片も含まれます。 メモリー内データベースは、このように構造化されておらず、動的でもないため、この種の機能を提供できません。メモリー内データベースを使用している場合は、WebSphere eXtreme Scale が自動的に行う操作を実装する必要があります。 メモリー内データベースでは SQL 操作を実行でき、メモリー内でないデータベースと比較して処理速度が上がります。WebSphere eXtreme Scale には、SQL サポートの代わりに独自の照会言語があります。この照会言語は、より柔軟性があり、データの区画化を可能にし、信頼性の高い障害リカバリーを提供します。
後書きキャッシュ機能により、WebSphere eXtreme Scale はデータベースのフロントエンド・キャッシュとして働くことができます。 このフロントエンド・キャッシュを使用して、データベースの負荷と競合を 減らしながら、スループットが増加します。 WebSphere eXtreme Scale は、予測可能な処理コストで予測可能なスケールインおよびスケールアウトを提供します。
WebSphere eXtreme Scale には、 メモリー内データ・グリッドを提供するコンテナー・サーバー と呼ばれるサーバーがあります。このサーバーは、WebSphere Application Server 内部でも、単純な Java Standard Edition (J2SE) Java 仮想マシン上でも実行できます。単一の物理サーバー上で複数のコンテナー・サーバーを実行することが可能です。 結果として、メモリー内データ・グリッド は大きくなる場合があります。データ・グリッドは、アプリケーションやアプリケーション・サーバーのメモリーまたはアドレス・スペースによる制限はなく、それらに影響を与えることはありません。多数の物理サーバー上で稼働する何千、何万の Java 仮想マシンのメモリーを合計したメモリーを使用できます。
WebSphere eXtreme Scale を、メモリー内データベース処理スペースとして、ディスク、データベース、またはその両方でバックアップすることができます。
eXtreme Scale にはいくつかの Java API が 用意されていますが、多くの使用状況ではユーザー・プログラミングは必要なく、 ユーザーの WebSphere インフラストラクチャーでの構成とデプロイを行えばいいだけです。
最も単純な eXtreme Scale プログラミング・インターフェースは、ObjectMap インターフェースです。これは単純なマップ・インターフェースであり、キャッシュに値を入れる map.put(key,value) メソッドと、後で値を取り出す map.get(key) メソッドを含んでいます。
データ・グリッドの基礎となるパラダイムは、キーと値のペアです。データ・グリッドは値 (Java オブジェクト) を、関連付けられたキー (別の Java オブジェクト) と一緒に保管します。その後、キーを使用して値が取り出されます。eXtreme Scale では、マップはこのようなキーと値のペアのエントリーで構成されます。
WebSphere eXtreme Scale は、単一の 1 つだけのローカル・キャッシュから、複数の Java 仮想マシンまたはサーバーを使用する大容量の分散キャッシュにいたるまで、多くのデータ・グリッド構成を提供します。
単純な Java オブジェクトを保管することに加えて、リレーションシップを持つオブジェクトを保管することもできます。 SELECT … FROM … WHERE ステートメントを使用する SQL に似た照会言語を使用して、これらのオブジェクトを取り出すことができます。 例えば、1 つの 注文オブジェクトが 1 つの顧客オブジェクトを持ち、複数の品目オブジェクトをその注文オブジェクトに関連付けるという例が考えられます。 WebSphere eXtreme Scale は、1 対 1、1 対多、多対 1、および多対多のリレーションシップをサポートします。
WebSphere eXtreme Scale1 は、キャッシュにエンティティーを保管するための、EntityManager プログラミング・インターフェースもサポートします。 このプログラミング・インターフェースは、Java Enterprise Edition のエンティティーによく似ています。エンティティー・リレーションシップは、エンティティー記述子 XML ファイルから、 または Java クラス内のアノテーションから、自動的に検出できます。EntityManager インターフェース上で find メソッドを使用して、1 次キーによってキャッシュからエンティティーを取り出すことができます。エンティティーをデータ・グリッドにパーシストすること、またはデータ・グリッドから除去することが 1 トランザクション境界内で実行できます。
単純な英字名がキーに なっている分散例を考えてみましょう。キー別にキャッシュを 4 つの区画に 分割できます。区画 1 は A から E で始まるキー、 区画 2 は F から L で始まるキーに対応し、以下同様にします。可用性の ため、1 つの区画が 1 つのプライマリー断片と 1 つのレプリカ断片を持つことにします。 キャッシュ・データに対する変更は、プライマリー断片に対して行われ、レプリカ断片に 複製されます。データ・グリッド・データを収容するサーバーの数を構成します。eXtreme Scale は、これらのサーバー・インスタンス全部を対象にして断片にデータを分配します。可用性の ため、レプリカ断片はプライマリー断片とは別の物理サーバーに 置かれます。
WebSphere eXtreme Scale は、カタログ・サービスを使用して、各キーの プライマリー断片を配置します。物理サーバーに障害が起こり、後でリカバリーするときに、eXtreme Scale サーバー間での断片の移動を扱います。例えば、レプリカ断片を含んでいるサーバーに障害が起こった場合、eXtreme Scale は新しいレプリカ断片を割り振ります。 プライマリー断片を含んでいるサーバーに障害が起こった場合は、レプリカ断片がプロモートされてプライマリー断片になります。上記と同じように、新しいレプリカ断片が作成されます。