解宜
摘要:基于SOA架構的企業(yè)服務總線(ESB)已成為企事業(yè)信息化建設的重點內(nèi)容之一。文中簡要介紹了基于SOA的社保ESB數(shù)據(jù)交互平臺的總線架構,給出了解決金保系統(tǒng)的維護成本增多、與交互系統(tǒng)之間耦合性強等問題的解決方法,重點分析了ESB中負載均衡的方案,闡述了基于SOA架構的ESB在社保行業(yè)應用系統(tǒng)集成中的重要作用。
Abstract: Enterprise service bus (ESB) based on SOA architecture has become one of the key contents of enterprise information construction. This paper briefly introduces the bus architecture of social security ESB data interaction platform based on SOA. Solutions to the problems of increasing maintenance cost and strong coupling with interactive system are given. The load balancing scheme in ESB is analyzed emphatically. This paper expounds the important role of ESB based on SOA architecture in the application integration of social security industry.
關鍵詞:面向服務的系統(tǒng)架構(SOA);企業(yè)服務總線(ESB);負載均衡;網(wǎng)關(GateWay)
Key words: SOA;ESB;Load Balancing;GateWay
中圖分類號:TP311 文獻標識碼:A 文章編號:1006-4311(2019)03-0148-03
0 引言
近年來,隨著“金保工程”的全面建設,社保的業(yè)務系統(tǒng)與外界的公共數(shù)據(jù)交換、共享的需求也日益增加,橫向需要與市民政、衛(wèi)生、物價、計生等部門交換信息,縱向與轄市區(qū)、部、省社保專網(wǎng)連接,一個覆蓋全面的立體數(shù)據(jù)共享網(wǎng)絡雛形已初步形成。社保信息系統(tǒng)對內(nèi)和對外都出現(xiàn)了精細化管理的要求,從而對系統(tǒng)的交互能力提出了更高的要求。內(nèi)部來說,需要跟人事工資系統(tǒng)、大市公共庫、就業(yè)綜合系統(tǒng)相互交互,并且需要兼容Socket、Ftp等不同的通信協(xié)議和方式以及不同報文格式等;外部要交互的內(nèi)容也日益增多,例如衛(wèi)計的生育服務聯(lián)系單系統(tǒng)、社保卡合作各銀行、實時的銀聯(lián)、社保費征收的地稅等其它政府部門。原有的數(shù)據(jù)共享機制已難以滿足相應的業(yè)務需求和安全要求。
考慮到這種嚴峻形勢,社保部門建設了基于SOA(Service-Oriented Architecture,SOA)架構的企業(yè)服務總線(Enterprise Service Bus,ESB)數(shù)據(jù)交換平臺,以梳理信息資源為基礎,以先進的數(shù)據(jù)交換技術為支撐,搭建了結構合理、體系科學的信息共享架構,建立了方便快捷的信息服務機制,拓展了數(shù)據(jù)交換領域,為信息交換與共享提供支撐,實現(xiàn)了數(shù)據(jù)共享、互聯(lián)互通的信息共享服務平臺。
文獻[8]指出ESB是開放的基于標準的連接主干,它的作用是將服務與服務關聯(lián)起來,主要功能有消息之間的轉換、建立轉換的機制、提供路由以及容器。文中講到ESB是SOA的關鍵和根基。在實際的開發(fā)過程中,我們首先應該對交換平臺的建設有全方位、較清晰的長期規(guī)劃和技術實現(xiàn)路線,按照“整體規(guī)劃、逐步切換”的原則,分期有序地建設一個兼容性較為強的、適合多協(xié)議的、多系統(tǒng)使用的平臺。
企業(yè)服務總線(ESB)實現(xiàn)了通信的互相連接、協(xié)議的相互轉換、有很高的可移植性和安全性標準規(guī)范的平臺。很多公司生產(chǎn)了自己的ESB產(chǎn)品,他們共有的特性有:有標準規(guī)范的消息架構,對WebService服務、J2EE以及.NET等提供標準的互連適配器,提供標準規(guī)范的數(shù)據(jù)轉換引擎,在應用層面是基于SOA部署,安全性達標。這些產(chǎn)品都支持多語言開發(fā),結合ESB的可移植性,使它真正成為支持多語言、多平臺的應用級系統(tǒng)。
1 SOA及ESB簡介
SOA提供了一種面向服務的、開放規(guī)范標準的方式來描述軟件系統(tǒng)的架構,其輸出了標準規(guī)范的路徑用以實現(xiàn)系統(tǒng)及服務之間的交互。這種架構使得系統(tǒng)不管在內(nèi)部還是外部都可以方便地構建全新的業(yè)務流程來滿足經(jīng)辦機構的日益精細的業(yè)務要求。而原子化的模塊封裝又使模塊的重復使用成為慣常,這樣不論內(nèi)部的業(yè)務結構或邏輯做了任何的改動,基于ESB的調(diào)用就可以不要關心核心業(yè)務的修改和變化。這樣做的好處是不僅可以降低和減少維保的成本費用, 這樣還不是最主要的,SOA的主要目的是靈活。有了SOA的面向服務的功能以及使交互接口原子化的作法使各個不同架構的系統(tǒng)甚或不同地域的系統(tǒng)的交互不成問題,傳統(tǒng)意義上的點對點的如蜘蛛網(wǎng)般的交織模式的雜亂交互將被打破。SOA提供的這種面向服務的松耦合結構使得服務的供需方做到了安全隔離,雙方的任何變動都不會影響到對方。從而使得業(yè)務流程的多樣化獨立性也更加增強,在業(yè)務層面只需要關心簡單的數(shù)據(jù)流和工作流。在需要交互的系統(tǒng)上利用平臺方便地重新封裝了原子化的功能模塊后,我們這時就可以用類似搭積木的非常簡單便利的可視化的方式把服務搭成業(yè)務需要的全新的流程。從平臺及系統(tǒng)的方向來看,集成只是表面上開起來在定義服務的不同組合而已。
企業(yè)服務總線(ESB)是一種新的軟件架構,成為業(yè)務應用系統(tǒng)可采用的、基于標準的、作為構建業(yè)務應用中樞神經(jīng)系統(tǒng)骨干的技術。是SOA體系集成的核心部件。它連接和集成企業(yè)和組織的IT基礎設施,跨越不同地域,支持不同的傳輸服務。為服務之間的透明交互提供了通訊的基礎設施,實現(xiàn)了一致的、與服務所在地無關的并且獨立與協(xié)議層的方式訪問服務。這種與服務所在地無關性意味者服務的請求與響應是由服務總線來作為媒介。
ESB 的提供的功能主要是:
①對各種通信協(xié)議的起到中介的作用:提供方和需求方的交易使用不同的協(xié)議傳輸。比如說服務的需求方可以使用 HTTP,而服務的提供方則可以使用標準的SOAP。
②對消息提供路由功能:將消息發(fā)送到提供方,路由消息到不同的業(yè)務隊列里。對于不同的消息格式,提供相應的剖析器進行解析,實現(xiàn)它們之間的格式轉換。如對于用戶的bit stream的輸入信息可以輸出為XML的格式,反之亦然。從而無縫地連接現(xiàn)有的應用,并可以采用XML的新標準開發(fā)新的應用。提供檢查和過濾功能,根據(jù)所傳輸數(shù)據(jù)的內(nèi)容做動態(tài)路由。
③對數(shù)據(jù)的轉換功能:通過消息字典來對來自不同應用系統(tǒng)傳來的消息內(nèi)容進行識別和解析,還可以根據(jù)不同的消息通過定制不同的消息流來輸送到不同的應用系統(tǒng)。這是非常適合信息平臺如何建立一個數(shù)據(jù)集中、交換,并支持系統(tǒng)平滑地擴展這樣的基礎數(shù)據(jù)交換支撐平臺的需求,以后對現(xiàn)有系統(tǒng)的擴展將不會影響整個系統(tǒng)的架構。
④對各種事件的接口功能:提供強大的連接性,既提供各種與現(xiàn)有商業(yè)應用連接的Adapter,可以將系統(tǒng)內(nèi)部各種應用系統(tǒng)進行無縫連接,如SAP、 Notes、 Sibel、SWIFT、People Soft、I2 等,支持各種標準數(shù)據(jù)格式或應用的接口,如XML、JDBC、對于這些應用可以不必開發(fā)新的接口,減少開發(fā)的工作量;同時提供應用程序接口,以開發(fā)客戶化的連接件。
2 社保行業(yè)ESB架構
ESB為社保部門所有應用系統(tǒng)提供基于服務的交互和數(shù)據(jù)的交互,通過建立合適的標準的集成規(guī)范、服務規(guī)范,實現(xiàn)服務的統(tǒng)一注冊與發(fā)布,為社保行業(yè)最終達到面向服務的(SOA)、松耦合的總體架構奠定堅實的基礎。
設計的社保ESB系統(tǒng)如圖1所示,包含如下成員:外部網(wǎng)關GW1,作為社保外部系統(tǒng)訪問社保業(yè)務系統(tǒng)的入口,網(wǎng)關再將請求分發(fā)至后端ESB節(jié)點;內(nèi)部網(wǎng)關GW2,作為社保系統(tǒng)訪問社保內(nèi)部(或外部)系統(tǒng)的入口,網(wǎng)關再將請求分發(fā)至后端ESB節(jié)點;ESB節(jié)點1,ESB處理節(jié)點,接收來自于內(nèi)外網(wǎng)關的請求,并進行相應處理,與ESB節(jié)點2組成集群;ESB節(jié)點2,ESB處理節(jié)點,接收來自于內(nèi)外網(wǎng)關的請求,并進行相應處理,與ESB節(jié)點1組成集群;監(jiān)控平臺應用/數(shù)據(jù)庫服務器,部署監(jiān)控平臺應用,用于監(jiān)控ESB系統(tǒng)服務的狀態(tài)、交易的信息。
3 社保行業(yè)ESB負載均衡方案
ESB網(wǎng)關作為訪問ESB平臺的整個入口,在系統(tǒng)中占著舉足輕重的作用。因此,需要為網(wǎng)關定義高可用設計,采用基于硬件負載均衡設備的高可用方案,無論是F5還是認證供應商?;贔5硬件負載均衡設備的高可用方案設計如圖2所示。
負載均衡算法主要解決如何海量的請求發(fā)送到后臺的服務器,而不造成網(wǎng)絡擁塞的問題。
社保ESB平臺采用了輪詢的負載均衡算法,其工作原理是每次將來自外部的請求輪流分配到后臺內(nèi)部中的服務器,從1開始,直到N(內(nèi)部服務器的個數(shù)),然后如此從頭開始循環(huán)。即每次調(diào)度執(zhí)行i=(i+1)mod n,并選出第i臺服務器。在硬件負載平衡部署中,均衡器將進來的服務輪流地分發(fā)給均衡組中的下一個環(huán)節(jié),如此這樣一直連續(xù)、周而復始,每個集群的環(huán)節(jié)都在均等的地位下被循環(huán)選擇。通過配置Http協(xié)議、Socket 協(xié)議來構建心跳探測機制,在F5上完成探測ESB鏈路的狀態(tài)。負載均衡設備發(fā)送HTTP/SOAP報文探測包,探測特定ESB網(wǎng)關上的Webservice。若探測結果與期望設置不符合,則停止向問題網(wǎng)關分發(fā)數(shù)據(jù)。設備提供針對來自外部或內(nèi)部系統(tǒng)客的客戶端請求,在外部或者內(nèi)部網(wǎng)關的多個實例間進行輪詢平均分發(fā),保持網(wǎng)關實例間壓力均衡。以外部發(fā)起系統(tǒng)為例,在上圖中,GW11、GW12的IP地址和端口號對外是隱藏的,當外部發(fā)起請求需要訪問金保系統(tǒng)中的資源時,它實際訪問的地址是平臺上給定的F5負載均衡器上的虛擬地址。外部發(fā)起系統(tǒng)的請求通過負載均衡器F5后,會根據(jù)預定的輪循負載均衡算法到達GW11和GW12其中一臺服務器上。假設到達GW11上,在服務器ESB2上取得相應的信息后,GW11把該信息發(fā)送回外部發(fā)起系統(tǒng)。返回的信息通過負載均衡器F5后,信息返回到外部發(fā)起系統(tǒng)。在這整個交互的過程中,負載均衡器F5起著承上啟下的作用,對內(nèi)對外的訪問都需要通過負載均衡器F5來調(diào)度。
此外,在主動或被動代理和或多個執(zhí)行組之間使用F5負載平衡器,對于對外提供服務的服務器,在F5的BIG-IP上需要通過虛擬服務的配置來實現(xiàn)負載均衡,與此同時需要不斷地來檢查機器的運轉情況,如果發(fā)現(xiàn)某臺機器有故障,則需要將這臺故障機器從我們的負載均衡配置中拿掉。F5的BIG-IP是用虛擬的地址為需求方來提供服務的。所以,它能夠成文大部分網(wǎng)絡應用提供負載均衡服務。平臺可以根據(jù)不同的端口將需求分配到不同的服務器。F5的BIG-IP會不停地對提供方機器進行檢驗,當需求方請求提供方的服務時,F(xiàn)5的BIG-IP根椐提供方的機器配置情況,自動地匹配性能最好的機器來給需求方提供最優(yōu)的服務請求。正因為如此,所以能夠充分地利用所有的優(yōu)質(zhì)的服務器資源,將所有流量均衡地分配到了各個服務器,這樣就有效地避免了不平衡現(xiàn)象的發(fā)生。
4 總結
社?;赟OA的企業(yè)服務總線數(shù)據(jù)交互平臺建成之后,通過原子化的配置即可實現(xiàn)與外部門及其它系統(tǒng)地數(shù)據(jù)安全交互,一個平臺為多個系統(tǒng)服務,縮短了系統(tǒng)開發(fā)周期,增強了系統(tǒng)可維護性,通過數(shù)據(jù)交換區(qū)和內(nèi)網(wǎng)的部署保證了數(shù)據(jù)安全性,為應用保駕護航,最后在實際應用中產(chǎn)生很大經(jīng)濟價值。目前平臺已與市衛(wèi)計委、8大社保合作銀行、區(qū)縣社保、銀聯(lián)、市信用辦、市民政局、市殘聯(lián)、市地稅、市公積金中心、社保微信公眾號開發(fā)商、公務員考核系統(tǒng)開發(fā)商、等近20余家政府部門企事業(yè)單位建立了交互通道,開發(fā)涉及業(yè)務的接口244個,正式啟用接口119個,正在開發(fā)的接口76個,接口日均交易量為38萬條,為社保業(yè)務在數(shù)據(jù)共享及大數(shù)據(jù)應用方面打下了扎實的技術基礎。綜合分析數(shù)據(jù)交互平臺技術后,可以發(fā)現(xiàn),該平臺擁有較強的可擴展性,對未來社保的擴展也可以支持,是電子政務發(fā)展的有力推動因素。
參考文獻:
[1]王斐,祝開艷.面向服務的架構(SOA)及其應用模型研究[J].科技資訊,2007,7:46.
[2]借助IBM Cloud Private云集成工具,連接新領域.IBM官網(wǎng).2017,11.
[3]曾慶妍,杜叢強.基于ESB的SOA框架技術在銀行系統(tǒng)中的應用分析[J].信息技術與信息化,2018(04):57-59.
[4]苑擎飏,宋洪波.SOA-ESB服務總線技術在企業(yè)應用中的研究與實踐[J].價值工程,2018,37(10):241-243.
[5]劉保汛,劉文杰.基于SOA架構的ESB在商業(yè)銀行中的研究與實現(xiàn)[J].信息技術與信息化,2018(Z1):19-21.
[6]秦方鈺,劉冬梅,鄧寶松.基于企業(yè)服務總線的數(shù)據(jù)共享與交換平臺[J].電腦編程技巧與維護,2015(06):55-56,66.
[7]吳小娥,李其仲.基于SOA架構的ESB在卷煙工廠的設計與應用[J].信息技術,2014(03):88-91,99.
[8]謝繼暉,白曉穎,陳斌,肖思南.企業(yè)服務總線研究綜述[J].計算機科學,2007(11):13-18.
[9]蔡芳.基于ESB的應用系統(tǒng)集成方法初探[J].電腦知識與技術,2018,14(19):232-233,242.