- PR -

EJBを使用するメリット・デメリットは?

投稿者投稿内容
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2003-01-30 10:54
こんにちわ。

仕事でEJBを使用することになりそうです。
しかしEJBには触れたことがありません。

そこでEJBを実際に使用している方に
EJBのメリット・デメリットをお聞きしたいと思います。

わたしが調べた限り、また多少試してみた限り
での考えを以下に書きます。

○メリット
・移植性
 →依存性の高いコードを全て外部設定ファイルに
  くるめることにより高移植性を確保

・トランザクション
 →トランザクション処理はコンテナが全て管理してくれる。
  ユーザは設定ファイルに記述するのみ

・カスタマイズ
 →DBテーブルのカラムが追加などはEJBに対して
  新規カラム用のフィールドを追加し、設定ファイルで
  マッピング設定するのみ。余計なSQLコードを埋込む
  必要はない

○デメリット
・処理性能問題
 →Servlet+JSP+JDBCなどのシステムと比較して処理性能は落ちる。
  検索処理などで対象データ量が多くなればより顕著。

・RDB製品のパフォーマンス
 →DBアクセスは全てコンテナまかせなので、ユーザの細かな
  操作ができない。(SQL文のチューニング)

・リソース消費
 →DBに存在するテーブルをEJBオブジェクトとしてマッピングするため、
  検索結果一覧表示などでは多大なオブジェクトが生成される。
  (検索結果がEJBオブジェクトであることがリソース消費を大きくする)


こんなところです。
あと、現在EJBの仕様は2.0でCMP2.0 CMRなどが策定されました。
みなさんはCMPを使用しておられるでしょうか?
CMPは楽な分柔軟性に欠けるのかなと思ってます。

かと言ってBMPで実装するとEJBのメリットである
移植性(隔離性)が失われるのかな、とも。

皆さんのお考えをお待ちしてます。
ken
常連さん
会議室デビュー日: 2002/04/29
投稿数: 38
投稿日時: 2003-01-30 11:44
> 仕事でEJBを使用することになりそうです。

使用しようと決定された方はどのようなポジションの方でしょうか?
また、その決定された方はどのような回答をされているのでしょうか?

(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2003-01-30 13:10
引用:

kenさんの書き込み (2003-01-30 11:44) より:
> 仕事でEJBを使用することになりそうです。

使用しようと決定された方はどのようなポジションの方でしょうか?
また、その決定された方はどのような回答をされているのでしょうか?





まだ決定ではありません。
ただお客様が望むもののキーワードとしてJ2EE技術、再利用性、コンポーネント
などがありますのでEJBが適しているのかと思ったしだいです。

そこで調査することになったのですが、インターネットなどの静的資源では
上辺しかわからず、実際使用したことのある方の生の声を聞きたいな、と
思ったのです。
ken
常連さん
会議室デビュー日: 2002/04/29
投稿数: 38
投稿日時: 2003-01-30 13:29
>まだ決定ではありません。
>ただお客様が望むもののキーワードとしてJ2EE技術、再利用性、コンポーネント
>などがありますのでEJBが適しているのかと思ったしだいです。
>そこで調査することになったのですが、インターネットなどの静的資源では
>上辺しかわからず、実際使用したことのある方の生の声を聞きたいな、と
>思ったのです。

案件の具体的な内容によって色々と考慮することがあるでしょうから、
アプリケーションサーバのメーカーやコンサルタントに聞いたほうが早い
と思います。
もちろん、EJBを開発するわけですから、EJBの統合開発環境(IDE)として
優れた製品が提供されていることも考慮する必要があると思います。
parolibre
常連さん
会議室デビュー日: 2002/12/30
投稿数: 33
投稿日時: 2003-02-01 17:52
引用:

そこで調査することになったのですが、インターネットなどの静的資源では
上辺しかわからず、実際使用したことのある方の生の声を聞きたいな、と
思ったのです。


私が考えるEJB導入での一番のネックは人的要因の確保だと思います。
J2EEの考えをキチンと理解し、客先の要望に合わせられる人間というのは、まだ少ないように思います(私の周りだけ?(^^;)。

これからプロジェクトを始められる方にこういうのも大変失礼ですが、万が一、火が付いてしまった時の消火班の人員確保もままならないのではないかと思います。(札束を鬼のように用意すれば解決できるでしょうが…)

_________________
--
parolibre
swat
常連さん
会議室デビュー日: 2002/03/21
投稿数: 33
お住まい・勤務地: 埼玉県
投稿日時: 2003-02-01 18:36
私が始めてEJBが絡む開発をしたときは、
ルール付けが大変でした。
出典がどこだったか失念してしまいましたが、EJBコンポーネント規約にあわせて開発すべし、とのお達しが出て、調査にいろいろ時間をかけた覚えがあります。

引用:

・RDB製品のパフォーマンス
 →DBアクセスは全てコンテナまかせなので、ユーザの細かな
  操作ができない。(SQL文のチューニング)



私が開発したときには、DBアクセスがかなり頻繁に起きるシステム(1秒間に10回以上)でしたので、EntityBeanは使わなかったです。
方法として正しいのかわかりませんが、SessionBeanで直接Connectionをハンドリングするようにしてました。<EJBの意味がないかも。(笑)

ほかにも、HomeやRemoteオブジェクトをキャッシュするとか、StatefulとStatelessをどの場面でどのように選択するか、とか、EJBのメソッド呼び出しをいかに少なく出来るかとか、APサーバのチューニングなどなど、チーム全員が初めてだったので、ひどく苦労しました。

parolibreさんがおっしゃっているように、EJB開発についてある程度の勘所をつかんでいる方を確保しておいたほうが、いいかと思います。初めてのEJB開発なら、なおさらですね。
_________________
****** swat ******
http://www.h7.dion.ne.jp/~s_wat/
http://d.hatena.ne.jp/swat/
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2003-02-03 12:01
parolibre様、swat様

ありがとうございます。

確かに人的要因は重要なポイントだと思っています。
開発するだけならできるかもしれませんが、問題が
発生した時知識が浅いものには非常に解決しにくい
のではないか、と思っています。

以前CORBAを使ったシステム開発に少し絡みましたが
強くそう思いました。

「再利用性」、「カスタマイズ性」、「開発生産性」
などのポイントをお客様が強く意識している部分が
あるのでEJBは避けられないのかな、と思っていました。

servlet,jsp,beanによるEJBを使用しない開発に
倒せれば一番話が早いと思いますが、EJBを使用
しない場合上記キーワードをくるめられるか
イメージがつかめません。

swat様のケースでEntityBeanを使用しない場合は
servlet,jsp,beanによる開発となんら変わりは
ないのではないかと個人的には考えます。

ただ、少しのトランザクションをコンテナが
管理してくれて分散オブジェクトも簡単に
できますよ、くらいなのかな、と。

現在EntityBeanは性能的にも不安があるとは
思いますが、使用しているケースは少ないのでしょうか?

もしくはある箇所ではEntityBeanを使用し、
ある箇所では使わないなどの手法もありそうですね。
yuu
大ベテラン
会議室デビュー日: 2002/06/12
投稿数: 152
お住まい・勤務地: 美味しいケーキ店のそば
投稿日時: 2003-02-03 13:29
ぽちさん、こんにちは。
このスレッド、興味しんしんで みてたのですが、あんまり書き込みないですね

もし、お客様がどうしても EJB で開発をというのであれば、プロジェクトに EJB のコンサルタントを 加えてもらう(その予算を取ってもらう)は どうでしょうか?
ノウハウの不足から開発期間がのびたり、性能がでなかったりすると お客様にも迷惑をかけることになると思います。
また、ぽちさん にとってはEJBを勉強できる良い機会になるのではないでしょうか?


[ メッセージ編集済み 編集者: yuu 編集日時 2003-02-03 23:24 ]

スキルアップ/キャリアアップ(JOB@IT)