工作流模式-工作流數據模式40種

正如語言是人與人之間的溝通方式一樣,數據是IT系統之間的溝通方式,語言之間的溝通總 是有效,數據交互卻未必,因爲除了讓計算機理解之外,數據還需要讓人理解,IT系統是對現實 生活的映射,也正因爲如此,現在數據之間的溝通也在向語言靠攏即語義化(REST/語義網)。

在WfMC的工作流模型裏,工作流數據被分爲了3類,如圖C-1所示。

圖C-1 WfMC的工作流數據分類

  1. 工作流控制數據:工作流系統管理的內部控制數據,這些數據包括了與流程實例和活動 實例相關的執行數據和狀態數據,例如流程實例的狀態、執行時間、工作項的執行者、 執行時間、狀態、緊急程度等。
  2. 工作流相關數據:工作流系統使用工作流相關數據確定流程實例的流轉條件,並選擇下 一個將執行的活動,這些數據由業務系統訪問並修改。例如報銷流程中的“報銷金額”, 這個數據會決定該流程的審批路徑;再例如爲活動設置的超時時間,這個數據會觸發活 動的取消。這些數據是工作流系統需要依賴進行流程流轉的業務應用數據。
  3. 工作流應用數據:業務系統管理的業務數據,工作流系統不能訪問。

我們遵循WfMC的工作流數據分類,區別是將工作流相關數據根據應用場景進一步細化爲3 類並重新定義,如圖C-2所示。

圖C-2 工作流數據分類

我們將工作流相關數據泛化爲爲工作流系統能夠訪問並使用的業務應用數據,分爲3類:

  1. 連接業務系統的關聯數據:工作流系統與業務系統進行關聯的數據,例如特定於Web系統,工作流系統會在每個流程/活動實例裏保持有導航至對應業務表單的URL。
  2. 傳遞作用的業務應用數據:當流程跨越多個業務模塊時,需要在模塊間傳遞數據,此時 會利用工作流系統進行傳遞,在工作流系統裏暫時存儲或轉換這些業務數據。在面向服 務的軟件架構中(SOA),工作流系統作爲重要的中間件負責服務之間的調用編排,業務應用數據被封裝爲SDO通過工作流系統在不同Web服務(業務系統)間傳遞。
  3. 影響路由的業務應用數據:和WfMC對工作流相關數據的定義一致。

流程、數據和組織是工作流應用中最重要的三個方面,它們緊緊地依賴在一起,如圖C-3 所示。

圖C-3 流程、數據與組織

在以流程爲核心模型的軟件架構裏,系統功能通過流程進行協調,流程面向組織,如圖C-4所示。

圖C-4 面向組織的流程

流程作爲整個應用的入口,流程模型中包含組織模型(部門/人員/角色),流程通過活動定義 界定出應用的各個業務上下文,並由此界定組織中部門/人員/角色的職責、權限和互相協作的規則。

以流程爲核心的軟件架構有2種應用場景:獨立業務應用系統的工作流嵌入式使用和業務應 用系統的企業內集成。

在獨立業務應用系統的工作流嵌入式使用中,工作流系統作爲內部組件對應用系統進行流程 邏輯的橫切。試想一個需要多人處理的電力繳費流程,在引入工作流系統之前,我們需要爲每個 業務表單設置一個狀態位,以此來進行業務處理狀態的跟蹤。如果流程固定,那麼這樣做並沒有 什麼不好,例如財務軟件、海關報關軟件等,它們的流程雖然複雜但是不常改變,此時就沒有必 要引入工作流系統。但是對於另外一些情況,例如製造業的訂單處理、庫存管理、政府的協同辦 公等,流程經常需要定製修改,此時如果繼續由業務應用系統自己處理流程邏輯那麼成本將會很 高,如圖C-5所示。

圖C-5 嵌入工作流的獨立應用系統

在使用工作流進行企業內應用系統的集成時,工作流系統作爲獨立的服務部署。在上規模的 企業裏,很多流程會涉及不同的業務功能,例如報價、訂單審覈、資產覈准、績效評估等,這些 流程經常會跨越不同的部門和業務應用系統。工作流系統此時扮演的就是集成角色,由其通過定 制流程將這些業務應用系統撮合起來,實現企業內各部門的信息流動和協作。此時,用戶登錄門 戶,通過工作流系統推送的統一活動列表導航到各個業務應用系統進行工作,所有應用系統使用 統一的組織模型,如圖C-6所示。

圖C-6 使用工作流進行企業內應用系統的集成

在以數據爲核心模型的軟件架構裏,流程面向數據,系統功能分散在各個應用系統中,流程 通過編排服務,在不同應用系統間傳遞/同步數據,以數據進行業務的驅動。流程模型不包含組 織模型,流程的本質是數據流,反映數據的流向,如圖C-7所示。

圖C-7 面向數據的流程

以數據爲核心的軟件架構同樣有兩種應用場景:業務應用系統的企業內集成和企業間集成。

用戶登錄門戶,進入各個業務應用系統進行工作,應用系統之間的數據同步由工作流系統完 成,活動的觸發由各個應用系統自己負責,如圖C-8所示。

圖C-8 使用工作流同步數據進行企業內應用系統的集成

企業間進行應用系統集成,如B2C、B2B流程,需要在企業間同步傳遞數據。此時,數據的傳遞是核心,如圖C-9所示。

圖C-9 使用工作流進行企業間的應用系統集成

以流程爲核心模型和以數據爲核心模型之間最大的區別在於流程面向的對象。流程面向組織 反映出組織職責的可視化,出發點是企業的管理;流程面向數據反映出跨不同應用系統的業務數 據流,在處理企業間的業務流程時是唯一的選擇。實際應用時,經常混搭兩種架構風格,例如使 用工作流同步數據進行企業內應用系統的集成,同時在單個應用系統裏使用嵌入式工作流。

工作流數據模式共有40種,根據關注點的不同,分爲4組:數據可見性模式、數據交互模式、 數據傳遞模式和基於數據的路由模式。數據可見性模式關注工作流數據的作用範圍,討論到的數 據包括連接業務系統的關聯數據和傳遞作用的業務應用數據;交互模式關注工作流系統各組件以 及外部環境之間可能存在的數據交互種類,討論到的數據包括工作流控制數據和工作流相關數 據;傳遞模式關注數據在工作流系統各組件以及外部環境之間的傳遞方式,討論到的數據包括工 作流控制數據和工作流相關數據;基於數據的路由模式關注數據影響工作流流程執行的方式,討 論的數據爲影響路由的業務應用數據,如圖C-10所示。

圖C-10 工作流數據模式的分類

出於統一的目的,我們對工作流數據進行約定:我們使用def var ${變量名}定義變量,同時 def var ${變量名}的聲明位置決定了該變量的作用範圍。圖C-11中,我們在活動B上定義了一個名 爲M的變量,表明它的作用範圍爲活動B,即在一個流程實例裏僅活動B的實例可見。我們使用 use(${變量名})表明對該變量的使用;使用pass(${變量名})表明該變量值的傳遞。圖C-11裏,變 量M的值被從活動B傳遞至活動C。

圖C-11 工作流數據的約定

對於數據類型,典型的有string、integer、float、boolean、date和time,很多工作流系統使用序列化和反序列化支持存儲任意類型的數據類型,如數組、集合和對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章