一種業務過程模型至服務組成模型的自動模型轉換方法
【專利摘要】本發明針對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日
【發明人】李宗花, 周曉峰, 葉正偉
【申請人】淮陰師范學院, 李宗花