[譯:liuu Blog: liuu.iteye.com E-mail: liuu9(a)163.com 歡迎交流指正,保留除複制外的其他權利,本譯文尚未征得原文作者同意]
1 介紹
JBoss jBPM是一個靈活的、可擴充的流程語言架構,而jPDL是基于這個公共架構之上的流程語言,這是一種直覺的流程語言,它使用任務、異步通訊等待狀态、定時器和自動動作等,圖形化地表述業務流程。為了将這些操作結合起來,jBPM使用了最強大的和可擴充的流控制機制。
jPDL依賴性極小,可以像使用普通Java庫一樣使用它。不過,通過部署到J2EE應用伺服器叢集上,它同樣可以在那些需要極限處理能力的苛刻環境下使用。
jPDL可以配置使用任何類型的資料庫,并部署到任意的應用伺服器上。
1.1 概述
核心的工作流和業務流程管理功能被打包在一個簡單的Java庫中,這個庫為向jBPM資料庫中儲存、更新和檢索流程資訊提供服務。
圖表 1.1jPDL元件概覽
1.2 jPDL套件
初學者工具包包含了全部的jBPM元件,并打包在一起友善下載下傳。包括:
l config:為标準java環境準備的配置檔案
l db:建立資料庫結構的SQL腳本
l designer:圖形化編寫jpdl流程的eclipse插件
l doc:使用者指南和Javadocs
l examples:示例
l lib: jbpm依賴的庫
l server:預安裝好的JBoss伺服器,包含jbpm的web應用控制台
l src:jbpm和身份(identity)元件的java源代碼
預配置的JBoss應用伺服器已經安裝如下元件:
l Web控制台(web console):WAR包,Jbpm管理者和流程參與者,都可以使用這個控制台。
l 作業執行器(job executor),它執行定時器和異步消息。在Web控制台應用中,配置了一個Servlet上下文監聽器,用于啟動作業執行器,它維護一個線程池,監控并執行定時器和異步消息。
l Jbpm資料庫表:程序内Hypersonic資料庫,包含了jBPM的表,
l 示例流程,已部署到jbpm資料庫。
l 身份元件,這是Web控制台的一部分。相關的表(以JBPM_ID_為字首的表)已經在資料庫建好。
1.3 jPDL圖形化流程設計器
jPDL還包含一套圖形化設計工具。這個設計器是一個用于編寫業務流程的圖形化工具,它是一個Eclipse插件。
圖形化設計工具是最重要特征,是它包含對業務分析人員和技術開發人員兩方面的工作支援,這使得我們可以平滑地從業務流程模組化轉化到實際的實作。
這個插件可以通過标準的Eclipse軟體更新機制從一個本地更新站點(一個普通zip檔案)安裝。在JBossTools、JBoss DeveloperStudio和SOA Platform中,也打包了jPDL圖形化流程設計器插件。
1.4 jBPM Web控制台
jBPMWeb控制台服務于兩個目的。首先,它作為一個主要的使用者接口,提供與流程執行過程中産生的運作時任務進行互動的能力;其次,它是一個管理和監控平台,允許檢視和操作運作時執行個體;第三個功能是業務活動監控(Business Activity Monitoring),對流程執行的統計,這些資訊,對于管理者找出瓶頸,或做出優化很有用。
1.5 jBPM核心元件
jBPM的核心元件是一個純Java(J2SE)軟體,用于管理流程定義和流程執行個體執行的運作時環境。
jBPM是一個Java庫。是以,它可以在任何java環境中使用,如Web應用、Swing應用、EJB、Web服務等等。jBPM庫也可以暴露為無狀态會話Bean(SLSB),這樣允許叢集式的部署和對極端高性能的可伸縮性。無狀态會話Bean以J2EE1.4規範編寫,是以可以部署到任何标準的應用伺服器上。
依據你使用的功能,jBPM核心元件包(lib/jbpm-jpdl.jar)可能依賴某些第三方的庫,如hibernate、dom4j等。我們做了極大的努力,讓你隻在必需的時候,才需要依賴這些庫。進步的依賴描述,見“第4章,部署”。
jBPM内部使用Hibernate進行持久。除了傳統的對象/關系映射,Hibernate還消除了不同資料庫和SQL方言之間的差異,使得jBPM可以跨所有流行資料庫移植。
jBPM API可以從你項目裡的任意自定義Java程式中通路,比如Web應用、EJB、Web服務元件、消息驅動Bean或其它Java元件。
1.6 jBPM身份辨別(identity)元件
JBoss jbpm能夠與任何包含使用者和其它機構資訊的公司目錄內建。但為了那些沒有簡易可用的機構資訊元件的項目,jBPM包含了這個元件。這個身份辨別元件中使用的模型,較之傳統的servlet-、ejb-和portlet模型更豐富。
更多資訊見“身份辨別元件”一節。
1.7 jBPM作業執行器
作業執行器是一個在标準Java環境下,監控和執行作業的元件。作業用來執行定時器和異步消息。在企業級環境中,JMS和EJB定時器服務也可以用于這個目的。但相對它們,作業執行器可以在沒有JMS或EJB的環境下使用。
作業執行器元件打包在核心jbpm-jpdl庫中,但它需要部署于下面環境之一:要麼在Web應用的部署描述符中,注冊作業執行器啟動程式(JobExecutorLauncher )Servlet上下監聽器,用于在Servlet上下文的建立和銷毀時,啟動和停止作業執行器;要麼啟動一個單獨的JVM運作作業執行器主程式。