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