- - PR -
EJB ローカルインタフェース存在意義
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-08-19 14:55
現在、EJBにてをWebシステムを開発しようとしている者です。
そこでふと気になったことがあります。 それは、EJBにおいてローカルインタフェースは一体何の意味があるのか?ということです。 というのも、分散する必要がないという前提でローカルインタフェースを 用いるのであれば、何故インタフェースを作成する必要性があるのでしょう? EJBをかじったばかりの私には、全く持って理解できません。 それなら普通のJavaBeansでいいのではないか?と思うのですが 何か特別な理由があるのでしょうか? (トランザクション管理なんかをEJB側に任せられるから???) 非常に初歩的な内容で申し訳ないですが、どなたかご教授願えると幸いです。 | ||||
|
投稿日時: 2004-08-19 15:43
ローカルで呼びだしている場合は自分がかいたBeanクラスを直接よびだしているように感じるかもしれませんが、実際は EJB コンパイラが生成したクラスを呼びだすことになります。
getClass().getName() をダンプしてみるとわかります。 なぜそういうことになるかというとトランザクションやライフサイクル、セキュリティ管理等をコンテナに任せるためです。 | ||||
|
投稿日時: 2004-08-19 16:22
身も蓋もない&論旨から外れた言い方になってしまいますが、GodSpeedさんがおっしゃられているような要件の場合は、”EJBを使わない”という選択肢もあるんではないでしょうか。
『まずEJBありき』ではなく、EJBを利用する費用対効果を考慮して、適切なソリューションを選択することが肝要かと思います。 #もちろん、EJBに限った話ではありませんが。 | ||||
|
投稿日時: 2004-08-19 17:24
インギさん、Odakazさん、ご教授どうもありがとうございます。
インギさんがおっしゃっておられることで納得致しました。 >なぜそういうことになるかというと >トランザクションやライフサイクル、 >セキュリティ管理等をコンテナに任せるためです。 確かに普通のJavaBeanでこれらを厳格に行おうとすると厳しいですもんね。。。 Odakazさんがおっしゃっておられるように費用対効果から見ても EJBである必要がないと思うのですが、どうしてもEJBで! (何やらゆくゆくは分散も考えているらしい…)と言われたら さすがにEJBでやらざるを得ずといったとこでして^^; 適切なソリューションでないことは、何度もお伝えしてるんですけどね。 つまらない愚痴をこぼしてしまいましたm(_ _)m ご両名のご返答を受けて もう少し、私なりに勉強してみようと思います。 どうもありがとうございました。 | ||||
|
投稿日時: 2004-08-19 17:42
趣旨から外れますが、そもそも分散するメリット自体どこにあるのか 尋ねてみるのもありですよ。 分散するとパフォーマンスが下がる場合も多いですし、 クラスタリングでリニアにパフォーマンスが伸びるのは数台までなので、 パフォーマンスが足りなくなった場合の保険として考えているのならば、 あまり意味ないです。 セキュリティ上、APサーバとDBサーバの間にFWを入れたいと 言うのなら分かるのですが、その場合はその間の通信の暗号化なども 考慮しなければいけないですし。 | ||||
|
投稿日時: 2004-08-19 18:03
GodSpeedさんがいうような疑問(EJBコンテナなんて大げさすぎ、遅い、値段が高い(?)ので必要ない、本当は使いたくないけれど、レイヤー間の依存性は排除する仕組みは欲しい、簡単なトランザクション管理はして欲しい、等など。)は昔からありました。それに対する答えとして海の向こうの方々が作り出した「軽い」解決策が、Spring Frameworkに代表されるDependency Injectionコンテナという代物です。
最近注目を浴びつつあることですし、興味がおありでしたら調べてみてはいかがでしょうか。 [ メッセージ編集済み 編集者: シュン 編集日時 2004-08-19 18:04 ] | ||||
1
