Java工作流系統的一些常見名稱解釋
第一次接觸工作流系統,可能會對一些基本的術語和名詞有誤解。如流程實例,流程模版,流程版本等,以及這些名詞之間的關系,需要有一個學習和理解的過程。這些名詞和術語也是工作流系統中的通用名詞,通過學習和理解后,會對這些術語和名詞有一個共同的認識和理解。
如下面的詞語
工作流引擎:抽象的業務流程設計模型,負責業務流程的定義,解釋和運轉。
工作流模版:用工作流引擎的基本概念和路由過程表示出一個業務辦理過程,這個過程通常是用xml格式的文件來記錄的,這個xml文件,就是工作流模版,也可以說是流程模版。
工作流名稱:就是工作流模版文件的名稱。也可以叫流程名稱。
工作流版本:工作流模版的版本,也可以叫流程版本。在工作流系統中,對工作流模版有個版本管理,新建一個工作流模版時候,它的工作流模版是.1。當再次做修改的時候,可以選擇創建新的版本,如.2。
因為一旦業務流程模版投入使用了,有了運行的流程實例了,再次對業務流程做的修改,就需要更新到新的版本中,原來的流程版本還需要存在,原來的流程定義信息,按版本仍然能查詢到。新的修改在新的版本中。
流程名稱+流程版本 是唯一標識一個業務流程的。
工作流建模:利用流程設計器將業務處理過程用工作流的節點方式表示出來,就是工作流建模,也可以說是流程建模。
工作流節點:是工作流引擎的設計基本節點,一個節點表示一個業務處理過程,在流程設計器中,會有相應的表示方式。
流程實例:按照工作流模版定義的處理過程啟動運行的業務處理過程,即流程實例。利用建立好的業務流程模版,可以多次啟動流程實例,一個流程實例即一個業務處理過程。如請假審批的流程,張三填寫他的請假單,啟動一個審批流程實例。李四也填寫一個自己的清單單,也是啟動了一條流程實例。
流程實例id:每條啟動的流程實例,在工作流引擎中,都會對應一個流程實例id,來唯一標識這條流程實例。
軌跡id: 軌跡id通常是指流程節點的運行軌跡id,當一個節點在流程實例中被反復運行的時候(如循環路由,自由流),每次到達這個節點的時候,都會產生一個軌跡 id,trace_id, 唯一標識這次的運行軌跡。
業務數據: 流程中每個節點上處理的業務記錄等。通常流程數據和業務數據是有關聯的。
流程設計器:利用工作流引擎的設計基本節點和概念給業務流程建模的可視化編輯工具,就是流程設計器。
當前步驟:流程實例未結束前,正運行到的當前節點,為當前步驟。
歷史步驟:流程實例運行完成的節點,都認為是歷史步驟。
流程實例運行軌跡:每條流程實例在工作流模版的節點上運行的軌跡。
流程實例監控:監控每個流程實例在各個節點的運行情況。
任務:每條流程實例在運行到流程的各個節點時,會產生一些待執行的任務信息。有任務名稱,描述,和參與人,完成人等任務的基本信息。通過任務鏈接到待處理的業務過程。
任務參與人:任務信息的參與人,能夠查看到任務的相關人。
任務執行人:可執行任務的操作人。
任務工單:任務派發下來的工單。
串行路由:業務建模中,節點按順序一個一個的往后串聯的方式。
并行路由:業務建模中,節點并行的方式往后鏈接。
條件路由:業務建模中,按設置的條件為真,鏈接一個路由方式,條件為false,往后鏈接一個路由方式。在流程實例運行時,只會執行一條路由,即條件要么=true,要么=false.
分支:業務建模中,平行分支的節點路由方式。
合并:業務建模中,將平行分支的節點路由再合并起來的路由方式。
子流程:為一個獨立的業務流程,嵌入到主流程中。
循環路由:在節點間或同一個節點上循環執行的路由方式。
自由流:流程實例不按照流程模版中預定義好的節點順序往下執行,而是可以自由的跳轉。
回退流:流程實例不按照流程模版中預定義好的節點順序往下執行,而是回退到曾經運行過的任意節點上。
業務補償類:在流程發生自由跳轉的時候,需要輔助執行一些業務處理過程來對業務數據進行修改。
這里只是列出一些常用的工作流系統中的術語,不體現流程引擎的設計基本概念。
特別是流程模版,流程實例,業務數據這之間的關聯和區別:
流程模版,是將業務處理過程用工作流引擎的支持的方式表示出來的一個模版文件。
流程實例,按照工作流模版定義的處理過程啟動并運行的業務處理過程,通常對應一條主業務數據。一條流程實例在流程引擎中會有一個唯一的流程實例id,通常命名為wf_id,在業務數據的主業務表中,也需要建立一個wf_id字段,來和流程實例關聯上。
例如請假審批的流程,請假單,就是業務主表。報銷單,報銷單的主表,就是業務主表。
根據需要,可能在業務表中,還可能會增加軌跡id字段,來進一步控制業務數據與工作流數據的關聯。
來自:http://blog.csdn.net/zzp_403184692/article/details/8028554