2006-12-27
JBPM 2 (Hello World)官方Help版Hello world: 文檔位置:jbpm-starters-kit-3.1.2\jbpm\doc\userguide\en\html\index.html
Javadoc:在 jbpm-starters-kit-3.1.2\jbpm\doc\javadoc.jbpm\index.html
這個hello world 新學的人看不出個什么名堂來,對象結構不了解,工作流的優(yōu)勢也沒表現(xiàn)出來(之前做過工作流的可能看得一楞一楞的)
官方Web版Hello World:
要看JBPM自己的Hello World 很簡單,直接解壓縮jbpm-starters-kit-3.1.2
Web觀看:jbpm-starters-kit-3.1.2\jbpm-server\start.bat 跑jboss
http://localhost:8080/jbpm 一個WebSale 的例子,工作流的好處描述的比較清楚,“圖形化”流程顯示,人員,流程,應用的分離
相關源代碼一應俱全: jbpm-starters-kit-3.1.2\jbpm\src\java.webapp\org\jbpm\webapp
界面用JSF寫的,奇怪了,為什么會用JSF?我現(xiàn)在感覺JSF帶來的除了是麻煩,沒有什么,學aspx也沒學像,說MVC吧,代碼量大太多,說改起來容易完全是扯蛋,感覺就是拿框架來忽悠人,寫配置比寫代碼煩多了,還不好調(diào)試,考,太抽象也就太遙遠
BTW:這個圖形也太蒙人了,居然只有一副流程定義圖片,然后靠畫紅色圈圈來套,我考,跟商業(yè)的Workflow差太遠了。目前我正安排fish幫我用.net寫一套配置界面(包括人員配置,語法檢查,模版設置)和動態(tài)演示出來。用Eclipse的弱智圖形配置界面 + 紅圈圈還真拿不出手。至少要跟Workflow看齊嘛,呵呵,現(xiàn)在其實已經(jīng)做得7788的了,不過還是要打磨以后才放出來用,應該不比這類商業(yè)軟件,就是不知道Boss準不準拿出來開源
自己寫一個Hello World:
目標:初步體會BPM的Power, 應用,流程,人員的分離,圖形化的流程
1. 給Eclipse 3.2 安裝上GOP插件
似乎只要注意版本和避開干擾軟件,基本沒什么問題,我開始沒仔細讀說明,被害慘了,用了3.12 + myEclipse,折騰了許久才搞定
2. 創(chuàng)建項目,JBPM項目自然就出現(xiàn)了,這個時候要選擇引擎,選 jbpm-starters-kit-3.1.2\jbpm\build 目錄就可以了
Eclipse默認引用了一大堆jar包,實際上,就引用 build目錄就可以了,如果用JBuilder,就配置一下,完全一樣用。項目創(chuàng)建會默認產(chǎn)生一個流程和例子,注意,src/config 在JBuilder里面沒法用,JB會打包build目錄(引用的引擎下面)的幾個配置文件,直接改build目錄的配置文件,效果一樣
3. 畫流程圖
項目建好,直接在Process目錄下面創(chuàng)建一個JBPM Process Definition就可以了,OK,看到圖形界面了,簡單描述一下各種節(jié)點的大致作用
Start:就是個開始,JBPM的開始還可以亂七八糟放些東西,不過我不太習慣
End:結束,可以多個
State: 沒怎么用過,似乎怎么用也都可以
Fork:流程分支,似乎JBPM這部分并行必須要這個東西,有點無聊,反過來說,一個沒有分支合并的節(jié)點,畫再多線也只能走一根,把后臺設置前臺化而已
Join: 合并流程,同上,我覺得這個東西未來也許會消失
Decision: 決策,可有可無的東西,以前我用workflow重來不鳥他,只是為了畫圖好看
Node:
Task Node:任務節(jié)點,掛上任務主要用來作人機交互節(jié)點,關聯(lián)任務使用
Process State:可以看作自動過程,主要用來根其它系統(tǒng)打交道
Super State: 相當于一個節(jié)點集合的包
Transition: 不用多說,所有節(jié)點都得有連接線
4. 配置文件說明
hibernate.cfg.xml 配置數(shù)據(jù)庫連接,這個很好改
jbpm.cfg.xml讀取基本設置,不過在JB里面死活不認,據(jù)同事說需要用JNDI,MMD,簡單問題復雜化,上面兩個文件都可以直接寫到程序里面去
log4j,你想不想看調(diào)試信息的問題
5. 運行Hello World
畫個圖
產(chǎn)生了下面xml
xmlns="urn:jbpm.org:jpdl-3.1" name="HellowWorld">
畫圖實際上是在寫2個xml文件,流程引擎使用的是 processDefinition.xml gpd.xml是用來指示圖形位置的,processimage.jpg是自動產(chǎn)生的,這部分實際上比較弱,無法完整整合用戶管理,如果用來做workflow又缺乏表單管理(用變量可以代替)。最最惱火的是沒有對所畫流程檢查功能,希望以后能補上?;旧鲜莻€半手工活,懂JBPM的程序員用可以,就別指望用戶能用了
寫兩句代碼
結合官方例子寫就可以了,換換名字,基本實現(xiàn)
代碼寫起來比較舒服,整個結構框架很清楚
6. 總結優(yōu)缺點,JBPM是否對你有用
優(yōu)點:
我見過最好的免費流程引擎(這條就夠了), 功能強勁,跟商業(yè)的的沒有本質(zhì)區(qū)別
對整合環(huán)境沒什么挑剔,java .net都行,數(shù)據(jù)庫也基本不挑
可擴展性極好,到處都能掛代碼,呵呵
缺點:
文檔嚴重不夠, 寫起來剛開始比較痛苦
部分功能不完善(用戶管理部分,安全部分)
應用擴展性過于靈活,換句話說就是功能不完善(都是留接口寫代碼),沒有找到不用Hib持久化的方法
|
|
來自: jinhao2003 > 《我的圖書館》