axis2和XCF比較

[size=medium]1、JWS是Java語言對WebService服務的一種實現,用來開發和發佈服務。而從服務本身的角度來看JWS服務是沒有語言界限的。但是Java語言爲Java開發者提供便捷發佈和調用WebService服務的一種途徑。

2、Axis2是Apache下的一個重量級WebService框架,準確說它是一個Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能製作和發佈WebService,而且可以生成Java和其他語言版WebService客戶端和服務端代碼。這是它的優勢所在。但是,這也不可避免的導致了Axis2的複雜性,使用過的開發者都知道,它所依賴的包數量和大小都是很驚人的,打包部署發佈都比較麻煩,不能很好的與現有應用整合爲一體。但是如果你要開發Java之外別的語言客戶端,Axis2提供的豐富工具將是你不二的選擇。

3、XFire是一個高性能的WebService框架,在Java6之前,它的知名度甚至超過了Apache的Axis2,XFire的優點是開發方便,與現有的Web整合很好,可以融爲一體,並且開發也很方便。但是對Java之外的語言,沒有提供相關的代碼工具。XFire後來被Apache收購了,原因是它太優秀了,收購後,隨着Java6 JWS的興起,開源的WebService引擎已經不再被看好,漸漸的都敗落了。

4、CXF是Apache旗下一個重磅的SOA簡易框架,它實現了ESB(企業服務總線)。CXF來自於XFire項目,經過改造後形成的,就像目前的Struts2來自WebWork一樣。可以看出XFire的命運會和WebWork的命運一樣,最終會淡出人們的視線。CXF不但是一個優秀的Web Services / SOAP / WSDL 引擎,也是一個不錯的ESB總線,爲SOA的實施提供了一種選擇方案,當然他不是最好的,它僅僅實現了SOA架構的一部分。

[b]XFire與Axis2的比較 [/b]
雖然XFire與Axis2都是新一代的WebService平臺,但是Axis2的開發者太急於推出1.0版本,所以1.0還不是一個穩定的版本,它的開發者宣稱1.1版本即將推出,希望1.1版本會是個穩定的版本。在XFire捐獻給apache後有人認爲Axis2將會滅亡。其實在很多人眼裏,Axis2並不是pojo形式,Dan Diephouse證明了XFire比Axis更有市場,我也發現了有很多人開始從Axis轉向XFire,包括我也在說服身邊的人轉向利用XFire進行WebService的開發,很典型的是我可以在幾分鐘之內教會我的團隊實用XFire來發佈一個他自己的Web服務。
本人傾向於XFire確實比Axis2簡單很多
[b]AXIS VS CXF[/b]
在SOA領域,我們認爲Web Service是SOA體系的構建單元(building block)。對於服務開發人員來說,AXIS和CXF一定都不會陌生。這兩個產品都是Apache孵化器下面的Web Service開源開發工具。

這兩個框架 都是從已有的開源項目發展起來的。Axis2是從Axis1.x系列發展而來。CXF則是XFire和Celtix項目的結合產品。Axis2是從底層全部重新實現,使用了新的擴展性更好模塊架構。 CXF也重新的深化了XFire和Celtix這兩個開發工具。

通過一個比較矩陣來比較Axis2和CXF變得有現實的意義。這兩個項目都開發不夠成熟,但是最主要的區別在以下幾個方面:
1.CXF支持 WS-Addressing,WS-Policy, WS-RM, WS-Security和WS-I Basic Profile。Axis2不支持WS-Policy,但是承諾在下面的版本支持。
2. CXF可以很好支持Spring。Axis2不能
3. AXIS2支持更廣泛的數據並對,如XMLBeans,JiBX,JaxMe和JaxBRI和它自定義的數據綁定ADB。注意JaxME和JaxBRI都還是試驗性的。CXF只支持JAXB和Aegis。在CXF2.1
4. Axis2支持多語言-除了Java,他還支持C/C++版本。
  比較這兩個框架的Web Service開發方法與比較它們的特性同樣重要。
從開發者的角度,兩個框架的特性相當的不同。 Axis2的開發方式類似一個小型的應用服務器,Axis2的開發包要以WAR的形式部署到Servlet容器中,比如Tomcat,通過這些容器可以對工作中的Web Service進行很好的監控和管理。Axis2的Web administrion模塊可以讓我們動態的配置Axis2.一個新的服務可以上載,激活,使之失效,修改web服務的參數。管理UI也可以管理一個或者多個處於運行狀態的服務。這種界面化管理方式的一個弊端是所有在運行時修改的參數沒有辦法保存,因爲在重啓動之後,你所做的修改就會全部失效。Axis2允許自己作爲獨立的應用來發布Web Service,並提供了大量的功能和一個很好的模型,這個模型可以通過它本身的架構(modular architecture)不斷添加新的功能。有些開發人員認爲這種方式對於他們的需求太過於繁瑣。這些開發人員會更喜歡CXF。
  CXF更注重開發人員的工效(ergonomics)和嵌入能力(embeddability)。大多數配置都可以API來完成,替代了比較繁瑣的XML配置文件, Spring的集成性經常的被提及,CXF支持Spring2.0和CXF's API和Spring的配置文件可以非常好的對應。CXF強調代碼優先的設計方式(code-first design),使用了簡單的API使得從現有的應用開發服務變得方便。
不過你選擇Axis2還是CXF,你都可以從開源社區得到大量的幫助。這兩個框架都有商業公司提供服務,WSO2提供AXIS2的支持,Iona提供CXF的支持。這兩公司都有很活躍的開發者社區。


[/size]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章