CN104618433A - 一种基于eca规则的服务组合方法 - Google Patents
一种基于eca规则的服务组合方法 Download PDFInfo
- Publication number
- CN104618433A CN104618433A CN201410835896.5A CN201410835896A CN104618433A CN 104618433 A CN104618433 A CN 104618433A CN 201410835896 A CN201410835896 A CN 201410835896A CN 104618433 A CN104618433 A CN 104618433A
- Authority
- CN
- China
- Prior art keywords
- event
- activity
- service
- name
- eca rule
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于ECA规则的服务组合方法。包括如下步骤:(1)以XML格式存储外部服务对应的基本服务信息,注册外部服务;(2)以XML格式存储ECA规则,建立事件名到相应的ECA规则的映射表;(3)在客户端请求到达后,解析请求参数并构建事件对象,将事件对象投递到事件通道,形成先入先出的消息队列;(4)事件引擎从事件通道中获取、解析并执行事件对象。本发明能实现以事件驱动服务的动态组合:当外部业务逻辑发生变化时,只需要动态修改ECA规则即可实现服务功能的更新;ECA规则所绑定的活动流程在执行过程中会根据活动运行情况触发新事件,进行嵌套调用或异常通知,提高了服务的主动性。
Description
技术领域
本发明属于异构数据融合及业务集成技术领域,更具体地,涉及一种基于ECA规则的服务组合方法。
背景技术
随着企业业务需求的不断变化及扩充,如何有效整合各企业及企业各部门之间的业务资源,满足用户多样性的功能需求,已成为一项日益重要的课题。在这种环境之下,Web服务应运而生。Web服务基于一系列底层标准,通过注册、发布及发现等机制,将公共的服务提供给用户。以服务为基础的架构(Service Oriented Architecture,SOA)能够有效屏蔽分布式计算环境下异构的底层环境,构建面向服务的、松耦合的、灵活的企业应用,因而越来越多的企业将自己的业务功能打包成服务发布。
然而,单一的服务无法满足企业业务快速变化的需求。通过服务组合技术,可以将单一的、细粒度的服务通过有效的编排或重组,能够生成粗粒度的、复杂的、具有业务价值的服务,实现业务增值。在当前相关服务组合技术中,以BEA公司、IBM和微软等提出的业务流程执行语言BPEL为代表。BPEL使用XML标准格式来描述Web服务如何重组以形成新的服务,并生成标准文件交由BPEL执行引擎部署。随着企业业务模型日益复杂及用户需求的动态变化,基于BPEL-SOA的架构方式已不能满足应用需求。主要表现在如下方面:一方面,相对固定的业务流程与业务逻辑紧耦合,无法满足业务动态变化的需要;另一方面,服务本身缺少主动性及协调合作的能力。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于ECA规则的服务组合方法,其目的在于解决现有服务组合技术缺少动态性和主动性的问题,能实现以事件驱动服务的动态组合,同时提高了服务的主动性。
为实现上述目的,本发明提供了一种基于ECA规则的服务组合方法,其特征在于,包括如下步骤:(1)以XML格式存储外部服务对应的基本服务信息,注册外部服务;其中,基本服务信息包括服务名、服务地址、操作名、输入消息和输出消息;(2)以XML格式存储ECA规则,建立事件名到相应的ECA规则的映射表;其中,ECA规则包括事件名Event、事件触发条件Condition和活动流程Activity;活动流程Activity包括基本活动BaseActivity和结构化活动StructActivity,其组成分别表示如下:
BaseActivity={Receive,Assign,Invoke,Reply,Emit},
StructActivity={Sequence,Flow,While,Switch};
其中,Receive表示请求输入活动,Assign表示参数赋值活动,Invoke表示服务调用活动,Reply表示响应输出活动,Emit表示事件投递活动;Sequence表示顺序活动,Flow表示并行活动,While表示循环活动,Switch表示条件分支活动;(3)在客户端请求到达后,根据ECA规则,解析请求参数并构建事件对象,将事件对象投递到事件通道,形成先入先出的消息队列;(4)事件引擎从事件通道中获取事件对象,根据事件名到相应的ECA规则的映射表和注册的外部服务,解析并执行事件对象。
优选地,所述步骤(3)进一步包括如下子步骤:(3-1)在客户端请求到达后,解析请求参数,并将其序列化为指定的XML格式,得到序列化的XML字符串;其中,该XML格式与ECA规则中的活动流程Activity中请求输入活动Receive的文本值所定义的格式保持一致;(3-2)构建标准化的事件对象,标准化的事件对象包括事件对象的名称、数据属性和时戳属性;其中,事件对象的名称与ECA规则中的事件名Event一致,事件对象的数据属性为步骤(3-1)得到的序列化的XML字符串,事件对象的时戳属性为创建事件对象的系统绝对时间;(3-3)将标准化的事件对象投递到事件通道,形成先入先出的消息队列;其中,在队列为空时,等待事件触发,并将到达的事件对象投递到队尾,队列长度加一;在队列为满时,若新事件到达则循环等待直到队列非满;在队列不为空也不为满时,由事件引擎主动从队列头获取事件对象,队列长度减一。
优选地,所述步骤(4)进一步包括如下子步骤:(4-1)事件引擎从事件通道中获取事件对象;(4-2)从事件对象中获取事件对象名称,检索事件名到相应的ECA规则的映射表,获取与事件对象名称匹配对应的ECA规则;(4-3)获取ECA规则中的事件触发条件Condition,判断是否满足事件触发条件Condition,是则顺序执行步骤(4-4);否则流程结束;(4-4)遍历活动流程Activity,创建整个活动流程所需的服务调用实例列表;(4-5)将整个活动流程作为一个可执行的树形结构,其中,叶子节点对应基本活动,非叶子节点对应结构化活动,从活动流程Activity的根节点开始,解析并执行活动节点,直至遇到出口节点响应客户端请求并结束整个活动流程。
优选地,所述步骤(4-4)进一步包括如下子步骤:(4-4-1)遍历活动流程Activity,匹配服务调用活动Invoke,提取活动名称、服务名和操作名等属性信息,根据服务名和操作名获取该服务对应操作的输入消息和输出消息;(4-4-2)将整个活动流程Activity作为一个新服务,其输入消息格式为Receive活动的值,其输出消息格式为Reply活动的值;(4-4-3)建立服务实例的活动名称到其输入消息和输出消息格式的映射表。
优选地,所述步骤(4-5)中,若当前活动节点为Sequnce、Flow、While或Switch,则按照相应的控制规则执行其活动子节点;若当前活动节点为Receive、Assign、Invoke或Emit,则执行其功能函数;若当前活动节点为Reply,则根据活动流程Activity的名称属性,在步骤(4-4)创建的服务调用实例列表中提取输出消息,最后将输出消息封装成完整的SOAP消息返回给客户端,完成响应过程。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:引入事件-条件-动作(Event-Condition-Action,ECA)规则,能实现以事件驱动服务的动态组合:当外部业务逻辑发生变化时,只需要动态修改ECA规则即可实现服务功能的更新;ECA规则所绑定的活动流程在执行过程中会根据活动运行情况触发新事件,进行嵌套调用或异常通知,提高了服务的主动性。
附图说明
图1是本发明实施例的基于ECA规则的服务组合方法流程图;
图2是解析服务描述文档WSDL所对应的数据结构示意图;
图3是本发明实施例的方法中步骤(3)的细化流程图;
图4是本发明实施例的方法中步骤(4)的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明实施例的基于ECA规则的服务组合方法包括如下步骤:
(1)加载外部服务描述文档WSDL,以XML格式存储外部服务对应的基本服务信息,注册外部服务,其中,基本服务信息包括服务名、服务地址、操作名、输入消息和输出消息。
具体地,根据文件路径名加载外部服务描述文档WSDL,将WSDL解析为DOM节点树形式后,遍历节点树,提取出服务名、服务地址、操作名、输入消息和输出消息等基本服务信息,将其按照一定的数据结构存储(例如,以XML格式存储),并注册到服务容器中。其中,单个注册服务的基本形式可以表述为:
ServiceItem={ServiceName,Address,Operation,Input,Output}
其中,ServiceItem为单个服务注册项,ServiceName为对应的服务名,Address为对应的服务地址,Operation对应的操作名,Input为对应的输入消息,Output为对应的输出消息。
外部服务描述文档WSDL既可以是内部磁盘文件,也可以是外部网络文件。若是内部磁盘文件,则直接根据文件路径名加载并解析WSDL;若是外部网络文件,则首先根据URL地址使用HTTP协议的GET请求下载WSDL,再解析文档。根据WSDL标准的语法结构,将其包含的所有服务描述以服务对象的方式存储,其解析后的数据结构如图2所示,其解析后的存储结构的基本形式可以表述为:
Definitions={Namespace,Location,Types,Message,portType,Binding,Service}
其中,Definitions为WSDL解析后的存储结构;Namespace为WSDL的默认命名空间;Types表示数据类型,定义了消息的数据结构形式;Message表示消息,定义了输入输出消息的参数;portType表示端口类型,封装了服务所包含的操作及操作的输入输出消息;Binding表示绑定,对服务绑定的端口协议及消息格式进行了说明;Service表示服务,由一个或多个端口组成,每个端口通过端点地址与特定Binding关联起来。其中Namespace和Location为WSDL存储结构的基本属性,而其它成员则是一些复杂的结构体组成的顺序存储结构。系统初始化时根据配置的WSDL的路径列表加载并解析所有WSDL,并建立由服务名映射到服务对象的服务注册列表。
如图2所示,这些服务描述结构存在一种层次结构的引用关系,包括垂直引用和水平引用两种关系。垂直引用表示父结构体与其成员变量之间的引用关系,单个父结构体的存储形式可以统一表述为基本属性加上结构体成员的顺序存储结构组成;水平引用表示服务描述结构基本成员之间的引用关系,它们之间通过相应元素的属性值匹配来相互关联。Service通过其端口中的绑定属性与Binding的名称属性关联,Binding通过其类型属性与portType的名称属性关联,portType则通过对应操作的输入输出消息名称与Message关联,Message的参数形式通过元素属性与Types中特定元素名称匹配。当调用外部服务时,需要构建服务的请求或响应消息,当给定服务名和操作名等输入参数后,系统首先根据服务名遍历注册服务列表,匹配相应服务,然后在该服务下根据操作名向上层引用得到服务访问地址,向下层引用得到服务对应操作的输入输出消息格式,最终构建完整的请求或响应消息。
(2)加载XML配置文件,以XML格式存储ECA规则,建立事件名到相应的ECA规则的映射表。
具体地,ECA规则包括事件、条件和活动三部分,配置文件按照XML格式存储ECA规则,使用XML解析器将其解析为DOM树形结构形式,形成ECA规则树,遍历ECA规则树建立事件名到相应的ECA规则的映射表,每一个事件对应一条ECA规则,便于规则的检索。映射表的基本形式可表示为:
Map={Event,{Event,Condition,Activity}}
其中,Event为事件名,是各类事件的唯一标识;Condition为事件触发条件,是一个逻辑表达式;Activity为活动流程,包括基本活动BaseActivity和结构化活动StructActivity,其组成分别表示如下:
BaseActivity={Receive,Assign,Invoke,Reply,Emit},
StructActivity={Sequence,Flow,While,Switch}
Receive表示请求输入活动,对应流程的入口点,定义了整个流程输入消息的封装格式;Assign表示参数赋值活动,用于在服务调用过程中输入输出消息参数值的传递;Invoke表示服务调用活动,用于抽象活动与实体服务的绑定,以完成实体服务的调用;Reply表示响应输出活动,对应流程的出口点,定义了整个流程输出消息的封装格式;Emit表示事件投递活动,将活动过程中产生的新事件投递到事件通道,进行嵌套调用或异常通知。
Sequence表示顺序活动,只有前一个活动完成之后,后一个活动才会开始执行;Flow表示并行活动,活动之间并行执行,只有当所有并行活动执行完后才会执行下一个活动;While表示循环活动,当活动满足循环条件时开始执行内部活动,执行完成后继续判断循环条件:若满足条件,继续下一次循环;不满足,跳出循环,执行循环后续活动;Switch表示条件分支活动,进入活动之前,首先获取该活动中条件表达式的值,然后将条件值与各个条件分支的预设值比较,跳转到匹配的条件分支,执行该分支活动。
(3)在客户端请求到达后,根据ECA规则,解析请求参数并构建事件对象,将事件对象投递到事件通道,形成先入先出的消息队列。事件对象包括事件对象名称及其属性信息,其一般形式可以表述为:
EventObj={Name,Desc,Type,Time,Object,Data}
其中,EventObj为事件对象;Name为事件对象名称;Desc为事件对象描述信息;Type为事件对象类型,包括请求类型、状态变迁类型、异常类型等基本类型;Time为事件对象产生时系统的绝对时间;Object为触发该事件的对象或角色;Data为序列化的XML格式参数信息。
如图3所示,该步骤进一步包括如下子步骤:
(3-1)在客户端请求到达后,解析请求参数,并将其序列化为指定的XML格式,得到序列化的XML字符串;该XML格式与ECA规则中的活动流程Activity中请求输入活动Receive的文本值所定义的格式保持一致,以参与后续数据交互过程。
(3-2)构建标准化的事件对象,标准化的事件对象包括事件对象的名称、数据属性和时戳属性;其中,事件对象的名称与ECA规则中的事件名Event一致,事件对象的数据属性为步骤(3-1)得到的序列化的XML字符串,事件对象的时戳属性为创建事件对象的系统绝对时间。
(3-3)将标准化的事件对象投递到事件通道,形成先入先出的消息队列;其中,在队列为空时,等待事件触发,并将到达的事件对象投递到队尾,队列长度加一;在队列为满时,若新事件到达则循环等待直到队列非满;在队列不为空也不为满时,由事件引擎主动从队列头获取事件对象,队列长度减一。
(4)事件引擎从事件通道中获取事件对象,根据事件名到相应的ECA规则的映射表和注册的外部服务,解析并执行事件对象。
如图4所示,该步骤进一步包括如下子步骤:
(4-1)事件引擎采用多线程的方式从事件通道中获取事件对象,以提高事件处理效率。事件通道作为一个全局共享的消息队列,在事件出队列或入队列之前都会加上互斥锁,保证读写操作完成以防止队列消息读写冲突。
(4-2)从事件对象中获取事件对象名称,检索事件名到相应的ECA规则的映射表,获取与事件对象名称匹配对应的ECA规则。所有名称相同的事件引用同一个ECA规则实例,该实例在系统初始化创建ECA规则库时生成。在事件执行过程中只是对ECA规则实例树形结构进行读操作,整个执行过程中所有ECA规则实例结构保持不变,只有当业务流程发生改变时才需要动态修改ECA规则。
(4-3)获取ECA规则中的事件触发条件Condition,判断是否满足事件触发条件Condition,是则顺序执行步骤(4-4);否则流程结束。
具体地,Condition通常是形如A>B或A==B的逻辑表达式,由请求参数或事件属性等基本数据和连接算子组合而成,判断该表达式为逻辑真还是逻辑假,若为逻辑真,则顺序执行步骤(4-4);若为逻辑假,则流程结束。
(4-4)遍历活动流程Activity,创建整个活动流程所需的服务调用实例列表。这是因为在执行Invoke活动进行远程服务调用之前,需要对服务请求进行请求消息的参数赋值,而Assign活动需要引用在其执行顺序之后的Invoke活动的相关属性信息,所以进入活动流程之前需要声明并实例化所有的服务调用活动。
具体地,首先遍历活动流程Activity,匹配服务调用活动Invoke,提取活动名称、服务名和操作名等属性信息,如图2所示,根据服务名和操作名获取该服务对应操作的输入消息和输出消息,Invoke活动的输入消息和输出消息格式由遍历相应服务的服务描述文档提取;然后建立服务实例的活动名称到其输入消息和输出消息格式的映射表。另外,整个活动流程Activity可以看成一个新服务,其输入消息格式为Receive活动的值,其输出消息格式为Reply活动的值,在执行过程中其它服务活动会与Receive及Reply活动有参数交互过程,因而服务调用实例列表也包括了Activity所对应的抽象服务。典型的如表1所示。整个抽象活动流程通过控制基本服务的操作顺序以及相应的数据交互过程来实现服务的动态组合。
表1
(4-5)将整个活动流程作为一个可执行的树形结构,其中,叶子节点对应基本活动,非叶子节点对应结构化活动,从活动流程Activity的根节点开始,按照从外而内的遍历方式解析并执行活动节点,直至遇到出口节点响应客户端请求并结束整个活动流程。
其中,若当前活动节点为Sequnce、Flow、While或Switch等结构化活动,则按照相应的控制规则执行其活动子节点;若当前活动节点为Receive、Assign、Invoke或Emit等基本活动,则执行其功能函数;若当前活动节点为Reply,则根据Activity的名称属性,在步骤(4-4)创建的服务调用实例列表中提取输出消息,该输出消息以XML字符串的形式存储,且通过之前一系列的Assign活动完成了输出消息的参数赋值,最后将输出消息封装成完整的SOAP消息返回给客户端,完成响应过程。
在执行抽象活动流程的过程中,需要完成抽象活动到实体服务的转换,以完成真正的服务调用过程。一个基本的服务调用过程一般涉及Receive、Assign、Invoke、Reply及Emit等基本活动,这些基本活动的主要工作过程如下。
(A)当执行Receive活动时,将事件对象的数据属性值赋值给Process的输入消息,即更新Receive活动的值,为后续赋值操作提供了数据支持。
(B)Assign活动完成服务的数据交互过程,包括from和to属性,分别表示数据流向的起点和终点。参数赋值操作需要具体到XML格式中的叶子节点,本发明实施例使用路径表达式作为from和to属性的值实现输入输出消息的参数访问和赋值:当叶子节点不为数组中的某个元素时,路径表达式形如”name.input/output.label1.label2.label3”;当叶子节点为数组中的某个元素时,路径表达式形如”name.input/output.label1.label2.label3[n]”实现数组元素的任意访问。在该表达式中,第一个参数name表示Invoke或Activity元素的名称属性,第二个参数为input时表示访问输入消息,为output时表示访问输出消息,第三个及后面的参数表示输入输出消息中某个参数的访问路径,通过路径表达式遍历输入输出消息并匹配元素名称可以实现元素节点的访问。如表1所示,若要实现将流程入口点Recieve活动的参数“a”赋值给加法服务输入消息中的参数“a”,则Assign活动的from属性值为“myProcess.input.a”,to属性值为“add.input.a”。
(C)Invoke活动根据名称属性在服务实例列表中获取其对应的输入及输出消息,将输入消息封装为完整的SOAP消息发送至服务端等待响应,将服务端返回的SOAP消息解析并提取出方法及参数部分,并赋值给Invoke活动对应的输出消息。赋值后的输出消息可以参与后续的参数交互过程。
(D)Reply活动所定义的流程输出消息的参数赋值,最终将输出消息封装为完整的SOAP消息响应客户端请求,结束整个活动流程。
(E)当执行Emit活动时,将执行其名称属性所绑定的事件,以进行事件的嵌套调用或异常处理。Emit活动包括同步调用和异步调用两种方式,由其”async”属性值决定:若值为逻辑假,则执行同步调用,等待嵌套事件执行完成后再执行后续活动;若值为逻辑真,则执行异步调用,直接将新事件投递到事件通道后继续执行后续活动。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于ECA规则的服务组合方法,其特征在于,包括如下步骤:
(1)以XML格式存储外部服务对应的基本服务信息,注册外部服务;其中,基本服务信息包括服务名、服务地址、操作名、输入消息和输出消息;
(2)以XML格式存储ECA规则,建立事件名到相应的ECA规则的映射表;
其中,ECA规则包括事件名Event、事件触发条件Condition和活动流程Activity;活动流程Activity包括基本活动BaseActivity和结构化活动StructActivity,其组成分别表示如下:
BaseActivity={Receive,Assign,Invoke,Reply,Emit},
StructActivity={Sequence,Flow,While,Switch};
其中,Receive表示请求输入活动,Assign表示参数赋值活动,Invoke表示服务调用活动,Reply表示响应输出活动,Emit表示事件投递活动;Sequence表示顺序活动,Flow表示并行活动,While表示循环活动,Switch表示条件分支活动;
(3)在客户端请求到达后,根据ECA规则,解析请求参数并构建事件对象,将事件对象投递到事件通道,形成先入先出的消息队列;
(4)事件引擎从事件通道中获取事件对象,根据事件名到相应的ECA规则的映射表和注册的外部服务,解析并执行事件对象。
2.如权利要求1所述的基于ECA规则的服务组合方法,其特征在于,所述步骤(3)进一步包括如下子步骤:
(3-1)在客户端请求到达后,解析请求参数,并将其序列化为指定的XML格式,得到序列化的XML字符串;其中,该XML格式与ECA规则中的活动流程Activity中请求输入活动Receive的文本值所定义的格式保持一致;
(3-2)构建标准化的事件对象,标准化的事件对象包括事件对象的名称、数据属性和时戳属性;其中,事件对象的名称与ECA规则中的事件名Event一致,事件对象的数据属性为步骤(3-1)得到的序列化的XML字符串,事件对象的时戳属性为创建事件对象的系统绝对时间;
(3-3)将标准化的事件对象投递到事件通道,形成先入先出的消息队列;其中,在队列为空时,等待事件触发,并将到达的事件对象投递到队尾,队列长度加一;在队列为满时,若新事件到达则循环等待直到队列非满;在队列不为空也不为满时,由事件引擎主动从队列头获取事件对象,队列长度减一。
3.如权利要求1或2所述的基于ECA规则的服务组合方法,其特征在于,所述步骤(4)进一步包括如下子步骤:
(4-1)事件引擎从事件通道中获取事件对象;
(4-2)从事件对象中获取事件对象名称,检索事件名到相应的ECA规则的映射表,获取与事件对象名称匹配对应的ECA规则;
(4-3)获取ECA规则中的事件触发条件Condition,判断是否满足事件触发条件Condition,是则顺序执行步骤(4-4);否则流程结束;
(4-4)遍历活动流程Activity,创建整个活动流程所需的服务调用实例列表;
(4-5)将整个活动流程作为一个可执行的树形结构,其中,叶子节点对应基本活动,非叶子节点对应结构化活动,从活动流程Activity的根节点开始,解析并执行活动节点,直至遇到出口节点响应客户端请求并结束整个活动流程。
4.如权利要求3所述的基于ECA规则的服务组合方法,其特征在于,所述步骤(4-4)进一步包括如下子步骤:
(4-4-1)遍历活动流程Activity,匹配服务调用活动Invoke,提取活动名称、服务名和操作名等属性信息,根据服务名和操作名获取该服务对应操作的输入消息和输出消息;
(4-4-2)将整个活动流程Activity作为一个新服务,其输入消息格式为Receive活动的值,其输出消息格式为Reply活动的值;
(4-4-3)建立服务实例的活动名称到其输入消息和输出消息格式的映射表。
5.如权利要求3所述的基于ECA规则的服务组合方法,其特征在于,所述步骤(4-5)中,若当前活动节点为Sequnce、Flow、While或Switch,则按照相应的控制规则执行其活动子节点;若当前活动节点为Receive、Assign、Invoke或Emit,则执行其功能函数;若当前活动节点为Reply,则根据活动流程Activity的名称属性,在步骤(4-4)创建的服务调用实例列表中提取输出消息,最后将输出消息封装成完整的SOAP消息返回给客户端,完成响应过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410835896.5A CN104618433B (zh) | 2014-12-26 | 2014-12-26 | 一种基于eca规则的服务组合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410835896.5A CN104618433B (zh) | 2014-12-26 | 2014-12-26 | 一种基于eca规则的服务组合方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104618433A true CN104618433A (zh) | 2015-05-13 |
CN104618433B CN104618433B (zh) | 2018-01-30 |
Family
ID=53152708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410835896.5A Expired - Fee Related CN104618433B (zh) | 2014-12-26 | 2014-12-26 | 一种基于eca规则的服务组合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104618433B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105242547A (zh) * | 2015-08-28 | 2016-01-13 | 青岛海尔智能家电科技有限公司 | 一种多个AllJoyn设备联动的方法和装置 |
CN107122292A (zh) * | 2016-10-21 | 2017-09-01 | 北京小度信息科技有限公司 | 一种模拟服务的方法及系统 |
CN107729388A (zh) * | 2017-09-19 | 2018-02-23 | 杭州安恒信息技术有限公司 | 一种基于XML协议的app服务器实现方法 |
CN108647019A (zh) * | 2018-05-14 | 2018-10-12 | 浪潮通用软件有限公司 | 一种服务组合的控制层编码方法 |
CN109710417A (zh) * | 2018-12-29 | 2019-05-03 | 苏州思必驰信息科技有限公司 | 智能音箱系统及其实现方法 |
CN111258723A (zh) * | 2019-12-05 | 2020-06-09 | 东软集团股份有限公司 | 分布式系统的事务处理方法、装置、系统、介质及设备 |
CN111258773A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用流程信息处理方法、装置及电子设备 |
CN112364057A (zh) * | 2020-11-10 | 2021-02-12 | 江阴逐日信息科技有限公司 | 一种业务过程执行状态的智能通知系统 |
CN112579574A (zh) * | 2020-12-25 | 2021-03-30 | 上海交通大学 | 一种基于事件日志的可配置流程挖掘方法及系统 |
CN113377371A (zh) * | 2021-06-02 | 2021-09-10 | 五八到家有限公司 | 多场景配置方法、系统、设备及介质 |
CN113743879A (zh) * | 2020-05-28 | 2021-12-03 | 华为技术有限公司 | 一种自动化规则处理方法、系统以及相关设备 |
CN113887328A (zh) * | 2021-09-10 | 2022-01-04 | 天津理工大学 | 一种eca-cnn融合双通道rnn并行提取光子晶体空间透射谱时空特征的方法 |
CN113923159A (zh) * | 2021-08-24 | 2022-01-11 | 锦翰科技(深圳)有限公司 | 一种数据消息集中处理的方法 |
CN114067792A (zh) * | 2020-08-07 | 2022-02-18 | 北京猎户星空科技有限公司 | 一种智能设备的控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2028610A1 (en) * | 2007-08-23 | 2009-02-25 | Siemens Aktiengesellschaft | A method for executing a process based on an XML process language, particularly a process based on the BPEL language |
CN102426519A (zh) * | 2011-08-26 | 2012-04-25 | 北京邮电大学 | 基于关联数据的bpel模板和服务的复用方法及其系统 |
CN104156313A (zh) * | 2014-08-12 | 2014-11-19 | 南京大学 | 一种Web服务测试用例自动生成方法 |
-
2014
- 2014-12-26 CN CN201410835896.5A patent/CN104618433B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2028610A1 (en) * | 2007-08-23 | 2009-02-25 | Siemens Aktiengesellschaft | A method for executing a process based on an XML process language, particularly a process based on the BPEL language |
CN102426519A (zh) * | 2011-08-26 | 2012-04-25 | 北京邮电大学 | 基于关联数据的bpel模板和服务的复用方法及其系统 |
CN104156313A (zh) * | 2014-08-12 | 2014-11-19 | 南京大学 | 一种Web服务测试用例自动生成方法 |
Non-Patent Citations (2)
Title |
---|
A.GOH等: ""ECA rule-based suuport for workflows"", 《ARTIFICIAL INTELLIGENCE IN ENGINEERING》 * |
潘丽丽: ""基于状态ECA规则和Web服务的业务过程集成方法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105242547A (zh) * | 2015-08-28 | 2016-01-13 | 青岛海尔智能家电科技有限公司 | 一种多个AllJoyn设备联动的方法和装置 |
CN107122292A (zh) * | 2016-10-21 | 2017-09-01 | 北京小度信息科技有限公司 | 一种模拟服务的方法及系统 |
CN107729388A (zh) * | 2017-09-19 | 2018-02-23 | 杭州安恒信息技术有限公司 | 一种基于XML协议的app服务器实现方法 |
CN107729388B (zh) * | 2017-09-19 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种基于XML协议的app服务器实现方法 |
CN108647019A (zh) * | 2018-05-14 | 2018-10-12 | 浪潮通用软件有限公司 | 一种服务组合的控制层编码方法 |
CN108647019B (zh) * | 2018-05-14 | 2021-08-31 | 浪潮通用软件有限公司 | 一种服务组合的控制层编码方法 |
CN111258773A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用流程信息处理方法、装置及电子设备 |
CN111258773B (zh) * | 2018-12-01 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 服务调用流程信息处理方法、装置及电子设备 |
CN109710417A (zh) * | 2018-12-29 | 2019-05-03 | 苏州思必驰信息科技有限公司 | 智能音箱系统及其实现方法 |
CN111258723A (zh) * | 2019-12-05 | 2020-06-09 | 东软集团股份有限公司 | 分布式系统的事务处理方法、装置、系统、介质及设备 |
CN111258723B (zh) * | 2019-12-05 | 2024-03-19 | 东软集团股份有限公司 | 分布式系统的事务处理方法、装置、系统、介质及设备 |
CN113743879A (zh) * | 2020-05-28 | 2021-12-03 | 华为技术有限公司 | 一种自动化规则处理方法、系统以及相关设备 |
CN114067792A (zh) * | 2020-08-07 | 2022-02-18 | 北京猎户星空科技有限公司 | 一种智能设备的控制方法及装置 |
CN112364057A (zh) * | 2020-11-10 | 2021-02-12 | 江阴逐日信息科技有限公司 | 一种业务过程执行状态的智能通知系统 |
CN112579574B (zh) * | 2020-12-25 | 2022-08-09 | 上海交通大学 | 一种基于事件日志的可配置流程挖掘方法及系统 |
CN112579574A (zh) * | 2020-12-25 | 2021-03-30 | 上海交通大学 | 一种基于事件日志的可配置流程挖掘方法及系统 |
CN113377371A (zh) * | 2021-06-02 | 2021-09-10 | 五八到家有限公司 | 多场景配置方法、系统、设备及介质 |
CN113923159A (zh) * | 2021-08-24 | 2022-01-11 | 锦翰科技(深圳)有限公司 | 一种数据消息集中处理的方法 |
CN113887328A (zh) * | 2021-09-10 | 2022-01-04 | 天津理工大学 | 一种eca-cnn融合双通道rnn并行提取光子晶体空间透射谱时空特征的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104618433B (zh) | 2018-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104618433A (zh) | 一种基于eca规则的服务组合方法 | |
US8572236B2 (en) | Distributing services in graph-based computations | |
Cheng et al. | Lightweight service mashup middleware with REST style architecture for IoT applications | |
Yu et al. | A microservice based reference architecture model in the context of enterprise architecture | |
CN102650953B (zh) | 并发优化的bpmn组合服务执行引擎及方法 | |
CN101873334B (zh) | 一种状态驱动的可执行业务流程执行方法 | |
KR100880536B1 (ko) | 이기종 컴퓨팅 및 서비스 통합을 위한 오픈 프레임워크시스템 | |
CN110851248A (zh) | 异步任务数据处理方法、装置及计算机可读存储介质 | |
CN109104368A (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
US7483901B1 (en) | System and method for data transfer between two or more connected software services | |
CN103268230A (zh) | 用于构建可拓展服务的云计算信息管理平台的方法 | |
CN106022727B (zh) | 企业供应链管理方法 | |
US9836282B2 (en) | Separation of concerns between information technology services models | |
Chassaing et al. | A GRASP× ELS approach for the job-shop with a web service paradigm packaging | |
Cicconetti et al. | FaaS execution models for edge applications | |
CN105427149A (zh) | 一种基于soa扩展框架的跨境电子商务bpo服务方法及装置 | |
CN103229485B (zh) | 业务能力共享的实现方法和平台 | |
Gütlein et al. | Modeling and Simulation as a Service using Apache Kafka. | |
Ying et al. | Personalized modeling for SaaS based on extended WSCL | |
CN106022615B (zh) | 基于云计算的企业资源管理方法 | |
US10417051B2 (en) | Synchronizing shared resources in an order processing environment using a synchronization component | |
Hentrich et al. | A pattern language for process execution and integration design in service-oriented architectures | |
Aldred et al. | Communication abstractions for distributed business processes | |
Team | Microservice Application Design | |
US20230281214A1 (en) | Actor-based information system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180130 Termination date: 20201226 |
|
CF01 | Termination of patent right due to non-payment of annual fee |