笨笨的思想片斷

          零碎片斷,雜七雜八。
          posts - 25, comments - 79, trackbacks - 0, articles - 0

          With or Without EJB?

          Posted on 2005-12-07 15:54 笨笨 閱讀(2733) 評論(2)  編輯  收藏 所屬分類: Java

          With or Without EJB?


          EJB 運行時所享受的 J2EE 基礎服務

          1 參與AppServer 提供分布式事務管理(JTA,JTS)。
          2 AppServer 提供高性能通訊框架(基于RMI 或 IIOP實現)和大并發處理。
           1) AppServer 如 WebLogic/WebSphere 替換了 Sun 標準 RMI 實現(基于著名的多線程阻塞IO),國內的 Apusic 4 則基于純 NIO 的 IIOP通訊協議實現EJB 遠程通訊。
           2) AppServer 提供 EJB 實例池、請求隊列、執行線程池等等服務。

          3 AppServer 提供透明 EJB 集群管理(負載均衡、故障恢復),保證應用的處理能力能夠水平擴展。
          4 J2EE 安全體系
          5 AppServer 特有的附加增值服務
           1) 如 WebLogic WTC EJB,可實現從TUXEDO Service(C語言) 高性能訪問 EJB。

           


          大型項目所關注的重點

          對于大型項目如全國集中這一級別而言,它所關注的重點風險反而是系統的性能、吞吐量、穩定性、高可用性這樣的一些基本屬性,這里并非說具體的業務功能就不重要;而是與上述的基本屬性相比,業務功能可以說是相對的不重要。
          基本屬性如果有某一項沒有達到,直接后果就是項目失敗,或者運行時存在高風險。
          業務功能則主要是堆時間、堆人、堆代碼、堆測試人員的問題,如果實在來不及了,那就放到第二期去做好了,不影響主旋律么。

          對于大型項目而言,采用新技術的關注點主要是:
          1 能否滿足基本質量屬性,無重大運行時風險。
          比如說,數據訪問層,從性能和穩定性角度而言,還算直接采用 JDBC 編碼合適,最多采用SQL映射型JDO。對于帶緩沖的JDO實現則不宜采用,會帶來水平擴展和穩定性風險。

          2 項目組相關人員是否有此技術的經驗,最好不要付出學習成本,避免因不熟悉所帶來的風險。

           


          EJB 和 IoC 框架如 Spring 的定位比較

          Spring IoC/Context/AOP 可以認為是一個代碼組織(Assembler)框架,關注代碼如何組織和去耦。

          EJB 則是運行結構,關注我們的應用如何運行,如何做集群,系統計算資源如何分配等等。
          EJB 3 的改進主要還是從代碼組織角度做出的,對于 EJB 運行時架構并沒有多少變化(如果說錯了,還請指正);BEA 還有過將 EJB 3的代碼翻譯為 EJB 2.1 運行時架構的考慮(參見 BEA 的關于 EJB 3 的一篇文章http://www.javaworld.com/javaworld/jw-08-2004/jw-0809-ejb_p.html)。

          從上述角度來看,EJB 和 Spring 是從不同的角度看待應用,我們完全可以做到用 Spring 組織代碼實現EJB。


          With or Without EJB?
          從上述討論可以看出,用Spring還是用EJB并不是個問題,最終還是看用戶的實際需求而定。小Web項目多半不關注性能、并發、集群等等屬性,出于開發過程簡單和學習成本的考慮,完全可以不用EJB;而大型項目可能還是得用EJB。

          Feedback

          # re: With or Without EJB?  回復  更多評論   

          2005-12-07 16:08 by Flyingis
          With or Without EJB 在《J2EE without EJB》中有詳細的討論,結論也是看用戶實際需求而定。還有很多需要向你學習!

          # re: With or Without EJB?  回復  更多評論   

          2006-03-08 21:44 by Null Lee
          Rod的觀點是即便從性能角度考慮也應該without EJB。
          主站蜘蛛池模板: 禹城市| 保定市| 随州市| 大田县| 博野县| 鹰潭市| 安阳市| 盐津县| 浦县| 沐川县| 济源市| 昌邑市| 通辽市| 合作市| 常德市| 苍梧县| 闻喜县| 谢通门县| 舞阳县| 洛川县| 安福县| 乃东县| 密山市| 台前县| 伊金霍洛旗| 邢台县| 柘荣县| 从江县| 临夏市| 香格里拉县| 城固县| 乌苏市| 大同县| 宁夏| 明水县| 汶上县| 阜宁县| 宜兰市| 陆丰市| 宜丰县| 尚义县|