ページの先頭行へ戻る
Interstage Studio V12.0.0 ユーザーズガイド
FUJITSU Software

3.1.1 EJBとは

EJBは、多階層(3階層)の分散オブジェクト指向に基づいたJavaのためのサーバコンポーネントモデルです。サーバのアプリケーションとして必要なコンポーネントのライフサイクル管理、トランザクション管理などの低レベルのインタフェースを隠蔽し、ビジネスロジックの処理を記述するだけで、より抽象度の高いサーバコンポーネントを作成するためのフレームワークです。

EJBでは、サーバのアプリケーションに必要なライフサイクルなどの各種の管理処理をコンテナ(container)と呼ばれるサーバコンポーネントの入れ物で実現します。コンテナが煩雑な処理を肩代わりします。また、EJBではコンテナ上で動作するサーバコンポーネントをEnterprise Beanと呼びます。

コンテナにEnterprise Beanをインストールし、実行可能な状態にすることを配備と呼びます。EJBでは配備という方式の導入により、ある特定のコンテナに依存しないポータビリティのあるサーバコンポーネントの作成を可能にしています。

EJBでは、以下の機能を規定しています。

Enterprise Beanの種類

Enterprise Beanには、大きく分けて、以下の種類があります。

以下に分類とそれぞれの用途について説明します。

注意

EJB2.1までの仕様では、データベースシステムなどのデータを扱うためのEntity Beanがあります。しかしEJB 3.0からはEntity Beanの代わりにJava Persistence APIを使うようになっているため、本マニュアルではEntity Beanの説明は省略します。

Session Bean

Session Beanとは、アプリケーションの業務ロジック(ビジネスロジック)をサーバに配置したもので、複数のクライアントに対して、ネットワークを介してサービスを提供するものです。
Session Beanでは、他のEnterprise Beanを呼び出したり、トランザクションや処理の流れを制御したり、独自の処理を実装することで業務ロジックを実行します。

Session Beanには、以下の2種類があります。

例えば、単なる四則演算を行うような処理をSession Beanで実現するような場合にはStatelessにすべきです。保持しなければならない情報がないので、Statelessにしてサーバの負荷を減らします。一方、オンラインショッピングサイトのショッピングカートをSession Beanで実現する場合、これはStatefulにすべきです。ユーザが買い物かごにどの商品を入れたかを複数のページに渡って保持する必要があるからです。

Message-driven Bean

Message-driven Beanとは、クライアントから送信されたメッセージに対して非同期に処理を行うための基盤を提供するものです。
Message-driven BeanからSession Beanなどを呼び出すことで、その機能を非同期に実行できます。

Message-driven Beanは、JMSメッセージまたはリソースアダプタのメッセージを受信して処理します。JMSメッセージの場合は、メッセージの処理の方法で以下の2種類に分類できます。

3.1.1.1 Java EE 6からの変更点

Java EE 7に含まれるEJB仕様はEJB 3.2です。

ポイント

EJB 3.2の詳細情報については、以下の規約を参照してください。

  • JSR 345: Enterprise JavaBeans 3.2