天天看點

工作流(二)_什麼是工作流引擎

什麼是工作流引擎

       工作流引擎的英文全稱是:WorkFlow Engine,是指workflow作為應用系統的一部分,并為之提供對各應用系統有決定作用的根據角色、分工和條件的不同決定資訊傳遞路由、内容等級等核心解決方案。

  

        例如開發一個系統最關鍵的部分不是系統的界面,也不是和資料庫之間的資訊交換,而是如何根據業務邏輯開發出符合實際需要的程式邏輯并確定其穩定性、易維護性(子產品化和結構化)和彈性(容易根據實際業務邏輯的變化作出程式上的變動,例如決策權的改變、組織結構的變動和由于業務方向的變化産生的全新業務邏輯等等)。

  

       工作流引擎解決的就是這個問題:如果應用程式缺乏強大的邏輯層,勢必變得容易出錯(資訊的路由錯誤、死循環等等)。就好比一輛汽車,外表做得再漂亮,如果發動機有問題就隻是一個擺設。應用系統的彈性就好比引擎轉速方面的性能,加速到100公裡需要1個小時(業務流程發生變動需要進行半年的程式修改)還能叫好車嗎?引擎動不動就熄火(程式因為邏輯的問題陷入死循環)的車還敢開嗎?

  當今社會分工越來越細,在一個機關内部也越來越強調專業化,大部分工作都需要多個部門和員工合作完成。一個制度良好的機關往往對各種工作的工作流程以檔案的形式固定下來,即使是管理不太正規的機關也有約定俗成的工作步驟。這種工作流程保證了一件任務能按預定的順序從起點流向終點,并且在需要的時候可以跟 蹤、查詢和統計。

  

        要認識工作流引擎需要了解以下幾個要素:

        實體(Entity) :是工作流的主體,是需要随着工作流一起流動的物件(Object)。例如,在一個采購申請準許流程中,實體就是采購申請單;在公文審批流程中,實體就是公文。

        參與者(Participant) :是各個處理步驟中的責任人,可能是人,也可能是某個職能部門,還可能是某個自動化的裝置;

流程定義(Flow Definition) :是預定義的工作步驟,它規定了實體流動的路線。它可能是完全定義的,即對每種可能的情況都能完全确定下一個參與者,也可能是不完全定義的,需要參與者根據情況決定下一個參與者;

        工作流引擎(Engine) :是驅動實體按流程定義從一個參與者流向下一個參與者的機制

  可以看出,前三個要素是靜态的,而第四個要素是動态的,它将前三者結合起來,是工作流的核心組成元素。