基于web services的EAI技术研究
来源:岁月联盟
时间:2010-08-30
0 引言
EAI(Enterprise application integration)即企业应用集成,EAI通过将一系列的方法、技术和工具组织在一起实现对不同应用的合并与协调,从而实现企业信息系统的集成。 目前,由于企业信息自动化要求的提高,各个系统之间的互动和相互通讯更为重要。保护原有投资,重用遗留系统、集成新的应用系统是当前很多中大型企业的重要任务。由于遗留系统的运行平台是异构环境,要横跨多种硬件平台、操作系统、软件技术、数据管理系统以及各种业务应用,不仅要进行复杂的跨业务处理,还要解决复杂的横向协调问题,因此EAI(企业应用集成)的代价一般来说是很高的。 传统的企业应用集成方案有:基于应用编程接口(API)的方案,基于分布式对象技术(如DCOM、CORBA、EJB等)的方案等,当用户群非常庞大时,这种点到点的集成会变得非常困难。再加上DCOM、CORBA或EJB之间出于厂商利益的技术对抗也阻碍了企业应用集成。因此探讨新的集成方案是很有必要的。随着技术、网络运行理念的发展,人们提出一种新的利用网络进行企业应用集成的解决方案——Web服务(Web Services)。1 Web services技术
Web Services是部署在网络上的对象(或组件)集合。它采用对象/组件技术、使用标准的Internet协议、将功能展示在互联网和企业网内部。它的基石是以XML为主的、开放的Web规范技术,因此具有比任何现有的对象技术更好的开放性。 构筑Web Services的关键技术有:XML、SOAP、WSDL、UDDI。其中,简单对象访问协议(SOAP)提供了标准的RPC方法来调用Web Services;Web Services描述语言(WSDL)用于描述Web Services(该web服务的元数据信息:服务的名字、提供者、服务的具体访问地址等)及其函数、参数和返回值;统一描述、发现与集成(UDDI)规范定义了这样的注册中心:Web Services的提供者可以在其中发布相应的WSDL文档, Web Services的消费者则可以在其中找到自己需要的服务,并通过WSDL文档获得如何调用相应Web Services的方法。 SOAP、WSDL、UDDI都是基于XML的协议,正是因为使用XML,使企业应用集成在数据层上达成了一致,解决了不同平台或系统、不同数据结构或模式之间的差异,使得原本复杂的数据层的集成变得简单起来。 前面讨论的所有技术在Web Services中都扮演着一个角色。如图1所示。
图1 Web 服务运作图 Web服务的请求-响应循环可以概述如下: 1)Web服务提供者将本Web服务的元数据信息、实现的功能和接口描述在WSDL文档中,并发布到Web服务注册中心上,其信息被写入UDDI注册表中;Web服务注册中心对Web服务进行分类,并提供Web搜索服务。2)Web服务客户机根据Web服务注册中心提供的规范接口向Web服务注册中心发送Web服务查询请求。 3)Web服务客户机通过分析从Web服务注册中心得到的Web服务绑定信息(WSDL),包括服务的访问路径、服务调用的参数、返回值、传输协议、安全要求等,对自己的系统进行配置。并远程调用请求的Web服务。 4)被请求Web服务处理该远程调用,并调用自己的相应操作,这个操作可能需要如EJB和JDBC数据源等J2EE组件的服务以及其他Web服务。 5)完成以上2)-4)的操作后,被请求Web服务返回给最初的用户一个SOAP消息,得到所需要的结果。 2 使用Web Services技术实现EAI
EAI能够将业务流程、应用软件、硬件和各种标准联合起来,在机构内部或机构之间实现应用系统的无缝集成,使它们象一个整体一样进行业务处理和信息共享。它包括数据传输、接口集成、数据转换、工作流和系统监控5大关键技术。集成层面包括:数据级集成、用户界面级集成、应用级集成、业务流程级集成。本文讨论的重点放在数据级集成和业务流程级集成。2.1 数据级集成
数据级集成是集成其他应用所使用的后端数据,包括:数据共享、数据迁移、数据复制。有两种方式实现:推和拉。基于“推”的集成是将一个应用中的数据“推入”另外一个应用的数据库中,比如数据迁移就可以采用推的方式;而“拉”的方式是利用触发器以及轮询(Polling)的机制,获取数据的更改,并把通知信息写入一个接口表中,然后相关的系统可以轮询这个接口了解是否有数据变动,比如数据共享可以采用拉的方式。 下面举例说明Web Services实现数据共享的方式: ①当服务提供者的数据发生改动时,就激活数据监控触发器,数据监控触发器将其更改数据的通知消息写入接口表中,更新Web服务中心的接口表。 ②服务请求者采取轮询的方式每隔一段时间向Web服务中心发出“查询是否数据更改”的SOAP消息。 ③Web服务中心根据接口表的更新情况向服务请求者返回查询结果:如果数据发生变化,则返回带有数据更新的时间和数据更新内容描述信息的WSDL文档,请求者在得到Web服务中心发回的WSDL文档后,确定数据更新的内容是否是自己需要的数据内容,如果是自己需要的数据内容,则生成SOAP请求消息,绑定服务提供者以获取最新数据;如果数据没有发生变化,则Web服务中心返回“否”的结果即可。2.2 业务流程级集成
业务流程集成是以业务流程为核心的集成问题。业务流程表现为参与者对文档、信息或任务按照规程采取行动,并令其在参与者之间传递。业务流程可以通过过程集成模型决定如何进行交互和业务的处理,并对企业业务过程的状态和性能进行实时监控,通过过程可视化工具,对企业业务流程进行配置和管理。在业务流程中工作流占据着重要地位。工作流是业务流程的机化或自动化,通过计算机软件对工作流过程进行定义、执行并监控。图2展示了使用Web Services技术实现企业内部业务流程集成的一个示例。