歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Activiti - 新一代的開源 BPM 引擎

董 娜, 高級軟件工程師, IBM
董娜, 高級軟件工程師,就職於 IBM 中國軟件開發中心(CSDL),從事 IBM 企業內容管理 (Enterprise Content Manager) 軟件的系統測試以及測試工具的開發工作,她對 ECM 產品的測試,數據庫系統的調優以及 Java 應用程序開發有著豐富的經驗。
狄 浩, 高級軟件工程師, IBM
狄浩,高級軟件工程師,主要從事 IBM 企業內容管理產品的相關工作,興趣廣泛。
張 曉籬, 軟件工程師, IBM
張曉籬,中國科學院畢業,2011 年加入 IBM,從事 IBM SPSS Modeler 研發工作。

簡介: Activiti 作為一個遵從 Apache 許可的工作流和業務流程管理開源平台,其核心是基於 Java 的超快速、超穩定的 BPMN 2.0 流程引擎,強調流程服務的可嵌入性和可擴展性,同時更加強調面向業務人員。本文主要介紹 Activiti 的背景和基礎知識,包括 Activiti 結構、基本服務和功能簡介,開發環境的搭建以及主要功能的代碼示例。

背景介紹

  1. Activiti 其核心是 BPMN 2.0 的流程引擎。BPMN 是目前被各 BPM 廠商廣泛接受的 BPM 標准,全稱為 Business Process Model and Notation,由 OMG 組織進行維護,2011 年 1 月份發布了其 2.0 的正式版。BPMN 2.0 對比於第一個版本,其最重要的變化在於其定義了流程的元模型和執行語義,即它自己解決了存儲、交換和執行的問題。這代表著 BPMN 2.0 流程定義模型不僅僅可以在任何兼容 BPMN 2.0 的引擎中執行,而且也可以在圖形編輯器間交換。作為一個標准,BPMN 2.0 統一了工作流社區。
  2. Activiti 是由 jBPM 的創建者 Tom Baeyens 離開 JBoss 之後建立的項目,構建在開發 jBPM 版本 1 到 4 時積累的多年經驗的基礎之上,旨在創建下一代的 BPM 解決方案。同時 Activiti 選擇了 Apache 許可,一方面是希望 Activiti 能有更長久的生命力,因為它不受任何個人或是公司的控制而是屬於整個社區,另一方面更是希望這個寬松的許可能夠讓 Activiti BPM 引擎和 BPMN2.0 被更廣泛的采納、使用和商業化。
  3. 對於 Java 開發者來說,Activiti 的首席架構師 Tom Baeyens 曾提到,Activiti 的首個目標就是要獲得開發者的青睐。首先它在使用時極為方便,只是個 jar 文件,使用時僅需要將其放在類路徑中,當然,Activiti 也可以作為獨立服務器的方式使用;同時 Activiti 提供了很多 BPM 高級工具,其中還包括開發了協作工具,使得開發人員、業務人員和運維人員能夠更好的協同工作。
  4. 本文將會介紹 Activiti 的基本概念,同時通過示例來介紹如何通過搭建 Activiti 開發環境和 Activiti API 使用,同時也會接觸到 Activiti 的一些工具,希望通過閱讀這篇文章,Activiti 能成為您在開發 BPM 系統時的一個選擇。

Activiti 基本架構和服務組件介紹

Activiti 流程引擎重點關注在系統開發的易用性和輕量性上。每一項 BPM 業務功能 Activiti 流程引擎都以服務的形式提供給開發人員。通過使用這些服務,開發人員能夠構建出功能豐富、輕便且高效的 BPM 應用程序。


圖 1.Activiti 系統服務結構圖

圖 1 是 Activiti 引擎的系統服務結構圖,該圖顯示了引擎提供的所有功能組件,以下為各個服務的功能簡介:

  • RepositoryService: Activiti 中每一個不同版本的業務流程的定義都需要使用一些定義文件,部署文件和支持數據 ( 例如 BPMN2.0 XML 文件,表單定義文件,流程定義圖像文件等 ),這些文件都存儲在 Activiti 內建的 Repository 中。Repository Service 提供了對 repository 的存取服務。
  • RuntimeService:在 Activiti 中,每當一個流程定義被啟動一次之後,都會生成一個相應的流程對象實例。Runtime Service 提供了啟動流程、查詢流程實例、設置獲取流程實例變量等功能。此外它還提供了對流程部署,流程定義和流程實例的存取服務。
  • TaskService:在 Activiti 中業務流程定義中的每一個執行節點被稱為一個 Task,對流程中的數據存取,狀態變更等操作均需要在 Task 中完成。Task Service 提供了對用戶 Task 和 Form 相關的操作。它提供了運行時任務查詢、領取、完成、刪除以及變量設置等功能。
  • IdentityService:Activiti 中內置了用戶以及組管理的功能,必須使用這些用戶和組的信息才能獲取到相應的 Task。Identity Service 提供了對 Activiti 系統中的用戶和組的管理功能。
  • ManagementService:Management Service 提供了對 Activiti 流程引擎的管理和維護功能,這些功能不在工作流驅動的應用程序中使用,主要用於 Activiti 系統的日常維護。
  • HistoryService: History Service 用於獲取正在運行或已經完成的流程實例的信息,與 Runtime Service 中獲取的流程信息不同,歷史信息包含已經持久化存儲的永久信息,並已經被針對查詢優化。
  • FormService: Activiti 中的流程和狀態 Task 均可以關聯業務相關的數據。通過使用 Form Service 可以存取啟動和完成任務所需的表單數據並且根據需要來渲染表單。
Copyright © Linux教程網 All Rights Reserved