BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Web Profile を載せた Java EE 6 プラットフォームドラフトが公開

Web Profile を載せた Java EE 6 プラットフォームドラフトが公開

Java EE 6 プラットフォーム仕様のパブリックドラフトが公開され(リンク)、2009 年 2 月 23 日までパブリックレビューとフィードバックを受け付けている。予定より遅れている今回のドラフト(リンク)でもっとも注目すべき点は、Java EE プラットフォームの歴史上最初のプロファイルである Web Profile かもしれない。

スペックリードの Roberto Chinnici 氏は Web Profile のあらまし(リンク)を次のように述べている。

熟考をかさねた結果、プラットフォームエキスパートグループは Web Profile として、中規模な案、わたしが以前書いた記事(リンク)のなかの選択肢 B を選んだ。

要求される技術は次のとおりだ。

Servlet 3.0
JSP 2.2
EL 1.2
Debugging support for other languages (JSR-45) 1.0
JSTL 1.2
JSF 2.0
JSR-250 1.1
EJB 3.1 Lite
JTA 1.1
JPA 2.0

いくつかはバージョン番号が最新の API のそれと一致しないことに気付かれるかもしれない(たとえば EL 1.2 )。これは、メンテナンスレビューを経て該当技術に対して小さな変更を加えることを予定しているためである。それらが利用可能になれば、詳細な情報を提供するつもりだ。

Web Profile を導入した理由についてドラフトでは次のように説明されている。

 Web Profile は現代的なウェブアプリケーションの開発者をターゲットとしている。

わたしたちが「現代的」という言葉をつかうことで強調したいのは、ウェブアプリケーションの世界が、最初 Servlet 仕様が現れて以降おおきな進化を遂げているという事実だ。必然的に、ごく単純なウェブアプリケーションを作るために利用される技術も、急速に発展してきた。実際、今日のウェブアプリケーションで直接 Servlet API を利用しているものはほとんど存在せず、大部分のアプリケーションは標準の、あるいはサードパーティ製のフレームワークやライブラリに依存しており、サーブレットコンテナの機能を間接的に利用している。それらのフレームワークやライブラリはオープンソースとして開発されることが多い。

ほとんどのウェブアプリケーションは、HTTP による対話の管理以外に、トランザクション管理・セキュリティ・永続化といった分野において重要な要件をもっている。そういった要件は、Java EE プラットフォームがかなり以前から提供している技術、たとえば Enterprise JavaBeans ( EJB ) 3.x や Java Persistence API などを使って簡単に解決することが可能だが、それらの技術が単なるサーブレットコンテナでサポートされることはあまりない。Web Profile は、これらの API のおおくを組み込むことで、Java プラットフォームをつかったウェブアプリケーションの開発に必要な基本的なスタックであると見なされる製品が達しなければならない水準を高めることを目的としている。

「現代的」なウェブアプリケーションをターゲットにするということは、すなわち、標準 API から成り満足のいく程度に完成されたスタックと、大規模なウェブアプリケーションのニーズにも即座に対応できる能力が提供されることを示唆している。さらに、このスタックは、残された開発者のニーズにも応えられるよう、簡単に拡張できなくてはならない。

完全性へと向かうこの動きに対して、ウェブコンテナのフットプリントを制限する願望について、物理的と概念的両方の意味で、バランスをとることが望まれている。Web Profile を学んでいる開発者の視点から見れば、パワフルだが API が冗長で過度に複雑なプロファイルよりも、的をしぼり機能の重複を極力少なくした小さなプロファイルを利用できるほうが望ましい。

Web Profile を定義するなかで、わたしたちはこれら二つの要求の中間地点を見つける努力をしてきた。

完全性の面から言えば、Web Profile はプレゼンテーションと状態管理をあつかう技術( JavaServer Faces、JavaServer Pages )、コアとなるウェブコンテナ機能( Servlet )、ビジネスロジックをあつかう技術( Enterprise JavaBeans Lite )、トランザクション技術( Java Transaction API )、永続化技術( Java Persistence API )、などを含む完全なスタックを提供している。

簡単さに関して言えば、Web Profile では、 Java EE プラットフォームの一部を成している企業バックエンド API の大部分が省かれている。そして、Servlet 仕様のあたらしいプラグイン機能(仕様書のセクション 8.2 を参照)によって、アプリケーションは設定にかかるオーバーヘッドを最小に抑えながら、サーブレットコンテナを拡張するライブラリを利用することができるのである。たとえば、Restful ウェブサービス用の Java API ( JAX-RS )のような標準技術で、フル仕様の Java EE プラットフォームには含まれているが Web Profile には含まれていない技術を、アプリケーションの web.xml を一切変更することなくウェブコンテナにプラグインすることができる。

最後に、Web Profile 準拠の製品が仕様で求められている以上の技術を実装していてもかまわないということを思い出すのは価値のあることだろう。製品が、インストール時にさまざまな設定や拡張機能の選択肢を提供したり、あるいは仕様で要求されているコア機能を越えて完全なカスタマイズを可能にするなどの機能を提供することは、十分考えられることだ。

Roberto 氏は JAX-RS が Web Profile の必須コンポーネントではないことについても述べ、JAX-RS を含めるのは時期尚早であるとエキスパートグループが感じていることがその理由であると説明している。

そのほかに欠けているものとしては Web Beans がある。Web Beans は Web Profile とフルプラットフォームいずれにおいても必須コンポーネントとはされていない。

Web Beans は Web Profile とフルプラットフォームいずれにおいても必須コンポーネントとはされていない。一方で、セクション EE.6.29 では、Web Beans は導入を検討中のコンポーネントであると述べられている。エキスパートグループでは、この問題についてコミュニティからのフィードバックを求めている。

また、注意深い読者は、現在パブリックドラフトにある Web Beans 仕様(リンク)が、ちょうど昨日おおきく更新されたことに気付かれただろう。Gavin King 氏のブログ(リンク)には、主に JSR-316 のエキスパートグループからのフィードバックによって加えられた、変更の全詳細が記述されている。もっとも大きな変更のひとつは、「 Web Beans 」という用語自体が仕様から姿を消したことだ。これは一部の人たちにとっては衝撃的なことかもしれないが、実際にはポジティブな進展なのである。なぜなら、このことは、Web Beans が提供する機能と、「コンテナ」と「コンポーネント」というすでに確立されている Java EE の概念との融合を意味するからだ。現在、Java EE プラットフォーム全体にたいする文脈的サポートと依存性注入を提供しており、最終的な結果は、もっと有用で、統合が進んでおり、「 Web Beans 」を学びやすいものになるだろうと、わたしは信じている。

Bean Validation も同様に、Java EE 6 コンポーネント JSR としては挙げられていない。

注意深い読者は、JSR-303(リンク) がパブリックレビューとなっていることにも気付かれたことだろう。しかし JSR-303 はまだ Java EE 6 コンポーネント JSR に含まれていない。これは単純にタイミングの問題だ。プラットフォームエキスパートグループは JSR-303 を含めるかどうかの議論を始めたばかりで、プラットフォーム仕様のパブリックドラフトが公開された時点で、まだ結論に達していなかったのである。 Emmanuel Bernard 氏ひきいる JSR-303 エキスパートグループがバリデーション分野における JPA と JSF のニーズに対応するため多くの作業を完成させたことを指摘しておきたい。わたしは、JSR-303 がコミュニティから歓迎されるだろうと確信している。

このドラフトはダウンロード可能となっており(リンク)、Java EE 6 仕様と Web Profile 仕様の両方が含まれている。

コミュニティが新しい仕様についてどう考えているのか、java.net で投票が行われている。投票者数はまだかなり少ないが、結果はリリースされたドラフトが人々の興味を引いていないこと(リンク)を物語っている。

よいと思う   12.1%
フルプラットフォームの仕様に重要な JSR が欠けていると思う   3%
Web Profile の仕様に重要な JSR が欠けていると思う      6%
別な理由から、よいとは思えない         6%
まだ読んでいないが、これから読むつもりだ        9%
まだ読んでいないし、読む予定もない            63.6%

もっと詳しい情報を知りたい方は、ここ InfoQ にある Enterprise Java(参考記事リンク) のページを参照してほしい。

 

原文はこちらです:http://www.infoq.com/news/2009/01/java-ee6-draft

この記事に星をつける

おすすめ度
スタイル

BT