XTP(大量トランザクション処理)
開発/実行環境としてのXWSの概要
WXSの実体は、約14MBの1つのJARファイルです。スタンドアローンのJ2SE 1.4以降の上で稼働します。JPAやアノテーションを使う場合は、Java SE 5以降が必要となります。
特定のアプリケーション・サーバーや特定のOSを実行環境の前提とはしていません。例えば、米IBM製品ではなく、Tomcat(オープンソースのアプリケーション・サーバーの1つ)とMicrosoft SQL Server(米Microsoftのデータベース・サーバー)の間のキャッシュとして利用するといった、WAS以外の環境で使っている事例も多くあります。
しかしながら、米IBM製品の「WebSphere Application Server Network Deployment」(WAS ND)と共に利用することで、自動的にカタログ・サーバーが作られます。これにより、管理コンソール上でデータのアクセス数や実行時間を監視するといったことが可能になります。
グリッド容量を柔軟に拡張できる
WXSでは、ヒープ領域(メモリ領域)を2GBとったJVM(JavaVM)が、1500個でもスムーズに実行できることが実証されています。これだけの性能があれば、総容量2TBのデータ・グリッドとして利用できます。
グリッドのスケーラビリティには弾力性があります。グリッドがそれ自体をモニターして管理することで、スケールアウトとスケールインが可能であり、自動的に障害を復旧して自己修復できます。スケールアウトによってグリッドの実行中に再始動をせずにメモリ容量を追加でき、スケールインによって即時に排除/除去できます。
トランザクションを保証
WXSには、キャッシュ・データへの更新に対するトランザクション機能が組み込まれています。変更データは、コミット(反映)またはロールバック(元に戻す)が可能です。また、プラグインの開発が必要になりますが、データベースを含めて、ライト・スルー(write-through)またはライト・ビハインド(write-behind)で動作させることも可能です。
ライト・スルーは、メモリ上のデータとデータベースを更新してから制御を戻します。データベースとメモリ上のデータの整合性は保たれますが、データベース・サーバーに負荷がかかり、処理時間も大きくなります。一方、ライト・ビハインドでは、メモリ上のデータを更新するとすぐに制御が戻され、データベースの更新は非同期で行われます。これによりレスポンスの高速化とデータベース・サーバーの負荷軽減が図れます。
JPAローダーを利用した場合のライト・ビハインドによる効果は、「WebSphere eXtreme Scaleをインライン・データベース・バッファーとして活用する」で詳しく説明しています。
複数の排他制御が可能
データ更新時の排他制御では、(読み取り時にロックをかけない)楽観的ロックと、(読み取り時にロックをかける)悲観的ロックを選択することができます。アプリケーション要件により、スケーラビリティを重視し並行実行を可能にするか、整合性を重視するかを決めることができます。
高い開発生産性
WXSでは、データ・アクセス用のAPI(Application Programming Interface)として、ObjectMap APIとEntityManager APIを用意しています。どちらもJavaプログラマーなら馴染みのあるコーディング・スタイルです。
ObjectMap APIは、java.util.Mapを拡張したAPIであり、POJO(Plain Old Java Object)をキーとバリューのペアとして保持します。これは単純なマップ・インタフェースであり、「map.put(key,value)」でキャッシュに値を入れ、次に「map.get(key)」で値を取り出します。
システム管理面から見たXWSの特徴
エージェントがデータグリッド側で処理を実行
マップ&リデュース(MapReduce、米Googleが提唱し自社内で使っているキー・バリュー型データへのアクセス方法)的な処理を簡単に実行させるAPIを備えています。これにより、データ・オブジェクトのあるサーバー側で処理を並列に実行し、余計なデータをクライアントへ通信する負荷を減らすことができます。
HA/レプリケーション機能を備える
WXSは、WAS ND(WebSphere Application Server Network Deployment)と同じ「HA Manager」と呼ばれる障害検知機能を持ち、お互いのプロセスの状況を監視しています。プロセスに障害が発生した場合、別プロセスとして動作していたレプリカがプライマリーに昇格し、さらに別のレプリカが作成されて自動的に処理を継続します。
さらに、データセンター内だけでなく、地域(Zone)をまたいだ分散環境に適したレプリケーション/障害回復機能も提供しています。
セキュリティ機能と監視機能を備える
業務によっては、キャッシュに保管したデータも、データベース・サーバー同様のセキュリティが必要になります。WXSでは、設定によって、認証/認可というセキュリティ機能を有効にすることが可能です。
また、アプリケーション基盤として状況の監視が必要な場合には、別途、「IBM Tivoli Monitoring」や「CA Wily Introscope」などの稼働状況監視/実行時性能監視ソフトとの連携も可能です。
次ページでは、WXSが、具体的にどのような用途で役立つのかを示します。