精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-09-15
我的观点目前选择EJB唯一的场景就是你已经使用了ejb.可能是有点过火,但是这绝对是我的选择的标准.
关于组件化也不是今天才说起,我记得至少有10年了.但是目前状况下这个想法还是遥遥无期,而且EJB根本也不是解决问题的好方法.现在的情况是各个不同的厂家都有自己的一套东西,想集成起来绝对成本未必比自己开发一套低.看看IBM的EAI就明白所谓的组件集成到底是怎么回事.其实EJB这个概念已经被炒过了,现在IBM他们已经开始炒SOA了,大家看看SOA的资料,看看是不是似曾相识.这些东西从10年前就开始,不断地以各种面貌出现.要我相信他们,除非你拿出实打实的证据.否则我就当是这些厂商在教我背书. |
|
返回顶楼 | |
发表时间:2004-09-15
呵呵,也没什么很的,自从前面EJB项目吃苦头以后,我就学乖了,要EJB可以,给你SessionFacade,一堆DTO,项目内部该怎么着,还是该怎么着,代码里面的Session(COnnection)全都是proxy处理的,换成EJB就是把这些Proxy去掉,每次一个SessionBean方法直接调用我原先Service的一个对应方法,名字、参数统统一样,Service上只处理原始类型和DTO,怎么着,不恨了吧,实际上我现在有个系统还是SessionBean[代理不加了,EJB容器去加吧](用作Swing客户端),普通Service[有我自己的代理](用作Web层)并用的。
编程的时候应该有点小麻烦,譬如方法需要抛出remoteexception之类的,但好像没有什么大麻烦 |
|
返回顶楼 | |
发表时间: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 不是一言堂 ... 請大家發言的時候 能夠清楚地了解 每個解決方案都有他的歷史以及他的價值 否定或猜疑 或許可以建立你的地位 但是完全的否定只會失去客觀的評斷 |
|
返回顶楼 | |
发表时间:2004-09-15
SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。
|
|
返回顶楼 | |
发表时间: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 還有他的存在價值 |
|
返回顶楼 | |
发表时间:2004-09-15
potian 写道 SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。
Service-Oriented Architecture |
|
返回顶楼 | |
发表时间: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有什么大的优势。 |
|
返回顶楼 | |
发表时间:2004-09-15
jini 写道 potian 写道 SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。
Service-Oriented Architecture 这个我知道, 我想知道到底是什么东西,就算是吹牛的也好 譬如说Java是能够较好地解决系统在不同平台上的移植性,可以writeOnceRunAnywhere |
|
返回顶楼 | |
发表时间: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 的死忠者 |
|
返回顶楼 | |
发表时间:2004-09-15
potian 写道 jini 写道 potian 写道 SOA到底是什么东东,是为了解决一个什么样目前无法或难以解决的问题,不知道哪位能不能够简明概要地解释一下。
Service-Oriented Architecture 这个我知道, 我想知道到底是什么东西,就算是吹牛的也好 譬如说Java是能够较好地解决系统在不同平台上的移植性,可以writeOnceRunAnywhere 喔, SOA 簡單來說是以服務導向 服務導向最重要的解決問題是 當你在設計的時候 是以一個一個服務為出發點 內部的商業邏輯或流程有改變時 可以隨時修改成為你想要修改的樣子 說真的 你要問我可不可以透過非 ejb 的解決方案 我可以說有很多 尤其在 workflow/bpm 的這部分 在 java opensource 更是蓬勃發展 在 TSS 有一篇 jbpm 的 project leader 對於這部分有詳細的論述 你可以自己去找來看看 |
|
返回顶楼 | |