中間件到底是什么東西? 探究ESB的是與非
2012年02月09日 點擊數(shù): 15642 字體: 大 中 小
ESB這個新名詞讓人感到既時髦又有點兒迷糊,它似乎正在被賦予許多自己不應(yīng)承載的內(nèi)容。那么,ESB究竟是什么呢?本文將對此進(jìn)行相關(guān)的介紹,并著重說明中間件和ESB之間的關(guān)系。
中間件到底是什么東西?
它現(xiàn)在就好比是不斷將新思想一股腦兒澆在老方法上的一碗意大利面條。業(yè)界不斷將更多的調(diào)料澆在這碗面條上: 例如企業(yè)應(yīng)用集成、企業(yè)信息集成、業(yè)務(wù)流程管理和面向消息的中間件等模糊概念。
中間件食譜中的最新成份是時髦名詞--ESB(企業(yè)服務(wù)總線)。ESB現(xiàn)在已經(jīng)成為一種市場誘惑,因為它承諾提供簡單、快速、基于標(biāo)準(zhǔn)的多點集成。如果現(xiàn)在翻開大多數(shù)中間件廠商的資料,就會發(fā)現(xiàn)有關(guān)ESB的文章真是長篇大論,但這些卻似乎讓新方法與老范例之間的界線更加模糊了。
其實,ESB就是一種可以提供可靠的、有保證的消息技術(shù)的最新方法。ESB中間件產(chǎn)品利用的是Web服務(wù)標(biāo)準(zhǔn)和與公認(rèn)的可靠消息MOM協(xié)議接口(例如IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SonicMQ)。ESB產(chǎn)品的共有特性包括:連接異構(gòu)的MOM、利用Web服務(wù)描述語言接口封裝MOM協(xié)議,以及在MOM傳輸層上傳送簡單對象應(yīng)用協(xié)議(SOAP)傳輸流的能力。大多數(shù)ESB產(chǎn)品支持在分布式應(yīng)用之間通過中間層如集成代理實現(xiàn)直接對等溝通。
廠商支持ESB的方式雖然各不相同,但是顯然這一種類產(chǎn)品的覆蓋面非常廣泛,包括了傳統(tǒng)MOM廠商以及中間件公司,例如Cape Clear、Fiorano、IONA、Polar Lake、SeeBeyond、SpiritSoft、Systinet和Vitria。任何廠商只要支持Java消息服務(wù)MOM或JMS API都可以將自己定位于ESB廠商。任何實現(xiàn)新興Web 服務(wù)可靠消息傳遞(WS-RM)規(guī)范的廠商也可以聲稱自己提供了ESB工具。
當(dāng)然,沒有一家ESB廠商滿足于只提供一條可靠的通道。因此,它們將各種東西投入到他們的ESB大鍋里,并且拼命地攪拌和翻炒。MOM、企業(yè)應(yīng)用集成、業(yè)務(wù)流程管理、集成代理、指揮協(xié)調(diào)、數(shù)據(jù)轉(zhuǎn)換、發(fā)布與訂閱、事件通知、基于內(nèi)容的路由、事務(wù)處理……它們都是ESB,至少廠商們會這么說。
而企業(yè)的IT人員需要的是易于安裝、配置、執(zhí)行和管理的集成產(chǎn)品。他們需要強(qiáng)大的、支持標(biāo)準(zhǔn)的、能實現(xiàn)任意對象之間集成的中間件。他們需要廉價而迅速地集成,而不是費時多年、高風(fēng)險、耗費大量資金的大型集成。
今天的ESB產(chǎn)品能夠提供這一切嗎?恐怕很難。問題的關(guān)鍵并不在于產(chǎn)品本身,而是那些已經(jīng)在許多企業(yè)中扎根的多如牛毛的中間件產(chǎn)品、協(xié)議和方法。各公司為中間件和集成應(yīng)用投入了太多的資金,以致于不可能在一夜之間將它們?nèi)刻蕴購念^開始。實際的集成環(huán)境基本上是采用多家廠商的中間件產(chǎn)品,其中許多中間件產(chǎn)品是在特殊戰(zhàn)略項目的環(huán)境下部署的,或用來集成特定的應(yīng)用、平臺和協(xié)議集合。
因此,大多數(shù)的公司并沒有單一企業(yè)范圍的“總線”,而這種總線也不可能很快問世。由于實際應(yīng)用中的集成需求多得令人眼花繚亂,沒有一種ESB產(chǎn)品可以提供單一的解決方案。大多數(shù)企業(yè)所能做的就是在老環(huán)境難以應(yīng)付的異構(gòu)性上再覆蓋上一層基于標(biāo)準(zhǔn)的集成環(huán)境。
總而言之,ESB術(shù)語只是一個有關(guān)MOM和基于SOAP的Web服務(wù)融合的籠統(tǒng)短語罷了。我們不應(yīng)該賦予這個術(shù)語它所不能承載的更多含意。它只是連接我們整體盤子上中間件肉丸子的一種方法而已。
什么是ESB ?
全稱為Enterprise Service Bus,即企業(yè)服務(wù)總線。它是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)結(jié)合的產(chǎn)物。ESB提供了網(wǎng)絡(luò)中最基本的連接中樞,是構(gòu)筑企業(yè)神經(jīng)系統(tǒng)的必要元素。
ESB的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價的解決方案,同時它還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運作,實現(xiàn)了不同服務(wù)之間的通信與整合。從功能上看,ESB提供了事件驅(qū)動和文檔導(dǎo)向的處理模式,以及分布式的運行管理機(jī)制,它支持基于內(nèi)容的路由和過濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標(biāo)準(zhǔn)接口。