速報!2008 JavaOne Conference

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

この記事を読むのに必要な時間:およそ 2.5 分

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プロジェクトによって開発が進められています。

著者プロフィール

櫻庭祐一(さくらばゆういち)

横河電機に勤務するかたわらJava in the Boxにて新しい技術を追い続けています。JavaOneは今年で11年目。名実共にJavaOneフリークと化しています。

コメント

コメントの記入