JavaVM(仮想マシン)の「BEA JRockit」は,米BEA Systemsが開発した無償のJavaVMで,Windows,Linux,SolarisなどのOS上で動作する。高速処理に定評があり,主にサーバー・サイドのJavaアプリケーションと組み合わせて利用される。JRockitの開発マネージャであるHenrik Stahl氏(写真,米BEA Systems,Java Runtime Products Group,Product Manager)に,これからのJavaVMに求められる機能と,JRockitの製品戦略を聞いた。(聞き手は,松山 貴之=日経SYSTEMS)
---今,JavaVMにどんな機能が求められているのか
環境の変化に対応しなければならない。それは「サーバー仮想化」という動きだ。VMwareやXenなどのHypervisor技術に基づいた仮想化ソフトを利用するケースが増えている。一つのハードウエア上で多くのアプリケーションを動作させることになるが,単に動作させるだけでなく,アプリケーション間の干渉がないようにすることが求められている。そのためにはアプリケーションごとにリソースを制御しなければならない。
---リソースの割り当てはOSが担うのではないのか
その通り。だが汎用OS(WindowsやLinuxなど)では力不足だ。実行時に(プロセスごとの)優先順位を付けることはできるが,一定量の(メモリー,CPU,ネットワーク帯域などの)リソースをアプリケーションに確実に割り当てることはできないのが実情だ。状況によっては,メモリー上のデータがディスクに書き出されてしまうこともある。そうなれば性能は大きく低下する。
---そうした問題をどうすれば解決できるのか
メモリーやCPU,ネットワーク帯域を制御するには,“汎用OSを利用しない”というアプローチがある。それを当社では進めている。ハードウエア上でHypervisor(技術に基づいたソフト)を動作させ,その上にJavaVM専用のOS「Bare Metal」(開発プロジェクト名),さらにその上でJavaVMを動作させる。そのような動作環境において,JavaVMごとにリソースを確実に割り当てるという方法だ。汎用OSを利用しないので確実にリソースを割り当てることが可能だ。JavaVMから見るとBare MetalはOSに見えるが,汎用OSの機能は備えず,一つのJRockitプロセスを動作させるのに必要な機能のみ提供する。
---そのような構成をとるなら,Hypervisorはなくてもいいのではないか
技術的には可能だ。だがそうすれば,ハードウエアの違いをBare Metalで吸収しなければならない。具体的には多くのデバイス・ドライバを備えなければならないが,それはHypervisorが得意とするところだ。
---リソースの割り当ては別のソフトが担うのか
そうだ。「JVM Pool」(開発プロジェクト名)と呼んでいる。1台のサーバーだけでなく,複数台のサーバーのリソースを制御する。
---「Bare Metal」と「JVM Pool」はいつごろ提供する予定なのか
2006年末の提供を予定している。