工作流開發指南1

工作流雖然還在不成熟的發展階段,甚至還沒有一個公認的規範標準。但其應用卻已經在快速展開,這說明市場對工作流框架的需求是急迫而巨大的。

我們公司的後臺短信管理系統涉及短信編髮、領導層層審覈等操作,這是一個比較典型的工作流系統。過去我們用的工作流引擎是 shark ,然後在使用後發現其過於龐大,後臺數據庫操作頻繁而未進行優化,直接導致的後果就是前臺操作緩慢。於是經研究決定,將工作流引擎由 shark 換成 jBPM

jBPM 之前是一個開源軟件,後加入 JBoss 組織。正好我們公司也是用 JBoss 的。不過 jBPM 並沒有綁定在 JBOSS 上, Tomcat 等也可以使用它。

jBPM 的正處在不斷發展中,做爲開源軟件的特點,其設計變化往往很大。所以一些過去的資料可能已經不適用了。於是作者根據自己的使用經驗,重新整理出這份文檔,以備學習參考。

注:本文使用的 jBPM 版本爲 3.1.1

環境準備

1、安裝JDK

所有 JAVA 開發第一個需要安裝的,沒什麼好說的。記得把系統變量 JAVA_HOME 設上。

2、安裝Ant

Ant 是使用 jBPM 必須的一個工具。 jBPM 中的很多操作都要用到 Ant

安裝方法:

1 )先下載: http://archive.apache.org/dist/ant/binaries/ ,選一個如: apache-ant-1.6.5-bin.zip

2 )解壓到 D:/ant (當然其他目錄也可以)。

3 )設置如下系統變量: ANT_HOME=d:/ant

4 )把 %ANT_HOME%/bin 加入到系統變量 PATH 中。

3、安裝Eclipse

Eclipse 不是開發 jBPM 必須的工具,但它是對 jBPM 開發很有幫助的工具,特別是 jBPM 提供了一個 Eclipse 插件用來輔助開發 jBPM 。關於 Eclipse 的安裝不贅述了,本文用的版本是: Eclipse3.2

 

安裝 jBPM

jBPM 的下載地址: http://www.jboss.com/products/jbpm/downloads  

l           JBoss jBPM jBPM 的軟件包

l           JBoss jBPM Starters Kit  是一個綜合包,它包括了 jBPM 軟件包、開發插件、一個配置好了的基於 JBoss jBPM 示例、一些數據庫配置文件示例。

l           JBoss jBPM Process Designer Plugin  是輔助開發 jBPM Eclipse 插件。

l           JBoss jBPM BPEL Extension jBPM 關於 BPEL 的擴展包

本指南選擇下載: JBoss jBPM Starters Kit 。下載後解壓到 D:/jbpm-starters-kit-3.1 ,目錄下含有五個子目錄:

l           jbpm   jBPM 的軟件包

l           jbpm-bpel 只含有一個網頁

l           jbpm-db 各種數據庫 hibernate 配置文件示例,有些還包含了相應的 jdbc 驅動程序。

l           jbpm-designer  輔助開發 jBPM Eclipse 插件,具體在 jbpm-gpd-feature 子目錄中

l           jbpm-server  一個已經配置好了的基於 JBoss jBPM 示例 .

 

感覺下工作流

前面我們說了,在 JBoss jBPM Starters Kit jbpm-server 目錄是一個已經配置好的了 jBPM 示例,那麼讓我們來感覺一下 jBPM 做出的東西吧。

 

雙擊 jbpm-server 目錄下的 start.bat 文件,啓動 JBoss 服務。這時會打開一個 DOS 窗口,啓動完成後,日誌會不斷輸出,其中最後一句是“ 13:55:39,937 DEBUG [StaticNotifier] going to wait for (CMD_EXECUTOR, java.lang.Object@1df59bd) ”,這表示 jBPM 在開始工作了,它不斷進行輪詢。

打開網頁: http://localhost:8080/jbpm/  得到如下畫面

 20060713_image001.jpg

這是一個已經用 jBPM 開發好的用戶定單流程,具有下單、審覈、估價等流程。它所用的數據庫是一個內置的數據庫。

cookie monster 用戶登錄,選擇“ create new web sale order ”可以創建一個定單。如下圖所示,在圖左邊是填寫的定單情況,右邊一整個定貨流程的示意圖,紅色框表示流程進行到哪一步了。填寫好定單好,選擇“ Save and Close Task ”,完成定單提交。

 20060713_image002.jpg

選擇右上角的“ Login as another user ”以另外一個用戶名 ernie 登錄。這時可以看到 ernie 用戶的任務列表中多了一項。

 20060713_image003.jpg

點進去後,顯示如下畫面。這個示例對中文的支持不好,全都顯示成了 unicode 碼了。不管這什麼多,反正知道是這麼回事就行了。在 comment 項填寫意見,選 OK 按鈕,進入到下一步。如果選擇 more info needed 按鈕,則打回給 cookie monster 用戶修改定單。

 20060713_image004.jpg

下面的流程,這裏就不再贅述了。在這個很標準的工作流示例中,我們基本可以看到 jBPM 的應用範圍還是比較廣的。而且從這個示例,我們是看不出有 jBPM 的,也就是說 jBPM 在後臺起着作用。

從這個例子,還看不出 jBPM 的優勢。不過,如果在一個流程不確定,經常需要變動的項目中, jBPM 的好處將會顯然出來。應用 jBPM 後,改變流程只需改變流程描述文件,這將在後面的內容提到。

這是一個已做好的示例,接下來我們將仿造這個實例來開發一個請假流程。 

發佈了4 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章