特集
2004/01/30 18:55:00 更新


特集:第1回 EJBの仕組みを知ろう (1/6)

Javaによるアプリケーションサーバ構築の際、JSP/サーブレットに対し、より高機能分散化させる手段として「EJB」と呼ばれる仕組みがある。この特集では、このEJBによるアプリケーション構築をすべく基礎から解説していく。

 「EJB」(Enterprise JavaBeans)とは、プログラムをコンポーネント化し、効率良く大規模なアプリケーションを構築するためのアーキテクチャのことだ。この特集「JBossで学ぶEJB入門」では、全3回でEJBのオープンソース実装であるアプリケーションサーバソフト「JBoss」を取り上げ、EJBを利用した具体的なアプリケーション構築方法を解説する。

見 出 し 一 覧
1. EJBとは何なのか
2. EJBの必要性は多階層モデル実現にある
3. EJBのメリットを活かすためには入念な設計が必要
4. Enterprise Beanを管理するEJBコンテナの役目
5. Enterprise Beanを構成する3つの要素
6. Enterprise Beanインスタンス作成のためのホームオブジェクト
7. メソッド横取りをするためのEJBオブジェクト
8. EJBの持ち味「RMI-IIOP」によるネットワークを介した呼び出し
9. 要素配備のための配備記述子

EJBとは何なのか

 まず最初に、「EJBとは何なのか?」という基礎的なところから解説していこう。

 EJBとは、それほどかみ砕かず簡単に言えば「J2EEで定義されたエンタープライズ向けの機能を備えたBean管理のための仕組み」のことだ。J2EEでは、Fig.1のようにWebアプリケーション構築することを想定している。

fig01.gif

Fig.1■J2EEのWebアプリケーションアーキテクチャ


 Fig.1の詳細を見てほしい。J2EEのWebアプリケーションのアーキテクチャでは、全体が「プレゼンテーション層」、「ビジネスロジック層」、「データストア層」の3つに分かれる。このように3つの階層に分かれるアーキテクチャのことを「3階層モデル」と呼ぶ。この3階層モデルにおける、それぞれの意味は次の通りだ。

  • プレゼンテーション層

 ユーザーとの入出力を担当するユーザーインタフェース部のこと。Webアプリケーションの場合には、HTMLフォームを構成するJSPやサーブレットである。

  • ビジネスロジック層

 アプリケーション独自で処理を実行する部分のこと。たとえば、プレゼンテーション層(HTMLフォーム)から受け取ったデータを何らかの処理でデータベースに書き込む場合や、データベースから読み込んでプレゼンテーション層に引き渡すといった処理をする。J2EEでは、この部分をEJBが担う。

  • データストア層

 データを保存する部分を指す。多くの場合データベースだが、場合によってはファイル宛てということもあり得る。


永続的にデータを保存しないアプリケーションでは、データストア層が存在しない場合もある。たとえばHTMLフォームで2つの数字を入力させ、その和を返すだけといった単純なアプリケーションでは、ユーザーから入力された値しか利用しない。このため、データストア層は存在しないのだ。


アプリケーションによっては、ビジネスロジック層をさらに多層化し、4階層モデル、5階層モデル…、と多層モデルで構成したほうがよい場面もある。

 この特集での話の中心となるのは、ほかでもなくビジネスロジック層となるEJBの部分だ。EJBを利用して開発する場合、開発者はあらかじめ構築したEnterprise BeanをEJBコンテナに登録しておく。すると、EJBコンテナに登録したEnterprise BeanをJSPやサーブレットから呼び出して利用できるようになるのだ。詳細は後述するが、「Enterprise BeanとはEJBの規約に則った特別なBean」だと覚えておいてほしい。

 たとえば、データベースへデータを保存する掲示板のWebアプリケーションを構築する場合、掲示板のデータを保存するためのメソッドや掲示板のデータを読み取るためのメソッドを実装したEnterprise Beanを作り、それをEJBコンテナに登録し、JSPやサーブレットから呼び出して利用する形態となる(Fig.2)。

fig02.gif

Fig.2■EJBを使ったWebアプリケーションの構築例


      | 1 2 3 4 5 6 | 次のページ

[大澤文孝,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.