组合服务演化中运行实例的在线迁移方法

文档序号:6597414阅读:113来源:国知局
专利名称:组合服务演化中运行实例的在线迁移方法
技术领域
本发明实施例涉及组合服务中业务流程管理技术,尤其涉及一种组合服务演化中
运行实例的在线迁移方法。
背景技术
近年来,随着互联网技术的不断发展,网络上聚集了越来越多的资源,不仅包含丰 富的计算、存储等物理资源,还有大量的软件、服务资源,且资源的数目和类型日益增长, 从而为基于服务的网络软件开发提供了重要的基础。同时,简单对象访问协议(Simple Object Access Protocol,简称SOAP) 、 Web月艮务描述i吾言(Web Services Description Language,简称WSDU 、统一描述、发现禾口集成(Universal Description Discoveryand Integration,简称UDDI)协议禾口业务流程执行语言(Business ProcessExecution Language,简称BPEL)等标准的制定进一步促进了 Web服务技术及软件体系结构(Service Oriented Architecture,简称S0A)的快速发展,使得异构信息、异构平台的共享与集成成 为可能,基于服务的分布式应用系统开发已经成为计算机软件领域一个重要的方向。
所谓服务,即能够执行一项业务逻辑的软件实体单元,可以由网络侧提供, 一项业 务逻辑可以是某一项功能,一项任务等。Web服务技术可以用于解决不同的平台/系统之 间应用的整合问题,为跨组织边界的业务流程的自动化提供技术基础,但由于服务的提供 者分工越来越细,并且为了保证重用性和可维护性等,一般不将复杂的业务逻辑封装到单 个的Web服务中,而为了满足用户多样性的需求,实现完整的业务功能,需要把分布的独立 Web服务组合起来,形成具有增值价值的服务,服务组合技术成为构建网络化软件的一种重 要方法,基于这种方法所开发的软件在技术形态上体现为组合服务。 通常,基于服务组合的网络软件开发要按照功能和非功能需求集成不同服务供应 商提供的软件服务实体,这些服务实体位于不同的管理域,具有异构性、自治性和动态性等 特点,如服务运行在不同系统平台之上、具有不同的自治策略,服务的状态和性质动态变化 等。同时,网络应用的多样性和复杂性增加,许多应用不仅对软件核心功能需求增多,而且 对非功能的需求,如可靠性、可信性和可用性等,也越来越高。因此,对组合服务系统的构 造、部署、管理、演化等机制,都提出了诸多挑战。 基于业务流程的Web服务组合是指通过借鉴传统的工作流和业务流程管理技术, 将不同的组件服务编排在一个具有固定业务逻辑的流程中,执行时再按照此业务流程中的 逻辑关系和时序关系来调用远程的组件服务。 一般使用工作流语言描述Web服务组合形成 的业务流程,从而指定一组Web服务操作的执行顺序、确定服务共享的数据、业务流程涉的 伙伴和各伙伴在业务流程中的角色,以及多个服务和组织是如何参与等。其中,业务流程是 指为实现一个特定业务目标通过Web服务组合能完成的各项活动的逻辑结构关系。活动为 业务流程中实现特定业务目标的步骤,即Web服务。因此,根据Web服务工作流语言定义出 Web服务组合的工作流模型,工作流模型可以被工作流执行引擎执行。 服务组合在实际运行过程中经常面临政策法规、业务需求和交易规则变化,传统
4的刚性业务流程管理技术主要关注严格描述业务流程逻辑并在此基础上指导流程正确执 行,难以适应运行期动态演化的需求,特别是在互联网环境带来更强的动态性和不确定性, 对组合服务的演化提出了更高的要求。组合服务的动态演化是指其能够根据应用需求和网 络环境变化而进行的动态调整,主要表现在其实体元素数目的可变性、结构关系的可调节 性和结构形态的动态可配置性上。 组合服务的演化已经是学术界的研究热点,其相关工作可以追溯到二十世纪九十 年代末期业务流程管理领域针对应用需求和法律规则的变化而兴起的对柔性(Flexible) 和适应性(Adaptive)业务流程的研究。 一些关于组合服务或业务流程演化的综述从演化 时间、演化影响、演化操作分类以及演化带来的问题等方面进行分析,其中演化正确性和运 行期实例处理是演化过程中不得不面对的问题。在现有的理论研究中认为,演化的正确性 准则中,完整性是应该给用户提供最小的变更操作集合,比如插入或删除活动,调整控制和 数据依赖等,正确性是需要一个适当的正确性标准来检查一个工作流实例是否按照新的工 作流模型进行一致性的变更,也就是说一个工作流模型的变更是否被正确的传播到工作流 实例中,并且没有导致死锁、不正确的活动调用等,正确性准则还涉及变更可实现性,即自 动化的把业务流程的运行实例迁移到新的工作流模型下。 当组合服务进行演化时,对于大多数业务流程,可以通过事务回滚和补偿等形式 来处理运行实例,例如停止当前的运行实例,用演化后的业务流程重新执行运行实例。但 是,对于一些特殊的组合服务,例如金融、电信和电子商务等关键系统,往往需要7X24小 时或更长时间的不间断运行,若采用传统的事务回滚或补偿等措施停止运行实例则可能带 来大量的额外费用和时间开销。因此,在实施组合服务演化的过程中,如何处理当前组合 服务的运行实例是本领域一个急需解决、且富有挑战性的问题。现有技术中提供的一些 组合服务演化时运行实例状态迁移的技术,都存在一定缺陷例如动态变更错误(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, M。)。其
中,P代表库所(Place)p的集合,例如{ppPy......,pn} ;T代表变迁(Transition) t的集
合,例如{tp^,......,tn} ;F代表库所与变迁之间关系的集合,每个变迁都需要以特定的
一个或几个库所为执行条件,基于这些库所完成变迁后又可以产生新的库所,而此后原库 所可认为失效。库所与变迁之间关系的形式可以表示为〈Pl, t,、 〈tp p2> ;i代表初始的库 所;o代表终结的库所;M代表运行实例的状态,M的下标0代表初始状态。
随着运行实例的执行,可以用变迁序列来表示当前运行实例所执行的情况,也可 以用状态表示当前执行的情况。例如,变迁序列t^、t山t山可以表示执行到哪个变迁。每 个业务流程可能有多种变迁序列,但是每个运行实例当前执行的变迁序列应该是确定的。 状态M表示当前有效库所的状态,其形式为"0、 1"数值串,每个业务流程中包括几个库所, 状态中就包括几位数值。当前有效的库所的对应位置为"1",失效的或还未通过执行变迁而 生效的库所的对应位置为"0"。 如图1所示为一个供应链组合服务的业务流程图,该业务流程中包括如下变迁 用户注册(Register)^ ;提交订单(Order) t2 ;银行转帐(Pay) t3 ;货物装配(Assemble) tj口 运输服务(Su卯ly)^。p工 P7是变迁所需要或产生的库所,库所与变迁之间的关系以图l中 的实线箭头表示。初始的库所是Pn终结的库所是P7,初始状态时Pi有效,M。为"1000000"。 当基于该业务流程执行一个运行实例时,随着运行实例的执行,其状态M在不断变化,从初 始状态M。变化至终结状态Mmd。 为实现本发明的目的,本发明实施例还采用了可达图(Graph)的概念,将工作流 网模型转换为可达图的形式进行处理。工作流网WFN二 (P,T,F,i,o,M。)的可达图可以定 义为6= (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中相应包含七位数值,具体的状态M工 M6如图2中所示。对 于t3或t4,由于t3和t4没有固定的逻辑关系,可以并发执行,所以在t3或t4执行前,状态 M3和M4中p3和P4都是有效的。 本发明的目的是实现运行实例的有效迁移,应满足运行实例的正确性要求。所谓 运行实例的有效迁移(Valid Migration),在本发明中进行了如下定义
假设演化前工作流网为WFN° = (P°, T°, F°, i°, o°, M。°),演化后工作流网为WFNN = (PN, TN, FN, iN, oN, M。N),上述两个工作流网均默认为合理工作流网。所谓合理的工作流网即 满足如下三个条件的工作流网1、从初始状态M。开始,总可能达到终结状态M^ ;2、当工作 流网处于M^状态时,即终结状态的库所为有效时,所有其它库所应该是空的、无效的;3、 从初始状态l不存在死变迁。如果一个工作流网是不合理的,那么可能会导致死循环、死 锁、或者某些变迁不可达等不良现象。M°是WFN°中的一个运行实例经过变迁序列seq°到达 的可达状态,当且仅当下列条件成立时把WFN°从状态M°到WFNN下状态MN的迁移确定为有 效迁移
条件1、 MN是WFNN的一个可达状态,即可实现的状态; 条件2、存在一个从WFNN中初始状态M。N到MN的变迁序列seqN,使得 [seq°] \ (T°\TN) = [seqN] \ (TN\T°),其中[seq]表示变迁序列seq中所有变迁的集
合,T°\TN表示从演化前至演化后工作流网删除的变迁,TN\T°表示从演化前至演化后工作流
网增加的变迁; 条件3、对于每一个WFNN中从M"到终结状态M^/的变迁序列seqN, seqN不包含seq° 中的任意变迁,即迁移后不会重复执行已经执行过的变迁。 上述定义中的第一个条件保证了演化后运行实例中的对应状态是可达和可终结 的;第二个条件确保了演化前运行实例中任何必须的变迁在迁移后都已经被执行;最后一 个条件指出演化后运行实例中已经被执行过的变迁在迁移后不会被重复执行。
本发明实施例即基于上述工作流网模型和可达图来实现。
实施例一 图3为本发明实施例一提供的组合服务演化中运行实例的在线迁移方法的流程 图。该方法可包括如下步骤 步骤100、将演化后工作流网转换为可达图,记为演化后可达图,并根据演化后可 达图基于广度优先方法获取演化后工作流网的初始变迁序列集合,该初始变迁序列集合可 记为日志L ; 在本步骤中,可以按照上述介绍的关系将工作流网转换为可达图,即将演化后工 作流网的各状态记录为演化后可达图的各顶点;将相邻状态之间的变迁记录为演化后可达 图各顶点之间边的权重。 根据演化后可达图获取的初始变迁序列集合包括了所有可能执行的变迁序列。在 本步骤执行前,已知的数据应该包括了演化前工作流网WFN。、演化后工作流网WFN"、当前运 行实例已经执行完成的已执行变迁序列ts,、以及该运行实例的当前状态M、由演化后工 作流网WFNW可以获知工作流网的变化,典型地是包括如下几类变化增加一个选择增加操 作的变迁,该变迁与原有的某个或某些变迁是选择执行的关系,任选其一执行即可;增加一 个或多个变迁;删除一个或多个变迁;改变变迁执行的顺序等。
随后对初始变迁序列集合进行如下预处理 步骤200、从初始变迁序列集合中将包括演化后工作流网中新增的选择增加操作 的变迁序列删除; 本步骤删除涉及选择增加操作的整个变迁序列,这是由于选择增加操作不会影响 状态迁移,而且该操作和结构调整一起使用将可能导致潜在的错误。 步骤300、在剩余的各变迁序列中将演化后工作流网中的新增变迁删除,经过上述
步骤200和步骤300的预处理后,初始变迁序列集合变更为基础变迁序列集合; 本步骤即在变迁序列中仅将新增的特定变迁删除,而不是删除整个涉及新增变迁
的变迁序列。 步骤400、从演化前运行实例的已执行变迁序列tsemp中,将演化后工作流网中的 删除变迁删除,得到过渡已执行变迁序列tn,,并记录过渡已执行变迁序列tn p中的变迁 个数k,其中,k为自然数。S卩,将演化后工作流网从演化前工作流网中删除的变迁从已执行 变迁序列ts,中删除。
上述步骤200和300是对初始变迁序列集合进行预处理,其步骤顺序不限,步骤 400是对已执行变迁序列进行预处理,步骤400与步骤200和步骤300是独立的,其步骤顺 序也不作限定。 步骤500、将过渡已执行变迁序列tnemp与经过预处理的基础变迁序列集合中的变 迁序列进行匹配,当匹配到前k个变迁与过渡已执行变迁序列tn, 一致的变迁序列时,确 定演化前运行实例的当前状态能够在线迁移,若不能匹配到前k个变迁与过渡已执行变迁 序列tn p —致的变迁序列,则优选的是按照演化前工作流网控制演化前运行实例继续执行 一个变迁,而后返回执行步骤100 ; 上述步骤500中,前k个变迁与过渡已执行变迁序列tn,一致的含义是只需变 迁的内容一致,而无须变迁的顺序一致。能够匹配一致即说明演化过程没有影响业务流程 运行实例状态迁移,所有能够兼容过渡已执行变迁序列tn,的变迁序列组成一个子集合 SubSet'。 上述步骤500中,不能匹配到一致的变迁序列则意味着演化过程使用了流程结构 调整操作,当前的状态M可能无法被有效的迁移。此时可以首先判断当前运行实例的状态 M是否为终结状态Mmd,若是,则演化前运行实例无须迁移,可以正常结束,若否,则执行上述 按照演化前工作流网控制演化前运行实例继续执行一个变迁的步骤。 步骤600、将演化后工作流网中的新增变迁增加到匹配一致的变迁序列中,以形成 有效变迁序列子集合SubSet ; 步骤700、采用过渡已执行变迁序列tn p的最后一个变迁进行比较识别,在有效 变迁序列子集合中确定过渡已执行变迁序列tn,最后一个变迁的位置处于最前面的一个 或多个变迁序列,作为待执行变迁序列; 本步骤700相当于在有效变迁序列子集合SubSet中查询最后一个变迁在最左面 的一个变迁序列tsN。 步骤800、根据演化后可达图,将待执行变迁序列中权重为过渡已执行变迁序列 tn p最后一个变迁的边的直接后继顶点的状态确定为迁移后状态; 步骤900、从迁移后状态开始,按照待执行变迁序列继续执行演化前运行实例,以 迁移为演化后运行实例。 本实施例步骤500中的匹配操作具体可以采用循环体的方式来实现,即包括如下 步骤 步骤510、将过渡已执行变迁序列tn,与基础变迁序列集合中的各变迁序列的前 k个变迁进行顺序匹配,若一致,则确定演化前运行实例的当前状态能够在线迁移,并执行 步骤600,否则执行步骤520 ; 步骤520、将基础变迁序列集合中各变迁序列的前k个变迁按照设定规则移位,而 后执行步骤510。若过渡已执行变迁序列trTP与前k个变迁的内容和顺序均相同,可称为 被包括在该变迁序列中,若内容相同而顺序不同,则可称为兼容在该变迁序列中。
本步骤中所谓按照设定规则移位,可以是将前k个变迁逐一的循环移动一位,以 便得到k个变迁的不同顺序组合。或者可以采用其他手段调整变迁的顺序来进行比较,若 演化过程中发生了业务流程逻辑结构的变化,则前k个变迁的顺序经过一定调整后恰好可 以等于过渡已执行变迁序列tn,中的变迁。
本发明的技术方案与现有技术的不同之处在于不是直接的通过工作流网来判断 是否能够进行运行实例迁移以及确定演化后运行实例中状态的位置,而是首先将演化前后 的组合服务业务流程结构转换为一个以状态为顶点、变迁为边的可达图,然后通过对该可 达图的分析,通过变迁序列来判断当前状态是否可以迁移,并且能够准确计算出演化后新 实例中的状态位置,提高了组合服务演化中运行实现在线迁移的正确性。运行实例在线迁 移的实现也可以减少事务回滚或补偿所导致的费用和时间开销。 上述技术方案以工作流网作为建模基础,将其转换为可达图后可以清晰地刻画组 合服务的运行状态,能够容易的计算出一个运行实例已经执行过的变迁序列,并且能够根 据当前状态和已执行过的变迁序列判断是否允许迁移,当迁移允许时可准确地计算出迁移 后的运行实例状态和可执行的变迁序列。通过选择网络中存在的相同功能的服务,组织、构 造服务冗余机制,提高组合服务的可用性,降低不可用情况的发生。该方法避免了传统变更 区域计算的高复杂性以及流程继承等方法对演化操作支持不够的缺陷,为组合服务演化中 的运行实例在线迁移提出了一种可行的解决方案。
实施例二 本发明实施例二提供的组合服务演化中运行实例的在线迁移方法具体以供应链 组合服务为例来说明该方法的可行性和正确性,具体是供应链管理中的订单处理组合服务 的应用场景,图1和图2所示分别为演化前工作流网和演化前可达图。其中转账服务t3与 装配服务t4因没有直接的因果关系所以可以并发执行。 该组合服务所发生的演化涉及如下方面为了支持多种支付方法,该组合服务在 传统的银行转账付款功能基础上需要增加对贝宝(Paypal,即一种第三方的在线转账服 务)付款的支持,这时可以应用选择增加操作,加入贝宝服务,即加入一个选择增加操作的 变迁te,演化后的工作流网如图4所示。 又考虑到货物装配时可能会发生错误,导致用户得到的货物与订单不一致,因此 采用顺序增加操作,在装配服务后增加一个检查服务(Check),即增加变迁^,演化后的工 作流网如图5所示。 此外,考虑到有些恶意客户虽然订购货物但是并不付款,导致货物被无效的装配, 因此对业务流程结构应用并发顺序调整操作,使得用户先付款再装配货物,即调整了原有 的并发业务流程结构。最终演化后的工作流程网如图6所示。 假设按照演化前组合服务的运行实例已经执行了用户注册tp提交订单t2和银行 转帐t3的服务,即已执行变迁序列ts,为t^^3,演化前运行实例对应的状态,参见图2所 示,为Mp按照本发明提供的组合服务演化中的在线迁移方法执行如下步骤
步骤100、将演化后工作流网转换为演化后可达图,如图7所示,并根据演化 后可达图基于广度优先方法获取演化后工作流网的初始变迁序列集合(t^t山t^, ^t^e^^tj ,该初始变迁序列集合可记为日志L ; 步骤200、对初始变迁序列集合进行预处理,从初始变迁序列集合中将包括演化后 工作流网中新增的选择增加操作的变迁序列删除,本实施例中,新增的选择增加操作为te,
贝U应4f ^t^e^^ts册U除; 步骤300、在剩余的各变迁序列中将演化后工作流网中的新增变迁删除,以形成基 础变迁序列集合。本实施例中,新增的变迁为t6、 ^,应将其删除,则删除后的变迁序列为
步骤400、从演化前运行实例的已执行变迁序列tsemp中,即从^t2t3中将演化后工 作流网中删除的变迁删除,得到过渡已执行变迁序列tn,,并记录过渡已执行变迁序列中 的变迁个数k。本实施例中没有通过演化删除的变迁序列,所以tn,仍为^t2t3, k = 3。
步骤500、将过渡已执行变迁序列tn,与经过预处理的基础变迁序列集合中的变 迁序列^t^3^t5进行匹配,当匹配到前k个变迁与过渡已执行变迁序列tn p —致的变迁 序列时,确定演化前运行实例的当前状态能够在线迁移。本实施例中,显然^t^3^t5的前 三个变迁与tn, 一致,因此,演化前运行实例的当前状态M3能够在线迁移。
步骤600、将演化后工作流网中的新增变迁增加到匹配一致的变迁序列中,以形成 有效变迁序列子集合。本实施例中,即将新增变迁t7增加到t^2t3^t5中,形成有效变迁序 列子集合,该子集合此时实际上只包括一个变迁序列^t^^JA" 步骤700、采用过渡已执行变迁序列tn p的最后一个变迁进行比较识别,本实施 例中即采用^进行识别,在有效变迁序列子集合中确定^的位置处于最前面的一个或多个
变迁序列,作为待执行变迁序列,本实施例中即确定^t^3^^t5为待执行变迁序列; 步骤800、根据演化后可达图,将待执行变迁序列中权重为过渡已执行变迁序列 trTP最后一个变迁的边的直接后继顶点的状态确定为迁移后状态;本实施例中如图7所 示,权重为t3的边的直接后继顶点为M/ ,其记录的状态为"0001000",将M3'确定为迁移 后状态,该状态完全满足上述定义的有效迁移的条件; 步骤900、从迁移后状态开始,按照待执行变迁序列继续执行演化前运行实例,以 迁移为演化后运行实例。 在上述技术方案的基础上,若按照演化前工作流网所执行的运行实例的已执行变 迁序列为^t^4,当前状态为M4时,在步骤500进行匹配时,会匹配到^t^s^ts不包括或不 兼容t^2t4,因此,按照演化前工作流网控制演化前运行实例继续执行一个变迁^,而后返
回执行步骤100。此时的已执行变迁序列为^t2t4t3,能够包含于^t^3^ts中,且t4的直接
后继顶点所对应的迁移后状态确定为M/ 。 上述情况进一步解释了关于删除包含选择增加操作引入变迁的变迁序列的实际 意义,假设当已执行变迁序列为^t2t4,即状态为M4时,如果不删除包含选择增加操作引入
变迁的变迁序列,则有效变迁序列子集合为{^t^s^ts, t^2t4tj,容易看至lj t山^包含于
^t2t4t5,因此迁移后的新状态为M4',这会导致不能执行付款服务t3或t6,不符合有效迁移
的定义。 本发明实施例所提供的组合服务演化中运行实例的在线迁移方法可以由命名为 "LiveMig"的算法来实现,该方法能够首先判断当前时刻是否允许某运行实例在线迁移,即 确定当前状态的迁移是否有效,而后在迁移有效的情况下能够精确地计算出在新组合服务 业务流程结构下运行实例对应的状态。若不允许迁移,则继续按照演化前工作流网执行一 个变迁后再重复执行上述方法。对于该算法,演化前工作流网WFN 演化后工作流网WFNN、 演化前运行实例已执行变迁序列ts,、以及演化前运行实例的当前状态MG将作为输入数 据,确定的演化后工作流网中的迁移后状态为输出数据,当得到有效的输出数据时,算法可 以终结。 经过验证,"LiveMig"算法是正确的,即能返回一个有效的迁移。具体的证明思路为首先,"LiveMig"算法显然是可终结的。假设WFN°中已经执行了变迁序列Seq°到达演 化前状态M 并迁移到WFNN中的演化后状态M、因为"LiveMig"算法基于工作流网的可达 图,所以MW必然是WFNW中的一个可达状态。此外,"LiveMig"算法首先选择了一个变迁序 列seqN使得[Seq°] \ (T°\TN) = [seqN] \ (TN\T°),而且MN是WFNN中经过变迁序列seqN的可达 状态,因此上述定义中的第二个条件满足。最后,由于本文中讨论的工作流网是无环结构而 且一个变迁在工作流网中最多出现一次,故对于每一个WFNW中从MW到终结状态M^/的变迁 序列seqN均不包含seq°中的任何变迁。 本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、 RAM、磁碟或者 光盘等各种可以存储程序代码的介质。 最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
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中将演化后工作流网转换为演化后可达图包括将所述演化后工作流网的各状态记录为所述演化后可达图的各顶点; 将相邻状态之间的变迁记录为所述演化后可达图各顶点之间边的权重。
全文摘要
本发明提供一种组合服务演化中运行实例的在线迁移方法。该方法包括根据演化后可达图获取初始变迁序列集合;从中将包括新增的选择增加操作的变迁序列删除;在剩余各变迁序列中将新增变迁删除;从已执行变迁序列中将删除变迁删除,得到过渡已执行变迁序列,当匹配到前k个变迁与过渡已执行变迁序列一致的变迁序列时,确定能够在线迁移;将新增变迁增加到匹配一致的变迁序列中;在有效变迁序列子集合中确定最后一个变迁的位置处于最前面的待执行变迁序列;将待执行变迁序列中权重为最后一个变迁的边的直接后继顶点的状态确定为迁移后状态;从迁移后状态开始按照待执行变迁序列继续执行运行实例。本发明可以提高运行实例的在线迁移的正确性。
文档编号G06Q10/00GK101751626SQ201010033670
公开日2010年6月23日 申请日期2010年1月4日 优先权日2010年1月4日
发明者刘旭东, 孙海龙, 曾晋, 纪一鹏 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1