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によるエンタープライズアプリケーションの運用形態は大きく変わるだろう。迅速な横展開が可能になることで、クラウドのパワーを最大限に生かしたアプリケーションの開発や運用が実現できるはずだ。