基于SOA架构的ESB在社保行业的设计与应用
摘要:基于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.
上一篇:钮扣自动计量包装机的设计