【コラム】

Java API、使ってますか?

59 どうなる? 今後のJavaプラットフォーム(Java EE編)

59/60

Javaに関連したAPIを紹介するという目的で続けてきた「Java API、使ってますか?」も次回をもって終了の運びとなった。本連載では、次期バージョンのJavaプラットフォームに採り入れられる可能性のあるAPIについては特に力を入れて紹介してきたつもりでいる。そこで、それらの内容を踏まえながらJava EE 6およびJava SE 7の最新動向を紹介し、最後の締めくくりとさせていただきたいと思う。

Java EE 6の新機能

Java EE 6については、ちょうど1月22日(米国時間)にその仕様となるJSR 316のパブリックドラフトが公開されたところである。これからEC(Executive Committee)による承認投票を経た後、最終ドラフトの作成へと進んでいく。最終リリースまではもう少し時間が必要となるが、今回公開されたパブリックドラフトを眺めるだけでもJava EE 6の大体の形を掴むことができる。

まず新たに導入される新機能としては、以下の3つのAPIが挙げられている。

  • JSR 196: Java Authentication Service Provider Interface for Containers(JASPIC) 1.0
  • JSR 299: Web Beans 1.0
  • JSR 311: JAX-RS: The Java API for RESTful Web Services 1.0

JASPICはコンテナ向けに標準的な認証サービスを提供するサービスプロバイダインタフェース(SPI)である。これによって認証メカニズムをコンテナに統合し、コンポーネント対するアクセス可否の決定に利用することができるようになる。ちなみにJSR 316のパブリックドラフトにはJASPIC 1.0と記載されているが、JSR 196は現在メンテナンスドラフトが公開されているため、リリースのタイミング次第ではマイナーバージョンアップされたものになる可能性もあるだろう。

Web BeansはEJB3とJavaServer Faces(JSF)の間に統一的なコンポーネントモデル(Web Beanコンポーネント)を確立するためのAPIである。現在、EJB3とJSFではそれぞれが独立したコンポーネントモデルを持っており、両者を同時に使用する場合にはその互換性を考慮する必要がある。Web Beansによってこの問題が解決し、EJB3によるビジネス層とJSFによるビュー/コントローラ層をシームレスに接続できるようになる。JSR 299も現在パブリックドラフトが公開されている。

参考

JSX-RSはJavaプラットフォームにおいてRESTfullなWebアプリケーションを開発するためのAPIである。このAPIではアノテーションを活用することによってメソッドを手軽にRESTfulなサービスとして公開できるようになっている。JSR 311は2008年10月に正式リリースされている。

参考

アップデートされる機能たち

続いて、従来からある代表的な機能がどう変わるのかを見てみよう。

まずJava EEの中心的存在であるEJB(Enterprise Java Beans)だが、Java EE 5のEJB 3.0からはマイナーバージョンアップしてEJB 3.1となる。EJB 3.1ではEJB 3.0で導入されたDI(Dependency Injection)やアノテーションなどを引き継ぎながら、より使いやすい形へと進化する予定だ。

代表的な機能としては、ローカルクライアントからローカルビジネスインタフェースなしでSession Beanへアクセスできるようにする簡易ビューや、Session Beanの非同期呼び出しなどがサポートされる。その他、EJB-Jarを省略した簡易なパッケージングのサポートや、後述するJava EEへのプロファイルの導入に合わせたサブセットの定義など、アプリケーションを簡略化するための様々な仕組みが追加される予定となっている。

EJB 3.1の仕様を定めるJSR 318は、現在Public Draftが公開されている段階である。以前紹介したEarly Draftからの変更点としては、EJBコンポーネントをJava SE環境でも実行できるようにする組込みAPIなどの追加が挙げられている。

参考

EJB 3.0の一部として提供されていたJavaオブジェクトの永続化のためのJava Persistence API(JPA)は、EJB 3.1からは独立してJPA 2.0(http://jcp.org/en/jsr/detail?id=317)として定義されることになった。JPA 2.0ではアノテーションによるコレクションのサポート強化や、MapやListの使い勝手の向上、悲観的ロックのサポートなどが主な新機能となる。

また検索言語であるJPQLが強化されるのに加え、新たに「Criteria API」が追加される。これはJavaオブジェクトを元にして検索条件を絞りながら動的にJPQLを生成するAPIであり、昨年11月公開のPublic Reviewで追加された。これによってより柔軟なクエリの作成が可能になるという。

参考

JSF(JavaServer Faces)もJava EE 6ではバージョン2.0となる。JSF 2.0ではFaceletsの統合などによってカスタムコンポーネントの開発が容易になる他、Ajaxのサポートや他のAPIとの連携によってよりリッチなインタフェースを提供できるようになる。また、プロパティに対するデフォルトの設定値が用意されるなどコンフィギュレーションが簡略化できる予定だ。JSF 2.0も現在Public Draftが公開され、Early Draftでは明確でなかったFaceletsの統合などについて明らかになっている。

参考

Java EE 6ではServletの仕様も大きく進化し、Servlet 3.0(http://jcp.org/en/jsr/detail?id=315)となる。最も大きな変更は、Servletのメタ情報を記述できるアノテーションが追加される点で、これによってweb.xmlによる設定の記述を簡略化または省略できるようになる。その他にも、Webフレームワークを接続/切断するためのメカニズムの導入や、非同期通信のサポートなど、近年では見られなかった大幅な拡張が行われる予定だ。

参考

注目のプロファイル機能

Java EE 6の動向で特に注目されているもののひとつにプロファイルの導入がある。これはJava EE 6に含まれる機能のうち、特定の目的に合わせた機能だけを切り出したサブセットを定義しようというもの。

現在はJSR 316の仕様とあわせて、Webアプリケーションの開発に特化した「Webプロファイル」のドラフトが公開されている。WebプロファイルではEJB 3.1に含まれるAPIのうち、Servlet 3.0やJPA 2.0、EJB 3.1 Liteなどと中心とした10のAPIが必須コンポーネントと、いくつかのオプションコンポーネントが定義されている。またWeb Beans 1.0は現時点では含まれていないが、これを含むかどうかは意見を募っているそうである。

現時点で公開されているプロファイルはWebプロファイルのみだが、今後様々な要求に応じたプロファイルが登場することと思われる。

さて、今のところJava EE 6の具体的なリリース時期は明らかになっていない。Public Draftが問題なく承認されたとしても、正式リリースは春先以降になる可能性が高そうだ。まだ少し時間があるとはいえ、それまでに全体像を把握しておきたい。

59/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関連技術の標準化

もっと見る

提供:マイナビ

会員登録はこちら

大学・大学院・短大・専門学生向けの就職情報サイト「マイナビ2010」「マイナビ2009」に今すぐ登録しよう!  大手企業からベンチャー企業までの約13,000社の企業情報を公開、エントリーが可能です。2010年卒予定の方は「マイナビ2010」に、2009年卒予定の方は「マイナビ2009」に登録してください。

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

関連キーワード


人気記事

一覧

イチオシ記事

新着記事