【技术实现步骤摘要】
一种基于业务流程模型的微服务设计方法及系统
本专利技术属于计算机软件
(服务建模技术),尤其涉及一种基于业务流程模型的微服务设计方法。
技术介绍
作为一个广泛采用的工程技术,软件建模指在进行实际软件开发之前进行详细的设计,绘制出系统的蓝图,在系统需求与系统实现之间架起桥梁。通过软件建模,可以帮助开发人员对系统整体结构得到深入了解,帮助缩短开发周期,并提升开发质量。通常来说,无论是开发单体软件还是分布式架构的软件,设计人员需要在和用户沟通需求之后绘制出系统的业务流程模型(BusinessProcessModelingNotation,简称为BPMN)。BPMN模型在描述系统内、人员之间、作业顺序等业务信息流方面具有重要的作用。一方面,设计人员需要从上层抽象层面来思考系统流程与数据间的逻辑关系,梳理系统需要实现的功能,绘制出一个详细的BPMN模型,才能在前期确定好系统架构,开发出更加符合用户需求的软件。另一方面,BPMN模型也能帮助开发人员更好的理解系统内的业务流程以及数据流动情况,以便更好地理解业务流程和不同部门 ...
【技术保护点】
1.一种基于业务流程模型的微服务设计方法,其特征在于,包括以下步骤:/n步骤1:将业务流程图转换为BPMN工程模型;/n具体实现包括以下子步骤:/n步骤1.1:读取BPMN的JSON文件,根据不同的JSON文件标准解析包装到对应的业务流程模型中;/n步骤1.2:运用如下的解析转换策略转化为BPMN工程模型;/n对于用Gojs规范组织的源文件,运用Gojs转换策略将步骤1.1中得到的BPMN Gojs工程模型转换成为BPMN工程模型;Gojs模型中有Link和Node两个元素,Gojs规范中的Node元素封装了BPMN中的基本元素,包括泳池、泳道、事件、任务、网关;Gojs规 ...
【技术特征摘要】
1.一种基于业务流程模型的微服务设计方法,其特征在于,包括以下步骤:
步骤1:将业务流程图转换为BPMN工程模型;
具体实现包括以下子步骤:
步骤1.1:读取BPMN的JSON文件,根据不同的JSON文件标准解析包装到对应的业务流程模型中;
步骤1.2:运用如下的解析转换策略转化为BPMN工程模型;
对于用Gojs规范组织的源文件,运用Gojs转换策略将步骤1.1中得到的BPMNGojs工程模型转换成为BPMN工程模型;Gojs模型中有Link和Node两个元素,Gojs规范中的Node元素封装了BPMN中的基本元素,包括泳池、泳道、事件、任务、网关;Gojs规范中的Link元素则封装了BPMN中基本元素之间的关系;Gojs模型解析转换过程中会将Node元素转换为BPMN工程模型中的对应节点,即原Gojs模型中的泳池、泳道元素转换为BPMN工程中的泳池、泳道对象,原Gojs模型中的事件、任务元素转换为BPMN工程中的网关对象,原Gojs模型中的网关元素转换为BPMN工程中的网关对象,将Link转换为BPMN中的连接关系工程模型中的元素顺序;
对于用Activiti组织的源文件运用Activiti转换策略将步骤1.1中得到的BPMNActiviti工程模型转换成为BPMN工程模型;Activiti模型是一种嵌套模型,模型中节点最重要的属性有该节点的名称类型、该节点嵌套包含的子节点以及与该节点有关的所有连接关系;模型的组织层级结构是BPMN图包含泳池,泳池中包含泳道,泳道中包含事件、任务、网关、连接关系;解析转换过程中,迭代解析将原模型原Activiti模型中的泳池、泳道元素转换为BPMN工程中的泳池、泳道对象,原Activiti模型中的事件、任务元素转换为BPMN工程中的网关对象,原Activiti模型中的网关元素转换为BPMN工程中的网关对象;利用原Activiti中的层级关系以及链接关系,转换得到BPMN工程模型中对应节点的连接关系中;
步骤2:将BPMN工程模型转化为SD工程模型;
步骤3:将SD工程模型转换为SD外部存储模型供设计人员后续根据需要自行修改;
步骤4:运用转换规则分析SD工程模型进行微服务设计。
2.根据权利要求1所述的基于业务流程模型的微服务设计方法,其特征在于,步骤2的具体实现过程是:
将步骤1.2中得到的BPMN工程模型中的泳池泳道转换得到SD中的参与者,即对于BPMN工程模型中的泳池与泳道,都一一对应转化得到SD中的一个参与者;
对于BPMN工程模型中的用户任务转换到SD中一条同步消息与一条返回消息,其中同步消息的发送者是该用户任务所在的泳道对应的参与者,接受者是该任务所在的泳池对应的参与者;返回消息的发送者是该任务所在的泳池对应的参与者,接受者是该用户任务所在的泳道对应的参与者;
对于BPMN工程模型中的手工任务转换到SD中的一条自关联消息,该自关联消息的发送者是该手工任务所在的泳道对应的参与者,接受者是该手工任务所在的泳道对应的参与者;
对于BPMN工程模型中的服务任务转换到SD中的消息;其中分为两种情况,当服务任务下一个节点处于同一泳道时,生成一条异步消息,发送者是该服务任务所在的泳道对应的参与者,接受者是下一个节点所在的泳道对应的参与者;当服务任务下一节点处于同一泳道的时候,生成一条异步消息,发送者是该服务任务所在的泳道对应的参与者,接受者是该服务任务所在的泳池对应的参与者;
对于BPMN工程模型中的脚本任务转换到SD中的自关联消息,该自关联消息的发送者是该手工任务所在的泳池对应的参与者;接受者是该手工任务所在的泳池对应的参与者;
对于BPMN工程模型中的唯一网关转换到SD工程模型中的alt结构,并将后续任务转化放置到alt结构中对应的小分支内;
对于BPMN工程模型中的并行网关转换到SD工程模型中的par结构,并将后续任务转化放置到par结构中对应的小分支内。
3.根据权利要求1所述的基于业务流程模型的微服务设计方法,其特征在于,步骤3的具体实现包括以下子步骤:
步骤3.1:将步骤2中得到的SD工程模型转换为SD的JSON模型或SD的YAML模型,即将工程模型中的参与者与消息转换到JSON模型或者YAML模型中的参与者与消息;然后执行步骤3.2将生成的时序图以文件的形式进行导出保存方便后续进行细化设计;用户根据需要执行步骤3.3将生成的时序图以图片的形式进行导出保存方便用户展示使用;
步骤3.2:直接输出对应的SD的JSON模型或SD的YAML模型,设计人员获取到JSON模型或YAML模型之后能够在根据自己的需要进一步修改SD模型,从而更加细粒度的进行系统设计;
步骤3.3:获取到步骤3.2修改后的JSON文件或者YAML文件之后运用相应的SD底层绘制工具转换得到SD的PNG图片。
4.根据权利要求1-3任意一项所述的基于业务流程模型的微服务设计方法,其特征在于,步骤4的具体实现包括以下子步骤:
步骤4.1:运用转换规则分析步骤2中得到的SD工程模型生成微服务代码工程模型,即对于每个参与者,会生成一个对应的微服务,然后将与该参与者关联的相关消息,自关联消息、同步消息、异步消息转换生成该微服务下的一个API接口模型,消息上的参数对应转化到接口上的参数;
步骤4.2:根据微服务代码工程模型生成逻辑代码,每个微服务对应生成一个Java文件,该微服务下的API接口模型会对应生成放置于该Java文件内帮助开发人员进行开发;
步骤4.3:将逻辑代码打包。
5.一种基于业务流程模型的微服务设计系统,其特征在于,包括以下模块:
模块一...
【专利技术属性】
技术研发人员:李兵,朱江源,王健,熊燚铭,
申请(专利权)人:武汉大学,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。