開源、強大的工作流引擎:camunda入門介紹

2019年10月06日07:50:08 科技 1358

原創不易,請多多支持!對Java技術感興趣的童鞋請關注我,後續技術分享更精彩。

簡介

Camunda is a Java-based framework supporting BPMN for workflow and process automation, CMMN for Case Management and DMN for Business Decision Management.

重要概念

  • BPMN - Business Process Model and Notation (BPMN) is a standard for Workflow and Process Automation. Camunda supports the 2.0 version of BPMN.
  • https://docs.camunda.org/get-started/bpmn20/
  • CMMN - Case Management Model and Notation (CMMN) is a standard for Case Management. Camunda supports the 1.1 version of CMMN.
  • https://docs.camunda.org/get-started/cmmn11/
  • DMN - Decision Model and Notation (DMN) is a standard for Business Decision Management. Camunda supports the 1.1 version of DMN.
  • https://docs.camunda.org/get-started/dmn11/

工作流對比

開源、強大的工作流引擎:camunda入門介紹 - 天天要聞

關鍵人物介紹

Tom Baeyens - 創建了jbpm。離開JBoss後,jBPM的下一個版本jBPM5完全放棄了jBPM4的基礎代碼,基於Drools Flow重頭來過,目前官網已經推出了jBPM6的beta版本;Tom Baeyens加入Alfresco後很快推出了新的基於jBPM4的開源工作流系統Activiti。2012年末,Alfresco的Activity BPM 小組正經歷一系列的轉變:Tom Baeyens將不再領導Activity工程,決定離開Alfresco。camunda是Activity最大的貢獻者之一(除Alfresco以外),同時也是它一個主要的執行諮詢合作夥伴。camunda表示Activity可能太拘束於Alfresco對以文檔為中心的工作流的需求,而忽視了Activity起步時的更為普遍的BPM平台,故而從Activiti分支建立了camunda BPM項目。

框架總覽

開源、強大的工作流引擎:camunda入門介紹 - 天天要聞

流程引擎架構

開源、強大的工作流引擎:camunda入門介紹 - 天天要聞

框架示例

Camunda Tomcat 集成容器下載:

  • https://camunda.org/download/

解壓tomcat,切換到目錄server\apache-tomcat-8.0.24\webapps,包含以下子目錄:

•Camunda -- 管理功能模塊,包含admin、cockpit、tasklist

•camunda-invoice – 發票審批demo

•engine-rest – 工作流程引擎Rest API模塊

•Examples – 其他demo例子

資料庫創建:

切換目錄sql\create\選擇對應sql腳本執行

開源、強大的工作流引擎:camunda入門介紹 - 天天要聞

tomcat配置修改:

切換到server\apache-tomcat-8.0.24\conf\目錄

bpm-platform.xml

camunda自有配置維護文件。

可根據具體應用場景修改以下全局配置屬性

<properties>

<property name="history">full</property>

<property name="databaseSchemaUpdate">true</property>

<property name="authorizationEnabled">true</property>

<property name="jobExecutorActivate">true</property>

<property name="jobExecutorDeploymentAware">true</property>

</properties>

tomcat配置修改:

切換到server\apache-tomcat-8.0.24\conf\目錄

server.xml

tomcat容器管理配置維護文件。

<Resource name="jdbc/ProcessEngine"

auth="Container"

type="javax.sql.DataSource"

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

uniqueResourceName="process-engine"

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@127.0.0.1:1521:camunda"

defaultTransactionIsolation="READ_COMMITTED"

username="camunda"

password="123456"

maxActive="20"

minIdle="5"

removeAbandoned="true"

removeAbandonedTimeout="60"

testOnBorrow="true"

validationQuery="select count(1) from dual"

logAbandoned="true"/>

應用集成

添加依賴包

compile 'org.camunda.bpm:camunda-engine:7.7.0'

compile 'org.camunda.bpm:camunda-engine-spring:7.7.0'

添加spring bean

<bean id="camundaTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="processEngineConfiguration" class="org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration">
<property name="processEngineName" value="engine" />
<property name="historyLevel" value="HISTORY_LEVEL_FULL"/>
<property name="jobExecutorDeploymentAware" value="true"/>
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="camundaTransactionManager" />
<property name="databaseSchemaUpdate" value="true" />
<property name="jobExecutorActivate" value="true" />
<property name="deploymentResources" value="classpath:*.bpmn" />
</bean>
<bean id="processEngine" class="org.camunda.bpm.engine.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
<bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />
<bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />
<bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />
<bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />

modeler流程文件

將modeler設計流程模板放到應用工程resources目錄或者子目錄下。

用戶集成方式

Camunda自有user體系

優:無需改動

缺:靈活性差,運維成本高

使用ldap用戶集成

優:可和支持ldap功能對接

缺:依賴ldap功能限制

通過插件擴展用戶體系

優:通過擴展能實現定製化需求

缺:對camunda熟悉,開發成本高

只使用workflow節點流轉功能

優:應用靈活,可滿足不同業務需求

缺:camunda部分豐富功能無法使用,可能重新開發框架存在組件

Job Executor

文檔地址:https://docs.camunda.org/manual/7.7/user-guide/process-engine/the-job-executor/

Job 激活配置:<property name="jobExecutorActivate" value="true" />

job 工作架構:

開源、強大的工作流引擎:camunda入門介紹 - 天天要聞

同構集群部署:

開源、強大的工作流引擎:camunda入門介紹 - 天天要聞

異構集群部署:

支持異構集群部署,部署node設置jobExecutorDeploymentAware=true

<property name="jobExecutorDeploymentAware">true</property>

開源、強大的工作流引擎:camunda入門介紹 - 天天要聞

附錄

  • engine-rest api
  • https://docs.camunda.org/manual/7.7/reference/rest/
  • Web modeler
  • http://bpmn.io/toolkit/bpmn-js/walkthrough/
  • camunda get-started
  • https://docs.camunda.org/get-started/
  • Camunda Guid
  • https://docs.camunda.org/manual/7.7/introduction/
  • LDAP Identity Service
  • https://docs.camunda.org/manual/7.7/user-guide/process-engine/identity-service/

科技分類資訊推薦

vivo X Fold5開啟預售!三防長續航輕辦公,雙機黨效率神器 - 天天要聞

vivo X Fold5開啟預售!三防長續航輕辦公,雙機黨效率神器

在摺疊屏的演進路徑上,vivo始終處於行業領先。全新的vivo X Fold5,作為vivo史上最強摺疊旗艦,不僅兼顧輕薄設計與性能配置,更在辦公協同、生態互通等方面帶來前所未有的體驗。對注重生產力的用戶而言,它不只是手機,更是口袋裡的輕辦
馬斯克:特斯拉 Optimus V3 人形機器人將集成 Grok 語音助手 - 天天要聞

馬斯克:特斯拉 Optimus V3 人形機器人將集成 Grok 語音助手

IT之家 6 月 26 日消息,特斯拉 CEO 馬斯克昨日於 X 平台發文,表示 Optimus V3 人形機器人將整合 Grok 語音助手,利用 AI 大模型進行語音交互。馬斯克首先表示,Optimus V3 人形機器人將會變得「」(該表情符號有對美食讚賞的意味),同時還稱讚了特斯拉 Optimus 團隊。後續,有網友評論道「Optimus 會運行 Gro
「禁帶無3C標及被召回充電寶乘機」新規出台,天山機場上百個不合規充電寶被攔截 - 天天要聞

「禁帶無3C標及被召回充電寶乘機」新規出台,天山機場上百個不合規充電寶被攔截

近日,羅馬仕三個型號超49.1萬個、安克七個型號超71萬個充電寶被召回一事,引發關注。同一型號的充電寶中,符合特定批次的才需召回,但多地出現「快遞拒收召回產品、飛機拒載非召回產品」的現象。6月26日上午,有網友發帖稱,在烏魯木齊天山國際機場,沒有國家3C認證的充電寶無法帶上飛機。截至發稿前,26日凌晨、上午在天...
南美摩配領軍者組團來訪,愛騎仕EJEAS開啟拉美市場新征程 - 天天要聞

南美摩配領軍者組團來訪,愛騎仕EJEAS開啟拉美市場新征程

近日,愛騎仕EJEAS迎來了一群遠道而來的尊貴客人——哥斯大黎加、烏拉圭、厄瓜多等拉丁美洲國家的摩配行業領軍企業代表。這些客戶不僅是南美洲摩配市場的領軍者,更是全球知名頭盔品牌LS2的合作夥伴。他們的到訪,不僅是對愛騎仕EJEAS產品實力
京東回應「外賣試點騎手幫扔垃圾」:自願參加,平台每單補貼0.5元,用戶可打賞 - 天天要聞

京東回應「外賣試點騎手幫扔垃圾」:自願參加,平台每單補貼0.5元,用戶可打賞

近日,有網傳消息稱,京東外賣試點騎手幫扔垃圾,引發關注。對此,京東一名工作人員告訴九派新聞,全職騎手「幫扔垃圾」當前僅停留在方案和小範圍測試階段,並未正式上線,平台將根據反饋對該服務進行評估和優化。據網傳截圖,在外賣群中,有人發布信息稱,從6月19日起,在北京、宿遷首批試點外賣員幫用戶扔垃圾,後續又加...
即將實施!節卡機器人主導制定新國家標準 - 天天要聞

即將實施!節卡機器人主導制定新國家標準

近期,由節卡機器人作為牽頭起草單位,主導制定的國家標準GB/T 45579-2025《機器人智能化視覺評價方法及等級劃分》正式獲批發布。該國標填補了全球範圍內機器人智能化標準領域的空白,為智能機器人質量提升和建設提供了有力指導,將推動中國機器人產業從「功能實現」向「智能分級」躍遷。 國家標準是我國標準體系中最高層級...
民航局出台充電寶乘機新規:多地機場已開始對充電寶進行安全檢查,國際航班暫無限制 - 天天要聞

民航局出台充電寶乘機新規:多地機場已開始對充電寶進行安全檢查,國際航班暫無限制

6月26日,中國民航局發布緊急通知,自6月28日起禁止旅客攜帶沒有3C標識、3C標識不清晰、被召回型號或批次的充電寶乘坐境內航班。 民航局發布充電寶攜帶緊急通知。圖/中國民用航空局官網截圖 該通知發布後,有網友發帖稱,已經有機場開始對充電寶進行嚴格檢查,沒有3C標識的充電寶會被機場直接扣留,無法通過安檢帶上飛機。...
食光築夢 工創未來 - 天天要聞

食光築夢 工創未來

編者按:智能時代,建造何為?在數字化浪潮席捲全球的今天,建築業正經歷從「鋼筋水泥」到「數字孿生」的深刻變革。武漢輕工大學土木工程與建築學院應勢而為,開設智能建造專業,以「智」為擎、以「建」為基,培養引領行業未來的複合型人才。
中國電信雲總機(S版)定製招生通話「破局」方案,「絲滑」應對海量諮詢! - 天天要聞

中國電信雲總機(S版)定製招生通話「破局」方案,「絲滑」應對海量諮詢!

招生季的電話鈴聲此起彼伏,熱線被打爆、諮詢如潮湧——家長焦急詢問學區劃分、入學政策;考生急切查詢分數線、專業詳情;中小學忙於新生登記、政策解讀;考試中心更是被報名諮詢、考場安排等電話淹沒……傳統人工接聽模式捉襟見肘,效率欠佳、錯漏頻發、體驗打折,不僅消耗寶貴人力,更可能錯失優質生源。 如何讓每一次來電都成為...