成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是 Bpmn ?為什么要用 Bpmn和工作流 ?

開發 前端
業務流程模型和標記法 工作流(Workflow)是對各個行業的流程進行抽象,例如電信、軟件、制造、金融和辦公自動化領域。為了給全部業務的參與者提供易于理解的標準標記法,由業務流程管理倡議組織 BPMI 開發出了“業務流程建模標記法” Business Process Modeling Notation, BPMN。

[[413297]]

本文轉載自微信公眾號「小二十七」,作者小二十七。轉載本文請聯系小二十七公眾號。

BPMN 和 Activiti 介紹

工作流介紹

在任何行業和企業中,都有各種各樣的流程,例如:

  • 請假流程
  • 報銷流程
  • 入職流程
  • 離職流程
  • 出差流程
  • 等等……

就算你自己沒有設計過工作流,那么你每天肯定也在使用各種流程。

為什么要用 BPMN ?

對于流程控制,有一種比較初級的玩法是:在業務代碼里面加入 Status(狀態機) 字段維護流程狀態,流程負責的審批人可能也是 Hard Code(硬編碼),這種玩法實現流程初級會比較快,但是長遠來看會出現幾個問題:

  1. 流程健壯性差,但凡出現人員變動,或者組織結構調整,就需要修改代碼,維護成本高
  2. 流程無法復用,當組織出現新的工作流程,又要重新寫一套代碼,開發成本非常高
  3. 流程和業務代碼耦合,你中有我,我中有你(并不符合單一職責和解耦的設計原則)

BPMN:業務流程模型和標記法 工作流(Workflow)是對各個行業的流程進行抽象,例如電信、軟件、制造、金融和辦公自動化領域。為了給全部業務的參與者提供易于理解的標準標記法,由業務流程管理倡議組織 BPMI 開發出了“業務流程建模標記法” Business Process Modeling Notation, BPMN。BPMI 組織 于 2005 年并入 OMG 國際規范組織(Object Management Group),當前 BPMN 規范由 OMG 組織進行維護。

為什么要遵循規范 ?

遵循市場行為

舉例:我們日常的電池 ?? 有 7 號和 5 號標準,你當然可以生產一個 6 號的電池,有沒有人買就沒人知道了,如果你按標準生產出的電池,那么是可以直接用到大多數電器上,如果你生產 6 號電池,那么你只能自己開發 6 號電池的電器,且不說你這樣的做法是否被市場和行業認可,另外搞那么多不同的標準出來對于消費者來說也是一種災難,例如當年微軟的 IE 和 FireFox 的兩套標準讓現在的開發人員多么痛苦就知道了。。

遵循行業的共識

目前主流的工作流廠商都是基于 BPMN 2.0 規范開發流程,想要自立規范之前也請完全掌握和了解目前的規范。

云程

JeectBoot

另外對于產品和業務人員也需要學習和理解 BPMN 的符號,從而可以對業務進行建模,可以看看人人都是產品經歷這篇文章: 關于 BPMN 流程建模方法 ,從而可以利用現有的 BPMN 流程設計器工具快速對業務建模(無需自己開發),只需將導出的 *.bpmn 文件導入遵循 BPMN 規范的流程引擎內即可運行。充分利用行業的生態和工具。這就是遵循規范所帶來的收益。

有沒有銀彈 ?(BPMN 的適用場景)

我們知道軟件行業是沒有銀彈,任何工具都有適用場景,如果把一個工具放到一個不適應的場景內,那么最終起到事倍功半的效果,流程引擎也不是銀彈,它是一個對于復雜流程和抽象和復用工具,對于那些工作流程多且復雜的業務系統,合理的使用流程引擎會大大降低我們對于工作流的開發成本和時間,并且最終交付的效果也會比自己開發流程引擎要好上許多。

但是如果你的業務系統沒有那么多的工作流程,或者只有很簡單的狀態從 A -> B 的轉移,那么引入流程引擎顯然是 大馬拉小車,費時費力不說,而且會造成簡單的需求開發起來很麻煩,拉長開發周期時間,最終交付的效果也未必很好。所以選擇合適的工具,就成了程序員最重要的選擇。

Activiti 是應對大型系統的復雜流程的作戰工具,小規模場景和流程不復雜的業務系統,不建議使用。 本章總結:為什么要用工作流引擎 ?

  • 自行研發流程,把流程和業務耦合不僅導致代碼開發、修改成本高,而且流程偏定制開發,無法復用,就好比你自己生產一個 6 號電池 ??
  • 通過流程引擎,可以以極低的成本,快速實現業務工作流,提高開發效率,而且久經生產考驗的流程引擎,也比任何人從 0 開始寫流程要可靠的多,流程引擎的功能并沒有多特別,都可以通過邏輯代碼實現的,流程引擎的核心功能在于高質量的復用,設計層面的解耦(設計思想,語言和技術棧無關)
  • BPMN2.0 是行業規范,遵循行業標準,有眾多成熟工具可以使用,例如 bpmn 流程設計工具等等……系統需要實現的工作流越多,使用工作流的收益就越大
  • 流程引擎不是銀彈,它只適用于工作流程多且復雜的大型業務系統,如果是流程邏輯簡單的業務系統,那么不建議使用流程引擎

BPMN 規范介紹

由于 BPMN 1.0 規范廣受歡迎,OMG (Object Management Group) 組織于2011年1月發布 BPMN 2.0 規范,BPMN 2.0 版本則繼承了 1.0 版本的內容,并且注重流程執行語法和標準交換格式。

OMG 組織致力于維護 BPMN 規范的兩個目標:

流程的可遷移性:BPMN 2.0 規范定義了業務流程的符號以及模型,并且為流程定義設定了轉換格式,目的是為了讓流程的定義實現可移植性,那么用戶可以在不同的供應商環境中定義流程,并且這些 流程可以移植到其他遵守 BPMN 2.0 規范的供應商環境中。

解決簡單和復雜的平衡:BPMN 想要解決流程設計和復雜需求中間尋找一個平衡點,可以讓非技術人員建立簡單并且易懂的業務流程模型,同時可以處理高度復雜的業務流程,因此要解決這兩個矛盾的要求,需要在 BPMN 規范中定義標準的圖形和符號。

四種基本要素

BPMN 2.0 的圖形結構和要素,建議直接參考 WIKI 百科的答案,這里我就不搬運了:

  • wiki 百科:BPMN 業務流程模型和標記法

2.0 的幾點改進

相比 BPMN 1.0 主要有以下改進:

  • 規范了流程元素的執行語法。
  • 定義了流程模型和流程圖的擴展機制。
  • 細化了事件的組成。擴展了參與者的交互定義。
  • 定義了編排模型。

Activiti 介紹

Activiti 是目前國內比較主流的基于 BPMN 2.0 規范實現的工作流引擎,目前已經發布到 7.X 版本,并且已經開始實現 DMN 規范(決策與圖形,后面會講),另外關于工作流引擎還有一些比較老牌的玩家例如:JBPM 現在發展的也很不錯,還有目前比較新興的流程引擎:camunnda,flowable 目前看起來也潛力十足,他們都是遵循了 BPMN 2.0 規范,因為在國內應用的比較主流,所以這里我們這里重點介紹 Activiti

Activiti 出現和發展

這里簡單介紹 JBPM 和 Activiti 的發展歷史,有興趣深究的自行去 Google 搜索

Activiti 的發展線路:

  • Tom Baeyens 是 JBPM 的創始人,因為理念不合 Tom Baeyens 加入 Alfresco 公司后又發布了 Activit 5
  • JBPM 因此放棄 JBPM 4 架構,完全基于 Drools Flow 重新開發 JBMP 5,但他們同樣都支持 BPMN 2.0 規范
  • 從正統的延續來看,Activit 5 更像是對 JBPM 3、JBPM 4 的延續,所以國內大多企業都選擇 Activit

JBPM、Activiti 區別

  1. JBPM 推翻歷史架構,重新使用了 Drools Flow 作為工作流架構
  2. JBPM 采用的是 LGPL 開源協議,對源碼修改需要商業授權
  3. Activiti 采用了更為寬松的 Apache License 2.0 協議
  4. ……(想到再補充)

官方的 Activiti 示例

官方發布的 Activiti 演示程序,可以首先通過該例子來了解 Activiti 大部分功能,包括:

  • 流程定義
  • 流程發布
  • 動態表單

等等,通過這個示例程序,作為切入 Activiti 的引子,建立初步了解后,更有信心深入了解 Activiti 工作流引擎

下載和使用示例程序步驟:

  • Activiti 6.0 示例程序
  • 將示例程序 /wars 目錄下的 3 個程序拷貝到 Tomcat/webapps 目錄,然后啟動 Tomcat 即可
  • 訪問示例程序:http://localhost:8080/activiti-app/#/ 輸入默認賬號:admin/test 訪問即可

Activiti 目錄 /wars 下的三個示例程序職責分工:

應用 說明 地址 默認賬號
activiti-app 一個比較完善的流程引擎示例程序 /activiti-app admin/test
activiti-admin 用于查看流程引擎中的主要數據 /activiti-admin admin/admin
activiti-rest rest-api 應用 API,不再局限 Jar /activiti-rest kermit/kermit

演示一個簡易的工作流的幾個步驟:

  1. 進入 activiti-app 系統,為創建用戶
  2. 設計一個簡單的工作流,并且為流程節點綁定用戶
  3. 創建 HR App 應用程序,設置包含請假流程,并且發布
  4. 員工進入 HR App 程序,提交一個請假申請
  5. 經理進入系統,并且同意員工的請假申請,示例流程完成
  6. 通過 activiti-admin 程序連接到 activiti-app 查看流程的歷史

進入 activiti-app 系統,為創建用戶

這里簡單介紹三個菜單的主要功能:

  • Kickstart App:定義應用程序,設計流程,建立程序和流程之間的關系
  • Task App:管理示例程序的任務,例如:我的待辦,發起流程等等
  • Identity management:管理用戶、用戶組等信息

在 Identity management -> Users 菜單創建兩個用戶,用于模擬工作流:

在 Kickstart App -> Processes 創建簡單的請假流程

值得注意的是需要為用戶任務分配流程變量,我們這里簡單起見直接綁定用戶,如圖:

最后我們在 Kickstart App -> Apps 創建一個應用程序,并且綁定剛才設計的請假流程,如圖:圖片

切記要發布流程,這樣我們切換普通員工 jack 身份進入系統的時候,就能看到發布應用程序,并且可以發起請假申請了,如圖:

Show New App

今天身體有點不舒服,進入 HR App 發起請假申請,如圖:

當我的請假申請提交的時候,任務就會自動發到經理那邊,我們切換經理賬號看看:

當經理點擊完成后,流程走完,任務就自動結束了。

那么如果想要查看流程歷史,就要借助 activiti-admin 這個演示程序了:

  1. 打開鏈接:http://localhost:8080/activiti-admin/ 進入首頁
  2. 輸入默認賬號 admin/admin 就可以
  3. 首次進入要配置 activiti-app 的信息

如圖:

activiti-app Config

這里我們配置過就可以直接打開 Instance,就可以看到所有執行過的流程歷史,點擊流程實例就可以看到詳細的歷史信息,如圖:

總結

本篇主要介紹:

  • 工作流概念和發展
  • BPMN 和 Activiti 的誕生和發展
  • Activiti 官方示例程序的展示
  • Activiti 配置功能展示

以上功能只是流程引擎的九牛一毛,希望通過以上示例程序可以更好的幫助大家建立信心,從而更好面對后面的進階知識。更好的掌握 Activiti 和 BPMN 2.0 的世界。

 

責任編輯:武曉燕 來源: 小二十七
相關推薦

2024-07-18 08:38:31

2021-10-14 11:34:05

技術工作流引擎

2012-07-23 10:36:46

工作流

2009-07-31 17:50:27

ASP.NET工作流

2010-01-08 09:26:29

jBPM 4.3Java工作流BPMN 2.0

2013-09-29 17:13:59

PowerShell工作流

2023-12-06 09:10:28

JWT微服務

2022-02-21 10:50:28

SvnGitHub分支

2009-01-09 23:06:41

服務器SCSI硬盤PC

2020-04-07 16:12:56

Go編程語言開發

2022-05-07 07:35:44

工具讀寫鎖Java

2024-04-22 15:31:02

物聯網

2024-07-02 13:27:38

2021-12-13 01:40:29

ElasticSear倒排索引

2021-05-11 06:57:15

HBaseBATJ公司

2024-01-02 17:28:12

芯片CPUAI計算

2022-10-26 08:00:43

Activiti工作流BPM

2015-07-01 10:25:07

Docker開源項目容器

2013-02-28 09:42:25

DIND 10C++Python

2022-07-06 09:29:40

JMH性能測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品成人 | 欧美日韩综合 | 亚洲欧美成人 | 欧美一区二区三区四区视频 | 天天干天天想 | 粉嫩av在线 | 午夜视频网站 | 亚洲精品日韩在线 | 成人国产精品色哟哟 | 久久久久久久久久久久亚洲 | 超碰97免费| 午夜成人在线视频 | 欧美中文字幕一区二区 | 四虎最新视频 | 久久久xx| 久久精品一二三影院 | 18av在线播放 | 欧美日韩国产不卡 | 色婷婷精品久久二区二区蜜臂av | 成年人在线视频 | 插插宗合网 | jvid精品资源在线观看 | 中文成人无字幕乱码精品 | www.47久久青青 | 亚州精品天堂中文字幕 | 日韩性在线 | 欧美一级二级三级视频 | 日本在线视频一区二区 | 欧美激情免费在线 | 污污的网站在线观看 | 欧美视频三级 | 国产在线精品一区二区三区 | 成人av一区 | 久久精品国产99国产 | 国产成人福利视频在线观看 | 亚洲精品国产第一综合99久久 | 亚洲九九 | 青草久久免费视频 | 精品美女视频在线观看免费软件 | 久草视频在线播放 | 欧美日本一区 |