專利名稱:松耦合流程的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在數(shù)據(jù)庫(kù)系統(tǒng)中,實(shí)現(xiàn)計(jì)算機(jī)流程的方法,尤其是涉及一種松耦合流程實(shí)現(xiàn)方法。
背景技術(shù):
傳統(tǒng)的基于過(guò)程模型的流程設(shè)計(jì)方法需要預(yù)先定制流程模板,形成固定的流程節(jié)點(diǎn)上下游關(guān)系,并通過(guò)簡(jiǎn)單的真假條件判斷,實(shí)現(xiàn)有限度的上下游關(guān)系變化。傳統(tǒng)的基于過(guò)程模型的流程設(shè)計(jì)方法存在以下問(wèn)題1.上下游節(jié)點(diǎn)之間存在強(qiáng)耦合關(guān)系,無(wú)法在流程中進(jìn)行動(dòng)態(tài)更改。傳統(tǒng)的基于過(guò)程模型的工作流程設(shè)計(jì)方法中要求預(yù)先定制流程模板,在流程模板中明確指定每個(gè)流程節(jié)點(diǎn)之間的上下游順序,工作流執(zhí)行過(guò)程中嚴(yán)格依據(jù)先后順序運(yùn)行,如果不完成上游節(jié)點(diǎn)任務(wù)就無(wú)法開(kāi)展后續(xù)流程節(jié)點(diǎn)上工作,更無(wú)法在流程運(yùn)行過(guò)程中動(dòng)態(tài)的添加和刪除流程節(jié)點(diǎn),或是改變其上下游關(guān)系,存在較大的局限性。2.簡(jiǎn)單的真假條件判斷無(wú)法有效表達(dá)節(jié)點(diǎn)間復(fù)雜的上下游依賴關(guān)系。傳統(tǒng)的基于過(guò)程模型的工作流程設(shè)計(jì)方法中通常使用一個(gè)或是多個(gè)流程變量的布爾表達(dá)式來(lái)實(shí)現(xiàn)流程節(jié)點(diǎn)的跳轉(zhuǎn)或是分支,但是這種方式難以有效支持流程回溯、流程循環(huán)等復(fù)雜模式,同時(shí)如果判斷條件過(guò)于復(fù)雜,則當(dāng)流程節(jié)點(diǎn)數(shù)量超過(guò)一定數(shù)量后,條件判斷布爾表達(dá)式會(huì)由于弓丨入過(guò)多變量而變得難以閱讀和理解。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本技術(shù)提供了一種全新的松耦合流程方法,實(shí)現(xiàn)流程模板的描述,為流程節(jié)點(diǎn)定義關(guān)聯(lián)物,將流程節(jié)點(diǎn)之間的上下游依賴關(guān)系轉(zhuǎn)換為關(guān)聯(lián)物之間的關(guān)聯(lián)關(guān)系,通過(guò)對(duì)關(guān)聯(lián)物狀態(tài)的追蹤自動(dòng)完成流程的動(dòng)態(tài)驅(qū)動(dòng),進(jìn)而實(shí)現(xiàn)流程節(jié)點(diǎn)之間的松耦合關(guān)聯(lián)。為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用如下的技術(shù)方案—種松耦合流程的實(shí)現(xiàn)的方法,其中包括如下步驟步驟1、對(duì)XML格式描述的流程定義文件進(jìn)行解析,導(dǎo)入到流程數(shù)據(jù)庫(kù)中;步驟2、從流程數(shù)據(jù)庫(kù)中提取信息,正確構(gòu)造流程信息內(nèi)存對(duì)象以供流程信息展示控件使用,并且維護(hù)和管理流程信息,將內(nèi)存對(duì)象中的修改保存到流程數(shù)據(jù)庫(kù)中;步驟3、使用給定的流程信息內(nèi)存對(duì)象,根據(jù)流程信息自動(dòng)繪制流程圖形并設(shè)置流程詳細(xì)信息的鏈接地址,在流程展示界面動(dòng)態(tài)展示流程節(jié)點(diǎn)關(guān)聯(lián)物詳情;步驟4、將流程數(shù)據(jù)庫(kù)中的相關(guān)信息導(dǎo)出成外部XML格式文件。通過(guò)本方法,實(shí)現(xiàn)流程模板的描述,為流程節(jié)點(diǎn)定義關(guān)聯(lián)物,將流程節(jié)點(diǎn)之間的上下游依賴關(guān)系轉(zhuǎn)換為關(guān)聯(lián)物之間的關(guān)聯(lián)關(guān)系,通過(guò)對(duì)關(guān)聯(lián)物狀態(tài)的追蹤自動(dòng)完成流程的動(dòng)態(tài)驅(qū)動(dòng),進(jìn)而實(shí)現(xiàn)流程節(jié)點(diǎn)之間的松耦合關(guān)聯(lián)。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。圖1是本發(fā)明實(shí)施例具體框架圖;圖2是實(shí)施例中流程數(shù)據(jù)庫(kù)的關(guān)系表;圖3是實(shí)施例中主要內(nèi)存結(jié)構(gòu)圖;圖4是實(shí)施例中流程展示界面框架圖。
具體實(shí)施例方式下面,本發(fā)明通過(guò)具體實(shí)施例來(lái)進(jìn)一步說(shuō)明本發(fā)明的實(shí)現(xiàn)方法。如圖1所示,本發(fā)明的實(shí)施例實(shí)現(xiàn)方法包括如下具體框架流程信息導(dǎo)入工具負(fù)責(zé)完成流程信息的導(dǎo)入導(dǎo)出功能。一方面支持對(duì)流程定義文件(XML格式描述)的解析,并導(dǎo)入到流程數(shù)據(jù)庫(kù)中;另一方面,還提供流程數(shù)據(jù)庫(kù)中相關(guān)信息導(dǎo)出成外部XML格式文件的功能;流程信息管理工具負(fù)責(zé)完成流程數(shù)據(jù)庫(kù)的管理任務(wù)。一方面支持從流程數(shù)據(jù)庫(kù)中提取信息,并正確構(gòu)造流程信息內(nèi)存對(duì)象,供流程信息展示控件使用;另一方面,還提供流程信息的維護(hù)和管理功能,將內(nèi)存對(duì)象中的修改保存到流程數(shù)據(jù)庫(kù)中;路程信息展示模塊負(fù)責(zé)完成流程信息內(nèi)存對(duì)象的可視化展示,使用給定的流程信息內(nèi)存對(duì)象,根據(jù)流程信息自動(dòng)繪制流程圖形并設(shè)置流程詳細(xì)信息的鏈接地址,動(dòng)態(tài)展示流程節(jié)點(diǎn)關(guān)聯(lián)物詳情;XML定義文件利用XML格式定義并描述一個(gè)具體的流程,準(zhǔn)確定義了流程的所有相關(guān)信息,包括流程節(jié)點(diǎn)、節(jié)點(diǎn)間關(guān)聯(lián)關(guān)系,以及節(jié)點(diǎn)相關(guān)的關(guān)聯(lián)物配置情況;流程數(shù)據(jù)庫(kù)采用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)所有流程實(shí)例的具體數(shù)據(jù),當(dāng)程序代碼需要訪問(wèn)流程信息時(shí),必須從流程數(shù)據(jù)庫(kù)中提取相關(guān)信息,并轉(zhuǎn)換為內(nèi)存對(duì)象方式,才能夠正常訪問(wèn);內(nèi)存對(duì)象在內(nèi)存中構(gòu)建一套對(duì)象體系結(jié)構(gòu),用來(lái)存儲(chǔ)并表達(dá)工作流基本信息,以及所有關(guān)聯(lián)物的信息和狀態(tài),程序代碼可以直接訪問(wèn)這些信息;流程展示界面通過(guò)HTML頁(yè)面動(dòng)態(tài)展示流程信息,包括流程圖形、流程節(jié)點(diǎn)超鏈接,關(guān)聯(lián)物詳情頁(yè)面等。具體實(shí)施例如下所示XML定義文件設(shè)計(jì)松耦合計(jì)算機(jī)流程的XML定義文件的格式描述如下
權(quán)利要求
1.一種實(shí)現(xiàn)松耦合流程的方法,其中包括如下步驟步驟1、對(duì)XML格式描述的流程定義文件進(jìn)行解析,導(dǎo)入到流程數(shù)據(jù)庫(kù)中; 步驟2、從流程數(shù)據(jù)庫(kù)中提取信息,正確構(gòu)造流程信息內(nèi)存對(duì)象以供流程信息展示控件使用,并且維護(hù)和管理流程信息,將內(nèi)存對(duì)象中的修改保存到流程數(shù)據(jù)庫(kù)中;步驟3、使用給定的流程信息內(nèi)存對(duì)象,根據(jù)流程信息自動(dòng)繪制流程圖形并設(shè)置流程詳細(xì)信息的鏈接地址,在流程展示界面動(dòng)態(tài)展示流程節(jié)點(diǎn)關(guān)聯(lián)物詳情; 步驟4、將流程數(shù)據(jù)庫(kù)中的相關(guān)信息導(dǎo)出成外部XML格式文件。
2.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中所述流程定義文件由XML格式定義并描述一個(gè)具體的流程,并且準(zhǔn)確定義了流程的所有相關(guān)信息,包括流程節(jié)點(diǎn)、節(jié)點(diǎn)間關(guān)聯(lián)關(guān)系,以及節(jié)點(diǎn)相關(guān)的關(guān)聯(lián)物配置情況。
3.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中所述流程數(shù)據(jù)庫(kù)采用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)所有流程實(shí)例的具體數(shù)據(jù),當(dāng)程序代碼需要訪問(wèn)流程信息時(shí),必須從流程數(shù)據(jù)庫(kù)中提取相關(guān)信息,并轉(zhuǎn)換為內(nèi)存對(duì)象方式,才能夠正常訪問(wèn)。
4.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中所述內(nèi)存對(duì)象指在內(nèi)存中構(gòu)建的一套對(duì)象體系結(jié)構(gòu),用來(lái)存儲(chǔ)并表示工作流基本信息,以及所有關(guān)聯(lián)物的信息和狀態(tài),程序代碼可以直接訪問(wèn)這些信息。
5.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中所述流程展示界面用于通過(guò)HTML 頁(yè)面動(dòng)態(tài)展示流程信息,包括流程圖形、流程節(jié)點(diǎn)超鏈接,關(guān)聯(lián)物詳情頁(yè)面。
6.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中步驟1具體包括如下步驟 根據(jù)XML格式定義對(duì)流程定義文件內(nèi)容進(jìn)行動(dòng)態(tài)解析,掃描Instance、Node, Line、Item標(biāo)簽,并提取每個(gè)標(biāo)簽的屬性和子標(biāo)簽;參考流程數(shù)據(jù)庫(kù)的Tb_Instance、Tb_Node、Tb_Line、Tb_Item表設(shè)計(jì)動(dòng)態(tài)構(gòu)建出一系列數(shù)據(jù)插入的SQL語(yǔ)句,最終在一個(gè)數(shù)據(jù)庫(kù)事務(wù)中批量執(zhí)行所有INSERT語(yǔ)句;如果執(zhí)行成功,則新流程導(dǎo)入成功,如果執(zhí)行失敗,由于在一個(gè)數(shù)據(jù)庫(kù)事務(wù)中執(zhí)行,也不會(huì)出現(xiàn)數(shù)據(jù)庫(kù)狀態(tài)錯(cuò)誤的隱患。
7.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中步驟2具體包括如下步驟 根據(jù)流程數(shù)據(jù)庫(kù)的Tb_Instance、Tb_N0de、Tb_Line、Tb_Item表定義,查詢出所有流程詳細(xì)信息,并利用查詢出來(lái)的結(jié)果構(gòu)造出流程信息內(nèi)存對(duì)象;當(dāng)通過(guò)流程信息管理工具界面對(duì)流程相關(guān)配置情況進(jìn)行修改后,程序先將修改結(jié)果保存在流程信息內(nèi)存對(duì)象中,然后在根據(jù)內(nèi)存對(duì)象的更改狀態(tài)動(dòng)態(tài)生成數(shù)據(jù)更改SQL語(yǔ)句, 最終在一個(gè)數(shù)據(jù)庫(kù)事務(wù)中批量執(zhí)行所有UPDATE語(yǔ)句;如果執(zhí)行成功,則更改信息保存成功,如果執(zhí)行失敗,由于在一個(gè)數(shù)據(jù)庫(kù)事務(wù)中執(zhí)行, 也不會(huì)出現(xiàn)數(shù)據(jù)庫(kù)狀態(tài)錯(cuò)誤的隱患。
8.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中步驟3具體包括如下步驟 將基于構(gòu)造好的內(nèi)存對(duì)象顯示流程信息查詢結(jié)果;流程實(shí)例基本信息采用表格方式顯示,表格中將顯示流程實(shí)例的名稱、類型,以及激活狀態(tài);流程實(shí)例的詳細(xì)信息將采用流程圖方式顯示,根據(jù)流程實(shí)例的唯一標(biāo)識(shí),確定所有相關(guān)的Node、Line以及Item信息,并利用流程信息展示控件實(shí)現(xiàn)流程圖的顯示。
9.如權(quán)利要求1所述的實(shí)現(xiàn)松耦合流程的方法,其中步驟4具體包括如下步驟 根據(jù)流程數(shù)據(jù)庫(kù)的Tbjnstance、Tb_Node、Tb_Line、Tb_Item表設(shè)計(jì)構(gòu)造出一系列數(shù)據(jù)查詢 的SQL語(yǔ)句,通過(guò)執(zhí)行這些查詢語(yǔ)句獲取到一個(gè)特定流程實(shí)例的所有相關(guān)數(shù)據(jù),并按照XML格式定義動(dòng)態(tài)生成XML字符串信息并保存在緩沖區(qū)中,待所有XML字符串生成完畢后,一次性將緩沖區(qū)中的所有內(nèi)容一次性寫(xiě)入到外部文件中。
全文摘要
一種松耦合流程的實(shí)現(xiàn)的方法,其中包括如下步驟步驟1、對(duì)XML格式描述的流程定義文件進(jìn)行解析,導(dǎo)入到流程數(shù)據(jù)庫(kù)中;步驟2、從流程數(shù)據(jù)庫(kù)中提取信息,正確構(gòu)造流程信息內(nèi)存對(duì)象以供流程信息展示控件使用,并且維護(hù)和管理流程信息,將內(nèi)存對(duì)象中的修改保存到流程數(shù)據(jù)庫(kù)中;步驟3、使用給定的流程信息內(nèi)存對(duì)象,根據(jù)流程信息自動(dòng)繪制流程圖形并設(shè)置流程詳細(xì)信息的鏈接地址,在流程展示界面動(dòng)態(tài)展示流程節(jié)點(diǎn)關(guān)聯(lián)物詳情;步驟4、將流程數(shù)據(jù)庫(kù)中的相關(guān)信息導(dǎo)出成外部XML格式文件。
文檔編號(hào)G06F17/30GK102163237SQ20111011030
公開(kāi)日2011年8月24日 申請(qǐng)日期2011年4月29日 優(yōu)先權(quán)日2011年4月29日
發(fā)明者劉霞, 曹瑞強(qiáng), 王嘉春, 謝政, 趙伶豐 申請(qǐng)人:北京空間飛行器總體設(shè)計(jì)部