日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

OSWorkflow深層講解系列(二)流程實例的結(jié)束之一...

 昵稱2807 2008-07-14
OSWorkflow深層講解系列(二)流程實例的結(jié)束之一收藏

 

       下面來說說OSWorkflow流程實例的結(jié)束。

 

       workflow pattern中有一種模式:Implicit Termination(隱性終止)。這種模式描述了這樣一種情形:活動集中沒有任何可以執(zhí)行(或有可能執(zhí)行)的活動,此時流程實例已經(jīng)不能進行任何操作和運轉(zhuǎn)。

       這個和我們通常所說的死鎖,不是一回事情:流程的死鎖是表示流程實例依然存在可以運行(或必需運行的)的活動實例,但是由于缺少資源而不能執(zhí)行某項操作而造成流程實例沒有正常運行。這種情況最為典型的就是,某一個出差了,但是沒有設(shè)置代理,造成任務(wù)沒有執(zhí)行。

 

       OSWorkflow支持了Implicit Termination。當然OSWorkflow也支持我們最為常用的設(shè)置結(jié)束點。

 

先說說OSWorkflow對設(shè)置結(jié)束點的支持,這個是非常容易的,只需要將Step中的某一個Action的屬性finish的值設(shè)置為“true”即可。

       既然這么簡單,我為什么還要說呢?

       既然一個簡單東東還拿來說,那就說明這個東東其實不簡單。

讓我們來思考一個問題,OSWorkflow為什么會將finish這個屬性放在了Action而不是放在了Step上呢?

       依據(jù)我們通常說理解的:在眾多活動節(jié)點中,有一個結(jié)束節(jié)點,這個結(jié)束節(jié)點表示了流程實例結(jié)束的語義。實際上很多工作流引擎都是這么做的,shark,jbpm,yawl等等。

 

       這是因為在OSWorkflow視角中,并沒有一個Step這個概念。OSWorkflow真正只有兩個視角:StateAction。而stepstatus只是聯(lián)合扮演了state的角色。所以在OSWorkflow的執(zhí)行引擎類中,只有doAction等等操作方法,而沒有doStep之類的方法。

       對于執(zhí)行引擎來說,其只知道,任何一種狀態(tài),都必然意味著是由某種action所引起的變化結(jié)果。Action上設(shè)置Finish,表示這個Action只要發(fā)生,其產(chǎn)生的結(jié)果狀態(tài)就是“Finish”?!@是FSM(有限狀態(tài)機)的基本原則——一個Finish狀態(tài)的產(chǎn)生,就表示整個流程實例的結(jié)束。

 

       所以想把OSWorkflow的精華理解透徹,就必須在腦海中先暫時放棄“活動”、“結(jié)束點”、“起始點”之類的概念。—— 所以在這里順便說一句額外的話,OSWorkflow其實并不是非常適合剛剛結(jié)束工作流的初學(xué)者。剛剛接觸工作流的人,個人建議還是先鉆研鉆研WFMC的一些東東,雖然我們都說XPDL這不好,那不好,其實xpdl之中有很多值得參考的思想。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多