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


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


EJBの必要性は多階層モデル実現にある

 Webアプリケーションを構築する場合にはEJBが必須だというわけではない。たとえば、Fig.2に示した例であれば、JSPやサーブレットが直接データベースに接続してデータを操作すれば、EJBが不要だ(Fig.3)。Fig.3のように、ビジネスロジック層がなく2層の構造になっているものは、特に「2階層モデル」と呼ぶ。

fig03.gif

Fig.3■2階層モデルの構築例


 EJBを使って3階層、またはEJBを使わずに2階層としても、構築したアプリケーションはどちらでも正しく動作する。そう考えると、EJBが必要ないと思えるだろう。

 しかしスケーラビリティの面を考慮すれば、EJBを利用して3階層としたほうがよいシステムの基準がある。それは階層を分けておけば組み合わせが自在となる理由からだ。

 たとえば開発したWebアプリケーションを、Webアプリケーションではなく、スタンドアロンのアプリケーションとしても使えるようにしたいとしよう。この場合、3階層にしておけばスタンドアロンのユーザーインタフェースを作り、プレゼンテーション層を差し替えるだけですむ。また、WebアプリケーションではなくWebサービスとして使えるようにしたい場合でも、Webサービスのインタフェースをプレゼンテーション層として作り込み、差し替えればよい。つまり、プレゼンテーション層を差し替えることによって、アプリケーションをさまざまな方法で利用できるようになるのだ(Fig.4)。ここがEJB利用の肝だ。

fig04.gif

Fig.4■EJBではプレゼンテーション層の差し替えが可能


 この「差し替えられる」という点は、プレゼンテーション層だけではない。ビジネスロジック層やデータストア層も同様に差し替えが可能だ。たとえば、ビジネスロジック層やデータストア層を複数のサーバに分散することさえ可能なのだ(Fig.5)。

fig05.gif

Fig.5■各層をネットワークを介して複数のサーバに分散可能


 各層に分けるということは、開発に多数の開発者が携わる際、各開発者の開発担当部分が分離され、開発はもちろん、コンポーネント単位でのテストが容易になるというメリットもある。

 そのほかEJBの重要なメリットとしては、「複数のクライアントがEnterprise Beanを使い回すため、複数クライアントをサポートする場合にサーバ側のリソース消費を抑えることができる」という点だ。こちらは特に、EJBの仕組みに関わる話なので詳細を後述しよう。

EJBのメリットを活かすためには入念な設計が必要

 EJBの本格的な解説を始める前に、「メリットを活かすためには、しっかりとした設計が重要だ」という点に触れておきたい。EJBは最新の技術だから……、EJBは便利そうだからといった漠然とした理由で導入すると、うまく機能しないことが多い。

 すでに説明したように、EJBを使う場合には3階層モデルを採用するため、プログラムが明確に「ユーザーインタフェース層」と「ビジネスロジック層」として分かれている必要がある。そのため、プログラムのどのような処理をユーザーインタフェース層に入れ、どのような処理をビジネスロジック層に入れるべきなのかを決めておく必要があるのだ。つまりWebアプリケーションに限っていえば、「どこをJSPやサーブレットで構築し、どこをEJBにするか」ということだ。

 EJBを利用する場合、ユーザーインタフェースに関わる部分以外は、すべてビジネスロジック層に入れ、ユーザーインタフェースに関わる部分だけをユーザーインタフェース層に入れるのが基本となる。たとえばWebアプリケーションの場合、HTMLに関わる部分はプレゼンテーション層に入れるが、そうではない部分は、ビジネスロジック層に入れるようにすればよい。

 Fig.1を見ると、EJBはデータベースに関わる処理のみを担当するようにも見えるが、必ずしもそういうわけではない。たとえば単純な例を挙げよう。消費税を計算するといった処理では、ユーザーインタフェース層ではなくビジネスロジック層に入れるようにする。そのようにしておけば、後で消費税率が変わった場合、ユーザーインタフェース層内で個々のユーザーインタフェースプログラムを修正することなく、ビジネスロジック層だけの修正で済むわけだ。

 EJB(J2EE)環境を利用する場合の設計については、「Java BluePrints」に詳しく書かれている。EJBでの開発を始める前に、このJava BluePrintsにひと通り目を通しておいたほうがよいだろう。

 それでは、EJBコンテナの部分についてもう少し詳しく見ていくことにしよう。

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

[大澤文孝,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.