Java EE 7はクラウドのPaaS基盤に進化、来年Q3にリリース予定。JavaOne 2011
Java EEの次のバージョンとなる「Java EE 7」では、クラウド対応が最大の目標となることを、サンフランシスコで先週、10月4日から開催された「JaveOne 2011」の基調講演で、Java EE Specification Lead、Linda DeMichiel氏が明らかにしました。
クラウド上に展開したサービスごとのコンフィグレーションを記述するメタデータの追加やマルチテナントへの対応、クラウドに対応するためのAPIの拡張などが行われると説明されています。
Java EE 7のフォーカスはPaaS
Java EE Specification Lead、Linda DeMichiel氏。
Java EEプラットフォームの最新動向は、Java EEのクラウド対応。
Java EE 7のフォーカスはPaaS。パブリッククラウド、プライベートクラウド、ハイブリッドクラウドの実現手段を提供する。
Java EEの登場からJava EE 6までのフォーカスは、リソースやサービスへのアクセス手段の標準化、そしてマルチベンダに対するアプリケーションのポータビリティの提供だった。
Java EE 7のフォーカスは、Java EEプラットフォーム自身をサービスとすること。これは革新的なものとなる。
ロードマップは次のようになっている。
PaaSに対応した新しいプラットフォームの役割を定義し、メタデータによってプロビジョニングの設定、QoSや伸縮性(Elasticity)などを実現する。
クラウド環境のためのAPIを追加し、既存のAPIにはマルチテナント対応の拡張を行う。
メタデータでコンフィグレーション
Java EE 7のPaaS上で動作するクラウドアプリケーションは、コンテナが提供するサービスを利用する。サービスとは、パーシステンス、キューイング、メール、キャッシングなどが想定される。
サービスのコンフィグレーションなどはメタデータによってカスタマイズされる。このメタデータがあることで、クラウド環境のプロビジョニングを容易にする。
例えば、あるアプリケーションはOracle Databaseをデータソースとして想定し、さらにトランザクションのアイソレーションレベルはどうか、といった設定が行える。
Java EE 7のマルチテナンシーについて。
SaaSの環境としてマルチテナント機能を提供することを計画している。1つのアプリケーションを、テナントごとに分離されたインスタンスで提供する。インスタンスはメタデータによってテナントごとにカスタマイズされる。
テナントIDは、アプリケーションとそのサブシステムで利用可能。例えばJPAは、テーブルが複数のテナントで使われるときに、データとテナントIDを関連させておく必要があるだろう。
クラウドへのデプロイを容易にする
Java EE 7で、アプリケーションをクラウドへデプロイするのがいかに簡単か。デモを見ていただこう。
このJava EEアプリケーションは、JSFをフロントエンド、EJBをミドルティア、JPAをデータベースへのコネクティビティとしている。
そしてアプリケーションにどんなサービスが必要か、環境を設定するメタデータを備えている。ここでは、Java EEサービス、データベースサービス、メッセージングサービスを必要としている。
これをGlassfishでPaaS環境にデプロイしてみよう。
Glassfishの最新のビルドを使っている。
ログインするとまだアプリケーションはない。デプロイをクリックしてアプリケーションのアーカイブを開く。
このアプリケーションはシンプルな「コンファレンスオーガナイザー」で、コンファレンスのトラック、セッション、スピーカーを表示する。JavaOneのデータをサンプルにしている。
メタデータによって必要なサービスの設定が読み込まれた。
ロードバランスサービス。Java EEサービスとそのインスタンスが2個から4個のあいだで負荷に応じてスケールする範囲。そしてデータベースサービス。
データベースサービスに対して、データベースの作成を行うSQLスクリプトファイルを読み込ませる。
そして「デプロイ」ボタンをクリックすると、デプロイメント作業が始まる。
これでデプロイは終了した。初期状態ではロードバランスサービス、2つのJava EEサービス、データベースサービスが起動し、さきほどのSQLスクリプトでデータベースも準備された。
Oracle VMマネージャで仮想マシンの状況を見てみると、4つのサービスに対応した4つの仮想マシンが起動しているのが分かる。負荷が高まれば、Java EEサービスが4インスタンスに増え、そのために新たに仮想マシンが2つ立ち上がり、合計6仮想マシンとなる。
Java EE 7は以下のさまざまな仕様が含まれる予定だ。
その策定過程では透明性を実現し、議論したメールアーカイブも公開、仕様書やドラフトなどもダウンロード可能にする。
Java EE 7は2012年第3四半期をリリースターゲットとしている。