国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LINQ TO SQL的審批工作流引擎設(shè)計與應(yīng)用

2015-04-02 12:29李斌
軟件導刊 2015年2期
關(guān)鍵詞:任務(wù)調(diào)度

李斌

摘要:通過對工作流開放標準及參考接口、協(xié)同工作技術(shù)的研究,設(shè)計出一套基于微軟LINQ技術(shù)的審批工作流引擎。引擎能夠針對人員、項目、業(yè)務(wù)、狀態(tài)等元素的控制實現(xiàn)對審批流程的任務(wù)調(diào)度、流程跟蹤、協(xié)同審批、業(yè)務(wù)靈活擴展等關(guān)鍵環(huán)節(jié)。

關(guān)鍵詞關(guān)鍵詞:WorkFlow;工作流引擎;LINQ;任務(wù)調(diào)度

DOIDOI:10.11907/rjdk.143793

中圖分類號:TP319

文獻標識碼:A文章編號文章編號:16727800(2015)002010702

1工作流定義

工作流技術(shù)(WorkFlow)\[1\]是一種能將工作任務(wù)自動在多個用戶或單位間流轉(zhuǎn)的技術(shù),是一種實現(xiàn)建模和過程管理的核心技術(shù)\[2\],它的出現(xiàn)能夠有效約束和控制業(yè)務(wù)的審批過程,令審批和管理業(yè)務(wù)流程有序執(zhí)行,很好地解決了審批業(yè)務(wù)中存在的審批流程滯后等問題。

工作流是由一系列相關(guān)流程構(gòu)成的集合,流程與流程之間可能相互獨立,也可能存在著依賴關(guān)系\[3\],其可表示為WF::(P,R)。

(1) P={P1,P2,……,Pn}:表示審批流程的集合。

(2) R={R1,R2,……,Rn}, Ri=(j≠k):表示一個審批流程與另外一個審批流程間存在的依賴關(guān)系。在畢業(yè)論文過程管理系統(tǒng)的審批過程中,“教師題目審核表審批”與“學生畢業(yè)論文選題審批”存在著依賴關(guān)系,時間上前者需早于后者完成,數(shù)據(jù)源上后者業(yè)務(wù)的數(shù)據(jù)來源也源于前者的業(yè)務(wù)。

(3) WP={W,A, Sstart,Send}:表示工作流的審批過程。其中W 表示審批過程中包含的有序步驟集合,A 表示引起步驟變遷的審批動作( 即工作流審批過程處于某一步驟時,執(zhí)行某一動作,該動作執(zhí)行后,審批過程進入下一個步驟)。Sstart表示該工作流審批過程的起始步驟, Send表示該工作流審批過程的終止步驟。

2工作流引擎架構(gòu)設(shè)計

通過對工作流定義及現(xiàn)實中審批關(guān)鍵業(yè)務(wù)的特點,工作流引擎宜選用成熟的關(guān)系型數(shù)據(jù)庫技術(shù)\[4\]。因此,本文所設(shè)計開發(fā)的工作流引擎選用SQL Server2008作為底層數(shù)據(jù)庫,引擎中的數(shù)據(jù)模型通過關(guān)系數(shù)據(jù)表來建模,通過關(guān)系數(shù)據(jù)庫中所提供的存儲過程、觸發(fā)器等機制,控制工作流中各審批過程的實現(xiàn),審批業(yè)務(wù)中的事務(wù)并發(fā)控制通過關(guān)系數(shù)據(jù)庫所提供的時間戳機制實現(xiàn)。

另外,微軟公司在.NET平臺中推出最新LINQ\[5\]通用數(shù)據(jù)訪問技術(shù),這種技術(shù)使用統(tǒng)一的查詢語法對LINQ所支持的各種不同數(shù)據(jù)源做操作,極大地降低了數(shù)據(jù)訪問技術(shù)的難度。因此,本文開發(fā)的審批工作流引擎采用LINQ TO SQL 這一輕量級的ORM解決方案來搭建。工作流引擎架構(gòu)具體如圖1所示。

圖1基于LINQ TO SQL的工作流引擎架構(gòu)

工作流引擎承擔了流程任務(wù)流轉(zhuǎn)的控制中心角色\[6\],其提供3 類接口。接口1 為審批業(yè)務(wù)系統(tǒng)中不同業(yè)務(wù)與工作流引擎的交互提供服務(wù),系統(tǒng)能根據(jù)不同階段的審批業(yè)務(wù)定義不同的工作流業(yè)務(wù);接口2 為工作流過程管理系統(tǒng)對工作流引擎提供流程控制與調(diào)度工作,并能保證工作流程能正常推進及流程出錯時的回溯;接口3 為工作流過程管理系統(tǒng)對工作流程引擎提供跟蹤服務(wù),跟蹤整個工作流引擎的運行狀態(tài)。

同時,為了增強工作流引擎的服務(wù)能力和靈活性,工作流引擎內(nèi)部提供了數(shù)據(jù)訪問組件、工作流自定義組件、審批日志組件和定時任務(wù)組件。引擎利用LINQ TO SQL生成的DataContext類及數(shù)據(jù)實體類來負責訪問關(guān)系數(shù)據(jù)庫,對工作流引擎運行相關(guān)的單位角色數(shù)據(jù)、流程控制、工作流模型數(shù)據(jù)進行讀寫;通過工作流自定義組件,為靈活配置審批業(yè)務(wù)的各步驟提供支持,通過審批日志組件,記錄工作流運行時的各流程活動日志。利用SQL Server中的定期任務(wù)配合工作流引擎推動工作流流程的順利執(zhí)行。

3工作流引擎數(shù)據(jù)庫設(shè)計

工作流引擎主要依靠工作流模型數(shù)據(jù)、流程控制數(shù)據(jù)、組織角色數(shù)據(jù)來推動審批數(shù)據(jù)流轉(zhuǎn)\[7\]。工作流模型數(shù)據(jù)包括每一類審批程序的步驟以及觸發(fā)步驟變遷的行為動作等信息;流程控制數(shù)據(jù)包括每一次審批相關(guān)的業(yè)務(wù)信息,如審批申報內(nèi)容和各流程審批人審批記錄等;組織角色數(shù)據(jù)涉及企業(yè)或部門的組織結(jié)構(gòu)關(guān)系、用戶、角色及權(quán)限等信息。因此,工作流引擎的模型數(shù)據(jù)、流程控制數(shù)據(jù),以及審批業(yè)務(wù)系統(tǒng)的業(yè)務(wù)數(shù)據(jù)、組織角色數(shù)據(jù)都存儲在關(guān)系數(shù)據(jù)庫中。工作流引擎數(shù)據(jù)庫邏輯結(jié)構(gòu)如圖2所示。

圖2工作流引擎數(shù)據(jù)庫邏輯結(jié)構(gòu)

(1)WorkFlow表。包含工作流名稱及所關(guān)聯(lián)的對象名稱,不局限于某種特定類型的審批業(yè)務(wù),通過關(guān)聯(lián)到的不同審批業(yè)務(wù)對象表,可實現(xiàn)工作流引擎的通用性。

(2)WFOwnerGroup表。表示在不同狀態(tài)下?lián)碛袑徟鷺I(yè)務(wù)不同審批步驟處理權(quán)的用戶組。

(3)WFState表。工作流狀態(tài)表,可根據(jù)不同審批業(yè)務(wù)的性質(zhì)定義不同的審批狀態(tài),如初始化、掛起、活動、正常結(jié)束、異常中止等幾種狀態(tài)。通過WFOwnerGroupID字段與WFOwnerGroup表關(guān)聯(lián),即可實現(xiàn)在具體某種審批狀態(tài)下?lián)碛刑幚頇?quán)的用戶組的關(guān)聯(lián)。

(4)WFTransition表。表示工作流狀態(tài)轉(zhuǎn)換表,通過FromWFStateId及ToWFStateId記錄審批工作中各審批過程的起始步驟和終止步驟,PostTransitionMethodName屬性表示該狀態(tài)轉(zhuǎn)換完成后動態(tài)執(zhí)行的方法名稱為該狀態(tài)后其余步驟的順利執(zhí)行奠定基礎(chǔ)。

(5)WFItemStateHistory表。記錄工作流狀態(tài)轉(zhuǎn)換歷史,根據(jù)不同的轉(zhuǎn)換歷史記錄實現(xiàn)審批業(yè)務(wù)靈活擴展、審批工作流規(guī)則的靈活定制。

4結(jié)語

本文所研究的審批工作流引擎已經(jīng)運用于福建師范大學協(xié)和學院畢業(yè)論文過程管理系統(tǒng),系統(tǒng)能將用戶的工作任務(wù)自動推送到用戶登錄后的首頁,方便了用戶審批工作,提高了用戶工作效率,同時引擎還能能夠?qū)崿F(xiàn)工作流規(guī)則的靈活定制。當某審批申報流程發(fā)生變化時,在不改變系統(tǒng)的情況下,用戶只需修改定制相應(yīng)的流程規(guī)則,而不必修改代碼就可以保證系統(tǒng)正常使用,滿足用戶的需求。另外,在引擎中,相應(yīng)權(quán)限的用戶可以查看某個項目所處工作流中的狀態(tài)和位置,同時可以對項目所處的狀態(tài)進行管理,這將有助于管理用戶快速了解具體某項目的當前狀態(tài),同時有助于找尋某個流程步驟無法正常流轉(zhuǎn)的源頭。

參考文獻參考文獻:

\[1\]WFMC.The workflow reference model(WfMCTC1003)\[S\].Workflow,1995.

\[2\]沈振華,傅耀進.工作流技術(shù)在標準化網(wǎng)絡(luò)作業(yè)平臺中的應(yīng)用\[J\].華東電力,2008,36(4): 509510.

\[3\]李建強,范玉順.基于 Petri 網(wǎng)化簡方法的工作流模型驗證\[J\].信息與控制,2001,30(6):492497.

\[4\]黃鈞,范永全,郭勇.工作流管理系統(tǒng)在建設(shè)項目管理中的應(yīng)用\[J\].微型機與應(yīng)用,2002(9):4951.

\[5\]LINQ to SQL\[EB/OL\].http://msdn.microsoft.com/zhcn/library/bb386976.aspx.2008.

\[6\]唐文忠,林時棟,鄧靖文.基于工作流技術(shù)的構(gòu)件模型研究\[J\].計算機應(yīng)用研究\[J\].2008,25(7):20572059.

責任編輯(責任編輯:孫娟)

猜你喜歡
任務(wù)調(diào)度
基于動態(tài)能量感知的云計算任務(wù)調(diào)度模型
一種改進的wRR獨立任務(wù)調(diào)度算法研究
基于PEPA的云計算任務(wù)調(diào)度性能分析
基于改進NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
基于時間負載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
云計算中基于生物共生機制改進粒子群優(yōu)化的任務(wù)調(diào)度方案
基于小生境遺傳算法的相控陣雷達任務(wù)調(diào)度
面向異構(gòu)分布式計算環(huán)境的并行任務(wù)調(diào)度優(yōu)化方法
云計算環(huán)境中任務(wù)調(diào)度策略
云計算中基于進化算法的任務(wù)調(diào)度策略