.NET 開源工作流: Slickflow流程引擎高級開發(三) -- 並行分支容器與會簽工作流模式的組合


前言:  流程引擎的核心功能是負責解析流程定義XML和流轉,業務環節的不斷積累,讓人們不斷總結和抽象出一些模式,這些模式統稱為工作流模式(Workflow Pattern)。本文的重點就是介紹一種常見的由兩種模式組合而成的新模式。

1. 工作流模式基本介紹

        關於工作流模式,已經廣泛被流程分析和設計人員認可,它非常有助於工作流系統的各類用戶對業務過程的理解,也能幫助架構師對引擎功能的開發和擴展。更多工作流模式因為網上已經有比較多的資料,這里就不再詳細說明了,比如以下的網絡資源供大家學習和了解。

http://www.workflowpatterns.com

2. 工作流模式的組合

        工作流模式是為了簡化一些常見的業務規則,一些簡單的模式大家容易理解,但是也有一些比較復雜的模式,通常就需要產品經理來通過組合的方式定制出來,而且可以作為一種通用的模式進行推廣。

2.1 會簽

        常見的任務節點是一人辦理就向下流轉,會簽是同一任務節點的多人多次審批辦理,會簽的方式有串行會簽和並行會簽兩類。在Slickflow.Engine實現中,會簽模式是按照多實例(Multiple Instance)模式進行實現。會簽可以有通過率設置,表示會簽任務可以向下流轉的一個閾值。

2.2 並行分支容器

        並行容器用於動態的多個並行分支的路由模式,相比於固定的分支不同,並行多實例是一種容器類型的模式,容器里面存在多個相同的分支實例運行。這些分支可以是由多個節點組成的一個串行流程片段。

2.3 組合

        在實際業務過程中,並行分支容器里面的節點是否可以是會簽節點呢?工作流模式的組合正好可以驗證和實現這樣的業務需求,引擎的目的就是滿足客戶不斷提出的業務功能需求,所以利用並行分支容器和會簽兩種簡單模式組合成一種更加實用的模式,而且可以推廣給更多的客戶,才是引擎功能持續不斷開發的目的。

        比如下圖所示,小組分配項目,檢驗員錄入和小組匯總審核,構成的流程片段是被包含在並行容器內部,表示是一種動態的流程執行策略,每次流程實例化后,小組的數目是動態變化的,所以不能用固定化的分支來設計流程圖。而且檢驗員錄入又是一個會簽節點,表示多個檢驗員在這個任務節點上可以多次處理后,然后在由下一步的小組組長匯總審核。

        在用並行分支容器嵌入會簽節點的兩種模式組合后,就能夠順利解決這樣的這樣問題。並行分支容器解決了每次小組數目動態變化的問題,而會簽節點的處理是不受外部干擾的。所以模式的重新組合,是一種非常值得推廣的應用。

3. 應用場景分析

        在實際應用過程中,並行分支容器簡化了動態分支的表示,在工作流模式中,是允許這種動態類型模式的普通存在,流程的動態響應能夠適應業務的動態變化,並行分支容器也是工作流模式最經典的動態模式之一。

4. 快速測試

        並行分支容器和會簽組合的模式,產生的實例比較多,如果每次不斷切換用戶身份也是比較繁瑣的,此處建議可以使用上一篇博客文章中提到的測試方法進行測試。

        Slickflow.NET 開源工作流引擎高級開發(二) -- 流程快速測試和流程圖形代碼創建介紹

5. 總結

        模式組合的產生是業務分析人員對業務過程的梳理和重構,也只有不斷熟悉工作流模式和挖掘業務流程特征后,才可以找到解決新問題的辦法。而業務經理和引擎產品負責人的交流探討則是一種業務和技術的互動溝通,技術的本質是為業務服務,引擎產品的不斷擴展的特性才是讓工作流模式更加豐富的保證。

       Slickflow.Engine產品正是基於這樣的產品架構,不斷增強工作流模式的應用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM