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

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

Info

Publication number
CN102088475B
CN102088475B CN 201010563748 CN201010563748A CN102088475B CN 102088475 B CN102088475 B CN 102088475B CN 201010563748 CN201010563748 CN 201010563748 CN 201010563748 A CN201010563748 A CN 201010563748A CN 102088475 B CN102088475 B CN 102088475B
Authority
CN
China
Prior art keywords
service
composite services
activity
parameter
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201010563748
Other languages
English (en)
Other versions
CN102088475A (zh
Inventor
杨雷
张斌
代钰
高岩
那俊
郭军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN 201010563748 priority Critical patent/CN102088475B/zh
Publication of CN102088475A publication Critical patent/CN102088475A/zh
Application granted granted Critical
Publication of CN102088475B publication Critical patent/CN102088475B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

一种控制流集中数据流分布的组合服务执行系统及执行方法,该系统包括一个中心节点和分布在网络中不同节点上的多个服务代理。本发明的优点:通过发送控制消息通知服务何时、往何处发送数据,从而既能够解决分布式执行方式缺乏对组合服务整体运行情况的监控能力,又能够解决集中式执行方式由于数据流都经过中心节点中转而易存在系统性能瓶颈的问题。同时,该方法采用中心节点控制组合服务的全局执行逻辑,能够兼容当前的主流组合服务执行语言BPEL,从而可以有效地支持组合服务应用的执行。

Description

控制流集中数据流分布的组合服务执行系统及执行方法
技术领域
本发明属于Web服务组合领域,特别涉及控制流集中数据流分散的组合服务执行方法。
背景技术
随着Web服务技术的成熟与发展,组合已有服务以提供增值功能的组合服务已经得到了广泛的关注。在服务组合研究问题中,组合服务的执行已成为该领域的一个热点问题。为此,Oracle、Apache、IBM等公司都开发了相应的组合服务执行引擎。例如,Apache社区的ApacheODE、Active Endpoints公司的ActiveBpel、Oracle公司的Oracle BPEL以及IBM公司的WBISF。然而,目前的这些组合服务执行引擎大都采用控制流数据流全集中的执行方法。该方法是利用一个中心节点,即组合服务执行引擎协调服务之间的控制流和数据流。在该执行方法中,所有数据都要经过中心节点进行转发,而不是由数据的生产者直接发送数据给消费者。这样会增加网络传输的数据量,易形成系统的性能瓶颈,降低系统的吞吐量和执行效率。
发明内容
为了克服已有技术的不足,本发明提供了一种控制流集中数据流分布的组合服务执行系统及执行方法。该方法通过中心节点集中控制流,以控制各个服务的执行次序;同时,中心节点通知各服务代理数据流的流转,以使得数据流不经过中心节点的转发而直接从数据生产者发送到其消费者。
本发明采取的硬件为连接的Intel网上的PC机组成。一台PC机作为中心节点,其余PC作为服务代理,web服务注册在服务代理上。
为了实现该方法中服务代理和中心节点间的协调交互,设定了一组服务代理和中心节点间的交互协议,该交互协议包括5种协议消息:
服务参数输入消息。该消息用来描述请求服务调用的具体输入变量,消息发送者为中心节点或服务代理,消息的接收者为服务代理或中心节点。该消息包括消息类型,组合服务实例标识,活动标识,服务输入参数和中心节点地址等内容。
服务完成消息。该消息用来通知中心节点服务执行成功或者失败,消息发送者为服务代理,消息接收者为中心节点。该消息包括消息类型,组合服务实例标识,活动标识和服务执行结果(成功或者失败)等内容。
服务参数传递通知消息。该消息用来通知服务代理将服务执行结果进行参数转换,并传送到目标服务代理,消息发送者为中心节点,消息接收者为服务代理。该消息包括消息类型,组合服务实例标识,活动标识,参数转换模型和服务代理地址等内容。
服务参数提取消息。该消息用来通知服务代理将执行结果中与组合服务执行控制相关的参数传递给中心节点,消息发送者为中心节点,消息接收者为服务代理。该消息包括消息类型,组合服务实例标识,活动标识和参数名称等内容。
服务参数回传消息。该消息用来根据服务参数提取消息,发送相关服务参数给中心节点,消息发送者为服务代理,消息接收者为中心节点。该消息包括消息类型,组合服务实例标识,活动标识和服务输入参数等内容。
一种控制流集中数据流分布的组合服务执行系统,该系统包括一个中心节点和分布在网络中不同节点上的多个服务代理;中心节点即组合服务执行引擎,如附图1所示,包括解析模块、集成层模块、运行时模块和持久化模块;
其中解析模块,负责对组合服务进行解析,通过中心节点即组合服务执行引擎对外提供的组合服务部署解析接口,接收组合服务部署文件,将其解析成组合服务模板,建立内存模型,同时生成参数转换模型;
集成层模块,负责中心节点与外界的交互;包括服务请求消息处理子模块、服务替换调整子模块和协议消息处理子模块;其中服务请求消息处理子模块,负责接收服务请求消息和发送服务响应消息;服务替换调整子模块,负责接收服务替换调整消息,对其进行解析封装后,加入到服务替换调整库,以支持组合服务执行过程中的服务替换;协议消息处理子模块,是中心节点即组合服务执行引擎与服务代理进行交互的中介,负责接收发送协议消息,对协议消息进行解析、封装和路由匹配;
运行时模块,负责中心节点即组合服务执行引擎与服务代理之间的交互;包括组合服务管理子模块、组合服务实例管理子模块和组合服务实例管理子模块;其中组合服务管理子模块,负责对组合服务模板添加、删除和更新;组合服务实例管理子模块,负责进行组合服务实例的生命周期管理,包括启动、暂停、恢复、停止和销毁;组合服务实例调度子模块,负责根据组合服务的执行逻辑,控制组合服务实例中各个活动的执行顺序;
持久化模块,负责中心节点即组合服务执行引擎内核与底层数据库进行交互,以跟踪记录组合服务实例的执行过程和状态;
中心节点执行逻辑过程如附图2所示。中心节点通过请求消息处理模块接收到用户的组合服务执行请求,转换成相应的实例创建消息,首先通过组合服务管理模块查询组合服务模板库,找到匹配的组合服务模板,然后创建组合服务实例,交给组合服务实例管理模块进行处理,组合服务实例管理模块会将新创建的组合服务实例交给实例调度模块执行。实例调度模块按照组合服务实例的执行逻辑,依次取出组合服务实例的活动加入活动执行队列,活动从活动执行队列中弹出后,会交给活动执行模块按照活动的具体执行逻辑进行执行,如果活动是服务调用活动,会通过活动执行模块与协议消息处理模块,进行协议消息的产生、封装、收发与服务代理进行交互,控制服务何时执行以及何时/往何处发送数据。活动执行结束后,活动执行模块会通知实例调度模块调度执行下一个活动,直至组合服务实例执行结束。将执行结果通过请求消息处理模块返回给用户。
服务代理包括服务参数处理模块、协议消息处理模块和服务调用模块,如附图3所示;
服务参数处理模块,负责服务执行结果的存储以及服务传递参数的数据转换;包括服务参数管理子模块、服务执行条件判定子模块,参数转换子模块和数据消息封装子模块;
服务参数管理子模块,负责接收到的服务参数的持久化,以及服务参数的查询及更新。
服务执行条件判定子模块,负责服务执行条件的判断,接收到服务参数输入消息的时候,根据服务输入参数是否完整,判断服务是否可以执行。
参数转换子模块,根据参数转换模型,实现服务参数间相互转换。
数据消息封装子模块,负责封装服务参数输入消息;
协议消息处理模块,负责协议消息的解析、封装、发送和接收;包括数据流收发子模块和控制流收发子模块;其中数据流收发子模块负责服务代理间数据传递;控制流收发子模块负责和中心节点交互控制消息。
服务调用模块,负责对具体的服务进行调用,以完成服务功能。
服务代理的执行逻辑过程如附图4所示。服务代理通过数据流接收模块接收到服务参数输入消息,首先通过服务参数管理模块进行存取,调用服务执行条件判定模块判断该服务的执行参数是否完备,是否满足执行条件。如果满足执行条件,通过服务调用模块,执行服务调用。将服务调用是否成功封装成服务完成消息通过控制流发送模块发送给中心节点。服务节点通过控制流接收模块接收到中心节点发送的服务参数传递通知消息,按照服务参数传递通知消息中的参数转换模型,调用参数转换模块对服务执行结果进行数据转换,并通过数据消息封装模块封装成服务参数输入消息,通过数据流发送模块发送给其他服务代理或者中心节点。
一种控制流集中数据流分布的组合服务执行系统的执行方法如下:如附图5所示,
步骤A:首先对组合服务部署文件进行解析,通过解析模块,对组合服务部署文件进行封装,创建组合服务模板。
步骤B:引擎通过Web服务的方式对外发布接口,接收服务请求消息,根据服务请求消息,查找组合服务模板,创建组合服务实例,并将其加入到组合服务实例执行队列。组合服务实例是由一组活动按照一定的执行顺序构成。
步骤C:引擎内核依次从组合服务实例执行队列中取出组合服务实例,开始执行组合服务实例,从组合服务实例的第一个活动开始执行。
步骤D:设置活动状态为准备执行状态。
步骤E:将活动加入到活动执行队列。
步骤F:活动执行模块将活动从活动执行模块中取出该活动,设置活动状态为执行状态。
步骤G:执行活动逻辑。活动逻辑的执行是组合服务执行的核心部分。其具体执行过程如下:
步骤G1:按照活动的执行是否需要中心和执行代理之间进行信息交互,活动可以分为外部活动和内部活动。外部活动参与中心与执行代理间的消息交互。内部活动负责流程实例的执行控制,不参与中心和执行代理间的消息交互。判断活动类型,如果活动类型是接收活动(Receive)执行步骤G2;如果活动类型是赋值活动(Assign)执行步骤G3;如果活动类型是服务调用活动(Invoke)执行步骤G4;如果活动类型是服务应答活(Reply)动执行步骤G5;如果活动类型是判断(If)活动执行步骤G6;如果活动类型是其他内部活动按照其执行逻辑执行。
[0024]步骤G2:执行接收活动(Receive)活动,直接将接收到的服务请求消息存到指定服务输入变量中。
[0025]步骤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-Serv为代表的全分布的执行方式,不存在唯一的中心节点,数据直接由生产者发送给消费者,减少了不必要的消息通信量。然而,由于系统完全分布,没有逻辑中心,很难对系统整体运行情况进行监控,无法实现对组合服务的全局调整以适应异常情况的发生。同时,该执行方式不支持目前公认的组合服务执行语言BPEL,从而很难实现该方式的应用推广。基于对以上两种执行方式的分析,我们提出一种控制流集中数据流分散的组合服务执行方法。该方法的基本思想是利用一个中心节点对全局组合逻辑进行控制,通过发送控制消息通知服务何时、往何处发送数据,从而既能够解决分布式执行方式缺乏对组合服务整体运行情况的监控能力,又能够解决集中式执行方式由于数据流都经过中心节点中转而易存在系统性能瓶颈的问题。同时,该方法采用中心节点控制组合服务的全局执行逻辑,能够兼容当前的主流组合服务执行语言BPEL,从而可以有效地支持组合服务应用的执行。综上所述,所提出的控制流集中数据流分散的组合服务执行方法兼具全集中与全分布两种方法的优点,而且能够兼容当前主流的服务组合语言,特别适用于具有较大数据量传输的组合服务执行。
附图说明
图1本发明中心节点即组合服务执行引擎功能模块图;
图2本发明中心节点即组合服务执行引擎逻辑结构图;
图3本发明服务代理功能模块图;
图4本发明代理服务逻辑结构图;
图5本发明控制流集中数据流分散的组合服务执行方法执行流程图;
图6本发明赋值(Assign)活动执行逻辑流程图;
图7本发明服务调用(Invoke)活动执行逻辑流程图;
图8本发明服务响应(Reply)活动执行逻辑流程图;
图9本发明判断(If)活动执行流程图;
图10本发明不同数据传输量情况下组合服务平均执行时间的变化示意图。
具体实施方式
本发明结合具体实施例和说明书附图进行说明。
为了验证本发明提出的方法和系统的性能,进行了一系列的实验。实验环境由100M/sLAN连接的Intel(2.6GHz,1G RAM)PC和IBM T60笔记本电脑组成。PC机作为Web服务器,部署了50个Web服务。Dell 630作为服务代理和中心节点。50个Web服务分别注册在10台IBM T60上。采用的测试用例是由20个Web服务顺序调用组成的组合服务。对于每个组合服务,其中任意两个Web服务间数据传输量都是相同的,且数据传输量的取值设置为1K、2K、4K、16K、32K、64K、128K、256K、512K或1024K。在不同数据传输量取值的情况下,在所建立的系统环境中执行组合服务并得到执行时间。对于每个数据传输量进行20次实验,计算平均执行时间。之后,采用集中式执行的开源BPEL执行引擎ActiveBPEL5.0做同样的实验。比较所提出的组合服务执行系统与该开源执行引擎的执行时间。
该系统包括一个中心节点和分布在网络中不同节点上的多个服务代理;中心节点即组合服务执行引擎,如附图1所示,包括解析模块、集成层模块、运行时模块和持久化模块;
其中解析模块,负责对组合服务进行解析,通过中心节点即组合服务执行引擎对外提供的组合服务部署解析接口,接收组合服务部署文件,将其解析成组合服务模板,建立内存模型,同时生成参数转换模型;
集成层模块,负责中心节点与外界的交互;包括服务请求消息处理子模块、服务替换调整子模块和协议消息处理子模块;其中服务请求消息处理子模块,负责接收服务请求消息和发送服务响应消息;服务替换调整子模块,负责接收服务替换调整消息,对其进行解析封装后,加入到服务替换调整库,以支持组合服务执行过程中的服务替换;协议消息处理子模块,是中心节点即组合服务执行引擎与服务代理进行交互的中介,负责接收发送协议消息,对协议消息进行解析、封装和路由匹配;
运行时模块,负责中心节点即组合服务执行引擎与服务代理之间的交互;包括组合服务管理子模块、组合服务实例管理子模块和组合服务实例管理子模块;其中组合服务管理子模块,负责对组合服务模板添加、删除和更新;组合服务实例管理子模块,负责进行组合服务实例的生命周期管理,包括启动、暂停、恢复、停止和销毁;组合服务实例调度子模块,负责根据组合服务的执行逻辑,控制组合服务实例中各个活动的执行顺序;
持久化模块,负责中心节点即组合服务执行引擎内核与底层数据库进行交互,以跟踪记录组合服务实例的执行过程和状态;
服务代理包括服务参数处理模块、协议消息处理模块和服务调用模块,如附图3所示;;
服务参数处理模块,负责服务执行结果的存储以及服务传递参数的数据转换;包括服务参数管理子模块、服务执行条件判定子模块,参数转换子模块和数据消息封装子模块;
服务参数管理子模块,负责接收到的服务参数的持久化,以及服务参数的查询及更新。
服务执行条件判定子模块,负责服务执行条件的判断,接收到服务参数输入消息的时候,根据服务输入参数是否完整,判断服务是否可以执行。
参数转换子模块,根据参数转换模型,实现服务参数间相互转换。
数据消息封装子模块,负责封装服务参数输入消息;
协议消息处理模块,负责协议消息的解析、封装、发送和接收;包括数据流收发子模块和控制流收发子模块;其中数据流收发子模块负责服务代理间数据传递;控制流收发子模块负责和中心节点交互控制消息。
服务调用模块,负责对具体的服务进行调用,以完成服务功能。
控制流集中数据流分布的组合服务执行系统的执行方法,按如下步骤进行:如附图5所示,
步骤A:首先对组合服务部署文件进行解析,通过解析模块,对组合服务部署文件进行封装,创建组合服务模板;
步骤B:引擎通过Web服务的方式对外发布接口,接收服务请求消息,根据服务请求消息,查找组合服务模板,创建组合服务实例,并将其加入到组合服务实例执行队列。组合服务实例是由一组活动按照一定的执行顺序构成;
步骤C:引擎内核依次从组合服务实例执行队列中取出组合服务实例,开始执行组合服务实例,从组合服务实例的第一个活动开始执行;
步骤D:设置活动状态为准备执行状态;
步骤E:将活动加入到活动执行队列;
步骤F:活动执行模块将活动从活动执行模块中取出该活动,设置活动状态为执行状态;
步骤G:执行活动逻辑,活动逻辑的执行是组合服务执行的核心部分;
步骤H:设置活动状态为完成状态;
步骤I:判断是否存在后继活动,如果存在后继活动,触发后继活动转到步骤D。否则转到步骤J;
步骤J:组合服务实例执行结束。
所述的步骤G按如下步骤进行:
步骤G1:按照活动的执行是否需要中心和执行代理之间进行信息交互,活动可以分为外部活动和内部活动;外部活动参与中心与执行代理间的消息交互;内部活动负责流程实例的执行控制,不参与中心和执行代理间的消息交互;判断活动类型,如果活动类型是接收活动执行步骤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为不同数据传输量情况下组合服务平均执行时间的变化。可以看出,随着数据传输量变大,集中式的组合服务执行方法的平均执行时间增长很快,而本发明所提出的控制流集中数据流分散的组合服务执行方法的平均执行时间增长很慢。这是由于在我们的组合服务执行方法中,数据会根据组合逻辑直接由其生产者发送给其消费者而无需经过执行引擎中转,从而能够提高组合服务的执行效率,缩短组合服务的执行时间。

Claims (9)

1.一种控制流集中数据流分布的组合服务执行系统,包括一个中心节点和分布在网络中不同节点上的多个服务代理;中心节点即组合服务执行引擎,包括解析模块、运行时模块和持久化模块,服务代理包括服务调用模块;其中,
解析模块,负责对组合服务进行解析,通过中心节点即组合服务执行引擎对外提供的组合服务部署解析接口,接收组合服务部署文件,将其解析成组合服务模板,建立内存模型,同时生成参数转换模型;
运行时模块,负责中心节点即组合服务执行引擎与服务代理之间的交互;
持久化模块,负责中心节点即组合服务执行引擎内核与底层数据库进行交互,以跟踪记录组合服务实例的执行过程和状态;
服务调用模块,负责对具体的服务进行调用,以完成服务功能;
其特征在于:所述的中心节点还包括:集成层模块,所述的服务代理还包括服务参数处理模块和协议消息处理模块;
其中,集成层模块,负责中心节点与外界的交互; 
服务参数处理模块,负责服务执行结果的存储以及服务传递参数的数据转换;
协议消息处理模块,包括控制流接收模块、数据流发送模块和协议消息封装解析器,服务代理通过控制流接收模块接收到中心节点发送的服务参数传递通知消息,按照服务参数传递通知消息中的参数转换模型,调用参数转换模块对服务执行结果进行数据转换,并通过数据消息封装模块封装成服务参数输入消息,通过数据流发送模块发送给其他服务代理或者中心节点。
2.按权利要求1所述的控制流集中数据流分布的组合服务执行系统,其特征在于:所述的集成层模块包括服务请求消息处理子模块、服务替换调整子模块和协议消息处理子模块;
服务请求消息处理子模块,负责接收服务请求消息和发送服务响应消息;
服务替换调整子模块,负责接收服务替换调整消息,对其进行解析封装后,加入到服务替换调整库,以支持组合服务执行过程中的服务替换;
协议消息处理子模块,是中心节点即组合服务执行引擎与服务代理进行交互的中介,负责接收发送协议消息,对协议消息进行解析、封装和路由匹配;
所述的运行时模块包括组合服务管理子模块、组合服务实例管理子模块和组合服务实例调度子模块;
组合服务管理子模块,负责对组合服务模板添加、删除和更新;
组合服务实例管理子模块,负责进行组合服务实例的生命周期管理,包括启动、暂停、恢复、停止和销毁;
组合服务实例调度子模块,负责根据组合服务的执行逻辑,控制组合服务实例中各个活动的执行顺序。
3.按权利要求1所述的控制流集中数据流分布的组合服务执行系统,其特征在于:所述的服务参数处理模块包括服务参数管理子模块、服务执行条件判定子模块,参数转换子模块和数据消息封装子模块; 
服务参数管理子模块,负责接收到的服务参数的持久化,以及服务参数的查询及更新;
服务执行条件判定子模块,负责服务执行条件的判断,接收到服务参数输入消息的时候,根据服务输入参数是否完整,判断服务是否可以执行;
参数转换子模块,根据参数转换模型,实现服务参数间相互转换;
数据消息封装子模块,负责封装服务参数输入消息;
所述的协议消息处理模块包括数据流收发子模块和控制流收发子模块;
其中数据流收发子模块负责服务代理间数据传递;
控制流收发子模块负责和中心节点交互控制消息。
4.采用权利要求1所述的控制流集中数据流分布的组合服务执行系统的执行方法,其特征在于,按如下步骤进行:
步骤A:首先对组合服务部署文件进行解析,通过解析模块,对组合服务部署文件进行封装,创建组合服务模板;
步骤B:引擎通过Web服务的方式对外发布接口,接收服务请求消息,根据服务请求消息,查找组合服务模板,创建组合服务实例,并将其加入到组合服务实例执行队列;组合服务实例是由一组活动按照一定的执行顺序构成;
步骤C:引擎内核依次从组合服务实例执行队列中取出组合服务实例,开始执行组合服务实例,从组合服务实例的第一个活动开始执行;
步骤D:设置活动状态为准备执行状态;
步骤E:将活动加入到活动执行队列;
步骤F: 活动执行模块将活动从活动执行模块中取出该活动,设置活动状态为执行状态;
步骤G:执行活动逻辑;
步骤H:设置活动状态为完成状态;
步骤I: 判断是否存在后继活动,如果存在后继活动,触发后继活动转到步骤D;否则转到步骤J;
步骤J:组合服务实例执行结束。
5.按权利要求4所述的控制流集中数据流分布的组合服务执行系统的执行方法,其特征在于所述的步骤G按如下步骤进行: 
步骤G1: 按照活动的执行是否需要中心和服务代理之间进行信息交互,活动可以分为外部活动和内部活动;外部活动参与中心与服务代理间的消息交互;内部活动负责流程实例的执行控制,不参与中心和服务代理间的消息交互;判断活动类型,如果活动类型是接收活动执行步骤G2;如果活动类型是赋值活动执行步骤G3;如果活动类型是服务调用活动执行步骤G4;如果活动类型是服务应答活动执行步骤G5;如果活动类型是判断活动执行步骤G6;如果活动类型是其他内部活动按照其执行逻辑执行;
步骤G2: 执行接收活动,直接将接收到的服务请求消息存到指定服务输入变量中;
步骤G3:执行赋值活动,组合服务解析时,该活动会生成参数转换模型,在活动执行时会保存该参数转换模型,执行服务调用时,再将参数转换模型发送给指定的服务代理;
步骤G4:执行服务调用活动,该活动是中心节点即组合服务执行引擎与服务代理进行直接交互的活动,涉及到交互协议的控制流和数据流消息;
步骤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:活动执行结束。
CN 201010563748 2010-11-29 2010-11-29 控制流集中数据流分布的组合服务执行系统及执行方法 Expired - Fee Related CN102088475B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010563748 CN102088475B (zh) 2010-11-29 2010-11-29 控制流集中数据流分布的组合服务执行系统及执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010563748 CN102088475B (zh) 2010-11-29 2010-11-29 控制流集中数据流分布的组合服务执行系统及执行方法

Publications (2)

Publication Number Publication Date
CN102088475A CN102088475A (zh) 2011-06-08
CN102088475B true CN102088475B (zh) 2013-09-04

Family

ID=44100087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010563748 Expired - Fee Related CN102088475B (zh) 2010-11-29 2010-11-29 控制流集中数据流分布的组合服务执行系统及执行方法

Country Status (1)

Country Link
CN (1) CN102088475B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019820B (zh) * 2012-12-06 2015-10-07 厦门市美亚柏科信息股份有限公司 基于boost的出站式rfi/rmi服务实现方法及通信系统
CN104639361B (zh) * 2013-11-15 2019-04-19 中兴通讯股份有限公司 网络服务模板的管理方法和装置
CN104917789A (zh) * 2014-03-11 2015-09-16 中国移动通信集团辽宁有限公司 一种组合服务执行方法及执行引擎
CN103995691B (zh) * 2014-05-21 2015-04-15 中国人民解放军国防科学技术大学 基于事务的服务状态一致性维护方法
CN105095317B (zh) * 2014-05-23 2018-09-21 中国银联股份有限公司 分布式数据库服务管理系统
CN107102905B (zh) * 2017-04-13 2020-08-11 华南理工大学 基于Artifact的大数据服务的平台及平台处理方法
CN107864302B (zh) * 2017-11-22 2020-09-08 泰康保险集团股份有限公司 电话销售服务方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1993254A1 (en) * 2007-05-16 2008-11-19 Doga Armangil A method and a system for the composition of services
CN101860564A (zh) * 2010-04-22 2010-10-13 北京航空航天大学 基于协议的服务组合系统和方法
CN101895581A (zh) * 2010-07-16 2010-11-24 浙江大学 一种基于QoS技术感知的动态web服务选择方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070282653A1 (en) * 2006-06-05 2007-12-06 Ellis Edward Bishop Catalog based services delivery management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1993254A1 (en) * 2007-05-16 2008-11-19 Doga Armangil A method and a system for the composition of services
CN101860564A (zh) * 2010-04-22 2010-10-13 北京航空航天大学 基于协议的服务组合系统和方法
CN101895581A (zh) * 2010-07-16 2010-11-24 浙江大学 一种基于QoS技术感知的动态web服务选择方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
支持数据流分发的组合服务协调框架;翟岩龙等;《北京理工大学学报》;20091231;第29卷(第12期);第1091-1095页,第1109页 *
翟岩龙等.支持数据流分发的组合服务协调框架.《北京理工大学学报》.2009,第29卷(第12期),第1091-1095页,第1109页.

Also Published As

Publication number Publication date
CN102088475A (zh) 2011-06-08

Similar Documents

Publication Publication Date Title
CN102088475B (zh) 控制流集中数据流分布的组合服务执行系统及执行方法
Albano et al. Message-oriented middleware for smart grids
WO2021233391A1 (zh) 一种路由信息的发送、接收方法、网元及节点设备
CN106656706A (zh) 基于软件总线的面向服务的机器人开放式控制系统及方法
CN102387075B (zh) 面向企业服务总线的动态服务路由装置
CN100531055C (zh) 数据同步系统及其方法
Bucchiarone et al. A survey on services composition languages and models
Zhao et al. Dynatops: A dynamic topic-based publish/subscribe architecture
CN110191148A (zh) 一种面向边缘计算的统计函数分布式执行方法及系统
CN110162559B (zh) 一种基于通用json同步和异步数据api接口调用的区块链处理方法
CN102761454A (zh) 一种物联网监控方法及系统
CN109325008A (zh) 面向消息中间件的跨域数据同步方法与系统
CN109213792A (zh) 数据处理的方法、服务端、客户端、装置及可读存储介质
Yoneki et al. Unified semantics for event correlation over time and space in hybrid network environments
CN103401897A (zh) 一种分布式服务注册中心构建方法
CN104734915A (zh) 一种复合多进程多线程的多网络并发动态仿真方法
CN101582894A (zh) 一种用于企业信息化异构系统集成的语义网关
CN106027534A (zh) 一种基于Netty实现金融报文处理系统
CN110287266A (zh) 一种分布式系统及数据处理方法
CN109739640A (zh) 一种基于申威架构的容器资源管理系统
CN114615096A (zh) 基于事件驱动架构的电信计费方法、系统及相关设备
CN116684418B (zh) 基于算力服务网关的算力编排调度方法、算力网络及装置
CN103354506B (zh) 一种物联网业务架构以及业务组合方法
CN102223385A (zh) 一种基于多智能体的网格gis资源管理系统
CN101977165A (zh) 云模式下的消息传输方法及消息总线系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Yang Lei

Inventor after: Zhang Bin

Inventor after: Dai Yu

Inventor after: Gao Yan

Inventor after: Na Jun

Inventor after: Guo Jun

Inventor before: Zhang Bin

Inventor before: Yang Lei

Inventor before: Dai Yu

Inventor before: Gao Yan

Inventor before: Na Jun

Inventor before: Guo Jun

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHANG BIN YANG LEI DAI YU GAO YAN NA JUN GUO JUN TO: YANG LEI ZHANG BIN DAI YU GAO YAN NA JUN GUO JUN

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130904

Termination date: 20141129

EXPY Termination of patent right or utility model