当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于多类特征和多个度量指标的微服务架构识别方法技术

技术编号:27533392 阅读:27 留言:0更新日期:2021-03-03 11:15
本发明专利技术公开了一种基于多类特征和多个度量指标的微服务架构识别方法,针对微服务架构相对于其他软件架构的特点构建了微服务架构识别的决策模型,通过静态分析技术获取目标软件项目中的微服务架构特征度量指标信息,最后利用决策模型计算输入项目使用微服务架构的概率。与现有的架构识别方法相比,本发明专利技术方法扩充了微服务架构的特征,并针对每个度量指标设计符合其特性的计算函数,识别准确率更高,识别结果中包含更丰富的内容。识别结果中包含更丰富的内容。识别结果中包含更丰富的内容。

【技术实现步骤摘要】
一种基于多类特征和多个度量指标的微服务架构识别方法


[0001]本专利技术属于软件工程逆向工程中的架构模式识别领域,尤其涉及一种基于多类特征和多个度量指标的微服务架构识别方法。

技术介绍

[0002]一个具有一定规模的软件系统很可能会存在复杂的演进过程,而在系统的演进过程中可能会出现系统架构信息未能及时更新或文档缺失的问题,使得软件系统的真实架构信息存在偏差,进而给后期的维护带来巨大负担。因此,在软件工程逆向工程领域,对软件系统进行架构识别从而尽量获取系统的真实架构信息,是一项重要的工作。
[0003]在架构识别技术的研究中,除了传统的软件聚类技术基于软件开发中高内聚低耦合的原则将软件系统中的实体聚类成一定抽象粒度的组件从而得到系统结构视图,帮助目标系统的开发与维护人员理解系统架构的状态外,遗传算法、模式匹配、概念分析等技术也开始逐渐用于架构识别当中。但是,同软件聚类一样,这些架构识别技术更多针对的是通用场景,并未考虑特定架构的特征,采用这些方法获取的结果很可能丢失了很多跟实际架构相关的信息,使得识别的结果与真实结果相差较大,因此,针对不同的软件架构设计有针对性的架构识别方法十分必要。
[0004]目前最常用的软件架构包括分层架构、事件驱动架构、微服务架构等,针对分层架构的识别方法近些年来学术界已经提出了不少,识别效果也有了长足的进步;针对事件驱动架构识别的研究资料相比之下就少得多,2019年有相关学者提出了基于本体的事件驱动程序架构模式识别方法,一定程度上给相关研究提供了新的思路;而作为这几年应用越发广泛的微服务架构,则还未有相关的有针对性的研究成果出现。
[0005]微服务架构的火热与其架构特点不无关系,它跳脱了传统的单体应用,提倡将单一的应用程序划分成一组小型的服务,每个服务都围绕着具体业务进行构建,使用特定的组件完成特定功能,并且能够被独立地部署到生产环境中,服务之间采用轻量级的通信机制进行沟通,互相协调、配合,为用户提供最终价值。基于上述特征,微服务架构体现出了复杂度可控、技术选型灵活、容错率高、可扩展性强等特点。
[0006]因此,在微服务架构的识别中,除了应用已有的架构识别、架构恢复技术外,还应该将架构本身的特性结合起来,使识别效果更符合真实情况。

技术实现思路

[0007]本专利技术的目的是提供一种能够基于构建的识别微服务架构的决策模型和获取到的输入项目中符合微服务架构典型特征的度量指标信息,通过度量指标信息和决策模型进行计算得到识别出的该输入项目使用微服务架构的总体概率以及不符合原因。
[0008]为了实现上述目的,本专利技术的技术方案如下:一种基于多类特征和多个度量指标的微服务架构识别方法,包括如下步骤:
[0009]步骤1)根据微服务架构的特性构建微服务架构识别的决策模型P
a
,用于计算目标
软件项目使用微服务架构的概率P,其中a为决策模型中的度量指标;
[0010]步骤2)输入一个目标软件项目的源码,对该目标软件项目进行预处理得到粒度大小可能为单个子服务实体b
i
的集合B={b1,b2,

,b
n
};
[0011]步骤3)基于步骤2)中所获取的实体集合B,分别对B中的各实体b
i
进行静态分析检测其是否使用了决策模型中的度量指标相关的组件,并将相关信息存入微服务信息和组件库L;
[0012]步骤4)基于步骤3)中建立的微服务信息和组件库L获取决策模型中各度量指标相关的子服务数量信息x;
[0013]步骤5)基于步骤4)中获取的度量指标相关子服务数量信息x利用各指标相应的概率值计算函数和决策模型函数进行计算得到目标软件项目使用微服务架构的概率值P。
[0014]进一步的,步骤1)中构建的决策模型具体内容如下:
[0015](1)对微服务架构的特征进行总结和归纳,将特征划分为三类:规模特征、构件特征和拓扑特征,并选取具有代表性和通用性的特性作为微服务架构识别的度量指标,构建度量指标集合A={a1,a2,a3,a4},其中a1为规模特征中的子服务数量度量指标,a2和a3分别为构件特征中的服务注册与发现组件、负载均衡组件度量指标,a4为拓扑特征中的网关组件度量指标;
[0016](2)根据每个度量指标a
i
的特点为各度量指标定义一个概率值计算函数f
i
(x),该计算函数根据目标软件项目中的度量指标相关数量信息x计算其对于微服务架构决策模型的加成概率值P
i
。具体如下:
[0017]a)子服务数量度量指标的概率值计算函数为:
[0018][0019]其中x为从微服务信息和组件库中获取到的子服务数量,P1=f1(x)为根据子服务数量计算出的子服务数量度量指标在决策模型中的加成概率值;
[0020]b)服务注册与发现组件度量指标的概率值计算函数为:
[0021][0022]其中x为从微服务信息和组件库中获取到的包含服务注册与发现组件的子服务数量,P2=f2(x)为根据包含服务注册与发现组件的子服务数量计算出的服务注册与发现组件度量指标在决策模型中的加成概率值;
[0023]c)负载均衡组件度量指标的概率值计算函数为:
[0024][0025]其中x为从微服务信息和组件库中获取到的包含负载均衡组件的子服务数量,P3=f3(x)为根据包含负载均衡组件的子服务数量计算出的负载均衡组件度量指标在决策模型中的加成概率值;
[0026]d)网关组件度量指标的概率值计算函数为:
[0027]f4(x)=IA(x)
[0028]其中x为从微服务信息和组件库中获取到的包含网关组件的子服务数量,
[0029]P4=f4(x)为根据包含网关组件的子服务数量计算出的网关组件度量指标在决策模型中的加成概率值;
[0030](3)根据每个度量指标的重要性在最终的决策模型中为各度量指标的加成概率值赋予特定的权重,得到最终的决策模型函数。设子服务数量、服务注册与发现组件、负载均衡组件以及网关组件这四个度量指标的加成概率值在最终的决策模型函数中所占的权重分别用w1、w2、w3和w4表示,w1=0.3,w2=0.5,w3=0.1,w4=0.1。最终的决策模型函数为:
[0031]P=w1*P1+w2*P2+w3*P3+w4*P4;
[0032]其中P为输入目标软件项目使用微服务架构的概率值。
[0033]进一步的,步骤2)中对目标软件项目进行预处理得到粒度大小可能为单个子服务实体的集合的具体流程如下:
[0034]遍历输入项目中的所有文件夹目录,其中src文件夹的上级文件夹目录可能包含单个子服务,将这些src文件夹的上级文件夹目录路径保存到存储可能为单个子服务实体b
i
的集合B={b1,b2,

,b
n
}中。
[0035]进一步的,步骤3本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多类特征和多个度量指标的微服务架构识别方法,其特征在于,该方法包括如下步骤:步骤1)根据微服务架构的特性构建微服务架构识别的决策模型P
a
,用于计算目标软件项目使用微服务架构的概率P,其中a为决策模型中的度量指标;步骤2)输入一个目标软件项目的源码,对该目标软件项目进行预处理得到粒度大小可能为单个子服务实体b
i
的集合B={b1,b2,

,b
n
};步骤3)基于步骤2)中所获取的实体集合B,分别对B中的各实体b
i
进行静态分析检测其是否使用了决策模型中的度量指标相关的组件,并将相关信息存入微服务信息和组件库L;步骤4)基于步骤3)中建立的微服务信息和组件库L获取决策模型中各度量指标相关的子服务数量信息x;步骤5)基于步骤4)中获取的度量指标相关子服务数量信息x利用各指标相应的概率值计算函数和决策模型函数进行计算得到目标软件项目使用微服务架构的概率值P。2.根据权利要求1中所述的基于多类特征和多个度量指标的微服务架构识别方法,其特征在于:所述步骤1)中决策模型的构建,具体如下:(1)对微服务架构的特征进行总结和归纳,将特征划分为三类:规模特征、构件特征和拓扑特征,并选取具有代表性和通用性的特性作为微服务架构识别的度量指标,构建度量指标集合A={a1,a2,a3,a4},其中a1为规模特征中的子服务数量度量指标,a2和a3分别为构件特征中的服务注册与发现组件、负载均衡组件度量指标,a4为拓扑特征中的网关组件度量指标;(2)根据每个度量指标a
i
的特点为各度量指标定义一个概率值计算函数f
i
(x),该计算函数根据目标软件项目中的度量指标相关数量信息x计算其对于微服务架构决策模型的加成概率值P
i
,具体如下:a)子服务数量度量指标的概率值计算函数为:其中x为从微服务信息和组件库中获取到的子服务数量,P1=f1(x)为根据子服务数量计算出的子服务数量度量指标在决策模型中的加成概率值;b)服务注册与发现组件度量指标的概率值计算函数为:其中x为从微服务信息和组件库中获取到的包含服务注册与发现组件的子服务数量,P2=f2(x)为根据包含服务注册与发现组件的子服务数量计算出的服务注册与发现组件度量指标在决策模型中的加成概率值;c)负载均衡组件度量指标的概率值计算函数为:其中x为从微服务信息和组件库中获取到的包含负载均衡组件的子服务数量,P3=f3(x)为根据包含负载均衡组件的子服务数量计算出的负载均衡组件度量指标在决策模型中的加成概率值;
d)网关组件度量指标的概率值计算函数为:f4(x)=IA(x)其中x为从微服务信息和组件库中获取到的包含网关组件的子服务数量,P4=f4(x)为根据包含网关组件的子服务数量计算出的网关组件度量指标在决策模型中的加成概率值;(3)根据每个度量指标的重要性在最终的决策模型中为各度量指标的加成概率值赋予特定的权重,得到最终的决策模型函数,设子服务数量、服务注册与发现组件、负载均衡组件以及网关组件这四个度量指标的加成概率值在最终的决策模型函数中所占的权重分别用w1、w2、w3和w4表示,w1=0.3,w2=0.5,w3=0.1,w4=0.1,最终的决策模型函数为:P=w1*P1+w2*P2+w3*P3+w4*P4其中P为输入目标软件项目使用微服务架构的概率值。3.根据权利要求1中所述的基于多类特征和多个度量指标的微服务架构识别方法,其特征在于:所述步骤2)中对目标软件项目进行预...

【专利技术属性】
技术研发人员:李必信吴奕杭王璐璐孔祥龙廖力周颖
申请(专利权)人:东南大学
类型:发明
国别省市:

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

1