九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
BPM向左,工作流向右(二)工作流系統(tǒng)雜談

當(dāng)面對(duì)一個(gè)完整的工作流系統(tǒng)時(shí),你可能會(huì)被它眾多的功能所困惑:流程流轉(zhuǎn)模式、時(shí)間服務(wù)、組織適配、表單權(quán)限等等。但是如果我們轉(zhuǎn)換一種思路,首先從用戶使用的角度來進(jìn)行分析,工作流系統(tǒng)的組成就會(huì)變得異常清晰。實(shí)際在現(xiàn)實(shí)開發(fā)中,整個(gè)系統(tǒng)也是由用戶的業(yè)務(wù)需求一步步迭代而來。

 

一、       從用戶的角度分析工作流系統(tǒng)的組成

這里的用戶分為兩類:一類是應(yīng)用系統(tǒng)開發(fā)人員(以后簡(jiǎn)稱開發(fā)人員),一類是應(yīng)用系統(tǒng)的最終用戶(以后簡(jiǎn)稱最終用戶)。對(duì)于最終用戶而言,工作流系統(tǒng)往往是不能直接使用的,它需要由IT部門的開發(fā)人員嵌入到應(yīng)用系統(tǒng)中。開發(fā)人員才是工作流系統(tǒng)的直接使用者,這造成了問題:工作流系統(tǒng)更多關(guān)注于開發(fā)人員的需求,例如如何快速開發(fā)、如何更好的嵌入業(yè)務(wù)邏輯等等,而最終用戶的需求被或多或少的忽略了。


這里從最終用戶的角度進(jìn)行分析。

 

1、                   面向開發(fā)人員的流程設(shè)計(jì)器

最終用戶通過流程設(shè)計(jì)器對(duì)業(yè)務(wù)流程進(jìn)行描述,實(shí)際是一個(gè)流程建模的過程。理論上,業(yè)務(wù)分析師完成這個(gè)業(yè)務(wù)流程建模的過程,并且業(yè)務(wù)分析師往往被假定為非技術(shù)人員。對(duì)于業(yè)務(wù)分析而言,流程建模通常是抽象的,一定程度上是模糊的,建模的目的在于通過圖形的形式向其他人解釋一個(gè)業(yè)務(wù)的過程,圖形只是一種方式,采用它只是它更易于理解和易于溝通,實(shí)際類似于DSL。實(shí)際上企業(yè)的規(guī)章制度、文字描述的執(zhí)行流程都是對(duì)業(yè)務(wù)流程具體的描述方式。

 

對(duì)于工作流而言,這個(gè)建模所產(chǎn)生的流程是需要被引擎執(zhí)行的。這就要求流程中每一個(gè)節(jié)點(diǎn)的定義都是要有明確含義的,它需要被計(jì)算機(jī)明確而準(zhǔn)確的解釋。同時(shí),出于集成業(yè)務(wù)系統(tǒng)的需要,流程模型定義往往帶有很多額外的屬性。

 

所以現(xiàn)實(shí)中的流程設(shè)計(jì)器往往屬性配置繁多。導(dǎo)致最終用戶在打開設(shè)計(jì)器后根本無從修改和建模,他需要關(guān)注很多與業(yè)務(wù)無關(guān)的配置,無意中的修改往往產(chǎn)生流程無法運(yùn)行的后果。

 

2、                   工作項(xiàng)列表

即任務(wù)列表。工作流系統(tǒng)通過工作項(xiàng)列表進(jìn)行人工任務(wù)的分配。最終用戶通過該列表簽收、處理每天的工作,工作以工作項(xiàng)的形式展現(xiàn)。對(duì)于工作項(xiàng),用戶有著多種業(yè)務(wù)操作:簽收、完成提交、收回、回退等等。對(duì)于分配給他人的工作項(xiàng),也存在著多種業(yè)務(wù)操作:催辦、提醒、時(shí)間限定等等。

 

3、                   流程追蹤

用戶在處理工作項(xiàng)時(shí),對(duì)該工作在流程中所處的位置進(jìn)行查看,了解當(dāng)前流程的狀態(tài)和執(zhí)行情況。一般情況下,流程追蹤以圖形化的方式展現(xiàn)。用戶通過不同的圖標(biāo)和標(biāo)示來區(qū)分流程中各個(gè)節(jié)點(diǎn)的狀態(tài)和參與者信息。

 

4、                   流程實(shí)例管理

包括流程實(shí)例、節(jié)點(diǎn)實(shí)例、工作項(xiàng)實(shí)例的管理。改變狀態(tài),包括了掛起、重新啟動(dòng)、終止、跳轉(zhuǎn)等等。主要目的在于對(duì)流程人為執(zhí)行錯(cuò)誤進(jìn)行人工干預(yù)以及對(duì)流程信息的監(jiān)控。

 

二、       系統(tǒng)架構(gòu)

從用戶的角度分析完工作流系統(tǒng)的組成,這里從開發(fā)人員的角度分析工作流系統(tǒng)的架構(gòu)。系統(tǒng)架構(gòu)里的每一部分是如何與用戶使用的部分進(jìn)行對(duì)應(yīng),以及每一部分在實(shí)現(xiàn)時(shí)需要注意的事項(xiàng)。

 

1、                   整體構(gòu)成

如圖,各模塊分層組織,位于上層的模塊依賴于底層的模塊。正如你所看到的,流程定義模型位于整個(gè)工作流系統(tǒng)的最低層,因?yàn)樗钦麄€(gè)工作流系統(tǒng)的基礎(chǔ)。


 

流程定義模型:定義對(duì)流程進(jìn)行描述的所有對(duì)象。因?yàn)閷?duì)流程進(jìn)行描述的本質(zhì)就是利用這些模型進(jìn)行建模,所以這些模型對(duì)象的實(shí)現(xiàn)直接決定著工作流系統(tǒng)對(duì)流程的描述能力。

 

組織結(jié)構(gòu)適配器:工作流系統(tǒng)在與業(yè)務(wù)系統(tǒng)進(jìn)行集成時(shí),需要進(jìn)行組織適配,通過這一過程將業(yè)務(wù)系統(tǒng)里的組織機(jī)構(gòu)導(dǎo)入到工作流系統(tǒng)里。具體實(shí)現(xiàn)時(shí),工作流系統(tǒng)需要建立起自己的組織機(jī)構(gòu)模型(包含在流程定義模型里),要適應(yīng)多種業(yè)務(wù)系統(tǒng),往往需要建立多套模型,根據(jù)具體情況進(jìn)行切換。有多種方式完成這個(gè)適配,最簡(jiǎn)單的方式是利用SQL配置讀取數(shù)據(jù)進(jìn)行語義轉(zhuǎn)換。

 

流程設(shè)計(jì)器:供用戶使用的可視化圖形工具。每種圖形都對(duì)應(yīng)著一種流程定義模型。具體的實(shí)現(xiàn)有Swing、SWT,但是基于AJAXWEB設(shè)計(jì)器無疑會(huì)提供更好的可用性。

 

流程執(zhí)行引擎:將流程定義模型解釋為流程實(shí)例模型。利用這些流程實(shí)例模型完成流程的調(diào)度和執(zhí)行。在工作流系統(tǒng)里,執(zhí)行引擎是整個(gè)系統(tǒng)的核心。實(shí)現(xiàn)時(shí)不僅需要考慮各種流程調(diào)度的實(shí)現(xiàn),還要考慮執(zhí)行的效率、緩存、日志等等。

 

工作項(xiàng)引擎:解析參與者定義模型和工作項(xiàng)定義模型,生成相應(yīng)的工作項(xiàng)。對(duì)用戶對(duì)工作項(xiàng)的操作作出響應(yīng)。

 

WEB應(yīng)用:工作流系統(tǒng)的WEB展現(xiàn)。包括了工作項(xiàng)列表、流程追蹤以及流程實(shí)例管理的操作和顯示。

 

流程仿真:對(duì)建立好的流程模型進(jìn)行運(yùn)行仿真,模擬流程模型的執(zhí)行過程。目的在于發(fā)現(xiàn)流程建模過程中的疏漏,發(fā)現(xiàn)由此導(dǎo)致的流程不能運(yùn)行。

 

時(shí)間服務(wù):提供對(duì)整個(gè)流程實(shí)例執(zhí)行時(shí)間和任務(wù)執(zhí)行時(shí)間的控制,根據(jù)規(guī)則觸發(fā)相應(yīng)的時(shí)間事件,例如任務(wù)超時(shí)、任務(wù)預(yù)警等等。根據(jù)規(guī)則自動(dòng)觸發(fā)啟動(dòng)新的流程實(shí)例。

 

業(yè)務(wù)集成:提供工作流系統(tǒng)與業(yè)務(wù)系統(tǒng)的契合方式。典型的實(shí)現(xiàn)包括通過注冊(cè)事件監(jiān)聽器和提供接口抽象類調(diào)用業(yè)務(wù)系統(tǒng)代碼、提供API給業(yè)務(wù)系統(tǒng)調(diào)用、工作項(xiàng)驅(qū)動(dòng)業(yè)務(wù)表單和腳本引擎執(zhí)行業(yè)務(wù)邏輯腳本等等。特定于工作項(xiàng)驅(qū)動(dòng)業(yè)務(wù)表單,為方便開發(fā),絕大多數(shù)的工作流廠商都提供了電子表單的實(shí)現(xiàn)。

 

2、                   基于事件的流程執(zhí)行引擎

流程執(zhí)行引擎的主要職責(zé)就是負(fù)責(zé)流程的調(diào)度和執(zhí)行。

 

首先需要將流程定義模型解釋為流程實(shí)例模型,在定義模型和實(shí)例模型之間建立起對(duì)應(yīng)關(guān)系。一個(gè)簡(jiǎn)單的對(duì)應(yīng)關(guān)系如下圖所示:


 

執(zhí)行引擎將流程定義模型的屬性讀取到相應(yīng)的實(shí)例模型里,由實(shí)例模型完成流程的調(diào)度和執(zhí)行。當(dāng)然,上圖只是一個(gè)簡(jiǎn)單的描述,實(shí)際情況要復(fù)雜的多,特別是節(jié)點(diǎn)定義(ActivityDefinition),根據(jù)實(shí)際應(yīng)用,往往存在著多種類型,典型的有開始節(jié)點(diǎn)(StartDefinition)、任務(wù)節(jié)點(diǎn)(TaskDefinition)、自動(dòng)節(jié)點(diǎn)(AutoDefinition)、分裂節(jié)點(diǎn)(SplitDefinition)、匯聚節(jié)點(diǎn)(JoinDefinition)、結(jié)束節(jié)點(diǎn)(EndDefinition)等等。這些節(jié)點(diǎn)的實(shí)例根據(jù)類型的不同執(zhí)行不同的邏輯。其中,分裂節(jié)點(diǎn)實(shí)例和匯聚節(jié)點(diǎn)實(shí)例負(fù)責(zé)流程的調(diào)度,它們決定流程的流向,通常情況下,它們會(huì)調(diào)用一個(gè)腳本引擎執(zhí)行一段腳本來決定流程的流向,同時(shí),也會(huì)提供對(duì)外暴露的接口,由業(yè)務(wù)系統(tǒng)實(shí)現(xiàn),接口返回的結(jié)果決定流程的流向。任務(wù)節(jié)點(diǎn)實(shí)例和自動(dòng)節(jié)點(diǎn)實(shí)例則負(fù)責(zé)流程的執(zhí)行,為保證流程執(zhí)行引擎職責(zé)的清晰以及對(duì)外圍設(shè)施的松耦合,它們只是發(fā)布相關(guān)的事件,通過事件發(fā)布/訂閱機(jī)制來觸發(fā)具體的邏輯執(zhí)行。


 

典型的事件有流程啟動(dòng)事件、流程結(jié)束事件、進(jìn)入節(jié)點(diǎn)事件、離開節(jié)點(diǎn)事件、時(shí)間事件等。例如,任務(wù)節(jié)點(diǎn)實(shí)例的進(jìn)入節(jié)點(diǎn)事件將會(huì)觸發(fā)工作項(xiàng)引擎生成工作項(xiàng)(Workitem),并觸發(fā)時(shí)間服務(wù)器開始計(jì)時(shí)。

 

3、                   基于充血模型的工作項(xiàng)引擎

對(duì)最終用戶而言,大部分的業(yè)務(wù)操作都集中在對(duì)工作項(xiàng)的操作上。常見的包括工作項(xiàng)的提交、收回、委派、追加和退回。這些操作從系統(tǒng)設(shè)計(jì)的角度不僅涉及到工作項(xiàng)(Workitem)對(duì)象內(nèi)部狀態(tài)的變化,而且影響到流程執(zhí)行引擎的調(diào)度以及相關(guān)的其他工作項(xiàng)對(duì)象狀態(tài)。

 

工作項(xiàng)引擎的職責(zé)包括兩部分。第一,監(jiān)聽任務(wù)節(jié)點(diǎn)實(shí)例的進(jìn)入事件,生成工作項(xiàng)實(shí)例。第二,處理上面提到的各種工作項(xiàng)操作。


 

實(shí)現(xiàn)時(shí),工作項(xiàng)生成器根據(jù)任務(wù)參與者的執(zhí)行模式典型的分為四種情況:

 

競(jìng)爭(zhēng)參與,當(dāng)有多個(gè)參與者參與該任務(wù)時(shí),產(chǎn)生競(jìng)爭(zhēng),誰先開始這項(xiàng)工作,就由誰負(fù)責(zé)完成該工作。此時(shí),工作項(xiàng)生成器生成多個(gè)工作項(xiàng)實(shí)例,在某個(gè)工作項(xiàng)完成時(shí)會(huì)終止其余工作項(xiàng)。

順序參與,多個(gè)參與者按照指定的順序完成該工作。A完成之后由B完成,B完成之后再交給C完成。此時(shí),工作項(xiàng)生成器生成多個(gè)工作項(xiàng)實(shí)例,根據(jù)順序依次激活各個(gè)工作項(xiàng)。

共同參與,多個(gè)參與者同時(shí)對(duì)工作進(jìn)行處理。此時(shí),工作項(xiàng)生成器生成多個(gè)工作項(xiàng)實(shí)例并全部激活。

智能決策,存在多個(gè)參與者的情況下,工作項(xiàng)生成器能夠根據(jù)一定的指標(biāo)(由數(shù)據(jù)分析,例如人員的處理效率,工作負(fù)載等等)和規(guī)則來決定該節(jié)點(diǎn)的參與者并為其生成相應(yīng)工作項(xiàng)。這里涉及到算法。

 

對(duì)于工作流系統(tǒng)而言,各種流程實(shí)例對(duì)象都是充血模型。特定于各種工作項(xiàng)操作的處理,此時(shí)的工作項(xiàng)對(duì)象亦設(shè)計(jì)為充血模型,將業(yè)務(wù)邏輯封裝到領(lǐng)域模型里,簡(jiǎn)化領(lǐng)域模型之間的交互,省去頻繁的get/set。由領(lǐng)域模型再委派到具體的處理類里。

Client->(Business Facade)->Domain Model->service->Data Access(DAO)

 

4、                   工作項(xiàng)驅(qū)動(dòng)業(yè)務(wù)表單的業(yè)務(wù)集成方式

最終用戶對(duì)任務(wù)的處理,必然由工作項(xiàng)對(duì)應(yīng)著某一業(yè)務(wù)表單。用戶在工作項(xiàng)列表里選擇自己需要辦理的工作項(xiàng),由工作項(xiàng)導(dǎo)航到業(yè)務(wù)表單。

 

特定于WEB系統(tǒng),業(yè)務(wù)表單的導(dǎo)航由url完成。在流程定義模型設(shè)計(jì)時(shí),將url設(shè)置入節(jié)點(diǎn)屬性,生成工作項(xiàng)時(shí)將此url保存在工作項(xiàng)對(duì)象屬性里。點(diǎn)擊工作項(xiàng)詳細(xì)信息時(shí)即打開該url,完成到業(yè)務(wù)表單的導(dǎo)航。業(yè)務(wù)表單頁面通常需要引入處理工作項(xiàng)邏輯的父頁面或者導(dǎo)入定制的js庫(kù),這些父頁面或js庫(kù)由工作流產(chǎn)品提供。這樣,對(duì)于業(yè)務(wù)表單編寫,工作流邏輯是透明的。



http://www.blogjava.net/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
工作流技術(shù)在銀行系統(tǒng)中的應(yīng)用
Fire Workflow 模型的設(shè)計(jì)思想
Fire Workflow 的Eclispe設(shè)計(jì)器插件
什么是工作流引擎(Workflow Engine )
WorkFlow4.0--入門到精通系列-專題索引
如何實(shí)現(xiàn)辦公自動(dòng)化?
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服