一种基于BPMN的微服务工作流程导入方法与流程

文档序号:24235981发布日期:2021-03-12 13:08阅读:151来源:国知局
一种基于BPMN的微服务工作流程导入方法与流程

本发明涉及微服务工作流技术领域,具体是一种基于bpmn的微服务工作流程导入方法。



背景技术:

工作流技术起源于二十世纪七十年代中期,主要研究的领域是办公自动化;但是,由于当时网络技术水平有限以及缺乏理论基础,工作流技术并未取得成功。

工作流是一系列相互衔接、自动进行的业务活动或任务,一个工作流主要包括以下内容:一组任务(或活动)及它们之间的相互关系、流程(或活动)的开始和终止条件,以及对每个任务(或活动)的描述。工作流技术是为提高工作效率而提出的,工作流管理系统(wfms)则是一种能定义、创建和管理工作流执行的软件系统。随着业务流程重组技术的发展,工作流管理系统也已经广泛应用于各个领域。

bpmn是bpm及工作流的建模语言标准之一,bpmn定义了业务流程图,基于流程图技术为创建业务流程操作的图形化模型进行了裁减。业务流程的模型就是图形化对象的网图,包括活动(也可以说工作)和定义操作顺序的流控制。开发bpmn的动力就是为了在创建业务流程模型时提供一个简单的机制,同时又能够处理来自业务流程的复杂性。

在业务流程处理中,随着基于bpmn工作流数量的逐渐增加以及工作流的复杂结构,工作流程的存储也变得异常重要。工作流存储是在处理某项数据时候形成的一些非结构化数据,这些数据需要进行长期保留以备后续进行数据分析研究。对于工作流的存储,当下部分企业将工作流存入到传统的关系型数据库管理系统mysql中,可以完成对整条工作流程的查询处理。然而,当涉及到具体的遍历算法时,需要查询遍历工作流的结构信息时,上述存储方式的查询效率会很低。



技术实现要素:

基于上述问题,本发明提出一种基于bpmn的微服务工作流程导入方法,将基于bpmn的工作流数据批量存储到图形数据库neo4j中,以图的形式进行存储;并且支持以可视化的方式从数据库neo4j中智能组合成基于bpmn的工作流,并在流程编辑前端显示,供实际的业务场景使用。本发明解决了传统数据库带来的缺陷,同时提高了工作流结构查询的效率。

所述的工作流程导入方法,具体步骤如下:

步骤一、从传统关系型数据库中和用户自定义的符合bpmn规范的xml格式的数据中,批量读取基于bpmn的工作流数据;

步骤二、根据bpmn标准规范,将各工作流数据归类为bpmn1.0规范类和bpmn2.0规范类;

步骤三、将两种规范类中每条工作流,按照各自的关键字,依次解析成(d,n,r)三元组数据;

具体为:

首先,针对bpmn1.0规范类,依次选取各工作流数据,通过读取当前条工作流中的关键字,获取当前工作流的名称d,以及流程的各个子节点集n及其属性;

具体为:每一条工作流对应一个名称,该名称为每个bpmn文件的文件名;

子节点集n是通过读取bpmn文件内容中元素“task”对应的“name”来获得,每个n中包括若干子节点;

属性是通过读取bpmn文件内容中标签“bpmndi”对应的属性值,并以key-value键值对的形式存放;

然后,通过读取元素“task”下级的字段<incoming>与<outgoing>对应的值来获取结构关系r;

最终,将当前条工作流数据转成基于(d,n,r)格式的数据;

同理,选择下一条工作流数据重复上述过程,直至bpmn1.0规范类中的各条工作流都转换完毕,得到各自对应的(d,n,r)格式的数据;然后,选择bpmn2.0规范类中的各条工作流数据重复进行转换。

步骤四、逐条选择各工作流对应的(d,n,r)三元组数据,判断各工作流的名称d是否存在图数据库neo4j的已有数据中,如果是,则数据库存在该工作流,执行更新操作;否则,将该工作流执行插入操作;

更新操作是指:针对某条工作流数据a,保持原有的数据流名称d不变,将当前工作流a的三元组数据替换掉图数据库中已有的数据,以完成更新操作;

插入操作是指:图数据库neo4j中没有工作流数据a,将工作流a对应的(d,n,r)三元组数据,插入到图数据库中;

步骤五、图数据库neo4j对上述获取的三元组数据继续进行解析,并分别保存为(n,r,p)格式的数据;

具体为:

首先,针对存储到图数据库neo4j中的各三元组数据逐条选择,针对当前三元组数据(da,na,ra),执行aql语句,先根据名称da,新建一条流程;

然后,按照key-value方式解析子节点集na,每一个子节点在图数据库neo4j的可视化界面中都显示为一个图形节点,并获取子节点集na的对应属性集pa;

同理,以图形节点的方式将所有的子节点一一存入图数据库neo4j中,

进而,继续遍历结构关系ra,将所有的子节点集na按照结构关系集ra依次建立拓扑连接,从而形成名称为da的拓扑图,存储到图数据库neo4j中;

最后,从名称为da的拓扑图中,抽取节点集na,关系ra和对应的属性pa形成(na,ra,pa)格式的数据。

同理,将图数据库neo4j中存储的各条三元组数据重复进行上述解析,得到各自对应的(n,r,p)格式的数据。

步骤六、用户在流程编辑前端输入查询条件,读出完整的基于bpmn标准协议的工作流数据;

具体过程为:

首先,执行图数据库neo4j的aql语句,逐条依次读出(n,r,p)格式的当前数据;

根据n通过key-value方式解析当前条数据中的所有子节点,根据r通过key-value方式解析为子节点与子节点之间的连接信息,即生成<incoming>与<outgoing>的关系,根据p通过key-value方式解析当前各子节点的位置和附加项。

最后,将解析到的子节点,连接信息、位置和附加项进行组合,得到完整的工作流数据进行展示到前端。

本发明的优点在于:

1)、一种基于bpmn的工作流程导入方法,将工作流的结构信息存储到图形数据库neo4j中,解决了传统数据库的局限性,并且提高了工作流结构的检索效率;

2)、一种基于bpmn的工作流程导入方法,提供了流程编辑前端界面,实现了可视化的流程导入、导出功能,在一定程度上提高了业务人员的操作效率。

3)、一种基于bpmn的工作流程导入方法,支持基于bpmn1.0、bpmn2.0的工作流的解析读取,通过以图的形式储存节点、边及属性,大幅度地减少了重复的数据,从而减少了储存空间;

4)、一种基于bpmn的工作流程导入方法,支持从流程编辑前端界面将用户创建的工作流数据保存到neo4j中,实现完全自动化。

附图说明

图1是本发明bpmn格式的数据具体导入图形数据库neo4j的原理图;

图2是本发明一种基于bpmn的工作流程导入方法流程图;

图3是本发明将规范类中每条工作流解析成(d,n,r)三元组数据中子节点和属性的实例图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

本发明一种基于bpmn的工作流程导入方法,将基于bpmn的工作流数据自动导入图数据库neo4j中,如图1所示,具体包括:批量读取基于bpmn的工作流数据,根据不同的数据协议标准对工作流数据进行归类,通过读取各工作流的关键字,获取各流程的名称d,以及流程的各个子节点的属性n(名称,位置,附加项);并通过工作流的字段<incoming>与<outgoing>获取其结构关系r,然后将基于bpmn的工作流数据转成基于(d,n,r)格式的数据。接着根据名称d校验该工作流是执行新增操作或是更新操作,最终执行aql语句将工作流数据存储到图形数据库neo4j中;在流程编辑前端进行读取数据时,根据查询条件,执行aql语句,从图数据库中将(n,r,p)格式的数据读出,根据解析程序重新组合成基于bpmn的工作流数据,并在前端进行展示。

本发明通过使用图形数据库neo4j存储基于bpmn的工作流的数据结构,解决了传统数据库的局限性,提高了遍历子流程的查询效率;可视化的导入和导出操作也满足了业务人员的需求。

如图2所示,具体步骤如下:

步骤一、从传统关系型数据库中和用户自定义的符合bpmn规范的xml格式的数据中,批量读取基于bpmn的工作流数据;

步骤二、根据bpmn标准规范,将各工作流数据归类为bpmn1.0规范类和bpmn2.0规范类;

工作流数据主要包括基于bpmn1.0和bpmn2.0的数据格式,根据bpmn标准规范将工作流程数据分类;

步骤三、将两种规范类中每条工作流,按照各自的关键字,依次逐条解析成(d,n,r)三元组数据;

具体为:

首先,针对bpmn1.0规范类,依次选取各工作流数据,通过读取当前条工作流中的关键字,获取当前工作流的名称d,以及流程的各个子节点集n及其属性;

具体为:每一条工作流对应一个名称,该名称为每个bpmn文件的文件名;

子节点集n是通过读取bpmn文件内容中元素“task”对应的“name”来获得;如图3a所示;

属性是通过读取bpmn文件内容中标签“bpmndi”对应的属性值,并以key-value键值对的形式存放,如图3b所示。

然后,通过读取元素“task”下级的字段<incoming>与<outgoing>对应的值来获取结构关系r;

最终,将当前条工作流数据转成基于(d,n,r)格式的数据;

同理,选择下一条工作流数据重复上述过程,直至bpmn1.0规范类中的各条工作流都转换完毕,得到各自对应的(d,n,r)格式的数据;然后,选择bpmn2.0规范类中的各条工作流数据重复进行转换。

步骤四、逐条选择各工作流对应的(d,n,r)三元组数据,判断各工作流的名称d是否存在图数据库neo4j的已有数据中,如果是,则数据库存在该工作流,执行更新操作;否则,将该工作流执行插入操作;

更新操作是指:针对某条工作流数据a,保持原有的数据流名称d不变,将当前工作流a的三元组数据替换掉图数据库中已保存的数据;

例如:该流程数据的具体子节点n的name=”申请表单”,修改操作是将上述name修改为“上报表单”,关系r同理。

否则,执行插入操作,插入就是数据库中如果没有,就直接插入其中;

步骤五、图数据库neo4j执行aql语句对上述获取的三元组数据继续进行解析,将各三元组数据以拓扑图的形式存储到图数据库中,并分别保存各自对应的(n,r,p)格式的数据;

执行图数据库neo4j的aql语句进行解析操作,将上述步骤获取的(d,n,r)代表一条工作流的三元组,先根据流程的名称d,新建一条流程。

然后开始处理子节点n:因为名称、属性都是以key-value键值对形式存放的,所以只需要按照key-value方式进行解析,通过解析n来获取子节点n的名称和属性p,并以可视化的图形节点方式,将所有的子节点n存入数据库中;

进而继续遍历结构关系r,将所有的子节点na按照结构关系ra依次建立拓扑连接,从而将一条完整的bpmn数据从三元组的形式转换到拓扑图的形式,存储到图形数据库neo4j中。

通过将上述获取的n,r,p以三元组形式存放到neo4j数据库中,代表的是名称为d的拓扑图的结构信息,其数据格式为:(节点,关系,属性),记作(n,r,p)。

同理,将图数据库neo4j中存储的各条三元组数据重复进行上述解析,得到各自对应的(n,r,p)格式的数据。

步骤六、用户在流程编辑前端输入查询条件,读出完整的基于bpmn标准协议的工作流数据;

在流程编辑界面前端,根据用户的查询条件将工作流数据从图数据库中读出,通过程序解析过程将(d,n,r)三元组数据快速组合成基于bpmn标准协议的数据,最终展示在前端。

具体过程为:

首先,执行图数据库neo4j的aql语句,逐条依次读出(n,r,p)格式的当前数据;

根据n通过key-value方式解析当前条数据中的所有子节点,根据r通过key-value方式解析为子节点与子节点之间的连接信息,即生成<incoming>与<outgoing>的关系,根据p通过key-value方式解析当前各子节点的位置和附加项。

最后,将解析到的子节点,连接信息、位置和附加项进行组合,得到完整的工作流数据进行展示到前端。

本发明实施例提供一种基于bpmn的工作流程导入方法,实现批量将基于bpmn的流程数据导入到neo4j中以图的形式进行存储,并且支持以可视化的方式从neo4j数据库中智能组合成基于bpmn的工作流,并在流程编辑前端显示,供实际的业务场景使用。

本发明支持基于bpmn1.0、bpmn2.0的工作流的解析读取,通过以图的形式储存节点、边及属性,大幅度地减少了重复的数据,从而减少了储存空间;同时,也支持从流程编辑前端界面将用户创建的工作流数据保存到neo4j中,实现完全自动化;

另一方面,本发明实例提供了一种快速从neo4j数据库中读取并推荐给用户的技术,所述方法包括:1)、读取neo4j中工作流的服务结构信息;2)、根据用户编辑需求,服务基于推荐算法快速组合;3)、各个服务经过组合以bpmn的形式返回到流程编辑界面前端;

再一方面,本发明实例支持对工作流的编辑、新增和删除功能;具体为:

首先、导入图数据库neo4j的基于bpmn的工作流数据集,包括多种格式的bpmn数据;工具批量读取导入的工作流数据之后,根据数据协议标准不同对数据集进行归类;针对每类中的各条工作流数据,通过读取流程的关键字,获取流程的名称d,以及工作流各个节点的属性n(名称,位置,附加项);同时,通过流程中的<incoming>和<outgoing>字段获取工作流的结构关系r,最终将基于bpmn的流程数据转成(d,n,r)格式。

然后,根据获取到的(d,n,r)格式的流程数据,根据流程名称d去校验该工作流是新增数据还是已有数据,并执行更新操作传入图数据库neo4j中,通过aql执行语句将解析后的三元组数据以图的形式存储。

本发明实施例一种基于前端读取图形数据库中子工作流的方法流程图,所述方法包括:

首先,利用图数据库neo4j中存放的各拓扑图,从中抽取工作流的:节点,关系和属性,记做(n,r,p)格式。

然后、根据查询条件,生成aql语言,从图数据库中将(n,r,p)数据读出,重新组合成基于bpmn的工作流数据;返回以bpmn的形式在前端界面展示。

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