JBoss EJB 3.0と拡張機能

  エンタープライズJavaは難しくない
はじめに

J2EEはデータベース中心のエンタープライズのミドルウェアアプリケーションを開発するのに必要な機能と拡張性を持つことで有名です。そのJ2EEのキーとなるコンポーネントがEJBです。

しかし、現在のJ2EE 1.4とEJB 2.1の仕様はとても複雑なものです。Java開発の初心者が実際にシステムを構築できるようになるためには、EJBコンポーネントモデル、(EJBの) API、XMLベースの配置記述子、そしてたくさんのデザインパターンを習得する必要があります。このプログラミングモデルの複雑さがJ2EEの採用を妨げる大きな要因となっているのです。また、未熟な開発者が誤ったJ2EEの使い方をすると、低品質のソフトウェアを生んでしまうのです。

この複雑さの問題を解消するために、EJB 3.0のエキスパート達は次世代のエンタープライズJavaミドルウェアアプリケーションの新たなプログラミングモデルを開発したのです。新しい(プログラミング)モデルでは、HibernateやXDocletといった、すでに成功を収めているオープンソースプロジェクトの知識と経験が生かされています。EJB3のプログラミングモデルは理解しやすいと同時に、既存のJ2EEの能力を継承しています。

JBossはEJB 3.0の重要な駆動力です。JBossはEJB 3.0の仕様を実装しているだけでなく、EJB 3.0プログラミングモデルをJEMSの他のプロダクトでも一般的に使用できるようにしています。

アノテーション

アノテーションはJDK 1.5で実装されたJavaの新たな機能です。アノテーションを使うことによって、コード属性(メタデータ)や設定オプションをソースコードで直接Javaクラス、メソッド、フィールドに結びつけることができるようになりました。たとえばJavaクラスにアノテーションを記述して、リモート起動が可能かどうかを指定することができます。

アノテーションは、J2EE 1.4でよく使われていたtagインタフェースに代わるもので、肥大化して冗長なXML配置記述子がほとんど不要になります。

POJOサービス

EJB 3.0プログラミングモデルでは、もはや既存のコンポーネントモデル(たとえば、ホームインタフェースと配備記述子)は必要ありません。新しいEJBとサービスオブジェクトはコンテナが管理する単なるPOJOです。これらのPOJOに対して任意の継承構造を作成することが可能です。

コンポーネントモデルではないのに、どうしてコンテナはPOJOを管理できるのでしょうか?EJB 3.0ではPOJOクラスとコンテナの間の相互関係は、Javaのアノテーションによって宣言的に指定されるのです。

サンプルアプリケーション

このTrailBlazerで使用するサンプルアプリケーションは投資計算プログラムです。投資の嗜好と資金成長率に応じて、投資期間での最終金額を計算します。サンプルアプリケーションはこのトレイル上にありますので、トレイルのページから直接試してみることができます。

EJB 3.0プログラミングモデルの様々なテクノロジをどのように利用するかを学ぶために、途中で何度か計算プログラムを改変します。ソースコードはすべてトレイルを進む中で利用可能です。

参考文献

JBoss EJB 3.0と拡張機能の詳細とチュートリアルがJBoss Webサイトに用意されています。

まとめ

このトレイルでは、EJB 3.0プログラミングモデルの基本的なコンセプトを学習しました。では次に、JBoss EJBアプリケーションサーバのインストール方法と使用方法について議論しましょう。