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