控制流集中数据流分布的组合服务执行系统及执行方法

文档序号:7766673阅读:358来源:国知局
专利名称:控制流集中数据流分布的组合服务执行系统及执行方法
技术领域
本发明属于Web服务组合领域,特别涉及控制流集中数据流分散的组合服务执行 方法。
背景技术
随着Web服务技术的成熟与发展,组合已有服务以提供增值功能的组合服务已经 得到了广泛的关注。在服务组合研究问题中,组合服务的执行已成为该领域的一个热点问 题。为此,Oracle、Apache、IBM等公司都开发了相应的组合服务执行引擎。例如,Apache IiISWApache ODE>Active Endpoints ^w] ^ ActiveBpeUOracle ^ Oracle BPEL U 及IBM公司的WBISF。然而,目前的这些组合服务执行引擎大都采用控制流数据流全集中的 执行方法。该方法是利用一个中心节点,即组合服务执行引擎协调服务之间的控制流和数 据流。在该执行方法中,所有数据都要经过中心节点进行转发,而不是由数据的生产者直接 发送数据给消费者。这样会增加网络传输的数据量,易形成系统的性能瓶颈,降低系统的吞 吐量和执行效率。

发明内容
为了克服已有技术的不足,本发明提供了一种控制流集中数据流分布的组合服务 执行系统及执行方法。该方法通过中心节点集中控制流,以控制各个服务的执行次序;同 时,中心节点通知各服务代理数据流的流转,以使得数据流不经过中心节点的转发而直接 从数据生产者发送到其消费者。本发明采取的硬件为连接的htel网上的PC机组成。一台PC机作为中心节点, 其余PC作为服务代理,web服务注册在服务代理上。为了实现该方法中服务代理和中心节点间的协调交互,设定了一组服务代理和中 心节点间的交互协议,该交互协议包括5种协议消息服务参数输入消息。该消息用来描述请求服务调用的具体输入变量,消息发送者 为中心节点或服务代理,消息的接收者为服务代理或中心节点。该消息包括消息类型,组合 服务实例标识,活动标识,服务输入参数和中心节点地址等内容。服务完成消息。该消息用来通知中心节点服务执行成功或者失败,消息发送者为 服务代理,消息接收者为中心节点。该消息包括消息类型,组合服务实例标识,活动标识和 服务执行结果(成功或者失败)等内容。服务参数传递通知消息。该消息用来通知服务代理将服务执行结果进行参数转 换,并传送到目标服务代理,消息发送者为中心节点,消息接收者为服务代理。该消息包括 消息类型,组合服务实例标识,活动标识,参数转换模型和服务代理地址等内容。服务参数提取消息。该消息用来通知服务代理将执行结果中与组合服务执行控制 相关的参数传递给中心节点,消息发送者为中心节点,消息接收者为服务代理。该消息包括 消息类型,组合服务实例标识,活动标识和参数名称等内容。
服务参数回传消息。该消息用来根据服务参数提取消息,发送相关服务参数给中 心节点,消息发送者为服务代理,消息接收者为中心节点。该消息包括消息类型,组合服务 实例标识,活动标识和服务输入参数等内容。一种控制流集中数据流分布的组合服务执行系统,该系统包括一个中心节点和分 布在网络中不同节点上的多个服务代理;中心节点即组合服务执行引擎,如附图1所示,包 括解析模块、集成层模块、运行时模块和持久化模块;其中解析模块,负责对组合服务进行解析,通过中心节点即组合服务执行引擎对 外提供的组合服务部署解析接口,接收组合服务部署文件,将其解析成组合服务模板,建立 内存模型,同时生成参数转换模型;集成层模块,负责中心节点与外界的交互;包括服务请求消息处理子模块、服务替 换调整子模块和协议消息处理子模块;其中服务请求消息处理子模块,负责接收服务请求 消息和发送服务响应消息;服务替换调整子模块,负责接收服务替换调整消息,对其进行解 析封装后,加入到服务替换调整库,以支持组合服务执行过程中的服务替换;协议消息处理 子模块,是中心节点即组合服务执行引擎与服务代理进行交互的中介,负责接收发送协议 消息,对协议消息进行解析、封装和路由匹配;运行时模块,负责中心节点即组合服务执行引擎与服务代理之间的交互;包括组 合服务管理子模块、组合服务实例管理子模块和组合服务实例管理子模块;其中组合服务 管理子模块,负责对组合服务模板添加、删除和更新;组合服务实例管理子模块,负责进行 组合服务实例的生命周期管理,包括启动、暂停、恢复、停止和销毁;组合服务实例调度子模 块,负责根据组合服务的执行逻辑,控制组合服务实例中各个活动的执行顺序;持久化模块,负责中心节点即组合服务执行引擎内核与底层数据库进行交互,以 跟踪记录组合服务实例的执行过程和状态;中心节点执行逻辑过程如附图2所示。中心节点通过请求消息处理模块接收到 用户的组合服务执行请求,转换成相应的实例创建消息,首先通过组合服务管理模块查询 组合服务模板库,找到匹配的组合服务模板,然后创建组合服务实例,交给组合服务实例管 理模块进行处理,组合服务实例管理模块会将新创建的组合服务实例交给实例调度模块执 行。实例调度模块按照组合服务实例的执行逻辑,依次取出组合服务实例的活动加入活动 执行队列,活动从活动执行队列中弹出后,会交给活动执行模块按照活动的具体执行逻辑 进行执行,如果活动是服务调用活动,会通过活动执行模块与协议消息处理模块,进行协议 消息的产生、封装、收发与服务代理进行交互,控制服务何时执行以及何时/往何处发送数 据。活动执行结束后,活动执行模块会通知实例调度模块调度执行下一个活动,直至组合服 务实例执行结束。将执行结果通过请求消息处理模块返回给用户。服务代理包括服务参数处理模块、协议消息处理模块和服务调用模块,如附图3 所示;服务参数处理模块,负责服务执行结果的存储以及服务传递参数的数据转换;包 括服务参数管理子模块、服务执行条件判定子模块,参数转换子模块和数据消息封装子模 块;服务参数管理子模块,负责接收到的服务参数的持久化,以及服务参数的查询及 更新。
服务执行条件判定子模块,负责服务执行条件的判断,接收到服务参数输入消息 的时候,根据服务输入参数是否完整,判断服务是否可以执行。参数转换子模块,根据参数转换模型,实现服务参数间相互转换。数据消息封装子模块,负责封装服务参数输入消息;协议消息处理模块,负责协议消息的解析、封装、发送和接收;包括数据流收发子 模块和控制流收发子模块;其中数据流收发子模块负责服务代理间数据传递;控制流收发 子模块负责和中心节点交互控制消息。服务调用模块,负责对具体的服务进行调用,以完成服务功能。服务代理的执行逻辑过程如附图4所示。服务代理通过数据流接收模块接收到服 务参数输入消息,首先通过服务参数管理模块进行存取,调用服务执行条件判定模块判断 该服务的执行参数是否完备,是否满足执行条件。如果满足执行条件,通过服务调用模块, 执行服务调用。将服务调用是否成功封装成服务完成消息通过控制流发送模块发送给中心 节点。服务节点通过控制流接收模块接收到中心节点发送的服务参数传递通知消息,按照 服务参数传递通知消息中的参数转换模型,调用参数转换模块对服务执行结果进行数据转 换,并通过数据消息封装模块封装成服务参数输入消息,通过数据流发送模块发送给其他 服务代理或者中心节点。一种控制流集中数据流分布的组合服务执行系统的执行方法如下如附图5所 示,步骤A 首先对组合服务部署文件进行解析,通过解析模块,对组合服务部署文件 进行封装,创建组合服务模板。步骤B 引擎通过Web服务的方式对外发布接口,接收服务请求消息,根据服务请 求消息,查找组合服务模板,创建组合服务实例,并将其加入到组合服务实例执行队列。组 合服务实例是由一组活动按照一定的执行顺序构成。步骤C:引擎内核依次从组合服务实例执行队列中取出组合服务实例,开始执行 组合服务实例,从组合服务实例的第一个活动开始执行。步骤D 设置活动状态为准备执行状态。步骤E 将活动加入到活动执行队列。步骤F 活动执行模块将活动从活动执行模块中取出该活动,设置活动状态为执 行状态。步骤G 执行活动逻辑。活动逻辑的执行是组合服务执行的核心部分。其具体执 行过程如下步骤Gl 按照活动的执行是否需要中心和执行代理之间进行信息交互,活动可以 分为外部活动和内部活动。外部活动参与中心与执行代理间的消息交互。内部活动负责流 程实例的执行控制,不参与中心和执行代理间的消息交互。判断活动类型,如果活动类型是 接收活动(Receive)执行步骤G2 ;如果活动类型是赋值活动(Assign)执行步骤G3 ;如果活 动类型是服务调用活动(Invoke)执行步骤G4;如果活动类型是服务应答活(Iteply)动执 行步骤G5 ;如果活动类型是判断(If)活动执行步骤G6 ;如果活动类型是其他内部活动按 照其执行逻辑执行。
步骤G2 执行接收活动(Receive)活动,直接将接收到的服务请求消息存到指定服务输入变量中。
步骤G3 执行赋值(Assign)活动,组合服务解析时,该活动会生成参数转 换模型,在活动执行时会保存该参数转换模型,执行服务调用时,再将参数转换模型发送给 指定的服务代理,具体的执行步骤如下如附图6所示,步骤G31 获取活动生成的参数转换模型步骤G32 存储参数转换模型步骤G33 获取源参数所在的服务代理地址步骤G34 生成目标参数的服务地址映射步骤G35 存储参数服务地址映射步骤G36:活动执行结束步骤G4 执行服务调用(Invoke)活动,该活动是中心节点即组合服务执行引擎与 服务代理进行直接交互的活动,涉及到交互协议相关的控制流和数据流消息,具体的执行 步骤如下如附图7所示,步骤G41 从参数转换模型表中获取参数转换模型步骤G42 判断是否有替换服务,是,生成并存储新的参数转换模型和参数服务地 址映射,转步骤G44,否,转步骤G43步骤G43 判断原有服务是否可用,是,转步骤G44,否,转步骤G49步骤G44:判断服务参数是否在中心节点即组合服务执行引擎中,是,转步骤G45, 否,转步骤G46步骤G45 封装服务参数输入消息,发送给服务代理,转步骤G48步骤G46 发送服务参数传递通知消息给服务代理步骤G47 等待接收服务完成消息进行超时计时,是否超时,是,转步骤G42,否,转 步骤G48步骤G48 接收到服务完成消息,判断服务是否执行成功,是,转步骤G410,否,转 步骤G42步骤G49 发送服务出错消息步骤G410 活动执行结束步骤G5 执行服务应答(Reply)活动,是中心节点即组合服务执行引擎接收服务 代理发回的服务参数消息,然后发送给客户端服务请求者,具体的执行步骤如下如附图8 所示,步骤G51 从参数转换模型表中获取参数转换模型步骤G52 判断参数是否存在引擎中,是,转步骤G53,否,转步骤G55步骤G53 进行参数转换,封装服务响应消息步骤G54 发送服务响应消息给服务请求者,转步骤G59步骤G55 获取参数所在服务代理地址,发送服务参数传递通知消息给该服务代
理步骤G56 等待接收服务参数消息,进行超时计时,是否超时,是,转步骤G57,否, 转步骤G58步骤G57 发送服务出错消息给服务请求者,转步骤G59
步骤G58 接收服务参数消息,封装服务响应消息,转步骤G54步骤G59:活动执行结束步骤G6 执行如果是判断(If)活动,中心节点执行判断活动,如果判断活动中的 用到之前服务执行结果中的数据,需要和服务代理有一个交互过程来获取数据,具体的执 行步骤如下如附图9所示,步骤G61 判断所有条件是否完毕,是,转步骤G65,否,转步骤G62步骤G62 根据条件表达式,封装服务参数提取消息,发送给服务代理步骤G63:接收服务参数回传消息,判断条件表达式是否为真,是,转步骤G64,否, 转步骤G61步骤G64 执行满足该判断条件的后继活动步骤G65:活动执行结束步骤G7 对于内部活动,按照执行逻辑执行。步骤H 设置活动状态为完成状态步骤I 判断是否存在后继活动,如果存在后继活动,触发后继活动转到步骤D。否 则转到步骤J。步骤J 组合服务实例执行结束。本发明的优点Web服务作为实现基于面向服务的企业应用的主要技术手段,已 经得到广泛关注。服务组合是将现有服务组合形成新的增值服务的一种方法。关于组合服 务的执行方式,目前工业界和学术界主要采用两种组合服务执行方式全集中和全分布的 执行方式。全集中的执行方式实现方法相对简单,对整个执行过程有良好的控制。在该方 法中,唯一的中心节点要负责协调不同服务间的控制流和数据流,所有的数据都要经过中 心节点中转,而不是由数据的生产者直接发送给数据消费者,因此增加了消息传递量,使得 整个组合服务的性能将受到中心节点的计算能力和通信能力的限制。尤其是当传递消息 数量大量增加时,中心节点容易成为系统性能瓶颈。以Self-krv为代表的全分布的执行 方式,不存在唯一的中心节点,数据直接由生产者发送给消费者,减少了不必要的消息通信 量。然而,由于系统完全分布,没有逻辑中心,很难对系统整体运行情况进行监控,无法实现 对组合服务的全局调整以适应异常情况的发生。同时,该执行方式不支持目前公认的组合 服务执行语言BPEL,从而很难实现该方式的应用推广。基于对以上两种执行方式的分析,我 们提出一种控制流集中数据流分散的组合服务执行方法。该方法的基本思想是利用一个中 心节点对全局组合逻辑进行控制,通过发送控制消息通知服务何时、往何处发送数据,从而 既能够解决分布式执行方式缺乏对组合服务整体运行情况的监控能力,又能够解决集中式 执行方式由于数据流都经过中心节点中转而易存在系统性能瓶颈的问题。同时,该方法采 用中心节点控制组合服务的全局执行逻辑,能够兼容当前的主流组合服务执行语言BPEL, 从而可以有效地支持组合服务应用的执行。综上所述,所提出的控制流集中数据流分散的 组合服务执行方法兼具全集中与全分布两种方法的优点,而且能够兼容当前主流的服务组 合语言,特别适用于具有较大数据量传输的组合服务执行。


图1本发明中心节点即组合服务执行引擎功能模块图2本发明中心节点即组合服务执行引擎逻辑结构图;图3本发明服务代理功能模块图;图4本发明代理服务逻辑结构图;图5本发明控制流集中数据流分散的组合服务执行方法执行流程图;图6本发明赋值(Assign)活动执行逻辑流程图;图7本发明服务调用(Invoke)活动执行逻辑流程图;图8本发明服务响应(Iteply)活动执行逻辑流程图;图9本发明判断(If)活动执行流程图;图10本发明不同数据传输量情况下组合服务平均执行时间的变化示意图。
具体实施例方式本发明结合具体实施例和说明书附图进行说明。为了验证本发明提出的方法和系统的性能,进行了一系列的实验。实验环境由 ΙΟΟΜ/sLAN 连接的 htel (2.6GHz,IG RAM) PC ^P IBM T60 笔记本电脑组成。PC 机作为 Web 服务器,部署了 50个Web服务。Dell 630作为服务代理和中心节点。50个Web服务分别 注册在10台IBM T60上。采用的测试用例是由20个Web服务顺序调用组成的组合服务。 对于每个组合服务,其中任意两个Web服务间数据传输量都是相同的,且数据传输量的取 值设置为11(、1、41(、161(、321(、641(、1281(、2561(、511或1(^41(。在不同数据传输量取值的情 况下,在所建立的系统环境中执行组合服务并得到执行时间。对于每个数据传输量进行20 次实验,计算平均执行时间。之后,采用集中式执行的开源BPEL执行引擎ActiveBPEL5. 0 做同样的实验。比较所提出的组合服务执行系统与该开源执行引擎的执行时间。该系统包括一个中心节点和分布在网络中不同节点上的多个服务代理;中心节点 即组合服务执行引擎,如附图1所示,包括解析模块、集成层模块、运行时模块和持久化模 块;其中解析模块,负责对组合服务进行解析,通过中心节点即组合服务执行引擎对 外提供的组合服务部署解析接口,接收组合服务部署文件,将其解析成组合服务模板,建立 内存模型,同时生成参数转换模型;集成层模块,负责中心节点与外界的交互;包括服务请求消息处理子模块、服务替 换调整子模块和协议消息处理子模块;其中服务请求消息处理子模块,负责接收服务请求 消息和发送服务响应消息;服务替换调整子模块,负责接收服务替换调整消息,对其进行解 析封装后,加入到服务替换调整库,以支持组合服务执行过程中的服务替换;协议消息处理 子模块,是中心节点即组合服务执行引擎与服务代理进行交互的中介,负责接收发送协议 消息,对协议消息进行解析、封装和路由匹配;运行时模块,负责中心节点即组合服务执行引擎与服务代理之间的交互;包括组 合服务管理子模块、组合服务实例管理子模块和组合服务实例管理子模块;其中组合服务 管理子模块,负责对组合服务模板添加、删除和更新;组合服务实例管理子模块,负责进行 组合服务实例的生命周期管理,包括启动、暂停、恢复、停止和销毁;组合服务实例调度子模 块,负责根据组合服务的执行逻辑,控制组合服务实例中各个活动的执行顺序;持久化模块,负责中心节点即组合服务执行引擎内核与底层数据库进行交互,以跟踪记录组合服务实例的执行过程和状态;服务代理包括服务参数处理模块、协议消息处理模块和服务调用模块,如附图3 所示;;服务参数处理模块,负责服务执行结果的存储以及服务传递参数的数据转换;包 括服务参数管理子模块、服务执行条件判定子模块,参数转换子模块和数据消息封装子模 块;服务参数管理子模块,负责接收到的服务参数的持久化,以及服务参数的查询及 更新。服务执行条件判定子模块,负责服务执行条件的判断,接收到服务参数输入消息 的时候,根据服务输入参数是否完整,判断服务是否可以执行。参数转换子模块,根据参数转换模型,实现服务参数间相互转换。数据消息封装子模块,负责封装服务参数输入消息;协议消息处理模块,负责协议消息的解析、封装、发送和接收;包括数据流收发子 模块和控制流收发子模块;其中数据流收发子模块负责服务代理间数据传递;控制流收发 子模块负责和中心节点交互控制消息。服务调用模块,负责对具体的服务进行调用,以完成服务功能。控制流集中数据流分布的组合服务执行系统的执行方法,按如下步骤进行如附 图5所示,步骤A 首先对组合服务部署文件进行解析,通过解析模块,对组合服务部署文件 进行封装,创建组合服务模板;步骤B 引擎通过Web服务的方式对外发布接口,接收服务请求消息,根据服务请 求消息,查找组合服务模板,创建组合服务实例,并将其加入到组合服务实例执行队列。组 合服务实例是由一组活动按照一定的执行顺序构成;步骤C:引擎内核依次从组合服务实例执行队列中取出组合服务实例,开始执行 组合服务实例,从组合服务实例的第一个活动开始执行;步骤D 设置活动状态为准备执行状态;步骤E 将活动加入到活动执行队列;步骤F 活动执行模块将活动从活动执行模块中取出该活动,设置活动状态为执 行状态;步骤G 执行活动逻辑,活动逻辑的执行是组合服务执行的核心部分;步骤H 设置活动状态为完成状态;步骤I 判断是否存在后继活动,如果存在后继活动,触发后继活动转到步骤D。否 则转到步骤J ;步骤J 组合服务实例执行结束。所述的步骤G按如下步骤进行步骤Gl 按照活动的执行是否需要中心和执行代理之间进行信息交互,活动可以 分为外部活动和内部活动;外部活动参与中心与执行代理间的消息交互;内部活动负责流 程实例的执行控制,不参与中心和执行代理间的消息交互;判断活动类型,如果活动类型是 接收活动执行步骤G2 ;如果活动类型是赋值活动执行步骤G3 ;如果活动类型是服务调用活动执行步骤G4 ;如果活动类型是服务应答活动执行步骤G5 ;如果活动类型是判断活动执行 步骤G6 ;如果活动类型是其他内部活动按照其执行逻辑执行;步骤G2:执行接收活动活动,直接将接收到的服务请求消息存到指定服务输入变
量中;步骤G3 执行赋值活动,组合服务解析时,该活动会生成参数转换模型,在活动 执行时会保存该参数转换模型,执行服务调用时,再将参数转换模型发送给指定的服务代 理;步骤G4 执行服务调用(Invoke)活动,该活动是中心节点即组合服务执行引擎与 服务代理进行直接交互的活动,涉及到交互协议的控制流和数据流消息;步骤G5 执行服务应答活动,是中心节点即组合服务执行引擎接收服务代理发回 的服务参数消息,然后发送给客户端服务请求者;步骤G6 执行如果是判断活动,中心节点执行判断活动,如果判断活动中的用到 之前服务执行结果中的数据,需要和服务代理有一个交互过程来获取数据;步骤G7 对于内部活动,按照执行逻辑执行。所述的步骤G3按如下步骤进行如附图6所示,步骤G31 获取活动生成的参数转换模型;步骤G32 存储参数转换模型;步骤G33 获取源参数所在的服务代理地址;步骤G34 生成目标参数的服务地址映射;步骤G35 存储参数服务地址映射;步骤G36 活动执行结束。所述的步骤G4按如下步骤进行如附图7所示,步骤G41 从参数转换模型表中获取参数转换模型;步骤G42 判断是否有替换服务,是,生成并存储新的参数转换模型和参数服务地 址映射,转步骤G44,否,转步骤G43 ;步骤G43 判断原有服务是否可用,是,转步骤G44,否,转步骤G49 ;步骤G44:判断服务参数是否在中心节点即组合服务执行引擎中,是,转步骤G45, 否,转步骤G46 ;步骤G45 封装服务参数输入消息,发送给服务代理,转步骤G48 ;步骤G46 发送服务参数传递通知消息给服务代理;步骤G47 等待接收服务完成消息进行超时计时,是否超时,是,转步骤G42,否,转 步骤G48 ;步骤G48 接收到服务完成消息,判断服务是否执行成功,是,转步骤G410,否,转 步骤G42 ;步骤G49 发送服务出错消息;步骤G410 活动执行结束。所述的步骤G5按如下步骤进行如附图8所示,步骤G51 从参数转换模型表中获取参数转换模型;步骤G52 判断参数是否存在引擎中,是,转步骤G53,否,转步骤G55 ;
步骤G53 进行参数转换,封装服务响应消息;步骤G54 发送服务响应消息给服务请求者,转步骤G59 ;步骤G55 获取参数所在服务代理地址,发送服务参数传递通知消息给该服务代 理;步骤G56 等待接收服务参数消息,进行超时计时,是否超时,是,转步骤G57,否, 转步骤G58 ;步骤G57 发送服务出错消息给服务请求者,转步骤G59 ;步骤G58 接收服务参数消息,封装服务响应消息,转步骤G54 ;步骤G59 活动执行结束。所述的步骤G6按如下步骤进行如附图9所示,步骤G61 判断所有条件是否完毕,是,转步骤G65,否,转步骤G62 ;步骤G62 根据条件表达式,封装服务参数提取消息,发送给服务代理;步骤G63:接收服务参数回传消息,判断条件表达式是否为真,是,转步骤G64,否, 转步骤G61 ;步骤G64 执行满足该判断条件的后继活动;步骤G65 活动执行结束。实验结果参见附图10,图10为不同数据传输量情况下组合服务平均执行时间的 变化。可以看出,随着数据传输量变大,集中式的组合服务执行方法的平均执行时间增长很 快,而本发明所提出的控制流集中数据流分散的组合服务执行方法的平均执行时间增长很 慢。这是由于在我们的组合服务执行方法中,数据会根据组合逻辑直接由其生产者发送给 其消费者而无需经过执行引擎中转,从而能够提高组合服务的执行效率,缩短组合服务的 执行时间。
权利要求
1.一种控制流集中数据流分布的组合服务执行系统,其特征在于该系统包括一个中 心节点和分布在网络中不同节点上的多个服务代理冲心节点即组合服务执行引擎,包括 解析模块、集成层模块、运行时模块和持久化模块,服务代理包括服务参数处理模块、协议 消息处理模块和服务调用模块;其中解析模块,负责对组合服务进行解析,通过中心节点即组合服务执行引擎对外提 供的组合服务部署解析接口,接收组合服务部署文件,将其解析成组合服务模板,建立内存 模型,同时生成参数转换模型;集成层模块,负责中心节点与外界的交互;运行时模块,负责中心节点即组合服务执行引擎与服务代理之间的交互; 持久化模块,负责中心节点即组合服务执行引擎内核与底层数据库进行交互,以跟踪 记录组合服务实例的执行过程和状态;服务参数处理模块,负责服务执行结果的存储以及服务传递参数的数据转换; 协议消息处理模块,负责协议消息的解析、封装、发送和接收; 服务调用模块,负责对具体的服务进行调用,以完成服务功能。
2.按权利要求1所述的控制流集中数据流分布的组合服务执行系统,其特征在于所 述的集成层模块包括服务请求消息处理子模块、服务替换调整子模块和协议消息处理子模 块;服务请求消息处理子模块,负责接收服务请求消息和发送服务响应消息; 服务替换调整子模块,负责接收服务替换调整消息,对其进行解析封装后,加入到服务 替换调整库,以支持组合服务执行过程中的服务替换;协议消息处理子模块,是中心节点即组合服务执行引擎与服务代理进行交互的中介, 负责接收发送协议消息,对协议消息进行解析、封装和路由匹配;所述的运行时模块包括组合服务管理子模块、组合服务实例管理子模块和组合服务实 例管理子模块;组合服务管理子模块,负责对组合服务模板添加、删除和更新; 组合服务实例管理子模块,负责进行组合服务实例的生命周期管理,包括启动、暂停、 恢复、停止和销毁;组合服务实例调度子模块,负责根据组合服务的执行逻辑,控制组合服务实例中各个 活动的执行顺序。
3.按权利要求1所述的控制流集中数据流分布的组合服务执行系统,其特征在于所 述的服务参数处理模块包括服务参数管理子模块、服务执行条件判定子模块,参数转换子 模块和数据消息封装子模块;服务参数管理子模块,负责接收到的服务参数的持久化,以及服务参数的查询及更新;服务执行条件判定子模块,负责服务执行条件的判断,接收到服务参数输入消息的时 候,根据服务输入参数是否完整,判断服务是否可以执行;参数转换子模块,根据参数转换模型,实现服务参数间相互转换; 数据消息封装子模块,负责封装服务参数输入消息; 所述的协议消息处理模块包括数据流收发子模块和控制流收发子模块;其中数据流收发子模块负责服务代理间数据传递; 控制流收发子模块负责和中心节点交互控制消息。
4.采用权利要求1所述的控制流集中数据流分布的组合服务执行系统的执行方法,其 特征在于,按如下步骤进行步骤A 首先对组合服务部署文件进行解析,通过解析模块,对组合服务部署文件进行 封装,创建组合服务模板;步骤B 引擎通过Web服务的方式对外发布接口,接收服务请求消息,根据服务请求消 息,查找组合服务模板,创建组合服务实例,并将其加入到组合服务实例执行队列;组合服 务实例是由一组活动按照一定的执行顺序构成;步骤C:引擎内核依次从组合服务实例执行队列中取出组合服务实例,开始执行组合 服务实例,从组合服务实例的第一个活动开始执行; 步骤D 设置活动状态为准备执行状态; 步骤E 将活动加入到活动执行队列;步骤F 活动执行模块将活动从活动执行模块中取出该活动,设置活动状态为执行状态;步骤G 执行活动逻辑;步骤H 设置活动状态为完成状态;步骤I 判断是否存在后继活动,如果存在后继活动,触发后继活动转到步骤D ;否则转 到步骤J ;步骤J 组合服务实例执行结束。
5.按权利要求4所述的控制流集中数据流分布的组合服务执行系统的执行方法,其特 征在于所述的步骤G按如下步骤进行步骤Gl 按照活动的执行是否需要中心和执行代理之间进行信息交互,活动可以分为 外部活动和内部活动;外部活动参与中心与执行代理间的消息交互;内部活动负责流程实 例的执行控制,不参与中心和执行代理间的消息交互;判断活动类型,如果活动类型是接收 活动执行步骤G2 ;如果活动类型是赋值活动执行步骤G3 ;如果活动类型是服务调用活动执 行步骤G4 ;如果活动类型是服务应答活动执行步骤G5 ;如果活动类型是判断活动执行步骤 G6 ;如果活动类型是其他内部活动按照其执行逻辑执行;步骤G2:执行接收活动活动,直接将接收到的服务请求消息存到指定服务输入变量中;步骤G3 执行赋值活动,组合服务解析时,该活动会生成参数转换模型,在活动执行时 会保存该参数转换模型,执行服务调用时,再将参数转换模型发送给指定的服务代理;步骤G4 执行服务调用(Invoke)活动,该活动是中心节点即组合服务执行引擎与服务 代理进行直接交互的活动,涉及到交互协议的控制流和数据流消息;步骤G5 执行服务应答活动,是中心节点即组合服务执行引擎接收服务代理发回的服 务参数消息,然后发送给客户端服务请求者;步骤G6 执行如果是判断活动,中心节点执行判断活动,如果判断活动中的用到之前 服务执行结果中的数据,需要和服务代理有一个交互过程来获取数据; 步骤G7 对于内部活动,按照执行逻辑执行。
6.按权利要求5所述的控制流集中数据流分布的组合服务执行系统的执行方法,其特 征在于所述的步骤G3按如下步骤进行步骤G31 获取活动生成的参数转换模型; 步骤G32:存储参数转换模型; 步骤G33 获取源参数所在的服务代理地址; 步骤G34 生成目标参数的服务地址映射; 步骤G35 存储参数服务地址映射; 步骤G36:活动执行结束。
7.按权利要求5所述的控制流集中数据流分布的组合服务执行系统的执行方法,其特 征在于所述的步骤G4按如下步骤进行步骤G41 从参数转换模型表中获取参数转换模型;步骤G42 判断是否有替换服务,是,生成并存储新的参数转换模型和参数服务地址映 射,转步骤G44,否,转步骤G43 ;步骤G43 判断原有服务是否可用,是,转步骤G44,否,转步骤G49 ; 步骤G44:判断服务参数是否在中心节点即组合服务执行引擎中,是,转步骤G45,否, 转步骤G46 ;步骤G45 封装服务参数输入消息,发送给服务代理,转步骤G48 ; 步骤G46 发送服务参数传递通知消息给服务代理;步骤G47 等待接收服务完成消息进行超时计时,是否超时,是,转步骤G42,否,转步骤G48 ;步骤G48 接收到服务完成消息,判断服务是否执行成功,是,转步骤G410,否,转步骤G42 ;步骤G49:发送服务出错消息; 步骤G410:活动执行结束。
8.按权利要求5所述的控制流集中数据流分布的组合服务执行系统的执行方法,其特 征在于所述的步骤G5按如下步骤进行步骤G51 从参数转换模型表中获取参数转换模型;步骤G52 判断参数是否存在引擎中,是,转步骤G53,否,转步骤G55 ;步骤G53 进行参数转换,封装服务响应消息;步骤G54 发送服务响应消息给服务请求者,转步骤G59 ;步骤G55 获取参数所在服务代理地址,发送服务参数传递通知消息给该服务代理; 步骤G56 等待接收服务参数消息,进行超时计时,是否超时,是,转步骤G57,否,转步 骤 G58 ;步骤G57 发送服务出错消息给服务请求者,转步骤G59 ; 步骤G58 接收服务参数消息,封装服务响应消息,转步骤G54 ; 步骤G59 活动执行结束。
9.按权利要求5所述的控制流集中数据流分布的组合服务执行系统的执行方法,其特 征在于所述的步骤G6按如下步骤进行步骤G61 判断所有条件是否完毕,是,转步骤G65,否,转步骤G62 ;步骤G62 根据条件表达式,封装服务参数提取消息,发送给服务代理; 步骤G63 接收服务参数回传消息,判断条件表达式是否为真,是,转步骤G64,否,转步 骤 G61 ;步骤G64 执行满足该判断条件的后继活动; 步骤G65 活动执行结束。
全文摘要
一种控制流集中数据流分布的组合服务执行系统及执行方法,该系统包括一个中心节点和分布在网络中不同节点上的多个服务代理。本发明的优点通过发送控制消息通知服务何时、往何处发送数据,从而既能够解决分布式执行方式缺乏对组合服务整体运行情况的监控能力,又能够解决集中式执行方式由于数据流都经过中心节点中转而易存在系统性能瓶颈的问题。同时,该方法采用中心节点控制组合服务的全局执行逻辑,能够兼容当前的主流组合服务执行语言BPEL,从而可以有效地支持组合服务应用的执行。
文档编号H04L12/58GK102088475SQ201010563748
公开日2011年6月8日 申请日期2010年11月29日 优先权日2010年11月29日
发明者代钰, 张斌, 杨雷, 那俊, 郭军, 高岩 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1