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

        ?

        基于WF狀態(tài)機(jī)工作流的日常工作管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2015-01-27 01:30:52錢維平
        關(guān)鍵詞:狀態(tài)機(jī)責(zé)任人實(shí)例

        錢維平,王 堅(jiān)

        (同濟(jì)大學(xué) CIMS 研究中心,上海 201804)

        0 引言

        Windows Workflow Foundation(WF)是關(guān)于工作流的架構(gòu),它提供了可視化的界面工具,并且支持在ASP.NET 應(yīng)用程序中直接執(zhí)行工作流[1]。這些優(yōu)點(diǎn)使得開發(fā)者可以在WF 中建模并定義規(guī)則來(lái)描述系統(tǒng)的處理過(guò)程,從而能夠有效地實(shí)現(xiàn)業(yè)務(wù)的自動(dòng)化處理。

        本文以企業(yè)日常工作管理系統(tǒng)為例,以ASP.NET為開發(fā)平臺(tái),通過(guò)分析工作業(yè)務(wù)處理過(guò)程中所要經(jīng)歷的步驟,然后在WF 工作流的設(shè)計(jì)平臺(tái)下使用工作流模型模擬相關(guān)業(yè)務(wù)的處理過(guò)程,從而有效地解決了傳統(tǒng)日常工作管理系統(tǒng)由于流程變化所帶來(lái)的許多問題。

        1 系統(tǒng)設(shè)計(jì)

        1.1 系統(tǒng)架構(gòu)設(shè)計(jì)

        本系統(tǒng)采用的是基于MVC 的三層體系架構(gòu)。它將整個(gè)系統(tǒng)業(yè)務(wù)的處理按照Model(模型)、View(視圖)、Controller(控制器)的方式進(jìn)行分離,三個(gè)核心部件處理各自的任務(wù)[2]。MVC 三層體系架構(gòu)設(shè)計(jì)模式如圖1 所示。

        圖1 MVC 三層體系架構(gòu)設(shè)計(jì)模式Fig.1 MVC three-layer architecture design pattern

        模型封裝了系統(tǒng)數(shù)據(jù)庫(kù)中的字段及相應(yīng)的業(yè)務(wù)規(guī)則和邏輯關(guān)系,并包含了數(shù)據(jù)驗(yàn)證等相關(guān)的業(yè)務(wù)操作。

        視圖代表用戶交互界面,如本系統(tǒng)中發(fā)布人發(fā)布工作頁(yè)面等,視圖頁(yè)沒有任何邏輯代碼,用于將用戶動(dòng)作傳遞給控制器,并以可視化界面的形式將相應(yīng)模型中的數(shù)據(jù)顯示出來(lái)[3]。

        控制器將數(shù)據(jù)發(fā)送給模型,執(zhí)行模型中的操作,最后呈現(xiàn)合適的工作管理系統(tǒng)頁(yè)面。

        1.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)

        本系統(tǒng)需建立日常工作數(shù)據(jù)庫(kù)(DailyWork)和持久化服務(wù)數(shù)據(jù)庫(kù)(WorkflowPersistence)。日常工作數(shù)據(jù)庫(kù)(DailyWork)用來(lái)存儲(chǔ)和管理系統(tǒng)中的數(shù)據(jù),該數(shù)據(jù)庫(kù)中有總公司日常工作記錄表、子公司日常工作記錄表、企業(yè)信息表以及企業(yè)職員信息表。持久化服務(wù)數(shù)據(jù)庫(kù)保存了未完成的工作流實(shí)例。系統(tǒng)數(shù)據(jù)表詳見表1。

        表1 系統(tǒng)數(shù)據(jù)表Tab.1System datasheet

        2 系統(tǒng)中的主要技術(shù)與實(shí)現(xiàn)

        2.1 WF 的基本工作原理

        工作流實(shí)例的執(zhí)行按照預(yù)先定義好的規(guī)則進(jìn)行,工作流實(shí)例執(zhí)行時(shí)的環(huán)境由工作流運(yùn)行時(shí)提供[4]。宿主應(yīng)用程序承載工作流運(yùn)行時(shí)類的實(shí)例,并由工作流引擎實(shí)現(xiàn)和管理工作流運(yùn)行。

        通信Service 服務(wù)實(shí)現(xiàn)宿主程序與工作流之間的數(shù)據(jù)交換。開發(fā)者也可以設(shè)計(jì)通信信道,并定義接口,使宿主程序與活動(dòng)之間通過(guò)事件傳遞參數(shù)的方式進(jìn)行通信并完成數(shù)據(jù)交換。

        工作流管理系統(tǒng)[5,6]是一種人機(jī)交互的系統(tǒng)。未完成的工作流實(shí)例不能一直保存在內(nèi)存當(dāng)中,需要進(jìn)行工作流持久化操作。工作流的持久化就是在持久化存儲(chǔ)(如SQL數(shù)據(jù)庫(kù))里,保存工作流的一些狀態(tài)信息,如實(shí)例Id。

        2.2 工作流類型

        WF 中的工作流類型有順序工作流和狀態(tài)機(jī)工作流。順序工作流按照一定的順序和過(guò)程執(zhí)行各項(xiàng)定義的活動(dòng)。狀態(tài)機(jī)工作流從初始狀態(tài)開始到終止?fàn)顟B(tài)結(jié)束由宿主應(yīng)用程序觸發(fā)的外部事件驅(qū)動(dòng)。

        日常工作管理系統(tǒng)業(yè)務(wù)過(guò)程涉及到提交和回退動(dòng)作,且開發(fā)者無(wú)法事先知道業(yè)務(wù)的執(zhí)行順序。順序工作流的思想會(huì)將這種業(yè)務(wù)類型的處理變得很復(fù)雜,根據(jù)狀態(tài)機(jī)工作流的思想來(lái)建模卻可以高效地完成業(yè)務(wù)的處理[7]:通過(guò)在業(yè)務(wù)實(shí)體之間建立若干個(gè)狀態(tài)(其中必須建立一個(gè)起始狀態(tài)和終止?fàn)顟B(tài),分別代表工作流的開始與結(jié)束),每個(gè)狀態(tài)包括多個(gè)活動(dòng)用來(lái)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理。在狀態(tài)發(fā)生變化時(shí),通過(guò)事件驅(qū)動(dòng)實(shí)現(xiàn)一系列復(fù)雜的操作。

        2.3 狀態(tài)機(jī)工作流實(shí)現(xiàn)

        本系統(tǒng)業(yè)務(wù)流程為:安環(huán)處發(fā)布一項(xiàng)工作,責(zé)任人填寫并提交工作,安環(huán)處對(duì)責(zé)任人提交的工作進(jìn)行審核,若審核通過(guò),則流程結(jié)束,若退回責(zé)任人提交的工作,則責(zé)任人需要重新提交工作直到審核通過(guò)為止。相關(guān)業(yè)務(wù)流程如圖2 所示。

        圖2 日常工作管理業(yè)務(wù)流程Fig.2 Business process of daily work management

        在Visual Studio 2010 中,使用“狀態(tài)機(jī)工作流”模板新建WorkPlanWorkflows項(xiàng)目。在項(xiàng)目中新建一個(gè)名為 IDaily-WorkPlan 的 C# 接口,在接口中定義本地服務(wù)公開給工作流的事件和方法[8]。

        在工作流設(shè)計(jì)界面添加“PublisherState”、“ResponsiblePersonState”、“DoneWithWorkState”等State 活動(dòng),分別對(duì)應(yīng)發(fā)布人狀態(tài)、責(zé)任人狀態(tài)和工作流結(jié)束三個(gè)狀態(tài)。然后按照業(yè)務(wù)流程向各個(gè)State 狀態(tài)中添加所需要的EventDriven 活動(dòng),并且需要為個(gè)EventDriven 活動(dòng)添加一個(gè)HandleExternalEvent 子活動(dòng),用來(lái)將活動(dòng)與IDaily-WorkPlan 接口中的事件綁定起來(lái),并通過(guò)各個(gè)Handle-ExternalEvent 活動(dòng)的Invoked 屬性創(chuàng)建相關(guān)的事件。最后,將添加好的狀態(tài)之間的關(guān)系進(jìn)行關(guān)聯(lián),如圖3 所示。

        圖3 日常工作計(jì)劃管理業(yè)務(wù)邏輯圖Fig.3 Business logic of daily work management

        當(dāng)發(fā)布人發(fā)布一條工作時(shí),PublisherPublishEvent 事件指向ResponsiblePersonState 狀態(tài),責(zé)任人提交工作后,PersonSubmitEvent 事件指向PublisherState 狀態(tài),若發(fā)布人對(duì)工作審核通過(guò),即PublisherPassEvent 事件,則轉(zhuǎn)向DoneWithWorkState 狀態(tài),代表工作流結(jié)束。若對(duì)工作進(jìn)行退回操作,即PublisherRetreatedEvent 事件,則再次返回到ResponsiblePersonState 狀態(tài)。

        2.4 宿主應(yīng)用程序?qū)崿F(xiàn)

        完成了工作流持久化數(shù)據(jù)庫(kù)的配置及狀態(tài)機(jī)工作流的實(shí)現(xiàn)后,需要實(shí)現(xiàn)MVC 設(shè)計(jì)模式下的ASP.NET Web宿主應(yīng)用程序。

        首先,需要在模型中封裝工作計(jì)劃(WorkPlan)類的屬性,并實(shí)現(xiàn)對(duì)日常工作數(shù)據(jù)庫(kù)中數(shù)據(jù)的添加、查詢、更新等操作方法。其次,在控制器中實(shí)現(xiàn)工作流運(yùn)行時(shí)初始化,然后通過(guò)工作流類型啟動(dòng)工作流實(shí)例。

        安環(huán)處對(duì)應(yīng)的頁(yè)面有“添加工作”、“審核工作”等多個(gè)頁(yè)面。責(zé)任人對(duì)應(yīng)有“填寫工作”,“編輯工作”“提交工作”等頁(yè)面。其中“添加工作”頁(yè)面中的“發(fā)布”按鈕的Click 事件處理程序包含了啟動(dòng)工作流實(shí)例的代碼。責(zé)任人“填寫工作”頁(yè)面的“提交”按鈕的Click 事件會(huì)觸發(fā)工作流的HandleExternal 類型的活動(dòng),未完成的工作流實(shí)例被重新加載后安環(huán)處就可以執(zhí)行審核通過(guò)和退回的操作。責(zé)任人填寫工作頁(yè)面如圖4 所示。

        圖4 責(zé)任人填寫工作頁(yè)面Fig.4 Page for the responsible to fill out a job

        目前該系統(tǒng)在企業(yè)使用,可以解決流程變化和軟件維護(hù)所帶來(lái)的很多問題。

        3 結(jié)束語(yǔ)

        本文首先分析了WF 基本工作原理及模型,然后以企業(yè)日常工作管理系統(tǒng)為例,并建立狀態(tài)機(jī)工作流模型,實(shí)現(xiàn)了完整的工作流管理系統(tǒng)。MVC 設(shè)計(jì)模式將模型、視圖、控制器分離,使得軟件層次分明,真正意義上實(shí)現(xiàn)了工作流系統(tǒng)的靈活性和重用率。

        [1]Dharma Shukla,Bob Schmidt;周健(譯).WF 本質(zhì)論/(美)[M].北京:機(jī)械工業(yè)出版社,2007.

        [2]林舒萍,等.設(shè)計(jì)模式的應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,11.

        [3]張麗君,齊建卓,吳宏波.基于MVC 模式的Struts 框架在Web 系統(tǒng)開發(fā)中的應(yīng)用[J].內(nèi)蒙古大學(xué)學(xué)報(bào),2005,1.

        [4]Bruce Bukovics;柴曉偉(譯).WF 高級(jí)程序設(shè)計(jì)/(美)[M].北京:人民郵電出版社,2009.

        [5]業(yè)寧,張愛珍,董逸生.一種可視化OA 工作流設(shè)計(jì)工具[J].計(jì)算機(jī)應(yīng)用,2003,5.

        [6]Holling Sworth D.WorkFlow Manamgement Coalition Specifieation:Terminology&Glossary.Doeument Number WFMC-TC-1011,Brussels,1996.

        [7]陳誼,侯堃,新吉樂,等.基于XML 和關(guān)系數(shù)據(jù)庫(kù)的可視化工作流系統(tǒng)[J].系統(tǒng)仿真學(xué)報(bào),2012,1.

        [8]楊琦. 工作流技術(shù)在高校教務(wù)管理系統(tǒng)中的應(yīng)用與研究[J].IT 技術(shù)論壇,2008,16.

        猜你喜歡
        狀態(tài)機(jī)責(zé)任人實(shí)例
        當(dāng)好“四種人” 履行好第一責(zé)任人責(zé)任
        遵守安全生產(chǎn)法 當(dāng)好第一責(zé)任人
        四問蘭州布菌事件:怎么賠償? 責(zé)任人處理太輕?
        新娘敬酒時(shí)受傷 責(zé)任人依法賠償
        公民與法治(2020年4期)2020-05-30 12:31:28
        基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
        完形填空Ⅱ
        完形填空Ⅰ
        FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
        基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
        基于VHDL的一個(gè)簡(jiǎn)單Mealy狀態(tài)機(jī)
        一区二区三区四区中文字幕av| 亚洲福利天堂网福利在线观看| 男人的av天堂狠狠操| 中文字幕34一区二区| 中国午夜伦理片| 97精品伊人久久大香线蕉| 亚洲高清视频在线播放| 男人的天堂av你懂得| 加勒比hezyo黑人专区| 少妇人妻偷人精品视蜜桃| 99re国产电影精品| 爱爱免费视频一区二区三区| 成人国成人国产suv| 久久中文字幕人妻熟av女蜜柚m| 亚洲国产成人无码电影| 精品极品视频在线观看| 国产亚av手机在线观看| 天天操夜夜操| 亚洲伊人免费综合网站| 中文字幕乱码在线人妻| 无码人妻av一二区二区三区| 亚洲性啪啪无码AV天堂| 青青草精品在线免费观看 | 久久婷婷夜色精品国产| 日本精品女优一区二区三区| 亚洲av无码潮喷在线观看| 亚洲精品天堂av免费看| 亚洲精品中文字幕乱码| 小辣椒福利视频导航| 久青草国产视频| 在线一区二区三区免费视频观看| 白嫩丰满少妇av一区二区| 大肉大捧一进一出好爽视频mba| 国产精品情侣露脸av在线播放| 日韩中文字幕在线丰满| 熟女少妇内射日韩亚洲| 久久综合网天天 | 福利视频在线一区二区三区| 777精品出轨人妻国产| 欧美人与动牲交片免费| 亚洲av性色精品国产|