オラクルによるサン買収から2年余りが経過し、昨年はオラクルの下ではじめてJava SEがリリースされました。現在、オラクルはコミュニティとともにJava SE 8、そしてエンタープライズ版のJava EE 7を鋭意開発中です。本稿では、年内にもリリースが噂されているJava EE 7の現状、およびオラクルのJava EE実装製品である「Oracle WebLogic Server 12c」について、説明会の内容をもとに紹介します。
Java EE 7の前に6への移行を! ─Javaエバンジェリスト 寺田氏
JavaOne 2012 TokyoではJava EE 7について「クラウドに特化したエディション」という紹介がなされましたが、そのJava EE 7にスムースに移行するためにも「現在の最新バージョンであるJava EE 6の重要性をしっかり認識してほしい。Java EE 6を使いこなせずして7への移行はあり得ない」と日本オラクル Fusion Middleware事業統括本部 ビジネス推進本部 シニアJavaエバンジェリスト 寺田佳央氏はJava EE 6の重要性を強調します。
Java EE 7はJava EE 6をベースとしており、Javaの標準的技術と呼ぶにふさわしい機能、Web開発に必要な技術がすべて含まれていることがその理由とのこと。「Java EE 6におけるアプリケーション開発では、Javaクラス数25%削減、コード行数50%削減、XML行数80%削減という試算もあり、開発生産性が大幅に向上している点も特徴。EclipseやNetBeansといったメジャーな開発環境はすべてJava EE 6に対応済み」(寺田氏)
寺田氏がJava EE 6の重要性を訴える背景には、国内におけるJava EEの普及率がStrutsの後塵を拝しているという状況があります。フレームワーク活用のシェアを見ると国内ではStrutsが33%、Java EEは24%、Springが23%でこれに続きます。一方、世界的なトレンドから見るとStrutsはバージョン1もバージョン2もシェアは1.3%というわずかな数字で、「世界のエンタープライズJava技術者はJava EEに回帰している」(寺田氏)といっても過言ではないでしょう。
「StrutsやSpringで独自に組み合わせた環境はすべてJava EE 6で置き換えることができる。それぞれの連携に苦労する必要もなく、ベンダロックインのリスクを大幅に軽減できる」(寺田氏)と、国内においてもエンタープライズJavaの標準としてJava EE 6を確立させたいオラクルの意向が伺えます。国内にはまだJ2EE 1.4時代のアプリケーション資産が数多く残っているとされていますが、Java EE 7がリリースされる前にこれらのレガシーをJava EE 6に移行すべきというのが同社の主張でもあります。
では、「幅広い業界やコミュニティとともに作り上げている」(寺田氏)というJava EE 7はどんな特徴をもっているのでしょうか。クラウドに特化したというJava EE 7のポイントは大きく3つ挙げることができます。
プロビジョニング
Elasticity(伸縮性)
マルチテナンシー
第一の特徴であるプロビジョニングについては「これまでの運用を一新させる」と寺田氏。これまでは運用管理者が事前にデータベースやメッセージサービス(MQ)、ディレクトリサービスなど必要となるリソースを事前に設定してから、アプリケーションを配備するというステップを踏む必要がありましたが、Java EE 7では運用管理者の手を煩わすことなく、プログラマやアプリケーションデプロイヤ(配備者)が直接、リソースの設定/管理を行うことができます。
具体的に言うと「アプリケーションサーバ上ではなく、プログラム上でプログラマがアノテーションを使い、必要なリソースを設定/管理できる。配備者であればXML設定ファイルを使えば同様のことが可能」(寺田氏)になります。これはほかのフレームワークでは実現されていない、Java EE 7だけの機能です。クラウド化が進めば必然的にマルチテナント化も進みますが、アノテーションでリソースをプロビジョニングできれば迅速な横展開が可能になるので、大きなメリットといえます。
2つめのElasticityは、まさにクラウドの特性を活かすためのものです。Java EE 7ではリソースの状況において動的にサービスを増減することが可能です。たとえば最初は1台のマシン上でサービスを開始した場合でも、あらかじめ「CPU使用率80%を超えたら割り当てを増やす」といったしきい値を設定しておくことで、自律的なサービスレベル管理が実現します。シングルノードからマルチノード、さらにはIaaSまでカバーする配備対象の広さもポイントです。
説明の最後にもう一度「Java EE 7を最大限活かすためにもJava EE 6への移行を!」と強く呼びかけた寺田氏。オラクルとしても今後、Java EE 6利用を促進するため、教育サービスやコンサルティングサービスに注力していくと表明しています。また、開発者向けにJava EEセミナーを8月23日に開催する予定で、Javaエバンジェリストとして世界的に有名なArun Gupta氏の基調講演、世界でも数名しかいない"Java Champion"の称号をもつBert Ertman氏の特別講演が行われます。
ミッションクリティカルなJava EEアプリケーションにはWebLogic Serverで
寺田氏につづいて、日本オラクル FusionMiddleware事業統括本部 ビジネス推進本部 担当シニアマネジャー 新井庸介氏よりOracle WebLogic Server 12cを活用したユーザの取り組みについて発表がありました。
J2EEと呼ばれていたエンタープライズJava環境がまだ数多く残る国内の開発事情ですが、冒頭に登場した伊藤氏は「開発生産性の面からも、国内のユーザも確実にJava EE 6、そしてWebLogic Server 12cという最新のJava環境に興味を示し始めている」と言います。とくにWebLogic Server 12cはオラクルにとってFusion Middlware製品群の中核を成すソリューションでもあり、同社のクラウド基盤をミドルウェアから強化する重要な位置づけにあります。Java EE 7がクラウドに力を入れたエディションとなれば、WebLogic Serverの重要性はますます強くなるといえます。
WebLogic Server 12cの特徴は大きく2つ挙げられます。まずはJava EE 6に完全に準拠していること。これにより企業向けアプリケーションが高い生産性で開発できることに加え、標準技術に準拠するというメリットを得られます。そして2つめは「ちゃんと動いて止まらない」(新井氏)ミッションクリティカルを担保すること。企業アプリケーションに求められている品質や信頼性をより向上させることが可能になります。ここではとくにWebLogic Server 12cの独自機能であるJRockitや無停止アプリケーション更新機能などがフォーカスされます。
新井氏はWebLogic Server 12cのミッションクリティカルな分野における国内外の事例をいくつか挙げましたが、ここではその一部を紹介します。
国内大手金融機関
開発生産性の向上に課題。WebLogic Server 12cを導入し、Java EE 6で開発、コード量の大幅削減などに効果
これらを見るとわかるように、WebLogic Server 12c導入のメリットは「開発生産性の向上」「迅速な障害解決」「運用停止の最小化」などになります。こういったメリットをレガシーのJavaアプリケーションサーバで得ることはほとんど無理でしょう。
Java EE 6と同様、WebLogic Server 12cに関してもオラクルは教育サービスやコンサルティングサービスの提供を積極的に図っています。また開発者への情報発信を「WebLogic Channel」という専門情報サイトで行っており、勉強会やセミナー/カンファレンスなども告知しています。さらに8月2日はユーザ企業やパートナー企業のWebLogic Server 12cへの取り組みを紹介する「Oracle WebLogic Server 12c Forum」がオラクル青山センターで開催される予定です。
4月に開催されたJavaOne Tokyoはほとんどのセッションが満席で、国内開発者のJavaへの関心の強さはたしかに内外に印象づけられました。その一方で、多くの開発者がいまだレガシーの中で生産性や品質の劣るアプリケーションを作り続けている現状があります。Java EE 7リリースまでに国内の開発者、そして企業の目を最新のJavaに向けさせる、それがJavaの著作権保持者でもあるオラクルの重要な役割だといえるでしょう。