【コラム】

Java API、使ってますか?

5 誰よりも早く"Java SE 7"を睨む

5/60

Java SE 7最新動向

ご存知の通り、最新のJavaプラットフォームであるJava SE 6は2006年12月に正式にリリースされた。Java SE 6の仕様はJCPで定められたプロセスに従って「JSR 270」として策定されたものだ。JSR 270にはJava SE 6における仕様拡張のテーマや既存のAPIにどのような変更を加えるか、そして新たにどのようなAPIを追加するかといった内容が記載されている。追加されるAPIは「コンポーネントJSR」という位置づけで、JSR 270からは独立したJSRとして標準化されている。

Javaプラットフォームの次期バージョンとなるJava SE 7の仕様についても、Java SE 6と同様にJCPにおいて議論されることになっている。現時点ではまだJSRは提出されていないが、その開発の中心人物であるDanny Coward氏によればすでにエキスパートグループは準備を進めており、JSRも近いうちに提出される予定とのことである。

同氏は、現時点でJava SE 7は「他言語のサポート」「モジュラリティ」「Swingアプリケーション開発環境の向上」などに重点を置いていると話している。APIの追加だけでなく言語仕様にも修正が加わる可能性が高いが、詳細についてははまだ議論の段階を出ていない。

このようにJava SE 7の仕様についてはまだ大部分が未定の状態ではあるが、JJCPにはJava SE 7で追加されるコンポーネントJSRの候補とされるものがすでに多数登録され、仕様策定のための議論が進められている。前回紹介した「JSR 310 Date and Time API」もそのひとつだ。

今回はそのようなJava SE 7の候補として挙げられているJSRをピックアップしてみる。そして代表的なJSRについては、これから何週かに渡って具体的な内容を紹介していこうと思う。

Java SE 7におけるコンポーネントJSRの候補

JSR 203: More New I/O APIs for the Java Platform ("NIO.2")

JSR 203はJ2SE 1.4で登場したNew I/Oの後継バージョンに位置付けられるAPIで、ファイルシステムへのアクセスや非同期I/Oなどといった、入出力関連の拡張機能が提供される。

JSR 255: Java Management Extensions (JMX) Specification, version 2.0

JSR 255はJMX仕様(JSR 3)およびJMX Remote仕様(JSR 160)の後継バージョンで、Java SE 6の数々の新機能に対応したアップデートが行われる。Java SE 6でもJMXのアップデートが行われたが、こちらはマイナーバージョンアップされたJMX 1.3だった。

JSR 260: Javadoc Tag Technology Update

JSR 260はJavadocのタグを拡張するための仕様である。従来のJavadocは現在のような大規模なアプリケーションのドキュメント化が想定されていなかったため、JSR 260ではより現状に則したタグの追加を目指す。このJSRはもともとJava SE 6に統合される予定だったが、仕様の策定が遅れたためJava SE 7に持ち越すことになった。

JSR 262: Web Services Connector for Java Management Extensions (JMX) Agents

JSR 262ではWebサービス経由でJMX Remote APIにアクセスするためのコネクタを定義し、これによってJavaアプリケーション以外のクライアントからもJavaプログラムのマネージメントが行えるようになる。

JSR 268: Java Smart Card I/O API

JSR 268はJavaプログラムでスマートカードにアクセスするためのAPI仕様。ただし、このAPIはすでにJava SE 6にjavax.smartcardioパッケージとして取り込まれており、Java SE 7で正式にプラットフォーム仕様に含まれる予定となっている。

JSR 277: Java Module System
JSR 294: Improved Modularity Support in the Java Programming Language

JSR 277はJARファイルの拡張版といった位置付けのJSRで、Javaアプリケーションの配布やデプロイ、ファイル間の依存関係の解決などを容易に行えるようにするものだ。JSR 294はパッケージの概念を拡張するもので、パッケージレベルでのアクセス権を扱えるようにするための仕組みなどが規定される。昨今のJavaアプリケーションはJARファイルやパッケージの仕組みが制定された頃には考えられなかった程大規模化している。Java SE 7ではそれに対応するためにモジュール化の仕組みの導入を目指す。

JSR 292: Supporting Dynamically Typed Languages on the Java Platform

JSR 292はJava仮想マシンに動的な型をサポートするための仕様を織り込み、Javaプラットフォーム上で動作する動的言語の開発を容易にすることを目指している。Java自身は動的な型をサポートしていないが、このAPIはJava以外の言語をJava環境上で動作させ易くするためにJava SEに統合される予定だ。

また、Java SE 6ではスクリプト言語のサポートとして「JSR 223: Scripting for the Java Platform」が追加され、それに関連してJavaScriptの実行環境が付属するようになった。Java SE 7ではそれに加えてJRubyやJython、Beanshellなどの実行環境も同梱することが検討されている。

JSR 295: Beans Binding
JSR 303: Bean Validation

JSR 295は複数のJavaBeanのプロパティを同期させるためのAPI、JSR 303はアノテーションを使用してJavaBeanの検証を行うための仕組みを提供するAPIだ。両者はともにJavaBeansの使い勝手を向上させるためのAPIだが、後述のJSR 296などと組み合わせることでSwingアプリケーションの開発にも活用できる。

JavaBeans関連ではこれらのAPI以外にも、プロパティの定義やアクセスを行うための新しい文法の導入も検討されているという。

JSR 296: Swing Application Framework

Java SE 7ではSwingアプリケーション開発をサポートする機能の強化にも力を注ぐという。JSR 296はその中心的存在で、Swingを用いたGUIアプリケーション開発のための標準的なフレームワークを提供する。

JSR 310: Date and Time API

第4回で紹介した、Javaプログラムにおける日付や時間の情報を取り扱うためのAPI。

■ ■ ■

ここで取り上げたJSRは、あくまでも現時点でJava SE 7への採用が「検討されている」という段階にすぎない。そもそもほとんどのJSRが、まだそれ自身の詳細すら決まっていない。しかし関係者によるプレゼンテーションやブログのエントリなどから少しずつ全体像が見えてきているものもある。次回からは現時点で得られる情報をもとに、上記のJSRについてもう少し詳しく紹介していきたい。

提供:毎日就職ナビ

会員登録はこちら

学生のための就職情報サイト「毎日就職ナビ」。6,000社以上の新卒採用情報が常時掲載され、社内の雰囲気が伝わる情報画面、さまざまな項目での会社検索、エントリーや説明会検索など、機能も充実。無料適職診断、就活Q & A、エントリーシート添削講座など、就職活動に役立つ記事も満載です。研究者、エンジニアを目指す学生の方々も是非エントリーしてください。お待ちしています!

毎日コミュニケーションズはプライバシーマークを取得しています。

5/60

インデックス

連載目次
第60回 どうなる? 今後のJavaプラットフォーム(Java SE編)
第59回 どうなる? 今後のJavaプラットフォーム(Java EE編)
第58回 Java SE 7の要注目機能"クロージャ"はどうなるのか その6
第57回 Java SE 7の要注目機能"クロージャ"はどうなるのか その5
第56回 Java SE 7の要注目機能"クロージャ"はどうなるのか その4
第55回 Java SE 7の要注目機能"クロージャ"はどうなるのか その3
第54回 Java SE 7の要注目機能"クロージャ"はどうなるのか その2
第53回 Java SE 7の要注目機能"クロージャ"はどうなるのか
第52回 Early Draftが公開されたJSF 2.0
第51回 EJBから独立したJava Persistence 2.0
第50回 モバイルJavaの新しい潮流となるか - MSA 2.0のドラフト公開
第49回 やっぱり基本はServlet - Servlet 3.0のEarly Draftを読む
第48回 JOGLで3Dプログラミング その4
第47回 JOGLで3Dプログラミング その3
第46回 JOGLで3Dプログラミング その2
第45回 JOGLで3Dプログラミング
第44回 JARファイルを効率的にネットワーク転送するためのPack200形式
第43回 Early Draftで把握するEJB 3.1の新機能
第42回 次世代の携帯端末向けJava仕様"MIDP 3.0"はどうなるか その2
第41回 次世代の携帯端末向けJava仕様"MIDP 3.0"はどうなるか その1
第40回 リソースアダプタによる接続の仕組み
第39回 JCAを利用したシステム間接続
第38回 Java EEと外部システムの接続性を支えるJCAがバージョンアップ
第37回 Javaのモジュラリティ強化を担う"スーパーパッケージ"とは
第36回 JSR 308対応のコンパイラを試す
第35回 公開されたJSR 308のEarly Draftを検証する
第34回 スクリプト言語とJavaを結びつけるJSR 223
第33回 Java EE環境に統一されたコンポーネントモデルを提供するJSR 299 その2
第32回 Java EE環境に統一されたコンポーネントモデルを提供するJSR 299 その1
第31回 Javaの文法がそのまま使えるスクリプト言語"BeanShell"
第30回 Javaアプリケーションにオブジェクトのキャッシュ機構を提供するJCache API
第29回 Javaアプリケーションからのリソース管理を可能にするJSR 284
第28回 XMLデータソースへの問い合わせはJSR 225で
第27回 Portlet Specification 2.0をもっと手軽に利用する
第26回 次期Javaポートレット仕様となるJSR 286
第25回 JSFとポートレットをつなげるJSR 301
第24回 Webサービス向けのポートレット仕様「WSRP」
第23回 高い相互運用性を実現するポートレットAPI - JSR 168
第22回 Java EE環境でタスクのスケジューリングを可能にするJSR 236
第21回 Java EE環境でのスレッドプログラミングを可能にするJSR 237
第20回 音声認識/合成のためのAPI - Java Speech APIとJSR 113
第19回 JSR 291でJavaプラットフォームにダイナミックコンポーネントモデルを導入
第18回 JAX-RSで簡単RESTful - JSR 311
第17回 待望のServlet 3.0がJSRに登場 - JSR 315
第16回 アノテーションを使ってバグ退治 - JSR 305
第15回 アノテーションをさらに広い範囲で利用可能にするJSR 308
第14回 Webアプリケーション開発の要となるか - JSF 2.0がJSRに登場
第13回 Webサービス経由でのJMX Agentへの接続を可能にするJSR 262
第12回 Javaアプリケーションのモジュール化をサポートするJava Module System
第11回 "NIO.2"がやってきた - JSR 203: More New I/O APIs for the Java Platform
第10回 JSR 295: Beans Bindingの参照実装を試す
第9回 けっこう便利! 単位を扱うAPI -- JSR 275: Units Specification
第8回 アノテーションでバリデーション - JSR 303: Bean Validator
第7回 Swing開発の救世主となるか - Swing Application Framework
第6回 JavaBeansのプロパティを同期させるバインディングAPI
第5回 誰よりも早く"Java SE 7"を睨む
第4回 日時情報の取り扱いを改善する JSR 310: Date and Time API
第3回 古いAPIも進化している!? - JSR 919: JavaMail 1.4
第2回 JSR 1 リアルタイムJava仕様
第1回 JCPによって進められるJava関連技術の標準化

もっと見る



人気記事

一覧

イチオシ記事

新着記事