第3回 EJBの正しい用い方
――JavaBeansとEJB、どちらを使えばよいのか――


JavaBeansにするのか、EJBにするのか

 さてJavaBeansでもEJBでも業務ロジックでは同じものが使えるわけですから、いまから作ろうとしている業務ロジックをJavaBeansで作成すればいいのか、あるいはEJBで作成すればいいのか、迷ってしまう皆さんも多いかと思います。しかしこれまでお話しした内容からJavaBeansとEJBの使い分けの基本的な方向性は見えてきます。それは例えば以下のようなことです。

(1)JavaBeansを採用した方がいいケースとは?

 JavaBeansで業務ロジックを作成した方がいい場合は、例えば業務ロジックに特定のミドルソフトへアクセスするAPIを入れて業務ロジックを記述したい場合や、すでに稼働済みの基幹システムと連動させる処理を記述したいような場合です。上記のようなJavaBeansは自分の会社やシステム内で、JavaBeansの内容をよく熟知した人がメンテナンスできる環境があります。また社内の標準化に合わせながら手順良くJavaBeansを確実に機能アップさせていくことができます。このケースでは、JavaBeansをただ動かしていればいいというわけでなく、きめこまやかに管理できる環境が整っているわけです。こういう状況には、すべてをローカル環境で解決できるJavaBeansを採用しても問題ありません。

(2)EJBを採用した方がいいケースとは?

 半面、EJBで業務ロジックを作成する場合がいいのは、開発済みのビーンを広く一般に流通させるとか、広範囲の環境に拡大展開したい場合です。一般とか広範囲というのは不特定多数のユーザーという意味だけではありません。たとえ同じ会社内であっても、多数のシステム環境が存在しそれを稼働させたり管理する人たちがたくさんいる場合も含まれます。1回だけ業務ロジックを作ってしまえば、必要に応じてどのAPサーバでも動くEJBの基本的な考え方を採用することは、システム管理やメンテナンスの面でメリットになります。また複数のEJBを組み合わせて1つにまとめ上げるような、理想的な使い方を目指すなら、必ずトランザクション管理が重要になります。この場合もEJBを採用するしか手がありません。

 またEJBを採用すると負荷分散やスケーラビリティのメリットを受けることができます。業務ロジックを共通部品と個別部品に分けて作成することで、特定の部品に処理負荷がかかってきたとき、その部品をほかの性能のいいコンピュータに配置移動させることができます。

図10 負荷のかかるEJBを別ホストに配置するスケーラビリティ

 最初はサーブレットと同じホストコンピュータにEJBを導入し、負荷がかかってきたときだけ目的のEJBを別のAPサーバに移動させるわけです。ネットワークのやりとりを意識せず行えるのはEJBしかないのでスケーラビリティの観点で極めて有効です。


では実際にどうするか

 いろいろと解説しましたが多くのユーザーの実績では、最初は業務ロジックをJavaBeansで作成しておき、必要に応じてEJBに変更する場合が多いことが分かります。最初から難しくJavaBeansにするかEJBにするか悩むより、とにかく最初に業務ロジックをJavaBeansで部品化する。この観点は、まず一番重要です。そして段階を経て、業務の変化やアクセス増加に合わせて、サーブレットからアクセスしていたJavaBeansを、次のステップとしてEJBに変更することができます。もちろん次のステップが考えられるなら、最初から部品はすべてEJBで作成しておくこともできます。この発想で最初からEJBで取り組むユーザーも多くなってきています。JavaBeansを採用するか、あるいはEJBを採用するか、いろいろな考え方がありますが、もし皆さんが最初にJavaBeansを採用したとしても、ぜひいままで解説した考慮点を頭に入れてJavaBeansを作ってみてください。そうすれば次のステップで、業務ロジックをリモート環境で動かしたくなったとき、JavaBeansをEJBに改造する作業がラクになるはずです。

 こういう将来の拡張を考えたプログラムのデザインをしておくことが、オープンで拡張性の高いサーバサイドJavaの世界では、極めて重要であることをぜひ覚えておいてください。 

5/5  

 INDEX

第3回 EJBの正しい用い方
  今回の内容の目的  
  JavaBeansとEJBのメリットとデメリットを知る
EJBがJavaBeansのデメリットを改善する
EJBは業務処理をサービスする窓口でもある
  EJBを流通するという考え方
業務処理は必ず失敗なく実行されないといけない
  どこでも使えるBeanにするための考慮点を知る
  JavaBeansにするのか、EJBにするのか
では実際にどうするのか?
  


連載記事一覧




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間