自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解工作流架構(gòu)與實(shí)現(xiàn)

開(kāi)發(fā) 架構(gòu)
本文詳細(xì)介紹了工作流系統(tǒng)以及集成平臺(tái)上實(shí)現(xiàn)工作流系統(tǒng)的交互操作和實(shí)現(xiàn)模式。文中出現(xiàn)的概念和方案能幫助您更好地理解典型工作流平臺(tái)中存在的組件。

工作流系統(tǒng)以及人力 — 業(yè)務(wù)流程交互的一些***代表性的模式分為兩個(gè)主要組件。***個(gè)組件是工作流系統(tǒng)以及在集成平臺(tái)上實(shí)現(xiàn)這些系統(tǒng)時(shí)它們之間的交互。第二個(gè)組件是工作流交互設(shè)計(jì)模式以及使用工作流系統(tǒng)之間的交互實(shí)現(xiàn)這些模式的方式。本論述將詳細(xì)介紹這些流程。

如果不考慮人力交互 (該要素與過(guò)程自動(dòng)化和集成的很多方面語(yǔ)義相關(guān)),那么業(yè)務(wù)流程的完全自動(dòng)化實(shí)際上是無(wú)法實(shí)現(xiàn)的。 人力交互存在于一些最常見(jiàn)的業(yè)務(wù)流程中, 如訂單審批和人力資源管理。這些人力交互包含從簡(jiǎn)單的任務(wù)分配流程到非常復(fù)雜的業(yè)務(wù)流程通知和任務(wù)再分配等各種形式。

不同供應(yīng)商的多種受歡迎的集成服務(wù)器中均提供了工作流框架。 我們將從概念上探討一些在工作流平臺(tái)以及這些平臺(tái)之間的交互中存在的主要組件。 我們還將介紹一些最常見(jiàn)的工作流設(shè)計(jì)模式以及使用上述組件實(shí)現(xiàn)這些模式的方式。

工作流系統(tǒng)必須支持人與系統(tǒng)之間的通信。 要實(shí)現(xiàn)這一支持, 每個(gè)工作流系統(tǒng)都必須提供基本的功能, 如任務(wù)分配、 標(biāo)識(shí)管理、 通知、 跟蹤以及與業(yè)務(wù)流程管理 (BPM) 系統(tǒng)的互操作(參見(jiàn)圖 1)。


圖一

工作流架構(gòu)的四個(gè)主要組件為: 任務(wù)管理服務(wù)、 跟蹤服務(wù)、 通知服務(wù)和標(biāo)識(shí)服務(wù)。 在深入探討這些服務(wù)之前, 需要了解一下任務(wù)在工作流系統(tǒng)中的作用。

任務(wù)是業(yè)務(wù)流程和人之間的主要通信單元。 通常, 任務(wù)被分配給需要執(zhí)行某個(gè)相關(guān)操作的用戶(hù)。 例如, 一位可能需要批準(zhǔn)購(gòu)買(mǎi)某些貨物的請(qǐng)求的主管。 通常, 用戶(hù)必須執(zhí)行按照語(yǔ)義進(jìn)行組合的一系列任務(wù)。 也就是說(shuō),主管可能將每天需要購(gòu)買(mǎi)的所有貨物組合到一個(gè)名為 “今天的批準(zhǔn)項(xiàng)” 的組中。 這些組稱(chēng)為任務(wù)列表。

任務(wù)狀態(tài)

在工作流系統(tǒng)的生存期內(nèi), 任務(wù)列表中的任務(wù)不斷地從一種狀態(tài)切換到另一種狀態(tài)。 例如, 主管的任務(wù)首先進(jìn)入 “未決” 狀態(tài); 在主管接受該任務(wù)后,狀態(tài)更改為 “認(rèn)領(lǐng)” 。 ***, 當(dāng)主管批準(zhǔn)該請(qǐng)求后, 任務(wù)進(jìn)入最終狀態(tài)“完成” 。 狀態(tài)用于從概念上描述任務(wù)生存期。 一些最常見(jiàn)的狀態(tài)是 “未決” 、“認(rèn)領(lǐng)” 、 “完成” 和 “失敗” 。 在 “未決” 狀態(tài)下, 任務(wù)已被創(chuàng)建; 在 “認(rèn)領(lǐng)” 狀態(tài)下, 用戶(hù)認(rèn)領(lǐng)任務(wù)并接收任務(wù)輸入數(shù)據(jù); 在 “完成” 狀態(tài)下, 用戶(hù)已經(jīng)完成任務(wù)并提供了任務(wù)的輸出數(shù)據(jù); 在 “失敗” 狀態(tài)下, 用戶(hù)已經(jīng)完成任務(wù), 并且提供了錯(cuò)誤消息。

任務(wù)通常與時(shí)間范圍相關(guān)聯(lián): 到期、 升級(jí)、 委派和續(xù)訂。 在我們的示例中,如果主管沒(méi)有在指定的時(shí)間段內(nèi)處理批準(zhǔn)任務(wù), 則該任務(wù)可能到期。 這一到期任務(wù)隨后可以升級(jí)到另一個(gè)操作或分配流程中。 主管還可以決定將任務(wù)委派給另一個(gè)人(例如,經(jīng)理)以代替他或她執(zhí)行任務(wù)。 經(jīng)理也可以決定是否讓另一位經(jīng)理參與進(jìn)來(lái),以便收集其他意見(jiàn)。如果第二位經(jīng)理沒(méi)有在給定的時(shí)間范圍內(nèi)處理此任務(wù),則該任務(wù)將被續(xù)訂,以便在另一時(shí)間段內(nèi)執(zhí)行。

在其他方案中, 各項(xiàng)任務(wù)在語(yǔ)義上彼此相關(guān)。 對(duì)于問(wèn)題 “下一個(gè)任務(wù)是什么?”的回答并不總是無(wú)足輕重。在某些情況下,必須在運(yùn)行時(shí)確定答案。任務(wù)可以按順序組合在一個(gè)業(yè)務(wù)流程實(shí)例中,以便用戶(hù)了解在完成當(dāng)前任務(wù)后要執(zhí)行的下一個(gè)任務(wù)。

在我們的示例中,主管需要依次批準(zhǔn)20個(gè)請(qǐng)求才能完成該業(yè)務(wù)流程。主管每次完成一項(xiàng)批準(zhǔn)之后,引擎都應(yīng)該能夠標(biāo)識(shí)下一個(gè)任務(wù)?!叭蝿?wù)鏈”代表一種元數(shù)據(jù)驅(qū)動(dòng)方法,該方法用來(lái)描述業(yè)務(wù)流程范圍內(nèi)的一組任務(wù)之間的關(guān)系。任務(wù)鏈可以按照語(yǔ)義組合任務(wù),以幫助用戶(hù)實(shí)現(xiàn)某些功能,如順序執(zhí)行和失敗管理。

依賴(lài)于特定業(yè)務(wù)流程的任務(wù)稱(chēng)為內(nèi)聯(lián)任務(wù)。完全獨(dú)立于特定業(yè)務(wù)流程的任務(wù)是獨(dú)立任務(wù)。內(nèi)聯(lián)任務(wù)通常可以訪(fǎng)問(wèn)與業(yè)務(wù)流程相關(guān)的數(shù)據(jù),并且存儲(chǔ)在本地的、業(yè)務(wù)流程元素(如變量或消息)中。相比之下,獨(dú)立任務(wù)通過(guò)定義良好的接口與業(yè)務(wù)流程進(jìn)行交互,完全不依賴(lài)于流程數(shù)據(jù)本身。#p#

工作流服務(wù)

處理局部任務(wù)的架構(gòu)組件是任務(wù)管理服務(wù)。在典型方案中,任務(wù)管理服務(wù)接收任務(wù)創(chuàng)建請(qǐng)求, 與標(biāo)識(shí)服務(wù)進(jìn)行交互以選擇有資格執(zhí)行此任務(wù)的所有人員,將任務(wù)添加到與所選用戶(hù)相關(guān)聯(lián)的工作列表(待完成工作)中,并分配特定的時(shí)間線(xiàn)和策略。最終,一個(gè)用戶(hù)通過(guò)認(rèn)領(lǐng)該任務(wù)來(lái)決定對(duì)其進(jìn)行處理。然后,該用戶(hù)可以處理該任務(wù)或請(qǐng)求更多的數(shù)據(jù)。

工作流系統(tǒng)的一個(gè)關(guān)鍵方面是能夠解析允許執(zhí)行任務(wù)的用戶(hù)集。此用戶(hù)解析流程可以基于與標(biāo)識(shí)管理平臺(tái)之間的交互。在我們的示例中,工作流服務(wù)需要標(biāo)識(shí)哪些用戶(hù)能夠批準(zhǔn)請(qǐng)求,在此情況下是主管。 要完成此標(biāo)識(shí), 工作流平臺(tái)必須對(duì)照傳統(tǒng)上存儲(chǔ)在用戶(hù)目錄中的一組用戶(hù)和角色來(lái)解析“主管” 概念。

在人與流程之間可以建立多種類(lèi)型的關(guān)系。最常見(jiàn)的關(guān)系之一就是人與流程進(jìn)行交互的方式(人力角色)。可以將組織中的人組合到在語(yǔ)義上與某個(gè)業(yè)務(wù)活動(dòng)相關(guān)的角色中,如流程管理員或任務(wù)所有者。另一種常見(jiàn)的關(guān)系是流程如何標(biāo)識(shí)要與哪些人交互(人員鏈接和查詢(xún))。在業(yè)務(wù)流程中,某些用戶(hù)組從業(yè)務(wù)觀點(diǎn)來(lái)看是相關(guān)的。人員鏈接用于表示參與流程執(zhí)行的不同組人員。針對(duì)組織目錄進(jìn)行的查詢(xún)用于確定與人員鏈接相關(guān)聯(lián)的個(gè)人,而且被綁定到人員鏈接。在我們的示例中,普通的人力角色 — 財(cái)務(wù)經(jīng)理可以由人員鏈接主管限定, 后者被綁定到以下查詢(xún):“選擇部門(mén)領(lǐng)導(dǎo),其中部門(mén)名稱(chēng)為財(cái)務(wù)”。

身份服務(wù)負(fù)責(zé)與用戶(hù)相關(guān)的功能,如身份驗(yàn)證、授權(quán)或人員解析。用戶(hù)信息通常存儲(chǔ)在組織目錄(例如,Active Directory 目錄服務(wù)、LDAP 目錄或關(guān)系數(shù)據(jù)庫(kù))中。身份服務(wù)的工作可以獨(dú)立于組織目錄。根據(jù)適配器模式,可以通過(guò)提供程序提取目錄訪(fǎng)問(wèn),該提供程序能夠執(zhí)行查詢(xún)來(lái)獲取目錄中的信息。此方法可以從用戶(hù)的存儲(chǔ)區(qū)中提取工作流功能。

在我們的示例中,假設(shè)經(jīng)理想要重建請(qǐng)求 — 批準(zhǔn)工作流的執(zhí)行,以檢查是否存在短缺。 跟蹤服務(wù)可以跟蹤與任務(wù)和任務(wù)鏈相關(guān)的狀態(tài)更改。此服務(wù)應(yīng)該提供所需功能的基礎(chǔ),以重建任務(wù)歷史記錄更改和執(zhí)行任務(wù)分析。

在創(chuàng)建請(qǐng)求 — 批準(zhǔn)任務(wù)時(shí),我們還需要一種能夠通過(guò)電子郵件通知主管的服務(wù)。通知服務(wù)處理向與任務(wù)的狀態(tài)更改相關(guān)的用戶(hù)發(fā)送通知的機(jī)制。

這里討論的四個(gè)運(yùn)行時(shí)服務(wù)提供了工作流系統(tǒng)所需的一些最常見(jiàn)功能的良好概覽。通過(guò)將這些服務(wù)組合起來(lái),可處理一些最常見(jiàn)的工作流方案?,F(xiàn)在,讓我們來(lái)探討一些常見(jiàn)的工作流模式。

任務(wù)分配模式

面向工作流的流程在業(yè)界已經(jīng)存在了一些年。獲得的知識(shí)可以作為改進(jìn)的基礎(chǔ),以構(gòu)建工作流系統(tǒng)。模式在不同的級(jí)別(如任務(wù)批準(zhǔn)、任務(wù)創(chuàng)建和任務(wù)狀態(tài)管理)抽象工作流系統(tǒng)。 在此,我們不打算定義工作流模式的分類(lèi)。相反,我們將從以前定義的架構(gòu)的角度介紹工作流系統(tǒng)中的一些常見(jiàn)模式。

我們將從考察“單用戶(hù)工作流”示例開(kāi)始??梢詫⑷蝿?wù)分配給一個(gè)用戶(hù),并且只有一個(gè)用戶(hù)可以處理該任務(wù)。例如,一名雇員通過(guò)雇員門(mén)戶(hù)提交了休假請(qǐng)求。該門(mén)戶(hù)啟動(dòng)了一個(gè)業(yè)務(wù)流程,該流程包括一個(gè)使用簡(jiǎn)單工作流建模的用戶(hù)任務(wù)。該任務(wù)被分配給此雇員的經(jīng)理。 當(dāng)經(jīng)理批準(zhǔn)或拒絕休假請(qǐng)求時(shí),將經(jīng)理的決定通過(guò)電子郵件通知該雇員。

對(duì)于此解決方案,通過(guò)四個(gè)交互將工作流組件組合起來(lái)。該任務(wù)是使用與任務(wù)管理服務(wù)交互的客戶(hù)端應(yīng)用程序配置的;該任務(wù)的生存期或任務(wù)狀態(tài)得到了配置。作為業(yè)務(wù)流程的一部分,使用任務(wù)管理服務(wù)將任務(wù)分配到用戶(hù)組。用戶(hù)之一認(rèn)領(lǐng)該任務(wù),任務(wù)管理服務(wù)應(yīng)用正確的策略以防止其他用戶(hù)處理同一個(gè)任務(wù)。業(yè)務(wù)流程使用任務(wù)管理服務(wù)獲取任務(wù)的狀態(tài)更新。

現(xiàn)在,讓我們來(lái)考慮一個(gè)順序工作流示例。順序工作流代表一個(gè)方案,在該方案中,任務(wù)必須由一組用戶(hù)按順序批準(zhǔn)。例如,當(dāng)購(gòu)買(mǎi)訂單批準(zhǔn)系統(tǒng)使用業(yè)務(wù)流程處理購(gòu)買(mǎi)訂單時(shí), 屬于“主管”組的一名雇員要對(duì)購(gòu)買(mǎi)訂單進(jìn)行初步評(píng)估。在初始用戶(hù)批準(zhǔn)購(gòu)買(mǎi)訂單之后,由該用戶(hù)的經(jīng)理批準(zhǔn)它。在經(jīng)理批準(zhǔn)后,該購(gòu)買(mǎi)訂單被轉(zhuǎn)發(fā)至計(jì)帳和運(yùn)輸部門(mén)。該解決方案包含四個(gè)交互。與任務(wù)管理服務(wù)進(jìn)行交互,以配置任務(wù)和設(shè)置合適的策略。定義應(yīng)該處理任務(wù)的用戶(hù)的順序。啟動(dòng)與任務(wù)管理服務(wù)交互的任務(wù)。***個(gè)用戶(hù)將認(rèn)領(lǐng)該任務(wù)以開(kāi)始處理它, 處理完成后, 任務(wù)管理服務(wù)會(huì)將該任務(wù)傳送到該組中的下一個(gè)用戶(hù)。

平行工作流模式代表如下方案:一個(gè)任務(wù)必須由不同的用戶(hù)同時(shí)批準(zhǔn)。每一個(gè)審批者都可以獨(dú)立于其他人添加備注和附件。例如,招聘流程用于招聘新雇員。每個(gè)面試人員都需要投票以支持或反對(duì)應(yīng)聘者。如果有75% 的投票表示支持,則會(huì)雇用該應(yīng)聘者;否則,該應(yīng)聘者將會(huì)落選。此流程使用平行工作流建模,其中每個(gè)面試人員都可以獨(dú)立于其他面試人員進(jìn)行投票。實(shí)現(xiàn)該解決方案需要五個(gè)交互。與任務(wù)管理服務(wù)進(jìn)行交互,以配置任務(wù)和設(shè)置合適的策略。定義應(yīng)該處理任務(wù)的用戶(hù)的順序。啟動(dòng)與任務(wù)管理服務(wù)交互的任務(wù)。任務(wù)管理服務(wù)將該任務(wù)傳送給所有用戶(hù)。 任務(wù)管理服務(wù)只有在所有用戶(hù)都完成任務(wù)的處理時(shí)才能完成該任務(wù)。#p#

使用策略進(jìn)行任務(wù)分配

現(xiàn)在,讓我們討論一下如何使用任務(wù)分配的策略,按照該策略,需要遵循特定的規(guī)則向用戶(hù)分配任務(wù)。例如,心臟搭橋手術(shù)過(guò)程被分配給所分手術(shù)數(shù)量最少的外科醫(yī)生。此解決方案的實(shí)現(xiàn)通過(guò)五個(gè)交互將工作流組件組合起來(lái)。與任務(wù)管理服務(wù)進(jìn)行交互,以配置任務(wù)和設(shè)置合適的策略。作為任務(wù)定義的一部分配置分配策略 — 例如,從有空的用戶(hù)中選擇所分配的任務(wù)數(shù)量最少的一個(gè)。 作為業(yè)務(wù)流程的一部分, 使用任務(wù)管理服務(wù)將任務(wù)分配到用戶(hù)組。啟動(dòng)與任務(wù)管理服務(wù)交互的任務(wù)。 任務(wù)管理服務(wù)將針對(duì)可以處理該任務(wù)的潛在用戶(hù)執(zhí)行任務(wù)策略,然后依次完成下列操作:選擇符合策略條件的用戶(hù); 將任務(wù)分配給該用戶(hù)。

在 “使用升級(jí)的單用戶(hù)工作流” 示例中, 可以將任務(wù)分配給多個(gè)用戶(hù), 但是只有一個(gè)用戶(hù)可以處理該任務(wù)。如果該任務(wù)到期,則該用戶(hù)的經(jīng)理必須處理該任務(wù)。例如,技術(shù)支持服務(wù)請(qǐng)求流程使用戶(hù)可以提交技術(shù)支持服務(wù)請(qǐng)求票證。 如果收到票證的人沒(méi)有在指定的時(shí)間段內(nèi)處理該票證,則該票證自動(dòng)升級(jí)給此人的經(jīng)理。如果在預(yù)定義時(shí)間段內(nèi)沒(méi)有任何人處理該票證,則該票證被自動(dòng)升級(jí)三次,直到它到達(dá)公司的CEO那里。如果CEO也沒(méi)有進(jìn)行處理, 則該票證到期。

對(duì)于此解決方案的實(shí)現(xiàn),通過(guò)五個(gè)交互將工作流組件組合起來(lái)。任務(wù)是使用客戶(hù)端應(yīng)用程序配置的,這些應(yīng)用程序與任務(wù)管理服務(wù)交互;在此步驟中配置了屬性,如任務(wù)的生存期、 升級(jí)策略或任務(wù)狀態(tài)。作為業(yè)務(wù)流程的一部分, 使用任務(wù)管理服務(wù)將任務(wù)分配到用戶(hù)組。 一個(gè)用戶(hù)認(rèn)領(lǐng)該任務(wù),任務(wù)管理服務(wù)應(yīng)用正確的策略以防止其他用戶(hù)執(zhí)行同一個(gè)任務(wù)。 如果任務(wù)到期,則任務(wù)管理服務(wù)會(huì)應(yīng)用升級(jí)策略,將任務(wù)升級(jí)到正確的用戶(hù)。如果該任務(wù)再次到期, 則任務(wù)管理服務(wù)會(huì)將其取消。

在“使用委派的單用戶(hù)工作流”示例中,聲稱(chēng)要處理任務(wù)的用戶(hù)可以將該任務(wù)重新分配給其他用戶(hù)。例如,在離開(kāi)之前,會(huì)計(jì)主任將他或她的所有未完成的任務(wù)交給助理會(huì)計(jì)。 對(duì)于此解決方案的實(shí)現(xiàn),通過(guò)四個(gè)交互將工作流組件組合起來(lái)。任務(wù)是使用客戶(hù)端應(yīng)用程序配置的,這些應(yīng)用程序與任務(wù)管理服務(wù)交互;配置了屬性,如任務(wù)的生存期、升級(jí)策略或任務(wù)狀態(tài)。作為業(yè)務(wù)流程的一部分, 使用任務(wù)管理服務(wù)將任務(wù)分配到用戶(hù)組。 一個(gè)用戶(hù)認(rèn)領(lǐng)該任務(wù),任務(wù)管理服務(wù)應(yīng)用正確的策略以防止其他用戶(hù)執(zhí)行同一個(gè)任務(wù)。使用適當(dāng)?shù)目蛻?hù)端應(yīng)用程序,用戶(hù)可以檢查能夠處理該任務(wù)的可能人員的列表。用戶(hù)將該任務(wù)重新分配給上述人員之一, 并重新調(diào)整該任務(wù)的屬性。

對(duì)于“任務(wù)鏈模式”示例,一個(gè)任務(wù)需要根據(jù)另一個(gè)任務(wù)的完成狀態(tài)而啟動(dòng)。例如,在急救協(xié)調(diào)流程中,當(dāng)前面的工作項(xiàng)目完成時(shí),立即開(kāi)始下一個(gè)工作項(xiàng)目。要實(shí)現(xiàn)此解決方案, 可以通過(guò)四個(gè)交互將工作流組件組合起來(lái)。任務(wù)是使用客戶(hù)端應(yīng)用程序配置的,這些應(yīng)用程序與任務(wù)管理服務(wù)交互;屬性(如任務(wù)的生存期或狀態(tài))得到了配置。配置了任務(wù)鏈元數(shù)據(jù), 指示第二個(gè)任務(wù)將由***個(gè)任務(wù)的完成觸發(fā)。通過(guò)任務(wù)管理服務(wù)啟動(dòng)任務(wù)鏈,從而使***個(gè)任務(wù)啟動(dòng)。 當(dāng)***個(gè)任務(wù)完成時(shí),任務(wù)管理服務(wù)將使用任務(wù)鏈中的元數(shù)據(jù)啟動(dòng)第二個(gè)任務(wù)。

業(yè)務(wù)流程集成

可以組合使用任務(wù)管理、身份管理、跟蹤、通知等服務(wù)和客戶(hù)端應(yīng)用程序來(lái)設(shè)計(jì)工作流解決方案。我們已經(jīng)探討了工作流架構(gòu)中存在的一些最常見(jiàn)的組件以及它們?cè)谝幌盗薪换ブ械膶?shí)現(xiàn)??梢允褂靡唤M人力交互模式對(duì)一些最復(fù)雜的人力 — 系統(tǒng)交互進(jìn)行建模,而這些人力交互模式又是使用工作流組件實(shí)現(xiàn)的。工作流架構(gòu)的這些基本組件和模式代表了業(yè)務(wù)流程集成領(lǐng)域中的關(guān)鍵方面,而且,它們?cè)趯?shí)現(xiàn)后能夠創(chuàng)建強(qiáng)大的工作流解決方案。

【編輯推薦】

  1. J2EE工作流管理系統(tǒng)jBPM詳解(一)
  2. J2EE工作流管理系統(tǒng)jBPM詳解(二)
  3. 解析UML工作流管理系統(tǒng)
責(zé)任編輯:佚名 來(lái)源: MSDN
相關(guān)推薦

2020-08-06 08:26:22

Kubernetes架構(gòu)開(kāi)發(fā)

2023-01-04 08:02:16

工作流架構(gòu)設(shè)計(jì)

2020-08-06 08:16:26

Kubernetes架構(gòu)開(kāi)源

2024-08-05 12:46:51

2009-11-18 09:14:49

Visual Stud

2022-10-26 08:00:43

Activiti工作流BPM

2023-08-02 18:48:23

Flowable工作流引擎

2009-04-15 11:00:31

Workflow工作流角色

2021-03-12 06:44:09

Argo Workfl開(kāi)源項(xiàng)目

2021-10-14 11:34:05

技術(shù)工作流引擎

2010-01-14 09:35:10

WF4.0

2024-04-25 08:00:00

DevOps架構(gòu)軟件開(kāi)發(fā)

2013-04-23 10:28:08

IBeamMDAAWF

2015-03-13 15:58:11

Adobe

2022-07-07 08:38:15

Springflowable引擎

2009-07-31 17:34:40

ASP.NET工作流

2024-07-18 08:38:31

2012-07-23 10:36:46

工作流

2010-01-04 17:42:50

SilverLight

2017-04-05 10:06:59

工作流界面抽象組件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)