資源描述:
《工作流Activit介紹與應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、實(shí)用文檔工作流Activiti介紹與應(yīng)用工作流(workflow)就是工作流程的計(jì)算模型,即將工作流程中的工作如何前后組織在一起的邏輯和規(guī)則在計(jì)算機(jī)中以恰當(dāng)?shù)哪P瓦M(jìn)行表示并對(duì)其實(shí)施計(jì)算。我的理解就是:將部分或者全部的工作流程、邏輯讓計(jì)算機(jī)幫你來(lái)處理,實(shí)現(xiàn)自動(dòng)化。1Activiti簡(jiǎn)介Activiti是由Alfresco軟件在2010年5月17日發(fā)布的業(yè)務(wù)流程管理(BPM)框架,它是覆蓋了業(yè)務(wù)流程管理,工作流,服務(wù)協(xié)作等領(lǐng)域的一個(gè)開(kāi)源,靈活的,易擴(kuò)展的可執(zhí)行流程語(yǔ)言框架。它實(shí)現(xiàn)了BPMN2.0規(guī)范,可以發(fā)布設(shè)計(jì)好的流程定義,并通過(guò)api進(jìn)行流程調(diào)度。1.1Activiti基礎(chǔ)編程框架Act
2、iviti的基礎(chǔ)編程框架如下:文案大全實(shí)用文檔Activiti基于Spring,ibatis等開(kāi)源中間件作為軟件平臺(tái),在此之上構(gòu)建了非常清晰的開(kāi)發(fā)框架。上圖列出了Activiti的核心組件。1.ProcessEngine:流程引擎的抽象,對(duì)于開(kāi)發(fā)者來(lái)說(shuō),它是我們使用Activiti的外觀(fa?ade),通過(guò)它可以獲得我們需要的一切服務(wù)。2.XXService(TaskService,RuntimeService,RepositoryService...):Activiti按照流程的生命周期(定義,部署,運(yùn)行)把不同階段的服務(wù)封裝在不同的Service中,用戶可以非常清晰地使用特定階段的
3、接口。通過(guò)ProcessEngine能夠獲得這些Service實(shí)例。1.1Activiti重要服務(wù)類ProcessEngine:流程引擎的抽象,通過(guò)它我們可以獲得我們需要的一切服務(wù)。RepositoryService:Activiti中每一個(gè)不同版本的業(yè)務(wù)流程的定義都需要使用一些定義文件,部署文件和支持?jǐn)?shù)據(jù)(例如BPMN2.0XML文件,表單定義文件,流程定義圖像文件等),這些文件都存儲(chǔ)在Activiti內(nèi)建的Repository中。RepositoryService提供了對(duì)repository的存取服務(wù)。TaskService:在Activiti業(yè)務(wù)流程定義中每一個(gè)執(zhí)行節(jié)點(diǎn)都被稱作一個(gè)
4、Task,流程運(yùn)行過(guò)程中,與每個(gè)任務(wù)節(jié)點(diǎn)相關(guān)的接口,比如complete,delete,delegate等等都是TaskService提供的。IdentityService:Activiti中內(nèi)置了用戶以及組管理的功能,必須使用這些用戶和組的信息才能獲取到相應(yīng)的Task。IdentityService提供了對(duì)Activiti系統(tǒng)中的用戶和組的管理功能。FormService:Activiti中的流程和Task狀態(tài)均可關(guān)聯(lián)業(yè)務(wù)相關(guān)的數(shù)據(jù)。通過(guò)FormService可以存取啟動(dòng)和完成任務(wù)所需要的表單數(shù)據(jù)。RuntimeService:在Activiti中,每當(dāng)一個(gè)流程定義被啟動(dòng)一次之后,都會(huì)
5、生成一個(gè)相應(yīng)的流程對(duì)象實(shí)例。RuntimeService提供了啟動(dòng)流程、查詢流程實(shí)例、設(shè)置獲取流程實(shí)例變量等功能。此外它還提供了對(duì)流程部署,流程定義和流程實(shí)例的存取服務(wù)。.ManagementService:ManagementService提供了對(duì)Activiti流程引擎的管理和維護(hù)功能,這些功能不在工作流驅(qū)動(dòng)的應(yīng)用程序中使用,主要用于Activiti系統(tǒng)的日常維護(hù)。?HistoryService:HistoryService用于獲取正在運(yùn)行或已經(jīng)完成的流程實(shí)例的信息,與RuntimeService中獲取的流程信息不同,歷史信息包含已經(jīng)持久化存儲(chǔ)的永久信息,并已經(jīng)被針對(duì)查詢優(yōu)化。關(guān)于P
6、rocessEngine和XXService的關(guān)系,可以看下面這張圖:文案大全實(shí)用文檔?1Activiti深入1.1Activiti配置類分析ProcessEngineConfiguration類的結(jié)構(gòu)圖如下圖:正如上圖所示,ProcessEngineConfiguration是全部配置類的父類,有一個(gè)ProcessEngineConfigurationImpl子類,ProcessEngineConfigurationImpl下面有三個(gè)直接的子類,其中ProcessEngineConfiguration和ProcessEngineConfigurationImpl都是抽象類。這個(gè)類是我們
7、編程時(shí)第一個(gè)使用的類,有了這個(gè)類的層級(jí)結(jié)構(gòu),我們就比較容易理解通過(guò)該類獲取各種具體實(shí)現(xiàn)的ProcessEngineConfiguration類的實(shí)例了。ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();ProcessEngineConfiguration.createProcessEngineConfigurationFr