EJB 3.0 TrailBlazer: ハイキング 2: サービスオブジェクトの管理
 

サービスオブジェクト管理は、どのアプリケーションサーバにも備わっているコアサービスです。アプリケーションが管理する一般のJavaオブジェクトと比べ、コンテナの管理するサービスオブジェクトには以下のようないくつかの重要な優位性があります。

  • 疎結合:クライアントアプリケーションが直接サービスオブジェクトをインスタンス化することは無いので、クライアントは実装クラスの名前を知る必要はありません。必要なのはサービスインタフェースのみで、インタフェース名または事前に定めた文字列で、サーバからサービスのスタブオブジェクトをルックアップするだけです。こうすることで、クライアントのコードを変更せずにサービス実装を複数提供することができるのです。
  • ネットワーク非依存:サービスは、HTTP、TCP、メッセージキューなど、ほとんどあらゆるネットワークトランスポート経由で利用できます。また、サービスは複数台構成のクラスタ環境でも利用できます。クライアントはサービスのスタブオブジェクトをルックアップし、ローカルインタフェースと同じようにサービスインタフェースのメソッドを呼ぶだけです。メソッドの呼び出しは、適切なネットワークトランスポートを経由して(あるいは、クライアントとサーバが同じJVMにある場合はローカル参照を経由して)自動的に適切なサーバにルーティングされます。
  • リソース・プール:サービスオブジェクトを管理することで、サーバは重要なリソースを集中管理することができます。クライアントアプリケーションは、オブジェクトを破棄したりコネクションをクローズしたりすることに煩わされることはありません。サーバはサービスオブジェクトを作成してプーリングし、余分なオブジェクト生成を軽減します。

EJB 3.0では、管理対象のサービスオブジェクトはすべて、POJO(たとえばセッションBean)または非常に軽量なコンポーネント(たとえばメッセージ駆動型Bean)です。EJB 3.0の標準コンポーネントに加え、JBoss EJB 3.0拡張機能ではさらにJMXのPOJOやメッセージ駆動型POJOをサポートしており、JMXバスやメッセージチャネルを介してPOJOを起動できる仕組みを提供しています。管理対象のサービスオブジェクトの設定は、簡単なアノテーションで宣言します。このハイキングのトレイルでは、JBossアプリケーションサーバにおけるコンテナ管理サービスオブジェクトの開発方法について学習します。最後のトレイルでは、依存性注入のデザインパターンについても議論し、サービスオブジェクトを自動的にアプリケーションで利用できるようにする方法を学びます。


ステートレスセッションBean

このトレイルでは、EJB 3.0のステートレスセッションBeanについて学習します。ステートレスセッションBeanは、ミドルウェアとフロントエンドのサーブレットとの間、またはリッチユーザインタフェースクライアントとの間のプログラミングインタフェースの構築に利用します。

ステートフルセッションBean

このトレイルでは、EJB 3.0のステートフルセッションBeanについて議論します。ステートフルセッションBeanは特定のクライアントセッション(たとえばHTTPセッション)に結び付けられたフィールド変数を持ちます。ステートフルセッションBeanはセッションをベースとしたWebアプリケーション(たとえばショッピングカート)に最適です。

セッションBeanのライフサイクル

このトレイルでは、EJB 3.0コンテナがどのようにセッションBeanのインスタンスを生成、起動、破棄するかについて議論します。セッションBeanのライフサイクルにおける振る舞いを自動化するコールバックメソッドについても扱います。

JMXサービスオブジェクト

JBossアプリケーションサーバは内部的にはJMX(Java Management eXtension)サーバです。すべてのJBossサービスは、JMXサーバに登録されたMBeanとして動作します。このトレイルではJBoss EJB 3.0拡張機能を使用して、MBeanサービスを迅速に開発する方法についても扱います。

メッセージ駆動型Bean

このトレイルでは、EJB 3.0のメッセージ駆動型Bean(MDB)について議論します。メッセージ駆動型BeanはエンタープライズアプリケーションにおいてJMSの終端として機能します。

メッセージ駆動型POJO

このトレイルでは、JBossのメッセージ駆動型POJOについて紹介します。メッセージ駆動型POJOを使用して終端間で型付けされたメッセージングアプリケーションを構築することができます。

サービスオブジェクトの注入

このトレイルでは、どのようにサービスオブジェクトを結合してアプリケーションを構築するかについて議論します。依存性注入のデザインパターンはJNDIのルックアップに比べ、はるかに容易な結合が可能で、アプリケーション構造をより柔軟にします。EJB 3.0では、アノテーションを用いた依存性注入を強力にサポートします。

©2002-2005 JBoss Inc. All rights reserved. JBoss is a registered trademark and servicemark of JBoss, Inc.
Privacy Policy