SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2012】セッションレポート(AD)

【デブサミ2012】17-B-2 レポート
進化しつづけるJava。キーワードは生産性、マルチコアCPU、小型機器、クラウド

  • このエントリーをはてなブックマークに追加

 本稿では、「Developers Summit 2012」(デブサミ2012)において、2月17日に行われた日本オラクル株式会社 シニアJavaエバンジェリスト 寺田佳央氏によるセッション「JavaOne TokyoとJavaの今後について」の内容を紹介する。  1996年に登場したJavaは現在、組み込み、デスクトップ、エンタープライズの分野において第一線で採用されている。オラクルは、今後もJavaを進化させていくことを表明しており、2021年までの開発ロードマップも公表された。寺田佳央氏のセッションは今後リリース予定のJava SE8、Java EE6に盛り込まれる注目機能を紹介するものとなった。

  • このエントリーをはてなブックマークに追加
日本オラクル株式会社 Fusion Middleware 事業統括本部
ビジネス推進部 シニア Java エバンジェリスト 寺田佳央氏
日本オラクル株式会社 Fusion Middleware 事業統括本部 ビジネス推進部 シニア Java エバンジェリスト 寺田佳央氏

開発者に高い生産性を提供するJava SE8

 日本オラクルの寺田佳央氏がデブサミ2011に続いて登壇。「JavaOne TokyoとJavaの今後について」と題するセッションを行った。昨年は、OracleがSunを買収したことで、Javaの今後について不透明要素が残っていたタイミングだったが、この1年で、Sun時代の末期よりも着実に進化し続けている。その象徴が2011年7月にリリースされたJava SE7だ。Oracleでは「Moving Java Forward」をテーマとして掲げており、そこでのポイントはJavaの開発者数の増加、採用実績の拡大、競争力の拡大、市場変化への適用になる。

 では次の2013年夏リリース予定のJava SE8には、どのような機能が盛り込まれるのか(図1)。まずNashornという、JavaのVM上で動くJavaScriptのエンジンが現在のRhinoに変わって提供される。NashornはSE7でJRubyなどの動的言語を効率的に利用するために盛り込まれたバイトコード命令invokedynamicを実装したもので、Rhinoと比較して高いパフォーマンスを得られるようになる。JVMについては、オラクルがもつ旧BEAポートフォリオの「Oracle JRockit」とSun由来の「HotSpot」が統合され、「HotRockit」という開発コードネームで開発中だ。また旧来のマルチスレッドの書き方では対応が難しいマルチコアCPUの性能を楽に引き出せるようにするため、Lambda式をサポートする。

 またProject jigsawにより、新しくモジュール化という概念が入る。今までJavaのライブラリを使う際、例えばアプリケーションサーバーを起動する際には、大量のjarを列挙する必要があった。モジュール化を使うことにより、jar地獄から解放される。パフォーマンスも起動時、運用時ともに向上する。例えば起動時では、一度アプリケーションを起動する際に読み込んだモジュールの一覧を特定のファイルに書き出し、再起動の際にそれを読み込むことにより起動が早くなる。運用時には、必要なタイミングでモジュールをダウンロードして使うことで、パフォーマンスを高める機能も考えられている。

 さらに重要なポイントとなるのが、小型機器への対応だ。今までJava MEがターゲットとしてきたハードウェア機器の性能が上がったことで、Java SEのサブセットで十分に動く時代になっている。そこで小型機器へのJava SEのサブセットが用意され、SEが提供している機能が使える様になる予定だ。

 またJavaのリッチクライアントを作成する新しい技術であるJavaFXが、Java SEの標準ライブラリとして取り込まれる。一方、現在の主流のSwingのライブラリも引き続き提供されるが、新たな機能追加などがないメンテナンスモードに入る。

 またすでにJava SE9の検討も開始されている。ポイントは統合運用性、クラウド対応、最適化などだ。セッションでは今後のロードマップも披露された。2013年にJDK 8がリリースされ、2015年にJDK9というように2021のJDK 12まで、2年周期で提供される予定だ。

図1 Java SE8、2013年夏リリース予定
Java SE8、2013年夏リリース予定

Java EE7はクラウドPaaSにフォーカス

 続いて紹介されたのがJava EE6だ。寺田氏は「日本のエンタープライズ開発市場は、世界から見てずいぶん遅れている」と語る。その要因は、国内のJava EEの採用率の低さにあり、寺田氏は危機感を感じているという。J2EE 1.3、1.4頃の印象で「Java EEは重い、扱いづらい」というイメージがあるとすれば、それはJava EE6にはあてはまらない。世界ではJava EE6が主流になりつつあり、ダウンロード数は4000万に達している。寺田氏は「まだJava EE6を触ったことがない方は、ぜひ使ってみて欲しい」と呼びかけた。

 寺田氏がJava EE6について熱く語る背景には、その技術をベースにしたJava EE7の開発が進んでいることがある。Java EE6を未体験で、いきなりJava EE7を扱うのはハードルが高い。Java EE7でフォーカスされるのはクラウド、PaaSだ(図2)。サービス・プロビジョニング、QoS、伸縮性など、クラウドで必要になる技術が盛り込まれる。例えば伸縮性では、設定したしきい値によりCPUやメモリなどの過不足を検知し、システムが動的に自己調整することが可能になる。

 また、Java EEの参照実装 GlassFish v4.0では新たにPaaSコンソールと機能が追加され、画面を見ながらWebアプリケーションのデプロイやサービスリソース設定、ロードバランサーの設定などを行うことができるようになる。

 クラウドではマルチテナントも重要になってくるが、1つのアプリケーションを、テナントごとに分離されたインスタンスで提供する。インスタンスはメタデータによってテナントごとにカスタマイズされる。テナントIDは、アプリケーションとそのサブシステムで利用可能だ。

 JPA 2.1の仕様はまだ策定中だが、一部の機能を先行して試すことができるようになっている。Eclipse Link 2.3でデータベースレベルでのマルチテナントのアプリケーションを、@Multitenant、@TenantDiscriminatorColumという2つのアノテーションを使い、作ることができるようになっている。この2つのキーワードで検索すれば、すぐにサンプルのアプリケーションにたどり着くことができる。

 JPA 2.1のマルチテナントは、データベースのテーブル、インスタンスなどさまざまなレベルで実現される。例えば1つのテーブルの中でテナントを使い分ける場合には、@ Multitenant、@TenantDiscriminatorColumを指定すればいい。テナント切り替えは、XMLの設定ファイルにテナントを識別するvalueを記載することで、1つのテーブル内に入っているデータを使い分けることが可能になる。アプリケーションの実装コードに、テナントごとの設定を書く必要はない。

 Java EE7は2012年末頃にリリース予定となっている。Java EE6の技術がベースにあり、そこにクラウド対応に必要な機能を組み込む形で動いている。マルチテナント、オーケストレーション、伸縮性、JMS2.0。JMS2.0もJava EEの中で一番大きな変更になる。キャッシング、JSONもJava EE7には入ってくる。

 セッションで紹介されたJava SE8、Java EE6などの詳細は、4月4日、5日に六本木ヒルズで開催されるJavaOne Tokyo 2012で語られる。2日間で約50セッションが用意されており、ここまで充実したJavaのイベントは、他にはない。

 Java SE関連スペックリード、Java FXチーフアーキテクト、Java FXエクスペリエンス・アーキテクト、Javaパフォーマンスの達人など、多数の注目すべき外国人スピーカーが来日する。寺田氏は最後に「参加者の方々は、どのセッションを選択すべきか迷うと思うほど充実している」とアピールし、セッションを閉じた。

図2 Java EE7はクラウドにフォーカス
Java EE7はクラウドにフォーカス
お問い合わせ

日本オラクル株式会社

東京都港区北青山2-5-8

Oracle Technology Network (OTN) Java開発者向けページ

http://www.oracle.com/technetwork/jp/java/

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6442 2012/03/08 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング