Java EE 7は何がどう新しくなったのか? 習得の近道は?──先行者からのアドバイス

Oracle Java & Developers編集部
2013-09-19 15:50:00
  • このエントリーをはてなブックマークに追加

2013年6月にリリースされた「Java EE 7」は、前バージョンのJava EE 6をベースに、企業システム開発をさらに効率化する機能が追加されている。それら新機能の特徴、使いこなしのポイントを概観してみよう。

次世代Java EE開発のリーダーが集う

 日本オラクルは2013年8月22日、都内でJava開発者を対象にしたセミナー「リリース記念:今から始めるJava EE 7解説セミナー」を開催した。その名のとおり、2013年6月のJava EE 7リリースを記念して開催された同セミナーでは、新たに追加された機能のうち、特に開発者の関心が高い「WebSocket」、「Java Batch(jBatch)」、「JSF 2.2」を中心にセッションが実施された。


日本オラクル Fusion Middleware事業統括本部 ビジネス推進本部 シニアマネジャーの伊藤敬氏

 セミナー会場には多くのエンタープライズJava開発者が参集。冒頭で挨拶に立った日本オラクル Fusion Middleware事業統括本部の伊藤敬氏(ビジネス推進本部 シニアマネジャー)は、「Java EE 7が本格的な普及期に入るのは、おそらく来年以降になるでしょう。皆さんには、ぜひ今から新しいJava EEへの取り組みに力を入れ、リーダーとしてJava EE 7の導入を牽引していただきたいとの思いから、今回のセミナーを企画しました」と開催の狙いを説明した。

 以降、同セミナーで実施されたセッションの内容をダイジェストで紹介する。

Java EE 7、そしてクラウド対応のJava EE 8に向けて今、Java EE 6から始めよう


日本オラクル Fusion Middleware事業統括本部 シニアJavaエバンジェリストの寺田佳央氏

 各機能の詳細な解説に入る前に、まず日本オラクル Fusion Middleware事業統括本部 シニアJavaエバンジェリストの寺田佳央氏が、Java EE 7における主な強化ポイントをまとめて紹介した。

 寺田氏は初めに、Java EE 7がJava EE 6をベースにしたアップデートであることを改めて強調。「今からしっかりとJava EE 6への取り組みを進めておくことが、Java EE 7、さらにその次へと続くJava EEの進化に効率的に対応していくうえで最も有効」だとアドバイスした。

 そのうえで、現在のJava EEが“オールインワン”のフレームワークであることに触れ、次のように語った。

 「日本では、まだ多くの企業がStrutsやSpring Frameworkなどのフレームワークを使っています。しかし、世界的に見ると、これらのフレームワークを使う企業は減少傾向にあり、特にStrutsについては、もはや少数派です。ぜひ皆さんも新しいJava EEを実際に試してみて、これが“使えるプラットフォーム”だと感じたら、そのことを周囲の方にも伝えてください」(寺田氏)

 Java EE 6では、「高い拡張性の実現」、「軽量なWebアプリケーション用プロファイル(サブセット)の導入」、「不要になった仕様の削減」、「開発容易性の向上」をテーマに機能強化が行われた。それに対してJava EE 7では、次のような観点から機能強化が図られているという。

  • さらなる開発生産性の向上
  • HTML5、モバイル・アプリケーション開発への対応
  • 並列処理の実装方法やバッチ処理の標準化など、今日のエンタープライズ開発で求められている機能の取り込み

 「Java EE 7、そしてクラウドに必要となるマルチテナンシーなどが導入されるバージョン8以降のJava EEも、Java EE 6をベースに進化を続けていきます。日本語による技術書も出版されるなど、Java EE 6の技術習得に向けた環境も整いつつあります。Java EE 6についてしっかりと学んでおけば、Java EE 7以降の技術の習得もスムーズに進むでしょう。今が、これから先、何年にもわたって続くJava EEの発展に対応していくための基礎を築くチャンスなのです。すぐにでもJava EE 6への取り組みを始めてください」(寺田氏)

JSFはJava EE 7でどう進化しているのか?


アイエックス・ナレッジ サービスインテグレーション事業部ICTソリューション部マネージャーの加藤田益嗣氏

 続く2つのセッションでは、日頃の業務でJava EE開発に深く携わっているエキスパートらが、開発者の視点からJava EE 7の新機能について解説した。

 まず登壇したのは、アイエックス・ナレッジの加藤田益嗣氏(サービスインテグレーション事業部ICTソリューション部マネージャー)である。氏は、Java EE 7でアップデートされた「JavaServer Faces(JSF) 2.2」の概要と、実際に評価する中で感じた利点および課題を紹介した。

 JSFは、Java EEに標準で備わるWebアプリケーション開発フレームワークだ。その特徴は、Struts、Ruby on Railsのようなアクション・ベースの開発ではなく、Visual Basicのようなコンポーネント・ベースの開発で、容易にユーザー・インタフェース(UI)の構築が行える点にある。

 JSFは、Java EE 6でバージョン2.1が採用され、Facelets、Ajax対応、ブックマーク対応、複合コンポーネント、アノテーションなどの機能が導入された。Java EE 7では、これがバージョン2.2へと進化している。

 加藤田氏によれば、JSF 2.2で追加された主な機能は次の4つだという。

  • HTML5のサポート
  • テンプレートやスタイルを切り替えられるリソース・ライブラリ・コントラクトの採用
  • 画面遷移をまとめて管理できるFacesフローの導入
  • サーバ側でコンポーネント・ツリーを保持しないステートレス・モードの導入

 このうちステートレス・モードについて、加藤田氏は、「これまではサーバ側でコンポーネント・ツリーを保持していたため、ステートレスな開発が不可能でした。ステートレスへの対応は、JSFとして大きなパラダイムシフトだと思います」と評価する。

 また加藤田氏は、JSFを利用するメリットとして、次のような点を挙げる。

  • コンポーネント・ベースなので、部品と処理のひも付けがわかりやすく、開発しやすい
  • 画面コンポーネントの部品化が容易で、再利用性が高い
  • 標準仕様であるため後方互換性が高く、将来にわたって開発したプログラム資産を保護できる

 その一方で、現状はまだ課題と感じる部分として、次のようなものがあるという。

  • セッションを前提としたシステム構築が必要
  • クライアント側での動的な画面生成が難しい
  • 従来に比べて改善はされたものの、コンポーネントを大量に使った場合にパフォーマンスが低下することがある

 「これらの課題も、いずれ解消されるでしょう。ただし現状、Java EE 7に対応したアプリケーション・サーバはまだ少ないので、まずはJava EE 6のJSF 2.1から取り組みを始めることをお勧めします。JSFはバージョン2以降、大幅に機能が拡充されており、NetBeansなどのツールを活用すれば効率良く開発が行えます。JSFの『使いづらい』、『パフォーマンスが悪い』といったイメージは、もはや過去のものなのです」(加藤田氏)