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 AIRやSilverlight などに並ぶ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に対応!?
iPhoneやAndroidの爆発的な普及から盛り上がっているモバイルアプリケーション市場の中、いまひとつ元気がないのが、Java MEです。
フィーチャーフォンやJava Card、Blu-rayプレイヤーなどあまり目立たない形で広く普及はしているのですが、開発者にとって魅力のあるプラットフォームとはいえないのが正直なところではないでしょうか。
Java MEでは現在、非接触通信やジャイロセンサの読み取りなど現在普及しているスマートフォンで実装している多くの機能をJava MEのAPIでも実現できるようにする取り組みを行っています。
また、これまでJava SEとは異なるライフサイクルで開発されていたのを歩調を合わせる形にし、Java SE 8と同時に新しいメジャーバージョンをリリースすることが予告されました。
さらにJava MEはJavaFXと親和性を高め、JavaFXアプリケーションがあらゆるJava ME対応デバイスでも動作することを目指しているようです。非常に関心を呼んだのはJavaFXで書かれたゲームがWindowsタブレット、Androidタブレット、さらにはiPadで動作してしまうというデモです。
デモで手にしているのは…… iPad!? |
JavaOne 2011 JavaFX 2.0 Demonstrated on iOS, Samsung Galaxy Tab and Acer Windows Tablets | Javalobby via kwout
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」機能のようなものなら可能性はあるのかもしれません。
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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|