又過一年了,更新一次自己的ESB筆記,內(nèi)容實(shí)在,枯燥無味,濃縮即精華....年度最大發(fā)現(xiàn)應(yīng)該是Fuse ESB 4.0吧。
ESB的類型
ESB最終以兩種截然不同的形態(tài)存在于實(shí)際項(xiàng)目中:
一種是純粹的SOA交互基礎(chǔ)中間件,是系統(tǒng)間松耦合地互操作的基礎(chǔ)設(shè)施。
一種是ESB風(fēng)格的應(yīng)用,聯(lián)合多個(gè)系統(tǒng)提供組合服務(wù),例如電信的ISAG能力網(wǎng)關(guān)就是其中典型。既有一個(gè)ESB的實(shí)現(xiàn)作為其基礎(chǔ)設(shè)施,同時(shí)也遵循ESB的編程模型。
兩者間的界限并不明顯,在漸變中ESB對(duì)周邊服務(wù)的業(yè)務(wù)邏輯會(huì)越來越了解,直接體現(xiàn)在ESB中的業(yè)務(wù)邏輯也越來越多。
基礎(chǔ)能力
由ESB充當(dāng)解耦的中介,使得服務(wù)消費(fèi)者對(duì)實(shí)際服務(wù)提供者的身份、物理位置、傳輸協(xié)議和接口定義都是不知道也不關(guān)心的。
- 協(xié)議轉(zhuǎn)換 (WebService、Http、JMS...)
- 數(shù)據(jù)轉(zhuǎn)換 (傳輸協(xié)議特定格式與ESB統(tǒng)一消息模型的轉(zhuǎn)換,各服務(wù)間數(shù)據(jù)模型的映射轉(zhuǎn)換)
- 消息路由 (靜態(tài)端點(diǎn)配置,基于內(nèi)容的過濾與路由)
- MEP轉(zhuǎn)換 (同步/異步)
- 組合服務(wù) (ESB服務(wù)編排、BPEL流程引擎)
ESB支持通過簡(jiǎn)單而統(tǒng)一的配置完成以上功能,也支持開發(fā)者在其上編寫富含業(yè)務(wù)邏輯的數(shù)據(jù)轉(zhuǎn)換、消息路由甚至業(yè)務(wù)處理模塊。
服務(wù)中介
由ESB充當(dāng)服務(wù)的中介,為服務(wù)的交互過程自然的提供一系列的基礎(chǔ)服務(wù) 。
- 服務(wù)治理 (服務(wù)注冊(cè)中心)
- QOS (負(fù)載均衡,可靠性傳輸,異常處理,流量控制)
- 統(tǒng)一安全管理 (ESB的基本安全控制,含業(yè)務(wù)邏輯的安全控制)
- 服務(wù)日志與監(jiān)控 (服務(wù)調(diào)用及消息數(shù)據(jù)的日志清單,系統(tǒng)及服務(wù)的性能與狀態(tài)監(jiān)控)
- BAM業(yè)務(wù)活動(dòng)監(jiān)測(cè) (如發(fā)現(xiàn)某個(gè)服務(wù)的調(diào)用比昨天增加超過了一定的百分比,CEP復(fù)雜事件處理)
開源ESB實(shí)現(xiàn)
紛紛擾擾后,只剩下有實(shí)力的四國(guó) :
- Fuse ESB
, 基于ServiceMix與Camel,由IONA公司(被Progress收購(gòu))提供支持,ServiceMix 4.0 重點(diǎn)已從JBI移到OSGI,而且IONA同時(shí)也是ActiveMQ與CXF背后的公司,三者整合良好。
- Mule ,最早聲勢(shì)最大的開源ESB,由MuleSource公司提供支持。缺點(diǎn)是Transport質(zhì)量較差,缺乏強(qiáng)力的AS底層,缺少服務(wù)中介能力,服務(wù)編排方式不理想.
- JBoss ESB
, JBoss提供支持,中規(guī)中矩沒什么明顯缺點(diǎn)的ESB,部署于JBossAS上,特色是可用JbossRules編寫Router,用JBPM實(shí)現(xiàn)流程引擎。
- WSO2
,基于Apache Synapse,由Axis2 背后的公司提供支持,但自己對(duì)Axis2一系向來不感冒。
商業(yè)ESB
- BEA AquaLogic
,作為服務(wù)中間件非常好,路由編排再次走了圖形編程+XML Context(XQuery)的老路,在業(yè)務(wù)復(fù)雜時(shí)不容易玩,同時(shí)缺乏直接業(yè)務(wù)編程能力,只能調(diào)Java靜態(tài)方法或遠(yuǎn)程EJB2.1方法。
- IBM(Message Broker, Websphere ESB,DataPower),未接觸。
- Progress Sonic ESB,最早的ESB,未接觸。