速報!2008 JavaOne Conference

フォローアップ 2008 JavaOne Conference:Technical General Session―Javaの技術進化を占う

Technical General Sessionは技術にフォーカスしたGeneral Sessionであり、今後のJava EE/SEの動向を知るにはうってつけのセッションです。

写真1 Robert Brewin氏
写真1 Robert Brewin氏

Technical General Sessionの司会はRobert Brewin氏写真1⁠。Brewin氏がトピックに応じてスピーカーを壇上に上げるというスタイルでセッションは進行しました。

Java EE 6とGlassFish v3

Java EE 6

Java EEは、Java EE 6 (JSR 316)のスペックリードであるRoberto Chinnici氏写真2が登壇しました。

写真2 Roberto Chinnici氏
写真2 Roberto Chinnici氏

セッションの中心になったのが、Java EE 6とGlassFish v3です。

Java EE 6のテーマとなっているのが、Rightsizingです。Rightsizingは目的により適切なサイズにしていくということです。そして、Rightsizingを実現するためにプロファイルが導入されます。

Java EEは、ServletやEJBなど多くのAPIから構成されます。しかし、用途によっては必要としないAPIがあることも確かです。そこで、プロファイルを導入し、用途に応じて必要なAPIを選択していくという方向性を採用したわけです。セッションで紹介されたのはWebアプリケーションのためのWebプロファイルです。

Webプロファイルには以下のAPIが含まれます。

  • JSF
  • Servlet
  • JPA
  • EJB-Lite

プロファイルはJCPで策定され、今後テレコミュニケーション向けのプロファイルなどが策定される予定になっています。その他にも、拡張性の向上や、スクリプト言語などが取り込まれる予定です。

Web層に目を向けると、アノテーションの拡充、web.xmlの編集が不要、Restful Webサービス向けのJAX-RSなどが新たに採用される予定です。また、最後にパッケージング、とくにEARファイルの作成が簡便になるとの説明がありました。

今までは、Web層はServletやJSPファイルなどをまとめたWARファイルと、EJBなどのクラスファイルをまとめたJARファイルをまとめて、EARファイルを作成していました。それに対し、Java EE 6ではClassファイルを直接WARファイルにまとめることができるようになります。

GlassFish v3

GlassFishはJava EEのリファレンスインプリメンテーションという位置づけですが、GlassFish自体の機能拡張も行われます。

GlassFish v3では、複数のコンテナを扱えるようになり、またフットプリントの減少、起動時間の高速化などが図られています。デモでは、わずか数秒でGlassFishが起動することが示されました。また、新しいモジュールを導入する場合も、単にJARファイルをコピーするだけで、設定などが不要になっています。

さらに、JRuby/Ruby on Railsだけでなく、Jython/Djangoや、Groovy/Grails、JavaScriptなどがサポートされます。

Java SE

Java SEのパートは、Danny Coward氏写真3が登壇しました。

Java SE 6とロードマップ

写真3 Danny Coward氏
写真3 Danny Coward氏

まず、Java SE 6に関して簡単にまとめた後、SE関連のリリースロードマップを示しました。既報ともかぶりますが、まとめておきます。

  • 2008年4月 JRE 6u5p ⁠Perfomance JRE)
  • 2008年秋 JRE 6u10 ⁠Consumer JRE)
  • 2008年秋 JavaFX SDK
  • 2009年夏 Java SE 7

JRE 6u5pは、64ビットに特化してパフォーマンスチューニングを施したJREであり、ここで使われた最適化は今後のJREアップデートに適用されます。

Java SE 7

次にJava SE 7に話は移ります。

Java SE 7の主要なテーマは次の3項目です。

  • モジュラリティ
  • 複数言語のサポート
  • リッチクライアントのサポート

モジュラリティに関しては大きな動きがありました。

今まで、開発時のモジュラリティとしてJSR 294 Improved Modularity Support in the Java Programming Language、デプロイメント時のモジュラリティとしてJSR 277 Java Module Systemと独立した仕様として策定されてきました。

ところが、別々に仕様策定するのではなく、共同で行うほうが良いとの判断からJSR 277に統合されたのです。このため、JSR 294で使用されるはずであったsuperpackageはmoduleというキーワードに変更されています。

開発時のモジュラリティはモジュールごとの可視性をコントロールするための機構です。たとえば、Javaのインターフェースは、常にパブリックメソッドしか定義できません。moduleを導入することで、インターフェースであっても可視範囲をコントロールすることができます。

一方のデプロイメント時のモジュラリティは、JARファイルに取って代わるJAM(JAva Module)ファイルが使用されます。JAMファイルはバージョニングや、依存するモジュールなどをメタデータとして記述することができます。

また、OSGiのモジュールもロードすることが可能になるようです。

複数言語のサポートもJava SE 7でさらに進められる予定です。昨年まではスクリプト言語という括りがされていましたが、スクリプト言語に限定せず、さまざまな言語をJVMで動作させられるようにしていくようです。

そのために、次に示す機能が計画されています。

  • ランタイムのアクセレーションのためJVMの拡大
  • ダイナミック インボケーション用の新しいバイトコートの導入
  • Continuation、テールリカージョン、シンボルの制限を撤廃

これらの機能はDa Vinci Machineプロジェクトによって開発が進められています。

最後のテーマがリッチクライアントのサポートです。

リッチクライアントは主にConsumer JREに関するものでした。とくに、Appletが再注目されています。

Consumer JREの機能として、次の3項目が挙げられました。

  • 初期ダウンロードサイズを低減するためのJava Kernel
  • 起動時間を短縮させるJava Quick Starter
  • 新しいJava Pluginアーキテクチャ

また、JavaFXもConsumer JREでサポートされます。

ここで、Coward氏はPluginチームのKen Russell氏を壇上に上げました。Russell氏はJOGL(Java bindings for OpenGL)のプロジェクトリードでもあります。

Russel氏はJavaFXを使用したアプレットのデモを行いました。ストップウォッチのデモでは、滑らかなアニメーションやドロップシャドウなどの表現を示し、Palsと名付けられたデモではGoogle EarthのようなNASAのWorld Windをブラウザ上で動作させました。

また、動画のデモでは、ブラウザだけでなく、アプレットをドラッグすることでブラウザとは別のプロセスとして動作するできることを示しました写真4、5⁠。この状態でブラウザを終了させても、アプレットは動作し続けます。

1日目午前中のGeneral Sessionで行ったFacebook Widgetsのデモも、この新しいPluginを使用したものでした。

写真4 Firefox上でAppletを動作させる
写真4 Firefox上でAppletを動作させる
写真5 ドラッグすると、Firefoxから独立に動作する
写真5 ドラッグすると、Firefoxから独立に動作する

JavaFX

JavaFXのパートはデモが中心でした。

まず、On2 TechnologyがJavaFX用の動画コーデックを提供することを発表しました。

次にJavaPolisカンファレンスをホストしているParleys.comのStephan Janssen氏が、Flexで構築されたJavaPolisサイトをJavaFXで再構築したサイトをデモしました。このデモサイトはセッションやスピーカの情報の閲覧だけでなく、セッションの動画や資料の公開もJavaFXで行っています。

ここで気になるのは、JavaFXの開発環境です。JavaFX自体はNetBeansを用いて開発できますが、デザイナーとの連携は不十分でした。

そこで、発表されたのがPhotoshopとの連携を行なうJavaFX Transformerです。

JavaFX Transformerを使用すると、Photoshopで作成したグラフィックスをレイヤ構造を保持したままで、JavaFXのソースとイメージにコンバートすることができます写真6⁠。

写真6 JavaFX Transformerによる変換。左がPhotoshop、右がNetBeans
写真6 JavaFX Transformerによる変換。左がPhotoshop、右がNetBeans

最後に、JavaFXを使用した3Dのゲーム写真7が紹介され、RIAだけでなくカジュアルゲームでもJavaFXの有効性を示しました。

写真7 左側よりChris Oliver氏、Anthony Roger氏、Robert Brewin氏。後ろに投影されているのがMoon Tankゲーム
写真7 左側よりChris Oliver氏、Anthony Roger氏、Robert Brewin氏。後ろに投影されているのがMoon Tankゲーム

昨年とはJavaFXの発表のようなインパクトのある発表はなかったものの、Java EE、Java SEとも次のバージョンに向かって着実に進んでいることが示されました。JavaFXもロードマップが示されましたが、開発環境はまだ十分とはいえません。今後、開発環境を充実させていくことが、重要な課題になるのではないでしょうか。

おすすめ記事

記事・ニュース一覧