オラクル買収後のJava 7と8、
JavaFXはどうなるのか
JJUG Cross Community Conference 2011 Spring レポート
有限会社オングス
杉山貴章
2011/5/30
HotSpotとJRockitの統合による「HotRockit」
「Javaの今後」という観点では、JJUG CCCに先立つ5月20日に興味深いニュースがあった。オラクルが同社独自のJVMである「JRockit」および、これをベースとした「Oracle JRockit JDK」を無償公開したという発表である。このニュースがいったい何を意味するのか、日本オラクル Fusion Middleware事業統括本部の杉達也氏が解説した。
日本オラクル Fusion Middleware事業統括本部の杉達也氏 |
JRockitは、もともとBEA Systemsが開発したJVMであり、オラクルが同社を買収したことによって、オラクルのプロダクトとなった。一方でJavaの開発元であったサン・マイクロシステムズによるJVMは「HotSpot」であり、これも買収によりオラクルの所有となった。オラクルでは、この2つのJVMを統合を「HotRockit」として進めており、その一環として行われたのがJRockitの無償公開とのことである。
杉氏によれば、オラクルによる製品統合は次の基本工程に従って進められるのが、これまでのパターンだという。
- 企業としての統合
- ブランド、ロゴ表記の統一
- 機能の技術的な制限の仕組みの排除
- パッケージング統合、サポート体系の統合
- ロードマップの発表
- 製品機能の実質的な統合
JDKの場合、1と2はすでに完了しており、3についてはもともと制限がないので問題にならない。これから行われるのは4〜6の工程であり、これは一度に行われるわけではなく、JDKのリリースと合わせて順次実施されていることになる。
そして最終的にはJRockitの機能を統合したOracle JDKが誕生する。一方で、OpenJDKとの関係や、既存バージョンの保守期間は従来と変わることはなく、アップデート・リリースの提供も継続して行われるという。
図4 将来的にはJRockitを統合したJDKが登場する |
では、具体的にJRockitのどの機能が統合されるのだろうか。統合する機能の選別についても、過去のパターンと同様に、利用状況や市場の評価、内部評価に基づいて行われることになると杉氏は指摘する。JRockitの場合、主なメリットとしては次の点が挙げられるという。
- パフォーマンス(JIT最適化)
- Deterministic GC(停止時間が規定値を越えないようにGCを実行する)
- Fligt Reorder(動作中のJVMの情報を低オーバーヘッドで蓄積する)
- 実行中JVMへの診断コマンドの送信(JRCMD)
- 監視・分析・プロファイラ(Mission Control)
- メモリリーク検知ツール(Memleak Server)
これらの機能は、Java SE 7 GA(2011年7月7日にリリース予定)からJava SE 8 GA(2012年後半にリリース予定)にかけて、の順序で統合が進められていく予定とのことだ。ただし、黄色いマークが付けられている機能については有償ライセンスでのみ使用可能になるものだという。
図5 JRockitの統合は段階を追って順次行われる(画像をクリックすると、拡大します) |
その他、Java SEのパッケージ構成も、これまでとは少し変更され、具体的には長期サポートが加えられた「Java SE Support」や、有償ラインセンス版である「Java SE Advanced」「Java SE Suite」といったパッケージが登場する予定とのことである。
図6 Java SEのパッケージングも更新され、新しいパッケージが登場する |
方針の転換によって新しくなったJavaFX
Java SE本体ではないが、デスクトップ関連のJava技術としてもう1つ興味深い動きがある。「JavaFX」だ。櫻庭祐一氏によれば、発表以来、現行版のバージョン1.3まではRIA開発のためのプラットフォームを目指してきたJavaFXだが、この間もなく登場予定のJavaFX 2.0では大幅な方針の転換が行われ、「リッチクライアントのためのGUI用ライブラリ」という性格のツールに生まれ変わるという。
Java in the Boxの櫻庭祐一氏 |
この方向転換の影響により、JavaFX 2.0ではJavaFX Script、宣言的文法、プロパティ・バインディング、トリガー、関数型、型推論、簡便な国際化対応など、多くの機能が廃止されることになった。一方で、Java用ライブラリとしての位置付けになったことによるメリットもある。その代表格が、HTMLレンダリングエンジン「WebKit」のサポートである。
現状のSwingによるHTMLレンダリング機能は極めて貧弱であり、最近のHTML仕様に対応した「JWebPane」の登場が待ち望まれてきた。JavaFX 2.0にはWebKitベースの組み込みブラウザ「WebView」が搭載される。これがSwingプログラミングでも利用できるようになるというわけだ。Swingプログラマにとっては特にうれしいニュースである。
その他、JRubyやGroovyなどといったJVMベースのスクリプト言語から、JavaFXの機能を利用できるようになること、グラフィックエンジンの性能が大幅に向上することなどを、JavaFX 2.0のメリットとして櫻庭氏は挙げている。特にGroovyは、廃止されたJavaFX Scriptのような書き方でプログラムが記述できるという期待がある。
JavaFX 2.0の正式リリースは2011年第3四半期に計画されており、それに先立ってベータ版が5月26日に公開された。
Java EE 7、そしてJava SE 8へ
エンタープライズ分野のJavaについては、2009年に現行バージョンのJava EE 6がリリースされて以来、約1年と半年が経過した。Java EE 6のテーマはフレキシビリティおよび仕様の軽量化、拡張性の向上、そして開発のしやすさの向上だった。ではJava EE 6のその先、すなわちJava EE 7へ向けた動きはどのようになっているのだろうか。
オラクルでFusion Middleware部門のVice PresidentおよびJavaエバンジェリストのリードを務めるAjay Patel氏 |
オラクルでFusion Middleware部門のVice PresidentおよびJavaエバンジェリストのリードを務めるAjay Patel氏がセッションの中で語ったところによると、これから目指すのは「クラウドへの移行」だという。すなわちクラウド上で稼働する対するアプリケーションの開発、配備そして管理をサポートしていく役割が求められるということである。また、マルチテナント環境への対応なども必要となる。
これを踏まえて、クラウドと主体としたJava EE 7のテーマとして以下の項目が挙げられた。
- 管理された環境としてのJava EE
- アプリケーション・パッケージングの改善
- アプリケーションの分離とバージョニング
- アプリケーションのインプレイス・アップグレード
Java EE 7の仕様については、JSR 342としてJCPによる策定が進められている。
なお、オラクルの関わるJava EEの実装としては、オープンソースで開発が進められている「GlassFish」と、正規プロダクトである「Oracle WebLogic Server」がある。Patel氏によれば、同社では両者のフォーカスエリアを明確に分けて考え、新しく革新性を持った機能の実装はGlassFishが担当し、WebLogicではGlassFishをベースに付加価値を上乗せした製品レベルのイノベーションを担う存在に位置付けているとのことである。
Patel氏のセッションでは、Java SE 8に提案されている主要な新機能についても触れられた。それは次のようなものである。
- ラムダ式の追加(クロージャ)
- マルチコア対応、開発生産性の向上
- ライブラリとユーザーコードの並列化を実現
- 小さな言語仕様の追加(プロジェクトCoin)
- 開発生産性の向上
- Javaコードの可読性の向上と簡潔な記載を実現
- Java EEなどのアノテーションの拡張
- その他、Java SE 7に含まれなかった機能
- モジュール化
- Java SE開発にフォーカス
- Java EEコンテナの機能に必要な変更
- 粗粒度のJava APIモジュール化
- JVMの改良
- 起動時間のエルゴノミクスの改良
オラクルのサン・マイクロシステムズ買収によって、Javaを取り巻く環境には大きな影響が出た。それがどのような方向に向かうのか不安視する声も聞かれる。しかし、現在も「次の世代のJava」に向けて確実に開発が進められているのは確かだ。その中には、Java SE 7のようにすでに試せるものもある。Javaの技術者ならば、入手して新機能を実感してみてはいかがだろうか。
ちなみに、会場からの「JavaOneは日本でも開催されるか?」との質問に対して、Patel氏は「OpenWorldと併催できないか検討している」と答えている。2005年以来となる日本でのJavaOne開催にも期待したいところである。
■ 関連リンク
あなたの知らないJDKの便利ツールたち 安藤幸央のランダウン(43) 最近のJDKに含まれている開発やデバッグに便利なツールを、プロファイリングや情報取得、監視、配備、スクリプティングの5種類に分けて紹介 「Java Solution」フォーラム 2008/11/13 |
開発者が知っておくべきJavaと仮想マシンの歴史 安藤幸央のランダウン(42) JavaとVMが生まれた背景や名前の由来、さまざまなJDK、マイクロソフトやAndroid、iPhoneとの関係、Java VMで動くスクリプト言語など 「Java Solution」フォーラム 2008/9/4 |
「Javaは遅い」から「Javaは楽しい」に至る歴史 小山博史のJavaを楽しむ(12) 最新のJava実行環境は起動が速いドラッガブルアプレットなど楽しい機能が満載です。ここまで至るには、いろいろな出来事がありました…… 「Java
Solution」フォーラム 2008/12/15 |
J2SE
5.0「Tiger」で何が変わるか? J2EE Watch (6) Javaの登場以来もっとも大胆な言語仕様の変更が行われたJ2SE5.0。その仕様の変更点とメリットについて整理してみよう 「Java
Solution」フォーラム 2004/10/16 |
Tomcat 7の新機能で何ができるようになるのか? JSP/サーブレットコンテナ「Tomcat」の最新安定版について、サポートするServlet 3.0の仕様やTomcat独自の新機能を紹介します 「Java
Solution」フォーラム |
【改訂版】Eclipseではじめるプログラミング これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipse 3.4とJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります 「Java
Solution」フォーラム |
1-2 |
Index | |
JJUG Cross Community Conference 2011 Spring レポート オラクル買収後のJava 7と8、JavaFXはどうなるのか |
|
Page1 コンシューマ化するIT技術とJavaへの影響 Java SE 7による新しいJavaの世界 |
|
Page2 HotSpotとJRockitの統合による「HotRockit」 方針の転換によって新しくなったJavaFX Java EE 7、そしてJava SE 8へ |
ご意見、ご感想は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に関する基礎知識を解説する。
|
|