- Activiti權(quán)威指南
- 冀正
- 869字
- 2020-11-28 15:59:53
2.2 流程引擎架構(gòu)
Activiti框架提供的流程引擎配置類ProcessEngineConfiguration的類圖如圖2-1所示,該類的架構(gòu)如圖2-2所示。

圖2-1 ProcessEngineConfiguration子類邊界

圖2-2 流程引擎架構(gòu)圖
通過(guò)圖2-2可以很清晰地從全局角度了解ProcessEngineConfiguration類,如果開(kāi)發(fā)人員對(duì)Activiti源碼沒(méi)有太多接觸,可能對(duì)圖2-2中所涉及的類不是很理解,下面先簡(jiǎn)單介紹類的職責(zé),后續(xù)章節(jié)會(huì)深入講解。
(1)EngineServices:該接口中定義了獲取各種服務(wù)類實(shí)例對(duì)象的方法。
(2)ProcessEngine:繼承EngineServices接口,并增加了對(duì)流程引擎名稱的獲取以及關(guān)閉流程引擎的支持。
(3)ProcessEngineImpl:對(duì)ProcessEngine接口中定義的方法進(jìn)行實(shí)現(xiàn)。
(4)ProcessEngines:該類負(fù)責(zé)管理所有的流程引擎ProcessEngine集合,并負(fù)責(zé)流程引擎實(shí)例對(duì)象的注冊(cè)、獲取、注銷(xiāo)等操作。
(5)ProcessEngineConfiguration:該抽象類實(shí)現(xiàn)EngineServices接口,提供了一系列創(chuàng)建流程引擎配置類ProcessEngineConfiguration實(shí)例對(duì)象的方法。
(6)ProcessEngineConfigurationImpl:該抽象類繼承ProcessEngineConfiguration,負(fù)責(zé)創(chuàng)建一系列服務(wù)類實(shí)例對(duì)象、流程引擎實(shí)例對(duì)象以及ProcessEngineImpl類實(shí)例對(duì)象。該類可以通過(guò)流程配置文件交給Spring容器管理或者使用編程方式動(dòng)態(tài)構(gòu)造。
(7)SpringProcessEngineConfiguration:主要用于整合Spring框架時(shí)使用,提供幾個(gè)重要功能:創(chuàng)建流程引擎實(shí)例對(duì)象,流程引擎啟動(dòng)之后自動(dòng)部署配置的流程文檔(需要設(shè)置),設(shè)置流程引擎連接的數(shù)據(jù)源、事務(wù)管理器等。
(8)StandaloneProcessEngineConfiguration:標(biāo)準(zhǔn)的流程引擎配置類。
(9)MultiSchemaMultiTenantProcessEngineConfiguration:“多數(shù)據(jù)庫(kù)多租戶”流程引擎配置類,Activiti通過(guò)此類為開(kāi)發(fā)人員提供了自動(dòng)路由機(jī)制,這樣當(dāng)流程引擎需要連接多個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),客戶端無(wú)須關(guān)心引擎到底連接的是哪一個(gè)數(shù)據(jù)庫(kù),該類通過(guò)路由規(guī)則自動(dòng)選擇需要操作的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的操作對(duì)客戶端來(lái)說(shuō)是透明的,客戶端無(wú)須關(guān)心其內(nèi)部路由實(shí)現(xiàn)機(jī)制。
(10)JtaProcessEngineConfiguration:顧名思義,通過(guò)類名也知道該類支持JTA。
(11)StandaloneInMemProcessEngineConfiguration:該類通常可以在開(kāi)發(fā)環(huán)境中自測(cè)使用,默認(rèn)采用H2數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)。
(12)EngineServices提供的服務(wù)類如下。
? RepositoryService:提供一系列操作流程定義的方法。
? RuntimeService:提供一系列操作流程實(shí)例的方法。
? FormService:提供一系列操作流程表單的方法。
? TaskService:提供一系列操作任務(wù)的方法,例如任務(wù)的完成、掛起、激活、添加處理人、認(rèn)領(lǐng)、刪除等操作。
? HistoryService:提供一系列查詢歷史流程實(shí)例、歷史變量、歷史任務(wù)的方法。
? IdentityService:提供一系列操作用戶或者組的方法。
? ManagementService:提供查詢數(shù)據(jù)庫(kù)表中的數(shù)據(jù)、表的元數(shù)據(jù)以及執(zhí)行命令等方法。
- 手機(jī)安全和可信應(yīng)用開(kāi)發(fā)指南:TrustZone與OP-TEE技術(shù)詳解
- DevOps:軟件架構(gòu)師行動(dòng)指南
- 精通Nginx(第2版)
- Apache ZooKeeper Essentials
- C#程序設(shè)計(jì)實(shí)訓(xùn)指導(dǎo)書(shū)
- 垃圾回收的算法與實(shí)現(xiàn)
- Java面向?qū)ο筌浖_(kāi)發(fā)
- C/C++算法從菜鳥(niǎo)到達(dá)人
- AngularJS Web Application Development Blueprints
- 差分進(jìn)化算法及其高維多目標(biāo)優(yōu)化應(yīng)用
- Python數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)
- R Deep Learning Cookbook
- 數(shù)據(jù)結(jié)構(gòu)習(xí)題解析與實(shí)驗(yàn)指導(dǎo)
- Visual Basic程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)(第二版)
- 智能搜索和推薦系統(tǒng):原理、算法與應(yīng)用