一种基于微服务架构的工作流引擎制造技术

技术编号:38821105 阅读:11 留言:0更新日期:2023-09-15 20:00
本发明专利技术属于云服务技术领域,具体涉及一种基于微服务架构的工作流引擎,包括:核心单元,用于根据预设的BPMN流程图,部署任务相关接口,以使用户端根据任务相关接口执行任务;安全访问单元,用于验证当前用户端的登录信息,以及处理当前用户端的目标资源访问请求;数据存储单元,用于对各任务的历史数据进行缓存和转存。本申请提供的技术方案,将每个服务中集成的工作流引擎模块抽离出来,构建一个集所有微服务的工作流引擎,降低了开发者学习成本,提高了代码的重用度,降低了业务与业务之间耦合,提升了信息的维护和资源分配的效率,同时节约了系统资源,减少了资源的浪费。减少了资源的浪费。减少了资源的浪费。

【技术实现步骤摘要】
一种基于微服务架构的工作流引擎


[0001]本专利技术属于云服务
,具体涉及一种基于微服务架构的工作流引擎。

技术介绍

[0002]随着计算机与信息技术的高速发展,网络上的应用服务越来越多,系统的体量与复杂度越来越来大。当服务的访问量逐渐增大即QPS增大,单个服务通过垂直扩容即增加硬件带来的性能提升越来越小,为了应对这种情况采用垂直应用架构,将系统拆成联系较小的几个服务进行解耦。当垂直服务越来越多,服务之间耦合度会不断加大,这时采用分布式服务架构,按功能划分将功能抽取出来作为独立的微服务,以微服务架构提供云服务时,当系统越来越大导致微服务越来越多的情况下,会有很多微服务用到流程管理引擎。如果每个微服务服务中都需要集成流程管理引擎的话会有很多缺点:比如从系统层面来说,会导致资源的浪费,不同服务间的流程上的交互困难;从开发者角度来说,开发者的学习成本提高等问题。

技术实现思路

[0003]为至少在一定程度上克服相关技术中存在的问题,本申请提供一种基于微服务架构的工作流引擎。
[0004]根据本申请实施例的第一方面,提供一种基于微服务架构的工作流引擎,包括:
[0005]核心单元,用于根据预设的BPMN流程图,部署任务相关接口,以使用户端根据所述任务相关接口执行任务;
[0006]安全访问单元,用于验证当前用户端的登录信息,以及处理当前用户端的目标资源访问请求;
[0007]数据存储单元,用于对各任务的历史数据进行缓存和转存。
[0008]优选的,其特征在于,所述任务相关接口,包括:
[0009]查看任务接口、启动任务接口、删除任务接口、完成任务接口、查看任务内容接口和转移任务接口。
[0010]优选的,所述核心单元,包括:
[0011]生成模块,用于根据预设的BPMN流程图,获取逻辑流程BPMN模型;
[0012]确定模块,用于根据逻辑流程BPMN模型,确定所述逻辑流程BPMN模型的流程定义;
[0013]部署模块,用于部署所述流程定义的任务相关接口。
[0014]优选的,所述生成模块,具体用于:
[0015]利用文档转化器构建初始BPMN模型;
[0016]利用元素解析器解析BPMN流程图对应的BPMN文档的xml标签;
[0017]构建process元素,并将所述process元素添加至所述初始BPMN模型中,得到所述逻辑流程BPMN模型。
[0018]优选的,所述部署模块,具体用于:
[0019]采用GET方式分别部署查看任务接口、完成任务接口和查看任务内容接口,采用POST方式分别部署启动任务接口和删除任务接口,采用PUT方式部署转移任务接口。
[0020]优选的,所述安全访问单元,包括:接收模块、验证模块、查询模块和判断模块;
[0021]所述接收模块,用于接收当前用户端发送的用户登录信息和目标资源访问请求;
[0022]所述验证模块,用于利用Filter过滤器对当前用户端的用户登录信息进行验证,若验证成功,则执行查询模块;若验证失败,则向当前用户端返回没有访问权限的信息;
[0023]所述查询模块,用于利用Filter过滤器从预先存储的各用户端的用户信息中查询所述当前用户端的用户身份权限,并将所述当前用户端的用户身份权限发送至判断模块;
[0024]所述判断模块,用于利用Filter过滤器根据所述当前用户端的用户身份权限,判断所述当前用户端是否具有访问目标资源的权限,若所述当前用户端具有访问目标资源的权限,则向当前用户端返回访问成功的信息;若所述当前用户端不具有访问目标资源的权限,则向用户端返回没有访问权限的信息。
[0025]优选的,所述验证模块,具体用于:
[0026]当当前用户端的登录信息中携带Token时,利用Filter过滤器判断所述Token是否合法,若所述Token合法,则执行查询模块;若所述Token不合法,则向用户端返回没有访问权限的信息;
[0027]当当前用户端的登录信息中未携带Token时,利用Filter过滤器根据预先存储的各用户端的用户信息,判断当前用户端的登录信息是否存在,若存在当前用户端的登录信息,则执行查询模块;若不存在当前用户端的登录信息,则向当前用户端返回没有访问权限的信息;
[0028]其中,所述用户信息包括:用户登录信息和用户身份权限;所述用户登录信息包括:用户名和密码。
[0029]优选的,所述数据存储单元,包括:第一存储模块、第二存储模块和缓存模块;
[0030]所述第一存储模块,用于定期存储各任务的历史数据,并将所述各任务的历史数据发送至所述第二存储模块;以及将所述各任务的历史数据发送至所述第二存储模块后,将所述各任务的历史数据进行删除;
[0031]所述第二存储模块,用于存储所述各任务的历史数据;
[0032]所述缓存模块,用于利用Redis定期缓存用户端访问过的目标资源,以及当用户端访问过的目标资源的缓存时间到达时间阈值时,删除所述用户端访问过的目标资源。
[0033]优选的,所述第一存储模块为MySQL数据库,所述第二存储模块为Hadoop分布式文件系统。
[0034]优选的,还包括:
[0035]邮件发送单元,用于当任务节点发生变化时,将任务节点的变化信息发送至与其对应的用户端的邮箱中;
[0036]定时任务单元,用于基于用户端设置的目标任务的自动执行时间,在当前时间为自动执行时间时,自动执行目标任务。
[0037]本专利技术上述一个或多个技术方案,至少具有如下一种或多种有益效果:
[0038]本专利技术提供的一种基于微服务架构的工作流引擎,包括:核心单元,用于根据预设的BPMN流程图,部署任务相关接口,以使用户端根据任务相关接口执行任务;安全访问单
元,用于验证当前用户端的登录信息,以及处理当前用户端的目标资源访问请求;数据存储单元,用于对各任务的历史数据进行缓存和转存。本专利技术将每个服务中集成的工作流引擎模块抽离出来,构建一个集所有微服务的工作流引擎,降低了开发者学习成本,提高了代码的重用度,降低了业务与业务之间耦合,提升了信息的维护和资源分配的效率,同时节约了系统资源,减少了资源的浪费。
附图说明
[0039]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1是本专利技术实施例提供的一种基于微服务架构的工作流引擎的主要结构框图。
具体实施方式
[0041]下面结合附图对本专利技术的具体实施方式作进一步的详细说明。
[0042]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微服务架构的工作流引擎,其特征在于,包括:核心单元,用于根据预设的BPMN流程图,部署任务相关接口,以使用户端根据所述任务相关接口执行任务;安全访问单元,用于验证当前用户端的登录信息,以及处理当前用户端的目标资源访问请求;数据存储单元,用于对各任务的历史数据进行缓存和转存。2.根据权利要求1所述的基于微服务架构的工作流引擎,其特征在于,所述任务相关接口,包括:查看任务接口、启动任务接口、删除任务接口、完成任务接口、查看任务内容接口和转移任务接口。3.根据权利要求2所述的基于微服务架构的工作流引擎,其特征在于,所述核心单元,包括:生成模块,用于根据预设的BPMN流程图,获取逻辑流程BPMN模型;确定模块,用于根据逻辑流程BPMN模型,确定所述逻辑流程BPMN模型的流程定义;部署模块,用于部署所述流程定义的任务相关接口。4.根据权利要求3所述的基于微服务架构的工作流引擎,其特征在于,所述生成模块,具体用于:利用文档转化器构建初始BPMN模型;利用元素解析器解析BPMN流程图对应的BPMN文档的xml标签,得到process元素;将所述process元素添加至所述初始BPMN模型中,得到所述逻辑流程BPMN模型。5.根据权利要求3所述的基于微服务架构的工作流引擎,其特征在于,所述部署模块,具体用于:采用GET方式分别部署查看任务接口、完成任务接口和查看任务内容接口,采用POST方式分别部署启动任务接口和删除任务接口,采用PUT方式部署转移任务接口。6.根据权利要求1所述的基于微服务架构的工作流引擎,其特征在于,所述安全访问单元,包括:接收模块、验证模块、查询模块和判断模块;所述接收模块,用于接收当前用户端发送的用户登录信息和目标资源访问请求;所述验证模块,用于利用Filter过滤器对当前用户端的用户登录信息进行验证,若验证成功,则执行查询模块;若验证失败,则向当前用户端返回没有访问权限的信息;所述查询模块,用于利用Filter过滤器从预先存储的各用户端的用户信息中查询所述当前用户端的用户身份权限,并将所述当前用户端的用户身份权限发送至判断模块;所述判断模块,用于利用F...

【专利技术属性】
技术研发人员:刘鹏徐英辉邓春宇王大中吴晓江
申请(专利权)人:中国电力科学研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1