北大青鳥IT教育博客

           

          武漢北大青鳥blog淺談J2EE開發(fā)技術(shù)

            觀察一下Java社區(qū)幾股大的勢力,會發(fā)現(xiàn)一些有意思的現(xiàn)象:

            將EJB3當(dāng)塊寶的自然是應(yīng)用服務(wù)器市場的跟隨者JBoss和Oracle,一方面憑借ORM的先天優(yōu)勢,另一方面有出頭機(jī)會也不能放過,EJB3 委員會幾乎成了JBoss和Oracle的天下。特別是JBoss,更加積極推出JBoss Seam框架,希望確立以JSF+EJB3的架構(gòu)樹立Java開發(fā)的標(biāo)準(zhǔn),用以取代Struts/Spring/Hibernate的流行組合,因而開啟了EJB3和Spring 正面交鋒的戰(zhàn)爭。

            Java Vendor中另外一股勢力Sun公司這兩年則一直自顧不暇,在應(yīng)用服務(wù)器領(lǐng)域幾乎退出市場,直到最近才搞出來一個Glassfish,在開發(fā)框架領(lǐng)域也一直毫無建樹,推出的JSF至今還很不成熟,難擔(dān)大任,也許Sun都去忙著開源Solaris和JVM源代碼了。

            IBM和BEA是Java社區(qū)的領(lǐng)導(dǎo)者,從2004年開始,IBM和BEA開始大肆宣傳SOA,將他們的目光從應(yīng)用服務(wù)器領(lǐng)域挪到了松藕合企業(yè)服務(wù)領(lǐng)域,開展SOA商業(yè)戰(zhàn)略。與此同時,EJB3專家委員會的領(lǐng)導(dǎo)者也悄然變成了JBoss和Oracle,是IBM和BEA無力爭取嗎?當(dāng)然不是。IBM 和BEA已經(jīng)看到了應(yīng)用服務(wù)器市場和底層框架平臺即將被開源占領(lǐng),商業(yè)價值萎縮,因而審時度勢進(jìn)行戰(zhàn)略轉(zhuǎn)型。一方面押寶SOA戰(zhàn)略,大肆炒熱和培育SOA 市場,另一方面也積極占領(lǐng)開源市場,IBM放出來WebSphere社區(qū)版本-Apache Geronimo,BEA干脆和Spring的咨詢公司interface21合作,提供spring框架在WebLogic上的商業(yè)技術(shù)支持,如今 EJB3對于他們來說已經(jīng)形同雞肋,就拋給別人嚼吧。

            幾個大的Vendor或戰(zhàn)略轉(zhuǎn)型,或自顧不暇,或忙于收購(Oracle),Java開發(fā)領(lǐng)域的主戰(zhàn)場被打掃一空,對決的雙方換成了Spring和JBoss。對決的武器則是spring vs Seam。

            Spring代表了不遵循通用標(biāo)準(zhǔn),自己制訂游戲規(guī)則,不依賴容器的一方;JBoss代表了遵循通用標(biāo)準(zhǔn),但是鎖定容器的一方。這場對決從2004 年5月就開始上演,未來很長時間也會繼續(xù)下去。不過Spring已經(jīng)站在優(yōu)勢很大的地位上了。我個人覺得Spring會勝出這場對決,而Java企業(yè)應(yīng)用開發(fā)的主流技術(shù)將倒向Spring這一邊,而Vendor們官方制訂的標(biāo)準(zhǔn)將被開發(fā)人員可憐的遺棄到一邊。開源技術(shù)開始決定Java企業(yè)開發(fā)的未來走向。

            大致對比一下兩者:Spring vs EJB3,就會發(fā)現(xiàn)Spring從功能上面已經(jīng)勝出很多了:

            1、遠(yuǎn)程訪問支持,大致持平

            EJB3繼承了傳統(tǒng)的EJB遠(yuǎn)程訪問能力,Web Services支持也不錯;不過Spring提供了更多更靈活的選擇,Java RPC,HTTP Invoker,Hessian/Burlap,WebServices。

            2、框架集成能力,spring勝出

            這是spring的傳統(tǒng)優(yōu)勢項目,只要看看spring modules項目,看看n多第三方spring支持,就會發(fā)現(xiàn)spring現(xiàn)在的群眾基礎(chǔ)多么好,集成工作流,spring modules已經(jīng)提供了方便的模板類,集成規(guī)則引擎,Cache,CMS,腳本語言,異步任務(wù),安全驗證框架。。。。。。EJB3有點望塵莫及的味道

            3、JMS,JMX,JCA等,EJB3領(lǐng)先一步

            這些傳統(tǒng)EJB優(yōu)勢項目往往應(yīng)用的不太多,EJB3仍然是領(lǐng)先的。不過令人側(cè)目的是,Spring最近幾個版本在連續(xù)追趕EJB這些傳統(tǒng)優(yōu)勢領(lǐng)域,到Spring2.0為止,其JMS,JMX,JCA支持已經(jīng)相當(dāng)不錯了,可以說傳統(tǒng)EJB能夠做的,現(xiàn)在Spring也可以做得到,為Spring一統(tǒng)江湖掃清了最后的障礙。

            4、IoC容器spring勝出

            Spring的IoC容器很強(qiáng)大,其bean管理功能超過了目前EJB3容器,配置方面Spring稍微復(fù)雜一些。不過對于全局性配置來說,XML要優(yōu)于EJB3的annotation。

            5、AOP能力Spring勝出

            EJB3目前提供的AOP功能非常簡單,本來已經(jīng)無法和Spring相比,至于集成AspectJ的Spring2.0,就更加望塵莫及了。

            6、事務(wù)管理方面EJB3稍微領(lǐng)先

            Spring提供了很棒的本地事務(wù)模型,也可以集成JTA,但是不支持分布式事務(wù),當(dāng)然這種場景也非常罕見。

            7、Web框架spring勝出

            EJB3標(biāo)準(zhǔn)集成JSF,但是JSF并不成熟,和AJAX配合度也不好。Spring可以靈活集成各種Web框架和模板語言,自身也提供了相當(dāng)強(qiáng)大的MVC框架,要是這還覺得不夠,那么spring webflow,portlet support都拿出來,那么EJB3就必敗了。

            這幾年除了Spring框架自身不斷完善和延伸到傳統(tǒng)應(yīng)用領(lǐng)域,圍繞在Spring周圍的第三方框架也是越來越豐富,EJB3在 annotation方面有些獨到的優(yōu)勢,在一些傳統(tǒng)領(lǐng)域,還領(lǐng)先spring,但是總體來說,EJB3為核心的J2EE5.0規(guī)范很難和Spring現(xiàn)在的2.0相匹敵,更何況Java的主力Vendor早已醉翁之意不在這里了,單憑JBoss的Seam,難以戰(zhàn)勝spring。

          posted on 2009-06-14 16:03 武漢北大青鳥 閱讀(68) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章檔案

          默認(rèn)

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 连云港市| 黑河市| 兴海县| 宜兰市| 如东县| 天津市| 资溪县| 宕昌县| 长海县| 五指山市| 邹平县| 西青区| 贵溪市| 涪陵区| 北宁市| 武义县| 堆龙德庆县| 明溪县| 方正县| 饶河县| 中卫市| 阿坝县| 漳平市| 马边| 渝中区| 临清市| 商都县| 开远市| 崇仁县| 察隅县| 缙云县| 万宁市| 唐海县| 鲁山县| 陕西省| 阿合奇县| 二连浩特市| 罗江县| 德昌县| 灵武市| 玉树县|