開源ESB-MuleESB產品研究

來自: http://blog.sina.com.cn/s/blog_493a84550102w0ql.html

當前Mule的最新版本是3.7,其中在3.7版本出現了很多大的變動,特別是http組件和datamapper組件,還有就是SOAP消息組件。這也導致網上很多關于用mule esb來實現簡單的SOAP WebService代理服務的例子都無法正常運行。

上圖是一個簡單的WebService代理服務的實現例子

1. 拖入Http Connector組件,配置基本的path和端口信息。這里沒有太特別的地方。

2. 拖入CXF組件,設置為Proxy Service類型,在Advance地方要引入已經導入到項目中的wsdl文件。

--設置該組件的namespace,端口號信息,SOAP類型改為1.2 payload類型為envelope

3. 拖入CXF組件,設置為Proxy Client類型,該組件本身不需要在做任何額外的配置。

4. 拖入http組件,注意是放在process里面,自動即為一個http Request組件,處理SOAP請求轉發

--設置host信息,本地的話為0.0.0.0,path信息,訪問ws的路徑信息,method類型為post

處理完以上配置后一個ws代理就可以完全跑通,并可以通過soapui進行測試。

在proxy代理服務的實現過程中,嘗試了以前版本的通過spring的wsproxyService組件,通過http簡單請求轉發,通過webservice comsumer組件配合cxf組件來實現代理,以上方式均沒有嘗試通過。

在整個mule esb的功能測試中,整體感覺是mule當前在http消息流的處理上相對優秀,包括http消息流和FTP,SOAP,Database,外部Java代碼,MQ集成等,這些訪問都能夠很好的進行處理。但是如果是單純的SOAP服務的發布和設計,SOAP+DB的組合實現起來相對麻煩,有很多Talend ESB很容易實現的場景當前在Mule ESB中仍然沒有跑通。對于Mule ESB除了最簡單的代理服務場景外,還測試了如下場景:

a. 通過http請求然后轉發去調用SOAP Webservice

該場景測試OK,對于http請求如果是json格式,還可以將json樣例數據導入后形成dataSense的shema結構,該結構可以和WebService consumer的xsd結構進行dataMapping。處理請求相對方便。

b. 通過http請求然后觸發數據庫查詢操作

該場景測試OK,特別是對于http請求的輸入參數,可以在Database組件中進行參數化查詢和配置。對于Database本身的輸出信息也是Datasense的,即可以獲取到具體的schema信息方便后續處理。

c. http請求到file文件的處理:測試OK,場景也很簡單。

d. 直接在mule環境里面開發一個soap webservice并發布。

該場景OK,對于簡單的webserice我們可以直接編寫相關的接口類和實現類,并在CXF組件中配置實現。對于較為復雜的結構,可以采用ws-service類型,同時將外部的wsdl文件導入后自動生成CXF相關的結構和代理類。具體的實現即可以通過java代碼實現。

在該場景測試中注意自動生成沒有實現類,要通過cxf框架命令行生成后再導入。其次就是在cxf組件后面需要拖入一個java組件,該java組件的class配置為剛才的接口實現類。

整體來說mule esb仍然是一款優秀的開源ESB產品,當前主要有社區版和企業版,對于企業版在管控和高可用性上面提供了更多的支持。mule當前在中國沒有設置辦事處,對于在國內的推廣仍然緩慢。如果是更多基于http消費和調用來進行業務和數據的集成,特別是類似open api開放平臺的構建,采用mule esb講是很不錯的一個解決方案。而對于soap服務集成,DB集成能力相對來說talend ESB更加強大。

</div>

 本文由用戶 EliUVG 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!