首頁技術(shù)文章正文

BPM是什么?如何安裝部署?

更新時間:2021-05-11 來源:黑馬程序員 瀏覽量:

Activiti介紹


Alfresco軟件在2010年5月17日宣布Activiti業(yè)務(wù)流程管理(BPM)開源項目的正式啟動,其首席架構(gòu)師由業(yè)務(wù)流程管理BPM的專家 Tom Baeyens擔(dān)任,Tom Baeyens就是原來jbpm的架構(gòu)師,而jbpm是一個非常有名的工作流引擎,當(dāng)然activiti也是一個工作流引擎。

Activiti是一個工作流引擎, activiti可以將業(yè)務(wù)系統(tǒng)中復(fù)雜的業(yè)務(wù)流程抽取出來,使用專門的建模語言BPMN2.0進(jìn)行定義,業(yè)務(wù)流程按照預(yù)先定義的流程進(jìn)行執(zhí)行,實現(xiàn)了系統(tǒng)的流程由activiti進(jìn)行管理,減少業(yè)務(wù)系統(tǒng)由于流程變更進(jìn)行系統(tǒng)升級改造的工作量,從而提高系統(tǒng)的健壯性,同時也減少了系統(tǒng)開發(fā)維護成本。

官方網(wǎng)站:https://www.activiti.org/

Activiti

經(jīng)歷的版本:

Activiti版本

目前最新版本:Activiti7.0.0.Beta


2.1.1 BPM

BPM(Business Process Management),即業(yè)務(wù)流程管理,是一種規(guī)范化的構(gòu)造端到端的業(yè)務(wù)流程,以持續(xù)的提高組織業(yè)務(wù)效率。常見商業(yè)管理教育如EMBA、MBA等均將BPM包含在內(nèi)。


2.1.2 BPM軟件

BPM軟件就是根據(jù)企業(yè)中業(yè)務(wù)環(huán)境的變化,推進(jìn)人與人之間、人與系統(tǒng)之間以及系統(tǒng)與系統(tǒng)之間的整合及調(diào)整的經(jīng)營方法與解決方案的IT工具。

通過BPM軟件對企業(yè)內(nèi)部及外部的業(yè)務(wù)流程的整個生命周期進(jìn)行建模、自動化、管理監(jiān)控和優(yōu)化,使企業(yè)成本降低,利潤得以大幅提升。

BPM軟件在企業(yè)中應(yīng)用領(lǐng)域廣泛,凡是有業(yè)務(wù)流程的地方都可以BPM軟件進(jìn)行管理,比如企業(yè)人事辦公管理、采購流程管理、公文審批流程管理、財務(wù)管理等。


2.1.3 BPMN

BPMN(Business Process Model AndNotation)- 業(yè)務(wù)流程模型和符號 是由BPMI(BusinessProcess Management Initiative)開發(fā)的一套標(biāo)準(zhǔn)的業(yè)務(wù)流程建模符號,使用BPMN提供的符號可以創(chuàng)建業(yè)務(wù)流程。

2004年5月發(fā)布了BPMN1.0規(guī)范.BPMI于2005年9月并入OMG(The Object Management Group對象管理組織)組織。OMG于2011年1月發(fā)布BPMN2.0的最終版本。

具體發(fā)展歷史如下:

BMPN發(fā)展歷史

BPMN 是目前被各 BPM 廠商廣泛接受的 BPM 標(biāo)準(zhǔn)。Activiti 就是使用 BPMN 2.0 進(jìn)行流程建模、流程執(zhí)行管理,它包括很多的建模符號,比如:

Event

用一個圓圈表示,它是流程中運行過程中發(fā)生的事情。

Event

活動用圓角矩形表示,一個流程由一個活動或多個活動組成

BMPN圖形

Bpmn圖形其實是通過xml表示業(yè)務(wù)流程,上邊的.bpmn文件使用文本編輯器打開:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
  <process id="myProcess" name="My process" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <userTask id="usertask1" name="創(chuàng)建請假單"></userTask>
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
    <userTask id="usertask2" name="部門經(jīng)理審核"></userTask>
    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
    <userTask id="usertask3" name="人事復(fù)核"></userTask>
    <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="usertask3"></sequenceFlow>
    <endEvent id="endevent1" name="End"></endEvent>
    <sequenceFlow id="flow4" sourceRef="usertask3" targetRef="endevent1"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
    <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="130.0" y="160.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
        <omgdc:Bounds height="55.0" width="105.0" x="210.0" y="150.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
        <omgdc:Bounds height="55.0" width="105.0" x="360.0" y="150.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3">
        <omgdc:Bounds height="55.0" width="105.0" x="510.0" y="150.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="660.0" y="160.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
        <omgdi:waypoint x="165.0" y="177.0"></omgdi:waypoint>
        <omgdi:waypoint x="210.0" y="177.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
        <omgdi:waypoint x="315.0" y="177.0"></omgdi:waypoint>
        <omgdi:waypoint x="360.0" y="177.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
        <omgdi:waypoint x="465.0" y="177.0"></omgdi:waypoint>
        <omgdi:waypoint x="510.0" y="177.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
        <omgdi:waypoint x="615.0" y="177.0"></omgdi:waypoint>
        <omgdi:waypoint x="660.0" y="177.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>


2.2 使用步驟

部署activiti

Activiti是一個工作流引擎(其實就是一堆jar包API),業(yè)務(wù)系統(tǒng)訪問(操作)activiti的接口,就可以方便的操作流程相關(guān)數(shù)據(jù),這樣就可以把工作流環(huán)境與業(yè)務(wù)系統(tǒng)的環(huán)境集成在一起。


流程定義

使用activiti流程建模工具(activity-designer)定義業(yè)務(wù)流程(.bpmn文件) 。

.bpmn文件就是業(yè)務(wù)流程定義文件,通過xml定義業(yè)務(wù)流程。


流程定義部署

activiti部署業(yè)務(wù)流程定義(.bpmn文件)。

使用activiti提供的api把流程定義內(nèi)容存儲起來,在Activiti執(zhí)行過程中可以查詢定義的內(nèi)容

Activiti執(zhí)行把流程定義內(nèi)容存儲在數(shù)據(jù)庫中


啟動一個流程實例

流程實例也叫:ProcessInstance

啟動一個流程實例表示開始一次業(yè)務(wù)流程的運行。

在員工請假流程定義部署完成后,如果張三要請假就可以啟動一個流程實例,如果李四要請假也啟動一個流程實例,兩個流程的執(zhí)行互相不影響。


用戶查詢待辦任務(wù)(Task)

因為現(xiàn)在系統(tǒng)的業(yè)務(wù)流程已經(jīng)交給activiti管理,通過activiti就可以查詢當(dāng)前流程執(zhí)行到哪了,當(dāng)前用戶需要辦理什么任務(wù)了,這些activiti幫我們管理了,而不需要開發(fā)人員自己編寫在sql語句查詢。


用戶辦理任務(wù)

用戶查詢待辦任務(wù)后,就可以辦理某個任務(wù),如果這個任務(wù)辦理完成還需要其它用戶辦理,比如采購單創(chuàng)建后由部門經(jīng)理審核,這個過程也是由activiti幫我們完成了。


流程結(jié)束

當(dāng)任務(wù)辦理完成沒有下一個任務(wù)結(jié)點了,這個流程實例就完成了。

1577370495235_學(xué)IT就到黑馬程序員.gif



猜你喜歡:

Activiti7系列視頻教程

MapReduce的工作流程是怎樣的?

Redis集群方案怎么做?Redis集群有哪些方案?

黑馬程序員Java開發(fā)培訓(xùn)課程

分享到:
在線咨詢 我要報名
和我們在線交談!