【技术实现步骤摘要】
一种基于多类特征和多个度量指标的微服务架构识别方法
[0001]本专利技术属于软件工程逆向工程中的架构模式识别领域,尤其涉及一种基于多类特征和多个度量指标的微服务架构识别方法。
技术介绍
[0002]一个具有一定规模的软件系统很可能会存在复杂的演进过程,而在系统的演进过程中可能会出现系统架构信息未能及时更新或文档缺失的问题,使得软件系统的真实架构信息存在偏差,进而给后期的维护带来巨大负担。因此,在软件工程逆向工程领域,对软件系统进行架构识别从而尽量获取系统的真实架构信息,是一项重要的工作。
[0003]在架构识别技术的研究中,除了传统的软件聚类技术基于软件开发中高内聚低耦合的原则将软件系统中的实体聚类成一定抽象粒度的组件从而得到系统结构视图,帮助目标系统的开发与维护人员理解系统架构的状态外,遗传算法、模式匹配、概念分析等技术也开始逐渐用于架构识别当中。但是,同软件聚类一样,这些架构识别技术更多针对的是通用场景,并未考虑特定架构的特征,采用这些方法获取的结果很可能丢失了很多跟实际架构相关的信息,使得识别的结果与真实结果相差较大,因此,针对不同的软件架构设计有针对性的架构识别方法十分必要。
[0004]目前最常用的软件架构包括分层架构、事件驱动架构、微服务架构等,针对分层架构的识别方法近些年来学术界已经提出了不少,识别效果也有了长足的进步;针对事件驱动架构识别的研究资料相比之下就少得多,2019年有相关学者提出了基于本体的事件驱动程序架构模式识别方法,一定程度上给相关研究提供了新的思路;而作为这几年应用越 ...
【技术保护点】
【技术特征摘要】
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)中对目标软件项目进行预...
【专利技术属性】
技术研发人员:李必信,吴奕杭,王璐璐,孔祥龙,廖力,周颖,
申请(专利权)人:东南大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。