CN114416064A - 基于bpmn2.0的分布式服务编排系统及方法 - Google Patents
基于bpmn2.0的分布式服务编排系统及方法 Download PDFInfo
- Publication number
- CN114416064A CN114416064A CN202111546374.XA CN202111546374A CN114416064A CN 114416064 A CN114416064 A CN 114416064A CN 202111546374 A CN202111546374 A CN 202111546374A CN 114416064 A CN114416064 A CN 114416064A
- Authority
- CN
- China
- Prior art keywords
- client
- flow
- server
- arrangement
- console
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000006870 function Effects 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000011161 development Methods 0.000 claims abstract description 18
- 238000012544 monitoring process Methods 0.000 claims abstract description 13
- 230000002688 persistence Effects 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 58
- 230000014509 gene expression Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000013079 data visualisation Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000002068 genetic effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种基于BPMN2.0的分布式服务编排系统及方法,包括客户端,服务端,编排控制台;编排控制台实现流程建模、流程部署、版本控制、实例查看、人工干预、监控大盘功能;客户端包括编译引擎模块和远程通信模块,业务微服务系统接入客户端;所述服务端可水平扩展,服务端包括解释引擎、执行引擎、告警模块、调度模块、远程通信模块和数据持久层;本发明构建了一套标准化的高性能服务编排解决方案,以解决微服务架构下分布式服务的动态编排的问题。通过流程图使得业务可视化,业务开发人员的开发/协同效率得到大大提升。
Description
技术领域
本发明属于互联网技术领域,具体涉及一种基于BPMN2.0的分布式服务编排系统及方法。
背景技术
在电商业务和微服务场景下,服务依赖关系盘根错杂,一个下单流程可能涉及十多个系统,上百次甚至上千次的调用,业务产品方想要了解实际业务的流向和过程,需要各域开发梳理代码,然后逆向手工绘制时序图,业务需求和代码的映射关系偏差很大,系统变得很难理解,对于新入职的开发同学有着较高的学习成本;同时因为缺乏一个可视化的平台去展示代码中的业务流程,当出现异常时的监控和人工干预都需要开发硬编码去解决,效率低下且覆盖率很低;因此业务方和开发人员都希望借助工作流技术来串联微服务流程,通过可视化的工具来解决以上问题。然而传统的工作流引擎诸如activiti,存在结构设计复杂,功能冗杂,性能低下,维护困难等诸多问题,无法在电商在线业务场景下使用。
发明内容
本发明解决的技术问题:构建了一套标准化的高性能服务编排解决方案,以解决微服务架构下分布式服务的动态编排的问题,通过流程图使得业务可视化,业务开发人员的开发/协同效率得到大大提升。
技术方案:为了解决上述技术问题,本发明采用的技术方案如下:
一种基于BPMN2.0的分布式服务编排系统,包括客户端,服务端,编排控制台;所述编排控制台实现流程建模、流程部署、版本控制、实例查看、人工干预、监控大盘功能;所述客户端包括编译引擎模块和远程通信模块,业务微服务系统接入客户端;所述服务端可水平扩展,所述服务端包括解释引擎、执行引擎、告警模块、调度模块、远程通信模块和数据持久层;所述远程通信模块实现服务器和客户端之间的信息传输,主要包括注册、命令下发、推送消息和、订阅消息、以及订阅或通知。
作为优选,编排控制台利用基于bpmn.js的流程建模器、查看器实现流程建模和流程实例查看;监控大盘基于OLAP数据库实现,按照小时级增量抽取为分区宽表,实现T+1小时的离线计算,并基于QuickBI数据可视化分析平台绘制的交互式仪表大盘。
作为优选,编译引擎基于JavaComplier实现,包括将bpmn.xml解释为java源码的解释器,还包括运行时将java源码编译为class字节码的JavaComplier。
作为优选,远程通信模块包括注册中心、消息队列和基于netty实现的高性能长连接通信协议,实现基于dubbo和ons的高性能远程通信协议、服务发现和负载均衡功能。
作为优选,服务器的解释引擎基于BPMN2.0规范实现,按照解释器的模式构建,通过ExtensionElements元素添加自定义扩展属性,实现解释执行SProcess、StartEvent、SequenceFlow、ServiceTask、ExtensionElements、ExclusiveGateway、ParallelGateway、CallActivity、EndEvent元素的功能。
作为优选,服务器的执行引擎基于QLExpression实现,用于ParallelGateway之后的条件表达式解析执行、以及重试策略、告警策略的解析执行。
作为优选,告警模块通过表达式描述时间间隔列表来达到任意规则的重试和告警策略功能。
作为优选,数据持久层基于分库分表实现的高性能分布式数据OLTP处理,使用share-nothing架构、以业务id和流程id基因法作为联合分库分表键,实现OLTP场景下单条流程的查询和控制需求,在峰值500TPS的情况下,实现查询和作为优选,分布式OLTP数据库、分析型OLAP数据库位于服务端和编排控制台之间,数据持久层连接分布式OLTP数据库,分布式OLTP数据库连接分析型OLAP数据库,分布式OLTP数据库的数据经过抽取、清洗转换之后加载到分析型OLAP数据库,分析型OLAP数据库实现实现BI报表输出至编排控制台。
一种基于BPMN2.0的高性能分布式服务编排引擎方法,包括:
S1:开发和产品人员首先需要登录编排控制台创建流程模型,选择中心化或纯内存模式,然后通过流程建模器绘制流程图;
S2:开发和产品人员绘制好流程图之后,然后将应用接入客户端;在代码中通过注解的方式声明能力或任务,然后启动自己的应用,客户端会自动将声明的能力或任务上报至编排控制台;
S3:中心化模式下,流程模型通过客户端调用服务端的start接口来启动,启动后服务端会生成一个流程实例,流程实例通过解释引擎执行;
S4:纯内存模式下,客户端启动时会调用服务端的http接口拉取纯内存模式的流程模型,流程模型通过客户端的编译引擎编译成java代码执行,当纯内存流程实例执行完毕后,会将实例数据存储在本地缓冲区中,然后定时批量异步发送到消息队列,服务端会通过长轮询拉取这批消息,然后转存到大容量对象存储oss,并将索引数据存储在OLTP数据库。
S5:在数仓技术的支持下,通过每小时将OLTP数据库的增量数据抽取到OLAP数据库,然后做聚合分析处理,通过QuickBI生成报表,并内嵌到控制台,实现小时级延迟的报表监控。
有益效果:与现有技术相比,本发明具有以下优点:
本发明的基于BPMN2.0的分布式服务编排系统及方法,基于BPMN2.0规范打造,具备流程建模、调试、灰度、发布、流程执行、流程实例管控等诸多能力,支持中心化和纯内存两种执行模式,支持节点服务、异步消息、定时器、监控告警,串行并行,主子流程、持久化存储等多种功能。构建了一套标准化的高性能服务编排解决方案,以解决微服务架构下分布式服务的动态编排的问题。通过流程图使得业务可视化,业务开发人员的开发/协同效率得到大大提升。
实现了BPMN2.0规范中最常用的元素,并做了一些适用于供应链领域的扩展,包括重试策略,告警策略,方法参数映射,中心化与纯内存模式,基于大数据的数据大盘等。在实际使用过程中,解决了订单交易、商品营销、库存仓储物流、结算、保险、B2B端、B2C端各域的流程编排需求,在开发中广受好评,并为供应链中台架构、技术产品线沉淀通用域能力打下了丰富的基础。
附图说明
图1是基于BPMN2.0的分布式服务编排系统原理图;
图2为编排控制台-流程报表-数据指标界面图;
图3为编排控制台-流程报表-数据明细界面图;
图4为编排控制台-流程建模界面图;
图5是图4中的流程建模放大图;
图6为编排控制台-任务定义界面图;
图7为编排控制台-使用说明界面图;
图8为编排控制台-能力定义界面图;
图9为编排控制台-流程实例;
图10为图9中的流程实例放大图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
如图1所示,本发明的基于BPMN2.0的分布式服务编排系统,构建了一套标准化的高性能服务编排解决方案,系统包括一个让业务微服务系统接入的客户端(java-sdk),一个可水平扩展的服务端,一个用来编辑流程图和查看流程实例、报表的编排控制台,另外还包括注册中心、消息队列、分布式OLTP数据库、分析型OLAP数据库等。
编排控制台实现的功能包括:流程建模、流程部署、版本控制、实例查看、人工干预、监控大盘、流程报表、任务定义、使用说明、能力定义、流程实例等。
流程建模(流程图编辑)、实例查看通过基于bpmn.js实现的流程建模器、查看器实现,流程建模器和查看器主要包含工具栏、画布、属性面板三个模块,是按照微内核的模式构建,有可插拔、可复用,易修改的优势。
监控大盘基于OLAP数据库实现,按照小时级增量抽取为分区宽表,实现T+1小时的离线计算,并基于QuickBI数据可视化分析平台绘制的交互式仪表大盘,准确反映系统的各项指标,指导各域流程进行优化。
流程报表包含数据指标和数据明细,其中数据指标面向业务TeamLeader和业务人员,主要包含各业务团队的流程建模数量,流程实例数量,任务能力执行次数,流程实例执行耗时,流程实例错误数等。数据明细主要是面向业务开发,主要是提供一个查询视图,让开发人员可以多维度的搜索流程实例,有益于人工干预处理。
任务定义功能包含,客户端上报任务的接收、更新和查看。
使用说明功能包含,详细的使用手册和注意事项。
能力定义功能包含,客户端上报能力的接收、更新和查看。
流程实例功能包含,基于bpmn.js实现的流程查看器,和人工干预处理接口如trigger。
客户端包括编译引擎模块和远程通信模块,编译引擎模块与微服务系统的若干服务接口进行信息交互。
编译引擎:基于JavaComplier实现,包括将bpmn.xml解释为java源码的解释器,还包括运行时将java源码编译为class字节码的JavaComplier,也就是完成了从bpmn.xml编译为class字节码的编译过程,通过预编译的技术,运行时不需对bpmn做解析和校验,避免了运行时的解析和检查,大幅提高了执行性能,配合纯内存流程使用,达到执行耗时<1ms的性能。
远程通信模块:包括注册中心zookeeper、消息队列和基于netty实现的高性能长连接通信协议,实现基于dubbo和ons的高性能远程通信协议、服务发现和负载均衡功能,并在此基础上基于sentinel做了流控和熔断机制。
服务端包括解释引擎、执行引擎、重试模块、告警模块、调度模块、远程通信、数据持久层。
解释引擎:采用编译器风格,基于BPMN2.0规范实现,能解释执行SProcess、StartEvent、SequenceFlow、ServiceTask、ExtensionElements、ExclusiveGateway、ParallelGateway、CallActivity、EndEvent等元素的功能。解释引擎按照解释器的模式构建,通过ExtensionElements元素添加自定义扩展属性,包括任务/能力定义、重试策略、告警策略等,实现了这些通用属性的配置化。
执行引擎:基于QLExpression实现,内置系统变量,可执行条件表达式和映射表达式的功能。支持表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等,具有线程安全,高效执行,弱类型、安全控制,代码精简的特性,用于ParallelGateway之后的条件表达式解析执行、以及重试策略、告警策略的解析执行等。
重试模块:基于表达式的重试模块,创造性的通过表达式描述时间间隔列表来达到任意规则的重试策略功能。相较于平均间隔和指数退避策略,有易修改和可扩展的优势。
告警模块:基于表达式的告警模块,指定在第几次触发重试的时候进行告警,并通过告警渠道按分钟级聚合,避免了告警风暴。
调度模块,实现的功能有:100s以内间隔走jvm线程池延时调度,大于100s走xxljob定时2min扫库调度功能。
远程通信功能:基于dubbo和ons的高性能远程通信协议、服务发现和负载均衡功能。
数据持久层实现的功能有:基于分库分表实现的高性能分布式数据OLTP处理,使用share-nothing架构、以业务id和流程id基因法作为联合分库分表键,解决了oltp场景下单条流程的查询和控制需求,在峰值500TPS的情况下,保证了查询和控制接口10ms以内的响应时间的功能。
本发明的分布式OLTP数据库、分析型OLAP数据库位于服务端和编排控制台之间,数据持久层连接分布式OLTP数据库,分布式OLTP数据库连接分析型OLAP数据库,分布式OLTP数据库的数据经过抽取、清洗转换之后加载到分析型OLAP数据库,分析型OLAP数据库实现实现BI报表输出至编排控制台。
基于分库分表实现的高性能分布式数据OLTP处理,使用share-nothing架构、以业务id和流程id基因法作为联合分库分表键,解决了oltp(on-line transactionprocessing,联机事务处理,)场景下单条流程的查询和控制需求,在峰值500TPS的情况下,保证了查询和控制接口10ms以内的响应时间。
本发明为性能和功能平衡设的中心化和纯内存两种流程类型。能满足同步和异步业务模型的接入,同步业务模型接入纯内存流程,对于响应时间的影响不超过1ms,异步业务模型接入中心化流程,能做到灵活的调度控制,两种流程模型均支持可视化和监控告警,在订单交易、商品营销、库存仓储物流、结算、保险、B2B端、B2C端的业务场景下均能满足业务需求,并为开发赋能,提高研发效率。
采用本发明的基于BPMN2.0的分布式服务编排系统及方法的执行步骤如下:
S1:开发和产品人员首先需要登录编排控制台创建流程模型,选择中心化或纯内存模式,然后通过流程建模器绘制流程图。
其中StartEvent是开始节点,表示流程最开始执行的节点;EndEvent是结束节点,表示流程执行到结束节点后,整个流程结束,如果有其他进行中的分支也会停止;ExclusiveGateway是互斥网关,表示表示后继只会选择一个分支执行,允许n进n出;ParallelGateway是并行网关,表示后继分支会并行执行,一般成对出现,用来实现fork/join,或者只用一个实现fork也可以;SequenceFlow是单向连线,可配置表达式和执行间隔。
CallActivity是执行子流程节点,内部正向执行逻辑分为waiting->execute两个阶段,按顺序依次同步执行,watiing阶段需等待调用流程的触发(trigger)方法后再继续执行(若配置无需等待则跳过waiting阶段),execute阶段根据选择的子流程code和入参出参映射创建并运行子流程,等待子流程执行完毕后,将子流程的出参映射回流程上下文后再继续执行,在任意一个阶段调用流程的关闭(close)方法,节点会转移至close阶段,close阶段也可关联一个业务任务。
ServiceTask是服务任务,是执行业务代码的主要节点,内部使用责任链的方式,正向分为before->waiting->execute->after四个阶段,按顺序依次同步执行,其中before、execute、after阶段可关联一个业务能力/任务,watiing阶段需等待调用流程的触发(trigger)方法后再继续执行(若配置无需等待则跳过waiting阶段),在任意一个阶段调用流程的关闭(close)方法,节点会转移至close阶段,close阶段也可关联一个业务能力/任务,其属性配置面板分为基本信息和任务链两部分,其中任务链面板上可配置入参出参的映射表达式,重试策略,报警策略。
重试策略的表达式表示在多少次范围内的执行间隔,时间单位支持秒(s)、分(m)、小时(h)、天(d),实现逻辑为100s以内间隔走jvm线程池延时调度,大于100s走xxljob定时2min扫库调度,例如:
0s*2表示前2次执行无间隔,第3次停止执行,1s,2s,10d*10表示第1次执行间隔1秒,第2次执行间隔2秒,第3次到第12次执行间隔10天,第13次停止执行,10s*10,2m+表示前10次执行间隔10秒,之后以2分钟间隔无限执行。
报警策略的表达式表示第多少次执行会报警例如:3表示第3次执行会报警,3,5,11,15表示第3次、第5次、第11次、第15次执行会报警,3,7+表示第3次、第7次及以后执行会报警。
条件表达式和映射表达式的语法与QLExpression一致,但是在此基础上,内置了一些全局变量,其中$表示流程上下文,#表示系统上下文,例如:$.buyNum>100表示流程上下文中的buyNum属性的值与100做大于判断,#.code.equals(″test″)表示流程code与字符串″test″做等值判断。
S2:开发和产品人员绘制好流程图之后,然后将自己的应用接入客户端(java-sdk)。
在代码中通过注解的方式声明能力/任务(即ServiceTask中可关联的能力/任务),然后启动自己的应用,客户端(java-sdk)会自动将声明的能力/任务上报至控制台。开发和产品人员再次进入控制台,编辑流程图,将ServiceTask和能力/任务关联起来。最后开发和产品人员需要将流程部署到对应的环境从项目开发环境->项目测试环境->预发环境,直至线上环境,编排控制台做了版本控制,支持回滚和多版本并行。
S3:中心化模式下,流程模型通过客户端调用服务端的start接口来启动,这是一个基于dubbo的rpc接口,启动后服务端会生成一个流程实例,流程实例通过解释引擎执行,流程实例从StartEvent开始执行,当遇到ExclusiveGateway之后,会对遍历执行继线条上的条件表达式,这是通过QLExpression执行引擎执行,找到唯一的满足路径后继续执行下一个节点,当遇到ParallelGateway后,如果是fork(1进n出)会使用线程池,并行执行后继分支,如果是ioin(n进1出),会等待前驱分支执行完毕,当遇到ServiceTask后,会通过消息队列的方式发送消息,客户端收到消息后,触发业务应用的能力/任务执行,其中出入参的传递通过参数映射表达式的方式进行,执行完毕后,会调用服务端的ack接口来确认执行情况,当执行失败时,服务端会按照所配置的重回策略进行重试,直到客户端ack成功,ack成功之后,流程继续推进,当遇到CallActivity后,当前流程会发起所配置的子流程,并暂停自己,直到子流程正常或异常退出后,主流程继续,直到遇到EndEvent,整个流程退出。
流程实例运行的过程中,客户端可通过suspend/resume接口来暂停恢复流程,通过trigger接口来触发等待的ServiceTask节点来触发流程继续推进,通过jump接口来跳跃到任意指定节点,通过close接口来主动关闭流程,通过query接口来查询流程实例详情,通过restart接口来重启流程实例,通过retry接口来显示触发ServiceTask的任务重试。
S4:纯内存模式下,客户端启动时会调用服务端的http接口拉取纯内存模式的流程模型,流程模型通过客户端的编译引擎编译成java代码执行,大部分逻辑与中心化一致,主要差别在于,ParallelGateway会编译成CompletableFuture的fork/join,ServiceTask会编译成执行本地的能力/任务、而不是通过消息队列触发。当纯内存流程实例执行完毕后,会将实例数据存储在本地缓冲区中,然后定时批量异步发送到消息队列,服务端会通过长轮询拉取这批消息,然后转存到大容量对象存储oss,并将索引数据存储在OLTP数据库。
S5:在数仓技术的支持下,通过每小时将OLTP数据库的增量数据抽取到OLAP数据库,然后做聚合分析处理,通过QuickBI生成报表,并内嵌到控制台,实现小时级延迟的报表监控。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于BPMN2.0的分布式服务编排系统,其特征在于,包括客户端,服务端,编排控制台;
所述编排控制台实现流程建模、流程部署、版本控制、实例查看、人工干预、监控大盘功能;
所述客户端包括编译引擎模块和远程通信模块,业务微服务系统接入客户端;
所述服务端可水平扩展,所述服务端包括解释引擎、执行引擎、告警模块、调度模块、远程通信模块和数据持久层;
所述远程通信模块实现服务器和客户端之间的信息传输,主要包括注册、命令下发、推送消息和、订阅消息、以及订阅或通知。
2.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统,其特征在于:编排控制台利用基于bpmn.js的流程建模器、查看器实现流程建模和流程实例查看;监控大盘基于OLAP数据库实现,按照小时级增量抽取为分区宽表,实现T+1小时的离线计算,并基于QuickBI数据可视化分析平台绘制的交互式仪表大盘。
3.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统,其特征在于:编译引擎基于JavaComplier实现,包括将bpmn.xml解释为java源码的解释器,还包括运行时将java源码编译为class字节码的JavaComplier。
4.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统及方法,其特征在于:远程通信模块包括注册中心、消息队列和基于netty实现的高性能长连接通信协议,实现基于dubbo和ohs的高性能远程通信协议、服务发现和负载均衡功能。
5.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统,其特征在于:服务器的解释引擎基于BPMN2.0规范实现,按照解释器的模式构建,通过ExtensionElements元素添加自定义扩展属性,实现解释执行SProcess、StartEvent、SequenceFlow、ServiceTask、ExtensionElements、ExclusiveGateway、ParallelGateway、CallActivity、EndEvent元素的功能。
6.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统,其特征在于:服务器的执行引擎基于QLExpression实现,用于ParallelGateway之后的条件表达式解析执行、以及重试策略、告警策略的解析执行。
7.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统,其特征在于:告警模块通过表达式描述时间间隔列表来达到任意规则的重试和告警策略功能。
8.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统,其特征在于:数据持久层基于分库分表实现的高性能分布式数据OLTP处理,使用share-nothing架构、以业务id和流程id基因法作为联合分库分表键,实现OLTP场景下单条流程的查询和控制需求,在峰值500TPS的情况下,实现查询和控制接口10ms以内的响应时间的功能。
9.根据权利要求1所述的基于BPMN2.0的分布式服务编排系统及方法,其特征在于:分布式OLTP数据库、分析型OLAP数据库位于服务端和编排控制台之间,数据持久层连接分布式OLTP数据库,分布式OLTP数据库连接分析型OLAP数据库,分布式OLTP数据库的数据经过抽取、清洗转换之后加载到分析型OLAP数据库,分析型OLAP数据库实现实现BI报表输出至编排控制台。
10.一种基于BPMN2.0的高性能分布式服务编排引擎方法,其特征在于,包括:
S1:开发和产品人员首先需要登录编排控制台创建流程模型,选择中心化或纯内存模式,然后通过流程建模器绘制流程图;
S2:开发和产品人员绘制好流程图之后,然后将应用接入客户端;在代码中通过注解的方式声明能力或任务,然后启动自己的应用,客户端会自动将声明的能力或任务上报至编排控制台;
S3:中心化模式下,流程模型通过客户端调用服务端的start接口来启动,启动后服务端会生成一个流程实例,流程实例通过解释引擎执行;
S4:纯内存模式下,客户端启动时会调用服务端的http接口拉取纯内存模式的流程模型,流程模型通过客户端的编译引擎编译成java代码执行,当纯内存流程实例执行完毕后,会将实例数据存储在本地缓冲区中,然后定时批量异步发送到消息队列,服务端会通过长轮询拉取这批消息,然后转存到大容量对象存储oss,并将索引数据存储在OLTP数据库。
S5:在数仓技术的支持下,通过每小时将OLTP数据库的增量数据抽取到OLAP数据库,然后做聚合分析处理,通过QuickBI生成报表,并内嵌到控制台,实现小时级延迟的报表监控。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546374.XA CN114416064B (zh) | 2021-12-16 | 2021-12-16 | 基于bpmn2.0的分布式服务编排系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546374.XA CN114416064B (zh) | 2021-12-16 | 2021-12-16 | 基于bpmn2.0的分布式服务编排系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114416064A true CN114416064A (zh) | 2022-04-29 |
CN114416064B CN114416064B (zh) | 2024-08-20 |
Family
ID=81266834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111546374.XA Active CN114416064B (zh) | 2021-12-16 | 2021-12-16 | 基于bpmn2.0的分布式服务编排系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416064B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129304A (zh) * | 2022-05-20 | 2022-09-30 | 武汉爱科软件技术股份有限公司 | 一种基于零代码平台的可视化业务服务编排方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017109791A1 (en) * | 2015-12-22 | 2017-06-29 | Tangirala Srinivas | A system and method for building enterprise applications |
CN110942387A (zh) * | 2018-09-25 | 2020-03-31 | 上海宝信软件股份有限公司 | 基于微服务的电票业务功能构建方法和系统 |
CN111142867A (zh) * | 2019-12-31 | 2020-05-12 | 谷云科技(广州)有限责任公司 | 微服务架构下的服务可视化编排系统及方法 |
CN111694888A (zh) * | 2020-06-12 | 2020-09-22 | 谷云科技(广州)有限责任公司 | 基于微服务架构的分布式etl数据交换系统及方法 |
CN112132530A (zh) * | 2020-08-17 | 2020-12-25 | 珠海市卓轩科技有限公司 | 可视化动态流程编排方法及系统 |
-
2021
- 2021-12-16 CN CN202111546374.XA patent/CN114416064B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017109791A1 (en) * | 2015-12-22 | 2017-06-29 | Tangirala Srinivas | A system and method for building enterprise applications |
CN110942387A (zh) * | 2018-09-25 | 2020-03-31 | 上海宝信软件股份有限公司 | 基于微服务的电票业务功能构建方法和系统 |
CN111142867A (zh) * | 2019-12-31 | 2020-05-12 | 谷云科技(广州)有限责任公司 | 微服务架构下的服务可视化编排系统及方法 |
CN111694888A (zh) * | 2020-06-12 | 2020-09-22 | 谷云科技(广州)有限责任公司 | 基于微服务架构的分布式etl数据交换系统及方法 |
CN112132530A (zh) * | 2020-08-17 | 2020-12-25 | 珠海市卓轩科技有限公司 | 可视化动态流程编排方法及系统 |
Non-Patent Citations (2)
Title |
---|
PEDRO VALDERAS等: "A microservice composition approach based on the choreography of BPMN fragments", INFORMATION AND SOFTWARE TECHNOLOGY, vol. 127, 29 June 2020 (2020-06-29), pages 1 - 17 * |
虞果: "基于微服务的精细化业务流程编排系统", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 8, 15 August 2019 (2019-08-15), pages 139 - 151 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129304A (zh) * | 2022-05-20 | 2022-09-30 | 武汉爱科软件技术股份有限公司 | 一种基于零代码平台的可视化业务服务编排方法及装置 |
CN115129304B (zh) * | 2022-05-20 | 2024-05-14 | 武汉爱科软件技术股份有限公司 | 一种基于零代码平台的可视化业务服务编排方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114416064B (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023349B2 (en) | Load test framework | |
Moser et al. | Semantic integration of software and systems engineering environments | |
RU2610288C2 (ru) | Обеспечение возможностей конфигурируемого технологического процесса | |
US8443374B2 (en) | Business application integration adapters management system | |
US20150135158A1 (en) | Isolated testing of distributed development projects | |
CN103441900A (zh) | 集中式跨平台自动化测试系统及其控制方法 | |
US20030074392A1 (en) | Methods for a request-response protocol between a client system and an application server | |
US11163586B1 (en) | Automated configuration of application program instance | |
WO2019062673A1 (zh) | 一种基于输入输出语义化实现的管理信息化的方法和系统 | |
US20120109708A1 (en) | Evaluating pattern-based constraints on business process models | |
CN112379884A (zh) | 基于Spark和并行内存计算的流程引擎实现方法及系统 | |
Merten | Active automata learning for real life applications | |
CN102203767A (zh) | 重新配置模型 | |
CN109978392A (zh) | 敏捷软件开发管理方法、装置、电子设备、存储介质 | |
CN114416064B (zh) | 基于bpmn2.0的分布式服务编排系统及方法 | |
Moller et al. | OSIRIS Next: Flexible semantic failure handling for composite web service execution | |
CN102073505A (zh) | 面向服务组装的声明式事务集成方法和系统 | |
Blüher et al. | DevOps for manufacturing systems: Speeding up software development | |
BOUSETTA et al. | Generating operations specification from domain class diagram using transition state diagram | |
CN112051987B (zh) | 业务数据处理方法、装置及设备、程序生成方法及装置 | |
Ahmad et al. | Web service execution model for cloud environment | |
CN112364071A (zh) | 货值数据分析方法及系统 | |
Malavolta | Software Architecture Modeling by Reuse, Composition and Customization | |
Leal et al. | Using metamodels to improve model-based testing of service orchestrations | |
Biörnstad | A workflow approach to stream processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |