paulwong

          關于ESB問答

          最近公司要上一個新項目??赡芤弦郧暗囊恍┫到y。現在考慮是用esb企業總線進行管理。初步定的是wso2。基于apache synapse。

          1.一般的esb流程是什么樣子的?
          是不是主系統發生soap請求。esb接收并且轉換成jms然后子系統監聽jms。最后得到數據。
          還是。jms僅僅是內部轉換。soap請求在esb轉成jms后。加入隊列。然后再轉成soap調用子系統?

          2.使用jms的考慮是jms對隊列的信息進行持久化。防止比如子系統突然掛掉了。消息丟失。
          但是有個問題。是esb自動監聽jms的隊列的話。會導致直接消費了。而數據沒有存在隊列中。還是會出現消息丟失的問題。
          這個應該怎么解決。

          3.esb進行協議之間的轉換。每種方式都需要些一個轉換方式么?有沒有什么通用的?;蛘呤亲詣愚D換的。比如soap和jms的互相轉換。不是協議切換。是內容轉換。

          4.如果大家有討論esb的群。或者有高手愿意指點一下。謝謝了。   


          ------------------------------------------------------------------
          1,一般ESB的流程,
          先是整理需連接的系統,需要連接的系統功能(一般管它叫服務),確定服務的依賴關系,支持的協議(文件,WebService, RPC,...),調用的方式(同步/異步)
          然后使用ESB提供的那些協議組件,一點點串起來就行。串的方式可以參考EIP (www.eaipatterns.com)

          你說的兩種異步方式的話都可以,
          如果是同步的,也可以直接soap -> soap, 不用JMS。 一般用JMS是為了實現異步通訊

          2,JMS,至少我接觸的ActiveMQ, 是可以支持事務的,發生異常,可以不消費信息

          3,協議轉換是為了配合你那些需要整合的系統,如果都是SOAP,也就不需要轉了。
          消息內容轉換(格式,內容),一般ESB都提供各種工具的。 



          ------------------------------------------------------------------
          1、如果你要做同步轉異步,可以在esb上做成ws轉jms,然后起到一個緩沖的作用。
          最后可以再同步的返回給調用方。
          你也可以修改調用方為jms方式,這樣就是徹底的異步了,在esb端可以jms轉ws,調用業務服務方的ws。

          2、esb都支持事務的,jms中如果不確認消息的話,不會從持久存儲去delete掉的。
          一般的esb。也可以做成是esb消費掉消息,然后存入esb自己內置的jms provider中,這樣你再消費的話,也是可靠的。還可以做成補償機制的,即esb中如何消息處理失敗,把消費放回去原來的queue或是一個中間的臨時queue,稍后做recover。

          3、從esb的不同transport進去的數據,在esb的中介層處理時,其實消息格式都是一致的、通用的。也就是說常見的ws或jms轉換在一般的esb里處理都很簡單。如果稍微復雜點,也很容易擴展transformer(比如通過xslt做xml格式轉換)來實現數據內容和格式的轉換。

          posted on 2012-07-20 21:14 paulwong 閱讀(649) 評論(0)  編輯  收藏 所屬分類: MULE


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


          網站導航:
           
          主站蜘蛛池模板: 莱阳市| 德清县| 山东| 嘉荫县| 广灵县| 教育| 梅河口市| 邢台市| 哈尔滨市| 泽普县| 新沂市| 绥阳县| 东港市| 望奎县| 南昌县| 仙游县| 富源县| 那曲县| 五家渠市| 通河县| 抚宁县| 阳泉市| 南郑县| 云龙县| 阳东县| 齐河县| 石景山区| 岳普湖县| 平果县| 通辽市| 渭南市| 鹤峰县| 准格尔旗| 错那县| 崇明县| 舞阳县| 类乌齐县| 林甸县| 京山县| 富顺县| 平罗县|