1. 程式人生 > >Activiti 工作流引擎系列--01 初探

Activiti 工作流引擎系列--01 初探

這段時間簡單摸了一下Activiti 工作流引擎,把整理出來的slides在這裡稍作記錄。歡迎討論!

什麼是工作流?

我們生活中工作流很常見了,比如銀行取款,比如工作報銷。背後都有一套既定的流程在那裡。舉個例子:

BPMN 2.0

需要去設計一套基於工作流的系統,就離不開工作流引擎。在進入工作流引擎之前,我們首先來談談BPMN 2.0. 這是一套定義工作流的語言。業界並沒有官方的release給出工作流的定義,只有這套被廣為接受的約定俗成的標準。 其中定義瞭如task、流向(sequence flow)、起止事件(start event、 end event)等節點模型和其含義。 而工作流引擎,說白了,就是去解析這套語言畫出來的流程例項。

工作流引擎之常見架構設計

其實基於工作流引擎的架構設計也比較通用了。下圖是我自己的一些設想:

什麼是Activiti?

OK,我們進入正題。首先是對Activiti的介紹。
這款引擎適用於 產品經理、特定業務方和開發人員。為什麼說特定業務方呢,因為會去使用Activiti自帶的WEB UI介面的業務方畢竟是不多的。。。 Activiti會去解析流程中定義的節點,同時觸發對應的操作,如讀寫資料庫,如對外部服務的呼叫。 其特別適用於BPM的場景,僅僅一個war包就可以跑起來,同時跟spring天生結合在一起,可以非常方便地整合到系統中來。

Activiti Community

那Activiti本身的社群也是相當活躍的。Alfresco是擁有Activiti的公司,將其開源並維護著。 像Grails等常見框架也提供對Activiti的支援。

Getting Started

接下來談談如何去啟動Activiti,來一次初體驗。 其啟動的成本是非常低的,在任意機器上安裝一個tomcat,然後去官網下載war包,放到tomcat目錄下,啟動tomcat,Activiti就啟動起來了。 在專案中,也只需要新增一個簡單的dependency即可。自帶restful的API,同時有非常好的指導文件。直接在官網上就查得到。
OK,初探到此為止。 在第二篇中,會對Activiti的架構做一些簡介。