Java EE 6なら簡単に開発ができ移行するメリットは大
Java Platform, Enterprise Edition、通称Java EEは、企業向けのJava機能セットだ。この最新バージョンである6の仕様が承認されたのが、2009年12月のこと。じつに3年ぶりのバージョンアップとなった。
以前のバージョンであるJava 2 Enterprise Edition(J2EE)は、仕様が複雑すぎてアプリケーション開発者の負担が大きすぎるとの批判されていた。それをよりシンプルにし「開発を簡単にすること(Ease of Development)」を目的に改良が行われたのが、1つ前のバージョンとなるJava EE 5だ。そして、Java EE 6では、このEase of Developmentをより深め、さらなる軽量化、拡張性、機能強化を行うことで、企業が利用するアプリケーションの開発を強力にサポートする(図1)。
Java EEは、順調に仕様を拡張してきたとはいえ、それが「開発者にとってJ2EE 1.4からJava EE 5への移行は、あまりその気にさせるものではなかった」と言うのは、日本アイ・ビー・エム ソフトウェア事業 WebSphere 第一クライアントテクニカルプロフェッショナルズの田中孝清氏だ。Java EE 5では、様々な仕様変更が行われたが、基本的に実現できることはJ2EEの時代とさほど大きく変わらなかった。
つまり、いままでJ2EEでできたことが「より簡単に書けるようになった」のがJava EE 5だったのだ。そのため、新規のアプリケーションをJava EE 5で実装することは、大きなメリットがあるものの、既存のアプリケーションをJava EE 5で再実装しようというモチベーションは決しては高くなかった。これに対しJava EE 6は、「新たなことができるようになった」と田中氏は指摘する。いままで標準仕様では、できなかったことが数多く実現できるようになったので、既存のアプリケーションの開発者にとってもJava EE 6に移行するメリットは大きいと言う。(次ページへ続く)
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「WebSphere Application Serverが支持される理由」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場
軽量化されたJava EE 6
具体的にJava EE 6のメリットのいくつかを見ていこう。最初に挙げられるのが、軽量化だ。Java EEは、積み重ねてきた歴史を経て、数多くの仕様からできている。以前はそのすべての仕様を満たしていなければ、Java EEアプリケーションサーバーとして世には出せないことになっていた。
ServletやJSPはもちろん、EJB、メッセージング機能、Webサービス、セキュリティやサーバー管理APIなどすべてが必要だったのだ。ところが、実際にJavaを用いアプリケーションを構築する際に、これらすべてが必要なわけではない。 これに対しJava EE 6では、数多くある仕様の一部だけの実装でも、Java EEとして提供できることとなったのだ。
これを実現しているのが、Profileの導入だ。Java EEの仕様のサブセットをProfileとして定義しておき、Java EEのコンテナを提供するプロバイダーはその特定のプロファイルだけを選択し実装したものでも、Java EE認定が受けられるようになったのだ。これは、プロバイダー側がすべての実装をする手間が削減できるだけでなく、ユーザー側にとってもメリットがある。動かしたいアプリケーションに必要なコンテナだけを選択することで、軽量なJava実装環境を利用できるようになるのだ。
現在のJava EE 6ではWeb Profileというサブセットが定義されている。このProfileはServletやJSPを中心としたものだが、トランザクションサービスやリモート呼び出しのないEJB、DBへの永続化を行うJPAなどの仕様も含まれており、エンタープライズアプリケーションの実装に必要な最低限の機能はそろっている。 また、これまでは上位互換性を重視することで、過去の仕様がどんどん積み上がる傾向にあったが、Java EE 6からはいずれは廃止される仕様が明示されるようになった。(次ページへ続く)
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「WebSphere Application Serverが支持される理由」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場
簡単に開発するための拡張
Java EE 6で、より簡単な開発を実現する機能として、Servletもアノテーションベースになったことが挙げられる。Java EE 5までは、web.xmlファイルなどに様々な設定を別途記述しておく必要があった。Java EE 6では、これが必須ではなくなったのだ。これにより、Javaのソースコードの中に設定情報を記述できるようになり、構成の一元管理が可能になった。
また、従来はJavaの初期化コードもソースの中に記述していた。これもDependency Injection(依存性注入)機能のサポートにより、必要なくなった。つまり、初期化はプログラムではなく、実行環境であるコンテナ側に任せることができるようになったのだ。これらは、従来SpringやSeasar2などのオープンソースのフレームワークを利用していれば行えたことでもある。
ところが、オープンソースのフレームワークの利用では、企業のアプリケーション構築環境としてはサポートなどの面で不安もあり、正式に採用できないというケースもあった。Dependency InjectionがJava EEの標準仕様となったことで、今後はJava EE 6をサポートする商用のアプリケーションサーバーでオープンソースフレームワークの先進的な機能と同様なものを利用でき、サポートの面での不安もなくなる。これはオープンソースフレームワークの良さを、標準仕様に取り込んだと言える(図2)。
この他にもServletについては、今回2.5から3へとメジャーバージョンアップしており、様々な新機能が盛り込まれている。その中でも大きな変化となるのが、非同期処理のサポートだろう(図3)。これにより長時間のデータベースアクセスが発生するような処理やCommetのようなリアルタイムに結果を取得するようなアプリケーションをJava EEの標準の仕組みで構築できるようになったのだ。
この他にもJAX-RS(Java API for RESTful Web services)のサポートにより、REST(Representational State Transfer)形式のアプリケーションが簡単に構築できるようになった。これにより、システム連携を行う際に、SOAPを使用したWebサービスに加えて、REST形式での連携も容易に選択できるようになる。
「SOAPによるWebサービスは機能面は豊富だがアプリケーションの実装やインターオペラビリティという点では敷居の高い面もあった。REST形式によるWebサービスは、機能は限定されているものの、きわめて簡単に実装・接続ができます。いままでWebサービス化が困難だった領域でもSOAが実現できるのです」と田中氏は言う。(次ページへ続く)
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「WebSphere Application Serverが支持される理由」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場
IBM WAS V8でJava EE 6をサポート
IBMでは、このJava EE 6について、率先し積極的にサポートしている。来年提供予定の次期バージョンのV8でJava EE 6をサポートする予定だ。すでに2010年3月にはαバージョン、6月には最初のβバージョンを提供しており、開発者にJava EE 6の新たな世界を体験してもらっている。そして、利用者からの様々なフィードバックを反映し、β2の提供を2010年10月から開始している。このβ2では、Java EE 6のほぼすべてのAPI能を網羅するものとなっている。
WebSphere Application Server V8のもう1つの特長が、OSGiのサポートだ。OSGiは、Javaのためのモジュール基盤システムだ。Javaのアプリケーションを開発し利用しようとする際に発生する、アプリケーションサーバーのライブラリとアプリケーションのライブラリの競合や、アプリケーションによって要求するライブラリのバージョンが異なるなどの課題を解決できるのが、OSGiのモジュール基盤なのだ。
「OSGiもここ最近大変注目されている技術であり、IBMはこれにも力を入れているところです。OSGiはJavaのモジュールシステムの混乱を、根本的に解決してくれるでしょう」と田中氏。コンポーネントをモジュール化することで、モジュールの再利用の容易化、動的ローディングによる効率化、バージョニング問題の解決などが可能となるのだ。
実は、V8の登場を待たずとも、JAX-RSやOSGi対応の機能は、Feature Packという形で現行バージョンのWebSphere Application Server V7ですでに正式サポートされている。これらの機能を利用したい場合には、Webサイトから無償でダウンロードしWebSphereに追加できるのだ。
今回サポートするJava EE 6の仕様は、完成度も高く今後長期にわたり利用されるものになるだろうと田中氏は言う。とはいえ、Javaを主導してきたSun MicrosystemsのOracleによる買収などもあり、現状、Javaの世界はプレイヤーの入れ替わりが激しい状況にもなっており、混沌としている。
そんな中にあっても「IBMは今後もJavaのアプリケーションサーバーを提供します」と田中氏。IBMは1998年というかなり早い段階からWebSphereというアプリケーションサーバーの提供を開始しており、長期間にわたりサポートを続けている。その実績と安定性には、確かな自信があると言う。そして、基本的なIBMのソフトウェア製品については、標準サポートが5年間、延長サポートが3年間というサポートポリシーを表明しており、先進性をいち早く取り入れるだけでなく、長期にわたり安心して使ってもらえる製品だとのことだ。
●業界をリードするアプリケーション基盤と先進的なソリューションでWebアプリケーションの課題を解決!
Forrester ConsultingのレポートおよびIBMのホワイトペーパー資料の無料ダウンロード実施中!!
●「WebSphere Application Serverが支持される理由」
●WebSphere Application Serverのスキルアップに役立つオンラインセミナーをライブ中継 WebSphereライブ!WAS道場