• <input id="zdukh"></input>
  • <b id="zdukh"><bdo id="zdukh"></bdo></b>
      <b id="zdukh"><bdo id="zdukh"></bdo></b>
    1. <i id="zdukh"><bdo id="zdukh"></bdo></i>

      <wbr id="zdukh"><table id="zdukh"></table></wbr>

      1. <input id="zdukh"></input>
        <wbr id="zdukh"><ins id="zdukh"></ins></wbr>
        <sub id="zdukh"></sub>
        公務(wù)員期刊網(wǎng) 論文中心 正文

        WF工作流工程設(shè)計(jì)論文

        前言:想要寫(xiě)出一篇引人入勝的文章?我們特意為您整理了WF工作流工程設(shè)計(jì)論文范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。

        WF工作流工程設(shè)計(jì)論文

        1.wf簡(jiǎn)介

        目前各大軟件廠商都推出了工作流產(chǎn)品。從.NETFramework3.0開(kāi)始,微軟推出了一個(gè)全新的基于Windows平臺(tái)的工作流產(chǎn)品WorkflowFoundation(簡(jiǎn)稱(chēng)WF),作為.NET中的一個(gè)標(biāo)準(zhǔn)組件,目前最新的版本是WF4.5。相對(duì)WfMC對(duì)工作流的抽象定義,微軟對(duì)工作流的定義體現(xiàn)了其在WF中的設(shè)計(jì)思想:工作流是一組存儲(chǔ)為模型的名為活動(dòng)的基本單元,活動(dòng)用于描述實(shí)際進(jìn)程;工作流提供了一種方法,用于描述多項(xiàng)短期運(yùn)行或長(zhǎng)期運(yùn)行的工作之間的執(zhí)行順序和依賴(lài)關(guān)系;此工作從頭到尾地貫穿模型,并且活動(dòng)可以人工執(zhí)行或由系統(tǒng)功能執(zhí)行。WF的組成主要包括以下幾個(gè)部分:

        (1)活動(dòng)模型(ActivityModel):活動(dòng)是構(gòu)建WF工作流的基本單元,可以通過(guò)代碼的方式編寫(xiě)活動(dòng)或用已有的活動(dòng)組合成一個(gè)復(fù)合活動(dòng)。

        (2)工作流設(shè)計(jì)器(WorkflowDesigner):從MicrosoftVisu-alStudio2005開(kāi)始,VisualStudio提供了一個(gè)工作流設(shè)計(jì)器,開(kāi)發(fā)者也可以根據(jù)需要開(kāi)發(fā)設(shè)計(jì)出完全獨(dú)立于VisualStudio的工作流設(shè)計(jì)器。

        (3)規(guī)則引擎(RulesEngine):可以被工作流所調(diào)用,為工作流提供條件轉(zhuǎn)移規(guī)則。

        (4)工作流運(yùn)行時(shí)(WorkflowRuntime):一個(gè)輕量級(jí)、可擴(kuò)展的引擎執(zhí)行環(huán)境,需要運(yùn)行在宿主程序中。WF在工作流活動(dòng)狀態(tài)的持久化、異常處理、事務(wù)管理、WebService通信、流程的動(dòng)態(tài)更新等方面都給予了大量的支持,能快速開(kāi)發(fā)Windows平臺(tái)上C/S或B/S框架的工作流應(yīng)用。近年來(lái),WF已逐漸成為Windows平臺(tái)上工作流開(kāi)發(fā)研究的主流方向之一。

        2.WF工作流引擎體系結(jié)構(gòu)

        WF引擎的體系結(jié)構(gòu)共分四層:工作流模型層、運(yùn)行時(shí)層、宿主層、宿主程序?qū)印?/p>

        2.1工作流模型層(WorkflowModelLayer)

        工作流模型層是WF的應(yīng)用開(kāi)發(fā)層,支持不同類(lèi)型的工作流模型,提供了很多開(kāi)箱即用的活動(dòng)(OutofboxActivi-ties),以及活動(dòng)和規(guī)則編輯API。開(kāi)箱即用活動(dòng)可以分為順序、狀態(tài)機(jī)和策略三類(lèi)。此外,用戶(hù)還可以通過(guò)自定義活動(dòng)的方式,擴(kuò)充WF的活動(dòng)庫(kù)。

        2.2運(yùn)行時(shí)層(RuntimeLayer)

        運(yùn)行時(shí)層是WF的核心部分,包含執(zhí)行工作流和管理工作流生命周期必需的關(guān)鍵服務(wù):

        (1)執(zhí)行(Execution):確定流程中活動(dòng)被執(zhí)行的時(shí)間,并且維持一些公共行為,如事件處理、異常、跟蹤和事務(wù)等。

        (2)跟蹤(Tracking):主要是建立經(jīng)跟蹤接口序列化過(guò)的跟蹤事件。

        (3)調(diào)度(Scheduler):按調(diào)度表執(zhí)行各種活動(dòng)。

        (4)規(guī)則(Rules):提供了策略執(zhí)行功能和對(duì)代碼文檔對(duì)象模型條件值的計(jì)算。

        (5)狀態(tài)管理(StateManagement):負(fù)責(zé)管理經(jīng)持久化接口持久化的各種狀態(tài)。

        2.3宿主層(HostingLayer)

        宿主層提供WF的運(yùn)行時(shí)層與宿主程序之間各種關(guān)鍵服務(wù)的接口,包括持久化服務(wù)、通信服務(wù)、跟蹤服務(wù)、定時(shí)器服務(wù)、線(xiàn)程服務(wù)和事務(wù)服務(wù)等。用戶(hù)也可以根據(jù)需要自定義服務(wù)。2.3.4宿主程序?qū)樱℉ostProcessLayer)宿主程序是一個(gè)調(diào)用者,為用戶(hù)提供交互的圖形用戶(hù)界面。工作流引擎則運(yùn)行在服務(wù)器上為宿主程序提供服務(wù)并管理工作流。Windows平臺(tái)下很多不同類(lèi)型的應(yīng)用程序都可以作為WF的宿主程序,比如控制臺(tái)程序、窗體表單應(yīng)用程序,

        2.4WF支持的工作流類(lèi)型WF

        支持兩種工作流:順序工作流和狀態(tài)機(jī)工作流[5]。

        (1)順序工作流模型(SequentialWorkflowModel)順序工作流是一個(gè)連續(xù)的活動(dòng)序列,流程一旦開(kāi)始,各個(gè)活動(dòng)將按照流程定義的順序自我驅(qū)動(dòng)逐個(gè)執(zhí)行,直到整個(gè)工作流完成為止。盡管順序工作流可以使用分支和循環(huán),也可以接收外部事件,但它的執(zhí)行過(guò)程是高度可預(yù)測(cè)的。順序工作流模型帶有明顯的時(shí)序性,適用于大多數(shù)結(jié)構(gòu)化的工作流應(yīng)用。

        (2)狀態(tài)機(jī)工作流模型(StateMachineWorkflowModel)狀態(tài)機(jī)工作流完全依賴(lài)外部事件驅(qū)動(dòng)來(lái)執(zhí)行,因此也稱(chēng)事件驅(qū)動(dòng)工作流。它包含一系列狀態(tài)(包括初始狀態(tài)和結(jié)束狀態(tài))和事件。狀態(tài)機(jī)一開(kāi)始總是停在一個(gè)預(yù)設(shè)的狀態(tài)中,直到事件觸發(fā)之后才會(huì)跳轉(zhuǎn)到新的狀態(tài)上。狀態(tài)機(jī)工作流模型是為事件驅(qū)動(dòng)的工作場(chǎng)景設(shè)計(jì)的,有事務(wù)特征,適合于非結(jié)構(gòu)化面向人或角色相關(guān)的工作流場(chǎng)景。

        3工程設(shè)計(jì)管理系統(tǒng)實(shí)現(xiàn)

        3.1系統(tǒng)整體架構(gòu)

        隨著Internet的快速發(fā)展,Web以其簡(jiǎn)便的信息獲取方式、統(tǒng)一的客戶(hù)端界面和豐富的功能日益為人們所接受,因此目前絕大部分的應(yīng)用系統(tǒng)都以B/S架構(gòu)實(shí)現(xiàn)。微軟開(kāi)發(fā)的ASP.NET框架已成為Web開(kāi)發(fā)的利器。本文利用ASP.NETWeb應(yīng)用程序作為WF宿主應(yīng)用程序,為工程設(shè)計(jì)企業(yè)構(gòu)建工程設(shè)計(jì)工作流管理系統(tǒng)。系統(tǒng)的整體架構(gòu)是在典型的三層架構(gòu)基礎(chǔ)上加入工作流引擎層,成為四層架構(gòu),如圖2所示。四個(gè)層次分別是:

        ①表現(xiàn)層,采用基于ASP.NET的Web客戶(hù)端,呈現(xiàn)系統(tǒng)的用戶(hù)界面;

        ②業(yè)務(wù)邏輯層:實(shí)現(xiàn)包括市場(chǎng)經(jīng)營(yíng)管理、工程項(xiàng)目管理、設(shè)計(jì)過(guò)程管理、質(zhì)量管理等功能的業(yè)務(wù)邏輯;

        ③工作流引擎:包括WF定義、WF執(zhí)行和WF監(jiān)控,實(shí)現(xiàn)業(yè)務(wù)邏輯層中各類(lèi)業(yè)務(wù)的流程定義、執(zhí)行和監(jiān)控;

        ④數(shù)據(jù)訪問(wèn)層:實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和操作,為其他三層提供數(shù)據(jù)服務(wù)。

        3.2工作流設(shè)計(jì)

        在電力工程設(shè)計(jì)中,設(shè)計(jì)成品分很多種類(lèi)和級(jí)別。不同種類(lèi)和級(jí)別的設(shè)計(jì)成品按照不同的流程進(jìn)行校審,從而達(dá)到保證設(shè)計(jì)質(zhì)量的目的。以某設(shè)計(jì)院的A類(lèi)工程三級(jí)施工圖為例,其校審過(guò)程如下:設(shè)計(jì)人設(shè)計(jì)出成品后,登錄工程設(shè)計(jì)工作流管理系統(tǒng),在線(xiàn)填寫(xiě)設(shè)計(jì)成品相關(guān)信息,遞交設(shè)計(jì)成品校審中請(qǐng)。遞交的申請(qǐng)需要經(jīng)過(guò)校核、審核和批準(zhǔn)共三級(jí)校審。每一級(jí)校審如有修改意見(jiàn),則直接退回給設(shè)計(jì)人,由設(shè)計(jì)人修改后重新遞交校審申請(qǐng)。這是一個(gè)結(jié)構(gòu)化的業(yè)務(wù)流程,其執(zhí)行過(guò)程是高度可預(yù)測(cè)的,帶有明顯的時(shí)序性,因此,采用順序工作流模型進(jìn)行流程建模,其流程圖在。

        3.3系統(tǒng)開(kāi)發(fā)關(guān)鍵技術(shù)

        3.3.1持久化服務(wù)

        相對(duì)于計(jì)算密集型的技術(shù),工作流技術(shù),特別是人工工作流技術(shù),處理的大部分是等待,因此對(duì)持久化提出了特殊的要求。工作流的持久化,關(guān)鍵之一是如何以及何時(shí)把一個(gè)流程實(shí)例存儲(chǔ)到數(shù)據(jù)庫(kù)中并從內(nèi)存中移除。WF引擎宿主層的SqlWorkflowPersistenceService服務(wù)類(lèi)是持久化服務(wù)的核心。它可以將流程實(shí)例保存到數(shù)據(jù)庫(kù)中,也可以從數(shù)據(jù)庫(kù)中加載流程實(shí)例。當(dāng)流程實(shí)例空閑時(shí),WF運(yùn)行時(shí)會(huì)觸發(fā)一個(gè)WorkflowRuntime.WorkflowIdled事件,宿主程序發(fā)現(xiàn)這個(gè)事件時(shí)會(huì)在事件處理器中調(diào)用WorkflowIn-stance的TryUnload方法,將空閑的流程實(shí)例持久化存儲(chǔ)到數(shù)據(jù)庫(kù)中。

        3.3.2工作流調(diào)用本文實(shí)現(xiàn)的系統(tǒng)以ASP.NETWeb應(yīng)用程序?yàn)樗拗鳌T谒拗鞒绦蛑姓{(diào)用工作流分兩種情況:

        (1)在流程實(shí)例初次被創(chuàng)建時(shí),在ASP.NET頁(yè)面中初始化工作化,關(guān)鍵代碼如下:WorkflowRuntimeruntime=newWorkflowRuntime;…//添加相應(yīng)的服務(wù)runtime.StartRuntime;//啟動(dòng)工作流引擎WorkflowInstanceinstance=runtime.CreateWorkflow(typeof(WF.Checked));instance.Start;//啟動(dòng)流程實(shí)例

        (2)當(dāng)宿主程序發(fā)生的事件觸發(fā)某個(gè)已被持久化的流程實(shí)例時(shí),需要重新加載此實(shí)例,關(guān)鍵代碼如下:WorkflowRuntimeruntime=newWorkflowRuntime;GuidWorkflowId=newGuid(tbNo.Text);//tbNo.Text用來(lái)獲取要處理的工作流實(shí)例IDruntime.GetWorkflow(WorkflowId);其中第二種情況用得更多,因?yàn)槊恳粋€(gè)流程實(shí)例只需在開(kāi)始時(shí)進(jìn)行一次初始化,而之后每一個(gè)活動(dòng)的流轉(zhuǎn)和操作都要重新加載被持久化的實(shí)例。

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

        本文提出一個(gè)結(jié)合了WF和ASP.NET技術(shù)的Web工作流系統(tǒng)四層架構(gòu)體系,使用順序工作流模型設(shè)計(jì)業(yè)務(wù)流程,開(kāi)發(fā)了一個(gè)工程設(shè)計(jì)工作流管理系統(tǒng),很好地解決了工程設(shè)計(jì)管理中業(yè)務(wù)流程在不同人之間的自動(dòng)流轉(zhuǎn)問(wèn)題。該系統(tǒng)目前已投入使用,為企業(yè)創(chuàng)造了很大的價(jià)值。

        作者:李緒光 單位:廣州電力設(shè)計(jì)院

        相關(guān)文章閱讀
        无码人妻一二三区久久免费_亚洲一区二区国产?变态?另类_国产精品一区免视频播放_日韩乱码人妻无码中文视频
      2. <input id="zdukh"></input>
      3. <b id="zdukh"><bdo id="zdukh"></bdo></b>
          <b id="zdukh"><bdo id="zdukh"></bdo></b>
        1. <i id="zdukh"><bdo id="zdukh"></bdo></i>

          <wbr id="zdukh"><table id="zdukh"></table></wbr>

          1. <input id="zdukh"></input>
            <wbr id="zdukh"><ins id="zdukh"></ins></wbr>
            <sub id="zdukh"></sub>
            福鼎市| 墨脱县| 墨江| 涟水县| 湘乡市| 固安县| 蒲城县| 舟山市| 华蓥市| 务川| 酉阳| 青冈县| 泰宁县| 恩施市| 双流县| 正宁县| 东兰县| 太保市| 耿马| 三台县| 石林| 宁乡县| 石首市| 江华| 华亭县| 枣阳市| 天门市| 丹江口市| 浦江县| 西丰县| 固始县| 舒城县| 西藏| 通海县| 安陆市| 红原县| 闽清县| 商城县| 大方县| 新民市| 石台县| http://444 http://444 http://444