簡介
JBPM工作流。JBPM,全稱是JavaBusinessProcessManagement(業務流程管理),它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。jBPM是公開源代碼項目,使用它要遵循ASL(ApacheLicenseVersion2.0)和EULA(JBossEndUserLicenseAgreement)協議。
jBPM在2004年10月18日,發布了2.0版本,并在同一天加入了JBossJBPM案例流程圖
特色
就是它的業務邏輯定義沒有采用目前的一些規範,如WfMC´sXPDL,BPML,ebXML,BPEL4WS等,而是采用了它自己定義的
JBossjBPMProcessdefinitionlanguage(jPdl)。jPdl認為一個業務流程可以被看作是一個UML狀态圖。jPdl就是詳細定義了這個狀态圖的每個部分,如起始、結束狀态,以及狀态之間的轉換,通過圖型化的流程定義,直觀地描述業務流程。
jBPM的另一個特色是它使用Hibernate來管理它的數據庫。Hibernate是目前Java領域非常流行的一種數據存儲層解決方案,隻要是Hibernate支持的數據庫,jBPM也就支持。通過Hibernate,jBPM将數據的管理職能分離出去,自己專注于業務邏輯的處理。
工作流程
1)jBPM的運行需要數據庫的支持,因此系統設計時要選定所用數據庫。隻要是Hibernate支持的數據庫,jBPM就支持。數據庫的初始化可以由jBPM自動完成,也可以通過antgenerate.ddl任務生成SQL語句,在jBPM外部自己創建所需的表。
2)使用jPdl定義工作流,生成processdinination.xml文件。可以采用GUI工具jPdl,但目前隻支持jBPM1.0,而且bug很多。XML的DTD定義文件在jBPM下載包中。
3)Antcreate.pde生成pde包的工作目錄。将processdinination.xml文件和其它需要的文件放在指定的目錄下,使用antbuild.precess.archives生成pde包。pde包的格式采用jar。
4)更改pde工作目錄/src/config/jbpm.properties的相關屬性,主要是設定相關的數據庫連接信息。注意要将數據庫的JDBC驅動放在pde工作目錄的lib目錄下。
5)Antdeploy.process.archives将剛才生成的pde部署到數據庫。實際上就是向數據庫插入一些相關數據。
6)利用jBPMAPI函數開發相應的工作流程。
jBPM能否适應“中國國情”的流程應用?
——以下内容摘自《jBPM4工作流應用開發指南》第20章“中國特色工作流的jBPM實現”:目前,中國内地對于工作流管理系統的應用主要還是集中于“人工流程”,也就是以人工任務密集型的工作流應用為主。
主要原因在于國内的信息化系統建設還遠不及歐美發達國家成熟,系統多是以新建和推倒重來為主,很少有經過長期穩定運行的“沉澱”系統,因此工作流管理系統中用于應用集成的相關自動活動功能就很少能得到施展,工作流管理系統大部分的應用還是集中在需要人工幹預的“任務”上。
這也可以解釋為何在歐美國家大行其道的EAI(企業應用集成)産品在國内市場并不普及的原因。……同時從jBPM項目本身來說,其作為一款基于西方業務流程管理思想設計的工作流框架,更多的是關注“如何輔助開發者更容易的讓流程運行完成”,而不是關注“記錄流程運行的曆史和軌迹”。
因此,jBPM項目從設計上就沒有考慮“回退”、“取回”、“會簽”、“委派”等業務場景。這也是因為東西方文化的差異之所在:例如回退,西方人認為“往回流轉的情況肯定也是一種業務流程規則的定義。
那麼肯定可以通過分支或條件流轉的設計來解決”,而國内則常常把回退作為一個“人性化管理和處理的潛在規則”來看待,并且認為這是一個合理的需求。本章的目的就是:提出這些具有中國特色的(當然這并不是中國所特有的)業務流程問題,在jBPM4的架構基礎上分析解決這些問題的思路,并給出一種解決方案供參考。
發展狀況
工作流系統(workflowmanagementsystems)還處于技術發展曲線(technologyhypecurve)上的初級階段。在這個領域我們将面臨一個激動人心的階段。為了描述這一點,可以和關系數據庫系統(RDBMS)做一個對比。當在軟件開發團隊中談論RDBMS時,大部分人會有一個清晰的概念,在你和他們交流的時候,人們會通過輕微的點頭表示認可或理解你所說的。可當使用工作流術語讨論工作流時,他們會搖頭表示不同意,因為每個人對工作流術語都有不同的理解。
導緻形成這種狀況的原因之一,是在工作流中使用了過多的概念。在這個領域中的大量規範和工具沒有一個是相似的。當然,它們相互之間有重疊并且會相互參考引證。
在介紹工作流時有一個話題必須包括,那就是工作流和業務流程管理(BPM)的關系。術語“工作流”通常描述人與計算機系統的一系列相關交互。在開發人員中,工作流經常被提及。
有時,工作流的意思是指一些不同的UI界面。業務流程管理的範圍比較廣,相比之下工作流多半局限于技術領域。業務流程管理還從管理人員的角度涉及了非技術問題,比如分析、組織的效率。在本文中,我首先解釋什麼是工作流管理系統,然後介紹業務流程管理的優點。
接下來描述一下為什麼工作流市場乍看起來如此混亂。本文給出的主要結論是:選擇工作流系統是想用工作流系統的公司,将要面對的最困難的事情。為此,本文的核心部分描述了一個流程定義(processdefinition)的四個層次,為你選擇工作流提供一個基礎。
舉例
表達了一個抽象的流程定義,之所以說是抽象,因為它沒有表示确切的執行者,比如某借款人被具體化為張三,部門主管成為張三的部門經理李四,而财務明确為王五的時候,這個流程定義就被具體化,成為一個流程實例。此外過程中的相關人員我們稱之為參與者Actor,過程需要參與者介入的環節稱之為Task,每—個任務在流程實例中的具體化稱之為任務實例,從一個任務結點到另一個任務結點轉為叫做流轉(Transition),在流程中,由程序預先設定的行為如發郵件,我們稱之為活動(Action)。



















