監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

透過(guò)ESB看SOA落地

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

來(lái)源:泛普軟件

從企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)在2002 年被正式提出以來(lái),我們看到ESB不管是在實(shí)現(xiàn)方式還是部署方式上都有了不小的變化。在過(guò)去的四年多的時(shí)間里,ESB 作為軟件領(lǐng)域里的一個(gè)獨(dú)立產(chǎn)品也被越來(lái)越多的人所接受,眾多的ESB 供應(yīng)商正在架構(gòu)、連接性、易用性以及服務(wù)質(zhì)量的保證(如持續(xù)可用)等方面進(jìn)行競(jìng)爭(zhēng)。很多綜合服務(wù)供應(yīng)商(如IBM、BEA)、企業(yè)應(yīng)用集成商(如Tibco、webMethod)以及Web 服務(wù)工具供應(yīng)商都紛紛給自己的產(chǎn)品冠以ESB的名號(hào),英國(guó)電信甚至把ESB 做進(jìn)了它們的一個(gè)硬件產(chǎn)品中。

很明顯,作為SOA(Service-Oriented Architecture)的核心和基礎(chǔ)架構(gòu),ESB 已經(jīng)成為準(zhǔn)備踏上和已經(jīng)踏上SOA 之旅的CIO 們必須認(rèn)真考慮和仔細(xì)研究的一個(gè)產(chǎn)品。因?yàn)樽鳛橐环N中間件,ESB通過(guò)與它連接的各種應(yīng)用的服務(wù)級(jí)接口實(shí)現(xiàn)各種應(yīng)用之間的連接,控制它們之間的通信,這一功能正在越來(lái)越多的生產(chǎn)系統(tǒng)中發(fā)揮著作用。更為重要的是,幾年來(lái)很多企業(yè)和機(jī)構(gòu)已經(jīng)在生產(chǎn)中部署了ESB,ESB 的效果得到了一定程度的校驗(yàn),同時(shí)人們對(duì)如何充分發(fā)揮ESB 的作用以及建立SOA 的環(huán)境,為此需要建設(shè)、部署管理哪些基礎(chǔ)設(shè)施有了越來(lái)越清晰的認(rèn)識(shí)。

這些基礎(chǔ)設(shè)施包括:

●  面向流程、事件驅(qū)動(dòng)的架構(gòu)(Event-Driven Architecture,EDA);

●   Web 服務(wù)的治理;

●  高級(jí)Web 服務(wù)規(guī)范(WS-*);

●  復(fù)雜事件處理(Complex Event Processing,CEP);

●  語(yǔ)義數(shù)據(jù)集成。

事件驅(qū)動(dòng)的架構(gòu)談到ESB 就不得不談到面向流程、事件驅(qū)動(dòng)的架構(gòu),因?yàn)镋SB 與這種架構(gòu)配合起來(lái)可謂相得益彰。

通常,點(diǎn)對(duì)點(diǎn)的集成是通過(guò)簡(jiǎn)單的請(qǐng)求/響應(yīng)這種同步的方式來(lái)完成交互的。在這種環(huán)境中,ESB 作為數(shù)據(jù)傳輸和轉(zhuǎn)換的中介可以很好地完成這一任務(wù),但是,ESB 最能發(fā)揮作用、也最能體現(xiàn)其帶來(lái)的靈活性的地方還是在面向流程、事件驅(qū)動(dòng)的架構(gòu)中。

在進(jìn)行跨多個(gè)應(yīng)用、大范圍的集成時(shí),成功的關(guān)鍵是有一個(gè)靈活的架構(gòu),面向流程、事件驅(qū)動(dòng)的架構(gòu)就是這樣的架構(gòu)。通過(guò)使用ESB,事件驅(qū)動(dòng)的架構(gòu)中的每個(gè)應(yīng)用與其他應(yīng)用之間處于一種松耦合狀態(tài)。在這種架構(gòu)中,每個(gè)應(yīng)用獨(dú)立于其他應(yīng)用運(yùn)行完成一項(xiàng)任務(wù),或者異步地完成一組任務(wù)中的一個(gè)。即使在一個(gè)應(yīng)用發(fā)出了一個(gè)請(qǐng)求,然后等待響應(yīng)以完成接下來(lái)的流程時(shí)也是這樣。這個(gè)請(qǐng)求被發(fā)到總線上,按照預(yù)先定義的流程,這個(gè)請(qǐng)求可能會(huì)經(jīng)過(guò)很多應(yīng)用、數(shù)據(jù)源、路由器和轉(zhuǎn)換器。上述一系列的行為都是獨(dú)立完成的,最后的響應(yīng)也是作為一個(gè)獨(dú)立的事件到達(dá)最初的這個(gè)應(yīng)用。

事件驅(qū)動(dòng)的交互模式一個(gè)主要優(yōu)點(diǎn)就是保證應(yīng)用之間的松耦合。只要接入ESB 中,每個(gè)應(yīng)用都不用了解如何與其他的應(yīng)用進(jìn)行交互這些細(xì)節(jié),ESB 負(fù)責(zé)處理所有的協(xié)議、數(shù)據(jù)格式和不同的交互模式。

當(dāng)然,事件驅(qū)動(dòng)的架構(gòu)只有在一定條件下才能有效地工作。首先,ESB 必須具有可靠和高可用的異步消息傳遞能力。在一個(gè)同步的點(diǎn)對(duì)點(diǎn)的集成項(xiàng)目中,如果一個(gè)應(yīng)用沒(méi)有收到一個(gè)請(qǐng)求的響應(yīng),它會(huì)發(fā)出錯(cuò)誤的信息,同時(shí)再次嘗試發(fā)出請(qǐng)求。但是在異步的情況下,應(yīng)用向ESB 發(fā)出一個(gè)請(qǐng)求以后就不再關(guān)心是否會(huì)有響應(yīng),直到一個(gè)新的請(qǐng)求到達(dá),通知這個(gè)應(yīng)用完成下一個(gè)處理。

由于很多時(shí)候企業(yè)的所有交易都必須經(jīng)過(guò)ESB 總線完成,因此ESB 必須有容錯(cuò)能力,支持復(fù)雜的業(yè)務(wù)邏輯,遇到錯(cuò)誤的邏輯也能及時(shí)恢復(fù)。

另外一個(gè)必須滿足的條件是,應(yīng)用需要適應(yīng)這種事件驅(qū)動(dòng)的交互模式。在事件順序非常重要的場(chǎng)合,應(yīng)用必須能夠檢查事件的順序并做出適當(dāng)?shù)奶幚?,否則,ESB 就要有能力保證在復(fù)雜的邏輯情況下(也許這些邏輯還會(huì)有錯(cuò))事件的先后順序。

Web 服務(wù)的治理每個(gè)企業(yè)的SOA 之路都不同,有時(shí)甚至一個(gè)企業(yè)的各個(gè)部門也各不相同。有些企業(yè)中可能同時(shí)有幾支開(kāi)發(fā)隊(duì)伍在使用不同的Web 服務(wù)工具,有些企業(yè)或許已經(jīng)能體驗(yàn)ERP 系統(tǒng)或者其他應(yīng)用服務(wù)環(huán)境中Web 服務(wù)的作用了,在這些企業(yè)中很可能已經(jīng)部署了多個(gè)ESB 產(chǎn)品,當(dāng)然,也很可能一個(gè)也沒(méi)有。

在部署了SOA 架構(gòu)的這些企業(yè)中,Web 服務(wù)管理平臺(tái)是一個(gè)能發(fā)揮重要作用的管理工具。特別是在業(yè)務(wù)流程需要跨越多個(gè)異構(gòu)的環(huán)境時(shí),Web 服務(wù)管理平臺(tái)能提供端到端的業(yè)務(wù)流程的可視性,保證它的安全、進(jìn)行控制和執(zhí)行某些策略。除了跟蹤服務(wù)級(jí)別協(xié)議外,Web 服務(wù)管理平臺(tái)還能提供一個(gè)業(yè)務(wù)的視角來(lái)幫助了解SOA 環(huán)境中某個(gè)服務(wù)失敗后給業(yè)務(wù)帶來(lái)的影響。為了執(zhí)行SLA 和其他的業(yè)務(wù)規(guī)則,它還能動(dòng)態(tài)地調(diào)整SOA 環(huán)境。無(wú)論是點(diǎn)對(duì)點(diǎn)的同步模式下還是異步的事件驅(qū)動(dòng)模式下,這一點(diǎn)都是成立的。

有些Web 服務(wù)管理平臺(tái)能把上述能力擴(kuò)展到ESB、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)訪問(wèn)上,如果服務(wù)的執(zhí)行需要跨不同的平臺(tái)、數(shù)據(jù)庫(kù)、協(xié)議和設(shè)備時(shí),有些甚至還可以提供一些業(yè)務(wù)級(jí)別的指標(biāo)和報(bào)告。

高級(jí)Web 服務(wù)規(guī)范

為了確保Web 服務(wù)之間的順利交互,一些廠商在一起共同制訂了一些高級(jí)的Web 服務(wù)規(guī)范(WS-*),如WS-ReliableMessaging、WS-Security, WS-Addressing、WS-Policy 等,由于這些廠商的大力推動(dòng),這些規(guī)范正在逐步進(jìn)入到應(yīng)用階段。過(guò)去,ESB 由于采用廠商自己定義的、面向消息的中間層作為核心架構(gòu)而被貼上了專有技術(shù)的標(biāo)簽,如今,隨著ESB 逐步采用了這些高級(jí)的Web 服務(wù)規(guī)范,這一點(diǎn)不再成為問(wèn)題。事實(shí)上,正是ESB 讓W(xué)S-*規(guī)范落到實(shí)處,因?yàn)樵贓SB 的頂層提供了這些規(guī)范的實(shí)現(xiàn)之后,使得Web 服務(wù)的可擴(kuò)展性、可管理性和可用性都大大增加了。
此外,在其他平臺(tái)和應(yīng)用服務(wù)供應(yīng)商都實(shí)現(xiàn)這些規(guī)范后,ESB 之間的互操作性也得到了很大改善。復(fù)雜事件處理復(fù)雜事件處理(Complex Event Processing,CEP),有時(shí)也稱事件流處理(Event StreamProcessing,ESP),是事件驅(qū)動(dòng)架構(gòu)領(lǐng)域里的一個(gè)新技術(shù)。作為一種實(shí)時(shí)事件處理并從大量事件數(shù)據(jù)流中挖掘復(fù)雜模式的技術(shù),CEP 通過(guò)分析有意義的事件從而實(shí)時(shí)地取得這些有意義的信息。

該引擎可廣泛應(yīng)用于網(wǎng)絡(luò)入侵探測(cè)、SLA 監(jiān)測(cè)、航空運(yùn)輸調(diào)控以及金融服務(wù)領(lǐng)域的算法交易(在電子市場(chǎng)中通過(guò)計(jì)算機(jī)程序來(lái)進(jìn)來(lái)金融投資的一種交易方法)、金融風(fēng)險(xiǎn)管理、欺詐探測(cè)。通常CEP 引擎被嵌入ESB 中,作為ESB 一項(xiàng)服務(wù)。其中的事件流可以來(lái)自ESB,也可以有其他的來(lái)源,如外部的RFID 閱讀器和證券報(bào)價(jià)信息。CEP 找到了復(fù)雜事件的模型,接下來(lái)可以向業(yè)務(wù)活動(dòng)監(jiān)控系統(tǒng)的控制面板發(fā)出一個(gè)警報(bào),也可以調(diào)用一個(gè)服務(wù)或者通過(guò)ESB 激活下一個(gè)流程。

語(yǔ)義數(shù)據(jù)的集成如果需要,ESB 可以在業(yè)務(wù)流程中插入一個(gè)數(shù)據(jù)轉(zhuǎn)換引擎,這就使得不同應(yīng)用之間的數(shù)據(jù)格式的轉(zhuǎn)化變得非常容易?,F(xiàn)在將一種通用的數(shù)據(jù)格式轉(zhuǎn)換為某一專有的數(shù)據(jù)格式的服務(wù),如驗(yàn)證(Validate)、豐富(Enrich)、轉(zhuǎn)化(Transform)、執(zhí)行(Operation)等,已經(jīng)作為最佳實(shí)踐出現(xiàn)在市場(chǎng)上。

在一個(gè)面向流程、異步事件驅(qū)動(dòng)的計(jì)算環(huán)境中,數(shù)據(jù)轉(zhuǎn)換的方式與點(diǎn)對(duì)點(diǎn)的環(huán)境是不同的。為了讓應(yīng)用真正實(shí)現(xiàn)與其他應(yīng)用的松耦合,應(yīng)用之間用來(lái)通信的數(shù)據(jù)必須從原來(lái)的專有數(shù)據(jù)格式轉(zhuǎn)換為一種通用的或者在整個(gè)組織內(nèi)相對(duì)規(guī)范的數(shù)據(jù)格式,從而使得所有接入SOA 架構(gòu)中的應(yīng)用只需關(guān)心如何從通用的數(shù)據(jù)格式轉(zhuǎn)換成自己專有的數(shù)據(jù)格式或者從專有的數(shù)據(jù)格式轉(zhuǎn)換為通用的數(shù)據(jù)格式,至于目標(biāo)應(yīng)用究竟需要什么樣的數(shù)據(jù)轉(zhuǎn)換則可以通過(guò)ESB 根據(jù)需要來(lái)進(jìn)行。

這就極大地降低了把新應(yīng)用加入到SOA 環(huán)境時(shí)的復(fù)雜性,也降低了現(xiàn)存應(yīng)用之間交互的復(fù)雜性。采用這種方法帶來(lái)的另一個(gè)好處是,中間服務(wù)(如路由、分離、聚合等)可以按照規(guī)范的數(shù)據(jù)格式來(lái)編寫,因此,也降低了程序開(kāi)發(fā)的難度。

盡管普通的映射工具也可以完成從一種數(shù)據(jù)格式到另一種數(shù)據(jù)格式的轉(zhuǎn)換,但在應(yīng)用眾多的場(chǎng)合,數(shù)據(jù)模型非常多而且復(fù)雜、同時(shí)涉及眾多各種不同的應(yīng)用和數(shù)據(jù)源,這時(shí)此類工具往往缺乏管理這些數(shù)據(jù)模型之間的映射和相互關(guān)系的能力。作為ESB 的一個(gè)補(bǔ)充,語(yǔ)義數(shù)據(jù)映射工具已經(jīng)出現(xiàn),它所針對(duì)的正是大規(guī)模部署SOA 時(shí)迫切需要解決的各種數(shù)據(jù)格式之間的關(guān)系問(wèn)題。與之相比,在進(jìn)行點(diǎn)對(duì)點(diǎn)方式的集成時(shí),人們對(duì)每一對(duì)需要通信的應(yīng)用之間的數(shù)據(jù)轉(zhuǎn)換關(guān)系是非常清楚的。

用ESB 來(lái)實(shí)現(xiàn)SOA

事件驅(qū)動(dòng)的架構(gòu)是一種非常適合SOA 的體系結(jié)構(gòu),它作為SOA 的一種最佳實(shí)踐備受關(guān)注,
而ESB 正是將二者聯(lián)系起來(lái)的關(guān)鍵部分。而且,更為關(guān)鍵的是在大型SOA 架構(gòu)中,ESB 擴(kuò)大了集成應(yīng)用的集成范圍,降低了集成的難度,這是以前無(wú)法想象的。只是部署和管理企業(yè)數(shù)據(jù)之間不同含義的復(fù)雜語(yǔ)義映射還不令人滿意,這還是一個(gè)需要繼續(xù)進(jìn)行研究和不斷創(chuàng)新的領(lǐng)域。

到目前為止,已經(jīng)有很多企業(yè)采用和部署了ESB,但除了ESB 外,在規(guī)劃企業(yè)的SOA 戰(zhàn)略時(shí)還有很多需要考慮的。比如,需要運(yùn)行很多服務(wù),各種平臺(tái)之間的交互需要保證安全,需要進(jìn)行管理。幸運(yùn)的是,只要符合SOA 的核心思想,它們通常可以通過(guò)Web 服務(wù)接口接入ESB 集成到SOA 環(huán)境中。(it168)

 

發(fā)布:2007-04-23 11:00    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:

泛普貴陽(yáng)OA快博其他應(yīng)用

貴陽(yáng)OA軟件 貴陽(yáng)OA新聞動(dòng)態(tài) 貴陽(yáng)OA信息化 貴陽(yáng)OA快博 貴陽(yáng)OA軟件行業(yè)資訊 貴陽(yáng)軟件開(kāi)發(fā)公司 貴陽(yáng)門禁系統(tǒng) 貴陽(yáng)物業(yè)管理軟件 貴陽(yáng)倉(cāng)庫(kù)管理軟件 貴陽(yáng)餐飲管理軟件 貴陽(yáng)網(wǎng)站建設(shè)公司