全面解析BPMN、CMMN、DMN与XML

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

🎏:你只管努力,剩下的交给时间

🏠 :小破站

全面解析BPMN、CMMN、DMN与XML

    • 前言
    • BPMN(业务流程模型与标记法)
      • 定义与用途
        • BPMN的基本概念
        • BPMN的用途
      • 关键元素
        • 核心元素
        • BPMN图示例
    • CMMN(案例管理模型与标记法)
      • 定义与用途
        • CMMN的基本概念
        • CMMN的用途
      • 关键元素
        • 核心元素
        • CMMN图示例
    • DMN(决策模型与标记法)
      • 定义与用途
        • DMN的基本概念
        • DMN的用途
      • 关键元素
        • 核心元素
        • DMN图示例
    • XML(可扩展标记语言)
      • 定义与用途
        • XML的基本概念
        • XML的用途
      • BPMN、CMMN、DMN的XML表示
        • BPMN的XML表示
        • CMMN的XML表示
        • DMN的XML表示
    • 适用场景
      • BPMN(业务流程模型与标记法)
        • 使用场景
      • CMMN(案例管理模型与标记法)
        • 使用场景
      • DMN(决策模型与标记法)
        • 使用场景
      • XML使用场景
        • XML表示

前言

在现代企业流程管理中,Camunda以其强大的功能和灵活的配置赢得了广泛的关注。作为一名开发者或业务分析师,你是否曾经为理解BPMN、CMMN和DMN这些复杂的概念而感到困惑?本文将带你一探究竟,揭示这些关键概念在Camunda中的应用,并通过实例和详解,帮助你轻松上手。

BPMN(业务流程模型与标记法)

定义与用途

BPMN的基本概念

业务流程模型与标记法(Business Process Model and Notation,简称BPMN)是一种图形化表示法,用于描述业务流程的各个步骤和流程之间的关系。BPMN的目的是为业务分析师、技术开发者和管理人员提供一个通用的语言,帮助他们共同理解和改进业务流程。

BPMN的用途

BPMN主要用于:

  1. 业务流程建模:通过图形化表示法清晰地描述和设计业务流程。
  2. 沟通和协作:提供一个标准化的表示方法,方便不同部门和角色之间的沟通。
  3. 流程分析和改进:帮助识别业务流程中的瓶颈和优化机会。
  4. 自动化执行:作为流程自动化平台(如Camunda)的输入,使业务流程可以被自动化执行和管理。

关键元素

核心元素

BPMN模型由多种图形元素组成,这些元素可以表示不同类型的任务、事件、网关等。以下是BPMN中的核心元素:

  1. 任务(Task):表示流程中的一个原子工作单元。任务可以细分为多个子类型,如用户任务、服务任务、脚本任务等。

    • 用户任务(User Task):需要人工执行的任务。
    • 服务任务(Service Task):通过自动化服务执行的任务。
  2. 事件(Event):表示流程中的某个事件,事件可以是开始事件、中间事件或结束事件。

    • 开始事件(Start Event):表示流程的开始。
    • 中间事件(Intermediate Event):表示流程中的中间状态或中断点。
    • 结束事件(End Event):表示流程的结束。
  3. 网关(Gateway):用于控制流程路径的分支和汇聚。常见的网关类型包括并行网关、排他网关和事件网关。

    • 并行网关(Parallel Gateway):用于并行分支和汇聚。
    • 排他网关(Exclusive Gateway):用于条件分支,只有一个路径会被选择。
    • 事件网关(Event-based Gateway):基于事件的分支选择。
  4. 流程线(Sequence Flow):表示流程元素之间的连接和执行顺序。

BPMN图示例
    (开始事件) --> [任务1] --> (并行网关) --> [任务2] --> (结束事件)
                                    |--> [任务3] -->|

CMMN(案例管理模型与标记法)

定义与用途

CMMN的基本概念

案例管理模型与标记法(Case Management Model and Notation,简称CMMN)是一种图形化表示法,用于建模和管理复杂、动态和不可预见的业务流程。与BPMN侧重于定义结构化、可预测的流程不同,CMMN专注于灵活和非结构化的工作流程,通常这些流程需要根据具体情况动态调整。

CMMN的用途

CMMN主要用于以下应用场景:

  1. 案例管理:处理需要灵活和自适应的业务流程,如客户服务、保险理赔、法律事务等。
  2. 事件驱动的流程:管理基于事件触发的任务和活动。
  3. 知识密集型流程:处理需要专家判断和知识密集的流程,如医疗诊断、研发项目等。
  4. 长期流程:管理持续时间较长且需要多次人为决策和干预的流程。

关键元素

核心元素

CMMN模型由多种图形元素组成,用于表示不同类型的任务、事件、阶段等。以下是CMMN中的核心元素:

  1. 任务(Task):表示需要完成的工作,可以是手动任务、用户任务、阶段任务等。

    • 用户任务(Human Task):需要人工执行的任务。
    • 过程任务(Process Task):嵌入BPMN流程的任务。
    • 案例任务(Case Task):嵌入另一个CMMN案例的任务。
  2. 事件(Event):表示案例中的某个事件,可以是状态变更事件或外部触发事件。

    • 计划项启动事件(Plan Item Start Event):当计划项启动时触发。
    • 阶段完成事件(Stage Complete Event):当阶段完成时触发。
  3. 阶段(Stage):表示一个包含多个任务和事件的分组,可以嵌套其他阶段或任务。

    • 阶段(Stage):一个包含多个任务、事件和其他元素的分组。
    • 里程碑(Milestone):表示达到某个重要进展的点。
  4. 计划项(Plan Item):表示任务、阶段或里程碑等可以执行的元素。

  5. 案例文件(Case File):表示与案例相关的文档和数据。

  6. 声明(Sentry):用于控制任务、阶段等元素的执行条件,可以是进入或退出条件。

CMMN图示例
    [案例计划]
    ├── (阶段1)
    │   ├── [任务1]
    │   ├── [任务2]
    │   └── [里程碑1]
    ├── (阶段2)
    │   ├── [任务3]
    │   ├── [任务4]
    │   └── [里程碑2]
    └── [结束事件]

DMN(决策模型与标记法)

定义与用途

DMN的基本概念

决策模型与标记法(Decision Model and Notation,简称DMN)是一种标准化的图形表示法,用于描述和建模业务决策。DMN的目标是使业务分析师和技术开发者能够协作定义和管理业务规则和决策逻辑,确保决策过程透明、可理解和可执行。

DMN的用途

DMN主要用于:

  1. 决策建模:帮助企业定义和管理复杂的业务规则和决策逻辑。
  2. 自动化决策:将决策模型集成到业务流程中,实现自动化决策。
  3. 业务规则管理:提供一种标准化的方法来记录和维护业务规则。
  4. 分析和优化:通过对决策模型的分析,优化业务决策,提高效率和一致性。

关键元素

核心元素

DMN模型由多种图形元素组成,用于表示决策表、决策节点、输入数据等。以下是DMN中的核心元素:

  1. 决策(Decision):表示一个业务决策节点,定义了决策逻辑。

    • 决策节点(Decision Node):用来表示一个具体的决策过程,包含决策逻辑。
  2. 输入数据(Input Data):表示决策所需的输入信息,可以是外部数据、业务参数等。

  3. 业务知识模型(Business Knowledge Model):表示决策过程中使用的业务知识或规则,通常是复用的逻辑单元。

  4. 知识源(Knowledge Source):表示提供决策依据的信息源,可能是政策、法规、指南等。

  5. 决策表(Decision Table):一种常见的决策逻辑表示方法,通过表格定义不同条件下的决策输出。

    • 规则(Rule):决策表中的每一行表示一个规则,包括条件和对应的行动。
    • 输入条目(Input Entry):决策表中用于判断的条件。
    • 输出条目(Output Entry):决策表中对应条件满足时的输出。
DMN图示例
    +------------------+          +---------------------+
    | 输入数据         |          | 输入数据            |
    | Customer Age     |          | Credit Score        |
    +--------+---------+          +---------+-----------+
             |                             |
             v                             v
    +--------+-------------------------------+---------+
    | 决策表                                            |
    | +------------+------------+------------+--------+ |
    | | Age < 18   | Age 18-25  | Age > 25   | Result | |
    | +------------+------------+------------+--------+ |
    | | ...        | ...        | ...        | ...    | |
    +---------------------------------------------------+
                         |
                         v
              +----------+---------+
              | 决策输出           |
              | Credit Eligibility |
              +--------------------+

XML(可扩展标记语言)

定义与用途

XML的基本概念

可扩展标记语言(Extensible Markup Language,简称XML)是一种标记语言,用于定义和描述数据。XML具有可扩展性和自描述性,能够方便地表示复杂的层次化数据结构。它主要用于数据交换、数据存储以及配置文件等场景。

XML的用途
  1. 数据表示:用于结构化数据的表示,能够以文本形式存储和传输复杂的数据结构。
  2. 数据传输:广泛用于不同系统之间的数据交换,特别是在Web服务和API中。
  3. 配置文件:用于定义应用程序的配置和元数据,例如配置文件、文档格式定义等。
  4. 数据存储:用于存储层次化的数据,如日志文件、文档存储等。

BPMN、CMMN、DMN的XML表示

BPMN的XML表示

BPMN模型以XML格式表示,使用<definitions><process>等元素定义业务流程。以下是一个简单的BPMN XML示例:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
                  id="Definitions_1"
                  targetNamespace="http://bpmn.io/schema/bpmn">
  <bpmn:process id="Process_1" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1"/>
    <bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_1" targetRef="Task_1"/>
    <bpmn:userTask id="Task_1" name="用户任务"/>
    <bpmn:sequenceFlow id="Flow_2" sourceRef="Task_1" targetRef="EndEvent_1"/>
    <bpmn:endEvent id="EndEvent_1"/>
  </bpmn:process>
</bpmn:definitions>
CMMN的XML表示

CMMN模型同样以XML格式表示,使用<definitions><case>等元素定义案例模型。以下是一个简单的CMMN XML示例:

<?xml version="1.0" encoding="UTF-8"?>
<cmmn:definitions xmlns:cmmn="http://www.omg.org/spec/CMMN/20151109/MODEL"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.omg.org/spec/CMMN/20151109/MODEL CMMN11.xsd"
                  id="Definitions_1"
                  targetNamespace="http://cmmn.io/schema/cmmn">
  <cmmn:case id="Case_1">
    <cmmn:casePlanModel id="CasePlanModel_1" name="Case Plan Model">
      <cmmn:planItem id="PlanItem_1" definitionRef="HumanTask_1"/>
      <cmmn:humanTask id="HumanTask_1" name="用户任务"/>
      <cmmn:planItem id="PlanItem_2" definitionRef="Stage_1"/>
      <cmmn:stage id="Stage_1" name="阶段">
        <cmmn:planItem id="PlanItem_3" definitionRef="HumanTask_2"/>
        <cmmn:humanTask id="HumanTask_2" name="另一个用户任务"/>
      </cmmn:stage>
    </cmmn:casePlanModel>
  </cmmn:case>
</cmmn:definitions>
DMN的XML表示

DMN模型使用<definitions><decision>等元素定义决策模型。以下是一个简单的DMN XML示例:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/DMN/20151101/dmn.xsd"
             xmlns:dmndi="http://www.omg.org/spec/DMN/20151101/DMNDI/"
             xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
             xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
             id="definitions_1"
             name="definitions"
             namespace="http://camunda.org/schema/1.0/dmn">
  <decision id="decision_1" name="Customer Eligibility">
    <decisionTable id="decisionTable_1">
      <input id="input_1" label="Customer Age">
        <inputExpression id="inputExpression_1" typeRef="integer">
          <text>age</text>
        </inputExpression>
      </input>
      <input id="input_2" label="Credit Score">
        <inputExpression id="inputExpression_2" typeRef="integer">
          <text>creditScore</text>
        </inputExpression>
      </input>
      <output id="output_1" label="Eligibility" typeRef="string"/>
      <rule id="rule_1">
        <inputEntry id="inputEntry_1">
          <text>&lt;18</text>
        </inputEntry>
        <inputEntry id="inputEntry_2">
          <text>&lt;600</text>
        </inputEntry>
        <outputEntry id="outputEntry_1">
          <text>Not Eligible</text>
        </outputEntry>
      </rule>
      <rule id="rule_2">
        <inputEntry id="inputEntry_3">
          <text>&gt;=18</text>
        </inputEntry>
        <inputEntry id="inputEntry_4">
          <text>&gt;=600</text>
        </inputEntry>
        <outputEntry id="outputEntry_2">
          <text>Eligible</text>
        </outputEntry>
      </rule>
    </decisionTable>
  </decision>
</definitions>

适用场景

BPMN(业务流程模型与标记法)

使用场景
  1. 业务流程自动化:通过BPMN模型定义企业内部的工作流,实现任务的自动化执行。例如,订单处理、审批流程等。
  2. 业务流程优化:通过建模现有流程,分析和识别流程中的瓶颈和低效环节,从而优化和提升业务效率。
  3. 跨部门协作:使用可视化的流程图,明确不同部门的职责和任务,促进跨部门的协作和沟通。
  4. 合规性管理:确保业务流程符合行业法规和公司内部的政策,通过BPMN模型验证和记录流程的合规性。

CMMN(案例管理模型与标记法)

使用场景
  1. 案例管理:处理个性化和灵活的业务案例,如客户服务请求、医疗病例等,允许根据实际情况动态调整任务和流程。
  2. 知识密集型工作:支持需要大量决策和专业知识的工作流程,例如法律案件、保险理赔等,帮助专家高效管理复杂任务。
  3. 动态任务管理:处理非结构化和动态变化的任务和事件,允许在执行过程中调整任务计划和优先级。

DMN(决策模型与标记法)

使用场景
  1. 业务规则管理:集中管理企业的业务规则,如信用评分、定价策略等,通过DMN模型定义和维护这些规则。
  2. 决策自动化:将决策逻辑嵌入业务流程中,实现自动化决策,减少人为干预,提高决策速度和一致性。
  3. 规则透明化:使业务规则和决策逻辑透明化,便于理解、沟通和维护,确保业务规则的一致性和可追溯性。
  4. 规则模拟和优化:通过模拟不同输入条件和情景,评估和优化决策规则,提高决策的准确性和效率。

XML使用场景

XML表示

XML(可扩展标记语言)在BPMN、CMMN和DMN中的使用场景主要包括:

  1. 数据表示:XML格式用于定义BPMN、CMMN和DMN模型的结构和内容。
  2. 数据传输:通过XML文件在不同系统之间传输模型数据,实现模型的共享和集成。
  3. 配置管理:使用XML文件管理和配置BPMN、CMMN和DMN模型,便于版本控制和模型的部署。
  4. 系统集成:将XML格式的模型文件集成到业务流程管理系统(如Camunda)中,实现自动化执行和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/789261.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于GWO-CNN-BiLSTM数据回归预测(多输入单输出)-灰狼优化算法优化CNN-BiLSTM

基于GWO-CNN-BiLSTM数据回归预测(多输入单输出)-灰狼优化算法优化CNN-BiLSTM 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序均包含简要注释。 获取方式 https:/…

【Linux】进程7——查看进程

1.为什么进程管理这么重要呢&#xff1f; 这是因为&#xff1a; 首先&#xff0c;我们在操作系统时的各项任务其实都是经过某个PID来完成的&#xff08;包括你的bash环境&#xff09;&#xff0c;因此&#xff0c;能不能执行某项任务&#xff0c;就与该进程的权限有关了。再来…

图片管理不再愁,一文带你玩转图床世界

在数字化时代&#xff0c;图片已经成为我们日常生活中不可或缺的一部分。无论是社交媒体上的自拍分享&#xff0c;还是工作中的文档插图&#xff0c;图片都扮演着重要角色。 然而&#xff0c;你是否曾经遇到过这样的问题&#xff1a;如何在网络上方便地存储、分享和管理这些图…

【鸿蒙学习笔记】使用动画

官方文档&#xff1a;使用动画 目录标题 属性动画&#xff1a;通用属性发生改变时而产生的属性渐变效果animationanimateTo自定义属性动画 AnimatableExtend 转场动画&#xff1a;是页面或组件的切换动画 , 显示/隐藏 切换时的动画出现/消失转场&#xff1a;实现一个组件出现或…

详解[USACO07OPEN] Cheapest Palindrome G(洛谷PP2890)(区间DP经典题)

题目 思路 考虑区间DP。 设dp[i][j]为从i到j这段区间被修正为回文串的最小花费 c[cc][1]为添加字符cc的花费 c[cc][2]为删去字符cc的花费 s为题目给出的字符串。 用[i 1,j]区间转移&#xff1a;这种转移相当于在[i1,j]区间的左边加入一个字符&#xff0c;让[i,j]变为回文的方…

Linux镜像源设置不再难:一键脚本,新手也能成为优化高手(一键切换镜像源/Docker一键安装脚本)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 更换镜像源 📒📝 一键切换软件源📝 Docker一键安装脚本⚓️ 相关链接 ⚓️📖 介绍 📖 在国内,Linux系统用户经常会遇到下载软件包时速度慢的问题,这通常是因为默认的镜像源并不总是最优选择。对于新手来说,手动设置…

暑假学习计划怎么做 用待办计划软件安排更科学

暑期来临&#xff0c;无论是学生还是老师&#xff0c;做好暑期计划都至关重要。记得去年暑假&#xff0c;我给自己定下了阅读十本书的目标&#xff0c;却因为缺乏明确的计划&#xff0c;最后只草草读完了两本。而今年&#xff0c;我决定尝试一种新的方式——使用待办计划软件来…

每周算法:无向图的双连通分量

题目链接 冗余路径, Redundant Paths G 题目描述 为了从 F F F 个草场中的一个走到另一个&#xff0c;奶牛们有时不得不路过一些她们讨厌的可怕的树。 奶牛们已经厌倦了被迫走某一条路&#xff0c;所以她们想建一些新路&#xff0c;使每一对草场之间都会至少有两条相互分离…

VS安装Qt扩展工具

1-Visual Studio中安装QT插件 **插件下载地址&#xff1a;**http://download.qt.io/development_releases/vsaddin/ 关闭VS,双击下载的QT插件&#xff0c;默认安装即可&#xff1b; &#xff08;1&#xff09;配置Qt的MSVC编译器安装路径 打开Visual Studio&#xff0c;在菜单栏…

ceph存储

1 存储简介 存储的三种方式包括&#xff1a;块存储、文件存储、对象存储1。此外&#xff0c;还有内存存储、硬盘存储和闪存存储2。 内存存储&#xff1a;临时性数据存储方式&#xff0c;存储速度快&#xff0c;容量有限&#xff0c;通常用来存储正在使用的程序和数据。硬盘存…

AI绘画小白必备!Stable Diffusion常用插件合集,好用推荐!(附插件下载)

前言 宝子们&#xff0c;早上好啊~Stable Diffusion 常用插件&#xff0c;月月已经给大家整理好了&#xff0c;自取就好。 拥有这些SD常用插件&#xff0c;让您的图像生成和编辑过程更加强大、直观、多样化。以下插件集成了一系列增强功能&#xff0c;覆盖从自动补全提示词到…

windows10 +VS2019环境下的PCL安装和配置

今天想做点云重建&#xff0c;千篇一律&#xff0c;PCL少不了。一路跑下来觉得PCL的安装和环境配置还挺麻烦的&#xff0c;比OpenCV真的麻烦很多&#xff0c;有点不想写详细安装和配置过程了&#xff0c;偷个懒&#xff0c;就转载一下大佬的文章吧&#xff0c;下面的博主们已经…

计算机SCI期刊,中科院2区,影响力大,认可度高

一、期刊名称 Complex & Intelligent Systems 二、期刊简介 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;5.0 中科院分区&#xff1a;2区 三、期刊征稿范围 Complex & Intelligent Systems旨在提供一个论坛&#xff0c;用于展示…

Redis实战—秒杀优化(Redis消息队列)

回顾 我们回顾一下前文下单的流程&#xff0c;当用户发起请求&#xff0c;此时会请求nginx&#xff0c;nginx会访问到tomcat&#xff0c;而tomcat中的程序&#xff0c;会进行串行操作&#xff0c;分成如下几个步骤。 1、查询优惠卷 2、判断秒杀库存是否足够 …

东旭蓝天被控股股东占用78亿:近七年业绩奇差,或面临退市

《港湾商业观察》施子夫 张楠 在7月5日一口气发了超过30份公告后&#xff0c;终于让投资者对于东旭蓝天2023年和今年一季度经营业绩有了更清晰的观察。 与此同时&#xff0c;东旭蓝天&#xff08;下称&#xff09;也收到了深交所的关注函。种种不利因素之下&#xff0c;上市…

华为机试HJ105记负均正II

华为机试HJ105记负均正II 题目&#xff1a; 想法&#xff1a; 分别记录输入中的正数和负数&#xff0c;根据规则计算平均值即可 count 0 sum 0 sum_count 0 while True:try:number float(input())if number < 0:count 1elif number > 0:sum numbersum_count 1e…

windows下使用编译opencv在qt中使用

记录一下&#xff1a;在windows下qt使用opencv 1、涉及需要下载的软件 CMake 下载地址opecnv下载地址mingw(需要配置环境变量) 这个在下载qt的时候可以直接安装一般在qt的安装路径下的tool里比如我的安装路径 (C:\zz\ProgramFiles\QT5.12\Tools\mingw730_64) 2、在安装好CMake…

二十年大数据到 AI,图灵奖得主眼中的数据库因果循环

最近&#xff0c;MIT 教授 Michael Stonebraker 和 CMU 教授 Andrew Pavlo (Andy) 教授联合发表了一篇数据库论文。Michael Stonebraker 80 高龄&#xff0c;是数据库行业唯一在世的图灵奖得主&#xff0c;Andy 则是业界少壮派里的最大 KOL。 一老一少&#xff0c;当今数据库届…

[js] 对象数组按照某个属性进行分组,

要将给定的对象数组按照 field 属性进行分组 const data [{"name":"a","field":"f"},{"name":"b","field":"ff"},{"name":"v","field":"f"},{&qu…

7.深度学习概述

深度学习概述 1. 线性回归1.1 线性回归一般表达式1.2 线性回归内积表达方式&#xff1a;1.3 多个样本时&#xff0c;线性回归的进一步表达&#xff1a;1.4 线性回归方程的解析1.5 线性回归就是求loss函数的最小值 2. 如何求函数最小值2.1 一个例子2.2 求导法——求最小值2.3 求…