JBoss jBPM 3.0工作流和業(yè)務(wù)流程管理的具體實(shí)現(xiàn) 目錄 第一章 緒論 JBoss jBPM 是一個(gè)靈活的,易擴(kuò)展的工作流管理系統(tǒng),。JBoss jBPM有一套直觀的流程建模語(yǔ)言,,這套語(yǔ)言能用任務(wù)(task),異步通信的等待狀態(tài)(wait state ),,定時(shí)器(timer),,自動(dòng)化的動(dòng)作(automated action)等來(lái)圖形化的表示業(yè)務(wù)流程。為了把這些操作集成在一 起,,JBoss jBPM擁有強(qiáng)大的,,易擴(kuò)展的控制流程機(jī)制。 JBoss jBPM對(duì)外依賴程度很小,,你完全可以像用java的類(lèi)庫(kù)一樣用它,。并且它也可以被部署在高性能的J2EE集群應(yīng)用服務(wù)器上。 JBoss jBPM能配置在任何數(shù)據(jù)庫(kù)上,,并且能被部署在任何的應(yīng)用服務(wù)器上,。 1.1 總覽 工作流和業(yè)務(wù)流程處理功能的核心部分被打包成一個(gè)簡(jiǎn)單的java類(lèi)庫(kù)。這個(gè)類(lèi)庫(kù)包括了這樣一個(gè)服務(wù):流程信息的存儲(chǔ),更新,,和從數(shù)據(jù)庫(kù)中重新取回,。 圖1.1:JBoss jBPM組成模塊的概略圖 1.2 JBoss jBPM starter kit
starter kit是一個(gè)包含jbpm所有模塊的下載包。這個(gè)下載包中包括以下模塊:
· jbpm-server, 一個(gè)預(yù)選配置好的jboss應(yīng)用服務(wù)器,。
· jbpm-designer, 圖形化定制流程的eclipse插件,。
· jbpm-db, jBPM的數(shù)據(jù)庫(kù)兼容包 (見(jiàn)后邊論述)。
· jbpm, jbpm的核心模塊,,其中包括libs文件夾和這個(gè)用戶說(shuō)明,。
· jbpm-bpel, JBoss jBPM對(duì)BPEL擴(kuò)展的一些參考資料
預(yù)先配置好的JBoss應(yīng)用服務(wù)器具有如下組成部分: jBPM核心模塊,被打包成一個(gè)用于提供服務(wù)的存檔文件
帶有jbpm表的集成數(shù)據(jù)庫(kù):默認(rèn)的hypersonic數(shù)據(jù)庫(kù)擁有jbpm表,,并且這個(gè)表已經(jīng)擁有一個(gè)流程了,。
Jbpm的web控制臺(tái),它既可以被Jbpm管理員用也可以被流程的參與者使用,。 執(zhí)行定時(shí)器的Jbpm的調(diào)度程序,,這個(gè)調(diào)度程序在starter kit里邊被配置成一個(gè)servlet。這個(gè)servlet會(huì)產(chǎn)生一個(gè)新的線程來(lái)監(jiān)視和執(zhí)行定時(shí)器,。
一個(gè)具體流程的例子,,它已經(jīng)被部署在jbpm數(shù)據(jù)庫(kù)中了。
1.3 JBoss jBPM 流程圖形定制器
JBoss jBPM還擁有一套圖形化的設(shè)計(jì)工具,。這個(gè)設(shè)計(jì)器是一個(gè)圖形化的業(yè)務(wù)流程定制工具,。
JBoss jBPM流程圖形定制器是eclipse的一個(gè)插件。單獨(dú)安裝這個(gè)定制器非常簡(jiǎn)單,。
這個(gè)圖形設(shè)計(jì)器最重要的特性是:業(yè)務(wù)分析人員也能像技術(shù)開(kāi)發(fā)人員一樣用它來(lái)完成任務(wù),。這使得業(yè)務(wù)流程建模能平滑的轉(zhuǎn)換到具體技術(shù)實(shí)現(xiàn)。
這個(gè)插件可以利用eclipse的一般升級(jí)機(jī)制通過(guò)一個(gè)升級(jí)站點(diǎn)得到安裝(zip文件格式),。也可以通過(guò)解壓一個(gè)特定的包到eclipse的安裝目錄來(lái)安裝此插件,。
1.4 JBoss jBPM的核心模塊
JBoss jBPM的核心模塊是一個(gè)用來(lái)管理流程定義和流程實(shí)例的執(zhí)行環(huán)境的普通java程序。
JBoss jBPM是一個(gè)java類(lèi)庫(kù),。所以它可以被用在任何java環(huán)境中,,比如:web應(yīng)用程序,swing應(yīng)用程序,,EJB,,web service……。JBPM類(lèi)庫(kù)還可以被打包并被當(dāng)成無(wú)狀態(tài)會(huì)話EJB(stateless session EJB)使用,。這樣可使它被部署在集群上并且適應(yīng)高性能應(yīng)用,。這些無(wú)狀態(tài)會(huì)話EJB必須符合J2EE1.3規(guī)范這樣才能使它可以被部署在任何應(yīng)用服務(wù)器上。
JBoss jBPM的核心模塊被打包成一個(gè)簡(jiǎn)單的java庫(kù)文件,。依你功能的需要,,jbpm-3.0.jar這個(gè)庫(kù)文件對(duì)一些第三方的類(lèi)庫(kù)比如hibernate, dom4j有所依賴,。這些依賴在第五章(部署)中作了詳細(xì)的說(shuō)明。
至于持久化,,JBPM在內(nèi)部用了hibernate,。除了傳統(tǒng)的O/R映射功能,hibernate還解決了不同數(shù)據(jù)SQL dialect差異的問(wèn)題,,這使得JBPM能適應(yīng)現(xiàn)在所有的數(shù)據(jù)庫(kù),。
JBoss jBPM API可以被你工程中任何的java代碼調(diào)用,比如,,你的web應(yīng)用程序,,EJB,web service 模塊,,消息驅(qū)動(dòng)bean或其它任何java模塊,。
1.5 JBoss jBPM web應(yīng)用程序的控制臺(tái)
jBPM web應(yīng)用程序的控制臺(tái)提供兩種服務(wù)。首先,,它被用來(lái)當(dāng)作一個(gè)用來(lái)和流程執(zhí)行過(guò)程中產(chǎn)生的任務(wù)進(jìn)行交互的主要用戶接口,,其次,它還是一個(gè)用來(lái)檢查和操作運(yùn)行實(shí)例的管理和監(jiān)控平臺(tái),。
1.6 JBoss jBPM人員組織模塊
JBoss jBPM可以和任何包括人員和其他組織信息的公司結(jié)構(gòu)集成在一起,。但是對(duì)那些組織結(jié)構(gòu)信息模塊很難獲取的項(xiàng)目,JBoss jBPM提供了這個(gè)模塊,。這個(gè)模塊使用的模型要比傳統(tǒng)的servlet, ejb,portlet模型豐富的多,。
更多信息,請(qǐng)參照第九章第九節(jié) 人員組織模塊
1.7 JBoss jBPM調(diào)度程序
JBoss jBPM調(diào)度程序是一個(gè)用來(lái)監(jiān)測(cè)和執(zhí)行在流程執(zhí)行過(guò)程中設(shè)置的定時(shí)器的模塊,。
定時(shí)器模塊被打包在jbpm的核心包中,,但是它必須被部署在以下環(huán)境中:或者你必須訂制一個(gè)調(diào)度servlet,它來(lái)產(chǎn)生一個(gè)監(jiān)測(cè)線程,,或者你必須啟動(dòng)一個(gè)單獨(dú)的JVM來(lái)執(zhí)行調(diào)度程序。
1.8 JBoss jBPM 數(shù)據(jù)庫(kù)兼容包
JBoss jBPM 數(shù)據(jù)庫(kù)兼容包是一個(gè)下載包,,它包括所有的資料,,drivers和scripts,用這些你可以使jbpm運(yùn)行在你選擇的數(shù)據(jù)庫(kù)上。
1.9 JBoss jBPM BPE的擴(kuò)展
JBoss jBPM BPE的擴(kuò)展是一個(gè)為了支持BPEL獨(dú)立的擴(kuò)展包,。BPEL的本質(zhì)就是一組用來(lái)參照別的web service寫(xiě)web service的xml腳本語(yǔ)言,。 |
|