理解工作流的好文

什麼是工作流

  在Forrester Report 提出的關於工作流程概念定義中,將工作流程比喻爲“信息河流”。即日常的業務處理或協同工作能按預先定義好的規則和過程進行流動,並且這一流動過程能被跟蹤和監控。

工作流管理系統

  工作流管理系統是一套支持業務定義和自動運轉工作流的系統。目前市面上成熟的產品有IBM MQ workflow、oracle workflow和其他中小型公司基於wfmc.org組織開發的工作流管理系統。
如何採用工作流開發?談這個問題之前我們必須瞭解一下目前採用三層層模式如何開發B/S的應用程序。(以開發一套公司報銷的應用爲例)
  :公司有員工3人 小王,小李,小張,級別從大到小分別爲小王、小李、小張。他們每月公司給與的報銷額度按照級別分別爲1000,500,300元。下一級的員工報銷必須經過他上一級員工的審批。設計一個企業費用報銷的應用程序。
  三層模式爲Presentation Tier 表示層 Business Tier 業務層 Integration Tier 集成層。一個項目設計我們一般以上面三層來設計我們的應用程序的框架。表示層我們可以用struts的方式作前端的控制,業務層我們可以用delegate實現按照報銷業務規則的方法,而集成層我們採用DAO的方式訪問數據庫。對於一個報銷的用例,我們設計delegate的時候必須考慮判斷用戶的級別,因爲不同級別的員工報銷流程是不一樣的。這樣在我們的程序裏實際上是delegate起到了相當重要的作用。如果業務變化了(如員工的報銷由逐及上報轉爲直接上報),我們必須按照相應的業務變動,修改delegate實現的方法。導致整個應用程序的修正。
  如果我們採用基於工作流的開發。按照三層模式我們完全可以把業務層拋給工作流。通過工作流管理系統配套的工具設計出含有這個報銷業務的配置文件,接着導入這個配置文件到工作流管理系統。而整個程序變成了面向工作流的開發,應用程序只要處理如何啓動工作流引擎生成一個報銷流程的實例,如何處理這個實例在工作流引擎中流轉時發出的通知或者消息、如何做輔助的處理通知或者消息時候的記錄即可。如果出現報銷業務流程改變的情況,我們只要對包含業務流程信息的工作流配置文件導出,修改後再次倒入工作流流管理系統即可。無需對原有的應用程序作任何的改動。
  以上是簡單介紹了一下工作流在應用程序開發的作用,並同時和不採用工作流開發進行了一個比較。希望能夠有一個拋磚引玉的效果。

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