劉保汛,劉文杰
(山東省農(nóng)村信用社聯(lián)合社,濟(jì)南 250014)
企業(yè)服務(wù)總線ESB是企業(yè)內(nèi)應(yīng)用系統(tǒng)間最基本的連接中樞,是解決應(yīng)用系統(tǒng)間信息交換及動(dòng)態(tài)路由的企業(yè)級(jí)消息系統(tǒng)。企業(yè)采用基于動(dòng)態(tài)消息路由的服務(wù)總線應(yīng)用架構(gòu)方案,能夠有效隔離業(yè)務(wù)系統(tǒng)的應(yīng)用邏輯功能和服務(wù)總線的集成功能,降低系統(tǒng)互聯(lián)互通的復(fù)雜程度,提升企業(yè)跨系統(tǒng)、跨組織的服務(wù)交互能力,使得企業(yè)IT資產(chǎn)價(jià)值最大化,可以靈活、高效的應(yīng)對市場業(yè)務(wù)需求的變化。
企業(yè)服務(wù)總線定位為企業(yè)級(jí)的服務(wù)集成中樞,遵循基于SOA的開放架構(gòu)體系和技術(shù)標(biāo)準(zhǔn),能夠適應(yīng)客戶業(yè)務(wù)靈活多變的發(fā)展趨勢。企業(yè)服務(wù)總線ESB在企業(yè)中的主要功能:利用集成技術(shù)解決異構(gòu)系統(tǒng)之間的連通性,通過協(xié)議轉(zhuǎn)換、消息解析、消息路由等功能把服務(wù)請求者的數(shù)據(jù)傳送到服務(wù)提供者;通過引入中間層,承接消息中間件的全部功能,通過異步消息處理機(jī)制后,可以實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)間真正的松耦合架構(gòu);提供基礎(chǔ)的集成服務(wù)與用戶定制的應(yīng)用服務(wù),支持服務(wù)封裝、重用、組合與調(diào)度,為各類應(yīng)用系統(tǒng)提供可定制的拓展空間;支持應(yīng)用系統(tǒng)擴(kuò)展部署和多個(gè)邏輯單元的分離部署,具有一定的靈活性和擴(kuò)展性。
消息路由在傳統(tǒng)網(wǎng)絡(luò)通信協(xié)議中屬于網(wǎng)絡(luò)層的概念,ESB消息路由與傳統(tǒng)網(wǎng)絡(luò)不同,它是屬于應(yīng)用層的概念。路由模式是ESB的一種基本信息傳遞模式,即將服務(wù)請求方系統(tǒng)的請求按照一定的路由規(guī)則發(fā)送到相應(yīng)的服務(wù)提供方系統(tǒng)。ESB消息路由是當(dāng)前ESB路由研究的熱點(diǎn),是對傳統(tǒng)消息路由技術(shù)的進(jìn)一步發(fā)展與完善,它通過采用不同的路由方式,同時(shí)引入路由過濾、轉(zhuǎn)換機(jī)制等多項(xiàng)技術(shù),大幅提升了ESB的可用性、可靠性和可控性,為服務(wù)參與方構(gòu)建了一個(gè)簡單、透明、可靠的消息路由機(jī)制[1]。
在商業(yè)銀行信息系統(tǒng)中消息路由[2]通常包含多種方式,主要有:基于目的地址的路由、基于主題的路由、基于內(nèi)容的路由及基于類型的路由等。
某商業(yè)銀行基于動(dòng)態(tài)消息路由的企業(yè)服務(wù)總線應(yīng)用架構(gòu)如圖1所示。
3.1.1 架構(gòu)分析
架構(gòu)包括業(yè)務(wù)層、服務(wù)總線層(ESB)和服務(wù)處理層。業(yè)務(wù)層包含商業(yè)銀行內(nèi)各類業(yè)務(wù)發(fā)起系統(tǒng)如柜面系統(tǒng)、自助設(shè)備系統(tǒng)、電子渠道系統(tǒng)等,業(yè)務(wù)層系統(tǒng)將服務(wù)請求發(fā)送至ESB,并從ESB接受服務(wù)響應(yīng)。ESB(服務(wù)總線)層將業(yè)務(wù)系統(tǒng)的服務(wù)請求動(dòng)態(tài)路由到服務(wù)處理層,并在業(yè)務(wù)層系統(tǒng)和服務(wù)處理層系統(tǒng)之間轉(zhuǎn)換消息格式與通訊協(xié)議,同時(shí)對傳輸?shù)南⑦M(jìn)行監(jiān)控管理和提供安全保證。服務(wù)處理層包括商業(yè)銀行內(nèi)各類服務(wù)處理系統(tǒng)如核心業(yè)務(wù)系統(tǒng)、銀聯(lián)支付系統(tǒng)、中間業(yè)務(wù)系統(tǒng)等,用于處理業(yè)務(wù)系統(tǒng)發(fā)起的各類服務(wù)請求,并將服務(wù)響應(yīng)通過ESB返回至業(yè)務(wù)系統(tǒng)。另外,在此架構(gòu)中,ESB層與服務(wù)處理層需在UDDI(服務(wù)注冊庫)中進(jìn)行服務(wù)注冊。

圖1 ESB應(yīng)用架構(gòu)
3.1.2 工作原理
某商業(yè)銀行業(yè)務(wù)流程實(shí)現(xiàn)如圖1所示,圖中步驟①至步驟⑤流程操作:①業(yè)務(wù)系統(tǒng)分析業(yè)務(wù)流程,并在ESB層內(nèi)的路由表內(nèi)注冊業(yè)務(wù)流程信息及相應(yīng)的消息隊(duì)列信息。②業(yè)務(wù)層與服務(wù)處理層之間存在一些異構(gòu)系統(tǒng),存在不同的消息格式和通訊協(xié)議,ESB層需對消息格式及通訊協(xié)議進(jìn)行轉(zhuǎn)換。③ESB層根據(jù)路由表和訂閱表的隊(duì)列信息分析出該業(yè)務(wù)請求正確的路由方式,并將業(yè)務(wù)請求路由到服務(wù)處理系統(tǒng)。④消息依照路徑定義規(guī)則通過服務(wù)總線在業(yè)務(wù)層與服務(wù)處理層之間進(jìn)行交換。⑤服務(wù)處理層系統(tǒng)將URI隊(duì)列信息寫入訂閱表,訂閱表會(huì)提供服務(wù)的選擇調(diào)用,服務(wù)處理系統(tǒng)根據(jù)訂閱表隊(duì)列信息將消息路由到相應(yīng)的服務(wù)系統(tǒng)。
在基于動(dòng)態(tài)消息路由的ESB應(yīng)用架構(gòu)中,動(dòng)態(tài)消息路由是消息處理中心,所有消息的控制和管理都是由動(dòng)態(tài)消息路由完成。某商業(yè)銀行存在三種消息路由方式如圖2所示:基于目的地址路由、基于主題路由和基于消息內(nèi)容的路由。

圖2 動(dòng)態(tài)消息路由方式
基于目的地址路由是業(yè)務(wù)系統(tǒng)通過分析路由表中系統(tǒng)的隊(duì)列信息,得出消息的目的地址,將服務(wù)請求發(fā)送給正確的服務(wù)處理系統(tǒng)。
基于內(nèi)容的消息路由首先解析消息的內(nèi)容,通過事先配置的路由規(guī)則和邏輯,由消息內(nèi)容決定目的地址,能將每一條輸出的消息直接發(fā)送給正確的服務(wù)處理系統(tǒng)[3]。
基于主題的消息路由是通過發(fā)布訂閱模式進(jìn)行消息通信,提供基于選擇器的訂閱方過濾功能,將發(fā)布方基于主題觸發(fā)的事件消息以廣播的方式一次發(fā)布給發(fā)布方指定的訂閱方系統(tǒng),即服務(wù)處理系統(tǒng)。

圖3 基于主題消息路由
基于主題的消息路由包含如圖3三個(gè)重要組件:一是主題topics,它是發(fā)布方系統(tǒng)和服務(wù)總線通信的媒介,發(fā)布方根據(jù)其需要發(fā)布的事件消息內(nèi)容在服務(wù)總線建立相應(yīng)的主題,主題可以根據(jù)發(fā)布內(nèi)容分層次建立。發(fā)布方系統(tǒng)通過主題向服務(wù)總線發(fā)送事件消息。二是訂閱subscription,它是服務(wù)處理系統(tǒng)和事件總線通信的媒介,每個(gè)訂閱可對應(yīng)一個(gè)或多個(gè)主題。每個(gè)訂閱連接一個(gè)訂閱隊(duì)列,服務(wù)處理系統(tǒng)可從訂閱隊(duì)列中讀取其訂閱的主題的消息。三是選擇器selector,它是在創(chuàng)建訂閱時(shí)用于對該訂閱進(jìn)行過濾的組件。通過在選擇器添加過濾條件可指定主題消息發(fā)送到指定訂閱的訂閱隊(duì)列中。
本文研究了基于動(dòng)態(tài)消息路由的企業(yè)服務(wù)總線在商業(yè)銀行中的應(yīng)用,以某商業(yè)銀行服務(wù)總線信息系統(tǒng)架構(gòu)著手,逐一描述業(yè)務(wù)層、ESB層與服務(wù)處理層這三層架構(gòu),研究了商業(yè)銀行內(nèi)ESB常用的動(dòng)態(tài)消息路由方式,其中重點(diǎn)研究了基于主題的消息路由方式。通過實(shí)踐表明,采用基于動(dòng)態(tài)消息路由的企業(yè)服務(wù)總線架構(gòu)能夠有效提高消息路由響應(yīng)能力,減少冗余消息,實(shí)現(xiàn)路由與流量的平衡,極大提高信息資源利用率。