JBPM

JBPM

JBPM,全稱是Java Business Process Management(業務流程管理),它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。jBPM是公開原始碼項目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)協定。 jBPM在2004年10月18日,發布了2.0版本,並在同一天加入了JBoss,成為了JBoss企業中間件平台的一個組成部分,它的名稱也改成JBoss jBPM。

特色

JBPM案例流程圖 JBPM案例流程圖

就是它的業務邏輯定義沒有採用目前的一些規範,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是採用了它自己定義的JBoss jBPM Process definition language (jPdl)。jPdl認為一個業務流程可以被看作是一個UML狀態圖。jPdl就是詳細定義了這個狀態圖的每個部分,如起始、結束狀態,以及狀態之間的轉換,通過圖型化的流程定義,直觀地描述業務流程。

jBPM的另一個特色是它使用Hibernate來管理它的資料庫。Hibernate是目前Java領域非常流行的一種數據存儲層解決方案,只要是 Hibernate 支持的資料庫, jBPM 也就支持。通過Hibernate,jBPM將數據的管理職能分離出去,自己專注於業務邏輯的處理。

工作流程

1) jBPM的運行需要資料庫的支持,因此系統設計時要選定所用資料庫。只要是Hibernate支持的資料庫,jBPM就支持。資料庫的初始化可以由jBPM自動完成,也可以通過ant generate.ddl任務生成SQL語句,在jBPM外部自己創建所需的表。

2) 使用jPdl定義工作流,生成processdinination.xml檔案。可以採用GUI工具jPdl,但目前只支持jBPM1.0,而且bug很多。XML的DTD定義檔案在jBPM下載包中。

3) Ant create.pde生成pde包的工作目錄。將processdinination.xml檔案和其它需要的檔案放在指定的目錄下,使用ant build.precess.archives生成pde包。pde包的格式採用jar。

4) 更改pde工作目錄/src/config/jbpm.properties的相關屬性,主要是設定相關的資料庫連線信息。注意要將資料庫的JDBC驅動放在pde工作目錄的lib目錄下。

5) Ant deploy.process.archives將剛才生成的pde部署到資料庫。實際上就是向資料庫插入一些相關數據。

6) 利用jBPM API函式開發相應的工作流程。

jBPM能否適應“中國國情”的流程套用?

——以下內容摘自《jBPM4工作流套用開發指南》第20章 “中國特色工作流的jBPM實現”: 目前,中國內地對於工作流管理系統的套用主要還是集中於“人工流程”,也就是以人工任務密集型的工作流套用為主。主要原因在於國內的信息化系統建設還遠不及歐美已開發國家成熟,系統多是以新建和推倒重來為主,很少有經過長期穩定運行的“沉澱”系統,因此工作流管理系統中用於套用集成的相關自動活動功能就很少能得到施展,工作流管理系統大部分的套用還是集中在需要人工干預的“任務”上。這也可以解釋為何在歐美國家大行其道的EAI(企業套用集成)產品在國內市場並不普及的原因。 …… 同時從jBPM項目本身來說,其作為一款基於西方業務流程管理思想設計的工作流框架,更多的是關注“如何輔助開發者更容易的讓流程運行完成”,而不是關注“記錄流程運行的歷史和軌跡”。 因此,jBPM項目從設計上就沒有考慮“回退”、“取回”、“會簽”、“委派”等業務場景。這也是因為東西方文化的差異之所在:例如回退,西方人認為“往回流轉的情況肯定也是一種業務流程規則的定義,那么肯定可以通過分支或條件流轉的設計來解決”,而國內則常常把回退作為一個“人性化管理和處理的潛在規則”來看待,並且認為這是一個合理的需求。 本節的目的就是:提出這些具有中國特色的(當然這並不是中國所特有的)業務流程問題,在jBPM4的架構基礎上分析解決這些問題的思路,並給出一種解決方案供參考。

發展狀況

工作流管理系統 (workflow management systems) 還處於技術發展曲線( technology hype curve ) 上的初級階段。 在這個領域我們將面臨一個激動人心的階段。 為了描述這一點, 可以和關係資料庫系統(RDBMS) 做一個對比。 當在軟體開發團隊中談論RDBMS 時,大部分人會有一個清晰的概念, 在你和他們交流的時候, 人們會通過輕微的點頭表示認可或理解你所說的。 可當使用工作流術語討論工作流時, 他們會搖頭表示不同意, 因為每個人對工作流術語都有不同的理解。 導致形成這種狀況的原因之一, 是在工作流中使用了過多的概念。 在這個領域中的大量規範和工具沒有一個是相似的。 當然, 它們相互之間有重疊並且會相互參考引證。 在介紹工作流時有一個話題必須包括, 那就是工作流和業務流程管理(BPM) 的關係。 術語“工作流” 通常描述人與計算機系統的一系列相關互動。 在開發人員中, 工作流經常被提及。 有時, 工作流的意思是指一些不同的UI 界面。業務流程管理的範圍比較廣, 相比之下工作流多半局限於技術領域。 業務流程管理還從管理人員的角度涉及了非技術問題, 比如分析、 組織的效率。 在本文中, 我首先解釋什麼是工作流管理系統, 然後介紹業務流程管理的優點。 接下來描述一下為什麼工作流市場乍看起來如此混亂。 本文給出的主要結論是: 選擇工作流管理系統是想用工作流系統的公司, 將要面對的最困難的事情。 為此, 本文的核心部分描述了一個流程定義(process definition) 的四個層次, 為你選擇工作流提供一個基礎。

工作流概念

表達了一個抽象的流程定義,之所以說是抽象,因為它沒有表示確切的執行者,比如某借款人被具體化為張三,部門主管成為張三的部門經理李四,而財務明確為王五的時候,這個流程定義就被具體化,成為一個流程實例。此外過程中的相關人員我們稱之為參與者Actor,過程需要參與者介入的環節稱之為Task,每—個任務在流程實例中的具體化稱之為任務實例,從一個任務結點到另一個任務結點轉為叫做流轉(Transition),在流程中,由程式預先設定的行為如發郵件,我們稱之為活動(Action)。

相關詞條

相關搜尋

熱門詞條

聯絡我們