亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用自我隔離工作流解決并發(fā)問題的探討

        2012-06-10 06:22:32李飛躍
        關(guān)鍵詞:設(shè)置

        李飛躍,張 敏,王 偉

        (成都工業(yè)學(xué)院 計(jì)算機(jī)工程系,成都 610031)

        工作流概念起源于JCL(Job Control Language,作業(yè)控制語言),其目的是讓用戶定義一組由工作步驟組成的工作流程。隨著信息技術(shù)的發(fā)展,要求考慮工作流執(zhí)行原子性和工作流隔離問題,即與工作流事務(wù)屬性相關(guān)的問題。為解決這一問題,重點(diǎn)放在工作流隔離請求描述以及如何在工作流管理系統(tǒng)中強(qiáng)制執(zhí)行這些請求。改進(jìn)并行控制方法,該方法的指導(dǎo)思想是:1)不過分加重工作流設(shè)計(jì)者的負(fù)擔(dān);2)用現(xiàn)有數(shù)據(jù)庫系統(tǒng)的服務(wù)就可以實(shí)現(xiàn)。

        為此,筆者提出了自我隔離工作流概念。這種工作流采用與傳統(tǒng)事務(wù)獲得和釋放鎖相似的方法來設(shè)置和取消約束。數(shù)據(jù)約束用來控制對數(shù)據(jù)項(xiàng)的修改,任務(wù)約束用來控制任務(wù)背后程序的執(zhí)行。這2種類型的約束都能用SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)的斷言表示,而且還能用數(shù)據(jù)庫系統(tǒng)中的服務(wù)強(qiáng)制執(zhí)行。通過控制對數(shù)據(jù)庫的接入實(shí)現(xiàn)工作流的交替執(zhí)行與限制任務(wù)的執(zhí)行。

        1 自我隔離工作流

        制造工作流包含重復(fù)、可預(yù)期和復(fù)雜處理。衡量工作流隔離好壞的標(biāo)準(zhǔn)是工作流的順序執(zhí)行,但對執(zhí)行時(shí)間很長的活動來說,順序執(zhí)行要求過分限制了系統(tǒng)的性能。顯然,工作流隔離(原子執(zhí)行性)應(yīng)是在下述之間的折衷:1)工作流執(zhí)行的正確性;2)工作流系統(tǒng)的性能;3)工作流規(guī)范和定義的簡單性。

        在工作流并發(fā)控制中,充分的隔離請求包含如下條件:1)保證某個(gè)屬性的值在一定的范圍;2)不能刪除某元組;3)某類型的元組數(shù)量是受限制的。

        本文采用與傳統(tǒng)并發(fā)控制中的鎖同樣的方法來進(jìn)行一致性約束。當(dāng)在并發(fā)控制中使用一致性約束時(shí),稱為數(shù)據(jù)約束。數(shù)據(jù)約束是由工作流實(shí)例創(chuàng)建和刪除的,數(shù)據(jù)約束特定于某個(gè)實(shí)例,由工作流或任務(wù)實(shí)例的輸入?yún)?shù)時(shí)產(chǎn)生。因此,一個(gè)給定工作流的不同實(shí)例可能會設(shè)置不同類型的數(shù)據(jù)約束,這種特點(diǎn)使得自由數(shù)據(jù)約束成為可能。

        獨(dú)立于對象自身的約束,控制程序執(zhí)行的約束稱為任務(wù)約束。數(shù)據(jù)和任務(wù)約束都在工作流描述中給出,工作流實(shí)例依據(jù)描述設(shè)置約束和刪除約束。具有這種特點(diǎn)的工作流即為自我隔離工作流。

        1.1 斷言

        SQL將斷言描述成由程序員指定的事件觸發(fā),使用斷言能在屬性的值、整個(gè)關(guān)系、幾個(gè)關(guān)系間的關(guān)聯(lián)上定義約束。斷言創(chuàng)建格式為:CREATE ASSERTION <name>CHECK <condition>。

        本文中工作流隔離請求使用斷言表示,1個(gè)工作流實(shí)例傳送1個(gè)斷言請求給SQL系統(tǒng),系統(tǒng)接受或拒絕該請求。

        1.2 已隔離工作流單元

        自我隔離工作流設(shè)置和取消數(shù)據(jù)與任務(wù)約束。每個(gè)約束依附于1個(gè)工作流單元,即1個(gè)工作流、子工作流或1個(gè)任務(wù)。在特定的任務(wù)中設(shè)置附屬于1個(gè)工作流單元的全部約束稱為設(shè)置隔離,相應(yīng)地在取消隔離任務(wù)中取消全部約束。含有這種額外任務(wù)的工作流單元稱為已隔離工作流單元。在圖1中用大寫字母U來表示這種已隔離工作流單元。

        圖1 已隔離工作流單元U

        1.3 數(shù)據(jù)約束

        1.3.1 表達(dá)數(shù)據(jù)約束

        設(shè)置隔離任務(wù)是設(shè)置一個(gè)或者多個(gè)約束的事務(wù)。如果斷言在數(shù)據(jù)庫中是無效的,則設(shè)置斷言失敗。通常,每個(gè)斷言生成一個(gè)關(guān)系且只有該關(guān)系為空時(shí)斷言才是有效的。

        為演示數(shù)據(jù)約束的使用,考慮貸款請求工作流的隔離問題,筆者將演示使用任務(wù)約束如何解決該隔離問題。

        貸款請求工作流隔離問題是指依據(jù)在貸款檢查約束中取得客戶已有貸款的情況下決定要不要放款。設(shè)置隔離和請求隔離任務(wù)使用貸款請求工作流的輸入?yún)?shù),假定貸款請求有3個(gè)輸入?yún)?shù):W_CNO,W_CNM,W_LA。因此,激活貸款請求工作流可以通過調(diào)用函數(shù)Loan_request(12345,LFY,100000)實(shí)現(xiàn)。

        現(xiàn)在設(shè)置隔離任務(wù)包含名為LoanIsolation(載入隔離)的事務(wù)。

        圖2 貸款請求處理工作流

        表1 活動貸款請求關(guān)系

        Proagam SetLoanIsolation(W_CNO,W_CNM,W_LA)

        Begin Transaction

        INSERT INTO ActiveLoanRequest

        VALUES(:W_CNO,:W_CNM,:W_LA)

        CREATE ASSERTION <system generated name>

        CHECK1=(SELECT COUNT(*)FROM ActiveRequest WHERE cno=:W_CNO);

        End Transaction

        首先,載入隔離事務(wù)試圖插入一個(gè)元組到關(guān)系A(chǔ)ctiveLoanRequest(活動貸款請求)中(如表1所示)。如果客戶已經(jīng)有一個(gè)活動貸款請求存在的話,則存在一活動斷言使得在ActiveLoanRequest中的插入失敗,這反過來意味著設(shè)置隔離失敗,否則,創(chuàng)建斷言成功。

        取消隔離事務(wù)如下:

        Proagam UnSetLoanIsolation(W_RequestNumber)

        Begin Transaction

        DROP ASSERTION <system generated name>

        DELETE FROM ActiveLoanRequest

        WHERE RequestNumber=:W_RequestNumber;

        End Transaction

        在上面的例子中,筆者強(qiáng)制執(zhí)行斷言限制特定類型的元組數(shù)量。

        1.3.2 管理數(shù)據(jù)約束

        比起傳統(tǒng)的鎖來講,在調(diào)度自我隔離工作流時(shí),每個(gè)工作流有一個(gè)它自己的正確性準(zhǔn)則,不需考慮數(shù)據(jù)約束之間是否有沖突。在管理數(shù)據(jù)約束[2]中,有必要檢查被請求的數(shù)據(jù)約束是否與數(shù)據(jù)庫的狀態(tài)存在沖突,如果請求(斷言)與數(shù)據(jù)庫狀態(tài)沖突則拒絕該請求;否則接受該請求。接受一個(gè)數(shù)據(jù)約束請求意味著該約束從接受它的時(shí)候開始生效,同時(shí),在數(shù)據(jù)約束廢棄前數(shù)據(jù)庫系統(tǒng)將強(qiáng)制執(zhí)行它的有效性。

        系統(tǒng)不用考慮數(shù)據(jù)約束之間是否有沖突的事實(shí),簡化了執(zhí)行,減輕了工作流系統(tǒng)的負(fù)擔(dān)。

        1.4 任務(wù)約束

        工作流系統(tǒng)存儲有關(guān)工作流實(shí)例能否繼續(xù)執(zhí)行的狀態(tài)信息。通過在狀態(tài)信息(關(guān)系)上設(shè)置約束來控制工作流實(shí)例的隔離,在狀態(tài)關(guān)系上設(shè)置約束意味著不允許有某特定執(zhí)行狀態(tài),將這種約束稱為任務(wù)約束。

        靜態(tài)任務(wù)約束與動態(tài)任務(wù)約束的區(qū)別是:1)靜態(tài)任務(wù)約束由工作流設(shè)計(jì)者建立;2)動態(tài)任務(wù)約束由工作流實(shí)例建立和刪除。

        設(shè)對每個(gè)工作流單元都存在一個(gè)稱為任務(wù)關(guān)系[3]的關(guān)系。任務(wù)關(guān)系的名字與工作流單元的名字相同,屬性由工作流單元的全部或部分輸入?yún)?shù)組成。任務(wù)約束的創(chuàng)建和刪除分別在設(shè)置隔離任務(wù)和取消隔離任務(wù)中進(jìn)行。如果任務(wù)約束與任務(wù)關(guān)系中的狀態(tài)沖突的話,創(chuàng)建任務(wù)約束就會失敗。與數(shù)據(jù)約束管理相似,接不接受任務(wù)約束是與其他任務(wù)約束無關(guān)的。

        筆者采用任務(wù)約束解決貸款請求工作流隔離問題。貸款請求工作流參數(shù)有客戶的名字、客戶的編號、貸款的數(shù)據(jù)。假定存在一個(gè)貸款請求任務(wù)關(guān)系實(shí)例(如表2所示)。關(guān)系實(shí)例表明李四有2個(gè)活動貸款請求,而張三和王五各有1個(gè)活動貸款請求。

        接下來在貸款請求關(guān)系中設(shè)置靜態(tài)與動態(tài)任務(wù)約束。如設(shè)置一個(gè)靜態(tài)任務(wù)約束,不允許2個(gè)元組具有相同的客戶編號來解決貸款請求并發(fā)問題。用下面的SQL語句實(shí)現(xiàn):

        使用動態(tài)任務(wù)約束[4-5]能描述更精細(xì)的隔離請求,例如,在開始處理王五的貸款請求時(shí)可能會在與貸款檢查子工作流相應(yīng)的任務(wù)關(guān)系上設(shè)置任務(wù)約束,該約束限定客戶編號屬性為12的元組最多只能有1個(gè)??捎萌缦抡Z句實(shí)現(xiàn):

        表2 貸款請求關(guān)系

        2 結(jié)語

        自我隔離工作流在數(shù)據(jù)庫的數(shù)據(jù)項(xiàng)或任務(wù)狀態(tài)信息上設(shè)置約束來實(shí)現(xiàn)工作流并發(fā)控制。數(shù)據(jù)約束與任務(wù)約束都能用SQL語言的斷言進(jìn)行表示。通過SQL斷言的表達(dá)能力能指明隔離工作流隔離請求,減輕了工作流設(shè)計(jì)者描寫選項(xiàng)和約束的負(fù)擔(dān),實(shí)現(xiàn)起來也很容易。

        [1]JEFFREY D U.?dāng)?shù)據(jù)庫系統(tǒng)基礎(chǔ)教程[M].3版.北京:機(jī)械工業(yè)出版社,2009.

        [2]劉慧,王寧,劉元元,等.一種基于約束的事務(wù)工作流并發(fā)控制方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011(12):181-184.

        [3]劉兵兵.一類帶延遲策略的庫存優(yōu)化模型及其仿真[J].計(jì)算機(jī)應(yīng)用,2009,29(10):2762-2765.

        [4]胡國玲.分布式移動代理系統(tǒng)的事務(wù)管理及死鎖檢測研究[J].微電子學(xué)與計(jì)算機(jī),2007,24(10):146-149.

        [5]郝麗波,李建華.基于隔離域的事務(wù)工作流并發(fā)控制[J].計(jì)算機(jī)工程與設(shè)計(jì),2008(1):199-202.

        猜你喜歡
        設(shè)置
        中隊(duì)崗位該如何設(shè)置
        船舶防火結(jié)構(gòu)及設(shè)置的缺陷與整改
        水上消防(2020年5期)2020-12-14 07:16:18
        中外醫(yī)學(xué)專業(yè)與??圃O(shè)置對比分析及啟示
        特殊場景下列控等級轉(zhuǎn)換的設(shè)置方案
        7招教你手動設(shè)置參數(shù)
        動車段(所)股道有效長設(shè)置研究
        我國中小學(xué)將設(shè)置人工智能相關(guān)課程
        玩具世界(2017年9期)2017-11-24 05:17:29
        吃紙的妖怪
        本刊欄目設(shè)置說明
        中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
        亚洲国产一区二区三区视频在线 | 人妻秘书被社长浓厚接吻| 国产亚洲一区二区三区综合片| 女局长白白嫩嫩大屁股| 久久久久久自慰出白浆| 中国人妻被两个老外三p| 男人的天堂在线无码视频| 精品女同av一区二区三区| 国产日本精品视频一区二区| 国产va免费精品观看精品| 亚洲永久精品ww47| 91热爆在线精品| 国产美腿丝袜一区二区| 完整版免费av片| 欧美一区二区三区视频在线观看| 婷婷丁香社区| 最新国产精品精品视频| 女人被躁到高潮嗷嗷叫免| av 日韩 人妻 黑人 综合 无码| 国产一区视频在线免费观看| 久久婷婷综合色拍亚洲| 精品一区二区三区牛牛| 丰满人妻被两个按摩师| 超碰97人人做人人爱少妇| 日本国产一区二区三区在线观看| 精品国产一区二区三区a| 人人爽人人爽人人片av| 亚洲AV永久无码制服河南实里| 人妻被猛烈进入中文字幕| 日本一二三区在线不卡| 久久96国产精品久久久| 久久国产精品波多野结衣av| 一区二区三区国产精品| 草逼短视频免费看m3u8| 污污内射在线观看一区二区少妇 | 亚洲aⅴ无码日韩av无码网站| 伊人狼人影院在线视频| 人妻体内射精一区二区三区| 曰本女人牲交全视频免费播放| 爱v天堂在线观看| 国家一级内射高清视频|