国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Activiti工作流淺析

開發 架構
從公司講,工作流系統規范了公司的業務流程,優化了企業內部的管理,提高了團隊間地協作效率,能夠幫助企業向知識型企業轉變。

一、工作流

1、工作流概述

在一個公司業務中,每一個業務的開始和結束,都可以理解成為一個工作流。例如公司請假的基本流程。

圖片

如圖所示,員工先提出請假申請,提交該申請給直屬領導審批,直屬領導審批后,再提交給人事部門審批,審批完成后,通知提出申請的員工,即請假流程結束。整個步驟按照正常工作方式一步步完成,這就是一個簡單而又完整的工作流;工作流可以理解為從開始節點發起流程,然后經過其中多個節點,完成動作,最后到結束節點的整個過程。

在沒有工作流引擎之前,為了實現上述的流程控制,開發人員最常用的做法是采用狀態值跟蹤流程的狀態變化,假設初始值為0,每一個流程的流轉,狀態值+1,然后給出相應的處理邏輯??梢钥闯龉ぷ鞯牧鞒毯蜆I務高度耦合,當流程發生變化時,我們的業務代碼也要做出同等的調整。

如果有一個工具幫助我們管理工作流,當業務流程變化后,程序不需要發生變化,最終將會讓我們的開發能力和業務能力大幅提升。于是乎,工作流引擎應運而生!

二、Activiti介紹

1、簡介

  • Activiti是一個開源的工作流引擎,它實現了BPMN 2.0規范,可以發布設計好的流程定義,并通過api進行流程調度
  • Activiti是一種輕量級,可嵌入的BPM引擎,可以將復雜的業務流程抽取出來,然后使用專門的建模語言BPMN2.0定義執行流程,最終業務系統通過訪問Activiti的接口去驅動預定義的流程執行
  • Activiti 流程引擎重點關注在系統開發的易用性和輕量性上.每一項BPM業務功能Activiti流程引擎都以服務的形式提供給開發人員.通過使用這些服務,開發人員能夠構建出功能豐富,輕便且高效的BPM應用程序

2、Activiti服務架構

圖片

activiti.cfg.xml:

Activiti核心配置文件,配置流程引擎創建工具的基本參數和數據庫連接池參數

核心類:

?ProcessEngine: 流程引擎的抽象,可以通過此類獲取需要的所有服務

服務類:

  • XxxService: 通過ProcessEngine獲取,Activiti將不同生命周期的服務封裝在不同Service中,包括定義,部署,運行.通過服務類可獲取相關生命周期中的服務信息
  • RepositoryServiceRepository Service提供了對repository的存取服務 Activiti中每一個不同版本的業務流程的定義都需要使用一些定義文件,部署文件和支持數據(例如BPMN2.0XML文件,表單定義文件,流程定義圖像文件等),這些文件都存儲在Activiti內建的Repository中
  • RuntimeServiceRuntime Service提供了啟動流程,查詢流程實例,設置獲取流程實例變量等功能.此外它還提供了對流程部署,流程定義和流程實例的存取服務
  • TaskServiceTask Service提供了對用戶Task和Form相關的操作.它提供了運行時任務查詢,領取,完成,刪除以及變量設置等功能
  • HistoryServiceHistory Service用于獲取正在運行或已經完成的流程實例的信息,與Runtime Service中獲取的流程信息不同,歷史信息包含已經持久化存儲的永久信息,并已經被針對查詢優化
  • FormService使用Form Service可以存取啟動和完成任務所需的表單數據并且根據需要來渲染表單 Activiti中的流程和狀態Task均可以關聯業務相關的數據
  • IdentityServiceIdentity Service提供了對Activiti系統中的用戶和組的管理功能 Activiti中內置了用戶以及組管理的功能,必須使用這些用戶和組的信息才能獲取到相應的Task
  • ManagementServiceManagement Service提供了對Activiti流程引擎的管理和維護功能 這些功能不在工作流驅動的應用程序中使用,主要用于 Activiti 系統的日常維護

組件

  • 持久化組件:

?Activiti使用mybatis作OR映射,并在此基礎上增加設計了自己的持久化框架在流程引擎創建時初始化,頂層接口Session,SessionFactorySession有兩個實現類:DbSqlSession: 負責sql表達式的執行AbstractManager: 負責對象的持久化操作SessionFactory有兩個實現類:DbSqlSessionFactory: 負責DbSqlSession相關操作GenericManagerFactory: 負責AbstractManager相關操作

  • Event-Listener組件:

Activiti允許客戶代碼介入流程執行,提供了事件監聽組件監聽的事件類型:TaskListener、JavaDelegate、Expression、ExecutionListener、ProcessEngineConfigurationImpl持有DelegateInterceptor的某個實例,方便調用handleInvocation

  • Cache組件:

DbSqlSession中有cache的實現Activiti基于List和Map來做緩存:如查詢時先查緩存,沒有則直接查詢并放入緩存

  • 異步執行組件:

Activiti可以執行任務,JobExecutor為其核心類,JobExecutor包含三個主要屬性:JobAcquisitionThread、BlockingQueue、ThreadPoolExecutor,方法ProcessEngines在引擎啟動時調用JobExecutor.start,JobAcquisitionThread 線程即開始工作,其run方法不斷循環執行AcquiredJobs中的job,執行一次后線程等待一定時間直到超時或者JobExecutor.jobWasAdded方法,因為有新任務而被調用。

  • 上下文組件Context:

用來保存生命周期比較長,全局性的信息,類似Application.主要包括如下三類:CommandContext: 命令上下文-保存每個命令必要的資源,如持久化需要的sessionProcessEngineConfigurationImpl: 流程引擎相關配置信息-整個引擎全局的配置信息.如數據源DataSource等.該對象為單例,在流程引擎創建的時候初始化ExecutionContext: 持有ExecutionEntity對象

3、Activiti數據庫支持

  • 所有的表都以ACT_開頭
  • 第二部分是表示表的用途的兩個字母標識
  • 用途也和服務的API對應
ACT_RE_* : 'RE'表示repository. 這個前綴的表包含了流程定義和流程靜態資源(圖片,規則...)
ACT_RU_* : 'RU'表示runtime.這些運行時的表, 包含流程實例,任務,變量,異步任務,等運行中的數據.
Activiti只在流程實例執行過程中保存這些數據,在流程結束時就會刪除這些記錄.這樣運行時表可以一直很小速度很快
ACT_ID_* : 'ID'表示identity.這些表包含身份信息, 比如用戶,組...
ACT_HI_* : 'HI'表示history.這些表包含歷史數據, 比如歷史流程實例,變量,任務...
ACT_GE_* :通用數據. 用于不同場景下, 如存放資源文件

資源庫流程規則表說明:

act_re_deployment   部署信息表
act_re_model 流程設計模型部署表
act_re_procdef 流程定義數據表

運行時數據庫表說明:

act_ru_execution       運行時流程執行實例表
act_ru_identitylink 運行時流程人員表,主要存儲任務節點與參與者的相關信息
act_ru_task 運行時任務節點表
act_ru_variable 運行時流程變量數據表

組織結構表說明:

act_id_group       用戶組信息
act_id_info 用戶擴展信息表
act_id_membership 用戶與用戶組對應信息表
act_id_user 用戶信息表

4、BPM/BPMN介紹

BPM(Business Process Management),即業務流程管理,是一種規范化的構造端到端的業務流程,以持續的提高組織業務效率。常見商業管理教育如EMBA、MBA等均將BPM包含在內。BPMN(Business Process Model AndNotation)即業務流程模型和符號,是一套標準的業務流程建模符號,使用 BPMN 提供的符號可以創建業務流程。Activiti 就是使用 BPMN 進行流程建模、流程執行管理的。BPMN2.0 是業務流程建模符號 2.0 的縮寫,它由 Business Process Management Initiative 這個非營利協會創建并不斷發展。BPMN2.0 是使用一些符號來明確業務流程設計流程圖的一套符號規范,能增進業務建模時的溝通效率。目前 BPMN2.0 是最新的版本,它用于在 BPM 上下文中進行布局和可視化的溝通

BPMN2.0基本符號介紹

簡要列表如下:

圖片

圖片

圖片

三、springboot整合Activiti

  • 新建springboot項目
  • pom.xml導入相關依賴

圖片

  • 在resource目錄下新建process目錄作為*.bmnp的存儲路徑

圖片

  • application.yml配置

圖片

  • idea安裝插件Activiti BPMN visualizer,創建流程圖

圖片

打開該文件,右鍵選中如圖:

圖片

最終會生成xml文件:

圖片

 通過讀取png和bmnp獲取請假流程:

圖片

四、考慮使用Activiti的場景

1、關鍵業務流程: 訂單、報價處理、合同審核、客戶電話處理、供應鏈管理等

2、行政管理類:出差申請、加班申請、請假申請、用車申請、各種辦公用品申請、購買申請、日報周報等

3、人事管理類: 員工培訓安排、績效考評、職位變動處理、員工檔案信息管理等。

4、財務相關類: 付款請求、應收款處理、日常報銷處理、出差報銷、預算和計劃申請等。

5、客戶服務類: 客戶信息管理、客戶投訴、請求處理、售后服務管理等。

五、總結

從公司講,工作流系統規范了公司的業務流程,優化了企業內部的管理,提高了團隊間地協作效率,能夠幫助企業向知識型企業轉變。

作為技術開發人員,Activiti在小項目中基于串行并行流轉能夠基本滿足業務和開發的需求;但是Activiti對于技術的要求門檻相對較高,二次開發難度大,需要技術人員不斷提升和學習,在實戰中研發出具有極高價值的工作流系統。

責任編輯:武曉燕 來源: 新鈦云服
相關推薦

2023-07-05 09:48:44

Activiti部署

2009-09-01 18:19:39

C#工作流

2021-12-17 08:39:39

SpringbootActiviti網關路由

2010-06-24 16:40:16

Bittorrent協

2021-10-14 11:34:05

技術工作流引擎

2024-04-25 08:00:00

DevOps架構軟件開發

2013-04-23 10:28:08

IBeamMDAAWF

2009-03-03 09:13:36

工作流BPM業務流程

2012-07-23 10:36:46

工作流

2010-01-04 17:42:50

SilverLight

2023-01-04 08:02:16

工作流架構設計

2011-12-14 09:58:58

JavajBPM

2009-06-19 15:38:43

Java虛擬機

2015-07-14 09:26:28

微型工作流引擎設計

2025-11-27 01:55:00

AI流程工作流模式

2024-08-05 12:46:51

2013-09-29 17:13:59

PowerShell工作流

2015-06-24 10:18:26

2025-03-03 13:26:39

2025-01-26 15:13:00

點贊
收藏

51CTO技術棧公眾號

欧美一区 二区| www.久久ai| 2022成人影院| 国产精品丝袜91| 91夜夜揉人人捏人人添红杏| 三区精品视频观看| 麻豆精品av| 亚洲第一免费播放区| 国产导航在线| 99久久精品国产观看| 日韩av一级大片| 香蕉久久网站| 97色伦亚洲国产| 影音成人av| 欧美一级在线视频| 亚洲欧洲动漫| 18涩涩午夜精品.www| 精品人妻人人做人人爽| 亚洲影视综合| 999在线免费观看视频| 欧美一区电影| 日本最新高清不卡中文字幕| 欧美国产中文高清| 这里精品视频免费| 男女羞羞在线观看| 日韩视频123| 日本蜜桃在线观看| 欧美伊人久久大香线蕉综合69| 丁香六月婷婷| 国产日韩av一区| 欧美性大战久久久久xxx| 国产精品一区二区无线| 午夜啪啪免费视频| 秋霞午夜av一区二区三区| 精品一区二区三区自拍图片区| 欧美成人有码| 国产精品久久亚洲| 精品69视频一区二区三区Q| 97超级碰碰| 精品二区久久| 久久久久久久久久码影片| 美女久久一区| 亚洲黄色成人久久久| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲春色在线视频| 国产精品一区二区91| 日韩av新片网| 久久久久99精品一区| av网站在线不卡| 综合分类小说区另类春色亚洲小说欧美| 欧美 激情 在线| 国产精品全国免费观看高清| 久草在.com| 欧美日韩在线观看视频| 久久综合九色综合久| 欧美精三区欧美精三区| 成年人视频免费在线播放| 亚洲欧美国产制服动漫| 爱情电影网av一区二区| 2025国产精品视频| 91精品一区国产高清在线gif | 精品无吗乱吗av国产爱色| 色综合久久久网| 午夜视频成人| 亚洲国产欧美久久| 国产精品99| 国产精品高清网站| 性高湖久久久久久久久| 丁香六月激情婷婷| 亚洲男人的天堂网| 亚洲搞黄视频| 这里只有精品在线观看| 女厕嘘嘘一区二区在线播放| 国产一区在线免费| 成人精品国产福利| 一级一片免费视频| 亚洲精品在线网站| 99a精品视频在线观看| 99r国产精品视频| 精品在线你懂的| 狠狠干夜夜操| 精品少妇一区二区三区| 亚洲精品v亚洲精品v日韩精品| 成人做爽爽免费视频| 国产中文字幕一区| 亚洲美女在线免费观看| 欧美xxxx在线观看| 四虎884aa成人精品最新| 欧美色图亚洲自拍| 国产精品国产自产拍高清av王其| a视频网址在线观看| 日韩在线播放视频| 欧美精品自拍| 黄色av免费在线播放| 欧美日韩免费一区二区三区 | 黄色一区二区三区| 国产亚洲成av人片在线观看| 亚洲免费黄色| 91网页在线观看| 久久66热这里只有精品| 少妇精品久久久| 欧美精品亚洲| 国产精品卡一卡二卡三| 欧洲在线视频| 国产精品欧美在线| 成人免费高清在线观看| 日韩大胆视频| 99久久精品国产一区二区三区| 国产精品吊钟奶在线| 亚洲精品久久| 免费黄色在线| seseavlu视频在线| 国产精品中文| 99久久.com| 激情综合色综合久久综合| 中文字幕免费一区二区三区| 偷拍自拍亚洲| 欧洲成人av| 中文字幕中文字幕在线中心一区| 伊人久久婷婷| 麻豆av在线免费观看| www.69av| www.久久草| 不卡av在线播放| 日韩欧美电影一二三| 国产成人免费视频| 国产精品中文字幕亚洲欧美| 男插女视频久久久| 亚洲最大综合网| 日韩福利视频| 97中文在线观看| 51久久精品夜色国产麻豆| 亚洲网址你懂得| 色婷婷综合久久久中文一区二区| 久久99热国产| 日韩精品一二三四| 蜜臀99久久精品久久久久久软件| 久久夜色电影| 久久天天久久| 国产传媒在线| 猫咪成人官网| 中文av一区二区三区| 在线视频亚洲欧美| 欧美亚洲国产bt| 亚洲电影在线看| 欧美性欧美巨大黑白大战| 青青青爽久久午夜综合久久午夜 | 欧美成人黑人猛交| 国产911网站| 爱情岛论坛vip永久入口| 可播放的18gay1069| 曰韩少妇与小伙激情| 91佛爷在线| 翔田千里一区| 97超碰资源站在线观看| 激情四房婷婷| 亚洲国产精品综合| 黄色www网站| 一个色的综合| 自拍偷拍 国产| 91精品啪aⅴ在线观看国产| 97精品国产97久久久久久春色| 91高清视频在线免费观看| 欧美精品二区三区四区免费看视频| 色撸撸在线观看| 992tv快乐视频| 国产精品夜夜夜爽张柏芝| 未来日记在线观看| 成人免费在线小视频| 国产aaa一级片| 91精选福利| 美女在线视频免费| 青青草国产免费一区二区下载| 日韩电影免费在线观看网站| 久久综合色之久久综合| 99re在线视频这里只有精品| 欧美国产一区二区三区激情无套| 成人污污视频在线观看| www.欧美色图| 日本乱人伦aⅴ精品| 日韩三级在线免费观看| 久久精品国产2020观看福利| 久久免费精品视频| 91精品国自产在线观看| 50度灰在线| 日韩欧美中文字幕电影| 欧美色综合网| 一区二区久久久久久| 国产日韩欧美一二三区| 国产高清精品一区二区| 国产精品999视频| av在线播放网站| 男人亚洲天堂| 白嫩白嫩国产精品| 在线不卡视频| 日韩理论片中文av| 最新国产精品亚洲| 视频一区二区三| 久久五月精品| 欧美.日韩.国产.一区.二区|