一种基于云函数和BPMN规范的云资源编排方法与流程

文档序号:25178127发布日期:2021-05-25 14:51阅读:54来源:国知局
一种基于云函数和BPMN规范的云资源编排方法与流程

本发明涉及云计算领域,尤其涉及一种基于云函数和bpmn规范的云资源编排方法。



背景技术:

云资源的类型包括有iaas、paas、saas及应用层,不同cpu架构、不同虚拟化架构的云资源的调度方式是有所区别的,对云资源交付的编排控制,具有编排对象多样性高、扩展性强、编排过程复杂性强的特点。bpmn(businessprocessmodelandnotation)是一套用以业务流程模型定义的可视化图形描述方法。由于bpmn是业界非常成熟的业务流程控制规范,使用bpmn规范可以解决云资源编排过程复杂性的问题。

通过流程编排云资源部署的先后顺序,以及各类并发、等待、串行、汇聚等,解决部署过程的流程控制问题。流程中节点的业务逻辑的实现,业界通用的方案是通过bpmn规范中定义的各类task进行逻辑实现的,例如java服务任务,脚本任务,或者实现创建虚拟机的服务任务类和创建存储卷的服务任务类,当流程引擎解析到创建虚拟机的服务任务类时,会调用对应的实现类,进行逻辑执行,达到创建虚拟机的目的。但是随着云资源的不断增加,需要增加更多的实现类,对于新增云资源编排对象的需求响应成本高,且速度慢;通过服务类实现执行逻辑的方案会将大量的业务逻辑集中到引擎服务端,导致引擎服务端越来越臃肿,严重影响研发管理和运维支撑,也导致整个程序架构是一个集中式的架构,不能进行分布式部署,对于大量的部署请求无法扩展其响应能力,集中的执行逻辑,限定了程序运行时的部署架构单一化,在特定场景,例如跨arm和x86场景下,无法响应异构部署的要求;流程引擎的选定框架会限定服务类的编程语言选择。

申请号为201710067985.3的专利文献公开了一种挖掘bpmn编制流程并行性的方法及系统,根据结构特征从编制流程中提取任务间的基本关系,并构造出基本关系矩阵;分析任务间的依赖关系,并构造出依赖关系矩阵;根据所述依赖关系矩阵构造出依赖图;根据转换规则将所述依赖图转换得到编制流程。



技术实现要素:

针对上述问题,本发明的一种基于云函数和bpmn规范的云资源编排方法,其将执行逻辑和调度逻辑分离,使得各自能够专注于本身逻辑运行,保持整体的轻量化,执行单元具备良好的架构,能够实现跨语言、高扩展、分布式、异构部署,提升研发效率。

为解决上述技术问题,一种基于云函数和bpmn规范的云资源编排方法,包括以下步骤:

s1:bpmn流程引擎解析任务信息,并向云消息服务发布;

s2:云消息服务依据任务信息触发启动lambda云函数服务,选取对应的lambda函数集;

s3:所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件;

s4:所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

s5:所述bpmn流程引擎解析下一任务信息。

进一步地,发布任务信息的通讯格式包括有queue队列编号和method触发云函数的方法。

进一步地,s2还包括有:根据所述queue队列编号和method触发云函数的方法,选取对应的lambda函数集。

与现有技术相比,本方案的有益效果为:

本方案提供一种基于云函数和bpmn规范的云资源编排方法,是一种流程架构设计方法,将执行逻辑与调度逻辑分开,使得流程引擎服务端专注于流程本身的调度逻辑,保持轻量化,基于云函数的执行单元,具备跨语言、高扩展、分布式、异构部署的良好架构特点;面向函数集的研发方式,让研发专注于代码本身,而不必关注代码运行架构,运维实施等问题,提升了研发效率,降低了维护成本。

附图说明

图1是本发明所述方法流程图;

图2是本发明所述方法通讯流程示意图;

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

下面结合具体实施例和附图对本发明的技术方案进行清楚、完整的描述。

如图1-2所示,本发明公开了一种基于云函数和bpmn规范的云资源编排方法,包括:bpmn流程引擎解析任务信息,并向云消息服务发布;

云消息服务依据任务信息触发启动lambda云函数服务,选取对应的lambda函数集;所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件;

所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

所述bpmn流程引擎解析下一任务信息。将执行逻辑与调度逻辑分开,使得流程引擎服务端专注于流程本身的调度逻辑,保持轻量化,基于云函数的执行单元,具备跨语言、高扩展、分布式、异构部署的良好架构特点;

面向函数集的研发方式,让研发专注于代码本身,而不必关注代码运行架构,运维实施等问题,提升了研发效率,降低了维护成本。

本发明从依赖性(dependence)角度将bpmn编制流程中存在顺序关系、但不存在数据依赖的任务对,使它们由串行执行改为并行执行,以达到提高编制效率的目的;但并未涉及到如何解决上述问题,因此,当下尤其需要相关的技术解决方案。

实施例1

如图1所示,一种基于云函数和bpmn规范的云资源编排方法,包括以下步骤:

s1:bpmn流程引擎解析任务信息,并向云消息服务发布;其中,发布任务信息的通讯格式包括有queue队列编号和method触发云函数的方法。

s2:云消息服务依据任务信息触发启动lambda云函数服务,根据所述queue队列编号和method触发云函数的方法,选取对应的lambda函数集;

s3:所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件,云平台释放lambda实例的计算资源;不同cpu架构,不同虚拟化架构的云资源调度由对应的云函数引擎来执行云函数;

s4:所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

s5:所述bpmn流程引擎驱动流程解析下一任务信息。

其中,发布任务信息的通讯格式详细如下表1所示:

表1发布任务信息的通讯格式参数

bpmn流程引擎驱动lambda云函数服务的通讯过程,如图2所示,bpmn流程引擎向云消息服务发布任务,云消息服务触发启动lambda云函数服务,执行lambda函数集,可以调度包括arm、x86等架构的云资源创建虚拟机、均衡负载等,完成事件后,向云消息服务发布完成事件信息,引擎接收后,继续驱动流程执行;使得增强了业务可扩展度,具有更好的资源灵活性;分散了引擎服务端的业务逻辑压力,执行逻辑和调度逻辑分离,使能够专注于本身逻辑的运行,保持整体的轻量化,具有更好的快速响应能力,有利于高效地进行研发、管理和运维。

实施例2

本发明的编排方法定义了当编排失败时触发编排回滚的过程,包括以下步骤:

s1:云函数服务执行任务失败,通过云消息服务向bpmn流程引擎发布失败状态的事件。

s2:所述bpmn流程引擎接收到失败事件后,按流程调度顺序逆向选择上一个任务事件,并将选中任务事件发布到云消息服务。其中,发布任务信息的通讯格式包括有queue队列编号和method触发云函数的方法。method指定为rollback。

云消息服务依据任务信息触发启动lambda云函数服务,根据所述queue队列编号和method触发云函数的rollback方法,选取对应的回滚lambda函数集;

s3:所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件,云平台释放lambda实例的计算资源;不同cpu架构,不同虚拟化架构的云资源调度由对应的云函数引擎来执行云函数;

s4:所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

s5:所述bpmn流程引擎驱动流程逆向解析上一个任务事件,直到完成所有任务事件的回滚驱动。

实施例3

本发明的编排方法定义了以编排为单位对编排资源进行删除的过程,包括以下步骤:

s1:bpmn编排引擎接收到删除事件,选择目标流程,逆向解析所述流程的任务事件,并将选中任务事件发布到云消息服务。其中,发布任务信息的通讯格式包括有queue队列编号和method触发云函数的方法。method指定为delete。

s2:云消息服务依据任务信息触发启动lambda云函数服务,根据所述queue队列编号和method触发云函数的delete方法,选取对应的删除lambda函数集;

s3:所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件,云平台释放lambda实例的计算资源;不同cpu架构,不同虚拟化架构的云资源调度由对应的云函数引擎来执行云函数;

s4:所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

s5:所述bpmn流程引擎驱动流程逆向解析上一个任务事件,直到完成所有任务事件的删除驱动。

实施例4

本发明的编排方法定义了取消正在运行中的流程过程,包括以下步骤:

s1:bpmn编排引擎接收到取消事件,选择目标流程,逆向解析所述流程的任务事件,并将选中任务事件发布到云消息服务。其中,发布任务信息的通讯格式包括有queue队列编号和method触发云函数的方法。method指定为cancel。

s2:云消息服务依据任务信息触发启动lambda云函数服务,根据所述queue队列编号和method触发云函数的cancel方法,选取对应的取消lambda函数集;

s3:所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件,云平台释放lambda实例的计算资源;不同cpu架构,不同虚拟化架构的云资源调度由对应的云函数引擎来执行云函数;

s4:所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

s5:所述bpmn流程引擎驱动流程逆向解析上一个任务事件,直到完成所有任务事件的取消驱动。

实施例5

本发明的编排定义了流程运行失败时进入调试模式,然后发起重试的过程,包括以下步骤:

s1:云函数服务执行任务失败,通过云消息服务向bpmn流程引擎发布失败状态的事件。

s2:所述bpmn流程引擎接收到失败事件后,判定如果系统允许调试,则暂停流程的调度,当前流程状态为调试中,当前任务为失败。

s3:用户对所述任务事件临时修改运行参数,发起重试操作,bpmn流程引擎将所述任务事件发布到云消息服务。

s4:云消息服务依据任务信息触发启动lambda云函数服务,根据所述queue队列编号和method触发云函数的方法,选取对应的lambda函数集;

s5:所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件,云平台释放lambda实例的计算资源;不同cpu架构,不同虚拟化架构的云资源调度由对应的云函数引擎来执行云函数;

s6:所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

s7:所述bpmn流程引擎驱动流程解析下一任务信息,流程恢复正常运行,后续过程同实施例1。

实施例6

本发明的编排定义了流程运行失败时进入调试模式,然后结束调试的过程,包括以下步骤:

s1:云函数服务执行任务失败,通过云消息服务向bpmn流程引擎发布失败状态的事件。

s2:所述bpmn流程引擎接收到失败事件后,判定如果系统允许调试,则暂停流程的调度,当前流程状态为调试中,当前任务为失败。

s3:用户放弃当前流程过程,选择结束当前流程

s4:所述bpmn流程引擎接收到结束事件后,按流程调度顺序逆向选择上一个任务事件,并将选中任务事件发布到云消息服务。其中,发布任务信息的通讯格式包括有queue队列编号和method触发云函数的方法。method指定为rollback。

s5:云消息服务依据任务信息触发启动lambda云函数服务,根据所述queue队列编号和method触发云函数的rollback方法,选取对应的回滚lambda函数集;

s6:所述lambda云函数服务将所述lambda函数集调度到云函数引擎,所述云函数引擎执行云函数以使所述lambda云函数服务完成任务事件,云平台释放lambda实例的计算资源;不同cpu架构,不同虚拟化架构的云资源调度由对应的云函数引擎来执行云函数;

s7:所述lambda云函数服务通过所述云消息服务向所述bpmn流程引擎发布所述完成任务事件;

s8:所述bpmn流程引擎驱动流程逆向解析上一个任务事件,直到完成所有任务事件的回滚驱动。

以上所述,仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限制,故凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1