每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開(kāi)發(fā)
          最近關(guān)心的內(nèi)容:SSH,seam,flex,敏捷,TDD
          本站的官方站點(diǎn)是:顛覆軟件

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評(píng)論 :: 0 Trackbacks

          一.? 概述

          企 業(yè)在進(jìn)行業(yè)務(wù)處理時(shí),政府在進(jìn)行公文審批時(shí),都是以流程形式而進(jìn)行的,在信息化的過(guò)程中,企業(yè)、政府也將這些業(yè)務(wù)處理、公文審批的過(guò)程信息化了,早期通常 是通過(guò)程序硬編碼的方式來(lái)處理這些業(yè)務(wù)、公文的流轉(zhuǎn),隨著業(yè)務(wù)、公文的復(fù)雜的處理情況不斷出現(xiàn)以及需求的不斷變更,這種硬編碼的方式顯然已無(wú)法應(yīng)對(duì),這個(gè) 時(shí)候工作流管理系統(tǒng)應(yīng)運(yùn)而生,掀起了一股工作流管理系統(tǒng)的熱潮。

          那么到底工作流管理系統(tǒng)能夠帶來(lái)什么好處?工作流管理系統(tǒng)通過(guò)對(duì)業(yè)務(wù)、公文流轉(zhuǎn)進(jìn)行分析以及抽象,將不變和變化的部分進(jìn)行劃分,用戶可輕松的通過(guò)可視化的工具對(duì)事項(xiàng)的流程、流程環(huán)節(jié)涉及的人員 ( 角色 ) 、流程環(huán)節(jié)的表單、流程環(huán)節(jié)的操作進(jìn)行修改,從而到達(dá)了應(yīng)對(duì)不斷變化的需求的目的,而工作流管理系統(tǒng)通常提供的流程監(jiān)控、查詢統(tǒng)計(jì)模塊更是極大程度的為用戶優(yōu)化流程提供支持,以提高企業(yè)、政府的工作效率。

          本文主要描述工作流管理系統(tǒng)通常的結(jié)構(gòu)、參考模型以及通常使用的調(diào)度算法。

          二.? 構(gòu)成

          工作流管理系統(tǒng),簡(jiǎn)稱 WFMS , 經(jīng)過(guò)對(duì)業(yè)務(wù)、公文流轉(zhuǎn)過(guò)程的分析以及抽象,工作流管理系統(tǒng)圍繞業(yè)務(wù)交互邏輯、業(yè)務(wù)處理邏輯以及參與者三個(gè)問(wèn)題進(jìn)行解決,業(yè)務(wù)交互邏輯對(duì)應(yīng)的為業(yè)務(wù)的流轉(zhuǎn)過(guò) 程,在工作流管理系統(tǒng)中對(duì)應(yīng)的提出了工作流引擎、工作流設(shè)計(jì)器、流程操作來(lái)解決業(yè)務(wù)交互邏輯的問(wèn)題,業(yè)務(wù)處理邏輯對(duì)應(yīng)業(yè)務(wù)流轉(zhuǎn)過(guò)程中的表單、文檔等的處 理,在工作流管理系統(tǒng)中對(duì)應(yīng)的提出了表單設(shè)計(jì)器、與表單的集成來(lái)解決業(yè)務(wù)處理邏輯的問(wèn)題,參與者對(duì)應(yīng)到的為流轉(zhuǎn)過(guò)程中環(huán)節(jié)對(duì)應(yīng)的人或程序,在工作流管理系 統(tǒng)中通過(guò)與應(yīng)用程序的集成來(lái)解決參與者的問(wèn)題。

          工作流管理系統(tǒng)為方便業(yè)務(wù)交互邏輯、業(yè)務(wù)處理邏輯以及參與者的修改,多數(shù)通過(guò)提供可視化的流程設(shè)計(jì)器以及表單設(shè)計(jì)器來(lái)實(shí)現(xiàn),為實(shí)現(xiàn)工作流管理系統(tǒng)的擴(kuò)展性,多數(shù)提供了一系列的 API

          一個(gè)完整的工作流管理系統(tǒng)通常由工作流引擎、工作流設(shè)計(jì)器、流程操作、工作流客戶端程序、流程監(jiān)控、表單設(shè)計(jì)器、與表單的集成以及與應(yīng)用程序的集成八個(gè)部分組成。

          2.1.?????? 工作流引擎

          工 作流引擎作為工作流管理系統(tǒng)的核心部分,主要提供了對(duì)于工作流定義的解析以及流程流轉(zhuǎn)的支持。工作流定義文件描述了業(yè)務(wù)的交互邏輯,工作流引擎通過(guò)解析此 工作流定義文件按照業(yè)務(wù)的交互邏輯進(jìn)行業(yè)務(wù)的流轉(zhuǎn),工作流引擎通常通過(guò)參考某種模型來(lái)進(jìn)行設(shè)計(jì),通過(guò)調(diào)度算法來(lái)進(jìn)行流程的流轉(zhuǎn) ( 流程的啟動(dòng)、終止、掛起、恢復(fù)等 ) ,通過(guò)各種環(huán)節(jié)調(diào)度算法 (SPLIT AND OR ) 來(lái)實(shí)現(xiàn)對(duì)于環(huán)節(jié)的流轉(zhuǎn) ( 環(huán)節(jié)的合并、分叉、選擇、條件性的選擇等 )

          2.2.?????? 工作流設(shè)計(jì)器

          工作流設(shè)計(jì)器為可視化的流程設(shè)計(jì)工具,用戶通過(guò)拖放等方式來(lái)繪制流程,并通過(guò)對(duì)于環(huán)節(jié)的配置來(lái)實(shí)現(xiàn)環(huán)節(jié)操作、環(huán)節(jié)表單、環(huán)節(jié)參與者的配置。

          工作流設(shè)計(jì)器為用戶以及開(kāi)發(fā)商提供了快速繪制、修改流程的方式,工作流設(shè)計(jì)器的好壞決定到工作流管理系統(tǒng)的易用性。

          2.3.?????? 流程操作

          流程操作指所支持的對(duì)于流程環(huán)節(jié)的操作,如啟動(dòng)流程、終止流程、掛起流程、直流、分流 ( 單人辦理 ) 、并流 ( 多人同時(shí)辦理 ) 、聯(lián)審等,象這些流程操作都是可直接基于引擎所提供的環(huán)節(jié)調(diào)度算法來(lái)直接支持的,而在實(shí)際的需求中,通常需要自由的對(duì)于流程進(jìn)行干涉,如取回、回退、跳轉(zhuǎn)、追加、傳閱、傳閱辦理等,而這些流程操作對(duì)于工作流引擎來(lái)說(shuō)是不合理的,因此必須單獨(dú)的去實(shí)現(xiàn)。

          流程操作支持的好壞直接決定到一個(gè)工作流管理系統(tǒng)的實(shí)用性。

          2.4.?????? 工作流客戶端程序

          工作流客戶端程序?yàn)楣ぷ髁飨到y(tǒng)的表現(xiàn)形式,通常使用 Web 方式進(jìn)行展現(xiàn),通過(guò)提供待辦列表、已辦列表、執(zhí)行流程操作、查看流程歷史信息等來(lái)展現(xiàn)工作流系統(tǒng)的功能。

          2.5.?????? 流程監(jiān)控

          流程監(jiān)控通過(guò)提供圖形化的方式來(lái)對(duì)流程執(zhí)行過(guò)程進(jìn)行監(jiān)控,包括流程運(yùn)轉(zhuǎn)狀況,每個(gè)環(huán)節(jié)所耗費(fèi)的時(shí)間等等,而通過(guò)這些可相應(yīng)的進(jìn)行流程的優(yōu)化,以提高工作效率。

          2.6.?????? 表單設(shè)計(jì)器

          表單設(shè)計(jì)器為可視化的表單設(shè)計(jì)工具,用戶通過(guò)拖放的方式來(lái)繪制業(yè)務(wù)所需的表單,并可相應(yīng)的進(jìn)行表單數(shù)據(jù)的綁定。

          表單設(shè)計(jì)器為客戶以及開(kāi)發(fā)商提供了快速修改表單的方法,表單設(shè)計(jì)器的易用與否以及功能的完善與否影響到工作流管理系統(tǒng)的易用性。

          2.7.?????? 與表單的集成

          通常業(yè)務(wù)流轉(zhuǎn)需要表單來(lái)表達(dá)實(shí)際的業(yè)務(wù),因此需要與表單進(jìn)行集成來(lái)實(shí)現(xiàn)業(yè)務(wù)意義,與表單的集成通常包括表單數(shù)據(jù)的自動(dòng)獲取、存儲(chǔ)、修改,表單域的權(quán)限控制、流程相關(guān)數(shù)據(jù)的維護(hù)以及流程環(huán)節(jié)表單的綁定。

          與表單的集成的好壞影響到工作流管理系統(tǒng)是否能提高開(kāi)發(fā)效率。

          2.8.?????? 與應(yīng)用程序的集成

          通過(guò)與應(yīng)用程序的集成來(lái)完善工作流管理系統(tǒng)的業(yè)務(wù)意義,主要涉及到的是與權(quán)限系統(tǒng)以及組織機(jī)構(gòu)的集成。流程環(huán)節(jié)需要相應(yīng)的綁定不同的執(zhí)行角色,而流程操作通常需要與權(quán)限系統(tǒng)、組織機(jī)構(gòu)進(jìn)行關(guān)聯(lián)。

          三.? 參考模型

          工作流系統(tǒng)通常通過(guò)參考一些標(biāo)準(zhǔn)的模型來(lái)進(jìn)行設(shè)計(jì),主要的有 WFMC OMG ,在這里主要介紹一下 WFMC

          3.1.?????? WFMC

          WFMC 是國(guó)際工作流管理聯(lián)盟,它于 1993 年成立,發(fā)布了一系列的工作流定義、軟件接口的草案文本,是目前世界上公認(rèn)的最具權(quán)威性的工作流標(biāo)準(zhǔn)制定機(jī)構(gòu),得到了廣泛的支持和應(yīng)用。

          2002 10 25 WFMC 發(fā)布了基于 XML 的流程定義語(yǔ)言 1.0 版的最終文本( Workflow Process Definition Interface----XML Process Definition Language? 文檔編號(hào): WFMC-TC-1025 ),以及此前發(fā)布的工作流應(yīng)用軟件接口規(guī)范 WFMC-TC-1009, WFMC-TC-1013 等系列文件,構(gòu)成了工作流定義及系統(tǒng)的設(shè)計(jì)標(biāo)準(zhǔn)。

          為了實(shí)現(xiàn)不同工作流產(chǎn)品之間的互操作, WfMC 在 工作流管理系統(tǒng)的相關(guān)術(shù)語(yǔ)、體系結(jié)構(gòu)及應(yīng)用編程接口等方面制定了一系列標(biāo)準(zhǔn)。工作流管理聯(lián)盟給出的工作流定義是:工作流是指整個(gè)或部分經(jīng)營(yíng)過(guò)程在計(jì)算機(jī)支 持下的全自動(dòng)或半自動(dòng)化。在實(shí)際情況中可以更廣泛地把凡是由計(jì)算機(jī)軟件系統(tǒng)(工作流管理系統(tǒng))控制其執(zhí)行的過(guò)程都稱為工作流。

          一 個(gè)工作流包括一組活動(dòng)及它們的相互順序關(guān)系,還包括過(guò)程及活動(dòng)的啟動(dòng)和終止條件,以及對(duì)每個(gè)活動(dòng)的描述。工作流管理系統(tǒng)指運(yùn)行在一個(gè)或多個(gè)工作流引擎上用 于定義、實(shí)現(xiàn)和管理工作流運(yùn)行的一套軟件系統(tǒng),它與工作流執(zhí)行者(人、應(yīng)用)交互,推進(jìn)工作流實(shí)例的執(zhí)行,并監(jiān)控工作流的運(yùn)行狀態(tài)。

          WFMC 主要提出了五個(gè)接口與工作流執(zhí)行服務(wù)一起共同組成了工作流系統(tǒng):

          l???????? 接口一 ( 工作流定義交換 ) ,用于在建模和定義工具與執(zhí)行服務(wù)之間交換工作流定義。主要是數(shù)據(jù)交換格式和 API 。數(shù)據(jù)交換通過(guò) XPDL API 通過(guò) WAPI

          l???????? 接口二 ( 工作流客戶端應(yīng)用接口 ) ,用于工作流客戶端應(yīng)用訪問(wèn)工作流引擎和工作列表,通過(guò) WAPI 完成。

          l???????? 接口三 ( 被調(diào)用的應(yīng)用接口 ) ,用于調(diào)用不同的應(yīng)用系統(tǒng)。

          l???????? 接口四 ( 工作流系統(tǒng)互操作接口 ) ,用于不同工作流系統(tǒng)之間的互操作。

          l???????? 接口五 ( 系統(tǒng)管理和監(jiān)控 ) ,用于系統(tǒng)管理應(yīng)用訪問(wèn)工作流執(zhí)行服務(wù)。

          四.? 核心調(diào)度算法

          通常流程引擎采用的核心調(diào)度算法主要有 FSM 以及 PetriNet 兩種,基于調(diào)度算法來(lái)完成流程的流轉(zhuǎn)。

          4.1.?????? FSM( 有限狀態(tài)機(jī) )

          FSM 的定義為包含一組狀態(tài)集( states )、一個(gè)起始狀態(tài)( start state )、一組輸入符號(hào)集( alphabet )、一個(gè)映射輸入符號(hào)和當(dāng)前狀態(tài)到下一狀態(tài)的轉(zhuǎn)換函數(shù)( transition function )的計(jì)算模型。當(dāng)輸入符號(hào)串,模型隨即進(jìn)入起始狀態(tài)。它要改變到新的狀態(tài),依賴于轉(zhuǎn)換函數(shù)。在有限狀態(tài)機(jī)中,會(huì)有有許多變量,例如,狀態(tài)機(jī)有很多與動(dòng)作( actions )轉(zhuǎn)換 (Mealy 機(jī) ) 或狀態(tài)(摩爾機(jī))關(guān)聯(lián)的動(dòng)作,多重起始狀態(tài),基于沒(méi)有輸入符號(hào)的轉(zhuǎn)換,或者指定符號(hào)和狀態(tài)(非定有限狀態(tài)機(jī))的多個(gè)轉(zhuǎn)換,指派給接收狀態(tài)(識(shí)別者)的一個(gè)或多個(gè)狀態(tài),等等。

          遵循 FSM 流程引擎通過(guò)狀態(tài)的切換來(lái)完成流程的流轉(zhuǎn)。

          4.2.?????? PetriNet

          信息流的一個(gè)抽象的、形式的模型。指出一系統(tǒng)的靜態(tài)和動(dòng)態(tài)性質(zhì)。 petrinet 通常表示成圖。圖中有兩類用弧彼此相連的結(jié)點(diǎn)(稱為地點(diǎn)和變換)和指示其動(dòng)態(tài)性能的標(biāo)記(稱為記號(hào))。

          遵循 PetriNet 流程引擎通過(guò)令牌來(lái)決定流程的流轉(zhuǎn)。

          posted on 2006-08-11 18:26 Alex 閱讀(518) 評(píng)論(0)  編輯  收藏 所屬分類: workflow
          主站蜘蛛池模板: 武胜县| 富顺县| 枣强县| 会理县| 浮山县| 开封县| 台南市| 农安县| 兰州市| 烟台市| 旬阳县| 缙云县| 珲春市| 开江县| 秦皇岛市| 和政县| 青川县| 张家港市| 青州市| 永城市| 孝义市| 鹰潭市| 积石山| 金乡县| 沙河市| 怀集县| 元朗区| 铁岭县| 淄博市| 马山县| 望谟县| 丰宁| 长寿区| 南靖县| 上杭县| 南康市| 盈江县| 北安市| 峨山| 崇左市| 漳州市|