1 Java EEがエンタープライズJavaプラットフォームの最適解
そもそも、エンタープライズシステムにおいてJavaを選択するメリットとは何だろうか。寺田氏は、エンタープライズ分野におけるJavaの魅力として「Java VMの強力さ」と「スケーラビリティの高さ」という2つのポイントを挙げている。
さまざまなハードウェアやOSが混在する環境でもJavaがシームレスな動作を実現できるのは、Java VMがその差異を吸収してくれるからだ。この汎用性や可搬性の高さは、システムの規模が大きくなるほど重要になってくる。また、スケーラビリティについては、世界中のあらゆる規模のシステムで導入されている実績がその実力を証明している。それに加えて、充実した運用管理ツールや、Javaの言語としての堅牢性、多言語環境を実現できるJava VMの柔軟性なども、プラットフォーム基盤としてJavaを選択するメリットだということができる。
では、多数のフレームワークの中から特にJava EEを選択する必然性はどこにあるのか。寺田氏は、Java EEが標準技術であることの強みを強調する。
「標準技術というのは、多くのベンダーや関連企業、開発者などが協力して策定しています。そのため、特定の会社がなくなったりサポートをやめたりしても、技術自体はその後も残されます。フレームワークやツールの成長が特定の企業や開発者の意向によって止まるようなこともありません。長期間にわたる運用が想定されるエンタープライズシステムでこの点が極めて重要視されるのは言うまでもありません」(寺田氏)
もちろん、単に仕様が標準化されているというだけでなく、エンタープライズ分野での運用に耐えるだけの十分な実力を備えていることも不可欠だ。その点Java EEは、他のフレームワークの優れた部分を吸収しながら進化してきた。現行のJava EE 6はその完成形であり、エンタープライズシステムで本当に必要とされる要素を備えたプラットフォームだと寺田氏は語っている。
2 クラウドに乗り出すJava EE 7
そのJava EEだが、次期バージョンとなるJava EE 7ではクラウドへの対応がメイントピックとして挙げられている。「クラウド対応」とはどういうことだろうか。寺田氏はJava E 7を理解するためのキーワードとして特に次の3つを挙げている。
- プロビショニング
- Elasticity(伸縮性)
- マルチテナンシー
従来のエンタープライズJavaアプリケーションでは、アプリケーションの配備とは別に、サーバ管理者が事前にサーバリソースの準備や設定を行う必要があった。それに対してJava EE 7では、アプリケーション内にアノテーションやXMLを利用してプロビジョニングの設定を記述することにより、運用管理者の手を煩わせることなく、開発者や配備者が直接リソースのプロビジョニングを行うことができる。これは他のフレームワークにはない、Java EE 7で初めて実現される機能だという。
Elasticityに関しては、従来でもマルチノードやマルチインスタンスによるクラスタ化は可能だったが、そのための設定や構成の変更は運用管理者が手動で行わなければならなかった。Java EE 7ではリソース状況に応じたノード/インスタンス自動的な調整がサポートされる。これによって、サーバ1台の構成からIaaSにいたるまで、あらゆる規模のサーバインフラでアプリケーションを最適に展開できるようになる。
マルチテナンシーとは、1つのアプリケーションを、複数のテナント用に分離して利用する構成である。Java EE 7ではテナントごとにインスタンスを用意し、それぞれに対して個別の設定を適用できる。各テナント用のインスタンスが他のテナントに影響を及ぼすことはない。さらにアプリケーションだけでなくデータベースについても、テナントごと個別にDBを用意する構成と、複数テナントで1つのDBを共有する構成の両方が選択できる。従って、開発のニーズに応じた最適なリソース配分を行うことが可能となる。
上記のような機能がサポートされれば、Javaによるエンタープライズアプリケーションの運用形態は大きく変わるだろう。迅速な横展開が可能になることで、クラウドのパワーを最大限に生かしたアプリケーションの開発や運用が実現できるはずだ。
3 その前に、まずJava EE 6への移行を
しかしながら、ここで忘れてはいけない重要なポイントがあると寺田氏は続ける。それは、これらのクラウド対応機能は現在のJava EE 6をベースとして構築されるという点である。Java EE 6には、大規模エンタープライズアプリケーションを展開するための基盤技術がすべて整っている。Java EE 7は、その上にクラウド対応に必要な技術やAPIを取り込む形で設計される。
従って、将来的にJava EE 7を使いこなすためには、まずJava EE 6の技術を確実に押さえておかなければならない。ところが日本市場では、図3.2に示すように、StrutsやSpringなどといったサードパーティ製のフレームワークが依然として高いシェアを維持している。
Javaの歴史を振り返れば、サードパーティによるフレームワークがJava EEで提供されるものよりも先行してトレンドを形成していた時期は確かにあった。しかし現在では、このような状況はすでに市場のニーズから大きくかけ離れてると寺田氏は言う。
「世界的に見れば、エンタープライズJavaアプリケーションのトレンドは完全にJava EE 6に移行しています。日本で人気のStrutsも、世界的なシェアはバージョン1、バージョン2ともに1.3%程度です。確かに、従来はエンタープライズJavaと言えばStruts+Spring+Hibernateという構成が主流でした。しかし現在は、StrutsやSpringを組み合わせて独自に作った環境はすべてJava EE 6で置き換えることができます。JSFやEJB、JPAなどのJava EE標準の技術だけで完結できるわけです」
Java EEで完結させられるということは、フレームワーク同士の依存関係やコンフリクションの問題に頭を悩ませる必要がないことに加えて、Java EEの動向さえ追っていれば、脆弱性や新技術への対応が十分に行えるというメリットがある。従来のような独自フレームワークを組み合わせた構成の場合、開発者や運用管理者はそれぞれの動向を個別に追いかけておく必要があった。Java EEを使えばそのような負担から開放される。その上、ベンダーロックインのリスクも避けることができる。
「歴史的な経緯からJava EEに対してネガティブなイメージを持たれている方も多いかもしれません。しかしJava EEは進化しています。古いイメージは捨てて、今のJava EEを見てください。エンタープライズシステムやWebアプリケーションの開発に必要なすべての機能を備えているのです。そして、次世代のJava EE 7を使いこなすためにも、できるだけ早くJava EE 6への移行を進めて欲しいと思います」(寺田氏)
4 Java EE 6について基礎から学べる無料セミナーを実施
日本オラクルとしても、Java EE 6利用を促進するための教育やコンサルティングなどに力を入れていく予定だという。そしてその一環として、8月23日に開発者向けのJava EEセミナーを開催する。このセミナーには、スピーカーとしてJava EEおよびGlassFishのエバンジェリストであるArun Gupta氏と、Java ChampionであるBert Ertman氏が来日し、Java EE 6を扱うためのノウハウや今後の展望、既存フレームワークからJava EE 6へのマイグレーションなどについて講演する予定だという。
「オラクルはJavaを使う皆様にもっと楽になってもらいたいと願っています。そのためにもいま一度Java EEを見直して、足場を固めて欲しいと思います。8月のセミナーはその足掛かりになるはずです」(寺田氏)