一种WebService处理引擎系统及处理方法

文档序号:6370694阅读:173来源:国知局
专利名称:一种Web Service处理引擎系统及处理方法
技术领域
本发明涉及一种信息技术领域,特别是一种旨在将传统的以同步方式处理WebService消息的方式转变为以基于事件驱动架构(Event Driven Architecture, EDA)的异步处理引擎系统及处理方法。
背景技术
Web Service 是面向服务架构(Service-Oriented Architecture, S0A)中重要的技术支撑体系,多数情况下,Web Service都是将企业或组织内部所提供的业务/技术功能暴露成服务的实现手段。传统SOA主要支持同步的服务调用和执行,即服务消费方请求一 个服务后,在服务提供方与消费方之间必须维持一个连接直到服务消费方收到响应。因此,传统SOA的拓扑结构是服务驱动的,存在于开放、动态和多变的环境下,而Web Service的特点是松耦合、分布式、自治的,因此基于时间约束的服务协同方式只能用于时间精确的特定封闭环境中,并不适合基于Web环境的软件体系。此外,还有一些基于服务的协同引擎系统,是设计运行在Web容器内的一个应用模块,这些系统或多或少地存在有如下缺陷部署模式只针对Web容器;采用第三方类库来解析与执行 Web Service,无法自行处理 SOAP (Simple Object Access Protocol,简单对象访问协议)消息;不能良好地支持SCA (Service Component Architecture,服务组件框架)、0SGi (Open Service Gateway Initiative)等业界标准;未考虑安全、性能、事务等与Web Service有关的QoS因素;未考虑与规则引擎等其它组件的集成。所以,有必要提供一种新的Web Service处理方法,以解决上述问题。

发明内容
本发明提供一种基于事件驱动架构的Web Service处理引擎系统及处理方法,融合了 OSGi与SCA两种技术标准的优点,可以构造出灵活、健壮,适应各种异构环境下的基于EDA的Web Service处理引擎。为解决以上技术问题,本发明提供一种基于事件驱动架构的Web Service处理引擎系统,包括事件处理模块、Web Service解析与执行模块,所述事件处理模块,用于将服务消费方的Web Service调用请求转换为事件,并将所述事件传送给Web Service解析与执行模块;所述Web Service解析与执行模块,用于解析事件处理模块传送的事件,并根据解析结果执行Web Service调用。进一步地,所述事件处理模块,包括服务消费方代理组件、事件通道组件、事件检测与服务调度组件,所述服务消费方代理组件,用于将服务消费方的Web Service调用请求转换为事件,送入所述事件通道组件中;以及,将由事件通道组件返回的服务响应事件重新生成WebService响应数据;
所述事件通道组件,用于传输事件;所述事件检测与服务调度事件组件,用于将从事件通道组件中接收到的事件进行分析判断,并将相应的Web Service调用请求传送给Web Service解析与执行模块。进一步地,所述Web Service解析与执行模块,包括QoS管理器、Web Service引擎,所述QoS管理器,用于为Web Service SOAP请求附加必要QoS控制附属特性;所述Web Service引擎,用于解析事件处理模块传送的事件,并根据解析结果执行Web Service 调用。进一步地,所述Web Service引擎包括Web Service解析组件与Web Service执行组件,其中, 所述Web Service解析,用于对事件处理模块传送的事件进行解析;所述Web Service执行组件,用于根据Web Service解析的解析结果,执行WebService 调用。进一步地,所述Web Service执行组件,具体包括根据Web Service解析组件的解析结果,获取相关服务信息,构建生成SOAP请求对象消息,并执行Web Service调用将SOAP请求对象消息发送给服务提供方进行服务执行;以及,接收服务提供方返回的服务执行结果SOAP服务响应事件,并将该服务执行结果SOAP服务响应事件返回给Web Service解析组件。为解决以上技术问题,本发明还提供一种基于事件驱动架构的Web Service处理方法,包括步骤I、事件处理模块将服务消费方的Web Service调用请求转换为事件,并将所述事件传送给Web Service解析与执行模块;步骤2、Web Service解析与执行模块解析事件处理模块传送的事件,并根据解析结果执行Web Service调用。进一步地,所述步骤I,具体包括步骤I. I、事件处理模块接收到服务消费方的Web Service调用请求,并将WebService调用请求形成事件;步骤I. 2、事件处理模块将所述事件通过Web Service调度传送给Web Service解析与执行模块;步骤I. 3、事件处理模块检测Web Service解析与执行模块返回的服务执行结果SOAP服务响应事件;步骤I. 4、事件处理模块将服务响应事件重新生成Web Service响应数据,返回给服务消费方。进一步地,所述步骤I. 2中,在发送所述事件之前,先判断所述事件的类型,如果是复杂事件,则先由复杂事件处理引擎对事件进行处理后再发送。进一步地,所述步骤2,具体包括步骤2. I、Web Service解析与执行模块通过Web Service调度接收事件数据;步骤2. 2、Web Service解析与执行模块解析事件消息,并根据解析出来的信息,生成SOAP请求对象,发送给服务提供方;
步骤2. 3、Web Service解析与执行模块接收服务提供方返回的服务执行结果SOAP服务响应事件,并将其返回事件处理模块。进一步地,所述步骤2. 2中,在发送SOAP请求对象给服务提供方之前,先判断所述SOAP请求对象是否需要加入QoS控制,如果需要,则为SOAP请求对象附加必要QoS控制附属特性,然后再将处理后的SOAP请求对象发送。与现有技术相比,本发明提供一种基于事件驱动架构的Web Service处理引擎系统及处理方法,将传统的以同步方式处理Web Service消息的方式转变为以基于EDA的异步处理方式,引擎系统根据所接收到的来自特定事件源的事件来解析并执行某一 WebService,并将执行的结果反馈给服务消费方或事件链中的下一个环节。以事件驱动的方法与面向服务的方法结合使用,使应用与系统响应更灵敏,更加适应不可预知和异步的环境。同时,本发明的引擎系统采用OSGi与SCA两种规范相结合的方式来构造组件及服务容器,融合了 OSGi与SCA两种技术标准的优点,构造出灵活、健壮,适应各种异构环境下的基 于EDA的Web Service处理引擎,可以实现任意满足OSGi标准的功能组件整合到引擎系统中,既解决了代码/类库之间相互依赖的问题,又解决了服务组合的问题。本发明所述的引擎系统能够与支持SCA与OSGi规范的ESB产品良好整合,事实上,本发明所述的引擎系统并不需要通过ESB来实现其功能,在某种程度上,该引擎实现了 ESB的部分功能,即服务中介。


此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是本发明提供的一种基于事件驱动架构的Web Service处理引擎系统的架构图;图2是本发明提供的一种基于事件驱动架构的Web Service处理方法的流程图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明提供了一种基于EDA的Web Service处理引擎系统和处理方法,将接收来自服务消费方的Web Service调用请求数据经过事件处理模块处理转换为事件消息后,按一定规则调度Web Service解析与执行模块,并将产生的响应数据生成相应的事件发回给服务提供方的引擎系统。本发明基于EDA的Web Service处理引擎系统,不同于传统SOA实现方式中采用请求/响应的RPC(Remote Procedure Call Protocol,远程过程调用协议)机制,本发明基于事件驱动的方法与面向服务的方法结合使用,使应用与系统响应更灵敏,更加适应不可预知和异步的环境。通过ESB (Enterprise Service Bus,企业服务总线)充当不同应用之间进行通信的中间层,分离服务/事件的生产方与服务/事件的消费方。部署到ESB的服务可以由消费方同步触发或事件异步触发,提高服务/业务各参与方的交互能力。本发明所述的引擎系统能够与支持SCA与OSGi规范的ESB产品良好整合,事实上,本发明所述的引擎系统并不需要通过ESB来实现其功能,在某种程度上,该引擎实现了 ESB的部分功能,即服务中介。请参考图1,本发明提供一种基于EDA的Web Service处理引擎系统,包括事件处理模块10、Web Service解析与执行模块20。所述事件处理模块10,用于将服务消费方的Web Service调用请求数据转换为事件,并将该事件传送给Web Service解析与执行模块20进行处理。所述事件处理模块10包括服务消费方代理组件11、事件通道组件12、事件检测与服务调度组件13。该服务消费方代理组件11,主要负责将包括服务消费方的Web Service调用请求数据转换为事件,并将事件送入事件通道12中,等待处理;同时,将由事件通道返回的服务响应事件重新生成Web Service响应数据,返回给服务消费方。 该事件通道组件12,主要负责传输事件。该事件检测与调度组件13,负责对从事件通道接收事件,并对其进行分析判断,并将相应的Web Service调用请求传送给Web Service解析与执行模块20。该事件检测与调度组件13主要包括以下功能组件规则引擎(Rule Engine)、事件检测器(EventsManagement)、CEP (Complex Event Processing,复杂事件处理)引擎(CEP Engine)、WebService 调度器(Web Service Schedule),其中,规则引擎,用于按预定的规则集对事件进行判断与分类,以决定通过事件通道得到的事件是否为复杂事件,规则集至少包括事件处理规则集与服务调用规则集;以及,要为CEP引擎与Web Service调度器提供服务。事件检测器,用于检测事件通道是否存在有事件,在检测到事件后要将事件从事件通道中取出。CEP引擎,用于处理复杂事件,并将处理后的结果交给Web Service调度器进行后续处理,对于复杂事件处理,需要解决事件链上多个Web Service的调用需求。Web Service调度器,用于将相应的Web Service调用请求传送给Web Service解析与执行模块20,以及处理从Web Service解析与执行模块20得到的服务响应,针对复杂事件,还需将多个Web Service的服务响应进行集中处理,并将处理后产生响应事件放入事件通道。所述Web Service解析与执行模块20,用于解析事件处理模块10传送的事件,并根据解析结果执行Web Service调用。所述Web Service解析与执行模块20包括QoS管理器21与Web Service引擎22。QoS管理器21,主要负责在需要时为SOAP请求对象进行QoS操作,为SOAP请求对象附加必要的QoS控制附属特性,如安全、策略等。Web Service引擎22,主要负责解析事件处理模块10传送的事件,并根据解析结果执行Web Service调用。Web Service 引擎22包括Web Service解析组件与Web Service执行组件。Web Service解析组件,用于对事件处理模块10传送的事件进行解析,读取服务相关信息。例如,将事件中包含的Web Service接口文件WSDL进行解析,以读取服务相关信息,从而了解服务的内部结构,其中,系统可以使用IBM WSDL4J技术对WSDL文档进行解析;以及,接收Web Service执行组件返回的服务执行结果SOAP服务响应事件,并对其解析,将解析结果返回给事件处理模块10。Web Service执行组件,用于根据Web Service解析组件的解析结果,执行WebService调用。具体包括根据Web Service解析组件的解析结果,获取相关服务信息,动态构建 生成SOAP请求对象消息,并执行Web Service调用将SOAP请求对象消息发送给服务提供方进行服务执行。在服务执行结束后,接收服务提供方返回的服务执行结果SOAP服务响应事件,并将该服务执行结果SOAP服务响应事件返回给Web Service解析组件进行解析。优选地,以上提到的组件及组件组合是以SCA为规范,组件容器是以OSGi为规范。请参考图2,本发明提供一种基于EDA的Web Service处理方法,包括一、事件处理模块的处理步骤I、服务消费方发起Web Service调用请求。2、事件处理模块中的服务消费方代理从事件通道中接收服务消费方的WebService调用请求,并分析处理该请求首先将服务请求数据中有关Web Service信息,包括服务URL、名称、操作方法名、参数列表等形成事件消息。3、随后,事件消息将被送入到事件通道中,等待处理。4、事件检测与服务调度模块检测事件通道中的事件,当检测到事件后,进行规则判断,判断事件类型。5、判断事件是否为简单事件,如果不是,转入步骤6交给复杂事件处理引擎(CEP引擎)进行处理;如果是则直接交给步骤7由Web Service调度器进行Web Service调度。6、复杂事件处理引擎(CEP引擎)对转交的复杂事件进行处理,并将处理结果交给步骤7由Web Service调度器进行Web Service调度。7、Web Service调度器调度Web Service将事件数据转交给Web Service解析与执行模块进行处理。16、事件检测与服务调度模块检测事件通道中的Web Service解析与执行模块返回的服务执行结果SOAP服务响应事件。17、消费方代理处理将由事件通道返回的服务响应事件重新生成Web Service响应数据,返回给服务消费方。二、Web Service解析与执行模块的处理步骤8、Web Service解析与执行模块通过Web Service调度接收事件数据。9、Web Service解析与执行模块将事件数据交由Web Service引擎进行解析,解析出服务的地址、名称、操作、参数等信息,例如解析事件中包含的Web Service接口文件WSDL,并根据解析出来的信息,生成SOAP请求对象。10、判断上述SOAP请求对象是否需要加入QoS控制,如果需要转入步骤11进行QoS处理;如果不需要,转入步骤12进行处理。11、通过QoS管理器对SOAP请求对象进行QoS操作,为SOAP请求对象附加必要的QoS控制附属特性,如安全、策略等。12、构造完成SOAP请求消息。13、Web Service解析与执行模块将SOAP请求信息给服务提供方进行服务执行。
15、Web Service解析与执行模块接收服务提供方返回的服务执行结果SOAP服务响应事件,并将服务执行结果SOAP服务响应事件返回事件通道。本发明提供一种基于事件驱动架构的Web Service处理引擎系统及处理方法,将传统以同步方式处理Web Service消息的方式转变为以基于EDA的异步处理方式,引擎系统根据所接收到的来自特定事件源的事件来解析并执行某一 Web Service,并将执行结果反馈给服务消费方的下一个环节。以事件驱动的方法与面向服务的方法结合使用,使应用与系统响应更灵敏,更适应不可预知和异步环境。同时,本发明的引擎系统采用OSGi与SCA两种规范相结合的方式来构造组件及服务容器,融合了 OSGi与SCA两种技术标准的优点,构造出灵活、健壮,适应各种异构环境下的基于EDA的Web Service处理引擎,可以实现任意满足OSGi标准的功能组件整合到引擎系统中,既解决了代码/类库之间相互依赖的问题,又解决了服务组合的问题。 上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种基于事件驱动架构的Web Service处理引擎系统,其特征在于,包括事件处理模块、Web Service解析与执行模块, 所述事件处理模块,用于将服务消费方的Web Service调用请求转换为事件,并将所述事件传送给Web Service解析与执行模块; 所述Web Service解析与执行模块,用于解析事件处理模块传送的事件,并根据解析结果执行Web Service调用。
2.如权利要求I所述的系统,其特征在于,所述事件处理模块,包括服务消费方代理组件、事件通道组件、事件检测与服务调度组件, 所述服务消费方代理组件,用于将服务消费方的Web Service调用请求转换为事件,送入所述事件通道组件中;以及,将由事件通道组件返回的服务响应事件重新生成WebService响应数据; 所述事件通道组件,用于传输事件; 所述事件检测与服务调度事件组件,用于将从事件通道组件中接收到的事件进行分析判断,并将相应的Web Service调用请求传送给Web Service解析与执行模块。
3.如权利要求I所述的系统,其特征在于,所述WebService解析与执行模块,包括QoS管理器、Web Service引擎, 所述QoS管理器,用于为Web Service SOAP请求附加必要QoS控制附属特性; 所述Web Service引擎,用于解析事件处理模块传送的事件,并根据解析结果执行WebService 调用。
4.如权利要求3所述的系统,其特征在于,所述WebService引擎包括Web Service解析组件与Web Service执行组件,其中, 所述Web Service解析,用于对事件处理模块传送的事件进行解析; 所述Web Service执行组件,用于根据Web Service解析的解析结果,执行WebService 调用。
5.如权利要求4所述的方法,其特征在于,所述WebService执行组件,具体包括 根据Web Service解析组件的解析结果,获取相关服务信息,构建生成SOAP请求对象消息,并执行Web Service调用将SOAP请求对象消息发送给服务提供方进行服务执行;以及,接收服务提供方返回的服务执行结果SOAP服务响应事件,并将该服务执行结果SOAP服务响应事件返回给Web Service解析组件。
6.一种基于事件驱动架构的Web Service处理方法,其特征在于,包括 步骤I、事件处理模块将服务消费方的Web Service调用请求转换为事件,并将所述事件传送给Web Service解析与执行模块; 步骤2、Web Service解析与执行模块解析事件处理模块传送的事件,并根据解析结果执行Web Service调用。
7.如权利要求6所述的方法,其特征在于,所述步骤1,具体包括 步骤I. I、事件处理模块接收到服务消费方的Web Service调用请求,并将WebService调用请求形成事件; 步骤I. 2、事件处理模块将所述事件通过Web Service调度传送给Web Service解析与执行模块;步骤I. 3、事件处理模块检测Web Service解析与执行模块返回的服务执行结果SOAP服务响应事件; 步骤I. 4、事件处理模块将服务响应事件重新生成Web Service响应数据,返回给服务消费方。
8.如权利要求7所述的方法,其特征在于,所述步骤I.2中,在发送所述事件之前,先判断所述事件的类型,如果是复杂事件,则先由复杂事件处理引擎对事件进行处理后再发送。
9.如权利要求6所述的方法,其特征在于,所述步骤2,具体包括 步骤2. I、Web Service解析与执行模块通过Web Service调度接收事件数据; 步骤2. 2、Web Service解析与执行模块解析事件消息,并根据解析出来的信息,生成 SOAP请求对象,发送给服务提供方; 步骤2. 3、Web Service解析与执行模块接收服务提供方返回的服务执行结果SOAP服务响应事件,并将其返回事件处理模块。
10.如权利要求9所述的方法,其特征在于,所述步骤2.2中,在发送SOAP请求对象给服务提供方之前,先判断所述SOAP请求对象是否需要加入QoS控制,如果需要,则为SOAP请求对象附加必要的QoS控制附属特性,然后再将处理后的SOAP请求对象发送。
全文摘要
本发明提供一种基于事件驱动架构的Web Service处理引擎系统,包括事件处理模块、Web Service解析与执行模块。所述事件处理模块,用于将服务消费方的Web Service调用请求转换为事件,并将所述事件传送给Web Service解析与执行模块;所述Web Service解析与执行模块,用于解析事件处理模块传送的事件,并根据解析结果执行Web Service调用。本发明还提供一种基于事件驱动架构的Web Service处理方法。通过本发明提供的一种基于事件驱动架构的Web Service处理引擎系统及处理方法,融合OSGi与SCA两种技术标准的优点,可以构造出灵活、健壮,适应各种异构环境下的基于EDA的Web Service处理引擎。
文档编号G06F9/46GK102750181SQ20121017679
公开日2012年10月24日 申请日期2012年5月31日 优先权日2012年5月31日
发明者雷晔 申请人:深圳市远行科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1