亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于元模型的工作流流程定義轉(zhuǎn)換的方法及系統(tǒng)的制作方法

文檔序號(hào):6611022閱讀:154來源:國(guó)知局
專利名稱:一種基于元模型的工作流流程定義轉(zhuǎn)換的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及工作流流程定義轉(zhuǎn)換技術(shù),尤指 一種基于元模型的對(duì)遵
循XML語法表示的工作流流程定義轉(zhuǎn)換的方法及系統(tǒng)。
背景技術(shù)
工作流技術(shù)是一項(xiàng)快速發(fā)展的技術(shù),并在各個(gè)行業(yè)得到廣泛應(yīng)用, 其主要特征是業(yè)務(wù)流程的自動(dòng)化。工作流是一類能夠完全或者部分自動(dòng) 執(zhí)行的經(jīng)營(yíng)過程,它根據(jù)一系列的過程規(guī)則、文檔、信息或任務(wù)在不同 4丸行者之間進(jìn)行傳遞和執(zhí)行。
關(guān)于工作流過程定義,已有很多流行的規(guī)范,常用的有由BEA、 《設(shè)4欠和IBM耳關(guān)合4,出的BPEL ( Business Process Execution Language For Web Services ),它提供了 一種XML注釋和語義,用于指定基于Web服 務(wù)的業(yè)務(wù)流程行為;由工作流管理聯(lián)盟(Workflow Management Coalition, 簡(jiǎn)稱WfMC )提出的XPDL ( XML Process Definition Language ),是一種 廣泛使用的國(guó)際性工作流過程定義標(biāo)準(zhǔn),用于描述工作流參考模型中的 才妄口 一 4卩分;由商業(yè)過禾呈管J里i十戈'J ( Business Process Management Initiative , 簡(jiǎn)稱BPMI )才是出的 BPML(Business Process Modeling Language),它是一個(gè)XML才莫式的過程才莫型定義語言,它為表達(dá)由事務(wù) 處理、數(shù)據(jù)管理、并行操作、異常處理和操作語義等一系列企業(yè)活動(dòng)組 成的業(yè)務(wù)過程定義形式模型;還有BPML(Business Process Model Language) 、 WSDL(Web Services Description Language)等其他語言。但是, 現(xiàn)在的工作流系統(tǒng)幾乎彼此都不兼容,不同的系統(tǒng)之間缺乏互操作的接 口 。近年來為了解決互操作問題,發(fā)布了一些過程定義語言標(biāo)準(zhǔn),如WfMC 發(fā)布的WPDL ( Workflow Process Definition Language )和XPDL,美國(guó)國(guó) 家標(biāo)準(zhǔn)4支術(shù)石開究所(National Institute of Standards and Technology,簡(jiǎn)稱 NIST)提出的過程定義語言PSL (Process Specification Language)以及 對(duì)象管理組織(Obj ect Management Group ,簡(jiǎn)稱OMG )提出的統(tǒng) 一 建模 語言(Unified Modeling Language,簡(jiǎn)稱UML)等,但這些語言都沒有提 供設(shè)計(jì)階段互操作問題的解決方案。
現(xiàn)在已經(jīng)有一些用于流程轉(zhuǎn)換的工具。如清華的CIMFlow工作流是 在XPDL基礎(chǔ)上進(jìn)行改進(jìn),它自帶一個(gè)CIMFlow與XPDL之間基于元模 型的轉(zhuǎn)換工具。由于這兩種語言比較相似,所以轉(zhuǎn)換時(shí)很容易找到對(duì)應(yīng) 節(jié)點(diǎn),并增刪相應(yīng)節(jié)點(diǎn)達(dá)到目標(biāo)轉(zhuǎn)換。IBM^^司的ETTK實(shí)現(xiàn)了由UML 到BPEL和WSDL的轉(zhuǎn)換。ETTK能夠獲得用UML工具(例如IBM Rational的XDE或Rose )開發(fā)的流程模型,并且能將它們轉(zhuǎn)換為正確的 BPEL和WSDL文檔來實(shí)現(xiàn)該流程。但是這些工具僅僅4是供兩種語言的 轉(zhuǎn)換,為每?jī)煞N語言開發(fā)一個(gè)工具,需要大量的人力物力。

發(fā)明內(nèi)容
鑒于現(xiàn)有流程轉(zhuǎn)換工具的缺陷,本發(fā)明的目的是提出一種通用的基 于元模型及規(guī)則的針對(duì)符合XML規(guī)范的工作流流程定義之間的轉(zhuǎn)換方法 以及實(shí)現(xiàn)該方法的系統(tǒng)。該方法4是供了 乂人源工作流流禾呈定義到目標(biāo)工作 流流程定義的轉(zhuǎn)換步驟和算法,該系統(tǒng)實(shí)現(xiàn)了源工作流流程定義到相應(yīng) 目標(biāo)工作流流程定義的轉(zhuǎn)換。
為了實(shí)現(xiàn)上述目的,基于元模型的工作流流程定義轉(zhuǎn)換的方法包括5 個(gè)步驟
1) 將源工作流流程定義文件讀入內(nèi)存,將其轉(zhuǎn)化成基于XML語法 規(guī)則的源文檔內(nèi)存結(jié)構(gòu);
2) 將轉(zhuǎn)化后的基于XML語法規(guī)則的源文檔內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為基于元 模型的源內(nèi)存結(jié)構(gòu);
3) 根據(jù)預(yù)定義的工作流定義語言之間的轉(zhuǎn)換規(guī)則,將基于元模型的
源內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為基于元模型的目標(biāo)內(nèi)存結(jié)構(gòu);
4) 將基于元模型的目標(biāo)內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為基于XML語法規(guī)則的目標(biāo) 文檔內(nèi)存結(jié)構(gòu);
5) 將基于XML語法規(guī)則的目標(biāo)文檔內(nèi)存結(jié)構(gòu)轉(zhuǎn)化成目標(biāo)工作流流 程定義文件。
其中,源工作流流程定義文件只能是由符合XML語法規(guī)則的語言定 義的文件。
其中,步驟1 )的具體轉(zhuǎn)化過程是將源流程定義文件按照定義的關(guān)鍵 字提取節(jié)點(diǎn)信息,并根據(jù)節(jié)點(diǎn)的層次關(guān)系把源文件存儲(chǔ)成基于XML的帶 節(jié)點(diǎn)的有向樹形式的結(jié)構(gòu)。
其中,步驟2)的轉(zhuǎn)換過程是首先利用schema建立類的結(jié)構(gòu)圖, 由schema得到頂層節(jié)點(diǎn),然后從頂層節(jié)點(diǎn)遍歷有向樹形式的XML內(nèi)存 結(jié)構(gòu),并根據(jù)類的結(jié)構(gòu)圖建立類的實(shí)例,轉(zhuǎn)換成元模型形式的結(jié)構(gòu)。
其中,步驟3)中,轉(zhuǎn)換規(guī)則為判斷語義形式,即若輸入源節(jié)點(diǎn)信息 A,則將輸出B,其中B表示應(yīng)執(zhí)行的動(dòng)作,該動(dòng)作包括建立對(duì)應(yīng)A的 目標(biāo)節(jié)點(diǎn)和更新其他目標(biāo)模型數(shù)據(jù)。
本發(fā)明的基于元模型的工作流流程定義轉(zhuǎn)換的系統(tǒng)包括XML文件讀 寫器、XML-元模型轉(zhuǎn)換器、規(guī)則管理模塊和轉(zhuǎn)換引擎四部分。其中,該 XML文件讀寫器將XML文件讀入內(nèi)存,保存為XML形式的內(nèi)存結(jié)構(gòu)或 將XML形式的內(nèi)存結(jié)構(gòu)寫出到XML文件;所述XML-元模型轉(zhuǎn)換器將 以XML形式的內(nèi)存結(jié)構(gòu)存儲(chǔ)的流程定義轉(zhuǎn)換為基于元模型的內(nèi)存結(jié)構(gòu)或 將基于元模型形式的內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為XML形式的內(nèi)存結(jié)構(gòu);該規(guī)則管理 模塊包括規(guī)則錄入模塊、規(guī)則維護(hù)模塊和規(guī)則查詢模塊,其中錄入模塊 和規(guī)則維護(hù)模塊將生成一個(gè)轉(zhuǎn)換規(guī)則庫,為轉(zhuǎn)換引擎提供轉(zhuǎn)換規(guī)則;該 轉(zhuǎn)換引擎是對(duì)源模型基于元模型的內(nèi)存結(jié)構(gòu)進(jìn)行遍歷,并在轉(zhuǎn)換規(guī)則的
指導(dǎo)下生成目標(biāo)模型的元模型。
本發(fā)明的技術(shù)效果是,為基于XML規(guī)范的流程定義語言定義的工作
流模型之間提供了 一種通用的相互轉(zhuǎn)換的方法,有效地彌補(bǔ)了現(xiàn)有工作 流模型轉(zhuǎn)換工具只能完成特定的兩種模型定向轉(zhuǎn)換的缺點(diǎn),減少了重復(fù) 開發(fā)轉(zhuǎn)換工具所帶來的時(shí)間和成本支出。


圖1為工作流模型之間轉(zhuǎn)換系統(tǒng)的架構(gòu)示意圖; 圖2為XML文件讀寫器模塊流程圖。
具體實(shí)施例方式
為使本發(fā)明的特征及優(yōu)點(diǎn)得到更清楚的了解,以下結(jié)合附圖,作詳 細(xì)說明如下如圖1所示,描述了本發(fā)明的模型轉(zhuǎn)換系統(tǒng)的架構(gòu),其中 箭頭方向表示實(shí)現(xiàn)轉(zhuǎn)換方法的流程。當(dāng)有源模型文件輸入到轉(zhuǎn)換系統(tǒng)時(shí), 于本實(shí)施例中的具體轉(zhuǎn)換步驟是
1 ) XML文件讀寫器將源模型文件讀入內(nèi)存,將其轉(zhuǎn)化成基于XML 語法規(guī)則的源文檔內(nèi)存結(jié)構(gòu),即源模型文件的xml形式;
2 )XML-元模型轉(zhuǎn)換器將步驟1得到的基于XML的內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為 基于元模型的內(nèi)存結(jié)構(gòu),即源模型文件的元模型形式;
3) 轉(zhuǎn)換引擎將步驟2得到的基于元模型的內(nèi)存結(jié)構(gòu)根據(jù)轉(zhuǎn)換規(guī)則庫 中預(yù)定義的規(guī)則,轉(zhuǎn)換為相應(yīng)的基于元模型目標(biāo)模型的內(nèi)存結(jié)構(gòu),即目 標(biāo)模型文件的元模型形式;
4) XML-元模型轉(zhuǎn)換器將步驟3得到的目標(biāo)模型的元模型內(nèi)存結(jié)構(gòu) 轉(zhuǎn)換為基于XML的目標(biāo)內(nèi)存結(jié)構(gòu),即目標(biāo)模型文件的xml形式;
5 ) XML文件讀寫器將4得到的基于XML的目標(biāo)內(nèi)存寫成相應(yīng)的目 標(biāo)模型文件。
其中,步驟1如圖2所示,檢查源模型文件是否符合XML語法規(guī)范,
如果不符合,返回處理失敗消息,如果符合,XML文件讀寫器將從源模
型文件中提取節(jié)點(diǎn)信息,并根據(jù)節(jié)點(diǎn)的層次關(guān)系把源文件存儲(chǔ)成基于
XML的帶節(jié)點(diǎn)的有向樹形式的結(jié)構(gòu)。
其中,步驟2用于將XML形式的流程定義以元模型的形式保存起來, 這需要源元模型的schema文檔。每個(gè)流程定義語言都有一份schema文 檔來定義XML文檔的合法組件群。Schema文檔里定義了可以出現(xiàn)在 XML文檔里的元素、可以出現(xiàn)在文檔里的屬性、哪些元素是子元素、子 元素的順序、子元素的數(shù)量、 一個(gè)元素是否能包含文本或應(yīng)該是空、元 素和屬性的數(shù)據(jù)類型、元素和屬性的默認(rèn)值和固定值等。根據(jù)schema按 照以下原則可以生成模型節(jié)點(diǎn)的類的結(jié)構(gòu)圖對(duì)于文檔中的元素、子元 素、屬性按照表1生成類的數(shù)據(jù)成員,再為每個(gè)數(shù)據(jù)成員生成存取方法。 這里的子元素是相對(duì)概念,在建立子元素對(duì)應(yīng)的類時(shí),子元素被認(rèn)為是 元素。
編號(hào)文檔數(shù)據(jù)類型生成類的成員
1元素類
2單個(gè)同類型子元素類的引用
3多個(gè)同類型子元素類的引用的數(shù)組
4屬性String型變量
表1 XML文檔元素與基于元模型的類成員的對(duì)應(yīng)關(guān)系 然后,再將XML形式的流程定義文件按照上述類的結(jié)構(gòu)圖生成類的 實(shí)現(xiàn),生成算法為對(duì)XML形式的內(nèi)存表示進(jìn)行深度優(yōu)先遍歷,對(duì)遍歷 路徑中的每個(gè)元素或子元素按上一步得到的類的結(jié)構(gòu)圖生成類的實(shí)例, 以后就可以通過這些類的實(shí)現(xiàn)來獲取源流程定義文件中的數(shù)據(jù)。
其中,步驟3的轉(zhuǎn)換規(guī)則庫由規(guī)則管理模塊生成。規(guī)則管理模塊完 成對(duì)規(guī)則的錄入和維護(hù)以生成一個(gè)轉(zhuǎn)換規(guī)則庫,為轉(zhuǎn)換引擎提供轉(zhuǎn)換規(guī) 則。轉(zhuǎn)換規(guī)則庫中的規(guī)則用于為工作流流程定義語言元模型之間建立映
射關(guān)系,為每?jī)煞N流程定義語言編寫規(guī)則,比如XPDL到BPEL的規(guī)則、 BPEL到XPDL的規(guī)則等。轉(zhuǎn)換規(guī)則需要描述源元模型和目標(biāo)元模型的節(jié) 點(diǎn)之間的對(duì)應(yīng)關(guān)系,及目標(biāo)模型中必需而源模型不包含的信息的填充辦 法。所以,本發(fā)明的規(guī)則形式為判斷語義。為了以正確的順序生成目標(biāo) 模型,每條規(guī)則都有優(yōu)先級(jí)。下面舉例說明規(guī)則的格式 rule "namc" "saliance " when
"source—node " then
"action "
end
其中,saliance為優(yōu)先級(jí),是一個(gè)數(shù)字,值大的優(yōu)先;source—node 為源模型里的節(jié)點(diǎn);action為執(zhí)行的動(dòng)作。 一般情況下,action為建立對(duì) 應(yīng)source—node的目標(biāo)節(jié)點(diǎn),也可以是更新其他目標(biāo)模型數(shù)據(jù),比如目標(biāo) 模型必需而源模型不包含的信息。轉(zhuǎn)換規(guī)則也可以有其他的格式。
其中,步驟3由轉(zhuǎn)換引擎對(duì)源模型在元模型下的內(nèi)存表示進(jìn)行遍歷, 并在規(guī)則的指導(dǎo)下生成目標(biāo)模型。主要算法為
1. 讀入頂層模型節(jié)點(diǎn);
2. 在規(guī)則引擎里查找適用該節(jié)點(diǎn)的規(guī)則,返回應(yīng)執(zhí)行的動(dòng)作;
3. 根據(jù)返回,將對(duì)應(yīng)節(jié)點(diǎn)寫入目標(biāo)模型,或同時(shí)更新其它目標(biāo)模型數(shù)
據(jù);
4. 如有下級(jí)節(jié)點(diǎn),以該節(jié)點(diǎn)調(diào)用2,否則到5;
5. 如有尚未處理的同層次同上級(jí)節(jié)點(diǎn)的節(jié)點(diǎn)(頂層節(jié)點(diǎn)認(rèn)為是同上 級(jí)),以該節(jié)點(diǎn)調(diào)用2,否則到6;
6. 如有上級(jí)節(jié)點(diǎn)則返回上級(jí)節(jié)點(diǎn),并到5,否則算法結(jié)束。
其中,步驟4用于將以元模型形式存儲(chǔ)的流程定義轉(zhuǎn)換為XML形式 的內(nèi)存結(jié)構(gòu),需要借助schema文檔得到頂層節(jié)點(diǎn),并設(shè)置object類型的 堆棧stackClass,將所有頂層節(jié)點(diǎn)入棧,然后執(zhí)行以下算法
1、 將當(dāng)前類的實(shí)例生成元素;
2、 對(duì)于當(dāng)前類的String型變量,變量名生成屬性名,變量值為屬性
值;
3、 如有類的引用或引用數(shù)組,則由后向前將引用及引用數(shù)組里的引 用入棧;
4、 如棧為空,則返回,如棧不為空則出棧,并將當(dāng)前出棧元素作為 當(dāng)前類跳轉(zhuǎn)至1。
但是本發(fā)明的具體實(shí)現(xiàn)形式并不局限于此,對(duì)于本技術(shù)領(lǐng)域的 一般技術(shù) 人員來說,在不背離本發(fā)明所述方法的精神和權(quán)利要求范圍的情況下對(duì) 它進(jìn)行的各種顯而易見的改變都在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于元模型的工作流流程定義轉(zhuǎn)換的方法,其特征在于其包括以下步驟1)將源工作流流程定義文件讀入內(nèi)存,將其轉(zhuǎn)化成基于XML語法規(guī)則的源文檔內(nèi)存結(jié)構(gòu);2)將轉(zhuǎn)化后的基于XML語法規(guī)則的源文檔內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為基于元模型的源內(nèi)存結(jié)構(gòu);3)根據(jù)預(yù)定義的工作流定義語言之間的轉(zhuǎn)換規(guī)則,將基于元模型的源內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為基于元模型的目標(biāo)內(nèi)存結(jié)構(gòu);4)將基于元模型的目標(biāo)內(nèi)存結(jié)構(gòu)轉(zhuǎn)換為基于XML語法規(guī)則的目標(biāo)文檔內(nèi)存結(jié)構(gòu);5)將基于XML語法規(guī)則的目標(biāo)文檔內(nèi)存結(jié)構(gòu)轉(zhuǎn)化成目標(biāo)工作流流程定義文件。
2. 如權(quán)利要求1所述的方法,其特征在于在所述步驟l)中,源工 作流流程定義文件只能是由符合XML語法規(guī)則的語言定義的文件。
3. 如權(quán)利要求1所述的方法,其特征在于所述的步驟1 )的具體轉(zhuǎn) 化過程是將源流程定義文件按照定義的關(guān)鍵字提取節(jié)點(diǎn)信息,并根據(jù)節(jié) 點(diǎn)的層次關(guān)系把源文件存儲(chǔ)成基于XML的帶節(jié)點(diǎn)的有向樹形式的結(jié)構(gòu)。
4. 如權(quán)利要求1所述的方法,其特征在于所述的步驟2)的轉(zhuǎn)換過 程是首先利用schema建立類的結(jié)構(gòu)圖,由schema得到頂層節(jié)點(diǎn),然 后從頂層節(jié)點(diǎn)遍歷有向樹形式的XML內(nèi)存結(jié)構(gòu),并#4居類的結(jié)構(gòu)圖建立 類的實(shí)例,轉(zhuǎn)換成元模型形式的結(jié)構(gòu)。
5. 如權(quán)利要求1所述的方法,其特征在于在所述步驟3)中,轉(zhuǎn)換 規(guī)則為判斷語義形式,即若輸入源節(jié)點(diǎn)信息A,則將輸出B,其中B表 示應(yīng)執(zhí)行的動(dòng)作,該動(dòng)作包括建立對(duì)應(yīng)A的目標(biāo)節(jié)點(diǎn)和更新其他目標(biāo)模 型數(shù)據(jù)。
6.—種基于元模型的工作流流程定義轉(zhuǎn)換的系統(tǒng),其特征在于所述 的應(yīng)用系統(tǒng)包4舌以下部分XML文件讀寫器將XML文件讀入內(nèi)存,保存為XML形式的內(nèi)存 結(jié)構(gòu)或?qū)ML形式的內(nèi)存結(jié)構(gòu)寫出到XML文件;XML-元模型轉(zhuǎn)換器將以XML形式的內(nèi)存結(jié)構(gòu)存儲(chǔ)的流程定義轉(zhuǎn) 換為基于元模型的內(nèi)存結(jié)構(gòu)或?qū)⒒谠P托问降膬?nèi)存結(jié)構(gòu)轉(zhuǎn)換為XML 形式的內(nèi)存結(jié)構(gòu);規(guī)則管理模塊對(duì)轉(zhuǎn)換規(guī)則進(jìn)行錄入、維護(hù)和向轉(zhuǎn)換引擎提供轉(zhuǎn)換 規(guī)則;轉(zhuǎn)換引擎轉(zhuǎn)換引擎對(duì)源模型基于元模型的內(nèi)存結(jié)構(gòu)進(jìn)行遍歷,并 在轉(zhuǎn)換規(guī)則的指導(dǎo)下生成目標(biāo)模型。
全文摘要
本發(fā)明公開了一種基于元模型的對(duì)符合XML規(guī)范的工作流流程定義進(jìn)行相互轉(zhuǎn)換的方法,本發(fā)明還涉及一種實(shí)現(xiàn)該方法的系統(tǒng),本發(fā)明的系統(tǒng)由規(guī)則管理模塊、轉(zhuǎn)換引擎、XML讀寫器和XML-元模型轉(zhuǎn)換器四部分組成,通過對(duì)XML體現(xiàn)的元模型間建立映射關(guān)系來實(shí)現(xiàn)工作流模型的轉(zhuǎn)換。本方法具有通用性,解決了現(xiàn)有的用于流程轉(zhuǎn)換的工具僅僅能保證兩種流程定義語言的轉(zhuǎn)換問題,減少了重復(fù)開發(fā)轉(zhuǎn)換工具而帶來的時(shí)間和成本支出。
文檔編號(hào)G06F17/30GK101354759SQ20071013013
公開日2009年1月28日 申請(qǐng)日期2007年7月23日 優(yōu)先權(quán)日2007年7月23日
發(fā)明者蘭雨晴, 李紅娟, 林 楊, 郭樹行, 靜 高 申請(qǐng)人:蘭雨晴
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1