[发明专利]基于动静态调用关系、并反映业务能力的微服务识别方法在审
| 申请号: | 202211470917.9 | 申请日: | 2022-11-23 |
| 公开(公告)号: | CN115730069A | 公开(公告)日: | 2023-03-03 |
| 发明(设计)人: | 章程;吴斯杰;王伟 | 申请(专利权)人: | 安徽大学 |
| 主分类号: | G06F16/35 | 分类号: | G06F16/35;G06F8/30 |
| 代理公司: | 合肥市泽信专利代理事务所(普通合伙) 34144 | 代理人: | 江楠竹 |
| 地址: | 230601 安徽省*** | 国省代码: | 安徽;34 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 静态 调用 关系 反映 业务 能力 微服 识别 方法 | ||
1.基于动静态调用关系、并反映业务能力的微服务识别方法,其用于对软件架构进行识别迁移,其特征在于,所述微服务识别方法包括以下步骤:
S1,获取单体系统的原始动态执行轨迹、原始静态调用关系,对原始动态执行轨迹进行过滤得到处理后的动态执行轨迹,对原始静态调用关系进行精简得到处理后的静态调用关系;
其中,所述对原始动态执行轨迹进行过滤的方法为:判断每一条原始动态执行轨迹是否含有操作数据库/操作实体类的方法;若是,则对这条轨迹进行保留;若否,则对这条轨迹进行删除;
所述对原始静态调用关系进行精简的方法为:从底部的起始点方法开始进行调用关系构造,找寻每个方法被哪些其他方法调用;不断向上进行构造直到寻找不到主动调用,保留找寻到的调用关系;
其中,处理后的动态执行轨迹和处理后的静态调用关系用于反映业务能力;
S2,统计处理后的动态执行轨迹、处理后的静态调用关系中的元素的共现次数,并构建出关联矩阵;
S3,基于关联矩阵,使用聚类识别算法得到微服务识别结果。
2.根据权利要求1所述的基于动静态调用关系、并反映业务能力的微服务识别方法,其特征在于,S1中,运行测试用例,并通过动态执行轨迹收集工具获取原始动态执行轨迹;
通过静态调用分析工具获取原始静态调用关系。
3.根据权利要求2所述的基于动静态调用关系、并反映业务能力的微服务识别方法,其特征在于,所述动态执行轨迹收集工具通过程序运行生成原始动态执行轨迹;
所述静态调用分析工具对程序的源代码进行分析生成原始静态调用关系。
4.根据权利要求1所述的基于动静态调用关系、并反映业务能力的微服务识别方法,其特征在于,S2中,统计每一对元素在处理后的静态调用关系下的共现次数N1,统计每一对元素在处理后的动态执行轨迹下的共现次数N2;
将共现次数N1与共现次数N2进行叠加,得到单体系统中所有元素之间的关联性并构成关联矩阵。
5.根据权利要求4所述的基于动静态调用关系、并反映业务能力的微服务识别方法,其特征在于,所述关联矩阵表示为其中,n为单体系统中所有元素的总个数,1<k1<k2<n;
与相同,均表征第k1个元素和第k2个元素的总共现次数;w11、…、wkk、…、wnn设为定值。
6.根据权利要求1所述的基于动静态调用关系、并反映业务能力的微服务识别方法,其特征在于,S3中,在使用聚类算法前,指定微服务识别的个数N,作为聚类识别算法的初始中心点的个数。
7.根据权利要求6所述的基于动静态调用关系、并反映业务能力的微服务识别方法,其特征在于,S3包括以下步骤:
S301,选择初始中心点;其中,所述初始中心点根据关联矩阵得到,共N个,并满足不同初始中心点之间具有足够的差异性;
S302,对非中心点元素进行聚类划分;其中,将非中心点元素加入到与它关联性最大的中心点所属类簇当中,构成具体类簇;
S303,对后续中心点进行选择;其中,对于每一个具体类簇,选择一个与其他元素关联性最大的元素当作是新的中心点;
S304,重复S302、S303,直到达到一个最大迭代次数或者每次的中心点不再变化,微服务别聚类算法结束并得到N组元素聚类簇;
S305,识别元素聚类簇中元素特征,确定微服务的服务名。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽大学,未经安徽大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211470917.9/1.html,转载请声明来源钻瓜专利网。





