



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、淺談?dòng)肧QL實(shí)現(xiàn)工作流的并發(fā)控制 09-11-19 10:52:00 作者:陳根浪王澤兵馮雁 編輯:studa090420論文關(guān)鍵詞:工作流并發(fā)控制SQL數(shù)據(jù)約束任務(wù)約束 論文摘要:工作流技術(shù)在信息系統(tǒng)的應(yīng)用中,并發(fā)控制機(jī)制的設(shè)計(jì)是經(jīng)常要面臨的問(wèn)題。給出一種基于將工作流中數(shù)據(jù)和任務(wù)分離的工作流并發(fā)控制機(jī)制,在保證工作流正確性的前提下,引入“數(shù)據(jù)約束”和“任務(wù)約束”的概念來(lái)提高工作流的工作性能和降低工作流設(shè)計(jì)
2、的復(fù)雜性,并用數(shù)據(jù)庫(kù)中sQL語(yǔ)言強(qiáng)有力的約束控制加以實(shí)現(xiàn)。 1引言 工作流是針對(duì)工作中具有固定程序的常規(guī)活動(dòng)而提出的一個(gè)概念。通過(guò)將工作活動(dòng)分解成定義良好的任務(wù)、角色、規(guī)則和過(guò)程來(lái)進(jìn)行執(zhí)行和監(jiān)控,達(dá)到提高生產(chǎn)組織水平和工作效率的目的。一個(gè)工作流包括一組活動(dòng)及它們的相互順序關(guān)系,還包括過(guò)程及活動(dòng)的啟動(dòng)和終止條件,以及對(duì)每個(gè)活動(dòng)的描述川。工作流模型建立的目的是為了實(shí)現(xiàn)業(yè)務(wù)過(guò)程自動(dòng)化和用計(jì)算機(jī)來(lái)執(zhí)行,這就要求工作流模型不僅能夠描述活動(dòng)及其他們之間的相互連接關(guān)系,而且需要定義其他許多的信息,如組織、數(shù)據(jù)、資源等,同時(shí)對(duì)工作流模型的準(zhǔn)確性有很高的要求。 目前的工作流業(yè)務(wù)系統(tǒng)對(duì)系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)的并發(fā)訪問(wèn)
3、和異常錯(cuò)誤的解決還存在一定的缺陷。工作流實(shí)例在運(yùn)行過(guò)程中,有可能出現(xiàn)多個(gè)活動(dòng)同時(shí)訪問(wèn)共享資源的情況,多個(gè)活動(dòng)在數(shù)據(jù)操作上會(huì)相互重疊。為了保證系統(tǒng)能夠正常運(yùn)行,必須進(jìn)行并發(fā)控制(ConcurreneyControl),防止出現(xiàn)“臟數(shù)據(jù)”,等現(xiàn)象。 在本文中,我們將主要討論如何用SQL來(lái)實(shí)現(xiàn)工作流的并發(fā)控制,防止出現(xiàn)“臟數(shù)據(jù)”等現(xiàn)象。解決這個(gè)問(wèn)題的核心是如何讓這些獨(dú)立的活動(dòng)能夠擁有自己獨(dú)立的數(shù)據(jù),而在某個(gè)活動(dòng)需要訪問(wèn)共享資源而又正被其他活動(dòng)所擁有時(shí),讓其等待。并發(fā)控制的實(shí)現(xiàn)必須有兩個(gè)最基本的條件限制:每個(gè)活動(dòng)擁有共享資源的時(shí)間應(yīng)該最短;每個(gè)活動(dòng)應(yīng)該擁有盡可能少的共享資源4l。同時(shí),我們?cè)趯ふ医鉀Q方
4、法時(shí)還應(yīng)考慮以下兩個(gè)方面:不能過(guò)多地增加工作流設(shè)計(jì)的難度;盡可能地利用現(xiàn)有數(shù)據(jù)庫(kù)系統(tǒng)所提供的服務(wù)功能來(lái)實(shí)現(xiàn)。 為了達(dá)到以上的要求,我們引入類似傳統(tǒng)“鎖”機(jī)制的“約束”機(jī)制來(lái)實(shí)現(xiàn)。這里的“約束”是一種臨時(shí)的、強(qiáng)加在數(shù)據(jù)項(xiàng)(數(shù)據(jù)約束)或者任務(wù)狀態(tài)信息(任務(wù)約束)上的一致性限制。數(shù)據(jù)約束主要控制數(shù)據(jù)項(xiàng)的修改,而任務(wù)約束主要控制任務(wù)中各個(gè)活動(dòng)間的執(zhí)行順序,因而工作流中各活動(dòng)間的相互關(guān)系可以通過(guò)控制對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和限制各個(gè)活動(dòng)的執(zhí)行順序來(lái)體現(xiàn),而這兩者的限制均能通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMs)中的SQL查詢語(yǔ)言來(lái)實(shí)現(xiàn)。 2一個(gè)工作流實(shí)例 工作流根據(jù)所實(shí)現(xiàn)的業(yè)務(wù)過(guò)程可以分為管理型工作流(Adillinist
5、rativeW rkflow)、設(shè)定型工作流(AdhoeWOrkflow)、協(xié)作型工作流(CollaborativeW6rkflow)和生產(chǎn)型工作流(ProduetionWbrkflow)!,。在本文中,我們所討論的工作流是基于生產(chǎn)型工作流,它應(yīng)用在一個(gè)大規(guī)模、復(fù)雜和異構(gòu)的環(huán)境下,包括一個(gè)周期重復(fù)的、可預(yù)測(cè)的復(fù)雜過(guò)程,同時(shí),它還要接受和處理來(lái)自各個(gè)層次和各個(gè)方面的數(shù)據(jù)。下面我們簡(jiǎn)單介紹一下這一工作流的情況。 在圖1中所示的工作流是基于一個(gè)供電系統(tǒng)內(nèi)部的物資領(lǐng)料過(guò)程。當(dāng)一份領(lǐng)料單到來(lái)時(shí),這一工作流開(kāi)始啟動(dòng)。領(lǐng)料開(kāi)票人將領(lǐng)料單中信息輸入電子表格同時(shí)產(chǎn)生一條新的紀(jì)錄,接著兩個(gè)并行任務(wù)將被執(zhí)
6、行:庫(kù)存檢查檢查庫(kù)中物資種類和數(shù)量是否能夠滿足需要;計(jì)劃審批驗(yàn)證驗(yàn)證該張領(lǐng)料單是否經(jīng)過(guò)相關(guān)部門審批。如果上述兩個(gè)驗(yàn)證均能通過(guò),則確認(rèn)領(lǐng)料、產(chǎn)生銷售清單、結(jié)賬,最后從倉(cāng)庫(kù)中發(fā)料。其中每個(gè)任務(wù)都要涉及到對(duì)數(shù)據(jù)庫(kù)的讀和寫操作。 3工作流分解數(shù)據(jù)和任務(wù)的分離 在圖1中所提到的領(lǐng)料工作流中,有兩種典型的情況必須加以說(shuō)明:在物資管理系統(tǒng)中經(jīng)常出現(xiàn)多個(gè)工作流同時(shí)啟動(dòng),因而開(kāi)票員將信息輸入電子表格的同時(shí)必須為每條紀(jì)錄提供一個(gè)唯一且沒(méi)有沖突的領(lǐng)料編號(hào),但是在這個(gè)任務(wù)沒(méi)有結(jié)束前,開(kāi)票員可能會(huì)取消操作或者出現(xiàn)其他異常情況,導(dǎo)致工作流沒(méi)法正常結(jié)束。為了保證其領(lǐng)料編號(hào)的唯一且不沖突只能采用串行化操作;假定一領(lǐng)料單己經(jīng)執(zhí)
7、行庫(kù)存檢查和計(jì)劃審批驗(yàn)證兩個(gè)任務(wù),而且己經(jīng)完成結(jié)賬,但是單子中的物資還沒(méi)有從庫(kù)中領(lǐng)走,而此時(shí)有另一單子也要求領(lǐng)與上一單子相同的物資,但是庫(kù)中的物資數(shù)量只能滿足一張單子的要求,如何解決他們兩者之間的沖突,從而不至于違反數(shù)據(jù)庫(kù)的一致性約束,又不得不要求工作流只能采用串行化操作。 如果不能有效地解決以上的問(wèn)題,那這一工作流的系統(tǒng)性能將大打折扣,而且根本沒(méi)法滿足現(xiàn)代業(yè)務(wù)管理系統(tǒng)的要求。典型的解決方法有ATM(AdvancedTransaetionModel)方法、TransaetionalTaskInte腳tion、語(yǔ)義鎖(SemantieLoeking)和沖突說(shuō)明(ConflietSPeeifiea
8、tion),但是工作流的形式過(guò)于多種多樣,單一的一種解決方法沒(méi)法滿足具體的某一工作流的需要,因而我們?cè)陧?xiàng)目開(kāi)發(fā)的實(shí)際過(guò)程中采用了一種基于將數(shù)據(jù)和任務(wù)分開(kāi)的方法,類似于操作系統(tǒng)中進(jìn)程主體與系統(tǒng)資源分開(kāi),而進(jìn)程主體應(yīng)獲得其最小資源的思想。它綜合考慮了以下3個(gè)因素:工作流執(zhí)行的正確性;工作流的系統(tǒng)性能;一工作流模型建立和管理的復(fù)雜度。 我們分析前面兩種需要串行化操作才能完成的情況,整個(gè)過(guò)程基本上都是通過(guò)不停地訪問(wèn)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)的,其中最主要的就是對(duì)數(shù)據(jù)庫(kù)的讀寫操作。我們把一組不可分割的數(shù)據(jù)庫(kù)操作視為一個(gè)原子操作,同時(shí)我們把任務(wù)或活動(dòng)主體完成這一操作需要訪問(wèn)的共享資源視為臨界資源。多個(gè)任務(wù)訪問(wèn)和擁有這些
9、資源必須滿足“空閑占有,忙則等待”的原則。 為了將數(shù)據(jù)和任務(wù)分開(kāi),同時(shí)能保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、有效性和一致性,并且能滿足數(shù)據(jù)庫(kù)中自定義的各種完整性約束規(guī)則,我們引入了“數(shù)據(jù)約束”和“任務(wù)約束”。我們的思想是運(yùn)用類似于典型的并發(fā)控制中的“鎖”約束來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的完整性和一致性約束,但是它又不同于“鎖”約束。我們引入的“數(shù)據(jù)約束”和“任務(wù)約束”是一個(gè)短時(shí)間的約束控制,他們隨著工作流實(shí)例的啟動(dòng)而創(chuàng)建,隨著工作流的結(jié)束而撤銷。另一方面,“數(shù)據(jù)約束”隨工作流或者任務(wù)實(shí)例的輸入?yún)?shù)的不同而不同,不同的實(shí)例將建立不同的“數(shù)據(jù)約束”和“任務(wù)約束”?!皵?shù)據(jù)約束”主要是為了保證正確的數(shù)據(jù)輸入能夠得到正確的數(shù)據(jù)輸
10、出,同時(shí)實(shí)現(xiàn)數(shù)據(jù)庫(kù)中的各種靜態(tài)約束、動(dòng)態(tài)約束和自定義約束,而“任務(wù)約束”是為了保證工作流中各個(gè)任務(wù)能夠按照他們之間的相互關(guān)系、前后順序正確地執(zhí)行。在上述工作流中,我們將實(shí)現(xiàn)某一活動(dòng)執(zhí)行的正確性和控制多個(gè)活動(dòng)間的執(zhí)行順序作為兩個(gè)目標(biāo)來(lái)分開(kāi)處理。譬如在庫(kù)存檢查中,“數(shù)據(jù)約束”是為了保證滿足庫(kù)中的物資數(shù)量不能低于最低數(shù)量的限制,而“任務(wù)約束”是為了保證領(lǐng)料單只有在執(zhí)行完庫(kù)存檢查和計(jì)劃審批驗(yàn)證后才能執(zhí)行領(lǐng)料操作。 “數(shù)據(jù)約束”和“任務(wù)約束”都在工作流模型設(shè)計(jì)說(shuō)明中指定。一個(gè)工作流實(shí)例通過(guò)設(shè)定約束和撤銷約束來(lái)合理調(diào)度并發(fā)事務(wù),避免并發(fā)事務(wù)之間的互相干擾造成數(shù)據(jù)的不一致性,從而提高系統(tǒng)的性能。 4并發(fā)控制
11、的實(shí)現(xiàn) 4.1數(shù)據(jù)約束的實(shí)現(xiàn) SQL查詢語(yǔ)言作為數(shù)據(jù)庫(kù)管理系統(tǒng)中的一個(gè)重要組成部分,它提供了極其強(qiáng)大的約束限制實(shí)現(xiàn)功能,其中包括關(guān)鍵值約束、域約束、實(shí)體完整性約束和參照完整性約束以及各種用戶自定義的約束。數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程是經(jīng)預(yù)編譯和優(yōu)化后的SQL語(yǔ)句和流程控制語(yǔ)句的集合。利用它以下的幾個(gè)特點(diǎn)可以用來(lái)實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯:接受輸入的參數(shù)后返回結(jié)果給調(diào)用的過(guò)程;可以調(diào)用其他的過(guò)程;可以返回一個(gè)狀態(tài)字,指出調(diào)用的成果與失敗;比一般的SQL程序運(yùn)行速度更快、更簡(jiǎn)單,使得存儲(chǔ)過(guò)程更快、更可行。 觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,只要表格的數(shù)據(jù)改變,它會(huì)在任何時(shí)刻自動(dòng)調(diào)用。其作用體現(xiàn)在以下3個(gè)方面:觸發(fā)器可以不
12、允許違反參考完整性的操作,這樣可取消企圖修改數(shù)據(jù)的事務(wù);觸發(fā)器可以執(zhí)行比用CHECK定義復(fù)雜的約束;觸發(fā)器可發(fā)現(xiàn)數(shù)據(jù)改變前后的不同,然后基于這個(gè)不同進(jìn)行動(dòng)作。正是因?yàn)榇鎯?chǔ)過(guò)程和觸發(fā)器能夠提供這么強(qiáng)大的功能,我們?cè)趯?shí)現(xiàn)“數(shù)據(jù)約束”和“任務(wù)約束”的過(guò)程中使用了比較多的存儲(chǔ)過(guò)程和觸發(fā)器?,F(xiàn)在我們考慮解決圖l中兩張領(lǐng)料單領(lǐng)用相同物資的問(wèn)題。 在圖2中當(dāng)領(lǐng)料單輸入時(shí)開(kāi)始整個(gè)任務(wù)過(guò)程,根據(jù)領(lǐng)料單中的信息建立相關(guān)的約束,保證下面活動(dòng)能夠進(jìn)行串行化操作,接著檢查種類和數(shù)量,確認(rèn)能夠滿足需要時(shí)從倉(cāng)庫(kù)里發(fā)料,減掉相應(yīng)的數(shù)量,最后撤銷約束,允許其他任務(wù)繼續(xù)執(zhí)行。圖2中設(shè)定領(lǐng)料約束的實(shí)現(xiàn)如下: CREAT JEPROCEDURESetReeeiveCheck P一ReeeiveNumberChar(10), P一MaterialNumberChar(10) AS Begin Deelare P一Amountint S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)醋酸甲酯市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)螺絲刀行業(yè)運(yùn)營(yíng)狀況與發(fā)展戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)苯酚丙酮市場(chǎng)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)罐裝茶行業(yè)發(fā)展趨勢(shì)及競(jìng)爭(zhēng)調(diào)研分析報(bào)告
- 2025-2030年中國(guó)紙尿褲制造行業(yè)運(yùn)行態(tài)勢(shì)及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)粽子市場(chǎng)運(yùn)行狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)管理財(cái)務(wù)軟件市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025福建省建筑安全員-C證考試(專職安全員)題庫(kù)附答案
- 2025-2030年中國(guó)電石產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)與發(fā)展趨勢(shì)分析報(bào)告
- 皖西衛(wèi)生職業(yè)學(xué)院《貿(mào)易實(shí)務(wù)操作實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新能源汽車驅(qū)動(dòng)電機(jī)及控制系統(tǒng)檢修課件 學(xué)習(xí)情境1:驅(qū)動(dòng)電機(jī)的認(rèn)知
- 2024年采購(gòu)部年終總結(jié)
- 打深水井施工方案
- 企業(yè)名稱預(yù)先核準(zhǔn)通知書
- 統(tǒng)籌管理方案
- 習(xí)作《我的家人 》教案-2024-2025學(xué)年統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)
- 眼鏡學(xué)智慧樹(shù)知到答案2024年溫州醫(yī)科大學(xué)
- 24年注安-其他安全-必背考點(diǎn)-王培山
- 《積極心理學(xué)(第3版)》 課件 第9章 積極的愛(ài)
- 中醫(yī)淋巴排毒
- 第四屆檔案職業(yè)技能競(jìng)賽理論試題庫(kù)資料-上(選擇題)
評(píng)論
0/150
提交評(píng)論