jBPM5 RFC譯

jBPM5 RFC(請求評論文檔)

原文:http://community.jboss.org/wiki/jBPM5RequestforComments

譯:liuu 2010-05-06

 

本文論述關於jBPM5的整體架構和關鍵特性,我們熱烈歡迎並感謝關於本文的任何反饋(包括那些你認爲應該包含,但在文檔中沒有提到的內容)。讓我們瞭解你最關心的,找出最重要的,以便我們安排優先級。這將作爲創建jBPM5路線圖的基礎,是時候給出你們的反饋了。

 

jBPM5將基於jBPMDrools Flow經驗的結合。這次組合,將結合兩個方案的優點。

 

聲明:本文並未描述jBPM5路線圖,根據反饋情況,可能會增減一些特性。

 

架構

下圖描述了(計劃的)jBPM5架構,每個組件將在後面詳細解釋,並說明關鍵特性。

 

 

核心流程引擎

核心流程引擎(工作流)能夠執行你的流程,引擎將強烈關注BPMN2(以XML格式保存流程定義)。BPMN2不僅定義一套業務流程的圖形化表述標準(如BPMN1.1),現在還包含了所定義元素的執行語義,和如何保存(和共享)流程定義的XML格式。這套標準化的格式將作爲主要的流程定義語言,我們將嘗試提供一種(半自動化的、用戶輔助性質的)遷移方式,將jPDL3.x)轉換爲BPMN2

 

(核心引擎)提供API來發起和推進流程實例、管理你的流程實例等,並可以配置和集成到不同的上下文環境。

 

關鍵特性:

1、  乾淨的API

2、  原生的BPMN2執行

3、  可嵌入(從類似一個簡單的Java POJO組件在應用中嵌入運行,到作爲一個獨立的服務運行)

4、  基於流程虛擬機(PVM),支持在同一個流程引擎上定義多種流程語言

5、  其他非功能性需求,如持久(JPA)、事務(JTA,其他)、性能等

6、  集羣

7、  事件監聽,審計,歷史日誌

8、  流程實例遷移,讓你可以升級正在運行的流程實例到新的流程定義版本

 

在支持完整的BPMN2規範之前,作爲中間的里程碑,我們將首先嚐試支持BPMN2規範中的“公共可執行”子類(它們是可執行流程規範中的所有已定義元素的子集,只支持最常用的節點類型)

 

人工任務

在有任務需要人工參與者來交互執行時,人工任務非常重要,它包括如下及個部分:

1、  人工任務服務:管理任務生命週期的後端服務。流程引擎自身並不綁定某個特定的實現,而是支持插接這種實現。默認將提供一個基於WS-HTWS-HumanTask)規範的獨立實現,該規範描述了像生命週期(分配、獲取、完成、釋放(release)等)之類的內容,也包括羣組分配、擴大(escalation)、分配規則等

2、  人工任務控制檯:一個基於Web的應用,可用來查詢任務列表,填寫任務表單等。這個控制檯的目標,是最終用戶(那些將在流程中執行任務的參與者)。延續現有BPM控制檯中已有的人工任務管理部分。

3、  表單編輯器:支持創建自定義任務表單(在需要完成任務時顯示)。該編輯器的目標是開發人員,將提供基礎的(類HTML的)任務表單輔助創建功能。可以集成不同的任務表單方案,默認將提供基於xforms(或類似方案)的表單編輯器。

 

流程倉庫

(邏輯)集中的流程倉庫可以保存和管理流程(和相關的交付件),它同樣也包括一個基於Web的控制檯,提供個業務用戶,用於管理流程。他們可以檢視流程,甚至可能動態的更新流程,創建和重新部署更新的知識庫。支持對交付件的分類、檢索、協作和部署前的場景測試等特性。另外也包括通過Eclipse或文件系統與該倉庫集成。延續Drools項目中當前Guvnor倉庫部分的功能。

 

BPM控制檯

這是一個用於管理流程實例的基於Web的控制檯。它包含如下特性:管理流程實例(啓動、停止)、檢查它們的狀態和變量等。這個控制檯的目標用戶是開發者(希望快速的測試他們的流程)和管理員(管理在運行的流程)。延續現有BPM控制檯的流程管理功能。

 

基於Eclipse的流程工具

這是一個Eclipse插件,幫助用戶定義他們的BPMN2流程。它包括一個圖形化編輯器,定義你的業務流程爲流程圖(使用拖拽方式和屬性面板),目標用戶是開發者。當然,它也提供驗證、測試、調試等附加功能。

 

基於Web的流程工具

一個基於WebBPMN2流程定義工具,目標用戶是業務人員。該工具延續Oryx/Signavio合作團隊提供的基於WebBPMN2流程編輯器。

 

仿真

提供仿真執行流程的能力。比如,你可以(手動或自動)模擬流程的某條路徑(或其他替代路徑),也可以基於歷史數據或統計輸入,測量流程的時間和資源使用情況。這部分是jBPM3項目的實驗性仿真模塊的延續。

 

BAM/BI

這部分可劃分爲下面幾個部分:

1、  報表編輯器:使用Eclipse BIRT插件創建報表,展示關鍵性能指標。使用預定義的數據集,可以很容易定義你自己的報表,這些數據集包含所有的流程歷史信息,也可以包含你自己需要加入的其他數據集。Eclipse BIRT框架允許你定義數據集,創建報表、圖表等。這部分是BPM控制檯報表部分的延續。

2、  報表控制檯:基於Web的控制檯,可以動態生成和展示BIRT報表。目標用戶是業務人員,這部分也是BPM控制檯報表部分的延續。

3、  BAM引擎:業務活動監控(BAM)將實時監控你的流程的執行,並能夠即時響應事件。BAM引擎允許你組合各種來源的事件,搜索事件模式,產生高層事件,響應關鍵場景等。這是服務活動監控項目(SAM)的一部分,基於Drools Fusion作爲負責事件處理(CEP)引擎。

4、  BAM控制檯:基於Web,用來獲取系統的實時狀態概貌。包括儀表盤概覽、圖形等,目標用戶爲業務人員,也是SAM項目的一部分。

 

可用性

領域特定流程:通過領域特定階段,可以容易地擴展流程工具箱。它允許用戶使用自己更熟悉的領域特定概念,來建立他們的流程模型。

 

安裝腳本:簡化引擎安裝,包括Eclipse插件和Web工具,可以用來快速的生成一個安裝好的示例。

 

持續集成和質量保證:基於Hudson,就像jBPMDrools現在做的。

 

文檔:(暫無內容)

 

OSGI:(暫無內容)

 

集成

與各種其他項目集成:

1、  Drools:與其強制用戶在流程中定義他們的業務知識(如使用一種面向流程的方式),我們支持用戶組合使用業務流程、業務規則和事件處理來建立他們的知識模型。通過集成流程、規則和事件,用戶可以選擇最適合他們自己需求的方式,並組合他們。這也意味着用戶只需要學習一種統一的方案,因爲工具提供了無縫的集成,無論你使用的是流程、規則還是事件處理。最後,你會看到一種轉變,從面向流程的方式,到更面向知識的方式(包括API、工具等)。

2、  認證/授權:要對系統提供不同級別的訪問時,必需要有一套含可配置訪問許可的安全模塊。這需要集成現有的認證授權服務(如PicketLink

3、  JBoss ESB:流程引擎可以作爲服務部署到Jboss企業服務總線(ESB)。這樣,流程引擎可以作爲不同服務之間的編排引擎,這些服務可以都通過服務總線訪問到。

4、  JOPR:對JMX標準的支持,使得用戶可以使用任何JMX控制檯,監控和檢查流程定義和運行時。

 

關於本提議的任何反饋,我們都非常歡迎,可以使用[email protected]郵件列表,或者將你的意見建議,以私人方式,反饋給你的JBoss聯繫人。如果你想訂閱jbpm-dev郵件列表或瀏覽歸檔郵件,請使用:http://lists.jboss.org/mailman/listinfo/jbpm-dev

 

 

[email protected]

liuu.iteye.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章