X

An Oracle blog about WebLogic Channel

“いま”そして“これから”のJava EEに、開発者はどう取り組むべきか?【後編】──「WebLogic Server 12c Forum 2013」レポート

Guest Author
2013年2月1日、日本オラクルは都内で開催された「WebLogic Server 12c Forum 2013」において、国内ユーザー企業などでJava EE開発に取り組むアーキテクトや米国オラクルのJava EE担当幹部らがJava EE開発の現在、そして未来について語るパネル・ディスカッション「Java EE 6の現在とJava EE 7、そしてその先へ」を実施した。そのレポートの後編となる今回は、「Java EE 6の海外での採用状況」、「Java EE 6への具体的な取り組み方」、そして間もなくリリースが予定されている「Java EE 7への期待」に関する議論を紹介する。(編集部)


前編はコチラ

対応製品も充実し、世界中で普及が進むJava EE 6


 パネル・ディスカッションの前半では、三菱UFJインフォメーションテクノロジーの斉藤賢哉氏(ITプロデュース部 部長)、NTTデータビジネスブレインズの伊賀敏樹氏(ビジネスソリューション事業部)が、Java EEとのこれまでのかかわりと、Java EE 6への取り組みから得られるメリットについて見解を述べた。モデレーターを務めた日本オラクルの伊藤敬氏(Fusion Middleware 事業統括部 ビジネス推進本部)は、「日本では、これからJava EE 6が実案件に使われていく状況」だとしたうえで、米国オラクル・コーポレーションのマイク・リーマン氏(Fusion Middleware Prduct Management担当シニア・ディレクター。Java EEの開発統括も担当)に、米国をはじめとする諸外国でのJava EE 6の採用状況を聞いた。


 リーマン氏によれば現在、商用やオープンソースのものを合わせて10以上のアプリケーション・サーバがJava EE 6に対応している。特にオープンソース・プロダクトが対応したことで、Java EE 6の普及にさらに弾みがついたという。

米国オラクル・コーポレーション Fusion Middleware Prduct Management担当シニア・ディレクターのマイク・リーマン氏

 実際の開発現場でのJava EE 6の普及状況については、地域差が見られるようだ。米国では早いペースで導入が進む一方、ヨーロッパではJava EE 5が広く普及していることもあり、新規プロジェクトにおけるJava EE 6の採用割合は5割程度。世界全体を見るとJava EE 6の導入ペースは速まっており、特にアクティブなJavaコミュニティが存在する南米などでは、その傾向が顕著だという。


 「我々は現在、Java EE 6をどう普及させていくべきかについて考えている。特に日本のようにStrutsやSpring Frameworkの使用割合が高い地域では、Java EEが業界標準の技術をベースにしていることや、他のフレームワークが独自にカバーしている機能を標準機能として取り込んでいること、必要に応じてJava EE 6をコンテナとして使い、その上で他のフレームワークを利用できることなどを、もっと多くの方に知っていただく必要があると感じている。


 従来、独自に作り込んでいた機能が標準機能としてアプリケーション・サーバ側に用意されることに安心感や開発/保守コストの削減といったメリットを感じる企業、従来のアプリケーション資産を保護しつつ、新規システムでは最新の技術を利用したいという企業には、開発生産性の高さという面でも、Java EE 6が非常に魅力的な選択肢として映るはずだ」(リーマン氏)

JSF 2.0、Faceletsで劇的に高まる開発生産性


 続いては、実案件でJava EE 6を活用している伊賀氏、斉藤氏が、それによって得られるメリットを、具体的な機能を交えて紹介した。


 前編でJava EE 6のFaceletsをお気に入りの機能に挙げた伊賀氏は、その理由として「Ajaxとの高い親和性」、「Composite Componentsによる高い生産性と保守性」、「仕様そのものに由来するセキュリティの高さ」を挙げる。

NTTデータビジネスブレインズ ビジネスソリューション事業部の伊賀敏樹氏

 「FaceletsのComposite Componentsは、部品の集合をコンポーネントとして再利用するための仕組み。これを使うことにより、Webページ間での部品の使い回しが非常に簡単になる。旧来のJava EEや他のフレームワークではなかなか生産性が上げられなかった部分を、極めて高い生産性で実現してくれるので、一度使えば、その便利さに驚くはず。


 また、Faceletsはその仕様から、デフォルトでも非常にセキュアな作りになっている。昨今、企業システムに対する不正アクセスが大きな脅威として強く認識され始めており、今後はアプリケーションのセキュリティ・レベルを高く維持することが、これまで以上に強く求められるようになる。Strutsの場合、そのために多くの工数が必要になるケースが見受けられるが、その点でもJava EE 6のFaceletsを採用することには非常に大きなメリットがある」(伊賀氏)


 伊賀氏は、こうしたFaceletsのメリットを強調したうえで、「新たにアジャイル開発に取り組む場合や、既存のアプリケーションをモバイル/スマートフォン対応にする場合、そして実験的かつ小規模なWeb開発プロジェクトを立ち上げる場合などが、Faceletsの採用を検討する絶好の機会になるはず」とアドバイスし、その活用を勧めた。


 一方、斉藤氏は伊賀氏の言葉を受けて「Composite Componentは、生産性の面で非常に利用価値が高い。私が現在進めているプロジェクトでも積極的に活用している」と語ったうえで、Faceletsを含むJava EE 6のJSF 2.0が、アプリケーションの開発パターンをどう変えるのかを説明した。


 近年のWebアプリケーション開発では、さまざまなJavaScriptフレームワークが登場するなど、クライアント・サイドの技術の変化が激しくなっている。その中で、今後のWebアプリケーション開発のパターンとしては「大きく3つが考えられる」だろうと斉藤氏は指摘する。その3つのパターンとは、次のようなものだ。


(1)JSF 2.0でHTMLとJSFタグの埋め込みを活用するパターン

(2)JSF 2.0上でリッチなUIコンポーネントを使って開発を行うパターン

(3)JavaScriptフレームワークとJAX-RSを組み合わせて利用するパターン


 各パターンには、それぞれの特性を生かしたメリットが存在する。HTMLとJSFタグによるパターン(1)では、画面モックの作成などが非常に簡単に行える。また、JSF 2.0上でリッチUIコンポーネントを使うパターン(2)では、既存のUIコンポーネントを利用して開発が行えるので、高い生産性が期待できる。そしてJavaScriptとJAX-RSを組み合わせるパターン(3)には、対応できる開発者が多く、疎結合で保守性の高いアプリケーションを開発できるというメリットがある。


 斉藤氏は、「これらのパターンを開発体制や開発要員のスキル、アプリケーションの特性などによって比較検討し、使い分けられる時代が到来したと感じている」という。

CDIによって一変する、JavaによるWebアプリケーションのアーキテクチャ


 次に斉藤氏は、Java EE 6の“目玉”となる機能として「Contexts and Dependency Injection(CDI)」を取り上げ、その利点を説明した。


 Java EE 6のCDIは、Java EE 5までのフレームワークで標準的に使われてきた3階層(データ層、アプリケーション層、プレゼンテーション層)のシステム構成に、より柔軟性を与えるものだ。斉藤氏は、3階層による構成にも「大規模開発で分業しやすい」、「各層が相互に影響しにくい」、「再利用性や拡張性を高くできる」といったメリットがあるものの、いくつかの課題もあると指摘する。

三菱UFJインフォメーションテクノロジー ITプロデュース部 部長の斉藤賢哉氏)

 「3階層のシステム構成には、複雑な構成になりやすい、各層を結び付けるためのグルーコードを大量に書かなければならず全体のコード量が増えがちといった課題があった。また、実際の現場ではプレゼンテーション層を頻繁に入れ替えるケースは少なく、3階層の構成が大きなメリットを発揮する場面はあまり多くないという実情もあった」(斉藤氏)


 Java EE 6のCDIでは、こうした現実に対応できるようJSP、EJB、JPAといったJavaの各APIのパッケージングが見直され、それぞれをシームレスに連携させる環境が用意された。これにより「Ruby on Railsのようなイメージで、階層分割を意識しないソフトウェア構成が可能になった」(斉藤氏)という。


 「例えば、セッションをJSFのManaged Beanとして扱い、Viewから直接バインドしたり、JSF Managed BeanをEntity JPAとして扱い、そのままデータベースに格納したりといったことも可能になっている。CDIにより、Java EEによるWebアプリケーション開発の方法は大きく変わる。APIを包含したJava EEを、Ruby on Railsのようなフレームワークのパッケージングとして訴求していくことも可能なのではないか」(斉藤氏)

Java EE 7、さらにその先のJava EEへの期待


 1時間近くにわたったパネル・ディスカッションは、最後に各パネリストが今春のリリースが予定されるJava EE 7への期待や見どころについてコメントを述べて締めくくられた。


 先にJava EE 6を「Java EEの1つの完成形」と評価した斉藤氏だが、実は少しだけ改善してほしいところがあるという。


 「JSFにファイル・アップロードのコンポーネントが欲しいと思っているが、Java EE 7(JSF 2.2)ではこれが標準機能として盛り込まれるとのことで期待している。今後は、1つのフレームワークとしてのJava EE全体の統合性を高め、“つぎはぎ感”が解消されていくことを望んでいる」(斉藤氏)


 伊賀氏はSIerの立場から、クラウドと仮想化への対応が進むことに期待しているという。また、「全体のモジュール化に加えて、Lightweight Languegeに対する競争力として、マルチテナントへの対応も強化してほしい。さらに、今後もエンタープライズ・システムのためのフレームワークとして、高いセキュリティ・レベルが維持されることを望む」(伊賀氏)と語った。

日本オラクルのシニアJavaエバンジェリスト、寺田佳央氏

 日ごろJavaエバンジェリストとしてJava EEの啓蒙/普及に励む日本オラクルの寺田佳央氏(シニアJavaエバンジェリスト)は、斉藤氏や伊賀氏のコメントを受け、次のように述べた。


 「Java EE 7には、非常に多くの強化ポイントがある。HTML5対応、WebSocketの実装、JavaScriptとの親和性の向上、アノテーション・ベースの開発などにおいて、『簡単開発』というコンセプトがさらに進化している。今の世の中で必要とされている技術が多数追加されるので期待してほしい。正式リリースに向け、すでにJava EE 7のリファレンス・インプリメンテーションであるGlassFish 4のNightly Biuldを試すことが可能になっている。ぜひ早い時期にJava EE 7によるJava EE開発の世界を体験していただきたい」(寺田氏)


 そしてリーマン氏は、Java EE 7の開発を主導する立場から次のような見通しを示した。


 「Java EE 7は、主要ベンダーの製品やオープンソース・プロダクトでの採用が進み、数年以内に大半の製品で実装されるだろう。Java EE 7では、WebSocket によるRESTの強化、堅牢性のさらなる向上など、今日のアプリケーション基盤に求められる意欲的な機能が追加される。この新標準が広く普及するまでにはある程度の時間がかかるが、まずはJava EE 6で新たなJava EEの世界になじみ、続いてJava EE 7へと移行を進めていただきたい」(リーマン氏)


 リーマン氏も指摘するように、Java EE 5の方向性をさらに進化/成熟させたJava EE 6は、旧式化したJava EEシステム基盤の移行先としては最適なバージョンだ。Java EE 6で新世代のJava EE標準を取り込めば、さらにその後はJava EE 7、さらにはクラウド対応が期待されるJava EE 8へと、最新の技術潮流に沿って着実にシステムを進化させられる。この安心感がJava EEを使うことの最大のメリットなのである。

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.