工作流引擎笔记 20230927

news2024/11/24 7:20:51

现在需要一个管理数据业务流程配置功能。想到了workflow manage system/engine

概念调研

在工作流管理系统中,工作流引擎是核心组件,它负责驱动和执行定义好的工作流程。本文将详细介绍工作流引擎的关键特性、类型、与状态机的差异,以及设计思路。

主要模块

  1. 流程定义模块:该模块主要用于定义业务流程的流程图,包括流程的节点、执行顺序、条件判断等。同时,还需要支持对流程图的版本管理和可视化展示。
  2. 流程实例管理模块:当业务流程定义完成后,需要通过流程实例管理模块来实例化流程并启动流程的执行。该模块还需要支持对流程实例的状态、执行位置等进行查看和管理。
  3. 任务管理模块:工作流引擎中的任务管理模块需要支持任务的创建、分配、执行、完成等功能,同时还需要支持对任务执行情况的监控和管理。
  4. 异常处理模块:在流程执行过程中,难免会出现异常情况,如任务未完成、流程中断等。异常处理模块用于处理这些异常情况,包括异常情况的捕获、处理、记录等。
  5. 统计分析模块:该模块主要用于对流程执行情况进行统计和分析,包括流程执行的时间、成本、效率等指标,以便对业务流程进行优化和改进。

 

WfMC工作流管理联盟为工作流制定了参考模型,其核心就是中间的工作流引擎,工作流引擎提供流程定义工具(接口1)、给使用者提供信息查询(接口2)、调用外部应用(接口3)、整合其他工作流(接口4)和监控管理(接口5)的能力。对于大多数工作流产品而言,重点关注的是接口1和接口2的实现。

 

关键特性

  1. 流程定义:工作流引擎需要提供强大的流程定义语言和工具,允许用户通过图形化界面或编程方式定义复杂的业务流程。
  2. 流程执行:工作流引擎的核心是执行定义好的工作流程。它需要管理和调度任务,按照流程定义中的顺序和条件来执行任务。
  3. 任务管理:工作流引擎需要提供任务管理功能,包括任务的创建、分配、执行和完成等。同时,它还需要监控任务的执行状态和异常情况。
  4. 状态管理:工作流引擎需要管理和维护流程实例的状态。每个流程实例都有一个独一无二的状态标识,表示其在整个流程中的位置和状态。
  5. 异常处理:工作流引擎需要提供异常处理机制,以处理流程执行过程中的各种异常情况,如任务失败、流程中断等。
  6. 统计分析:工作流引擎需要提供数据统计和分析功能,帮助用户了解流程执行的情况,包括执行时间、成本、效率等指标。

 

工作流引擎的类型

  1. 按使用范围分类:

    • 通用工作流引擎:适用于广泛的业务领域,具有较高的灵活性和可配置性。
    • 行业工作流引擎:针对特定行业或领域定制的工作流引擎,具有更强的专业性和针对性。
  2. 按实现技术分类:

    • 基于规则的工作流引擎:基于规则引擎(如Drools、Nlu等)实现,通过规则推理来驱动流程执行。
    • 基于状态机的工作流引擎:基于状态机理论实现,通过状态转换来驱动流程执行。
    • 基于活动图的工作流引擎:基于活动图模型实现,通过节点和边的关系来驱动流程执行。

工作流引擎与状态机的差异

工作流引擎和状态机都用于描述和执行流程,但它们之间存在一些显著差异。

  1. 适用范围:状态机通常用于描述单个对象或组件的状态转换,而工作流引擎用于管理和驱动复杂的工作流程,涉及多个任务和参与者。
  2. 灵活性和扩展性:工作流引擎通常具有更强的灵活性和扩展性,支持多种流程模型和业务逻辑,而状态机往往在特定领域或场景中有更强的适用性。
  3. 任务管理和异常处理:工作流引擎通常提供任务管理和异常处理机制,以便更好地支持流程执行和管理。状态机通常不提供这些功能。

工作流引擎的设计思路

在设计工作流引擎时,可以从以下几个方面进行考虑:

  1. 模型设计:首先明确业务流程模型,包括流程的节点、连接、任务类型、条件判断等。然后,选择合适的设计工具或语言(如流程图、UML等)进行模型设计。
  2. 架构设计:根据模型设计和需求分析,设计出合理的工作流引擎架构。主要包括流程解析器、任务管理器、状态管理器等核心组件。
  3. 核心算法设计:设计出流程解析、任务调度、状态管理等核心算法,确保引擎的正确性和高效性。同时,需要考虑异常处理机制和日志记录以便于问题追踪和调试。
  4. 接口设计:为了与其他系统或组件集成,需要设计明确的工作流引擎接口。包括流程定义接口、流程启动接口、任务查询接口、状态查询接口等。
  5. 数据存储设计:确定数据存储方案,包括流程定义数据、流程实例数据、任务数据、日志数据等的存储结构和存储方式。这涉及数据库选型和表结构设计等。

reference

XPDL - Workflow Management Coalition (wfmc.org)

流之云: 致力于全方位解决企业信息化的难题,依靠多年深耕OA、ERP的开发经验,站在企业的角度思考信息化实现方案。 (gitee.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter系列- 详解 CSV 数据文件设置

一、什么是csv文件 CSV文件:是指"逗号分隔值"(Comma-Separated Values)文件,它是一种简单的文件格式,用于存储表格数据,例如电子表格或数据库,可以用记事本和Excel打开,用…

《从零开始的Java世界》02面向对象(基础)

《从零开始的Java世界》系列主要讲解Javase部分,从最简单的程序设计到面向对象编程,再到异常处理、常用API的使用,最后到注解、反射,涵盖Java基础所需的所有知识点。学习者应该从学会如何使用,到知道其实现原理全方位式…

同为科技(TOWE)太阳能光伏直流电源浪涌保护器的产品应用

太阳能光伏发电是根据光生伏特效应原理,利用太阳电池将太阳光能直接转化为电能。实现方法是通过将太阳光转化为直流电,然后通过逆变器转换为交流电,以供家庭、企业和电网使用。太阳能光伏发电具有许多优点,例如环保、可再生、安全…

查看基站后台信息

查看基站后台信息 电脑配置固定ip: 192.168.1.99: 打开“网络和共享中心”,选择更改适配器设置: 右键“本地连接”,选择属性 基站网线直连电脑网口 Telnet 登录基站 打开dos窗口 windows键R”,输入cmd,点确定&…

TS中class类的基本使用

想要创建对象,必须要先定义类,所谓的类可以理解为对象的模型,程序中可以根据类创建所指定类型的对象。 一、使用class关键字定义类 class 类名 { } // 使用class关键字来定义一个类 class Person{}// 使用new关键字创建一个对象 const per …

新型基础设施:信息技术设施、融合基础设施和创新基础设施

新型基础设施主要包括信息技术设施、融合基础设施和创新基础设施三个方面。 信息基础设施包括哪些呢? 信息基础设施主要指基于新一代信息技术演化生成的基础设施。 1. 以5G、物联网、工业互联网、卫星互联网为代表的通信网络基础设施; 2. 以人工智能、…

大气环境一站式技能提升:SMOKE-CMAQ实践技术

查看原文>>>从小白到精通一站式技能提升:SMOKE-CMAQ实践技术 大气污染物排放是空气污染的源头,气象因素是影响污染程度的重要因素,因此空气质量模式要求气象资料和污染物排放清单作为输入,其中由于大气污染源复杂性、数…

Android ConstraintLayout app:layout_constraintHorizontal_weight

Android ConstraintLayout app:layout_constraintHorizontal_weight <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:…

中秋夜我读《乡村振兴战略下传统村落文化旅游设计》许少辉八月新书——地球红薯地中秋圆辉少许

中秋夜我读《乡村振兴战略下传统村落文化旅游设计》许少辉八月新书——地球红薯地中秋圆辉少许 中秋夜我读《乡村振兴战略下传统村落文化旅游设计》许少辉八月新书——地球红薯地中秋圆辉少许

视频剪辑中生成花字特效的代码案例详述

本文为阿里云智能媒体服务IMS「云端智能剪辑」实践指南第四期&#xff0c;通过运用官方提供的花字模版或自定义设计花字&#xff0c;完成丰富、精美的花字特效视频剪辑。 昱尘&#xff5c;作者 在视频后期剪辑中&#xff0c;“花字”是一种特别的存在。 通过使用适合视频的花…

北斗卫星导航系统:引领现代林业发展的先锋

北斗卫星导航系统&#xff1a;引领现代林业发展的先锋 随着人类社会的发展&#xff0c;林业作为生态环境保护和经济发展的重要组成部分&#xff0c;也在不断向前发展。为了更好地管理和保护森林资源&#xff0c;我们必须寻求一种新的方式来提高林业管理的效率。而北斗技术的应用…

vscode左键无法跳转到定义的文件

之前用vscode的时候&#xff0c;明明是可以ctrl键鼠标左键跳转到定义文件的&#xff0c;突然之间就不行了&#xff0c;鼠标移到引入上根本都没有下划线&#xff0c;无法跳转 解决方法&#xff1a; 项目的根目录新建 jsconfig.json 文件&#xff0c;代码如下 {"compiler…

Multisim14.0仿真(二十一)微分单稳态触发器

一、仿真原理图&#xff1a; 二、仿真效果图&#xff1a;

数据结构与算法基础-(3)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

linux下离线安装telnet

安装过程概要&#xff1a; &#xff08;一&#xff09;互联网端下载rpm包&#xff1b; &#xff08;二&#xff09;上传到服务器root目录下&#xff1b; &#xff08;三&#xff09;安装telnet服务和测试&#xff1a; 详细内容&#xff1a; &#xff08;一&#xff09;互联…

大家想要的Windows 11 22H2 KB5030310来了

终于&#xff0c;微软于2023/9/26推出了 Windows 11 22H2 可选更新 KB5030310(OS 内部版本 22621.2361)&#xff0c;这个版本给我们带来了Windows中的 Copilot、现代化的文件资源管理器、语音访问的新文本创作体验、讲述人中的新自然语音、包括大家心心念念的任务栏永不合并、默…

rsync+inotify实时同步数据

一、相关简介 1、rsync&#xff08;remote synchronize&#xff09; rsync是 Liunx/Unix 下的一个远程数据同步工具&#xff0c;它可通过 LAN/WAN 快速同步多台主机间的文件和目录。   Linux 之间同步文件一般有两种方式&#xff0c;分别是 rsync 与 scp &#xff0c;scp 相…

小红书水下笔记是什么意思,内容收录原理是什么

纵观小红书平台&#xff0c;笔记的收录率与曝光率直接影响着品牌的传播结果。而最近&#xff0c;平台对于水下笔记的严查和打击&#xff0c;日益凸显。如何在利用水下笔记传播时&#xff0c;尽可能的提高收录率?今天来分享下小红书水下笔记是什么意思&#xff0c;内容收录原理…

亚马逊评论为什么重要?亚马逊Review操作技巧有哪些?

我们为什么要做review 1. 提高页面权重 一般页面有三个部分构成标题&#xff0c;关键词&#xff0c;描述review 可以很好地充当一个描述的角色&#xff0c;为页面提升权重我们会发现有些评论全部是视频&#xff0c;但是却可以推他的关键词到他的首页&#xff0c;因为视频带来的…

Linux 常见问题

1. 使用 sudo 命令时&#xff0c;提示 is not in the sudoers file. 是由于对应用户没有添加到 sudoers 文件中&#xff0c;可以在该文件中指定用户权限。运行以下命令即可打开该文件&#xff1a; visudo 添加上对应用户的权限 Ctrl x 退出保存即可。 2. Debian 新建的普通用…