J2EE関連の最新トピックをわかりやすく解説
J2EE Watch [11]
米JBossは米Red Hatとマーケットシェア拡大を狙う
テンアートニ
野宗貴史/五十嵐孝明
2006/7/26
米Red Hat(以下Red Hat)による買収後、ますます活発な活動を見せている米JBoss(以下JBoss)が、ユーザーカンファレンス「JBoss World 2006」を米ラスベガスで開催した(先月6月12日〜16日までの4日間)。今回のカンファレンスでは、従来に比べてビジネスユーザーへ向けたセッションや、事例紹介のセッションが増えたことが目立った。
本稿では、JBoss World 2006に参加することによって知り得たJBossの最新動向やJava EE 5の現在、筆者が感じたことなどをレポートしよう。
「JBoss World 2006」の会場となったラスベガスをラスベガスタワーから見下ろす |
■Java EEのスペックに準拠したJBoss 5
Java EE 5のセッションは、米サン・マイクロシステムズの Bill Shannon 氏とAngela Caidedo 氏 よって行われた。立ち見が出るほど盛況であり、注目度の高いセッションであった。見所はJSFを取り入れた点やEJBの大幅な変更である。
Java EE 5はJava機能セットの1つで、エンタープライズに必要な機能をまとめたものの最新版だ。Java SE 5、JSP 2.1、Servlet 2.5、JSF 1.2、JSTL EJB 3.0(Persistence API)などを含み、アノテーションやAJAXのサポートがある。JCP(*1)で、Java Platform, Enterprise Edition 5(JSR 244)として正式承認されたが、本バージョンからJ2EEという呼び方は辞めて、Java EE 5と略称される。
本セッションでは、Java EE 5とそれに対応した実装製品が紹介された。Project Glassfish、JBoss 5.0等がそれである。各製品の概要は以下の通りだ。
・Project Glassfish
Project GlassFishは、サン・マイクロシステムズ主導のオープンソースのJava EE 5サーバであり、ライセンス体系はCDDL(Common Development and Distribution License)だ。そして「Java System Application Server Platform Edition」のオープンソース版として今年のJavaOneで公開され、O/RマッピングはOracleのTopLinkをベースにしている。
・JBoss 5.x
JBossが開発するオープンソースのJava EE 5サーバであり、ライセンス体系はLGPL(Lesser General Public License)だ。カーネルがMicrokernelからPOJO Micro container(マイクロコンテナ)へ(*2)変更となった。マイクロコンテナとは、軽量DIコンテナで、JMXと同様の管理機能をPOJOに対しても適用可能とするものであり、JBoss AOP(*3)が組み込まれる。POJOのデプロイや依存関係、メタデータの管理を担当し、JBoss AOPによってPOJOの管理インターフェイスやメタデータを生成することでユーザーに対する利便性を提供する。
*1:JCP Java Community Processの略で、利害関係者がJavaプラットフォームの将来のバージョンや機能に関与する定義に関与することを許した標準化プロセス。JCPプロセスはJava Specification Requests (JSR)の利用に関与し、それはJavaプラットフォームに追加される提案された仕様や技術を記述した公式文書。*2:POJO Plain Old Java Objectの略で、setter/getterから構成される簡潔なオブジェクト。Serializable以外は通常は継承せず、またインターフェイスの実装もないクラス。
*3:AOP Aspect Oriented Programming の略で、アスペクト指向言語とも呼ばれる。横断的関心事と呼ばれるものを通常のビジネスロジックから分離するために用いられる。
■アプリケーションフレームワークJBoss Seamが注目を集める
JBoss Seamのセッションも人気を集め、立ち見が出るほどの盛況振りであった。本セッションの注目すべき点は、JSFとEJB 3.0というJava EE 5の目玉機能のシームレスな融合だ。
JBoss Seamは、Java EE 5のアプリケーションフレームワークである。スペックリーダーは、Hibernateの作者であるGavin King氏だ。MVCデザインパターンのモデルにEJB 3.0、ビューにはJSP、そしてコントローラにはJSFを使用する。EJB3は、ビジネスロジックとEIS層を、JSFはプレゼンテーション層を提供するが、Java EE 5ではこの両者を結びつける方法については規定していないので、これらをプログラミングモデルの中へシームレスに結合するものである。
基本的にアノテーションをベースにして構築されたPOJOで行い、EJB 3.0をJSFのマネージドビーンとして使用する。また、これまで一方向だった依存性注入(DI)を両方向で行いWeb Beans(JSR 299)として標準化した。
■大幅に簡素化が図られたEJB 3.0
筆者はEJB 3.0のハンズオンセッションに参加した。JBossのBill Burke氏が講師を務めていた。JavaOneにおいてEJB 3.0についての大きな発表があったことが影響してか、それほど人気はなかった。ハンズオンで特に強調していた内容は、EJB 3.0 はPOJO+ノテーションで以前よりはるかに使いやすく軽くなったということである。
EJB 2.1はインターフェイスが多すぎて大量のXMLを書く必要があるなどのさまざまな問題点があったが、それに対してEJB 3.0は多くの解決を提供した点が紹介された。
EJB 3.0は、今まで存在した問題を下記のように解決している。
- プログラムモデルを簡素にした
- Ease of Useに重点を置いた
- テスト駆動開発を容易にした
- 平均的な開発者にとってより簡単に扱えるものにした
- 開発基盤を強化した
そして、EJB 3.0の技術的な評価ポイントは下記の4点である。
- アノテーション対応
- 必要に応じてCallback メソッドを宣言することで、不要な空メソッドを書く必要がなくなり、イベント処理のメソッド名をわかりやすく任意に決められるようになった
- DI( = Dependency Injection)対応により、Beanクラスにおいて、以前はEJBコンテナをlookupしていたが、DIの指定を宣言するだけになった
- テスト駆動開発により、EJBコンテナなしでテスト可能になった
EJB 3.0でのDeployment Descriptorは、部分的にXML-DDをサポートするだけであり、まずはアノテーションから始めて、必要に応じてXMLでコンフィグレーションする。Interceptor機能が追加されることにより、EJBコンテナ内でビジネスメソッドが呼ばれるときに、例えば、そのメソッドが呼ばれる前後に、Interceptorのメソッドが呼ばれるようになる。例をあげるとメソッドの処理時間を計測する処理はビジネスロジックとは異なるので、この部分をInterceptorに外出しにすることができる。
■Red Hatとともにシェア拡大を狙うJBoss
今回のカンファレンスは、JBossがRed Hatの一部門となってから始めての指針発表でもあり、JBossのシェアが高い米国での注目は高かったようだ。では、今後JBossがRed Hat社とともにどう歩んでいくのか、その主な内容を紹介しよう。
まず、JBossのCEOのマーク・フルーリ氏は、Red Hatのシニアバイスプレジデントとなった。JBossがこれまで提供してきたサービスは継続され、WindowsのようなRed Hat以外のOS上での開発、サポートも行っていくという。加えて、Red Hatネットワークを利用し、オープンソース革命をリードする会社となるべく、エンドトゥエンドなオープンソースプラットフォームを提供し、JBoss製品の世界展開を加速していくのが狙いだ。
およそ800名の参加者を集めたJBossのCEOのマーク・フルーリ氏による基調講演 |
また、管理機能、モニタリング機能、関連製品のアップデート(年内提供予定)といった機能を提供する「JBoss ON」という管理ツールをRed Hat Network(Red Hatのシステム管理プラットフォーム)に統合する。
ところで、日本でJBossが多くは採用されていない大きな要因に、日本語のドキュメントがないことがあげられる。この問題もRed Hatが持つ国際化のスキームを活用することで、ドキュメントの国際化を行い、近いうちに日本語でのドキュメントも用意される予定だ。
このように、今までJBossが持っていた技術力、ソフトウエアとRed Hatのインフラ、国際化などが融合することにより、今までJBossのみでは実現できず、ユーザーからの要望が高かったさまざまな点が解決されることとなる。
■Java EE 5の将来を展望する
最後に、紹介してきた最新動向についてコメントをさせていただきたい。
Java EE 5の実装製品として、Project Glassfishは、サン・マイクロシステムズおよびJCPの仕様ということもあり、今後、この仕様にのっとった製品がエンタープライズ製品の主流になると思われる。また、JBoss、Glassfish、Geronimo、Shale、Spring, Seasarなどが軒並み「JSF」を採用もしくは利用するための手段を提供していることからも、今後のアプリケーションフレームワークはJSFが主流になると思われる。
JBoss 5.xについては、最近の流行に乗ってAOPの要素をカーネルにまで組み込み、軽量DIコンテナへと生まれ変わるため、非常に期待が高い。さらに、POJOによる管理も加わり、良い意味で簡略化され、開発者にとっても使い勝手の向上が期待できる。パフォーマンスはいまだ未知数だが、パフォーマンスしだいでは今後のシェア拡大も見込まれるだろう。
JBoss Seamは、Java EEの仕様に取り込まれる可能性が高く、今注目を集める技術である。また、現在のHibernateの広がりを考慮に入れると、JBoss Seamは今後大きく飛躍する可能性が高いと思われる。
EJB 3.0については、多くの開発者がこれまでのEJBへのネガティブな印象を引き継いでいるといえよう。EJB 3.0のスペックを見る限りは大幅に改善はされているが、実際に動作検証して評価する必要がある。また、その結果が良かったとしても、EJB 3.0での開発事例が増え、申し分ないなどのレポートが多数報告されない限り、ネガティブな印象を払拭するのは難しいというのが、現実ではあるまいか。
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|