【レポート】
6月に行われたJavaOneカンファレンスにおいて、Sun MicrosystemsはJavaプラットフォームの次期バージョンであるMustang(Java SE 6: Java Platform, Standard Edition 6)を2006年の夏頃にリリースすると発表した。まだ1年も先のことになるが、Mustangの新機能や変更点などについてはすでにかなりの部分が明らかになってきている。本記事では、現段階で公開されている情報を元にMustangの概要を解説する。
Mustangついては、JSR(Java Specification Requests) 270として仕様の策定が進められている。ただしこれはアンブレラJSRであるため、定められているのはどのAPIを取り込むかということであり、個々のAPIについての具体的な部分はそれぞれのJSRで規定される。
Mustangの掲げる主な目標は以下の点にある。
ここでは具体的にどのようなAPIの導入や機能の拡張が行われる予定なのかを紹介していきたい。
MustangではJavaクラスファイルのフォーマットが若干変更される。新しい仕様についてはJSR 202で策定中であり、この変更にはクラスファイルサイズの上限アップやクラスリテラルの追加などが含まれる。また、Java MEのようにクラスのベリフィケーションが分離できるようになる。
コアライブラリについてはJ2SE 1.5のときのような大きな変更は行われない予定である。細かなクラスの追加やバグの修正などのアップデートは行われるが、パッケージレベルの追加や削除などはないということである。
Mustangには、EoD( Easy of Development )を実現するためにツールの作成などをサポートする数々のAPIが追加される予定である。その代表的なものがJavaアプリケーションからJavaプログラムをコンパイルするための機能を提供するJava Compiler API(JSR 199)や、アノテーションプロセッサ作成する機能を含むPluggable Annotation Processing API(JSR 269)である。
またjavadocについても仕様が変更され、いくつかの新しいカテゴリが導入される。これはAPIの規模がjavadocが作成された当初に想定していたよりも巨大になっている現状を踏まえての修正であり、JSR 260として策定が進められている。
さらにMustangではスクリプト言語のサポートも強化される。具体的には、Mozilla RhinoベースのJavaScriptエンジンを実装することによってJavaプログラムJavaScriptを埋め込むことができるようになる(JSR 223)。
MustangではXML技術をベースとしたWebサービス機能の大幅な強化を目指している。その核となるのがJAXB(Java Architecture for XML Binding) 2.0およびJAX-WS(Java API for XML-Based RPC) 2.0のサポートである。
JAXB 2.0はJSR 222で仕様が策定されているXMLデータとJavaオブジェジェクトをマップするためのバインディング技術で、JAXB 1.0(JSR 31)の後継バージョンにあたる。JAXB 2.0ではJavaからXML Schemaへのバイディングをサポートしているため、JavaとXMLとのラウンドトリップが可能になるなどの利点がある。JAX-WS 2.0はJAX-RPC 1.0(JSR 101)の後継にあたるXMLベースでRPCを中心としたWebサービスをサポートするAPIで、JSR 224として標準化されている。JAXB 2.0ベースのデータバインディングやSOAP 1.2、WSDL 2.0、WS-I Basic Profile 1.1のサポート、WebServiceメタデータ(JSR 181)のサポートなどがその主な特徴といえる。
またこれらのAPIに関連して、XML電子署名サービスのためのAPI(JSR 105: XML Digital Signature APIs)やXMLファイルにJavaプログラムからストリーム経由でアクセスするためのAPI(JSR 173: Streaming API for XML)などもサポートすることになる。
その他、データベース技術関連の変更としてJDBC(Java Database Connectivity)の次期バージョンであるJDBC 4.0も導入される予定である。JDBC 4.0ではJDBCドライバの自動認識のサポートや新しいアノテーションやインタフェースの追加、SQL2003仕様のサポートなどが行われるため、より容易にDBMSとの連携が行えるようになる(JSR 221)。
XML/Webサービス関連機能と並んでMustangの目玉とされているのがリソース管理機能の強化であり、その核となるのがJMX(Java Management Extensions)の拡張である。JMX自身はJ2SE 5.0でもサポートされており、MustangではマイナーバージョンアップされたJMX 1.3が採用される。JMX 1.3では主に次の機能が新たに追加される予定である。
なお、JMXの次期バージョンであるJMX 2.0(JSR 255)はDolphin(Java SE 7)で導入される予定になっている。
デスクトップ環境の強化についても特筆すべき点が多い。最も注目されているのが次期MS WindowsであるWindows Vista(開発コードLonghorn)のサポートである。例えばVistaのネイティブ・ルックアンドフィールであるAvalonの利用や、.NET CLR(Common Language Runtime)との共存が可能になるという。
JFC/Swing(Java Foundation Classes/Swing)に対する拡張として代表的なものは、ルックアンドフィールのアップグレードであり、先述のAvalonの他、GTKなどもサポートされるようになる。これらのルックアンドフィール使用時には、コンポーネントのレンダリングにネイティブのAPIを使用することになる。例えばAvalonの描画はWindowsのレンダリングエンジンを、GTKの場合にはGTKの提供するレンダリングエンジンを使用する。
レイアウトに関しては、レイアウトマネージャ使用時にコンポーネントのベースラインおよびコンポーネント間の距離を適切に取得できるように拡張される。これによってより適切なレイアウトを構成できるようになる。その他、よりダブルバッファリングの実装の改良や、ドラッグ・アンド・ドロップをより簡単に利用できるようにするなどの変更も加えられる。また、これらの変更を反映させたサンプルプログラムも新たに追加される。
Java2D APIについては、まずレンダリングの高速化のためにOpenGLやDirectXのパイプライン処理を見直しが行われる。またWindowsのネイティブコードに関しては、より効果的にDirect3Dを利用することでパフォーマンスが向上されるように修正される。
国際化関連のAPIについても変更が行われる。まず、新たにいくつかのロケールが追加される。日本語関連ではja_JP_JPという和暦のためのロケールが追加され、それに伴ってCalendarクラスが和暦をサポートするようになる。また、今後はロケールデータとしてCLDR(Common Locale Data Repository)が使用されるということである。その他、ロケール依存のクラスが拡張できるようにLocale Sensitive Services SPIが追加される。
Mustangからは新しいアノテーションとして@SuppressWarningアノテーションが追加される。これはWarningを抑制する機能を持つ。
付属のツールについては、J2SE 5.0に付属しているJConsoleやJStackがより使い易く改良されるということである。またJVM Tool Interfaceについても機能が拡張される。その他、SolarisのDynamic Tracing(DTrace)をサポートし、DTraceからJVMの情報にシームレスにアクセスできるようになる。
インストーラの改善やJava Plug-inおよびJava Web Startソフトウェア関連の機能に対する拡張なども含まれている。特にJava Plug-in/Java Web Startではセキュリティ機能の強化やMozilla Firefoxブラウザのサポートなどが行われる。これによってよりJavaの実行環境の導入をより簡易に行うことができる。
MustangではJ2SE 5.0のときのような大規模な仕様の変更は行われないが、非常に多くのAPIが追加されることになる。標準APIが豊富だという点は古くからJavaの特徴の一つとして数えられてきたが、Mustangではそれがさらに充実していくことになるだろう。利用できるAPIが増えればアプリケーション開発にかかるコストは削減でき、実装方法にも幅が出る。一方でAPIの巨大化により全貌を把握するのが困難になるという問題もあるため、早い段階でMustangの新機能を予習してリリースに備えておきたい。
Mustangの仕様は依然として策定中の段階であり、今後も多くの変更が加えられる可能性がある。Mustangの開発に関する最新情報はプロジェクトサイトから入手することができる。ここでは具体的な作業状況や最新のスナップショットも公開されている。今からリリースが待ち遠しいというユーザは、一足早く新機能を試してみるといいだろう。
| JavaOneに見るJava EE 5 - Persistence APIがEJBから独立 [2005/6/29] |
| 6月24日~6月30日のアクセスランキング - iTunesがケータイに対応?~JavaOneに見るEoD [2005/7/1] |
| EJB 3.0をいち早く学ぼう - Webアプリの新技術を教えるJBoss TrailBlazer [2005/6/29] |
| BEA Systems、WebLogic Server 9.0"Diablo"の販売を開始 [2005/8/9] |
| Apache WS、ウェブサービス関連技術WSRF、WSNおよびMUWSの実装を公開 [2005/8/8] |
| ビュー/ロジック分離型テンプレートエンジン Maya 0.9.8公開 [2005/8/5] |
| EJB 3.0・Oracle Business Rulesが利用可能なOracleAS 10g Release 2 DP4 [2005/8/2] |
| "SOAに必要なものを全て集めた"Oracle Fusion Middleware BPELへの対応進む [2005/7/26] |
| Perlの文法を持ったJavaベースのスクリプト言語 - Sleep 2.0公開 [2005/7/21] |
| Linuxの次はJ2EEサーバ? - 増加するJBossへのベンダサポート、日本HPからも [2005/7/14] |
| Seasar4 EA1公開 - backport175によるアノテーションをサポート [2005/7/13] |
| 【コラム】ライトニングJava |
| 千葉工大 東京スカイツリータウンキャンパスがオープン! - 新型ロボも登場 [19:00 5/23] |
| 産総研、変性タンパク質の活性を回復させる有機ナノチューブゲルを開発 [18:30 5/23] |
| NIMS、空気中の物質を感知して発光するフィルムを開発 [18:29 5/23] |
| 日本NI、最大6.6GHzでRF信号ルーティングが可能なスイッチモジュールを発表 [18:26 5/23] |
| TI、SPICEモデル付きのSAR ADCを発表 [18:24 5/23] |
|
白か黒か? 『劇場版ポケットモンスター ベストウイッシュ』、7月12日放送 [00:47 5/24] ホビー |
|
TVアニメ『Fate/Zero』、第21話「双輪の騎士」の先行場面カットを紹介 [00:16 5/24] ホビー |
|
アニメ「夏目友人帳」展覧会の開催決定、主題歌集発売で [00:00 5/24] ホビー |
|
[ポケットモンスター]人気投票で放送作品を決定 異例の試み [00:00 5/24] ホビー |
|
【コラム】Windowsスマートチューニング 第188回 Vista/7編: タスクスケジューラでリマインダー通知を行う [23:07 5/23] パソコン |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。