摘 要: 詳細(xì)地論述SOA及企業(yè)服務(wù)總線的基本概念、工作原理,借助IBM消息中間件MQ和總線產(chǎn)品MB為商業(yè)銀行分析設(shè)計(jì)出面向服務(wù)架構(gòu)的企業(yè)服務(wù)總線,打造一個(gè)隨需而變的銀行SOA企業(yè)應(yīng)用平臺(tái),以應(yīng)對(duì)不斷變化的市場(chǎng)環(huán)境和用戶需求。
關(guān)鍵詞: 面向服務(wù)架構(gòu); 企業(yè)服務(wù)總線; 集成
目前,我國(guó)銀行建設(shè)處于快速發(fā)展期,銀行業(yè)務(wù)不斷更新,銀行客戶對(duì)服務(wù)質(zhì)量的要求也不斷提高,銀行與客戶之間的關(guān)系將由單純的買賣關(guān)系逐漸向復(fù)雜的服務(wù)關(guān)系轉(zhuǎn)變。隨著銀行服務(wù)功能的增多以及銀行客戶需求的不斷變化,許多銀行通過(guò)增加各種渠道來(lái)拓寬自己的市場(chǎng)。然而,零售銀行多渠道趨勢(shì)雖然豐富了銀行的渠道供給和服務(wù)品質(zhì),但同時(shí)也給銀行和客戶雙方帶來(lái)了產(chǎn)品之外的渠道問(wèn)題,更給現(xiàn)有銀行的IT架構(gòu)帶來(lái)了新的問(wèn)題和挑戰(zhàn)??蛻粼谑褂勉y行多渠道產(chǎn)品時(shí)往往會(huì)碰到一系列的問(wèn)題,比如:
(1)渠道之間信息不共享。某客戶開(kāi)通銀行賬戶時(shí),已經(jīng)填寫了個(gè)人信息,但是在網(wǎng)上開(kāi)通時(shí)還是要求該用戶輸入很多重復(fù)的個(gè)人信息。
?。?)渠道之間沒(méi)有很好的連貫性。某客戶丟失了信用卡,第一時(shí)間通過(guò)網(wǎng)上銀行進(jìn)行了信用卡掛失操作后,緊接著打電話向銀行說(shuō)明,可是卻發(fā)現(xiàn)該客戶并沒(méi)有掛失操作,因?yàn)殂y行客服人員不知道如何在網(wǎng)上銀行渠道上進(jìn)行業(yè)務(wù)操作。
(3)渠道之間的數(shù)據(jù)信息缺乏一致性。某客戶在自動(dòng)存款機(jī)上往個(gè)人賬戶存款人民幣一千元,提示存款操作成功,但是查詢賬戶余額,卻發(fā)現(xiàn)個(gè)人銀行賬戶里還是原來(lái)的一百元。
針對(duì)這些問(wèn)題和挑戰(zhàn),銀行業(yè)需要對(duì)原有的業(yè)務(wù)渠道進(jìn)行重新整合。近年來(lái)風(fēng)靡全球的面向服務(wù)架構(gòu)SOA (Service-Oriented Architecture)提供了解決之道——其不考慮平臺(tái)和開(kāi)發(fā)環(huán)境的差異,能實(shí)現(xiàn)銀行現(xiàn)有各業(yè)務(wù)模塊的重用,并將這些系統(tǒng)有機(jī)地整合以實(shí)現(xiàn)信息的共享和交互,使之成為一個(gè)靈活、開(kāi)放、高效和可靠的系統(tǒng)。此系統(tǒng)全面整合前端渠道、中間業(yè)務(wù)平臺(tái)和各個(gè)業(yè)務(wù)系統(tǒng)子模塊,不僅可以解決當(dāng)前銀行IT系統(tǒng)更新?lián)Q代問(wèn)題,而且也符合銀行業(yè)務(wù)未來(lái)的發(fā)展需求。
1 面向服務(wù)架構(gòu)、企業(yè)服務(wù)總線
1.1面向服務(wù)架構(gòu)
維基百科將面向服務(wù)的架構(gòu)解釋為:它是一種軟件架構(gòu)的概念,定義了通過(guò)使用各種各樣的服務(wù)來(lái)滿足軟件用戶不斷變化的需求。在面向服務(wù)的架構(gòu)環(huán)境中網(wǎng)絡(luò)上的結(jié)點(diǎn)通過(guò)服務(wù)的形式向外部提供資源,其他結(jié)點(diǎn)就可以用標(biāo)準(zhǔn)的方式來(lái)訪問(wèn)[1]。
Gartner公司認(rèn)定面向服務(wù)的架構(gòu)為:它體現(xiàn)客戶端/服務(wù)器的軟件架構(gòu)思想,但它的客戶端/服務(wù)器顯著區(qū)別在于它重視整個(gè)系統(tǒng)中組件之間松散耦合[2]。
從上述的這些定義中不難看出:面向服務(wù)的架構(gòu)是組織服務(wù)的一種架構(gòu)模式,支持面向服務(wù)的特征。面向服務(wù)的架構(gòu)主要包括應(yīng)用程序前端、服務(wù)、服務(wù)存儲(chǔ)庫(kù)和服務(wù)總線四部分,其關(guān)系如圖1所示[3]。應(yīng)用程序前端相當(dāng)于客戶端,它初始化面向服務(wù)的架構(gòu)的應(yīng)用。服務(wù)則包括服務(wù)合同、服務(wù)實(shí)現(xiàn)和服務(wù)接口,而服務(wù)實(shí)現(xiàn)又包括業(yè)務(wù)邏輯和數(shù)據(jù)。服務(wù)儲(chǔ)存庫(kù)則是存儲(chǔ)服務(wù)的地方,同時(shí)也提供了各種發(fā)現(xiàn)的機(jī)制,以快速地定位所需要的服務(wù)。服務(wù)總線則提供了服務(wù)之間通信的基礎(chǔ)架構(gòu),它提供了各種通信的可能,屏蔽了技術(shù)和平臺(tái)之間的差異,同時(shí)也提供了一些基礎(chǔ)服務(wù)。
1.2 企業(yè)服務(wù)總線
企業(yè)服務(wù)總線ESB(Enterprise Service Bus)就是在特定環(huán)境下,即SOA架構(gòu)中,實(shí)施EAI的一種方式。其實(shí),企業(yè)服務(wù)總線是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)結(jié)合的產(chǎn)物。ESB是一種在松散耦合的服務(wù)與應(yīng)用之間標(biāo)準(zhǔn)的集成方式,它提供了網(wǎng)絡(luò)中最基本的中樞,是構(gòu)筑企業(yè)神經(jīng)系統(tǒng)的必要元素[4-5]。
企業(yè)服務(wù)總線運(yùn)用SOA松耦合的思想對(duì)企業(yè)運(yùn)用進(jìn)行集成,借助靈活的服務(wù)接口和易用的Adapter為企業(yè)應(yīng)用創(chuàng)建一個(gè)統(tǒng)一的平臺(tái),方便SOA應(yīng)用和遺留系統(tǒng)的集成,同時(shí)其強(qiáng)大的可擴(kuò)展性也顯露無(wú)疑,其架構(gòu)如圖2所示。
從物理角度來(lái)看,企業(yè)服務(wù)總線是使用Web服務(wù)、消息中間件、智能路由和格式轉(zhuǎn)換的架構(gòu);從邏輯角度來(lái)看,企業(yè)服務(wù)總線與SOA架構(gòu)的原則相一致,并給出了如何更好地管理服務(wù)的解決辦法,以及在分布式環(huán)境中如何很好地進(jìn)行服務(wù)交互的功能。企業(yè)服務(wù)總線采用分級(jí)的層次結(jié)構(gòu),用來(lái)連接不同業(yè)務(wù)領(lǐng)域的客戶群[6]。
1.3 面向服務(wù)架構(gòu)與企業(yè)服務(wù)總線關(guān)系
隨著SOA技術(shù)的發(fā)展,企業(yè)服務(wù)總線的應(yīng)用也變得更加廣泛。在SOA的架構(gòu)體系中,ESB被看作是整合企業(yè)中各種異構(gòu)軟件的一個(gè)集成平臺(tái),是服務(wù)提供者及消費(fèi)者的媒介,所提供的服務(wù)具有中介作用。
企業(yè)服務(wù)總線作為面向服務(wù)架構(gòu)體系的整合平臺(tái),被看作是整個(gè)系統(tǒng)架構(gòu)中的核心部分。企業(yè)服務(wù)總線和面向服務(wù)架構(gòu)是相輔相成的,沒(méi)有所謂的一方重要,另一方次要,二者都是很重要的。只有有了企業(yè)服務(wù)總線,面向服務(wù)架構(gòu)才能釋放它的最大價(jià)值,從而使二者的功能發(fā)揮到最佳狀態(tài)。
2 企業(yè)服務(wù)總線分析和設(shè)計(jì)
2.1開(kāi)發(fā)平臺(tái)介紹
IBM消息中間件產(chǎn)品WebSphere Message Queue具有統(tǒng)一的標(biāo)準(zhǔn)、高穩(wěn)定性和高安全性等特性。WebSphere Message Queue中的主要操作對(duì)象是消息和隊(duì)列。它借助在相異的子系統(tǒng)中不斷流動(dòng)的消息,來(lái)高效地實(shí)現(xiàn)對(duì)各個(gè)子系統(tǒng)的串聯(lián),充分利用各個(gè)松散耦合的子系統(tǒng)向外面暴露的功能,從而完成某個(gè)商業(yè)應(yīng)用的整個(gè)工作流程[7]。
IBM業(yè)務(wù)集成中間件產(chǎn)品WebSphere Message Broker,是一種“企業(yè)服務(wù)總線”產(chǎn)品,采用MQ作為內(nèi)部通信機(jī)制,支持各種應(yīng)用接口和網(wǎng)絡(luò)協(xié)議,為企業(yè)應(yīng)用提供豐富多樣的接入方式。同時(shí),通過(guò)方便快捷的編程方式來(lái)提供消息路由、格式轉(zhuǎn)換和服務(wù)封裝等功能,更重要的是為企業(yè)系統(tǒng)的應(yīng)用互連提供方便、高效和安全的平臺(tái)[8]。
2.2 企業(yè)服務(wù)總線在銀行系統(tǒng)架構(gòu)中的地位
為了實(shí)現(xiàn)對(duì)銀行業(yè)務(wù)多渠道整合,將企業(yè)服務(wù)總線在整個(gè)銀行IT集成系統(tǒng)中設(shè)計(jì)兩層。頂層的ESB用于整合銀行的交易記錄,連接銀行內(nèi)部和外部網(wǎng)絡(luò);底層的ESB用于整合銀行系統(tǒng)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù),它與銀行的信息管理系統(tǒng)、信息倉(cāng)庫(kù)及分析決策系統(tǒng)連接;當(dāng)然,為了以后業(yè)務(wù)的拓展,ESB要與銀行的其他系統(tǒng)相連。銀行IT系統(tǒng)集成整體框架圖如圖3所示。
低層通信則是采用IBM公司生產(chǎn)的消息中間件WebSphere系列的WebSphere Message Queue來(lái)實(shí)現(xiàn)消息之間的通信。不同機(jī)器上的不同隊(duì)列管理器之間建立傳輸隊(duì)列、發(fā)送通道、接收通道實(shí)現(xiàn)互連通信,其企業(yè)服務(wù)總線運(yùn)行示意圖如4所示。
2.3企業(yè)服務(wù)總線在銀行系統(tǒng)架構(gòu)中的功能
銀行IT系統(tǒng)集成中的企業(yè)服務(wù)總線包括請(qǐng)求與響應(yīng)方報(bào)文校驗(yàn)、交易動(dòng)態(tài)路由、請(qǐng)求與響應(yīng)方協(xié)議轉(zhuǎn)換、共享緩存、交易異常處理、請(qǐng)求與響應(yīng)方編碼轉(zhuǎn)換、交易日志管理、請(qǐng)求方訪問(wèn)控制、交易超時(shí)控制、文件傳輸?shù)裙δ苣K,具體如圖5所示。
2.4 企業(yè)服務(wù)總線的實(shí)現(xiàn)
根據(jù)系統(tǒng)功能模塊的設(shè)計(jì),系統(tǒng)功能模塊通過(guò)三條消息流具體實(shí)現(xiàn)。第一條消息流是服務(wù)請(qǐng)求者發(fā)出SOAP請(qǐng)求消息接收、處理,最后動(dòng)態(tài)路由到相應(yīng)的服務(wù)提供端;第二條消息流是對(duì)服務(wù)提供者處理完后的相應(yīng)消息進(jìn)行接收、處理,最后動(dòng)態(tài)路由到相應(yīng)的服務(wù)請(qǐng)求者;第三條消息流是當(dāng)服務(wù)提供端向注冊(cè)庫(kù)中發(fā)布新的服務(wù)后,該消息流會(huì)被觸發(fā),自動(dòng)刷新緩沖存儲(chǔ)器中的相應(yīng)配置信息。整體消息流結(jié)點(diǎn)部署如圖6所示。
通過(guò)開(kāi)發(fā)部署企業(yè)服務(wù)總線,銀行IT部門可以快速地、最大程度地重用現(xiàn)有子系統(tǒng)資源,既節(jié)省了開(kāi)發(fā)時(shí)間,又省去了大量的費(fèi)用,面對(duì)市場(chǎng)客戶不斷變化的需求和IT業(yè)界技術(shù)更新,行內(nèi)整個(gè)IT系統(tǒng)也能應(yīng)對(duì)自如、隨需而變。目前,該系統(tǒng)已經(jīng)完成各種測(cè)試和部署,整體運(yùn)行良好,受到客戶的好評(píng)。面對(duì)國(guó)內(nèi)許多大中小型企業(yè)內(nèi)部IT系統(tǒng)的現(xiàn)狀,該理念和技術(shù)非常具有實(shí)際意義和推廣價(jià)值。
參考文獻(xiàn)
[1] 陳宇翔.精通WebSphere MQ[M].合肥:安徽科學(xué)技術(shù)出版社,2004.
[2] 甘荃,婁麗軍. IBM WebSphere MQ基礎(chǔ)教程[M]. 北京:電子工業(yè)出版社,2004.
[3] 張寶珠. 基于面向服務(wù)架構(gòu)的應(yīng)用集成研究天津[D].天津:理工大學(xué), 2008.
[4] 趙亮,史維峰.基于SOA的企業(yè)服務(wù)總線技術(shù)研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(5):123-124,141.
[5] 牛剛,張忠能.輕量級(jí)ESB研究與設(shè)計(jì)[J]. 微型電腦應(yīng)用,2009,25(2):14-16.
[6] 丁昭華.基于ESB的企業(yè)應(yīng)用集成技術(shù)研究與應(yīng)用[D].長(zhǎng)沙:中南大學(xué),2007.
[7] 李珉.ESB企業(yè)服務(wù)總線解決方案剖析[EB/OL].(2006-12-xx)http://tech.51cto.com/art/200612/36357.htm.
[8] 蔡昭權(quán).基于ESB的異構(gòu)系統(tǒng)集成實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2008,28(2):38-54.