jBPM開發入門指南(1) (2007-11-22 10:40)

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

我們公司的後臺短信管理系統涉及短信編髮、領導層層審覈等操作,這是一個比較典型的工作流系統。過去我們用的工作流引擎是 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  

  • JBoss jBPM 是 jBPM 的軟件包
  • JBoss jBPM Starters Kit  是一個綜合包,它包括了 jBPM 軟件包、開發插件、一個配置好了的基於 JBoss 的 jBPM 示例、一些數據庫配置文件示例。
  • JBoss jBPM Process Designer Plugin  是輔助開發 jBPM 的 Eclipse 插件。
  • JBoss jBPM BPEL Extension jBPM 關於 BPEL 的擴展包

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

  • jbpm   jBPM 的軟件包
  • jbpm-bpel 只含有一個網頁
  • jbpm-db 各種數據庫 hibernate 配置文件示例,有些還包含了相應的 jdbc 驅動程序。
  • jbpm-designer  輔助開發 jBPM 的 Eclipse 插件,具體在 jbpm-gpd-feature 子目錄中
  • 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/  得到如下畫面


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

以 cookie monster 用戶登錄,選擇“ create new web sale order ”可以創建一個定單。如下圖所示,在圖左邊是填寫的定單情況,右邊一整個定貨流程的示意圖,紅色框表示流程進行到哪一步了。填寫好定單好,選擇“ Save and Close Task ”,完成定單提交。
 
 選擇右上角的“ Login as another user ”以另外一個用戶名 ernie 登錄。這時可以看到 ernie 用戶的任務列表中多了一項。


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


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

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

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