论坛首页 Java企业应用论坛

EJB 完全引错了路——论企业应用的核心问题

浏览 87307 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-09-15  
我的观点目前选择EJB唯一的场景就是你已经使用了ejb.可能是有点过火,但是这绝对是我的选择的标准.
关于组件化也不是今天才说起,我记得至少有10年了.但是目前状况下这个想法还是遥遥无期,而且EJB根本也不是解决问题的好方法.现在的情况是各个不同的厂家都有自己的一套东西,想集成起来绝对成本未必比自己开发一套低.看看IBM的EAI就明白所谓的组件集成到底是怎么回事.其实EJB这个概念已经被炒过了,现在IBM他们已经开始炒SOA了,大家看看SOA的资料,看看是不是似曾相识.这些东西从10年前就开始,不断地以各种面貌出现.要我相信他们,除非你拿出实打实的证据.否则我就当是这些厂商在教我背书.
0 请登录后投票
   发表时间:2004-09-15  
呵呵,也没什么很的,自从前面EJB项目吃苦头以后,我就学乖了,要EJB可以,给你SessionFacade,一堆DTO,项目内部该怎么着,还是该怎么着,代码里面的Session(COnnection)全都是proxy处理的,换成EJB就是把这些Proxy去掉,每次一个SessionBean方法直接调用我原先Service的一个对应方法,名字、参数统统一样,Service上只处理原始类型和DTO,怎么着,不恨了吧,实际上我现在有个系统还是SessionBean[代理不加了,EJB容器去加吧](用作Swing客户端),普通Service[有我自己的代理](用作Web层)并用的。

编程的时候应该有点小麻烦,譬如方法需要抛出remoteexception之类的,但好像没有什么大麻烦
0 请登录后投票
   发表时间:2004-09-15  
ozzzzzz 写道
我的观点目前选择EJB唯一的场景就是你已经使用了ejb.可能是有点过火,但是这绝对是我的选择的标准.
关于组件化也不是今天才说起,我记得至少有10年了.但是目前状况下这个想法还是遥遥无期,而且EJB根本也不是解决问题的好方法.现在的情况是各个不同的厂家都有自己的一套东西,想集成起来绝对成本未必比自己开发一套低.看看IBM的EAI就明白所谓的组件集成到底是怎么回事.其实EJB这个概念已经被炒过了,现在IBM他们已经开始炒SOA了,大家看看SOA的资料,看看是不是似曾相识.这些东西从10年前就开始,不断地以各种面貌出现.要我相信他们,除非你拿出实打实的证据.否则我就当是这些厂商在教我背书.


IBM 所提出的 SOA 架構 讓我認為只是一堆產品聚合而成 Websphere 罷了
至於 SOA 的思考模式, 的確是很早就有的思路
但是 SOA 的實踐, BEA 確做得非常的好
尤其 在 WebLogic Integration Version 結合了 Workshop 與 BPM/WorkFlow 甚至包含資料的存取
都有完整的解決方案

而 BEA 對於 JavaControl ( 我忘了哪個 JSR , annotation 196 嗎)
已經放入 Beehive 之中, 之所以會稱之蜂巢計劃
就是希望大家如同蜜蜂般搬著蜜糖到蜂巢之中讓他茁壯

這種觀念, 是讓所有的開發結合而成一套標準, 或許, 只是 BEA 目前的標準
但是他巧妙地結合 opensource 的社群 與 bea 在jcp 的地位
讓 SOA 不再是夢想

你可以輕易地抓取符合標準的 JavaControls 成為元件之一

---------------------------------------------------------------------------------
附記 ~~
說真的 看了之前的批判 我忍住都不想發言
我都不知道我算還是不算 EJB 的支持者
最後被斷章取義成為 EJB 的支持者 ..... 我覺得很無奈
我明明是說, 今天產品開發我會選擇標準
如果是簡單的運作系統, 我何嘗不利用其他的 Framework ?

終究希望 javaeye 不是一言堂 ...
請大家發言的時候 能夠清楚地了解
每個解決方案都有他的歷史以及他的價值
否定或猜疑 或許可以建立你的地位
但是完全的否定只會失去客觀的評斷
0 请登录后投票
   发表时间:2004-09-15  
SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。
0 请登录后投票
   发表时间:2004-09-15  
附加補充, EAI 層面是我最常碰到的系統整合

在 EAI 之中為何和 EJB 牽扯關係 ? 其實我希望釐清幾個概念

1. 安全性的問題
2. 統一開發的問題
3. 資料轉換的問題

*1
首先 安全性的問題
我相信大家不否認 EJB 有制定很明確的 Security 機制
如果使用 Spring 或 Struts, 甚至兩個結合..不管 ~
你使用的是 servlet - level 的 security role
當然, 你的系統簡單到只需要 role 去判斷
那麼, 你就用簡單的方法吧, 我不會反對你的
好, 你說你可以建立一套幾乎雷同的系統
那麼 ~~
你要管理者自己學習一套新的安全性設定 ?
能不能結合 Access Manager 在統一的管理介面管理
還是你又要多寫 JMX 放到 Admin 介面呢
如果 你忽然發現產品的考量不僅僅是單一使用的系統
必須與一大堆存在的系統作整合
我認為 遵循標準對你來說 是比較輕鬆的做法
大不了只是修改一些設定檔案

2. 統一開發
今天只有一家公司 只有一個開發團隊 甚至一個工程師
不管, 我覺得你使用你的 Framework, 我覺得都不會有任何的影響
如果今天 jdon team 與 javaeye team 與 spring team 三個 team
合作開發一個專案..
那麼, 我是 project architect . 我一定毫不猶豫告訴你們
我選擇統一開發的方式 是 EJB 而非 SpringFramework
即使 SpringFramework 在各方面都優於 EJB ( 我承認 這是事實 )
很抱歉的事情是, 我必須考量未來我找人維護的成本
在大型系統 維護成本才是比較的重點
我只要簡單地選擇懂得  ejb 的人就夠了
因為懂得標準的人 一定比研究新技術的人多

3.  資料轉換的問題
SOA 或 EAI 的應用, 最重要的是 webservice 的提供,
SpringFramework 能做到嗎,, 可以..
只是現在已經有很多工具可以直接將 ejb 轉出webservice
所以 為了一些未來不可知的狀況
只好被迫使用 ejb ... ~><~

哈.. 所以 ejb 還有他的存在價值
0 请登录后投票
   发表时间:2004-09-15  
potian 写道
SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。


Service-Oriented Architecture
0 请登录后投票
   发表时间:2004-09-15  
jini,我也认为EJB有价值,但你这些论据不合适,所以下面只讨论这些实际的问题


引用

1
首先 安全性的問題
我相信大家不否認 EJB 有制定很明確的 Security 機制
如果使用 Spring 或 Struts, 甚至兩個結合..不管 ~
你使用的是 servlet - level 的 security role
當然, 你的系統簡單到只需要 role 去判斷
那麼, 你就用簡單的方法吧, 我不會反對你的
好, 你說你可以建立一套幾乎雷同的系統
那麼 ~~
你要管理者自己學習一套新的安全性設定 ?
能不能結合 Access Manager 在統一的管理介面管理
還是你又要多寫 JMX 放到 Admin 介面呢
如果 你忽然發現產品的考量不僅僅是單一使用的系統
必須與一大堆存在的系統作整合
我認為 遵循標準對你來說 是比較輕鬆的做法
大不了只是修改一些設定檔案

EJB的安全机制对一个复杂的应用系统来说是毫无意义的。所以几乎每一个公司都会有自己的一套权限管理机制。至于集成的问题,可以用多种方法来解决,关键是权限机制体系结构的设计,这方面OSUser提供了一个很好的范例,它已经提供了几乎所有主流EJB服务器的Role结合,或者和现有的其他使用OSUser接口的系统,或者你按照OSUser针对你的用户结构去适配它的某几个provider接口就可以实现集成。例子,jira和Confulence的集成。

在复杂一点的方式是需要统一用户管理系统和单点登陆来处理的,IBM有自己的产品,gigix他们公司也有。开源的也有,商业公司也有

另外,传统系统根本就没有EJB的什么Role.
引用

2. 統一開發
今天只有一家公司 只有一個開發團隊 甚至一個工程師
不管, 我覺得你使用你的 Framework, 我覺得都不會有任何的影響
如果今天 jdon team 與 javaeye team 與 spring team 三個 team
合作開發一個專案..
那麼, 我是 project architect . 我一定毫不猶豫告訴你們
我選擇統一開發的方式 是 EJB 而非 SpringFramework
即使 SpringFramework 在各方面都優於 EJB ( 我承認 這是事實 )
很抱歉的事情是, 我必須考量未來我找人維護的成本
在大型系統 維護成本才是比較的重點
我只要簡單地選擇懂得 ejb 的人就夠了
因為懂得標準的人 一定比研究新技術的人多

不管用什么结构,最简单地使用普通的POJO来开发,这是最低的人力成本

引用

3. 資料轉換的問題
SOA 或 EAI 的應用, 最重要的是 webservice 的提供,
SpringFramework 能做到嗎,, 可以..
只是現在已經有很多工具可以直接將 ejb 轉出webservice
所以 為了一些未來不可知的狀況
只好被迫使用 ejb ... ~><~

EAI最重要的应该是消息服务。例如MQSerial,可以供传统系统和J2EE应用同时使用

如果是异种系统需要Webservice,我一直在Tomcat下用glue,普通的Service写一层薄薄的包装即可,非常的爽,我不知道EJB有什么大的优势。
0 请登录后投票
   发表时间:2004-09-15  
jini 写道
potian 写道
SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。


Service-Oriented Architecture

这个我知道,
我想知道到底是什么东西,就算是吹牛的也好
譬如说Java是能够较好地解决系统在不同平台上的移植性,可以writeOnceRunAnywhere
0 请登录后投票
   发表时间:2004-09-15  
potian 写道
jini,我也认为EJB有价值,但你这些论据不合适,所以下面只讨论这些实际的问题


引用

1
首先 安全性的問題
我相信大家不否認 EJB 有制定很明確的 Security 機制
如果使用 Spring 或 Struts, 甚至兩個結合..不管 ~
你使用的是 servlet - level 的 security role
當然, 你的系統簡單到只需要 role 去判斷
那麼, 你就用簡單的方法吧, 我不會反對你的
好, 你說你可以建立一套幾乎雷同的系統
那麼 ~~
你要管理者自己學習一套新的安全性設定 ?
能不能結合 Access Manager 在統一的管理介面管理
還是你又要多寫 JMX 放到 Admin 介面呢
如果 你忽然發現產品的考量不僅僅是單一使用的系統
必須與一大堆存在的系統作整合
我認為 遵循標準對你來說 是比較輕鬆的做法
大不了只是修改一些設定檔案

EJB的安全机制对一个复杂的应用系统来说是毫无意义的。所以几乎每一个公司都会有自己的一套权限管理机制。至于集成的问题,可以用多种方法来解决,关键是权限机制体系结构的设计,这方面OSUser提供了一个很好的范例,它已经提供了几乎所有主流EJB服务器的Role结合,或者和现有的其他使用OSUser接口的系统,或者你按照OSUser针对你的用户结构去适配它的某几个provider接口就可以实现集成。例子,jira和Confulence的集成。

在复杂一点的方式是需要统一用户管理系统和单点登陆来处理的,IBM有自己的产品,gigix他们公司也有。开源的也有,商业公司也有

另外,传统系统根本就没有EJB的什么Role.
引用

2. 統一開發
今天只有一家公司 只有一個開發團隊 甚至一個工程師
不管, 我覺得你使用你的 Framework, 我覺得都不會有任何的影響
如果今天 jdon team 與 javaeye team 與 spring team 三個 team
合作開發一個專案..
那麼, 我是 project architect . 我一定毫不猶豫告訴你們
我選擇統一開發的方式 是 EJB 而非 SpringFramework
即使 SpringFramework 在各方面都優於 EJB ( 我承認 這是事實 )
很抱歉的事情是, 我必須考量未來我找人維護的成本
在大型系統 維護成本才是比較的重點
我只要簡單地選擇懂得 ejb 的人就夠了
因為懂得標準的人 一定比研究新技術的人多

不管用什么结构,最简单地使用普通的POJO来开发,这是最低的人力成本

引用

3. 資料轉換的問題
SOA 或 EAI 的應用, 最重要的是 webservice 的提供,
SpringFramework 能做到嗎,, 可以..
只是現在已經有很多工具可以直接將 ejb 轉出webservice
所以 為了一些未來不可知的狀況
只好被迫使用 ejb ... ~><~

EAI最重要的应该是消息服务。例如MQSerial,可以供传统系统和J2EE应用同时使用

如果是异种系统需要Webservice,我一直在Tomcat下用glue,普通的Service写一层薄薄的包装即可,非常的爽,我不知道EJB有什么大的优势。


說真的 你的論點我也同意
我舉這麼多例子的意思其實很簡單
就是在很多解決方案的時候
我會想依循標準 這樣風險是最小的
總而言之, 我不太想在這兒繼續宣揚 EJB,
畢竟我也不是 ejb 的死忠者
0 请登录后投票
   发表时间:2004-09-15  
potian 写道
jini 写道
potian 写道
SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。


Service-Oriented Architecture

这个我知道,
我想知道到底是什么东西,就算是吹牛的也好
譬如说Java是能够较好地解决系统在不同平台上的移植性,可以writeOnceRunAnywhere


喔, SOA 簡單來說是以服務導向

服務導向最重要的解決問題是

當你在設計的時候 是以一個一個服務為出發點
內部的商業邏輯或流程有改變時 可以隨時修改成為你想要修改的樣子

說真的 你要問我可不可以透過非 ejb 的解決方案
我可以說有很多 尤其在 workflow/bpm 的這部分
在 java opensource 更是蓬勃發展
在 TSS 有一篇 jbpm 的 project leader 對於這部分有詳細的論述
你可以自己去找來看看
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics