<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    竹十一
    在匆忙與奔走中墮落

    <翻譯 from tss>
    Axis、Axis2和CXF:俯瞰WS風景
    --bye Biorn Townsend

    從事open source 的 web services開發是令人興奮的。去年下半年發布了兩個下一代的web services框架,他們都在Apache軟件基金會下面。這兩個框架分別是,在2006年四月末發布1.0的Apache Axis2,目前處在1.3的候選發布版本階段(譯注:1.3已經發布);Apache CXF,它在2007年7月初發布了2.0版本(以CXF命名的第一個發布版本)。

    這兩個框架都是從已有項目中進化過來的。Axis2來自眾所周知的Axis 1.x 系列。CXF按照字面來說是XFire和Celtix兩個項目的后續,這兩個項目融會了他們的代碼庫和開發團隊就有了CXF。不論從哪個角度來看新舊項目之間都有顯著區別。Axis2完全從頭重寫了Axis,使用了能夠讓功能更容易擴展的新模塊架構。CXF從XFire和Celtix這兩個起源上也做了廣泛重構。

    這引發了一些問題。已有使用Axis 1.x,XFire或者是Celtix的應用程序是否要移植到這些項目的新版本上呢?如果一個開發者決定要移植他(她)的應用到其中的一個新版本上,那他應該用哪個呢?相反的,如果某人正在從頭開始開發新的web service又無需考慮移植,那他(她)又應該用哪個呢?是否一個框架生來就優于其他的呢?

    讓我們逐個處理這些問題。首先,已有應用是否需要移植?回答這個問題很大程度上依賴于你的應用到達了生命周期的哪個階段。對于一個非常穩定成熟的項目,如果在可預計的未來很少或者根本不需要變化,那它可能就不需要移植,因為當前的框架很好的滿足了需求。如果應用的性能或者功能受bug影響,那移植就值得做,特別是對使用Axis 1.x 的用戶來說,因為圍繞Axis的大部分開發者社區都把資源轉向了Axis2。Axis 1.5 版本雖然正在進行中,但可能要數月才能完成。

    對于需要移植的項目來說,最簡單的就是移植到當前框架的下一個版本上。Axis2和CXF都為開發者提供了從之前版本到新版本的移植技巧指南,但他們都沒有為web service從一個框架移植到另一個框架提供工具或者指南。盡管如此,對這類移植來說,查看所有可用的選擇都是有價值的。在web service開發上Axis2和CXF走了不同的路子,對某些開發者來說,其中一條總比另一條需要付出更多。

    這給我們帶來了比較Axis2和CXF二者功過的好的角度。當然有二者很多可比較的地方,web services框架都必然地要滿足所有相同需求,但因為這二者都非常年輕,都有某些領域比其他的做得更好。主要不同列在下面:

        * CXF支持WS-Addressing,WS-Policy,WS-RM,WS-Security 和 WS-I 基本規范。Axis2支持除WS-Policy之外的所有協議,WS-Policy也會在即將到來的版本支持。

        * CXF很容易和Spring集成,而Axis2不。

        * Axis2支持范圍更大的數據綁定,包括XMLBeans、JiBX、JaxMe和JaxBRI同時還有它自帶的數據綁定方式--ADB。注意對JaxME和JaxBRI的支持在Axis2 1.2中仍然處在實驗階段。CXF目前僅支持JAXB和Aegis,對XMLBeans、JiBX和Castor的支持將會在CXF 1.2中實現。

        * Axsi2支持多種語言--在java版本之外還有C/C++的版本可用。

    然而在比較這些框架時,比較他們開發web services的方法與比較它們的特性同樣重要。從開發者的角度看,這些框架彼此之間完全不同。Axis2走的路子在很多方面都像是一個微型的應用服務器。Axis2打包成WAR,這樣它就能發布到像Tomcat之類的servlet容器中,它被設計的使web services更容易管理和發布。Axis2的Web管理模塊允許Axis2在應用運行過程中動態配置--新的服務可以上傳、激活或者使其無效、他們的參數也可以改變。管理UI也允許模塊在一個或者更多的正在運行的服務中生效。唯一不利的一面是,為達到這些目的使用UI所作的改變不能被持久化--servlet容器重啟之后就失效了。

    Axis2有利于web services的獨立,不依賴其他應用;提供了廣泛多樣的功能;通過模塊化架構為添加新功能(隨時間流逝,這總是可能的)提供了一個不錯的模型。某些開發者或許會發現為實現他們的需求用Axis2有些太麻煩太笨重。這些開發者可能更喜歡Apache CXF。

    CXF專注于開發者的高效和可嵌入性。大部分的配置通過API而不是繁瑣的XML文件來實現,Spring的集成是個重點,包括支持Spring 2.0,CXF的API和Spring的配置映襯的相當緊密。CXF著重代碼優先的設計,簡單的API使從已有應用中開發服務更容易(嵌入性也有利于這點)。

    不論你選擇了哪個框架,你都將從活躍穩定的開源社區中受益。每個框架都有公司背景:Axis2源自WSO2,CXF源自Iona。兩者都有活躍的開發者社區。Axis2已經存在很久了,但是CXF進步也很快。我的建議是:如果多語言支持是重要的,Axis2是很明顯的選擇。如果你在意與像Spring之類的項目緊密集成的Java實現,CXF是更好的選擇,特別是對把web services嵌入其他程序的應用來說。如果這些項目中的新特性對你不太重要,而你又相對來說比較滿意Axis1,那么可以考慮繼續使用Axis1并緊跟最新的可用版本,直到有業務上的原因需要移植。


    原文地址: http://www.theserverside.com/tt/articles/article.tss?l=AxisAxis2andCXF

    btw:
        翻完之后發現這篇問題題目雖然比較吸引眼球,可好像也沒說出些實質性內容來,有些地方甚至有些八卦。不過既然翻譯了就貼出來,說不定還能給大家帶來些茶余飯后的談資:)

    posted on 2007-09-14 01:32 竹十一 閱讀(4383) 評論(2)  編輯  收藏 所屬分類: SOA
    Comments
    • # re: Axis、Axis2和CXF:俯瞰WS風景
      mimimama
      Posted @ 2007-09-14 08:19
      總的說還是有價值的。  回復  更多評論   
    • # re: Axis、Axis2和CXF:俯瞰WS風景[未登錄]
      竹十一
      Posted @ 2008-09-22 22:32
      近一年的經驗告訴我,如果不是維護系統,Axis1x基本可以拋棄了。
      從一點就可以得出它不支持更流行的dom/literal 方式。
        回復  更多評論   
     
    主站蜘蛛池模板: 国产亚洲视频在线观看| 一级做a爰片久久免费| 91在线老王精品免费播放| 亚洲国产精品一区二区久| 成人免费观看一区二区| 久久www免费人成看国产片| 亚洲精品乱码久久久久久蜜桃 | 国产成人精品日本亚洲直接| 精品国产免费一区二区| 在线91精品亚洲网站精品成人| 亚洲高清无码专区视频| 国产妇乱子伦视频免费| 一个人免费视频在线观看www| 亚洲日本va午夜中文字幕一区| 性做久久久久免费观看| 最近免费mv在线电影| 亚洲第一成年网站视频 | 内射少妇36P亚洲区| 日本免费一本天堂在线| 一级毛片在线免费视频| 亚洲国产精品va在线播放| 中文字幕在线免费看线人| 亚洲人成在久久综合网站| 亚洲日韩人妻第一页| 99久久99久久精品免费看蜜桃| 精品无码专区亚洲| 亚洲精品国产成人| 亚洲日韩精品一区二区三区无码| 日韩精品内射视频免费观看 | 国产精品国产亚洲精品看不卡| 日韩精品久久久久久免费| 国产亚洲女在线线精品| 亚洲综合一区二区| 亚洲福利视频一区二区三区| 亚洲成A人片777777| 亚洲色精品88色婷婷七月丁香| 久久久久久99av无码免费网站 | 永久免费在线观看视频| 99久久免费国产特黄| 青柠影视在线观看免费高清| 九九久久精品国产免费看小说|