一种业务过程模型至服务组成模型的自动模型转换方法

文档序号:10724545阅读:285来源:国知局
一种业务过程模型至服务组成模型的自动模型转换方法
【专利摘要】本发明针对CIM到PIM的自动转换问题,提出了一种基于形式化模型的业务过程模型至服务组成模型的自动模型转换方法。该转换方法,首先设计模型转换框架,在此基础上,依次进行BPMN至EPN模型转换和EPN模型至SCM模型转换。该方法实现优势在于利用形式化模型作为“桥”模型的模型转换方法即保证了业务过程模型的正确性,也保障了转换后服务组成模型的正确性,从而使得业务系统的工作流模型在不同抽象层次上保持良好的一致性。
【专利说明】
一种业务过程模型至服务组成模型的自动模型转换方法
技术领域
[0001]本发明涉及计算机软件开发技术领域,尤其涉及一种业务过程模型至服务组成模型的自动模型转换方法。
【背景技术】
[0002]随着分布式技术及网络技术的发展,软件开发所面临的挑战主要来自于业务系统自身需求的变化和新需求的融入增长。这种需求的变化使得业务系统与不同环境下的应用基础结构相互交织,这就要求业务系统更加灵活且可调整,以满足不同技术平台的要求。模型驱动开发MDD(Model Driven Development,MDD)以模型作为主要工件,通过模型转换来实现不同抽象层次模型的自动生成,这种模型自动生成技术进一步降低了软件分析与软件设计之间的耦合,使得应用系统与具体的实现技术平台相分离。因此,MDD成为当前软件工程领域的一个热点开发方法。
[0003]根据对象管理组织0MG(0bject Management Group,0MG)的定义和描述,模型驱动框架MDA(ModeI DrivenArchitecture ,MDA)由三个抽象层次组成:计算无关模型CIM(Computat1n Independent Model,CIM)描述系统被使用的情形,关注系统的环境和需求而不需要了解系统结构的细节;平台无关模型PIM(Platform Independent Model,PIM)描述软件体系结构而不需要了解其执行细节;平台相关模型PSM(Platform Specific Model,PSM)描述制定业务系统在特定的具体平台上的实现。这三个抽象层次采用模型驱动过程实现CM模型至代码的映射执行。因此,模型转换作为模型驱动开发中的核心连接(ΠΜ至PM,P頂至PSM,以及PSM至代码的过程和步骤。(ΠΜ抽象层次模型作为其他抽象层次模型的源泉,当CM模型确定后,如何将CIM模型转换至PIM模型是必须要考虑的问题。在模型转换技术中,强调目标模型由源模型利用相关工具自动产生,而目前关于模型自动转换的研究主要集中在P頂至PSM和PSM至代码上。
[0004]目前的理论研究和建模工具却很少支持CM到PIM的转换,这导致目前的MDA方法在业务需求与软件功能之间存在不一致性的现象。究其原因,是因为(ΠΜ描述的是业务需求和系统环境,通常由半形式化的建模方法描述,缺乏一个合理的结构,很难形式化地加以描述和精确定义。同时,由于CM模型的主观性且缺乏通用的标准,使得模型转换研究主要集中在P頂至PSM抽象层次上。
[0005]业务过程模型能够描述业务系统的活动过程,能够对业务系统的工作流程及其各操作步骤之间业务规则的抽象、概括描述,在当前复杂协作业务过程中占有重要的作用,在大多数研究中都被用于描述CIM层次模型。服务组成模型SCM(Service Composit1nModel,SCM)是PM抽象层次上描述业务系统的工作流细节的模型,对业务服务的实现起着至关重要的作用。
[0006]因此,本发明以业务过程模型代表CIM层次的工作流模型,以服务组成模型代表P頂层次的工作流模型,提出一个基于形式化模型的业务过程模型至服务组成模型的自动模型转换方法。本自动转换方法通过扩展Petri网模型(Extended Petri Nets,EPN),形式化业务过程模型,并以该形式化模型作为中间模型,通过制定形式化业务过程模型至PM抽象层次上服务组成模型的映射规则,并在Eclipse建模框架下应用ATL语言描述模型转换规贝1J,从而实现了 CIM抽象层次上的业务过程模型自动转换为PIM抽象层次上的服务组成模型。
[0007]本自动模型转换方法的优势在于利用形式化模型作为“桥”模型的模型转换方法即保证了业务过程模型的正确性,也保障了转换后服务组成模型的正确性,从而使得业务系统的工作流模型在不同抽象层次上保持良好的一致性。

【发明内容】

[0008]本发明的目的是为了解决现有技术中存在的缺点,而提出的业务过程模型至服务组成模型的自动模型转换方法。
[0009]为了实现上述目的,本发明采用了如下技术方案:
[0010]—种业务过程模型至服务组成模型的自动模型转换方法,包括如下主要步骤:
[0011 ] I)建立业务过程模型到服务组成模型的模型转换框架;该模型转换框架分为两个部分的转换:业务过程模型至扩展Petri网模型的转换和扩展Petri网模型至服务组成模型的转换;
[0012]2)实现BPMN模型至EPN模型的转换;
[0013]3)实现EPN模型至SCM模型的转换。
[0014]优选地,所述的BPMN至SCM模型转换的方法步骤如下:
[0015]第一步:确定各业务活动之间的执行顺序,并明确各业务参与者之间和业务协作者之间的业务交互细节,完成业务过程建模;
[0016]第二步:应用扩展的Petri网模型EPN对业务过程模型进行形式化,得到BPMN形式化Petri网模型;
[0017]第三步:所述应用Petri网所具有的验证功能,分析和验证该形式化模型的正确性;
[0018]第四步:如果形式化模型验证结果存在错误,表明BPMN模型是有误的,因此需要执行第5步,当验证结果是正确的,执行第6步;
[0019]第五步:对当前的BPMN模型进行细化和完善活动,然后返回第三步执行;
[0020]第六步:利用ATL模型转换语言描述EPN模型至SCM模型的之间的转换规则,将正确的BPMN形式化模型转换为SCM模型。
[0021 ] 优选地,所述的BPMN至EPN模型转换的方法步骤如下:
[0022]第一步:利用Activiti BPMN 2.0插件完善所述BPMN模型;
[0023]第二步:所述的BPMN元模型格式将所述BPMN模型转换为XMI类型的文件;
[0024]第三步:所述XMI文件被BPMN2EPN转换工具读取。
[0025]优选地,所述的第二步的方法步骤如下:
[0026]I )XMI文件被解析器Parser分解为单个独立的BPMN对象;
[0027]2)根据所制定的BPMN至EPN映射规则,设计ATL语言格式的转换程序
[0028]3)ATL转换程序将单个独立的BPMN对象转换为扩展的条件事件网(EPN)模块文件;
[0029]4)利用组合器将这些转换后的单个独立的EPN文件组合为一个完整的EPN文件,P匪L文件作为一个标准的,采用XML交换格式的描述Petri网的语言,其ePNK插件能够在Ecl ipse建模平台上读取PNML文件。
[0030]优选地,所述的EPN模型至SCM模型转的方法步骤如下:
[0031]第一步:分析EPN模型元素与SCM模型元素的特征,设计EPN模型元素至SCM模型元素的映射关系;
[0032]第二步:设计EPN模型元素至SCM模型元素的映射规则,设计映射算法;
[0033]第三步:应用ATL语言实现映射算法,配置映射程序的源模型和目标模型;
[0034]第四步:应用ATL引擎执行映射程序,从而得到初始的服务组成模型。
[0035]本发明与现有技术相比较,具有的优点在于:
[0036]1.本自动模型转换方法的优势在于利用形式化模型作为“桥”模型的模型转换方法既保证了业务过程模型的正确性,也保障了转换后服务组成模型的正确性。
[0037]2.本方法聚焦于计算无关模型层次(业务视图)和平台无关模型层次(信息视图),提出利用形式化模型作为“桥”模型,实现业务视图上的业务过程模型至信息视图上的服务组成模型的自动转换。
[0038]3.本方法形式化映射插件BPMN2ExtendPetrinets实现了业务过程模型形式化的自动执行,对于业务分析员来说,不需要掌握深厚的数学知识就可以验证业务过程模型的正确性,从而快速、高效的实现业务建模。
[0039]4.本方法以形式化EPN模型为“桥”模型的(ΠΜ层次业务过程模型至PM层次服务组成模型的自动转换方法一方面保障了PM层次工作流模型的正确性;另一方面保障了(ΠΜ层次上的业务过程模型与PM层次上的服务组成模型之间的语义一致性。
[0040]5.本方法业务过程模型至服务组成模型的自动模型转换方法减少了业务视图与信息视图之间的“gap”,使得业务分析员能够自动、高效、正确的设计信息视图模型,有利于提高软件开发的效率,降低软件开发的成本,减少手动转换所带来的模型二义性问题。
【附图说明】
[0041 ]图1为本发明的BPMN模型至SCM模型的形式化模型转换框架;
[0042 ]图2为本发明BPMN模型至SCM模型的转换过程;
[0043 ]图3为本发明EPN元模型定义和EPN模型编辑器;
[0044]图4为本发明BPMN模型形式化为EPN模型的过程;
[0045]图5为本发明BPMN至EPN映射执行的部分视图和task2behav1urtransit1n模型转换ATL代码摘录;
[0046]图6为本发明EPN模型映射至SCM模型的部分视图和innerplace2controlflow映射的ATL代码摘录。
【具体实施方式】
[0047]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0048]参照图1-6,本实施例设计EPN模型作为“桥”模型,连接C頂层次上的工作流模型和PM层次上的工作流模型。其使用EPN模型作为“桥”模型主要基于以下两点:(I)虽然当前有许多关于CM至PM模型转换的研究,但这些研究大多都是半自动化的方式执行,且缺少标准化建模工具;(2)用形式化转换方法有利于保证CM模型的完整性和正确性,同时也能保持(ΠΜ模型和P頂模型在语义上的一致性。
[0049]该模型转换采用自动转换方式实现,因此需要详细分析EPN模型元素的特点和SCM模型元素的特点,从而制定EPN模型与SCM模型之间的映射规则。图1显示了以EPN模型为“桥”模型的(ΠΜ至P頂形式化模型自动转换框架。该转换框架涉及BPMN2EXtendPetrinetS插件和ExtendPetrinets2SCM插件的开发。其中,BPMN2ExtendPetrinets插件的功能是执行BPMN模型形式化;而ExtendPetrinets2SCM插件的功能是将形式化后的BPMN模型转换为SCM模型。
[0050]本实施例所述的模型自动转换过程是将业务视图的业务过程模型自动转换为系统视图的服务组成模型,其模型自动转换过程见图2所示。该方法的关键在于利用EPN模型作为中间模型,实现CIM工作流模型至PIM工作流模型的自动转换。所以,基于形式化模型自动转换的提出主要基于以下几点考虑:
[0051](I)与其他典型的转换规则和转换执行方法相比,基于形式化的转换方法更简练。
[0052](2)该转换方法支持高层次业务过程模型至代码自动生成。
[0053](3)该转换方法使得MDD过程中每一个层次模型不会产生二义性问题。
[0054]因此,本发明的描述是以BPMN模型代表的CM模型自动转换至服务组成模型代表的PIM行为模型。其自动转换的详细过程为:
[0055](I)应用BPMN模型分析实现一个业务目标的业务过程,确定各业务活动之间的执行顺序,并明确各业务参与者之间和业务协作者之间的业务交互细节;
[0056](2)应用扩展的Petri网模型EPN对业务过程模型进行形式化,得到BPMN形式化Petri网模型;
[0057](3)应用Petri网所具有的验证功能,分析和验证该形式化模型的正确性;
[0058](4)如果形式化模型验证结果存在错误,表明BPMN模型是有误的,因此需要执行第5步,当验证结果是正确的,执行第6步;
[0059](5)对当前的BPMN模型进行细化和完善活动,然后返回第2步执行;
[0060](6)利用ATL模型转换语言描述EPN模型至SCM模型的之间的转换规则,将正确的BPMN形式化模型转换为SCM模型;
[0061](7)由于PIM模型应该更为详细的描述工作流的细节,因此转换而来的初始SCM模型中所有的服务活动需要被进一步细化和完善为原子活动。
[0062]本实施例采用扩展的Petri网模型形式化BPMN模型的过程就是将BPMN模型映射至Petri网模型的过程。因此,在本实施例中设计了BPMN2EPN插件实现模型的自动形式化执行。由于本实施例对Petri网模型进行了扩展,因此需要利用EMF插件重新定义Petri网模型的元模型。EPN模型的元模型采用UML类图来表示,然后该类图形式的元模型利用EMF工具生成能被ATL识别的.ecore和.genmodel文件。图3所示的EPN元模型定义及EPN树状编辑器都是采用EMF插件实现的,而模型的形式化则采用ATL代码实现。
[0063]本实施例所述的BPMN模型形式化执行过程如图4所示。其详细过程为:首先是利用Activiti BPMN 2.0插件完善BPMN模型,然后根据BPMN元模型格式将该模型转换为XMI类型的文件,该XMI文件被BPMN2EPN转换工具读取。而BPMN2EPN转换工具的执行过程包括以下4个步骤:1)XMI文件被解析器(Parser)分解为单个独立的BPMN对象;2)根据所制定的BPMN至EPN映射规则,设计ATL语言格式的转换程序;3 )ATL转换程序将单个独立的BPMN对象转换为扩展的条件事件网(EPN)模块文件;4)利用组合器将这些转换后的单个独立的EPN文件组合为一个完整的EPN文件。P匪L文件作为一个标准的,采用XML交换格式的描述Petri网的语言,其ePNK(2012版本)插件能够在Eclipse建模平台上读取PNML文件。因此本发明利用P匪L语言描述EPN模型,利用ePNK插件来处理EPN模型。
[0064]在BPMN至EPN的模型映射设计中,一个带有前置条件的静态事件一旦被标记为标符(token)就意味着业务过程的开始,其映射算法见Algorithml所示。根据流的特征,本文设计一个序列流被映射为一个带有输入弧和输出弧的inner place结点,而消息流被映射为一个带有输入弧和输出弧的outer place结点,其映射算法件见Algorithm2所示。而网关结点中Inclusive网关代表着决策分支,因此每个分支条件都被映射为一个静态事件,而Exc Iusi ve合并网关有多个输入分支,因此每个输入分支分别被映射为一个静态事件,其映射算法见Alg0rithm3所示。子过程被映射为一个子EPN网模型代表一个独立的业务过程模型。本发明为了避免执行结果的二义性,子过程被严格的限制为只有一个开始事件和一个结束事件。同样,业务过程的回调活动也被看作是一个子过程,通过前置条件的设置开始子过程活动,然后设计一个回调事件用于接收子过程的执行结果,执行结果被定义为子过程的后置条件。另外,本发明定义了消息流作为BPMN模型中两个业务过程之间协作的交互,因此消息流被映射为EPN模型中的外部条件。其中,外部条件的输入弧连接发送消息的动态行为事件,输出弧连接接收消息的动态行为事件。
[0065]为了显示该模型的形式化转换执行过程,图5显示了BPMN模型至EPN模型的部分映射执行细节。BPMN2ExtendPetrinets转换插件定义了 BPMN模型中的task元素至EPN模型中的behav1ur transit1n元素和sequence flow元素至inner place元素的车专换(35行和44行);在Task2Behav1urTransit1n转换操作中,task元素的id和name值被直接转换为behav1ur transit1n元素中的id和name属性值(40-41行);而在SequenceFl ow2 InnerP I ace转换操作中,sequence flow元素的id值被直接转换为innerplace元素的id值(49行),同时在EPN模型中还需要创建in弧和out弧(50-51行)。在创建in弧和out弧的过程中,需要设计弧连接的源结点和目标结点,如in弧的sourceRef (源结点)是sequence f low(55行),而in弧的targetRef (目标结点)是inner place(56行)。
[0066]结合SCM模型元素特点和EPN模型元素特点,定义了一组使用自然语言和ATL语言描述的EPN至SCM的映射规则。在模型映射的设计中,一个act1n结点表示为一个原子活动代表操作的执行,典型的表示为一个操作的调用,因此直接将EPN模型中的一个behav1urtransit1n结点映射为SCM模型中的act1n结点,其模型映射算法见算法4所示。对于EPN模型中的si lent transit 1n结点,在映射设计中利用EPN模型中的si lent transit 1n描绘业务服务过程的开始、结束和行为路线三种情形,为了区分si lent transit1n的三种不同情形,连接si lent transi t 1n的输入弧和输出弧需要被重点的考虑。因此,如果一个silent transit1n结点的输入弧,连接的inner place结点带有token标志,且该innerP lace结点没有输入弧,则该si lent transit 1n结点代表业务服务的开始;如果一个silent transit1n结点的输出弧,其连接的inner place结点没有输出弧,则该siIenttransit1n结点代表着服务的结束,其模型映射算法见算法5中的第一部分;除了这两种情形外,其余的silent transit1n结点都表示业务服务流的行为路线。
[0067]对于SCM模型中的控制结点元素,decis1n结点可以通过标记不同的条件来设置多个activity结点输出;fork结点的所有activity结点输出都应该被执行,意味着ac t i V i ty结点进入一个或多个明确的执行结点区域;一个merge结点有两个及以上的输入流和一个输出流,输入流上连接的是不同a c t i V i t y结点,表示将不同区域的执行操作合并为一个执行结果;而j ο in结点则与merge结点不同,j o in结点没有条件制约,其输入流连接的是几个不同的inner place结点,表示将不同区域的执行结果合并。因此,针对SCM模型中这些控制结点元素的特点,fork结点和join结点的映射见算法5中的第二部分,而decis1n结点和merge结点的映射则由算法5中的第三部分所示。
[0068]在ExtendPetrinets2SCM转换插件的开发中设计了epn2scm.atl程序实现模型自动转换。图6显示了EPN模型至SCM模型转换的部分视图,以behav1ur transit1n结点至Act 1n结点的映射为例,其behav1ur transit 1n元素的id和name属性值,被直接映射为SCM模型中的act1n元素的id和name属性值(I 10-111行)。而inner place结点的转换,首先设-H个条件(输入弧和输出弧是否为空)去判断inner place如何映射为control flow(117行),该条件用于区分Petri网模型的开始inner place和结束inner place。然后,将这两种不同条件的inner place元素的id和name属性值直接映射为control flow的id和name属性值(121-122 行)。此外,ExtendPe trine ts2SCM 插件中设计了 he Iper 操作(如get Source? ,getTargetO)获取输入弧的源结点信息和输出弧的目标结点信息。helpers执行后的返回值将分别映射为contro I f I ow元素的源结点和目标结点。同时,这些he I per操作也用于确定SCM模型中结点与结点之间的流连接关系。
[0069]本实施例提供了在Eclipse平台上的业务过程模型至服务组成模型的自动模型转换方法,该方法应用模型驱动开发技术,利用EMF插件定义BPMN模型、EPN模型和SCM模型的元模型结构,并利用元模型转换技术定义了BPMN模型至EPN模型、以及EPN模型至SCM模型的模型转换规则。并应用ATL转换语言实现了模型自动转换插件的开发。本实施例以形式化模型作为中间模型实现业务过程模型至服务组成模型的形式化模型转换,有利于保持业务过程模型和服务组成模型的正确性和一致性,实现计算无关视图模型至平台无关视图模型的自动转换,减少了业务视图与系统视图之间的“gap”。因此,本发明提供的模型自动转换方法,可以广泛的适用于业务系统的系统视图工作流建模。
[0070]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种业务过程模型至服务组成模型的自动模型转换方法,其特征在于:包括如下主要步骤: 1)建立业务过程模型到服务组成模型的模型转换框架; 该模型转换框架分为两个部分的转换:业务过程模型至扩展Petri网模型的转换和扩展Petri网模型至服务组成模型的转换; 2)实现BPMN模型至EPN模型的转换; 3)实现EPN模型至SCM模型的转换。2.根据权利要求1所述的业务过程模型至服务组成模型的自动模型转换方法,其特征在于:所述的BPMN至SCM模型转换的方法步骤如下: 第一步:确定各业务活动之间的执行顺序,并明确各业务参与者之间和业务协作者之间的业务交互细节,完成业务过程建模; 第二步:应用扩展的Petri网模型EPN对业务过程模型进行形式化,得到BPMN形式化Petri网模型; 第三步:所述应用Petr i网所具有的验证功能,分析和验证该形式化模型的正确性;第四步:如果形式化模型验证结果存在错误,表明BPMN模型是有误的,因此需要执行第5步,当验证结果是正确的,执行第6步; 第五步:对当前的BPMN模型进行细化和完善活动,然后返回第三步执行; 第六步:利用ATL模型转换语言描述EPN模型至SCM模型的之间的转换规则,将正确的BPMN形式化模型转换为SCM模型。3.根据权利要求1所述的业务过程模型至服务组成模型的自动模型转换方法,其特征在于:所述的BPMN至EPN模型转换的方法步骤如下: 第一步:利用Activiti BPMN 2.0插件完善所述BPMN模型; 第二步:所述的BPMN元模型格式将所述BPMN模型转换为XMI类型的文件; 第三步:所述XMI文件被BPMN2EPN转换工具读取。4.根据权利要求3所述的业务过程模型至服务组成模型的自动模型转换方法,其特征在于:所述的第二步的方法步骤如下: I )XMI文件被解析器Parser分解为单个独立的BPMN对象; 2)根据所制定的BPMN至EPN映射规则,设计ATL语言格式的转换程序; 3)ATL转换程序将单个独立的BPMN对象转换为扩展的条件事件网(EPN)模块文件; 4)利用组合器将这些转换后的单个独立的EPN文件组合为一个完整的EPN文件,P匪L文件作为一个标准的,采用XML交换格式的描述Petri网的语言,其ePNK插件能够在Eclipse建模平台上读取PNML文件。5.根据权利要求1所述的业务过程模型至服务组成模型的自动模型转换方法,其特征在于:所述的EPN模型至SCM模型转的方法步骤如下: 第一步:分析EPN模型元素与SCM模型元素的特征,设计EPN模型元素至SCM模型元素的映射关系; 第二步:设计EPN模型元素至SCM模型元素的映射规则,设计映射算法; 第三步:应用ATL语言实现映射算法,配置映射程序的源模型和目标模型; 第四步:应用ATL引擎执行映射程序,从而得到初始的服务组成模型。
【文档编号】G06F9/44GK106095404SQ201610370492
【公开日】2016年11月9日
【申请日】2016年5月29日
【发明人】李宗花, 周晓峰, 叶正伟
【申请人】淮阴师范学院, 李宗花
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1