專利名稱:一種工作流管理系統(tǒng)中工作流數(shù)據(jù)的持久化方法
技術(shù)領(lǐng)域:
本發(fā)明設(shè)計計算機系統(tǒng)數(shù)據(jù)處理領(lǐng)域,特別涉及到一種工作流管理系統(tǒng)中工作流
數(shù)據(jù)的持久化處理方法和一種工作流數(shù)據(jù)的持久化處理裝置。
背景技術(shù):
持久化(Persistence),即把數(shù)據(jù)(如內(nèi)存中的對象)保存到可永久保存的存儲設(shè)備中(如磁盤)。在實際中,持久化的主要應(yīng)用是將內(nèi)存中的數(shù)據(jù)存儲在關(guān)系型的數(shù)據(jù)庫中,當然也可以存儲在磁盤文件中、XML數(shù)據(jù)文件中等等。持久化技術(shù)封裝了數(shù)據(jù)訪問細節(jié),為大部分業(yè)務(wù)邏輯提供面向?qū)ο蟮腁PI。通過持久化技術(shù)可以減少訪問數(shù)據(jù)庫數(shù)據(jù)次數(shù),增加應(yīng)用程序執(zhí)行速度;并且,代碼重用性高,能夠完成大部分數(shù)據(jù)庫操作;以及,松散耦合,使持久化不依賴于底層數(shù)據(jù)庫和上層業(yè)務(wù)邏輯實現(xiàn),更換數(shù)據(jù)庫時只需修改配置文件而不用修改代碼。由于上述特征,持久化技術(shù)被廣泛應(yīng)用在各種計算機系統(tǒng)中,如工作流系統(tǒng)等。 計算機系統(tǒng)在運行過程中,通常會產(chǎn)生大量的數(shù)據(jù),可以理解的是,數(shù)據(jù)持久化的處理勢必會對計算機系統(tǒng)帶來較大的性能消耗,這種性能消耗又會直接影響持久化的處理效率,尤其在數(shù)據(jù)量較大時,持久化處理效率過低的問題更為嚴重。以工作流系統(tǒng)為例,由于工作流系統(tǒng)的運行過程通常都會包括復(fù)雜的業(yè)務(wù)流程,所以在運行過程中會產(chǎn)生大量的工作流數(shù)據(jù)持久化請求,如流程中多個活動、任務(wù)等內(nèi)部對象的狀態(tài)改變等,這種工作流系統(tǒng)的數(shù)據(jù)持久化過程為普通的數(shù)據(jù)庫持久化過程,即工作流系統(tǒng)通過自身的數(shù)據(jù)持久化接口 ,根據(jù)相應(yīng)工作流數(shù)據(jù)的持久化請求,直接將該工作流數(shù)據(jù)關(guān)聯(lián)加載至數(shù)據(jù)庫中,顯然,這種處理過程將過度占用系統(tǒng)資源,從而引發(fā)持久化低效的問題;在上述過程中如果有多個持久化請求同時對同一個工作流數(shù)據(jù)進行持久化處理,這時數(shù)據(jù)庫很可能出現(xiàn)并發(fā)沖突(阻塞或死鎖)。對于一個長時間運行的工作流系統(tǒng),存儲介質(zhì)中的持久化數(shù)據(jù)量非常大,如果不采用備份和分區(qū)處理,都保存在數(shù)據(jù)庫的同一張表中,隨著系統(tǒng)的持續(xù)運行,系統(tǒng)的數(shù)據(jù)存取檢索效率必然會越來越低。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種工作流管理系統(tǒng)中工作流數(shù)據(jù)的持久化方法。 本發(fā)明的目的是按以下方式實現(xiàn)的,包括方法、裝置及工作流系統(tǒng),其中,(一)方
法步驟如下 1)啟動工作流事務(wù);通過工作流實例備份的計劃任務(wù),在系統(tǒng)空閑時備份存儲介
質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù),備份數(shù)據(jù)采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)
中已經(jīng)備份的工作流數(shù)據(jù),所述分區(qū)技術(shù)不局限于某一種關(guān)系型數(shù)據(jù)庫提供的分區(qū)技術(shù); 2)為當前執(zhí)行的流程實例使用的工作流資源加鎖;通過工作流資源鎖管理器對
需要修改的工作流資源或工作流內(nèi)部對象加鎖;工作流資源已經(jīng)被其他請求添了加排他
鎖,等待該資源鎖被釋放后,再添加工作流資源的排他鎖,鎖的優(yōu)先級、超時時間、隔離級別、粒度,根據(jù)工作流管理系統(tǒng)的運行情況進行設(shè)置; 3)工作流運行時執(zhí)行過程中,通過內(nèi)存緩存進行工作流數(shù)據(jù)的數(shù)據(jù)存取訪問;修
改流程實例在當前事務(wù)中內(nèi)存緩存中的工作流數(shù)據(jù),并生成緩存數(shù)據(jù)修改記錄; 4)獲取變更數(shù)據(jù);根據(jù)內(nèi)存緩存修改記錄從工作流數(shù)據(jù)緩存中獲取需要持久化
的工作流修改數(shù)據(jù); 5)工作流數(shù)據(jù)持久化;根據(jù)所述工作流修改數(shù)據(jù),按照所述所述工作流修改數(shù)據(jù)發(fā)出持久化請求,將數(shù)據(jù)保存到持久性存儲中;
6)釋放資源鎖;
7)提交工作流事務(wù)。
( 二 )工作流管理系統(tǒng)中工作流數(shù)據(jù)的持久化裝置,包括
啟動單元用于啟動工作流事務(wù); 鎖管理單元用于在持久化處理時對工作流資源添加鎖、以及在持久化處理完成時釋放鎖; 數(shù)據(jù)緩存管理單元用于根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,在內(nèi)存緩存中記錄工作流數(shù)據(jù);在所述工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工作流數(shù)據(jù)發(fā)生變化時,生成緩存數(shù)據(jù)修改記錄,并根據(jù)內(nèi)存緩存修改記錄從緩存的工作流數(shù)據(jù)中獲取需要持久化的工作流修改數(shù)據(jù); 持久化請求單元用于根據(jù)所述內(nèi)存緩存數(shù)據(jù)和緩存數(shù)據(jù)修改記錄發(fā)出持久化提交請求;備份單元用于在系統(tǒng)空閑時備份存儲介質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù)。
在鎖管理單元中,鎖的優(yōu)先級、超時時間、隔離級別、粒度,根據(jù)工作流管理系統(tǒng)的運行情況進行設(shè)置。 采用分區(qū)技術(shù);備份單元備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。
(三)工作流管理系統(tǒng)中工作流數(shù)據(jù)的工作流系統(tǒng),其特征在于,包括
工作流執(zhí)行器,用于接收業(yè)務(wù)請求,并通知工作流事務(wù)管理器中的請求單元;
工作流事務(wù)管理器,包括啟動單元、執(zhí)行單元和請求單元所述啟動單元用于啟動工作流事務(wù);所述執(zhí)行單元用于執(zhí)行當前工作流事務(wù)中工作流數(shù)據(jù)的修改;所述請求單元用于根據(jù)修改數(shù)據(jù)發(fā)出持久化請求; 工作流鎖管理器,用于在持久化處理時對工作流資源添加鎖、以及在持久化處理完成時釋放鎖; 工作流持久化管理器,包括數(shù)據(jù)緩存管理單元,用于記錄所述工作流事務(wù)中工作流數(shù)據(jù),工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工作流數(shù)據(jù)發(fā)生變化時,生成緩存數(shù)據(jù)修改記錄,根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,獲取工作流修改數(shù)據(jù); 工作流備份管理器,用于在系統(tǒng)空閑時,通過計劃任務(wù)備份存儲介質(zhì)中已完成狀
態(tài)的工作流實例數(shù)據(jù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。 鎖管理單元,鎖的優(yōu)先級、超時時間、隔離級別、粒度,根據(jù)工作流管理系統(tǒng)的運行
情況進行設(shè)置。 備份單元采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。
本發(fā)明的方法與現(xiàn)有技術(shù)相比,優(yōu)異效果是應(yīng)用本發(fā)明,在工作流事務(wù)中,當需
5要修改工作流數(shù)據(jù)時,首先對該資源加鎖,并不直接向發(fā)出持久化請求,而是生成工作流數(shù)據(jù)內(nèi)存緩存的修改記錄。此時真正的數(shù)據(jù)化操作并未進行,而是被延遲到工作流事務(wù)提交時進行,在工作流事務(wù)提交時,根據(jù)緩存數(shù)據(jù)修改記錄獲取內(nèi)存緩存中修改的工作流數(shù)據(jù)發(fā)出持久化請求,在事務(wù)提交時釋放鎖,同時應(yīng)用本發(fā)明,在系統(tǒng)空閑時,通過計劃任務(wù)對于已完成狀態(tài)的工作流實例數(shù)據(jù)進行備份,成功備份后,刪除源存儲介質(zhì)中的上述工作流數(shù)據(jù),因此可以有效提高工作流數(shù)據(jù)持久化的處理效率。應(yīng)用本發(fā)明的鎖管理機制,對于一個工作流內(nèi)部對象,同時只有一個修改該對象的持久化請求,因此可以有效提高工作流數(shù)據(jù)持久化的并發(fā)處理能力。
圖1是工作流數(shù)據(jù)的持久化處理方法的流程 圖2是工作流數(shù)據(jù)的持久化處理裝置的結(jié)構(gòu)框 圖3是工作流系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式
本發(fā)明的工作流管理系統(tǒng)中工作流數(shù)據(jù)的持久化方法包括以下步驟
1)啟動工作流事務(wù); 2)為當前執(zhí)行的流程實例使用的工作流資源加鎖; 3)工作流運行時執(zhí)行過程中,通過內(nèi)存緩存進行工作流數(shù)據(jù)的數(shù)據(jù)存取訪問; 獲取變更數(shù)據(jù); 工作流數(shù)據(jù)持久化; 釋放資源鎖; 提交工作流事務(wù); 優(yōu)選的是,該方法還包括 通過工作流實例備份的計劃任務(wù),在系統(tǒng)空閑時備份存儲介質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù),備份數(shù)據(jù)采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù),所述分區(qū)技術(shù)不局限于某一種關(guān)系型數(shù)據(jù)庫提供的分區(qū)技術(shù)。
優(yōu)選的是,步驟二還包括 通過工作流資源鎖管理器對需要修改的工作流資源(工作流內(nèi)部對象)加鎖;如果所述工作流資源已經(jīng)被其他請求添了加排他鎖,等待該資源鎖被釋放后,再添加工作流資源的排他鎖。鎖的優(yōu)先級、超時時間、隔離級別、粒度等,可以根據(jù)工作流管理系統(tǒng)的運行情況進行設(shè)置。 優(yōu)選的是,步驟三還包括 修改流程實例在當前事務(wù)中內(nèi)存緩存中的工作流數(shù)據(jù),并生成緩存數(shù)據(jù)修改記錄; 優(yōu)選的是,步驟四還包括 根據(jù)內(nèi)存緩存修改記錄從內(nèi)存緩存的工作流數(shù)據(jù)中獲取需要持久化的工作流修改數(shù)據(jù)。 優(yōu)選的是,步驟五還包括
6
根據(jù)所述工作流修改數(shù)據(jù),按照所述所述工作流修改數(shù)據(jù)發(fā)出持久化請求,將數(shù) 據(jù)保存到持久性存儲中。 本發(fā)明實施例還公開了一種工作流數(shù)據(jù)的持久化處理裝置,包括
啟動單元,用于啟動工作流事務(wù); 鎖管理單元,用于在持久化處理時對工作流資源添加鎖、以及在持久化處理完成 時釋放鎖。 數(shù)據(jù)緩存管理單元,用于根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,在內(nèi)存 緩存中記錄工作流數(shù)據(jù);在所述工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工 作流數(shù)據(jù)發(fā)生變化時,生成緩存數(shù)據(jù)修改記錄,并根據(jù)內(nèi)存緩存修改記錄從緩存的工作流 數(shù)據(jù)中獲取需要持久化的工作流修改數(shù)據(jù); 持久化請求單元,用于根據(jù)所述內(nèi)存緩存數(shù)據(jù)和緩存數(shù)據(jù)修改記錄發(fā)出持久化提 交請求。 備份單元,用于在系統(tǒng)空閑時備份存儲介質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù)。
優(yōu)選的是,所述鎖管理單元中鎖的優(yōu)先級、超時時間、隔離級別、粒度等,可以根據(jù) 工作流管理系統(tǒng)的運行情況進行設(shè)置。 優(yōu)選的是,所述備份單元采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份 的工作流數(shù)據(jù)。 本發(fā)明實施例還公開了一種工作流系統(tǒng),包括 工作流執(zhí)行器,用于接收業(yè)務(wù)請求,并通知工作流事務(wù)管理器中的請求單元。
工作流事務(wù)管理器,包括啟動單元、執(zhí)行單元和請求單元所述啟動單元用于啟動 工作流事務(wù);所述執(zhí)行單元用于執(zhí)行當前工作流事務(wù)中工作流數(shù)據(jù)的修改;所述請求單元 用于根據(jù)修改數(shù)據(jù)發(fā)出持久化請求; 工作流鎖管理器,用于在持久化處理時對工作流資源添加鎖、以及在持久化處理 完成時釋放鎖。 工作流持久化管理器,包括數(shù)據(jù)緩存管理單元,用于記錄所述工作流事務(wù)中工作 流數(shù)據(jù),工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工作流數(shù)據(jù)發(fā)生變化時, 生成緩存數(shù)據(jù)修改記錄,根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,獲取工作流修改 數(shù)據(jù); 工作流備份管理器,用于在系統(tǒng)空閑時,通過計劃任務(wù)備份存儲介質(zhì)中已完成狀
態(tài)的工作流實例數(shù)據(jù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。 優(yōu)選的是,所述鎖管理單元中鎖的優(yōu)先級、超時時間、隔離級別、粒度等,可以根據(jù)
工作流管理系統(tǒng)的運行情況進行設(shè)置。 優(yōu)選的是,所述備份單元采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份
的工作流數(shù)據(jù)。 實施例 參照說明書附圖對本發(fā)明的作以下詳細地說明。 為使用本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體 實施方式對本發(fā)明作進一步詳細的說明。 本發(fā)明的核心構(gòu)思在于,在啟動工作流事務(wù)后,首先對該資源加鎖,對于在同一個工作流事務(wù)內(nèi),工作流內(nèi)部對象的任何持久化操作都通過修改內(nèi)存緩存中工作流數(shù)據(jù)的方 式完成并生成修改記錄,但此時不進行真正的數(shù)據(jù)持久化操作,而是延遲到工作流事務(wù)提 交時進行,即在工作流事務(wù)提交時,根據(jù)內(nèi)存緩存修改記錄從緩存的工作流數(shù)據(jù)中獲取需 要持久化的數(shù)據(jù),系統(tǒng)還通過計劃任務(wù)進行已完成狀態(tài)實例的備份,從而有效提高了工作 流數(shù)據(jù)持久化的處理效率和并發(fā)處理能力。 參考圖l,示出了本發(fā)明的一種工作流數(shù)據(jù)的持久化處理方法實施例的流程圖,具
體可以包括以下步驟 步驟l,啟動工作流事務(wù); 步驟2,為工作流資源加鎖; 步驟3,工作流數(shù)據(jù)存取,根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變,生成內(nèi)存緩 存數(shù)據(jù)的改變記錄; 步驟4,根據(jù)所述工作流事務(wù)中的內(nèi)存緩存修改記錄從緩存的工作流數(shù)據(jù)中獲取 需要持久化的工作流修改數(shù)據(jù); 步驟5,根據(jù)所述的工作流修改數(shù)據(jù)發(fā)出持久化請求;
步驟6,釋放工作流資源鎖;
步驟7,提交工作流事務(wù)。 根據(jù)WFMC的定義,工作流(Workflow)就是自動運作的業(yè)務(wù)過程,表現(xiàn)為參與者對 文件、信息或任務(wù)按照規(guī)程采取行動,并令其在參與者之間傳遞,簡單地說,工作流就是一 系列相互銜接,自動進行的業(yè)務(wù)活動或任務(wù)。其中,工作流數(shù)據(jù)是指工作流系統(tǒng)內(nèi)部對象的 狀態(tài)數(shù)據(jù),而工作流系統(tǒng)內(nèi)部對象是指工作流系統(tǒng)在執(zhí)行流程時產(chǎn)生的內(nèi)部對象,包括流 程對象、活動對象、任務(wù)對象等等,內(nèi)存緩存是記錄在系統(tǒng)內(nèi)存中的對象狀態(tài)信息的拷貝。 而工作流事務(wù)是在數(shù)據(jù)庫事務(wù)基礎(chǔ)上由工作流系統(tǒng)擴展出來的工作流處理事務(wù)。而事務(wù)是 一個最小的工作單元,不論成功與否事務(wù)都作為一個整體進行工作。由于事務(wù)通常由幾個 人任務(wù)組成的,因此如果一個事務(wù)作為一個整體事成的,則事務(wù)中的每個人物都必須是成 功的。如果事務(wù)中有一部分失敗,則整個事務(wù)也必然是失敗的。即事務(wù)具有原子性、一致性、 隔離性、持久性的特點。 從上可以得知,本發(fā)明實施例所述的工作流事務(wù)具有以下特征 (1)具有明確的事務(wù)邊界對于工作流系統(tǒng)來說,事務(wù)的發(fā)起與結(jié)束都是它來控
制,所有知道工作流事務(wù)的邊界。
(2)在事務(wù)內(nèi)能夠通過內(nèi)存的方式管理被持久化對象的生命周期。在工作流事務(wù)
中,需要持久化的對象(工作流數(shù)據(jù))都是在工作流系統(tǒng)內(nèi)的,并且由工作流系統(tǒng)來管理它
的生命周期,所有能夠通過"內(nèi)存緩存修改記錄"的方式對持久化請求進行優(yōu)化。 在實際中,工作流事務(wù)可以根據(jù)業(yè)務(wù)請求而啟動,啟動工作流事務(wù),并準備上下文
信息。應(yīng)用本實施例中,當改變工作流內(nèi)部對象狀態(tài)并且需要持久化時,先對工作流內(nèi)部對
象添加資源鎖;然后,觸發(fā)當前工作流內(nèi)部對象狀態(tài)數(shù)據(jù)(即工作流數(shù)據(jù))的以內(nèi)存緩存的
方式進行記錄;改變緩存內(nèi)存中的該工作流數(shù)據(jù),并生成工作流數(shù)據(jù)改變記錄。 在本實施例中,在工作流事務(wù)未提交時,不進行持久化操作,只有在提交工作流事
務(wù)時,才通過工作流數(shù)據(jù)改變記錄獲得工作流修改數(shù)據(jù),然后才根據(jù)該數(shù)據(jù)發(fā)出持久化請求。
為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,以下通過具體實例對本發(fā)明的工作流數(shù) 據(jù)持久化處理過程進行說明。 以工作流活動實例為例,假設(shè)在工作流流程運行中,一個活動實例的生命周期如 下 (1)創(chuàng)建活動實例,并且設(shè)置活動狀態(tài)為未初始化;
(2)設(shè)置活動狀態(tài)為未啟動(即活動的初始化狀態(tài)); [OOSS] (3)設(shè)置活動狀態(tài)為運行中(即活動的執(zhí)行狀態(tài));
(4)設(shè)置活動狀態(tài)為完成(即活動的結(jié)束狀態(tài))。
假設(shè)這三個狀態(tài)的變化在一個工作流事務(wù)中,應(yīng)用本實施例的處理過程如下
步驟1、啟動工作流事務(wù);
步驟2、在內(nèi)存中創(chuàng)建活動實例; 工作流數(shù)據(jù)改變前(活動實例創(chuàng)建前)的內(nèi)存緩存為無,改變后(活動實例創(chuàng)建 后)的內(nèi)存緩存為有,且活動實例狀態(tài)為未初始化。 步驟3、記錄(2)(設(shè)置活動狀態(tài)為未啟動)修改內(nèi)存緩存中的活動實例狀態(tài),并記 錄活動實例狀態(tài)被修改; 改變前的內(nèi)存緩存中的活動實例狀態(tài)為未初始化,改變后的內(nèi)存緩存中的活動實 例狀態(tài)為運行中。 步驟4、記錄(3)(設(shè)置活動狀態(tài)為運行中)修改內(nèi)存緩存中的活動實例狀態(tài),并記 錄活動實例狀態(tài)被修改; 改變前的內(nèi)存緩存中的活動實例狀態(tài)為未啟動,改變后的內(nèi)存緩存中的活動實例 狀態(tài)為運行中。 步驟5、記錄(4)(設(shè)置活動狀態(tài)為完成)修改內(nèi)存緩存中的活動實例狀態(tài),并記錄 活動實例狀態(tài)被修改; 改變前的內(nèi)存緩存中的活動實例狀態(tài)為運行中,改變后的內(nèi)存緩存中的活動實例 狀態(tài)為完成。 步驟6,根據(jù)緩存中工作流數(shù)據(jù)的修改記錄,發(fā)現(xiàn)該活動實例的改變量就是活動實
例狀態(tài)的變化量,因此向數(shù)據(jù)庫發(fā)出創(chuàng)建狀態(tài)為完成的活動實例的持久化請求。 通過上例可以看出,當采用現(xiàn)有技術(shù)的方法,則需要提交四次持久化請求,即插入
數(shù)據(jù),第一次更新數(shù)據(jù)、第二次更新數(shù)據(jù)和第三次更新數(shù)據(jù)的請求;當采用本發(fā)明實施例,
則只需要提交一次數(shù)據(jù)庫持久化請求,因而本發(fā)明有效提高了工作流數(shù)據(jù)持久化處理的效率。 參考圖2,示出了本發(fā)明的一種工作流數(shù)據(jù)的持久化處理裝置實施例的結(jié)構(gòu)框圖,
具體可以包括以下單元 啟動單元,用于啟動工作流事務(wù); 鎖管理單元,用于在持久化處理時對工作流資源添加鎖、以及在持久化處理完成 時釋放鎖。 數(shù)據(jù)緩存管理單元,用于根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,在內(nèi)存 緩存中記錄工作流數(shù)據(jù);在所述工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工 作流數(shù)據(jù)發(fā)生變化時,生成緩存數(shù)據(jù)修改記錄,并根據(jù)內(nèi)存緩存修改記錄從緩存的工作流
9數(shù)據(jù)中獲取需要持久化的工作流修改數(shù)據(jù); 持久化請求單元,用于根據(jù)所述內(nèi)存緩存數(shù)據(jù)和緩存數(shù)據(jù)修改記錄發(fā)出持久化提 交請求; 備份單元,用于在系統(tǒng)空閑時備份存儲介質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù)。
對于圖2所示的裝置實施例而言,由于其基本相應(yīng)于圖1所示的方法實施例,所以 描述比較簡單,相關(guān)之處參見方法實施例的部分說明即可。 為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明中的鎖管理機制,以下通過舉例對其進行 說明。 假設(shè)存在一個狀態(tài)為運行中的工作流活動,滿足以下條件
①當規(guī)則SwitchToB成立時,活動A狀態(tài)修改為完成,流程流轉(zhuǎn)到后續(xù)活動B。
②當規(guī)則SwitchToC成立時,活動A狀態(tài)修改為完成,流程流轉(zhuǎn)到后續(xù)活動C。
在當前工作流事務(wù)中,持久化管理器同時發(fā)出兩個持久化請求持久化請求 RequestM修改工作流緩存數(shù)據(jù)時,規(guī)則SwitchToB成立;持久化請求RequestN修改工作流 緩存數(shù)據(jù)時,規(guī)則SwitchToC成立。應(yīng)用鎖管理器,第一個持久化請求會對當前的工作流資 源添加排他鎖,另外的持久化請求判斷工作流資源已經(jīng)被其他請求加鎖,則等待資源的釋 放。這樣就避免了流程出現(xiàn)并發(fā)并發(fā)沖突(阻塞或死鎖)。 優(yōu)選的是,所述鎖管理單元中鎖的優(yōu)先級、超時時間、隔離級別、粒度等,可以根據(jù) 工作流管理系統(tǒng)的運行情況進行設(shè)置。 參考圖3,示出了本發(fā)明的一種工作流系統(tǒng)實施例的結(jié)果框圖,具體可以包括以下 裝置 工作流執(zhí)行器,用于接受業(yè)務(wù)請求,并通知工作流事務(wù)管理器的啟動單元; 工作流鎖管理器,用于在持久化處理時對工作流資源添加鎖、以及在持久化處理
完成時釋放鎖。 工作流事務(wù)管理器,包括啟動單元、執(zhí)行單元和請求單元;所述啟動單元用于啟動 工作流事務(wù);所述執(zhí)行單元用于執(zhí)行當前工作流事務(wù)中工作流數(shù)據(jù)的修改;所述請求單元 用于根據(jù)當前事務(wù)中的工作流數(shù)據(jù)修改記錄發(fā)出持久化請求; 工作流持久化管理器,包括數(shù)據(jù)緩存管理單元,用于記錄所述工作流事務(wù)中工作 流數(shù)據(jù),工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工作流數(shù)據(jù)發(fā)生變化時, 生成緩存數(shù)據(jù)修改記錄,根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,獲取工作流修改 數(shù)據(jù); 工作流備份管理器,用于在系統(tǒng)空閑時,通過計劃任務(wù)備份存儲介質(zhì)中已完成狀
態(tài)的工作流實例數(shù)據(jù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。 優(yōu)選的是,所述鎖管理單元中鎖的優(yōu)先級、超時時間、隔離級別、粒度等,可以根據(jù)
工作流管理系統(tǒng)的運行情況進行設(shè)置。 優(yōu)選的是,所述備份單元采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份 的工作流數(shù)據(jù)。 對于圖3所示的系統(tǒng)實施例而言,由于其基本相應(yīng)于前述方法和裝置實施例,所 以描述較為簡單,相關(guān)之處參見方法實施例的部分說明即可。 以上對本發(fā)明所提供的一種工作流管理系統(tǒng)數(shù)據(jù)的持久化處理方法、一種工作流
10管理系統(tǒng)數(shù)據(jù)的持久化處理裝置以及一種工作流系統(tǒng)進行了詳細介紹。本文中應(yīng)用了具體 個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明 的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施 方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
一種工作流管理系統(tǒng)中工作流數(shù)據(jù)的持久化方法,其特征在于,處理步驟如下1)啟動工作流事務(wù);通過工作流實例備份的計劃任務(wù),在系統(tǒng)空閑時備份存儲介質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù),備份數(shù)據(jù)采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù),所述分區(qū)技術(shù)不局限于某一種關(guān)系型數(shù)據(jù)庫提供的分區(qū)技術(shù);2)為當前執(zhí)行的流程實例使用的工作流資源加鎖;通過工作流資源鎖管理器對需要修改的工作流資源或工作流內(nèi)部對象加鎖;工作流資源已經(jīng)被其他請求添了加排他鎖,等待該資源鎖被釋放后,再添加工作流資源的排他鎖,鎖的優(yōu)先級、超時時間、隔離級別、粒度,根據(jù)工作流管理系統(tǒng)的運行情況進行設(shè)置;3)工作流運行時執(zhí)行過程中,通過內(nèi)存緩存進行工作流數(shù)據(jù)的數(shù)據(jù)存取訪問;修改流程實例在當前事務(wù)中內(nèi)存緩存中的工作流數(shù)據(jù),并生成緩存數(shù)據(jù)修改記錄;4)獲取變更數(shù)據(jù);根據(jù)內(nèi)存緩存修改記錄從工作流數(shù)據(jù)緩存中獲取需要持久化的工作流修改數(shù)據(jù);5)工作流數(shù)據(jù)持久化;根據(jù)所述工作流修改數(shù)據(jù),按照所述所述工作流修改數(shù)據(jù)發(fā)出持久化請求,將數(shù)據(jù)保存到持久性存儲中;6)釋放資源鎖;7)提交工作流事務(wù)。
2. 工作流管理系統(tǒng)中工作流數(shù)據(jù)的持久化裝置,其特征在于,包括啟動單元用于啟動工作流事務(wù);鎖管理單元用于在持久化處理時對工作流資源添加鎖、以及在持久化處理完成時釋放鎖;數(shù)據(jù)緩存管理單元用于根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,在內(nèi)存緩存中記錄工作流數(shù)據(jù);在所述工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工作流數(shù)據(jù)發(fā)生變化時,生成緩存數(shù)據(jù)修改記錄,并根據(jù)內(nèi)存緩存修改記錄從緩存的工作流數(shù)據(jù)中獲取需要持久化的工作流修改數(shù)據(jù);持久化請求單元用于根據(jù)所述內(nèi)存緩存數(shù)據(jù)和緩存數(shù)據(jù)修改記錄發(fā)出持久化提交請求;備份單元用于在系統(tǒng)空閑時備份存儲介質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù)。
3. 如權(quán)利要求2所述的所述的持久化裝置,其特征在于,在鎖管理單元中,鎖的優(yōu)先級、超時時間、隔離級別、粒度,根據(jù)工作流管理系統(tǒng)的運行情況進行設(shè)置。
4. 如權(quán)利要求2所述的持久化裝置,其特征在于,采用分區(qū)技術(shù);備份單元備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。
5. 工作流管理系統(tǒng)中工作流數(shù)據(jù)的工作流系統(tǒng),其特征在于,包括工作流執(zhí)行器,用于接收業(yè)務(wù)請求,并通知工作流事務(wù)管理器中的請求單元;工作流事務(wù)管理器,包括啟動單元、執(zhí)行單元和請求單元所述啟動單元用于啟動工作流事務(wù);所述執(zhí)行單元用于執(zhí)行當前工作流事務(wù)中工作流數(shù)據(jù)的修改;所述請求單元用于根據(jù)修改數(shù)據(jù)發(fā)出持久化請求;工作流鎖管理器,用于在持久化處理時對工作流資源添加鎖、以及在持久化處理完成時釋放鎖;工作流持久化管理器,包括數(shù)據(jù)緩存管理單元,用于記錄所述工作流事務(wù)中工作流數(shù)據(jù),工作流數(shù)據(jù)的在當前工作流事務(wù)中的所有內(nèi)存緩存中的工作流數(shù)據(jù)發(fā)生變化時,生成緩存數(shù)據(jù)修改記錄,根據(jù)所述工作流事務(wù)中工作流數(shù)據(jù)的改變記錄,獲取工作流修改數(shù)據(jù);工作流備份管理器,用于在系統(tǒng)空閑時,通過計劃任務(wù)備份存儲介質(zhì)中已完成狀態(tài)的工作流實例數(shù)據(jù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。
6. 如權(quán)利要求5所述的工作流系統(tǒng),其特征在于,鎖管理單元,鎖的優(yōu)先級、超時時間、隔離級別、粒度,根據(jù)工作流管理系統(tǒng)的運行情況進行設(shè)置。
7. 如權(quán)利要求5所述的工作流系統(tǒng),其特征在于,備份單元采用分區(qū)技術(shù);備份成功后,刪除源存儲介質(zhì)中已經(jīng)備份的工作流數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種工作流管理系統(tǒng)數(shù)據(jù)的持久化處理方法,處理步驟如下啟動工作流事務(wù)后,首先對該資源進行加鎖的設(shè)置;工作流內(nèi)部對象的任何持久化操作都通過修改內(nèi)存緩存中工作流數(shù)據(jù)的方式完成,同時生成修改記錄;修改緩存中工作流數(shù)據(jù)時不進行真正的數(shù)據(jù)持久化操作,而是延遲到工作流事務(wù)提交時進行,即在工作流事務(wù)提交時,根據(jù)內(nèi)存緩存修改記錄從工作流數(shù)據(jù)緩存中獲取需要持久化的數(shù)據(jù);提交工作流事務(wù)后,釋放資源鎖。系統(tǒng)還通過計劃任務(wù)對已完成狀態(tài)的實例數(shù)據(jù)進行備份,從而有效提高了工作流數(shù)據(jù)持久化的處理效率和并發(fā)處理能力。
文檔編號G06F17/30GK101777154SQ20101010338
公開日2010年7月14日 申請日期2010年2月1日 優(yōu)先權(quán)日2010年2月1日
發(fā)明者孫立新, 馬超, 高偉 申請人:浪潮集團山東通用軟件有限公司