JavaはクラウドやHTML5、
iOS/Androidも取り込む?


JavaOne 2011まとめレポート

Twitter Inc.
山本裕介
2011/10/14


 Java EE − 6の普及とマルチクラウドへの歩み


Java EE 6はいよいよ普及のステージへ

 Java EEの最新バージョンであるJava EE 6は2009年12月にリリースされました。GlassFishがいち早く対応したものの、他に仕様に準拠したアプリケーションサーバがなかなか出揃わず、現在のところJ2EE 1.4やJava EE 5ベースのプロジェクトが多いようです。

 しかし、いまやJava EE 6認証済みのアプリケーションサーバは4種類、Webプロファイルのみ対応のものも含めるとは7種類にまで増え(参考:Java EE Compatibility)、Java EE 6はいよいよ普及期に入ったことがアピールされました。

Java EE 6の最新状況

クラウド標準を目指す Java EE 7

 現在JCPではJava EE 7の策定に入っているわけですが、まだどういう機能セットを取り込むのかは確定しておらずアイデアを出し合っている段階のようです。

 1つ明らかなのはJava EEをクラウドの標準APIセットへと進化させるための大胆な取り組みが行われていることです。現在クラウドのプラットフォームとしてGoogle App EngineやAmazon EC2、Herokuなどが有名ですが、それぞれ目指す方向性、実現のためのアプローチが異なります。当然APIも互換性がなくアプリケーションはプラットフォームにロックインしてしまうのが現状です。

 Java EE 7では、これらの垣根を取り払い、クラウドプラットフォームでも「Write once, run anywhere」を目指しています。

 セッションでは、現在進行中の具体的な取り組みとしてGlassFish 4.0のベータ版を使ったデモが行われました。まず、Webコンソールでローカルのwarアプリケーションをアップロード、最小/最大インスタンス数を指定してデプロイします。すると、自動的に仮想環境を起動してアプリケーションがデプロイ/起動されます。さらに、負荷に応じて仮想環境が起動し、ソフトウェアベースのロードバランサがリクエストを振り分けて自動的にスケールするという興味深い内容でした。

Java EE 7で含めることを予定しているJSR

JavaFX − 次世代のRIAプラットフォームとなれるか?

 発表当初はAdobe AIRSilverlight などに並ぶRIAプラットフォームとして開発されていたJavaFXですが、JavaFX 2.0からはSwingを置き換えるAPIとしての性質が強くなりました。

 Swingは、すでに広く使われていますが、API設計はやや一貫性に欠けており開発者にとっては少しハードルが高いのも事実です。JavaFX 2.0では、Swingの反省を生かして各API担当チーム間の連携を重視し、時間をかけて開発することで高い生産性とよりインタラクティブでスムースなGUIアプリケーション開発を実現するとのことでした。

JavaFX 2.0の主要機能

 しばらくベータ版として公開されていたJava FX 2.0はWindows版の正式版、そしてMac OS X版のDeveloper Previewが併せてリリースされました。なお、予定ではMac OS Xの正式版が2012年前半にリリースされ、Java SE 8では各プラットフォームに標準でJavaFXが含まれる予定とのことです。

JavaFXのロードマップ

 他にも会場では、いま話題のKinectとの連携のデモも披露されました。


Java ME − JavaFXと融合しAndroid/iOSに対応!?

 iPhoneAndroidの爆発的な普及から盛り上がっているモバイルアプリケーション市場の中、いまひとつ元気がないのが、Java MEです。

 フィーチャーフォンJava CardBlu-rayプレイヤーなどあまり目立たない形で広く普及はしているのですが、開発者にとって魅力のあるプラットフォームとはいえないのが正直なところではないでしょうか。

 Java MEでは現在、非接触通信ジャイロセンサの読み取りなど現在普及しているスマートフォンで実装している多くの機能をJava MEのAPIでも実現できるようにする取り組みを行っています。

 また、これまでJava SEとは異なるライフサイクルで開発されていたのを歩調を合わせる形にし、Java SE 8と同時に新しいメジャーバージョンをリリースすることが予告されました。

 さらにJava MEはJavaFXと親和性を高め、JavaFXアプリケーションがあらゆるJava ME対応デバイスでも動作することを目指しているようです。非常に関心を呼んだのはJavaFXで書かれたゲームがWindowsタブレット、Androidタブレット、さらにはiPadで動作してしまうというデモです。

デモで手にしているのは…… iPad!?

 Androidは「Dalvik」と呼ばれるJavaと非常に似た仮想マシンを搭載しているためJavaFXを移植するのはそれほど難しいことではないかもしれません。しかし、Objective-Cで開発を行うことを前提としているiOSプラットフォームでJava/JavaFXアプリケーションが動くようになれば開発者コミュニティにおけるインパクトは非常に大きなものとなります。

 ただし、Android/iOSデバイス上のJavaFXはあくまで技術デモに過ぎず、これらのプラットフォーム向けのJavaFX、JVMのリリースに関して具体的なロードマップは示されていません。これは、技術上はすでにある程度実現していても、実際にマーケットに登場させるために乗り越えなければならない政治的な壁が多くあるからと想像できます。

 例えば、Androidについてはオラクルとグーグルの間で特許上の訴訟問題があり、またアップルはiOSでObjective-C以外のプログラミング言語をあまり歓迎しない姿勢です。JavaFX、Java MEという技術の融合でデスクトップ、モバイルアプリケーションでも「Write once, run anywhere」が達成できれば開発者コミュニティに広く歓迎されるのは間違いありませんが、早急な実現は期待しない方がよさそうです。

Java MEのロードマップ

 Mac OS X for OpenJDKのBoFセッションでは、「ランタイムを全部アプリに含めていればiOSの規約はクリアできるんじゃないか」という話があったようです。Adobe AIRが最新版の3で実現している「Captive Runtime」機能のようなものなら可能性はあるのかもしれません。

1-2-3

Index
JavaOne 2011まとめレポート
JavaはクラウドやHTML5、iOS/Androidも取り込む?
  Page1
JavaOne 2011まとめレポート
Java SE − 7リリース、8は2013年、9はどうなる
Page2
Java EE − 6の普及とマルチクラウドへの歩み
JavaFX − 次世代のRIAプラットフォームとなれるか?
Java ME − JavaFXと融合しAndroid/iOSに対応!?
  Page3
Project Avatar − HTML5サポートによる全方位戦略
コミュニティ − TwitterがOpenJDK/JCPに参加!
JavaOne Tokyo 2012はどうなる?

ご意見、ご感想はJava Solution 会議室へどうぞ

Java Solution全記事一覧


Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間