天天看點

Activiti實戰. 1.3Activiti的特點

<b>1.3activiti的特點</b>

1. 資料持久化

activiti的設計思想是簡潔、快速。有過應用開發經驗的開發人員都知道應用的瓶頸展現在和資料庫交換資料的過程中,針對這一點activiti選擇了使用mybatis,進而可以通過最優的sql語句執行command,僅憑如此就能讓引擎在速度上保持最高的性能。

2. 引擎service接口

activiti引擎提供了七大service接口,均通過processengine擷取,并且支援鍊式api程式設計風格。表1-1簡單列出七個service接口及其作用,具體使用會在後面的章節陸續介紹。

表1-1activiti引擎的七大service接口

service接口    作  用

repositoryservice     流程倉庫service,用于管理流程倉庫,例如,部署、删除、讀取流程資源

identifyservice           身份service,可以管理和查詢使用者、組之間的關系

runtimeservice         運作時service,可以處理所有正在運作狀态的流程執行個體、任務等

taskservice       任務service,用于管理、查詢任務,例如,簽收、辦理、指派等

formservice      表單service,用于讀取和流程、任務相關的表單資料

historyservice  曆史service,可以查詢所有曆史資料,例如,流程執行個體、任務、活動、變量、附件等

managementservice         引擎管理service,和具體業務無關,主要是可以查詢引擎配置、資料庫、作業等

3. 流程設計器

在jbpm4時代有專門的eclipse插件可以用來設計jpdl,同樣activiti團隊也專門設計了用來設計bpmn 2.0規範的流程設計器—eclipse designer。此外還有signavio公司為activiti定制的基于web的activiti modeler流程設計器。

4. 原生支援spring

activiti原生支援spring,這一點對企業應用來說尤為重要:可以很輕松地進行spring內建,非常友善管理事務和解析表達式(expression)。

5. 分離運作時與曆史資料

activiti繼承自jbpm4,在表結構設計方面也遵循運作時與曆史資料的分離,這樣的設計可以快速讀取運作時資料,僅當需要查詢曆史資料時再從專門的曆史資料表中讀取。這種設計方式可以大幅提高資料的存取效率,尤其是當資料日積月累時依然能夠快速反應。