グーグルとVMwareが、クラウドとオンプレミスのJava互換実行環境を実現。SpringとGWTの統合ツールも提供
グーグルがクラウドでのJava実行環境を提供する「Google App Engine for Java」は、これまでデータベースやJavaライブラリなどの制限から、独自のJavaアプリケーションを開発する必要がありました。
グーグルは5月19日(現地時間)、米サンフランシスコで開発者向けのイベント「Google I/O」でVMwareとの協業を発表。Springフレームワークに対応することで、オンプレミスとクラウドで互換性のあるJava実行環境を実現するとともに、データ構造などを設定するとユーザーインターフェイスまで揃った基本的なアプリケーション(スカッフォルド)まで自動的に生成してくれる統合開発ツールの提供を明らかにしました。
これまでのクラウドでのJavaアプリケーション開発を大きく変えるような発表といえそうです。ここでは基調講演から両社の協業部分に絞って紹介します。
(Google I/Oの1日目の基調講演全体については、記事「[速報]Google I/Oで発表された4つのポイント:VP8オープンソース化/Chrome Web Store/VMwareとの協業/Google App Engine for Business」をご覧ください)。
クラウドとオンプレミスでJava互換実行環境へ
Google I/Oの基調講演のステージに、なんとVMware CEOのPaul Maritz氏が登場。
新しいハードウェアとしてクラウドを見たとき、デベロッパーのための新しい抽象化レイヤ、新しいOSとは何だろうか?

過去数年、開発者は生産性向上のためにフレームワークを活用するようになった。昨年VMwareが買収したSpringSourceのSpringフレームワークは、ベストなフレームワークの1つだ。ライトウェイトなオブジェクトモデルを備えており、新しく書かれたJavaアプリケーションの半数以上はこれを使っている。
昨年末からグーグルと、どうしたらJavaデベロッパーのためにこうした機能を提供できるか、議論を深めてきた。そしてグーグルとVMwareが協力していこうという結論となった。 VMwareは、Springフレームワークというバックエンド用のポータブルな技術を持っている。そしてグーグルはフロントエンドを生成する技術「Google Web Toolkit」(GWT)を持っている。完璧な組み合わせだ。

両社の協業によって協業によってSpringフレームワークとGWTを統合した。バックエンドからフロントエンドまでをサポートし、クロスクラウドで、クロスデバイスを実現するオープンソースレイヤでクラウドを覆うことになる。

GWTは、バックエンドの情報を基にHTML/JavaScriptによるクロスブラウザで高速なWebユーザーインターフェイスを生成するJavaライブラリだ。しかし、その基となるデータストアに接続するようなコードはどうするのか? そうした開発は手間がかかるが、VMwareのフレームワークや開発ツールとの統合で解決する。

開発ツール「Spring Roo」とGWTの統合によって、わずか200キーストロークだけで「支出レポート」アプリケーションを作ってみよう。
Rooを起動する。これはキャラクタモード。(データベースに相当する)パーシステンスをセットアップし、エンティティをセット、必要なフィールド、カラムなどをセットする。

これでデータベースを設定できたら、次はGWTをコマンドラインから起動するだけ。それだけで自動的にユーザーインターフェイスを生成してくれる。これでスカッフォルドができあがった。

GUIベースの無料の統合開発環境「SpringSourcce Tool Suite」で、このスカッフォルドのソースコードに追加変更していく。このツールにはRooも統合されている。データ構造に追加を行えば、GWTでまたそれが自動的にユーザーインターフェイスに反映される。

アプリケーションをチューニングする方法も提供している。Webブラウザの動作を1ミリ秒ごとに分析し、ブラウザの内部動作をレポートすることでチューニングできるグーグルの「Speed Tracer」。

SpringSoruceのTc Serverと共に提供され、HTTP PostやJDBCなどのJavaサーバの内部動作がトレースできる「Spring Insight」。

そしてGWT 2.1 Widget Libraryでは、モバイルへの対応も実現する。Javaアプリケーションはそのままスマートフォンにもタブレットにも対応する。

同じアプリがモバイル機器からも利用可能。スマートフォンとタブレットの例。

そして、開発したアプリケーションはロックインされていない。デスクトップで開発したJavaアプリケーションは、そのままGoogle App Engineへボタン1つでデプロイできるし、その逆もできる。


VMwareがJavaの台風の目となってきた
VMwareは、自社のvCloudにSpringフレームワークを乗せるだけでなく、先月にはセールスフォース・ドットコムと協業してVMforceを発表。Springフレームワークをパブリッククラウドに展開する大きな発表でした。
そして今度はグーグルと協業して、SpringフレームワークをGoogle App Engineに乗せることも実現しました。VMwareとSpringSoruceはエンタープライズのクラウド市場とJavaデベロッパーにとって、急速に存在感を拡大させています。