Loading
|
@IT > Java Virtual MachineがJavaの弱点!? |
|
Javaの爆発的な普及の原動力となったのが、CやC++とは一線を画すJava Virtual Machine(以下JVM)のアーキテクチャである。しかしミッションクリティカル環境では、このJVMが「アキレス腱」となることもある。JVMが内包する問題点を明らかにするとともに、この問題を解消するヒューレット・パッカード(以下HP)のソリューションを紹介する。
Javaの爆発的な普及の原動力となったのが、高いポータビリティを実現するJVMアーキテクチャである。しかしミッションクリティカル環境では、このJVMが、逆に「アキレス腱」となることもある。では、JVMが内包する問題点とはどのようなものなのだろうか?
例えばOSにバグがある場合、OSベンダはすぐさまパッチを公開するのが通例である。Windowsであれば、「Windows Update(あるいはMicrosoft Update)」を通じて随時パッチを入手してインストールできる。UNIXの場合も、個々の細かなバグについて、ベンダ各社からタイムリーにパッチを入手できる。よって、アプリケーションの修正では対処できないOS側の問題も、適切なパッチさえ当てればすぐに解決可能だ。例えば、あるUNIXベンダでは、ミッションクリティカル向けサポート契約を結ぶユーザーに対し、SLAベースのミッションクリティカルサービスを提供している。これは、OSにバグが発見されたとき、2週間以内のパッチ提供を保証するものである。システム担当者は、これによりユーザーに対して「いつまでに問題を修正できます」と回答できる。 しかし、JVMのバグについては事情が異なる。例えばサン・マイクロシステムズ(以下サン)は、同社が無償公開しているJVMについて、個々のバグを修正するためのパッチを提供していない。その代わりに、JVMのバグレポートを集めた「Bug Database」を一般公開しており、そこで多くの投票数を集めたバグから優先的に修正し、数カ月に1回のマイナー・バージョンアップ時に反映させる。個々のバグは、運がよければ次回バージョンアップで修正されるが、再現性の低いバグや日本語環境に固有のバグなどは投票数が集まりにくく、修正までに時間がかかる可能性もある。そのためシステム担当者は、JVMのバグがアプリケーション運用に深刻な影響を与えているような状況でも、それが解消される時期を明確に返答できないのである。 バージョンアップによるバグフィクスの弊害はほかにもある。それは、バージョンアップのたびにJavaアプリケーションのテストを繰り返さなくてはならないことだ。 JVMのバージョンアップでは数十個のバグが一斉にフィクスされ、時には機能追加や仕様変更も実施される。例えばサンが2004年9月に公開した「J2SE 5.0」は、2005年5月の「J2SE 5.0 Update 3」までに3回のマイナー・バージョンアップが実施され、合計で270件以上のバグがフィクスされている。これだけ大量の修正が施されれば、特にミッションクリティカル環境ではアプリケーションの回帰テストを実施せざるを得ず、OSのバージョンアップに匹敵する検証作業が必要となる。また、もし1回のバージョンアップで懸案のバグがすべて解消されなければ、数カ月後にはもう1度バージョンアップしなければならない。
ミッションクリティカル環境におけるJVMのもう1つの問題点は、サポート期間の短さである。ミッションクリティカル・システムは、1度カットオーバーしたら数年間は大きなバージョンアップをせずに継続運用することも少なくない。そのため、ミッションクリティカル向けのOSやアプリケーション・サーバでは長期サポートの提供が一般的である。例えば、ミッションクリティカル向けの代表的なUNIXであるHP-UXでは10年間、BEAのWebLogic環境では約5〜7年間のサポートが利用可能だ。これに対し、特定バージョンのJVMのサポート期間は、ISV検証にかかる時間を除くと実質3〜3.5年程度。その後はシステムのバージョンアップを余儀なくされるのが実情だ(図1)。
このように、ミッションクリティカル環境におけるJava導入には、実のところ「死角」があったといわざるを得ない。そこで続いては、これらの問題点を解消し、ミッションクリティカル環境でのスムーズなJVM運用を実現するソリューションに注目してみよう。
HPでは、上述したようなJVM利用の問題点を解消する「MC Javaサポートソリューション」の提供を2005年5月から開始した。これは、JVMに対してSLAベースの長期サポートとパッチ提供を実施するという、業界初の試みである。 MC Javaサポートソリューションは、以下の点を特徴とする。
MC Javaサポートソリューションで特に目を引くのは、JVMへのパッチ提供が実施される点だ。HPは、サンからのライセンス供給を受けてHP-UX対応の「HP JVM」を開発し提供している。今回のソリューションでは、このHP JVM向けにHPが独自に作成するパッチが提供される。このパッチをHP JVMに適用することで、個々のバグだけを修正できる。また、すべてのパッチは、HP社内で主要なISVソフトウェアとの動作検証を実施し、さらにISV各社の承認を得てから提供される。こうした信頼性の高いパッチの供給により大がかりなJVMのバージョンアップは不要となり、タイムリーな対応が可能となる。 また今回のソリューションでは、2週間以内を目標にパッチを提供するというミッションクリティカルレベルのSLAが盛り込まれた。こうしたSLAベースのリアクティブ条件を明示したJVMのサポートサービスはほかに例がない。このサポート体制により、JVMのバグがいつまでに修正されるか、明確な根拠をもとにユーザーに説明できるようになるはずだ。さらにMC Javaサポートソリューションでは、Java専任のエンジニアが24時間365日体制でサポートを提供している。
今回のMC Javaサポートソリューションでは、この標準サポートに加えて、ミッションクリティカル向けの長期サポートが用意された。具体的には、JVMのメジャーバージョンアップ後、1〜1.5年の評価期間をへて高信頼性が確認されたマイナーバージョンを、HPが「MCサポート対象版」として認定する。標準サポートでは同バージョンに対するサポート期間は残り3〜3.5年となるが、MC Javaサポートソリューションではさらに期間を3年間延長する。つまり、合計で6〜6.5年の長期サポートを受けられるわけだ。これにより、長期運用を前提としたITシステムでもJVMのサポート計画を立てやすくなる(図2)。
HP-UXやHP Serviceguardでの実績に代表されるように、HPはもともとミッションクリティカル分野を得意とするベンダだ。そのため、HP JVMもまたミッションクリティカル環境での利用に耐える品質の高さが特徴である。例えばHP JVMのリリースに際しては、サンが規定する互換性テストをパスしたうえで、ストレス・テストや回帰テスト、OS互換性、パフォーマンスなどOS並みの厳格なテストが施される。続いてHP社内のラボで各種ISVソフトウェアとの検証作業が行われた後、ISV各社での検証作業が実施される。こうして初めてリリースにたどり着くのである。こうした一連の過程で得られた結果は、HPのJava開発ラボにフィードバックされ、次回リリースに反映される。 さらにHPでは、ミッションクリティカル環境の現場で得られたノウハウもとにJavaパフォーマンス・チューニングのための多彩なツールを開発しており、それらを無償で公開している(下記コラム参照)。 HPが提供する数々のJavaソリューションは、ミッションクリティカル環境でのJava運用が抱えていた「空白部分」を埋める手段としてSIerにとって強力な武器となるはずだ。
提供:日本ヒューレット・パッカード株式会社
企画:アイティメディア 営業局 制作:@IT 編集部 掲載内容有効期限:2005年10月25日 |
|