写真1●日本オラクルでシニアJavaエバンジェリストを務める寺田佳央氏
写真1●日本オラクルでシニアJavaエバンジェリストを務める寺田佳央氏
[画像のクリックで拡大表示]
写真2●JavaアプリケーションのソースコードからDBMSへの接続などを直接指定できる
写真2●JavaアプリケーションのソースコードからDBMSへの接続などを直接指定できる
[画像のクリックで拡大表示]

 「Java EE 7では、クラウド環境に適した機能を追加する」---。日本オラクルは2012年6月29日、都内で発表会を開き、企業向けJava技術の動向を説明した。Java EE 7では、マルチテナンシー化を図るほか、データベースなどの外部リソースとの接続設定や、Javaインスタンスへの処理能力の割り当てなどを簡素化/自動化する。

 発表会では、次世代の企業向けJava規格であるJava EE 7の新機能を紹介。Java EE 7では、現在の最新規格であるJava EE 6をベースに、クラウド環境(仮想サーバー資源が動的に変動する環境)に合わせた機能を追加する。発表会ではまた、ベースとなるJava EE 6の開発生産性の高さについても、あらためて説明した(関連記事)。「外部フレームワークからJava EEへの回帰が始まっている」(日本オラクルでシニアJavaエバンジェリストを務める寺田佳央氏、写真1)とした。

プロビジョニング/伸縮性/マルチテナンシーが三大機能

 Java EE 7で追加されるクラウド向けの新機能は、大きく三つある。(1)プロビジョニング、(2)Elasticity(伸縮性)、(3)マルチテナンシー---である。

 (1)プロビジョニングの機能拡張によって、Javaアプリケーションのプロビジョニング(配備)だけで、データベース管理システム(DBMS)やメッセージキューニングソフトといった外部接続リソースの準備と設定が完了する。具体的には、Javaアプリケーションのソースコード(アノテーションを利用、写真2)や設定ファイル(XML)を使って、アプリケーション開発者がDBMSへの接続などを直接指定できる。これまでは、システム運用管理者などが、あらかじめJavaアプリケーションサーバー上で外部リソースを準備しておく必要があった。

 (2)Elasticity(伸縮性)の機能拡張によって、複数のJavaインスタンスで構成するJavaアプリケーションクラスター環境において、CPU負荷などに応じてJavaアプリケーションのインスタンス数を動的に増減できるようになる。これまでは、システム性能監視データに応じて、システム管理者が手動で増減させたり、外部の運用管理ソフトで制御したりする必要があった。

 (3)マルチテナンシーの機能拡張によって、Javaアプリケーションのインスタンスを各テナント(個々の部署や会社など)ごとに個別に用意したり、単一のインスタンスを各テナントで共有したりと、複数の形態で運用できるようになる。単一のインスタンスを複数のテナントで共有する場合でも、アプリケーションからテナントを識別できるようにする。

Java EE 6は、主要フレームワークを包含し、コード行数が半減

 発表会では、Java EE 7のベースとなっている現行のJava EE 6についても、開発生産性の高さを改めて説明した。各種の開発フレームワークが提供している機能の多くを標準規格へと取り込んだことによって、Javaクラス数を25%、コード行数を50%、XML行数を80%削減できたとしている。

 日本オラクルが開発フレームワークの利用状況について調査した結果では、日本ではMVCフレームワークのApache Strutsが人気で、Java開発者の33%が使っているという(Java EEは24%、Spring Frameworkは23%)。ところが世界では、Strutsを使っているユーザーは、「Eclipse Community Survey 2012」によると、Struts 1.xで1.3%、2.xで1.3%と低い。「外部フレームワークからJava EEへの回帰がトレンドになっている」という。