【前編】Java EE、そしてWebLogic Serverがこれから向かう先は?

20世紀末に誕生して以来、世界中の企業システムの構築/運用を支え続けてきた「Java EE」と「WebLogic Server」。トレンドの移り変わりが激しいIT(情報技術)の世界において、両者が積み重ねてきた実績は特筆に値するだろう。これらの技術/製品を傘下に収めたオラクルは今、コミュニティやユーザーらとともに、両者のさらなる発展/成熟に向けて大きく歩を進めようとしているところだ。2011年9月6日にオラクル青山センターで開催された「WebLogic & Java EE活用セミナー」では、オラクルのエバンジェリストらにより、Java EEとWebLogic Serverの進化の方向性が示された(編集部)。

WebLogic Suiteがクラウド/モバイル時代の高可用システムを動かす

日本オラクル Fusion Middleware 事業統括本部の新井庸介氏 多くのJava開発者、アプリケーション・サーバ運用者が参加して開催された「WebLogic & Java EE活用セミナー」で初めに壇上に上ったのは、日本オラクル Fusion Middleware事業統括本部の新井庸介氏だ。氏は「Oracle WebLogic Serverの製品戦略と今後の方向性」と題したセッションの冒頭、「WebLogic Serverが今後目指す方向性は、ミッション・クリティカル性のさらなる追求だ」と宣言した。

 現在、WebLogic Serverには、単一サーバ構成向けの「Standard Edition」、複数サーバ構成向けの「Enterprise Edition」、そしてミッション・クリティカル・システム向けの「WebLogic Suite」の3エディションが用意されている。このうち、最上位となるWebLogic Suiteでは、クラスタ構成に対応したWebLogic Serverのほかに、稼働情報記録/監視機能の「JRockit Flight Recorder」、「同Mission Control」、インメモリ・データ・グリッドの「Oracle Coherence」、高いリアルタイム性能を備えるJava仮想マシン「JRockit Real Time」、そして統合運用管理ツールの「Oracle Enterprise Manager」が提供される。極めて高い可用性、安定性、パフォーマンスが求められるシステムの実現基盤となるもので、まさにミッション・クリティカル・システムのために存在するミドルウェア・スイートである。

 新井氏は、こうしたエディション構成を持つWebLogic Serverがこれから進む方向性を決める技術トレンドとして、「クラウド・コンピューティング」と「モバイル・デバイス」の2つを挙げる。この2つの技術トレンドは、いずれもITの利用形態を従来から大きく変えるものとして注目されている。具体的には、クラウド・コンピューティングの台頭により、ITのオンデマンド利用のニーズが急増しつつある。また、さまざまなモバイル・デバイスの普及は、社会インフラとしてのITサービスへのニーズを一層喚起するだろう。それらのニーズに応えるべく、Javaアプリケーション・サーバには、「一層の拡張性と信頼性、高速性、そして大量トランザクションの処理性能」が求められると新井氏は主張する。

 「それらのニーズに対応するために、これまでは製品が持つ基本機能に、ユーザーが独自に編み出した"匠の技"を組み合わせていた。今後は、WebLogic Suiteとして提供される高度な機能に匠の技を組み合わせることで、より高度で付加価値の高いシステムを構築できるよう機能強化を図っていく」(新井氏)

 また新井氏は、WebLogic Serverの発展の歴史を振り返りつつ、最新のWebLogic Suite 11gにおける強化点として「開発生産性の向上」、「運用管理性の強化」、「Oracle Databaseとの親和性向上」、「拡張性の強化」の4つを挙げた。


WebLogic Serverの歴史

 このうち、開発生産性の向上に関しては、Java EE 5の完全サポートと、主要なJava EE 6標準への対応が主となる。また、Eclipseなどの統合開発環境で利用可能な「FastSwap」機能を使えば、コーディングを行った後、ビルドやデプロイを行うことなく、即座にアプリケーションのテストが行える。

 運用管理性の強化で鍵となるのは、稼働情報記録機能のJRockit Flight Recorderである。アプリケーション・サーバに負荷をかけることなく詳細な稼働情報を記録できる同機能は、アプリケーション・サーバの運用管理や障害対応のスタイルを大きく変える可能性を秘めている。

 Oracle Databaseとの親和性向上においては、Oracle Real Application Clusters(RAC)との連携機能である「Active GridLink for RAC」が大きな役割を果たす。同機能は、RACの各ノードの負荷に応じて動的にアプリケーション・サーバ側の負荷分散を行うというもので、「トランザクション・アフィニティ」と呼ばれる不要な分散トランザクション処理の抑制機能、RAC側の構成変更を直接WebLogic Server側に反映させる高速接続フェールオーバ機能などを提供する。これらにより、スループットの向上、リソース利用効率の向上、アプリケーションの安定稼働といったメリットが得られるという。

 さらに新井氏は、今後のアップデート・プランとして、2011年中のリリースが予定されている「WebLogic Server 10.3.6」と、2012年初めまでにリリースされる予定の「WebLogic Server 12.1.1」の概要を説明。WebLogic Server 10.3.6はミドルウェア・マシンである「Oracle Exalogic Elastic Cloud」に、WebLogic Server 12.1.1はJavaユーザーにフォーカスしたアップデートになるという。

 WebLogic Server 10.3.6で導入が予定されている「Oracle Virtual Assembly Builder」は、仮想環境の構築において煩雑になりがちな多階層の構成作業を自動化する機能だ。カタログ化された仮想システムの構成要素からユーザーが適宜選択していくことで、構成の組み立てからデプロイまでが自動化され、運用を大幅に省力化できるという。また、WebLogic Server 10.3.6ではパフォーマンス向上の観点から、InfiniBandに最適化された「Socket Direct Protocol」への対応が行われる。

 そして、次のメジャー・リリースとなるWebLogic Server 12.1.1では、Java EE 6をフルサポートする。開発効率の向上やWebアプリケーション向けの軽量化などが図られるJava EE 6に対応することで、WebLogic Serverの適用範囲がさらに広がることが期待される。

WebLogic Server 12

 最後に新井氏は、「高い要件を求められるシステム案件では、ぜひWebLogic Suiteをうまく活用してリスクを最小化してほしい」と呼びかけ、ミッション・クリティカル・システムにおけるWebLogic Serverのさらなる活用を訴えた。

Java EE開発は「6」で超簡単になる!

 続くセッション「Java EE 6重点解説─そのアーキテクチャと新仕様」では、日本オラクル Fusion Middleware事業統括本部 シニアJavaエバンジェリストの寺田佳央氏が、最新のJava標準の概況と、その活用方法を紹介した。

日本オラクル Fusion Middleware 事業統括本部 シニアJavaエバンジェリストの 寺田佳央氏 セッションの冒頭、寺田氏は参加者にこう問いかけた――「Java EEはまだ難しいと思っていませんか?」。確かに、2000年代半ばから、EJBに代表されるJava EE技術に敷居の高さを感じた開発者が、Webアプリケーション開発フレームワークの「Struts」や「Spring Framework」などに流れる動きが見られる。寺田氏は、そうした現実を認めつつも、「Java EEが"今"も、それらのフレームワークと比べて難しいというのは誤解だ」と述べたうえで、「開発効率が悪い」、「テストが大変」、「全部の機能は要らない」、「パッケージングが面倒」、「XML設定地獄」、「重いコンテナ」といった具合に、開発者がJava EEに対して抱くイメージ(=誤解)を順に挙げた。

 「確かに、そうしたイメージが間違いではない時代もあった。だが、それもJ2EE 1.4までの話だ。Java EE 5では、方向性が"かんたん開発"へとシフトし、それらの問題の解消が図られている。最新のJava EE 6はその集大成と言えるもので、"かんたん開発"がだれでも手軽に使えるレベルにまで進化している。すでに2009年12月に正式リリースされており、本番環境への適用も可能だ」(寺田氏)

Java EE開発

 この「開発生産性の向上」を目指して仕様が策定されたJava EE 6のポイントとして、寺田氏は「拡張性」、「プロファイルの提供」、「仕様の削減」、「かんたん開発」の4つを挙げる。

 このうち拡張性に関しては、Java EE以外のフレームワークの組み込みが容易になった。従来、他のフレームワークを組み込む際にはweb.xmlで複雑な指定を行う必要があったが、Java EE 6ではフレームワークごとに設定を書き、web.xmlの側では依存関係や読み込み順などを指定するだけでよい。これにより、他のフレームワークを組み込んで使う場合のメンテナンスが、より効率的に行えるようになっている。

 また、「Java EEのフル機能は必要ない」という開発者のニーズに応えるべく、Java EE 6では新たに「Webプロファイル」が用意された。これは、Web開発に特化した機能だけをJava EEのサブセットとして提供するものだ。これにより、従来よりもシンプルなライブラリ/実行環境を用いてWebアプリケーションの開発が行えるようになっている。

 さらに寺田氏は、「開発効率が悪い」というJava EEへのネガティブ・イメージに対して、「JavaServer Faces(JSF) 2.0」を例にとりながら、実際にどれだけ開発効率が向上しているのかを説明した。

 JSF 2.0の利点は、豊富に用意されたビジュアル・コンポーネントをXHTMLのタグによって呼び出すだけで、リッチなユーザー・インタフェース(UI)を実現できる点にある。従来のJSF 1.2では、Java Server Pages(JSP)でコーディングを行い、それをコンパイルしたうえで動作確認する必要があった。だが、JSF 2.0では「Facelet」と呼ばれるXHTMLタグを書くだけで、容易にコンポーネントを利用できるようになっている。

 そのほか、EJBコンポーネントの単体テストを容易にする仕組みとして、EJB 3.1から「組み込み可能EJBコンテナ」が追加された。このコンテナを使うことにより、わざわざアプリケーション・サーバ上にデプロイすることなく、Java SE環境でEJBコンテナを使った単体テストが行えるようになっている。

 加えて寺田氏は、「コンテナが重い」というイメージに対しては、「実際にアプリケーション・サーバが重かったのは、Java EE 5までだ」と反論。Java EE 6のサブセットであるWebプロファイルを利用した場合、アプリケーション・サーバの起動時間は「Tomcatなどの軽量なアプリケーション・サーバとほとんど変わらない」(寺田氏)という。そのうえで寺田氏は、「そもそもWebアプリケーションの開発は、Tomcatで事足りているのだろうか?」と疑問を呈した。

 確かに寺田氏が指摘するとおり、TomcatがサポートするJava Servlet、JSP、Expression Languageだけでは機能が足りず、多くの場合、Strutsなどのフレームワークを追加してWebアプリケーションを開発しているのが実情である。そうした独自の組み合わせで構築したWebアプリケーションで起こりがちな事態が、フレームワークのアップデートに追随できずに起きる陳腐化だ。寺田氏はその現実を指摘し、「Java EE 6が登場した今、そうした無謀なことはやめるべきだ」と訴える。

 「Java EE 6のWebプロファイルを使えば、Java EEの標準技術だけを使い、軽量な環境でWebアプリケーション開発が行えるようになる。Java EE 6にフル対応するWebLogic Serverの次期バージョンであれば、ほかにフレームワークなどを追加することなく、それだけでWebアプリケーションの稼働環境として利用できる」(寺田氏)

JavaEE WebProfileバージョン

 稼働環境がサポートする標準技術だけで事足りるのなら、独自の拡張などによってリスクを追う必要もなくなる。寺田氏は、「Java EE 6は、すでに実案件で利用可能な技術だ」とし、Java EE 6による"かんたん開発"の世界へと参加者を誘った。

JRockit Flight Recorder/Mission Controlで障害対応が変わる!

日本オラクル Fusion Middleware 事業統括本部の智野潤子氏 寺田氏に続いては、日本オラクル Fusion Middleware事業統括本部の智野潤子氏が登壇。「Oracle WebLogic Server 11gシステム開発の勘所─これであなたもWebLogicエキスパート!」と題したセッションの中で、WebLogic Server上で開発を行う際に開発者が積極的に活用すべきものとして、開発効率向上のための各種機能を紹介した。その中で、智野氏が多くの時間を割いて説明したのが、JRockit Flight RecorderとJRockit Mission Controlを用いたアプリケーション・プロファイリングの手法である。

 前述したように、JRockit Flight Recorder(JFR)は、Javaアプリケーションの稼働情報を常時、記録することを可能にする機能だ。これにより、システムに何らかのトラブルが生じた際の原因究明を確実に行えるようにすることで、障害対応の手間を軽減し、障害発生から解決に至るサイクルを大幅に短縮できるのである。

JRockit Flight Recorder(JFR)

 このJFRの利用例として、智野氏は「障害解析」、「SLA違反の迅速な検知と対応」、「プロファイラとしての利用」を挙げる。

 例えば、プロファイラとして利用する場合、「レスポンスが遅いページがあるが、原因がわからない」、「リクエストの多重度を増やすとスループットが低下する」といった問題に対して、「アプリケーションのパフォーマンス情報を取得してボトルネックがどこにあるのかを特定する」といった使い方ができる。また、JRockit用の稼働情報監視機能であるJRockit Mission Control(JMC)を使えば、JFRによる記録の指示や、JFRが出力したダンプ・ファイルの分析などを簡単な操作で行える。

 JFRには、どの程度のボリュームで記録を行うかについて、いくつかのテンプレートが用意されている。具体的には、基本的なイベントの情報だけを記録する「リアル・タイム」のほか、より詳細なヒープ情報まで含む「通常のプロファイリング」、スタック・トレースも含む「例外を含むプロファイリング」、デッドロックの検出まで行う「ロックを含むプロファイリング」の4種類があり、これらは障害解析に必要なログの量とJFRの稼働に伴うオーバーヘッドのトレードオフに応じて使い分けられるようになっている。

 なお、JMCはEclipseのプラグインとしても提供されており、プロファイリングの結果から、問題が疑われるソース・コードの該当個所に直接ジャンプすることが可能だ。セッションの中では、実際にEclipse上で動作するJMCを使ってアプリケーションでメモリ・リークが発生している個所を特定。ソース・コードの該当個所にジャンプして修正するというシナリオによるデモも披露された。

Oracle JRockit

 このように、JMCをEclipseと統合して使うことで、ログ取得から解析、デバッグといった一連の作業を単一のUIによって行えるようになる。智野氏は、「こうした環境を、アプリケーション開発の早い段階から利用することが、開発効率や成果物の品質を高めるうえで非常に効果的だ」と説き、講演を締めくくった。

関連記事:
本番環境で使える! システム障害への対応を迅速化する『JRockit Flight Recorder』の威力

*   *   *

 以上、今回は「WebLogic & Java EE活用セミナー」レポートの前編として、JavaとWebLogic Serverに関する3つのセッションの概要を紹介した。次回はセミナー終盤に実施されたパネル・ディスカッションのもようをレポートする。

後編に続く

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

コメントがありましたらお送りください。

送信
「WebLogic & Java EE活用セミナー」レポート
お問い合わせ Oracle Direct

Oracle Direct

0120-155-096 月~金 9:00~12:00/13:00~18:00(祝日及び年末年始休業日を除きます)

お問い合わせフォーム

お問い合わせフォーム

こんな時にはOracle Directへ 製品・導入に関するご相談 導入前の技術的なご質問 ハードウエア構成のお見積り 移行支援サービス パフォーマンス診断サービス バージョンアップ無償支援

詳細はこちら

製品の購入・導入に関するご相談はこちら

Oracle Direct

0120-155-096

お問い合わせフォーム

こんな時にはOracle Directへ

製品・導入に関するご相談 導入前の技術的なご質問 ハードウエア構成のお見積り 移行支援サービス パフォーマンス診断サービス バージョンアップ無償支援

詳細はこちら