一种将协作图编排映射为Peer的方法及装置与流程

文档序号:11952552阅读:196来源:国知局
一种将协作图编排映射为Peer的方法及装置与流程
本申请属于业务过程分析
技术领域
,具体地说,涉及一种将协作图编排映射为Peer的方法,还涉及一种将协作图编排映射为Peer的装置。
背景技术
:视频随着全球经济化的发展和企业信息化程度的不断提高,企业的经营模式发生了重大的变化,企业的业务活动已从企业内单目标为导向的独立模式发展成为跨企业多目标合作的协同模式,协同商务环境下,没有一个企业是独立存在的。为实现共同的商业目标,各个组织的业务流程常常需要跨越传统的组织边界,同其他组织的业务流程进行交互。在此背景下,如何将不同组织的松散耦合的业务过程通过协同整合为新的商业流程即跨组织业务过程,已成为了业务过程管理领域学术研究的热点问题。由于建模者定义的编排未必总能被参与者正确实现,因而对编排进行可实现性分析成为了实现自上而下式跨组织业务流程建模需解决的关键问题。通常,对编排进行可实现性分析涉及三个步骤:(1)将编排映射为参与者;(2)将参与者经同步通信或异步通信组合为编排实现;(3)检验编排实现是否满足编排。其中,第一步最为关键,因为它在很大程度上决定了可实现性分析的结果。虽然协作图作为学术界公认的一种图形化的编排建模语言,能直观定义编排,但它本身缺乏分析技术,建模者无法将协作图编排直接映射为参与者。因此,如何将协作图编排映射为形式化定义的参与者,并为可实现性分析提供分析技术,成为了业务过程分析领域研究的难点。虽然近年来已有文献将协作图编排映射为基于自动机定义的参与者或基于进程代数定义的参与者。将协作图编排映射为基于自动机定义的参与者,其以自动机为形式化基础,将协作图编排形式转换为基于自动机定义的会话协议,再将会话协议映射为基于自动机定义的参与者(BultanT,FuX.Specificationofrealizableserviceconversationsusingcollaborationdiagrams[C].ServiceOrientedComputingandApplications,2008,2(1):27-39.),但是基本自动机不能描述并发,会丢失协作图中的语义。将协作图编排映射为基于进程代数定义的参与者,其以进程代数LOTOSNT为形式化基础,将协作图编排形式转换为基于LOTOSNT的进程表达式,再将进程表达式映射为基于LOTOSNT定义的参与者(SalaünG,BultanT,RoohiN.RealizabilityofChoreographiesUsingProcessAlgebraEncodings[J].IEEETransactionsonServicesComputing,2012,5(3):167-182.),这种方法转换后用进程代数进行表示,数学化的定义使得结果不够直观。而截止目前,尚未发现有关工作将协作图编排直接映射为基于Petri网定义的参与者。技术实现要素:有鉴于此,本申请针对无法将协作图编排直接映射为参与者、并对编排的可实现性分析提供分析技术的问题,提供了一种将协作图编排映射为Peer的方法及装置,将基于协作图定义的编排映射为基于Petri网定义的Peer,为编排的可实现性分析提供分析技术。为了解决上述技术问题,本申请公开了一种将协作图编排映射为Peer的方法,包括以下步骤:步骤1,提取协作图中消息间的依赖关系集;步骤2,从角色出发,提取协作图中每个角色所对应的消息集;步骤3,根据所述依赖关系集,确定所述每个角色所对应的消息集中消息间的依赖关系;步骤4,根据所述依赖关系,对每个角色进行Petri网编码,得到基于Petri网定义的参与者。进一步地,所述步骤1包括:步骤1.1,以协作图中所定义的所有消息为矩阵的行和列,生成消息关系表;步骤1.2,根据协作图中线程内部消息间的全序关系,将相邻消息间的全序关系在所述消息关系表中标注为直接依赖;步骤1.3,根据协作图中线程间消息间的依赖关系,将消息间的依赖关系在所述消息关系表中标注为直接依赖;步骤1.4,获得由所述全序关系和所述依赖关系的并集组成的依赖关系的传递闭包,排除其中的直接依赖关系,得到消息间的间接依赖关系,并在所述消息关系表中进行标注。进一步地,所述每个角色所对应的消息集为该角色在协作图中所涉及的所有发送消息和所有接受消息的并集。进一步地,所述确定所述每个角色所对应的消息集中消息间的依赖关系具体为:确定每个角色对应消息集中相邻消息间的依赖关系,删除消息集中相邻消息间的冗余依赖关系。进一步地,所述步骤4包括:步骤4.1,将每个角色对应消息集中的每个消息编码为Petri网的变迁,依据消息类型,将单一消息、循环消息和选择消息分别编排为Petri网中的串行块、循环块和选择块;步骤4.2,将每个角色所对应消息集中消息间的依赖关系,编码为Petri网中相应变迁间的串行关系;步骤4.3,对前集为空的变迁添加一个开始库所,对后集为空的变迁添加一个结束库所;步骤4.4,在每个开始库所中添加1个托肯。进一步地,所述步骤4.2还包括:若存在循环类型的消息与循环类型的消息相连,则在这两个循环消息之间增加一个没有执行语义的τ变迁,以保证消息间的依赖关系。本申请还公开了一种将协作图编排映射为Peer的装置,包括:依赖关系提取模块,用于提取协作图中的消息,生成消息关系表,并对所述消息关系表中消息间的依赖关系进行标注,获得依赖关系集;消息提取模块,用于提取协作图中每个角色所对应的消息集;依赖关系确定模块,用于根据所述依赖关系集,确定所述每个角色所对应的消息集中消息间的依赖关系;Petri网编码模块,用于根据所述依赖关系,对每个角色进行Petri网编码,得到基于Petri网定义的参与者。进一步地,所述对所述消息关系表中消息间的依赖关系进行标注具体为:根据协作图中线程内部消息间的全序关系,将相邻消息间的全序关系在所述消息关系表中标注为直接依赖;根据协作图中线程间消息间的依赖关系,将消息间的依赖关系在所述消息关系表中标注为直接依赖;获得由所述全序关系和所述依赖关系的并集组成的依赖关系的传递闭包,排除其中的直接依赖关系,得到消息间的间接依赖关系,并在所述消息关系表中进行标注。进一步地,所述确定所述每个角色所对应的消息集中消息间的依赖关系具体为:根据消息关系表,确定每个角色对应消息集中相邻消息间的依赖关系,删除消息集中相邻消息间的冗余依赖关系。进一步地,所述对每个角色进行Petri网编码具体为:将每个角色对应消息集中的每个消息编码为Petri网的变迁,依据消息类型,将单一消息、循环消息和选择消息分别编排为Petri网中的串行块、循环块和选择块;将每个角色所对应消息集中消息间的依赖关系,编码为Petri网中相应变迁间的串行关系;若存在循环类型的消息与循环类型的消息相连,则在这两个循环消息之间增加一个没有执行语义的τ变迁,以保证消息间的依赖关系;对前集为空的变迁添加一个开始库所,对后集为空的变迁添加一个结束库所;在每个开始库所中添加1个托肯。与现有技术相比,本申请可以获得包括以下技术效果:(1)本申请通过提取协作图中消息间的依赖关系集;从角色出发,提取协作图中每个角色所对应的消息集;根据所述依赖关系集,确定所述每个角色所对应的消息集中消息间的依赖关系;根据所述依赖关系,对每个角色进行Petri网编码,得到基于Petri网定义的参与者。该方法以Petri网为形式化基础,从角色出发,将基于协作图定义的编排映射为基于Petri网定义的Peer,从而为编排的可实现性(realizability)分析提供分析技术;(2)本申请与基于自动机定义的参与者或基于进程代数定义的参与者相比,Petri网具有图形化的表示和大量的分析技术,可以更好的实现为编排的可实现性(realizability)分析提供分析技术的目的;(3)本申请的方法将在编排的可实现性分析方面具有广阔的应用背景,对检测编排的可实现性分析尤为重要。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有技术效果。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是本申请实施例将协作图编排映射为Peer的方法流程图;图2是本申请实施例三种消息的编码方式图,其中,(a)为单一消息的编码方式,(b)为循环消息的编码方式,(c)为选择消息的编码方式;图3是本申请实施例将协作图编排映射为Peer的装置结构示意图。具体实施方式以下将配合实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。本发明一种将协作图编排映射为Peer(参与者)的方法,参见图1,包括以下步骤:步骤1,提取协作图中消息间的依赖关系集;所述步骤1包括:步骤1.1,以协作图中所定义的所有消息为矩阵的行和列,生成消息关系表,如表1所示;在本申请实施例的消息关系表中,“*”表示该消息的类型为循环消息,“?”表示该消息的类型为选择消息。步骤1.2,根据协作图中线程内部消息间的全序关系,将相邻消息间的全序关系在所述消息关系表所对应的方框中标注为“>”,“>”表示直接依赖;步骤1.3,根据协作图中线程间消息间的依赖关系,将消息间的依赖关系在所述消息关系表所对应的方框中标注为“>”;步骤1.4,获得由所述全序关系和所述依赖关系的并集组成的依赖关系的传递闭包,排除其中的直接依赖关系,得到消息间的间接依赖关系,将消息间的间接依赖关系在消息关系表所对应的方框中标注为“>>”,“>>”表示间接依赖。这里,依赖关系是指消息发生的前后关系。在协作图中,消息间的依赖关系可分为两种:直接依赖关系和间接依赖关系。直接依赖关系是指能从协作图中直接提取出来的消息。直接消息包括线程内部相邻消息间的全序关系和线程间消息间的依赖关系,他们都是由协作图直接定义。间接依赖关系是指由直接依赖关系的传递闭包所求出的依赖关系,并排除掉直接依赖关系,不由协作图直接定义。需要说明的是,协作图中消息间不会产生消息间的循环依赖关系及消息间的选择关系。表1消息关系表M12A1A2A3*B1B2B3?1>>>>>>>>>>>>2A1>>>>>>>>>>>A2>>>>>>>>>A3*>>>>>>>B1>>>>>B2>>B3?步骤2,从角色出发,提取协作图中每个角色所对应的消息集;所述消息集包含该角色在业务协同过程中所需的发送消息和所需的接受消息。本申请实施例中,提取协作图中每个角色所对应的消息集具体为:1)提取该角色在协作图中所涉及的所有发送消息,并将该消息重新命名为“!消息名”的模式;其中,“!”表示发送。2)提取该角色在协作图中所涉及的所有接收消息,并将该消息重新命名为“?消息名”的模式;其中,“?”表示接收。3)将该角色的所有发送消息并上所有接收消息,得到消息集。步骤3,根据步骤1得到的依赖关系集,确定所述每个角色所对应的消息集中消息间的依赖关系;所述确定所述每个角色所对应的消息集中消息间的依赖关系具体为:根据消息关系表,确定每个角色对应消息集中相邻消息间的依赖关系,删除消息集中相邻消息间的冗余依赖关系。例如:角色A的消息间的依赖关系为:1>2、1>A1、A1>>2,则依赖关系1>2为冗余依赖关系,可以删除。因为1>2可根据传递性,由依赖关系1>A1和A1>>2所求出。步骤4,根据所述依赖关系,对每个角色进行Petri网编码,得到基于Petri网定义的参与者。所述步骤4包括:步骤4.1,将每个角色对应消息集中的每个消息编码为Petri网的变迁,依据消息类型,将单一消息、循环消息和选择消息分别编排为Petri网中的串行块、循环块和选择块,如图2所示,其中,(a)为单一消息的编码方式,(b)为循环消息(*)的编码方式,(c)为选择消息(?)的编码方式;步骤4.2,将每个角色所对应消息集中消息间的依赖关系,编码为Petri网中相应变迁间的串行关系;特别的,对于循环消息而言,它通过与它相连的唯一库所与它的前后变迁相连。若存在循环类型的消息与循环类型的消息相连,则在这两个循环消息之间增加一个没有执行语义的τ变迁,以保证消息间的依赖关系。步骤4.3,对前集为空的变迁添加一个开始库所,对后集为空的变迁添加一个结束库所;步骤4.4,在每个开始库所中添加1个托肯。本发明一种将协作图编排映射为Peer的装置,参见图3,包括:依赖关系提取模块,用于提取协作图中的消息,生成消息关系表,并对所述消息关系表中消息间的依赖关系进行标注,获得依赖关系集;消息提取模块,用于提取协作图中每个角色所对应的消息集;依赖关系确定模块,用于根据所述依赖关系集,确定所述每个角色所对应的消息集中消息间的依赖关系;Petri网编码模块,用于根据所述依赖关系,对每个角色进行Petri网编码,得到基于Petri网定义的参与者。其中,所述对所述消息关系表中消息间的依赖关系进行标注具体为:根据协作图中线程内部消息间的全序关系,将相邻消息间的全序关系在所述消息关系表中标注为直接依赖;根据协作图中线程间消息间的依赖关系,将消息间的依赖关系在所述消息关系表中标注为直接依赖;获得由所述全序关系和所述依赖关系的并集组成的依赖关系的传递闭包,排除其中的直接依赖关系,得到消息间的间接依赖关系,并在所述消息关系表中进行标注。所述每个角色所对应的消息集为该角色在协作图中所涉及的所有发送消息和所有接受消息的并集。所述确定所述每个角色所对应的消息集中消息间的依赖关系具体为:根据消息关系表,确定每个角色对应消息集中相邻消息间的依赖关系,删除消息集中相邻消息间的冗余依赖关系。所述对每个角色进行Petri网编码具体为:将每个角色对应消息集中的每个消息编码为Petri网的变迁,依据消息类型,将单一消息、循环消息和选择消息分别编排为Petri网中的串行块、循环块和选择块;将每个角色所对应消息集中消息间的依赖关系,编码为Petri网中相应变迁间的串行关系;若存在循环类型的消息与循环类型的消息相连,则在这两个循环消息之间增加一个没有执行语义的τ变迁,以保证消息间的依赖关系;对前集为空的变迁添加一个开始库所,对后集为空的变迁添加一个结束库所;在每个开始库所中添加1个托肯。本申请与现有的将协作图编排映射为基于自动机定义的参与者(现有技术一)或基于进程代数定义的参与者(现有技术二)的区别为:与现有技术一的区别表现在:1)形式化基础不同:现有技术一以自动机为形式化基础;而本申请以Petri网为形式化基础。2)映射方式不同:现有技术一先将协作图形式转换为会话协议,再将会话协议映射为参与者;而本申请是将协作图编排直接映射为基于Petri网定义的参与者。与现有技术二的区别表现在:1)形式化基础不同:现有技术二以进程代数为形式化基础,而本申请以Petri网为形式化基础。2)映射方式不同:现有技术二先将协作图形式转换为进程表达式,再将进程表达式映射为参与者;而本申请是将协作图编排直接映射为基于Petri网定义的参与者。本发明以Petri网为形式化基础,从角色出发,将基于协作图定义的编排映射为基于Petri网定义的Peer(参与者),以达到为编排的可实现性(realizability)分析提供分析技术的目的,将在编排的可实现性分析方面具有广阔的应用背景,对检测编排的可实现性分析尤为重要。如在说明书及权利要求当中使用了某些词汇来指称特定成分或方法。本领域技术人员应可理解,不同地区可能会用不同名词来称呼同一个成分。本说明书及权利要求并不以名称的差异来作为区分成分的方式。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。上述说明示出并描述了发明的若干优选实施例,但如前所述,应当理解发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离发明的精神和范围,则都应在发明所附权利要求的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1