http://hi.baidu.com/shirdrn/blog/item/a203de6039d2a7d98db10dd7.html
jBPM,全稱是Java Business Process Management,是一種基于J2EE的輕量級工作流管理系統。jBPM是公開源代碼項目,它使用要遵循 Apache License。jBPM在2004年10月18日,發布了2.0版本,并在同一天加入了JBoss,成為了JBoss企業中間件平臺的一個組成部分,它的名稱也改成JBoss jBPM。隨著jBPM加入JBoss組織,jBPM也將進入一個全新的發展時代,它的前景是十分光明的。
jBPM最大的特色就是它的商務邏輯定義沒有采用目前的一些規范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定義的JBoss jBPM Process Definition Language (jPDL)。jPDL認為一個商務流程可以被看作是一個UML狀態圖。jPDL就是詳細定義了這個狀態圖的每個部分,如起始、結束狀態,狀態之間的轉換等。
jBPM的另一個特色是它使用Hibernate來管理它的數據庫。Hibernate是目前Java領域最好的一種數據持久層解決方案。通過Hibernate,jBPM將數據的管理職能分離出去,自己專注于商務邏輯的處理。
關于jPDL
jPDL(JBoss jBPM Process Definition Language)是構建于jBPM框架上的流程語言之一。在jPDL中提供了任務(tasks)、待處理狀態 (wait states)、計時器(timers)、自動處理(automated actions)…等術語,并通過圖型化的流程定義,很直觀地描述業務流程。
jPDL可以部署于Java語言的任何應用環境下,JavaSE Application(Swing/SWT)、JavaEE Application(Application Server) 。
jPDL分發包的組成
目前jPDL的最新版本是3.2.3,通過http://labs.jboss.com/jbossjbpm/jpdl_downloads/可以獲得官方下載包。下載包分為兩種,一種是標準包(jbpm-jpdl-3.2.3.zip);一種是套件包(jbpm-jpdl-suite-3.2.3.zip)。兩者最大的區別是套裝包自帶一個已經配置好的jboss服務,下載解壓縮后,可直接運行。
(1)jPDL的核心程序包(jbpm-jpdl.jar)
它是一個典型的jar文件,它涵蓋對流程定義和運行時流程實例上下文環境的操作API。在最簡化的業務流程樣例中,jPDL將流程定義存儲與XML格式的定義文件中,在運行時載入內存,在內存里記錄完整的業務實例和執行過程的環境變量,并完成全部操作。顯然,在實際應用中,流程信息必須被持久化的存儲于數據庫中。jPDL使用了Hibernate作為其對象持久化的API。
(2)Graphical Process Designer插件(jbpm-jpdl-designer-3.1.2.zip)
它是一個基于Eclipse的圖型編輯插件。使用它可以對業務流程進行可視化的定制,而無須手動編輯XML文件。該插件還提供了流程定義上傳功能,可以將新定義的流程發布到在線運行的jPDL系統上。
(3)jPDL身份包(jbpm-identity.jar)
它是jPDL的一個輕量級擴展包,簡單實現了組Group、用戶User、許可權Permission等用戶身份認證和鑒權機制。如果您的應用環境只需要簡單的用戶認證鑒權管理,那么它十分適合您。
(4)jPDL Web控制臺(jbpm-console.war)
它是一個標準Web應用(使用了JSF技術),提供了對jPDL平臺執行情況的監控程序(對jPDL數據庫的監控)。管理員可以通過該程序方便的維護jPDL的數據庫,管理流程定義和流程實例的執行情況。同時,它還提供了一個簡單的Getting started DEMO,方便初學者了解jPDL。
jbpm-jpdl-suite-3.2.3.zip壓縮包組成
在解壓jbpm-jpdl-suite-3.2.3.zip后,會看到很多目錄,如下所示:
(1)config目錄
該目錄存放了jPDL的默認配置文件 ,包括hibernate.cfg.xml 、jbpm.cfg.xml(jPDL的主配置文件,默認是空的)、jbpm.mail.templates.xml(郵件模板配置文件)、log4j.properties(日志配置文件)
(2)db目錄
該目錄存放了jPDL針對不同數據庫的表初始化sql文件。這里要說的是,jbpm.jpdl.mysql.sql在MySql下批量運行時,會出現錯誤提示,原因是語句后缺少”;”號,需要修訂后才能使用。
(3)designer目錄
該目錄存放了GPD(Graphical Process Designer)插件。
(4)examples目錄
該目錄存放了jPDL的簡單范例。
(5)doc目錄
該目錄存放jPDL 的相關說明文檔,包括用戶指南、Java API文檔等。
(6)server目錄
該目錄存放了配置好的jBoss和控制臺程序,Windows下雙擊start.bat可立即執行。數據庫使用HSQL,存放于/server/server/jbpm/data下。
(7)src目錄
該目錄下存放的是源代碼,可以通過查看代碼來了解其具體實現,有助于增強理解。
(8)deploy目錄
該目錄下面包含3個war包:jbpm-console.war、jbpm-enterprise.ear、jbpm-mail.war。
(9)lib目錄
該目錄中存放了支持的jar包。