APP下载

基于SOA的异构系统数据整合的研究

2010-02-23冉崇善吴莎莎

陕西科技大学学报 2010年3期
关键词:适配器调用消息

冉崇善, 吴莎莎, 许 光

(陕西科技大学电气与信息工程学院,陕西 西安 710021)

0 引言

信息技术的迅猛发展,使企业对内部数据的整合要求越来越高.为了实现高效的业务数据整合,能够接纳互异的新旧业务的技术成为集成的首选,这样既可以增强企业面向市场的适应性,还大大提高了企业各遗留系统的高重用性,从而为企业的发展带来更高的效益.传统的集成技术主要有CORBA、DCOM、COM+、RMI,它们在某一技术阶段证实是可行的,但都存在一个共同的缺陷,即要求服务客户端与系统提供的服务本身之间必须进行紧耦合,这样就降低了系统的扩展性和易维护性[1].面向服务架构(Service-Oriented Architecture,SOA)屏蔽了各异构系统平台规范的无关性,它在遵循统一标准和规范的基础上开发服务,依据需求将企业应用分解和封装成服务,通过企业服务总线(Enterprise Service Bus,ESB)对服务进行集中管理,使这些服务能在总线上安全的进行交互通信,从而使整个系统更易维护和扩展[2].本文提出了一种基于SOA的SOA-ESB集成模型,对服务集成实现的各处理阶段进行了研究.

1 SOA-ESB系统集成的研究

1.1 SOA-ESB模型的集成原理

SOA将应用功能服务化,采用统一的接口,将系统的封装和业务实现相分离[3],通过已经发布的或可发现的接口为终端用户提供服务,从而使不同的业务组件的管理更加灵活.ESB可在SOA架构的特定环境下对SOA的服务进行集中管理,并且进行服务集成,使用一组标准接口连接应用程序,使应用程序能够直接地或间接地利用统一的服务接口创建新的业务集成或集成已有功能,可见将SOA与ESB进行结合能很好的解决企业集成问题[4].本文所提出的SOA-ESB集成模型的基本原理如下:以SOA理论为指导,通过标准的集成技术将WebServices和XML[5]等技术融合到一个统一的分布式架构中.将集成的对象明确定义为服务,通过集成模型中ESB所提供的标准协议和数据规范,使第三方服务以标准的方式“插入”到平台中,服务之间能以标准的通信方式进行消息交互[6].集成模型中既可以集成新的应用服务,也可以分解、包装遗留系统,提供对应的服务接口,便于其他应用程序调用.根据业务流程分析和组装服务需求,将集成的对象发布到总线中,以便为服务消费者找到匹配的提供者,从而完成服务的互操作,达到企业集成的目的.

图1 SOA-ESB分布式集成模型

2 SOA-ESB集成模型的研究

基于SOA-ESB的集成模型将不同系统中的应用功能通过服务之间定义良好的接口和规范契约联系起来,ESB作为服务提供者和服务请求者之间的消息桥梁对消息驱动和服务进行灵活的管理,使各应用系统的请求和应答在集成中能得到快速的响应.本文设计的基于SOA的SOA-ESB集成模型如图1所示.

在图1中,该集成模型主要由以下4层组成:

(1)用户层.通过对系统内部业务的分析,发出符合逻辑的请求,如发出订单请求、客户请求等,用户仅是发出请求的内容,对请求消息的格式并无要求,消息格式的封装对用户来说是透明的.

(2)ESB消息驱动层.主要对用户请求消息以及回执消息的整个过程进行处理,包括SOAP消息的封装、消息监听器、消息处理器、注册中心以及安全组件等.

(3)抽取层.经过数据抽取器,对应用组件以及各类数据适配器组件服务化.根据业务划分的不同粒度的功能,将这些功能封装成供其他应用调用的外部服务接口,暴露在UDDI中.

(4)应用层.各异构系统以及根据业务需求开发的数据适配器,对各类数据适配器进行集中管理.

该集成模型定义的数据抽取器完成对各系统的业务封装,封装后的服务通过暴露统一接口在注册中心注册.数据适配组完成消息格式的转换,它由若干个针对不同应用的数据适配器组成,在注册中心进行注册.消息监听器监听某系统发来的请求消息,对消息进行解析,从注册中心获取相应的数据适配器完成消息格式的转换,再根据消息中目的服务编号,在UDDI调用相应服务,将目的服务的消息经同一适配器处理按一定格式返回给请求调用者,完成服务的调用.安全组件对发送来的请求消息进行相应加密处理,保证消息的完整性和可靠性.

基于SOA-ESB的集成模型为异构系统提供了集成的实现框架,任何应用系统既可以作为服务的提供方,也可以作为服务的请求方.实现该集成模型系统主要由以下几个阶段组成:

(1)预处理阶段. 首先进行各异构系统的集成分析,分析系统间整个数据的交互流程,找到集成的结合点.需要实现哪些数据的交互,将这些数据进行分类,再根据各系统的权限要求以及市场要求,将这些数据信息经过处理后进行公开.通过数据交互需求,开发符合各操作要求的数据适配器.

通过数据抽取器将各功能进行服务的封装,使用WSDL文档进行服务描述,再发布到ESB层的注册中心.在描述WSDL文档时,加入serviceinfo和dataadainfo两个参数,指明被封装服务的服务信息以及外界应用系统调用这个服务所需要的数据适配器信息.通过调用register函数,将WSDL文档发布到注册中心,生成其他应用系统可调用的发布信息,其中包括serviceskey用来唯一标示发布的服务,descriinfo存储服务的详细描述信息.发布后,请求服务者就可以利用callser函数进行检索相应的服务或适配器.

(2)消息请求阶段. 由于面对的用户不同,用户层发出信息请求消息,仅仅是符合各异构系统自身的请求消息,SOA-ESB是一个通用的集成模型,要求所有的请求信息都规范化.鉴于SOAP消息的优点,本模型使用SOAP消息作为请求和回应的标准格式.SOAP消息通过XML文档进行描述,将不规范的请求消息进行SOAP消息的封装,然后经过传递和交互.从各系统的请求消息中利用selectinfo提取出所需服务和适配器,将这两个作为SOAP消息中

中的相应元素内容,并对消息使用时间戳或SSL等技术通过JAX-RPC环境来实现消息的安全传递.

(3)消息处理阶段. 消息监听器利用getmes函数循环监听是否有请求消息传来,当有消息传来,消息监听中的ismes变为true,将消息进行排队处理,传送给消息处理器,消息处理器接收到规范的SOAP消息,通过selectnode、selectsingnode等函数获得请求消息中的请求数据、适配器以及时间戳,如dir.selectnode(“header adtno),检查时间戳安全属性,在保证消息的可靠性的基础上,根据数据适配器编号向注册中心进行检索,通过getadapter(adtno)获取处理请求处理(如orderinfo)的数据适配器,调用此数据适配器后,将请求处理的数据转换为标准的接口数据,以便于被调用系统服务进行访问.将请求的服务信息作为在UDDI上查找的参数,调用到相应的服务后,对消息进行重新封装,作为用户的返回消息,提取相应的消息字段,通过用户界面可视化显示给用户.

3 基于SOA-ESB的集成模型的应用

基于SOA-ESB进行系统的集成是通过提供方将服务发布,并通过安全的消息形式获取相应服务的过程.本文以产品销售系统下异构的产品销售管理系统和客户管理系统两个子系统的集成为例,说明两系统之间的服务调用流程.

3.1 系统集成需求

产品销售管理系统主要对产品信息、订单等进行维护.客户管理系统主要对客户信息、业务机会等进行管理.销售人员需在了解某产品的库存、单价、数量等基本信息后再与客户进行沟通,这些产品信息需随时从产品销售管理系统中更新到客户管理系统中,由销售人员来确定客户管理系统中的业务机会,如果机会状态为Win,则将对应的所需产品信息添加到业务机会指定的产品中,同时创建订单请求;财务人员收到请求后,在产品销售管理系统中审查订单请求,并可能修正产品的某些数据项(数量、价格)等,处理通过,则确认订单,更新客户管理系统中订单状态为Pass;不通过,则订单状态为Reject,返回退回理由.订单请求通过后,财务人员在产品销售管理系统中生成新的销售订单,并在系统中添加订单客户的信息,同时将新的订单明细(含订单号)和客户信息更新到客户管理系统中.

由上述分析可知,产品销售系统集成的结合点是:订单信息的同步、产品信息的同步、客户信息的同步.

图2 基于SOA-ESB的产品销售系统的模型

3.2 系统集成实现

两系统所使用的平台以及系统内所定义的数据格式不同,采用传统的点对点的交换模式在某一阶段证实是可行的,但是随着以后其他系统的集成加入,集成管理难度较大.为了维护系统集成扩展性,采用基于SOA-ESB的系统集成,通过定义相应的适配器和Web服务屏蔽了信息交互的平台无关性.基于SOA-ESB的产品销售系统的模型如图2所示.

产品销售管理系统与客户管理系统之间并不直接通信,通过集成服务对各自的消息进行数据适配的处理后将符合规范的消息进行通信,完成服务的调用.

根据以上分析,集成服务主要是实现数据(订单信息、客户信息、产品信息)的交互,以下为基于此模型的订单信息的同步说明实现过程.

(1)服务和数据适配器的创建和注册.以创建和注册订单服务为例,本文采用AXIS实现服务,在服务器端创建Java程序,包括order接口以及其creatorder实现类,通过修改web.xml创建AXIS的Servlet,定义Servlet的请求路径,客户端就可以通过这个路径发出对创建订单服务的请求消息,然后配置server-config.wsdd,通过子元素className和allowedMethods的value值与相应接口和实现类进行绑定.将Java程序和server-config.wsdd打成War包,发布到Servlet容器即可.

热熔焊接操作人员应集中培训,考试合格后方能上岗操作,确保接口成功率。建立严格的施工记录签证制度,现场接口编号记录,责任到人,增强全员质量意识。连接好的管道,经目视检查合格后应及时埋设,减少在外界暴露的时间,确保管道使用寿命。

……

(3)订单消息的处理.第一阶段,集成服务平台的服务监听器监听到创建订单的请求消息后,解析其SOAP消息,检查时间戳、有效期限等安全属性,在保证消息可靠的前提下调用Selectsingnode()函数,获取对应的数据适配器编号,如16,将16作为getadapter()函数的参数,向UDDI进行检索订单数据适配器,利用订单数据适配器并根据消息格式映射关系,通过编码将客户管理系统中的创建订单请求消息格式转换为产品销售管理系统中的请求消息格式,集成服务平台将经过处理后的订单请求消息发送给产品销售管理系统,此系统根据符合的请求消息中的服务ID向UDDI进行查询,调用对应服务ID接口,获取订单内容,并更新于本系统中,从而完成创建订单的请求.其实现的部分代码如下:

Xmlnodelist services=base.selectnode(“ equestorderinfo“);

Xmlnode service=services[0]; //获取订单服务ID

String orderadaid =base.Selectsingnode( equest orderadaid);//从消息中获取订单适配器编号

Messagedeal.nowada registcenter=new portalwebservices. Messagedeal.nowada();

Getadapter orderada= registcenter.getadapter(orderadaid);//从注册中心调用order适配器

Xmldocument productstderrequmesg= orderada.mesgtransform(service); //将客户管理系统的订单请求消息转换为产品销售管理系统的消息格式

Xmldocument productsoapmesg=Buildservice.buildmesg(productstderrequmesg); //整理创建转换后的标准消息

第二阶段,财务人员在产品销售管理系统中对订单信息人工核查和处理后,将变更的订单明细要及时刷新于客户管理系统的订单信息中,同理,将产品销售管理系统中的最新订单信息封装成Web服务进行注册并向客户管理系统发送请求消息.客户管理系统解析请求消息,调用相应数据适配器,在UDDI获取最新订单明细,刷新本系统,完成订单信息在两系统中同步.

通过标准的接口可将服务或是适配器的实现和调用完全分离开来,提高集成模型的可扩展性,为以后新系统集成预留空间.不仅对订单信息实现请求,同理可对客户或是产品信息进行查询请求,创建相应的数据适配器即可完成消息的请求和应答操作.采用SOA架构下的ESB集成模式,使产品销售和业务信息保持及时的更新,为销售人员带来更高的业务效率.

4 结束语

本文提出了一种基于SOA的SOA-ESB集成模型,在此模型上搭建产品销售项目并得到成功的实施,对服务消息处理的各阶段实现进行了研究,从而有效的解决了两异构系统的数据同步问题.结果证明,这种松散耦合的系统集成架构为异构系统集成平台提供了高的可扩展性和可维护性,为更好的实现企业完全化的集成打下了良好基础.

[1] 张启文,徐 琪.基于SOA和ESB的供应链快速响应系统集成研究[J].计算机应用,2009,29(9):2 523-2 526.

[2] 曾文英,赵跃龙,齐德昱.ESB原理、构架、实现及应用[J].计算机工程与应用,2008,44(25):225-228.

[3] 刘贤梅,刘 茜,徐 锋.基于SOA的企业应用集成模型的研究[J].计算机工程与设计,2009,30(16):3 790-3 793.

[4]单建洪,卢中延.SOA整合之道[M].北京:电子工业出版社,2008:168-170.

[5] 梁若琼,张莉彦.基于WEB服务的CAD/CAM/STEP-NC的信息集成[J].制造技术与机床,2009,12(8):109-111.

[6]Schmidt M T,Hutchison B,Lambros P,etal.The enterprise service bus:making service-oriented architecture real[J].IBM Systems Journal,2005,44(4):781-797.

猜你喜欢

适配器调用消息
一张图看5G消息
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
基于3D打印的轻型导弹适配器
新型水文测验GPS适配器设计与应用
基于系统调用的恶意软件检测技术研究
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
美国麦格普公司新型M—LOK相机三脚架适配器
消息
消息