写真1●ULFIREのシステム構成図(出典:ウルシステムズ)
写真1●ULFIREのシステム構成図(出典:ウルシステムズ)
[画像のクリックで拡大表示]

 ウルシステムズは2012年7月4日、インメモリー動作と分散処理によってデータベースへのアクセスを高速化するアプリケーション開発フレームワーク「ULFIRE」(写真1)を発表、同日販売を開始した。ULFIREのベースとなった受託開発案件(金融機関)では、通常のDBMS(データベース管理システム)では30分かかる処理(2万件のトランザクション)が、ULFIREでは10秒以内に完了したという。

 ULFIREは、データベースアクセスを高速化するアプリケーション開発フレームワーク(開発用コンポーネント)である。Java言語のクラスライブラリーとして実装している(今後、C++と.NETでも開発可能にする)。中核となるエンジン部分に、米VMwareの分散処理ソフト「VMware vFabric GemFire」を利用する。VMware vFabric GemFireの機能に、業務システム構築に必要な各種の機能を追加している。

 ULFIREの主な特徴は、DBMSがインメモリーで高速に動作することに加えて、データベース管理システム(DBMS)と、DBMSに対してアクセスする処理プログラムが、複数のインスタンスや複数のサーバー機に分散して動作することである。インスタンスやサーバー機を増やすことによって、データベースアクセス性能をリニアに向上させることができるという。

DBMSとロジックを分散配置、更新データは相互コピー

 ULFIREの仕組みは、こうだ。

 まず、DBMSが、複数のサーバー機(さらに同一サーバー機の中の複数のインスタンス)ごとに独立して存在する。すべてのDBMSは同じデータを持っており、一つのDBMSのデータが更新されると、ほかのDBMSにも更新を反映する。こうしてデータの整合性(コヒーレンシ)を保つ。

 さらに、DBMSだけでなく、DBMSにアクセスする処理プログラムも、複数のサーバー機やインスタンスごとに分散配置する。これらは並列に動作し、それぞれが別々のDBMS(処理プログラムと同一のサーバー機の上で動作しているインメモリーDBMS)にアクセスする。

 複数サーバーで構成するグリッドが、自律的に動作する。アクセス負荷に応じて動的にサーバー台数を増やすことができるほか、サーバーの障害時には別のサーバーが処理を引き継ぐことができる。

 インメモリーDBMSのデータを、トランザクション単位で非同期に既存のDBMSにコピー(バックアップ)する運用も可能。インメモリーDBMSを高速に利用しながら、直近のデータをハードディスク上に保存しておくことができる。

VMware vFabric GemFireを業務向けに拡張

 ULFIREは、VMware vFabric GemFireをエンジンとして利用しつつ、業務システム構築用の機能を追加したアプリケーション開発フレームワークである。

 VMware vFabric GemFireの素の機能は、インメモリーDBMSを分散配置して互いに更新データの整合性を保つことと、DBアクセス処理プログラムを分散配置することである。これに対して、ULFIREでは、負荷に応じて動的にサーバーを増やす機能や、サーバー障害時の縮退運転、既存DBMSへのデータ同期機能を追加している。

 ULFIREのライセンス価格(税別)は、1サーバー当たり300万円から。別途必要になるVMware vFabric GemFireの価格は、システム規模に応じて個別見積もりとなるが、どのようなシステム規模においても、ULFIREのライセンスとVMware vFabric GemFireのライセンスは同等レベルになる。

 ウルシステムズは、ULFIREを、同社のSI事業とは独立したパッケージソフトウエアとしてライセンス販売する。この一方で、現実的には、「ULFIREによるシステム構築の多くは、ウルシステムズによるSI受注案件になるだろう」としている。ULFIREを適用するシステム構築案件の規模としては、既存のデータベースでは遅くて使い物にならないケースとして、1億円以上の案件を想定している。