惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
博客园_首页
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
大猫的无限游戏
大猫的无限游戏
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
Jina AI
Jina AI
月光博客
月光博客
小众软件
小众软件
S
SegmentFault 最新的问题
量子位
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
如何设计一个流程引擎
周志军Jarod · 2022-11-03 · via 人人都是产品经理

流程引擎是低代码平台的核心,它可以帮助我们去实现非常灵活的流程设计,极大的助力实现数据流转的的规范化。那么,如何设计一个流程引擎呢?一起来看一下吧。

流程引擎是低代码平台的核心,它可以帮助我们去实现非常灵活的流程设计,极大的助力实现数据流转的的规范化。流程引擎是什么?国内外流程引擎有什么区别?如何设计一个流程引擎?

一、流程引擎

1. 什么是流程引擎

流程引擎,用来驱动业务按照设定的固定流程去流转的东西,在复杂多变的业务情况下,使用既定的流程能够大大降低我们设计业务的成本,并且保证了我们业务执行的准确性。

2. 流程引擎的主要标准

BPMN(Business Process Model And Notation), 业务流程模型和符号,是由BPMI(BusinessProcess Management Initiative)开发的一套标准的业务流程建模符号,使用 BPMN 提供的符号可以创建业务流程。即BPMN是用来建模业务流程的标准规则。

WFMC(Workflow Management Coalition),国际工作流管理联盟。于1993年成立,发布了一系列的工作流定义、软件接口的草案文本,是目前世界上公认的最具权威性的工作流标准制定机构,得到了广泛的支持和应用。

2002 年10月25日,WFMC发布了基于XML的流程定义语言1.0版的最终文本(Workflow Process Definition Interface——XML Process Definition Language 文档编号:WFMC-TC-1025),以及此前发布的工作流应用软件接口规范WFMC-TC-1009, WFMC-TC-1013等系列文件,构成了工作流定义及系统的设计标准。

BPEL(Business Process Execution Language),意为业务过程执行语言,是一种基于XML的,用来描写业务过程的编程语言,被描写的业务过程的每个单一步骤则由Web服务来实现。

2002年IBM、BEA和微软一起开发和引入了BPEL作为描写协调Web服务的语言。这个描写的本身也由Web服务提供,并可以当作Web服务来使用。通过BPEL可以描写一个参加一个Web服务过程的Web服务的接口,比如信息需要按照怎样的顺序被输入,但是BPEL无法用来描写一个业务过程的调谐。

3. 国内外流程引擎的区别

市面上国外的流程引擎主要有osworkflow、jbpm、activiti、flowable、camunda,底层架构设计优秀。国内流程引擎,Java领域有广州天翎、炎黄盈动等、深圳奥哲、上海易正等,在设计理念和功能实现上各局特色,并且非常成熟,比如天翎主打的就是擅长中国式复杂业务流程处理。

国内外流程引擎有什么区别呢?主要有三个方面:

4. 功能应用需求

国外流程引擎功能上不能满足中国特色的流程应用需求,比如:抄送、会签、加签、传阅、跳转、任意流、退回、取回、撤销、一人多部门等需求,这些需求可以通过扩展开发实现,但是开发周期较长,风险较大。

5. 组织模型需求

流程引擎自带简单的组织用户表,比如camunda流程引擎自带了用户表(act_id_user)、用户群组表(act_id_group)、用户群组关联表(act_id_membership)这几张表,功能十分简单,基本上满足不了国内企业级应用需求,需要单独涉及组织机构表,然后跟流程引擎进行集成。比如最常见需求——多组织流程架构支持,集团总部、子公司多级组织架构,国内组织架构涉及到有组织、部门、用户、岗位、职务多个要素,这些要素间有复杂逻辑关系。

6. 国外流程引擎具有局限性

国外流程引擎以嵌入式形式存在,核心考量是简化程序开发,所以经常是作为开发工具IDE的插件形式(现在也做了些调整,提供web方式定义流程,单功能比较弱),比如财务软件中嵌入一个流程,最著名的是Activiti和flowable(同一个人开发)。一些国内低代码平台也是基于Activiti去魔改的,有一定局限性,比如宏天、红迅,所以不可避免受到很多限制。

二、怎样设计流程引擎

流程逻辑执行:

1. 状态机原理

状态机(State Machine),定义事物状态以及这些状态之间转移和动作等行为的数学模型。一般可以分为有限状态机、并发状态机、分层状态机等。

没有流程引擎前的弱版流程引擎,必须要有状态,状态即节点,状态机= 流程 + 状态。

2. Xml转换Object

Xml ,一种数据格式,Object ,对象。做流程图的项目时,新的流程定义为Xml的,需要对Xml与Java Object进行互转。

流程描述(XML)

3. 流程运行状态

流程状态是对于一个对象在流程的不同阶段进行概括性、结果性、引导性的描述。

(流程运行时类图)

  • WFRunner——工作流处理的对外接口,需要用到工作流的调用均通过此对象完成;
  • StateMachine——工作流状态机的实现,是整个工作流实现系统的核心,具体说明参见API文档;
  • ActorRT——当前处理者运行时状态;
  • ActorHIS——历史处理者处理历史纪录;
  • FlowStateRT——流程当前状态,比如:挂起、运行等;
  • NodeRT——当前节点运行时状态;一个Node可以对应多个Actor;
  • RelationHIS——流程路径处理历史纪录;

其他几个类均为实现WorkFlow运行所需要的辅助功能类。

三、流程引擎的效果和应用

流程引擎的应用十分广泛,本文将展示部分常见的流程引擎应用场景。

常见效果展示,包括后台设计、前台运行、流程干预、流程报表统计等。

(流程后台设计1—图形)

(流程后台设计2-源代码)

(流程后台设计3-子流程)

(流程企业域展示——流程干预)

(流程后台设计4-报表设计)

(流程前台运行)

流程引擎也可用于去整合多个应用系统。

1)集成第三方系统

通过RESTFUL API与第三方业务系统集成、业务数据保存在第三方系统,流程数据保存在流程引擎上。

2)流程数据分析

流程引擎可以帮助用户从多维度、多时间、多角度分析流程数据。

本文由 @周志军Jarod 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。