CN101751626B - 组合服务演化中运行实例的在线迁移方法 - Google Patents
组合服务演化中运行实例的在线迁移方法 Download PDFInfo
- Publication number
- CN101751626B CN101751626B CN201010033670A CN201010033670A CN101751626B CN 101751626 B CN101751626 B CN 101751626B CN 201010033670 A CN201010033670 A CN 201010033670A CN 201010033670 A CN201010033670 A CN 201010033670A CN 101751626 B CN101751626 B CN 101751626B
- Authority
- CN
- China
- Prior art keywords
- transition
- sequence
- transition sequence
- transferring
- running example
- 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种组合服务演化中运行实例的在线迁移方法。该方法包括:根据演化后可达图获取初始变迁序列集合;从中将包括新增的选择增加操作的变迁序列删除;在剩余各变迁序列中将新增变迁删除;从已执行变迁序列中将删除变迁删除,得到过渡已执行变迁序列,当匹配到前k个变迁与过渡已执行变迁序列一致的变迁序列时,确定能够在线迁移;将新增变迁增加到匹配一致的变迁序列中;在有效变迁序列子集合中确定最后一个变迁的位置处于最前面的待执行变迁序列;将待执行变迁序列中权重为最后一个变迁的边的直接后继顶点的状态确定为迁移后状态;从迁移后状态开始按照待执行变迁序列继续执行运行实例。本发明可以提高运行实例的在线迁移的正确性。
Description
技术领域
本发明实施例涉及组合服务中业务流程管理技术,尤其涉及一种组合服务演化中运行实例的在线迁移方法。
背景技术
近年来,随着互联网技术的不断发展,网络上聚集了越来越多的资源,不仅包含丰富的计算、存储等物理资源,还有大量的软件、服务资源,且资源的数目和类型日益增长,从而为基于服务的网络软件开发提供了重要的基础。同时,简单对象访问协议(Simple Object Access Protocol,简称SOAP)、Web服务描述语言(Web Services Description Language,简称WSDL)、统一描述、发现和集成(Universal Description Discoveryand Integration,简称UDDI)协议和业务流程执行语言(Business ProcessExecution Language,简称BPEL)等标准的制定进一步促进了Web服务技术及软件体系结构(Service Oriented Architecture,简称SOA)的快速发展,使得异构信息、异构平台的共享与集成成为可能,基于服务的分布式应用系统开发已经成为计算机软件领域一个重要的方向。
所谓服务,即能够执行一项业务逻辑的软件实体单元,可以由网络侧提供,一项业务逻辑可以是某一项功能,一项任务等。Web服务技术可以用于解决不同的平台/系统之间应用的整合问题,为跨组织边界的业务流程的自动化提供技术基础,但由于服务的提供者分工越来越细,并且为了保证重用性和可维护性等,一般不将复杂的业务逻辑封装到单个的Web服务中,而为了满足用户多样性的需求,实现完整的业务功能,需要把分布 的独立Web服务组合起来,形成具有增值价值的服务,服务组合技术成为构建网络化软件的一种重要方法,基于这种方法所开发的软件在技术形态上体现为组合服务。
通常,基于服务组合的网络软件开发要按照功能和非功能需求集成不同服务供应商提供的软件服务实体,这些服务实体位于不同的管理域,具有异构性、自治性和动态性等特点,如服务运行在不同系统平台之上、具有不同的自治策略,服务的状态和性质动态变化等。同时,网络应用的多样性和复杂性增加,许多应用不仅对软件核心功能需求增多,而且对非功能的需求,如可靠性、可信性和可用性等,也越来越高。因此,对组合服务系统的构造、部署、管理、演化等机制,都提出了诸多挑战。
基于业务流程的Web服务组合是指通过借鉴传统的工作流和业务流程管理技术,将不同的组件服务编排在一个具有固定业务逻辑的流程中,执行时再按照此业务流程中的逻辑关系和时序关系来调用远程的组件服务。一般使用工作流语言描述Web服务组合形成的业务流程,从而指定一组Web服务操作的执行顺序、确定服务共享的数据、业务流程涉的伙伴和各伙伴在业务流程中的角色,以及多个服务和组织是如何参与等。其中,业务流程是指为实现一个特定业务目标通过Web服务组合能完成的各项活动的逻辑结构关系。活动为业务流程中实现特定业务目标的步骤,即Web服务。因此,根据Web服务工作流语言定义出Web服务组合的工作流模型,工作流模型可以被工作流执行引擎执行。
服务组合在实际运行过程中经常面临政策法规、业务需求和交易规则变化,传统的刚性业务流程管理技术主要关注严格描述业务流程逻辑并在此基础上指导流程正确执行,难以适应运行期动态演化的需求,特别是在互联网环境带来更强的动态性和不确定性,对组合服务的演化提出了更高的要求。组合服务的动态演化是指其能够根据应用需求和网络环境变化而进行的动态调整,主要表现在其实体元素数目的可变性、结构关系的可调 节性和结构形态的动态可配置性上。
组合服务的演化已经是学术界的研究热点,其相关工作可以追溯到二十世纪九十年代末期业务流程管理领域针对应用需求和法律规则的变化而兴起的对柔性(Flexible)和适应性(Adaptive)业务流程的研究。一些关于组合服务或业务流程演化的综述从演化时间、演化影响、演化操作分类以及演化带来的问题等方面进行分析,其中演化正确性和运行期实例处理是演化过程中不得不面对的问题。在现有的理论研究中认为,演化的正确性准则中,完整性是应该给用户提供最小的变更操作集合,比如插入或删除活动,调整控制和数据依赖等,正确性是需要一个适当的正确性标准来检查一个工作流实例是否按照新的工作流模型进行一致性的变更,也就是说一个工作流模型的变更是否被正确的传播到工作流实例中,并且没有导致死锁、不正确的活动调用等,正确性准则还涉及变更可实现性,即自动化的把业务流程的运行实例迁移到新的工作流模型下。
当组合服务进行演化时,对于大多数业务流程,可以通过事务回滚和补偿等形式来处理运行实例,例如停止当前的运行实例,用演化后的业务流程重新执行运行实例。但是,对于一些特殊的组合服务,例如金融、电信和电子商务等关键系统,往往需要7×24小时或更长时间的不间断运行,若采用传统的事务回滚或补偿等措施停止运行实例则可能带来大量的额外费用和时间开销。因此,在实施组合服务演化的过程中,如何处理当前组合服务的运行实例是本领域一个急需解决、且富有挑战性的问题。现有技术中提供的一些组合服务演化时运行实例状态迁移的技术,都存在一定缺陷:例如动态变更错误(Dynamic Change Bug),即演化后会某些服务执行了多次或被不合理的跳过,导致演化前运行实例中的状态在演化后运行实例中找不到合适的对应状态;不能将能够迁移的运行实例全部进行迁移;算法复杂性较高等。
发明内容
本发明实施例提供一种组合服务演化中运行实例的在线迁移方法,以提高运行实例在线迁移的正确性。
本发明实施例提供了一种组合服务演化中运行实例的在线迁移方法,包括:
步骤100、将演化后工作流网转换为演化后可达图,根据演化后可达图基于广度优先方法获取演化后工作流网的初始变迁序列集合;
步骤200、从所述初始变迁序列集合中将包括演化后工作流网中新增的选择增加操作的变迁序列删除;
步骤300、在剩余的各变迁序列中将演化后工作流网中的新增变迁删除,以形成基础变迁序列集合;
步骤400、从演化前运行实例的已执行变迁序列中,将演化后工作流网中的删除变迁删除,得到过渡已执行变迁序列,并记录所述过渡已执行变迁序列中的变迁个数k,其中,k为自然数;
步骤500、将过渡已执行变迁序列与所述基础变迁序列集合中的变迁序列进行匹配,当匹配到前k个变迁与过渡已执行变迁序列一致的变迁序列时,确定演化前运行实例的当前状态能够在线迁移;
步骤600、将演化后工作流网中的新增变迁增加到匹配一致的变迁序列中,以形成有效变迁序列子集合;
步骤700、采用过渡已执行变迁序列的最后一个变迁进行比较识别,在所述有效变迁序列子集合中确定所述最后一个变迁的位置处于最前面的一个或多个变迁序列,作为待执行变迁序列;
步骤800、根据所述演化后可达图,将所述待执行变迁序列中权重为所述最后一个变迁的边的直接后继顶点的状态确定为迁移后状态;
步骤900、从所述迁移后状态开始,按照待执行变迁序列继续执行所述演化前运行实例,以迁移为演化后运行实例。
采用上述技术方案,针对组合服务演化中的运行实例,能够有效的判断运行实例当前状态是否可以有效迁移,从而避免动态变更错误,并且能够准确的计算出正确的迁移位置,提高了运行实例在线迁移的正确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个供应链组合服务的业务流程图;
图2为图1中所示业务流程的可达图;
图3为本发明实施例一提供的组合服务演化中运行实例的在线迁移方法的流程图;
图4为本发明实施例一中演化后工作流网的业务流程图一;
图5为本发明实施例一中演化后工作流网的业务流程图二;
图6为本发明实施例一中演化后工作流网的业务流程图三;
图7为本发明实施例一中演化后工作流网的业务流程图四。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种组合服务演化中运行实例的在线迁移方法,将演化前运行实例在线迁移为演化后新组合服务的运行实例。本质上,组合服 务运行实例在线迁移可以归结为根据演化前运行实例的状态和演化操作来获取演化后在新组合服务业务流程结构下的运行实例状态。
通常,可以采用工作流语言描述组合服务的业务流程,一个组合服务的业务流程可以对应一个工作流网(WFN)模型。每个工作流网可表示为WFN=(P,T,F,i,o,M0)。其中,P代表库所(Place)p的集合,例如{p1,p2,......,pn};T代表变迁(Transition)t的集合,例如{t1,t2,......,tn};F代表库所与变迁之间关系的集合,每个变迁都需要以特定的一个或几个库所为执行条件,基于这些库所完成变迁后又可以产生新的库所,而此后原库所可认为失效。库所与变迁之间关系的形式可以表示为<p1,t1>、<t1,p2>;i代表初始的库所;o代表终结的库所;M代表运行实例的状态,M的下标0代表初始状态。
随着运行实例的执行,可以用变迁序列来表示当前运行实例所执行的情况,也可以用状态表示当前执行的情况。例如,变迁序列t1t2、t1t2t3t4可以表示执行到哪个变迁。每个业务流程可能有多种变迁序列,但是每个运行实例当前执行的变迁序列应该是确定的。状态M表示当前有效库所的状态,其形式为“0、1”数值串,每个业务流程中包括几个库所,状态中就包括几位数值。当前有效的库所的对应位置为“1”,失效的或还未通过执行变迁而生效的库所的对应位置为“0”。
如图1所示为一个供应链组合服务的业务流程图,该业务流程中包括如下变迁:用户注册(Register)t1;提交订单(Order)t2;银行转帐(Pay)t3;货物装配(Assemble)t4和运输服务(Supply)t5。p1~p7是变迁所需要或产生的库所,库所与变迁之间的关系以图1中的实线箭头表示。初始的库所是p1,终结的库所是p7,初始状态时p1有效,M0为“1000000”。当基于该业务流程执行一个运行实例时,随着运行实例的执行,其状态M在不断变化,从初始状态M0变化至终结状态Mend。
为实现本发明的目的,本发明实施例还采用了可达图(Graph)的概念,将工作流网模型转换为可达图的形式进行处理。工作流网WFN=(P,T,F,i,o,M0)的可达图可以定义为G=(V,E)。可达图中包括两种图元:顶点(v)和边(e)。顶点v的集合V是WFN中所有状态的集合,两个顶点v之间边e的权重记录两个顶点v状态M和M′之间的变迁,记作M[t>M′,即状态M在执行了变迁t之后变为状态M′。
图1所示的业务流程可以转换为图2所示的可达图。图中圆圈表示顶点v,箭头表示边e。每个顶点v记录当前的状态,边e的权重记录变迁t。图1的业务流程包括七个库所,图2的每个顶点v状态M中相应包含七位数值,具体的状态M1~M6如图2中所示。对于t3或t4,由于t3和t4没有固定的逻辑关系,可以并发执行,所以在t3或t4执行前,状态M3和M4中p3和p4都是有效的。
本发明的目的是实现运行实例的有效迁移,应满足运行实例的正确性要求。所谓运行实例的有效迁移(Valid Migration),在本发明中进行了如下定义:
假设演化前工作流网为WFN0=(P0,T0,F0,i0,o0,M0 0),演化后工作流网为WFNN=(PN,TN,FN,iN,oN,M0 N),上述两个工作流网均默认为合理工作流网。所谓合理的工作流网即满足如下三个条件的工作流网:1、从初始状态M0开始,总可能达到终结状态Mend;2、当工作流网处于Mend状态时,即终结状态的库所为有效时,所有其它库所应该是空的、无效的;3、从初始状态M0不存在死变迁。如果一个工作流网是不合理的,那么可能会导致死循环、死锁、或者某些变迁不可达等不良现象。M0是WFN0中的一个运行实例经过变迁序列seq0到达的可达状态,当且仅当下列条件成立时把WFN0从状态M0到WFNN下状态MN的迁移确定为有效迁移:
条件1、MN是WFNN的一个可达状态,即可实现的状态;
条件2、存在一个从WFNN中初始状态M0 N到MN的变迁序列seqN,使得
[seq0]\(T0\TN)=[seqN]\(TN\T0),其中[seq]表示变迁序列seq中所有变迁
的集合,TO\TN表示从演化前至演化后工作流网删除的变迁,TN\TO表示从演化前至演化后工作流网增加的变迁;
条件3、对于每一个WFNN中从MN到终结状态Mend N的变迁序列seqN,seqN不包含seqO中的任意变迁,即迁移后不会重复执行已经执行过的变迁。
上述定义中的第一个条件保证了演化后运行实例中的对应状态是可达和可终结的;第二个条件确保了演化前运行实例中任何必须的变迁在迁移后都已经被执行;最后一个条件指出演化后运行实例中已经被执行过的变迁在迁移后不会被重复执行。
本发明实施例即基于上述工作流网模型和可达图来实现。
实施例一
图3为本发明实施例一提供的组合服务演化中运行实例的在线迁移方法的流程图。该方法可包括如下步骤:
步骤100、将演化后工作流网转换为可达图,记为演化后可达图,并根据演化后可达图基于广度优先方法获取演化后工作流网的初始变迁序列集合,该初始变迁序列集合可记为日志L;
在本步骤中,可以按照上述介绍的关系将工作流网转换为可达图,即将演化后工作流网的各状态记录为演化后可达图的各顶点;将相邻状态之间的变迁记录为演化后可达图各顶点之间边的权重。
根据演化后可达图获取的初始变迁序列集合包括了所有可能执行的变迁序列。在本步骤执行前,已知的数据应该包括了演化前工作流网WFNO、演化后工作流网WFNN、当前运行实例已经执行完成的已执行变迁序列tscmp、以及该运行实例的当前状态MO。由演化后工作流网WFNN可以获知工作流网的变化,典型地是包括如下几类变化:增加一个选择增加操作的变迁,该变迁与原有的某个或某些变迁是选择执行的关系,任选其一执行即可;增加一个或多个变迁;删除一个或多个变迁;改变变迁执行的顺序等。
随后对初始变迁序列集合进行如下预处理:
步骤200、从初始变迁序列集合中将包括演化后工作流网中新增的选择增加操作的变迁序列删除;
本步骤删除涉及选择增加操作的整个变迁序列,这是由于选择增加操作不会影响状态迁移,而且该操作和结构调整一起使用将可能导致潜在的错误。
步骤300、在剩余的各变迁序列中将演化后工作流网中的新增变迁删除,经过上述步骤200和步骤300的预处理后,初始变迁序列集合变更为基础变迁序列集合;
本步骤即在变迁序列中仅将新增的特定变迁删除,而不是删除整个涉及新增变迁的变迁序列。
步骤400、从演化前运行实例的已执行变迁序列tscmp中,将演化后工作流网中的删除变迁删除,得到过渡已执行变迁序列tncmp,并记录过渡已执行变迁序列tncmp中的变迁个数k,其中,k为自然数。即,将演化后工作流网从演化前工作流网中删除的变迁从已执行变迁序列tscmp中删除。
上述步骤200和300是对初始变迁序列集合进行预处理,其步骤顺序不限,步骤400是对已执行变迁序列进行预处理,步骤400与步骤200和步骤300是独立的,其步骤顺序也不作限定。
步骤500、将过渡已执行变迁序列tncmp与经过预处理的基础变迁序列集合中的变迁序列进行匹配,当匹配到前k个变迁与过渡已执行变迁序列tncmp一致的变迁序列时,确定演化前运行实例的当前状态能够在线迁移,若不能匹配到前k个变迁与过渡已执行变迁序列tncmp一致的变迁序列,则优选的是按照演化前工作流网控制演化前运行实例继续执行一个变迁,而后返回执行步骤100;
上述步骤500中,前k个变迁与过渡已执行变迁序列tncmp一致的含义是只需变迁的内容一致,而无须变迁的顺序一致。能够匹配一致即说明演化过程没有影响业务流程运行实例状态迁移,所有能够兼容过渡已执行变迁序列tncmp的变迁序列组成一个子集合SubSet′。
上述步骤500中,不能匹配到一致的变迁序列则意味着演化过程使用了流程结构调整操作,当前的状态M可能无法被有效的迁移。此时可以首先判断当前运行实例的状态M是否为终结状态Mend,若是,则演化前运行实例无须迁移,可以正常结束,若否,则执行上述按照演化前工作流网控制演化前运行实例继续执行一个变迁的步骤。
步骤600、将演化后工作流网中的新增变迁增加到匹配一致的变迁序列中,以形成有效变迁序列子集合SubSet;
步骤700、采用过渡已执行变迁序列tncmp的最后一个变迁进行比较识别,在有效变迁序列子集合中确定过渡已执行变迁序列tncmp最后一个变迁的位置处于最前面的一个或多个变迁序列,作为待执行变迁序列;
本步骤700相当于在有效变迁序列子集合SubSet中查询最后一个变迁在最左面的一个变迁序列tsN。
步骤800、根据演化后可达图,将待执行变迁序列中权重为过渡已执行变迁序列tncmp最后一个变迁的边的直接后继顶点的状态确定为迁移后状态;
步骤900、从迁移后状态开始,按照待执行变迁序列继续执行演化前运行实例,以迁移为演化后运行实例。
本实施例步骤500中的匹配操作具体可以采用循环体的方式来实现,即包括如下步骤:
步骤510、将过渡已执行变迁序列tncmp与基础变迁序列集合中的各变迁序列的前k个变迁进行顺序匹配,若一致,则确定演化前运行实例的当前状态能够在线迁移,并执行步骤600,否则执行步骤520;
步骤520、将基础变迁序列集合中各变迁序列的前k个变迁按照设定规则移位,而后执行步骤510。若过渡已执行变迁序列tncmp与前k个变迁的内容和顺序均相同,可称为被包括在该变迁序列中,若内容相同而顺序不同,则可称为兼容在该变迁序列中。
本步骤中所谓按照设定规则移位,可以是将前k个变迁逐一的循环移动 一位,以便得到k个变迁的不同顺序组合。或者可以采用其他手段调整变迁的顺序来进行比较,若演化过程中发生了业务流程逻辑结构的变化,则前k个变迁的顺序经过一定调整后恰好可以等于过渡已执行变迁序列tncmp中的变迁。
本发明的技术方案与现有技术的不同之处在于不是直接的通过工作流网来判断是否能够进行运行实例迁移以及确定演化后运行实例中状态的位置,而是首先将演化前后的组合服务业务流程结构转换为一个以状态为顶点、变迁为边的可达图,然后通过对该可达图的分析,通过变迁序列来判断当前状态是否可以迁移,并且能够准确计算出演化后新实例中的状态位置,提高了组合服务演化中运行实现在线迁移的正确性。运行实例在线迁移的实现也可以减少事务回滚或补偿所导致的费用和时间开销。
上述技术方案以工作流网作为建模基础,将其转换为可达图后可以清晰地刻画组合服务的运行状态,能够容易的计算出一个运行实例已经执行过的变迁序列,并且能够根据当前状态和已执行过的变迁序列判断是否允许迁移,当迁移允许时可准确地计算出迁移后的运行实例状态和可执行的变迁序列。通过选择网络中存在的相同功能的服务,组织、构造服务冗余机制,提高组合服务的可用性,降低不可用情况的发生。该方法避免了传统变更区域计算的高复杂性以及流程继承等方法对演化操作支持不够的缺陷,为组合服务演化中的运行实例在线迁移提出了一种可行的解决方案。
实施例二
本发明实施例二提供的组合服务演化中运行实例的在线迁移方法具体以供应链组合服务为例来说明该方法的可行性和正确性,具体是供应链管理中的订单处理组合服务的应用场景,图1和图2所示分别为演化前工作流网和演化前可达图。其中转账服务t3与装配服务t4因没有直接的因果关系所以可以并发执行。
该组合服务所发生的演化涉及如下方面:为了支持多种支付方法,该组 合服务在传统的银行转账付款功能基础上需要增加对贝宝(Paypal,即一种第三方的在线转账服务)付款的支持,这时可以应用选择增加操作,加入贝宝服务,即加入一个选择增加操作的变迁t6,演化后的工作流网如图4所示。
又考虑到货物装配时可能会发生错误,导致用户得到的货物与订单不一致,因此采用顺序增加操作,在装配服务后增加一个检查服务(Check),即增加变迁t7,演化后的工作流网如图5所示。
此外,考虑到有些恶意客户虽然订购货物但是并不付款,导致货物被无效的装配,因此对业务流程结构应用并发顺序调整操作,使得用户先付款再装配货物,即调整了原有的并发业务流程结构。最终演化后的工作流程网如图6所示。
假设按照演化前组合服务的运行实例已经执行了用户注册t1、提交订单t2和银行转帐t3的服务,即已执行变迁序列tscmp为t1t2t3,演化前运行实例对应的状态,参见图2所示,为M3。按照本发明提供的组合服务演化中的在线迁移方法执行如下步骤:
步骤100、将演化后工作流网转换为演化后可达图,如图7所示,并根据演化后可达图基于广度优先方法获取演化后工作流网的初始变迁序列集合{t1t2t3t4t7t5,t1t2t6t4t7t5},该初始变迁序列集合可记为日志L;
步骤200、对初始变迁序列集合进行预处理,从初始变迁序列集合中将包括演化后工作流网中新增的选择增加操作的变迁序列删除,本实施例中,新增的选择增加操作为t6,则应将t1t2t6t4t7t5删除;
步骤300、在剩余的各变迁序列中将演化后工作流网中的新增变迁删除,以形成基础变迁序列集合。本实施例中,新增的变迁为t6、t7,应将其删除,则删除后的变迁序列为t1t2t3t4t5;
步骤400、从演化前运行实例的已执行变迁序列tscmp中,即从t1t2t3中将演化后工作流网中删除的变迁删除,得到过渡已执行变迁序列tncmp,并记录过渡已执行变迁序列中的变迁个数k。本实施例中没有通过演化删除的变迁 序列,所以tncmp仍为t1t2t3,k=3。
步骤500、将过渡已执行变迁序列tncmp与经过预处理的基础变迁序列集合中的变迁序列t1t2t3t4t5进行匹配,当匹配到前k个变迁与过渡已执行变迁序列tncmp一致的变迁序列时,确定演化前运行实例的当前状态能够在线迁移。本实施例中,显然t1t2t3t4t5的前三个变迁与tncmp一致,因此,演化前运行实例的当前状态M3能够在线迁移。
步骤600、将演化后工作流网中的新增变迁增加到匹配一致的变迁序列中,以形成有效变迁序列子集合。本实施例中,即将新增变迁t7增加到t1t2t3t4t5中,形成有效变迁序列子集合,该子集合此时实际上只包括一个变迁序列t1t2t3t4t7t5。
步骤700、采用过渡已执行变迁序列tncmp的最后一个变迁进行比较识别,本实施例中即采用t3进行识别,在有效变迁序列子集合中确定t3的位置处于最前面的一个或多个变迁序列,作为待执行变迁序列,本实施例中即确定t1t2t3t4t7t5为待执行变迁序列;
步骤800、根据演化后可达图,将待执行变迁序列中权重为过渡已执行变迁序列tncmp最后一个变迁的边的直接后继顶点的状态确定为迁移后状态;本实施例中如图7所示,权重为t3的边的直接后继顶点为M3′,其记录的状态为“0001000”,将M3′确定为迁移后状态,该状态完全满足上述定义的有效迁移的条件;
步骤900、从迁移后状态开始,按照待执行变迁序列继续执行演化前运行实例,以迁移为演化后运行实例。
在上述技术方案的基础上,若按照演化前工作流网所执行的运行实例的已执行变迁序列为t1t2t4,当前状态为M4时,在步骤500进行匹配时,会匹配到t1t2t3t4t5不包括或不兼容t1t2t4,因此,按照演化前工作流网控制演化前运行实例继续执行一个变迁t3,而后返回执行步骤100。此时的已执行变迁序列为t1t2t4t3,能够包含于t1t2t3t4t5中,且t4的直接后继顶点所对应的迁移后 状态确定为M4′。
上述情况进一步解释了关于删除包含选择增加操作引入变迁的变迁序列的实际意义,假设当已执行变迁序列为t1t2t4,即状态为M4时,如果不删除包含选择增加操作引入变迁的变迁序列,则有效变迁序列子集合为{t1t2t3t4t5,t1t2t4t5},容易看到t1t2t4包含于t1t2t4t5,因此迁移后的新状态为M4’,这会导致不能执行付款服务t3或t6,不符合有效迁移的定义。
本发明实施例所提供的组合服务演化中运行实例的在线迁移方法可以由命名为“LiveMig”的算法来实现,该方法能够首先判断当前时刻是否允许某运行实例在线迁移,即确定当前状态的迁移是否有效,而后在迁移有效的情况下能够精确地计算出在新组合服务业务流程结构下运行实例对应的状态。若不允许迁移,则继续按照演化前工作流网执行一个变迁后再重复执行上述方法。对于该算法,演化前工作流网WFNO、演化后工作流网WFNN、演化前运行实例已执行变迁序列tscmp、以及演化前运行实例的当前状态MO将作为输入数据,确定的演化后工作流网中的迁移后状态为输出数据,当得到有效的输出数据时,算法可以终结。
经过验证,“LiveMig”算法是正确的,即能返回一个有效的迁移。具体的证明思路为:首先,“LiveMig”算法显然是可终结的。假设WFNO中已经执行了变迁序列seqO到达演化前状态MO,并迁移到WFNN中的演化后状态MN。因为“LiveMig”算法基于工作流网的可达图,所以MN必然是WFNN中的一个可达状态。此外,“LiveMig”算法首先选择了一个变迁序列seqN使得[seqO]\(TO\TN)=[seqN]\(TN\TO),而且MN是WFNN中经过变迁序列seqN的可达状态,因此上述定义中的第二个条件满足。最后,由于本文中讨论的工作流网是无环结构而且一个变迁在工作流网中最多出现一次,故对于每一个WFNN中从MN到终结状态Mend N的变迁序列seqN均不包含seqO中的任何变迁。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种组合服务演化中运行实例的在线迁移方法,其特征在于,包括:
步骤100、将演化后工作流网转换为演化后可达图,根据演化后可达图基于广度优先方法获取演化后工作流网的初始变迁序列集合;
步骤200、从所述初始变迁序列集合中将包括演化后工作流网中新增的选择增加操作的变迁序列删除;
步骤300、在剩余的各变迁序列中将演化后工作流网中的新增变迁删除,以形成基础变迁序列集合;
步骤400、从演化前运行实例的已执行变迁序列中,将演化后工作流网中的删除变迁删除,得到过渡已执行变迁序列,并记录所述过渡已执行变迁序列中的变迁个数k,其中,k为自然数;
步骤500、将过渡已执行变迁序列与所述基础变迁序列集合中的变迁序列进行匹配,当匹配到前k个变迁与过渡已执行变迁序列一致的变迁序列时,确定演化前运行实例的当前状态能够在线迁移;
步骤600、将演化后工作流网中的新增变迁增加到匹配一致的变迁序列中,以形成有效变迁序列子集合;
步骤700、采用过渡已执行变迁序列的最后一个变迁进行比较识别,在所述有效变迁序列子集合中确定所述最后一个变迁的位置处于最前面的一个或多个变迁序列,作为待执行变迁序列;
步骤800、根据所述演化后可达图,将所述待执行变迁序列中权重为所述最后一个变迁的边的直接后继顶点的状态确定为迁移后状态;
步骤900、从所述迁移后状态开始,按照待执行变迁序列继续执行所述演化前运行实例,以迁移为演化后运行实例。
2.根据权利要求1所述的方法,其特征在于,在步骤500中,若不能匹配到一致的变迁序列,则还包括:
按照演化前工作流网控制演化前运行实例继续执行一个变迁,而后返回执行步骤100。
3.根据权利要求2所述的方法,其特征在于,在按照演化前工作流网控制演化前运行实例继续执行一个变迁之前,还包括:
判断所述演化前运行实例的当前状态是否为终结状态,若否,则执行按照演化前工作流网控制演化前运行实例继续执行一个变迁的步骤,若是,则结束所述演化前运行实例。
4.根据权利要求2所述的方法,其特征在于,步骤500具体包括:
步骤510、将过渡已执行变迁序列与所述基础变迁序列集合中的各变迁序列的前k个变迁进行顺序匹配,若一致,则确定演化前运行实例的当前状态能够在线迁移,并执行步骤600,否则执行步骤520;
步骤520、将所述基础变迁序列集合中的各变迁序列的前k个变迁按照设定规则移位,而后执行步骤510。
5.根据权利要求4所述的方法,其特征在于,步骤500中将所述基础变迁序列集合中的各变迁序列的前k个变迁按照设定规则移位包括:
将所述基础变迁序列集合中的各变迁序列的前k个变迁循环移动一位。
6.根据权利要求1所述的方法,其特征在于,步骤100中将演化后工作流网转换为演化后可达图包括:
将所述演化后工作流网的各状态记录为所述演化后可达图的各顶点;
将相邻状态之间的变迁记录为所述演化后可达图各顶点之间边的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010033670A CN101751626B (zh) | 2010-01-04 | 2010-01-04 | 组合服务演化中运行实例的在线迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010033670A CN101751626B (zh) | 2010-01-04 | 2010-01-04 | 组合服务演化中运行实例的在线迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751626A CN101751626A (zh) | 2010-06-23 |
CN101751626B true CN101751626B (zh) | 2012-08-29 |
Family
ID=42478574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010033670A Expired - Fee Related CN101751626B (zh) | 2010-01-04 | 2010-01-04 | 组合服务演化中运行实例的在线迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751626B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567845B (zh) * | 2011-12-15 | 2015-04-15 | 北京航空航天大学 | 组合服务演化中运行实例的在线迁移方法及设备 |
GB2509538A (en) * | 2013-01-08 | 2014-07-09 | Ibm | Migrating process instances from an old business process to a new business process |
CN104317885B (zh) * | 2014-10-22 | 2017-09-19 | 安徽师范大学 | 一种确定演化域的最小生成工作流网方法 |
JP6767042B2 (ja) * | 2016-09-26 | 2020-10-14 | 国立研究開発法人情報通信研究機構 | シナリオパッセージ分類器、シナリオ分類器、及びそのためのコンピュータプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1925483A (zh) * | 2005-08-31 | 2007-03-07 | 华为技术有限公司 | 一种确定无线接口协议栈分布位置的实现方法和系统 |
CN1947096A (zh) * | 2004-05-08 | 2007-04-11 | 国际商业机器公司 | 虚拟机计算机程序的动态迁移 |
-
2010
- 2010-01-04 CN CN201010033670A patent/CN101751626B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1947096A (zh) * | 2004-05-08 | 2007-04-11 | 国际商业机器公司 | 虚拟机计算机程序的动态迁移 |
CN1925483A (zh) * | 2005-08-31 | 2007-03-07 | 华为技术有限公司 | 一种确定无线接口协议栈分布位置的实现方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101751626A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8365170B2 (en) | Realizing jumps in an executing process instance | |
CN101820428A (zh) | 基于协议组合机制的组合服务优化方法和装置 | |
Autili et al. | Choreography realizability enforcement through the automatic synthesis of distributed coordination delegates | |
CN103377407B (zh) | 云业务处理方法及相关装置和系统 | |
CN101276290A (zh) | 用于检查参数访问的方法及任务管理系统 | |
Martin et al. | A novel approach to decentralized workflow enactment | |
WO2009061146A2 (en) | A method for software development and operation based on component reuse and dependency injection | |
CN101751626B (zh) | 组合服务演化中运行实例的在线迁移方法 | |
CN102567092A (zh) | 组件作用域的创建和终止 | |
CN101840335A (zh) | 一种可配置业务模块的J2EE web应用系统 | |
CN101634946A (zh) | 一种rfid构件的生成方法 | |
Berardi | Automatic Service Composition. Models, Techniques and Tools. | |
Mateos et al. | Separation of concerns in service-oriented applications based on pervasive design patterns | |
US20070256059A1 (en) | Abstract platform to facilitate the interoperability of information | |
da Silva et al. | Interaction protocols for cross-organisational workflows | |
CN109669671B (zh) | 一种基于微服务的多层次自适应方法 | |
Yu et al. | Towards a model driven approach to automatic bpel generation | |
CN116643854A (zh) | 一种服务编排方法、装置、流程控制器及任务处理器 | |
Autili et al. | On the model-driven synthesis of evolvable service choreographies | |
Fang et al. | Dynamic support for BPEL process instance adaptation | |
Fdhila et al. | Toward synchronization between decentralized orchestrations of composite web services | |
Jamali | Cyberorgs: A model for resource bounded complex agents | |
Qian et al. | Mobile-agent-based web service composition | |
Hassine et al. | Timed use case maps | |
Bravetti et al. | From Theoretical e-Barter Models to Two Alternative Implementations Based on Web Sevices. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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: 20120829 Termination date: 20170104 |
|
CF01 | Termination of patent right due to non-payment of annual fee |