一种软件架构优化方法、装置和存储介质制造方法及图纸

技术编号:34459402 阅读:13 留言:0更新日期:2022-08-06 17:15
本发明专利技术提供了一种软件架构优化方法、装置和存储介质,从软件架构的开发到运行的整个过程出发,依次构表征组件间调用关系的静态调用关系网络,表征各开发人员间协作关系的团队分工结构,表征各服务间修改关系的服务联动修改关系网络以及表征开发人员间沟通紧密程度的沟通结构。然后以静态调用关系网络、团队分工结构、服务联动修改关系网络以及沟通结构作为软件架构优化的参考信息,对软件架构进行优化。相较于传统的架构治理更加的全面和可靠,并且因为是通过对架构本身所产生的数据进行的建模,架构整个生命周期中均可进行建模和治理,不会受到人员变动、经验等非技术因素的影响,使得架构的优化治理更加的客观可靠。使得架构的优化治理更加的客观可靠。使得架构的优化治理更加的客观可靠。

【技术实现步骤摘要】
一种软件架构优化方法、装置和存储介质


[0001]本专利技术涉及软件开发
,具体涉及一种软件架构优化方法、装置和存储介质。

技术介绍

[0002]随着互联网技术的不断发展,传统的单体应用架构模式已经无法满足爆炸式增长的网络访问流量,具有更高吞吐量的分布式微服务架构解决了单体应用架构的吞吐量低、单个应用过于庞大、团队工作互相干扰大等问题。
[0003]而为了保证在软件架构的复杂性不断增加的情况下,使软件系统保持持续稳定的运行和更新的能力,现在亟需能够对软件架构进行更加快速客观调整的优化方法。

技术实现思路

[0004]为了解决现有技术存在的优化速度慢、能力低的问题,本专利技术提供了一种软件架构优化方法、装置和存储介质,其具有优化能力更强、速度更快、不依赖于人工经验等特点
[0005]根据本专利技术具体实施方式提供的一种软件架构优化方法,包括:
[0006]基于分布式架构中每个服务组件和其他服务组件间的调用关系,构建静态调用关系网络;
[0007]基于代码库的代码提交记录构建第一二分网络;
[0008]将所述第一二分网络向开发人员方向上进行单模映射,得到表征各开发人员间协作关系的团队分工结构;
[0009]将所述第一二分网络向所述代码库方向上进行单模映射,得到表征各服务间修改关系的服务联动修改关系网络;
[0010]基于所述开发人员之间的沟通信息构建所述沟通信息对应的沟通方式和所述开发人员之间的第二二分网络;
[0011]将所述第二二分网络向所述开发人员方向上进行单模映射,得到用于表征所述开发人员间沟通紧密程度的沟通结构;
[0012]生成架构优化的参考信息,所述参考信息是软件架构优化的基础,所述参考信息至少包括:所述静态调用关系网络、所述服务联动修改关系网络、所述团队分工结构和所述沟通结构。
[0013]进一步地,所述参考信息还包括:动态调用关系网络,所述动态调用关系网络的构建过程包括:
[0014]获取分布式架构运行时的调用链追踪数据;
[0015]基于所述调用链追踪数据构建所述服务组件在运行时的动态调用关系网络。
[0016]进一步地,所述基于分布式架构中每个服务组件和其他服务组件间的调用关系,构建静态调用关系网络,包括:
[0017]对分布式架构的源代码构造语法树;
[0018]对所述语法树进行解析,得到服务组件对外提供的接口资源以及与其他服务组件的调用关系;
[0019]将每个服务组件的接口资源通过所述调用关系与其他服务组件连接,构成所述静态调用关系网络。
[0020]进一步地,所述基于所述调用链追踪数据构建所述服务组件的动态调用关系网络,包括:
[0021]确定调用链追踪数据中追踪标签的类型;
[0022]基于所述追踪标签的类型确定调用关系的调用方和被调用方;
[0023]将所述调用方与所述被调用方作为节点,所述追踪标签作为关联关系,相应的调用链追踪数据的标识作为所述关联关系的属性构成调用关系图。
[0024]进一步地,所述基于所述调用链追踪数据构建所述服务组件的动态调用关系网络,还包括:
[0025]对参与实现微服务功能的调用链进行聚合,若两个调用链追踪数据的标识不相同,但都具有相同的微服务参与节点且所述参与节点的调用顺序相同,则将两个调用链合并为一个路径。
[0026]进一步地,所述将所述第一二分网络向开发人员方向上进行单模映射,得到表征各开发人员间协作关系的团队分工结构,包括:
[0027]若所述第一二分网络为连通图,则将得到的连通图向所述开发人员方向上进行单模映射,得到连通图的单模映射图;
[0028]若所述第一二分网络为非连通图,则获取非连通图的所有子图,对每一个子图进行开发人员方向上的单模映射;
[0029]对非连通子图产生的单模映射图进行合并,得到非连通图的单模映射图;
[0030]基于预设社区发现算法对所述连通图的单模映射图和所述非连通图的单模映射图进行聚类,得到所述团队分工结构。
[0031]进一步地,所述参考信息还包括:所述静态调用关系网络、所述服务联动修改关系网络、所述团队分工结构和所述沟通结构之间的相似度。
[0032]根据本专利技术具体实施方式提供的一种软件架构优化装置,包括:
[0033]静态调用关系网络模块,用于基于分布式架构中每个服务组件和其他服务组件间的调用关系,构建静态调用关系网络;
[0034]第一二分网络构建模块,用于基于代码库的代码提交记录构建第一二分网络;
[0035]团队分工结构模块,用于将所述第一二分网络向开发人员方向上进行单模映射,得到表征各开发人员间协作关系的团队分工结构;
[0036]服务联动修改关系网络模块,用于将所述第一二分网络向所述代码库方向上进行单模映射,得到表征各服务间修改关系的服务联动修改关系网络;
[0037]第二二分网络构建模块,用于基于所述开发人员之间的沟通信息构建所述沟通信息对应的沟通方式和所述开发人员之间的第二二分网络;
[0038]沟通结构模块,用于将所述第二二分网络向所述开发人员方向上进行单模映射,得到用于表征所述开发人员间交互方式的沟通结构;以及
[0039]参考信息生成模块,用于生成架构优化的参考信息,所述参考信息是软件架构优
化的基础,所述参考信息至少包括:所述静态调用关系网络、所述服务联动修改关系网络、所述团队分工结构和所述沟通结构。、
[0040]进一步地,所述软件架构优化装置还包括:
[0041]动态调用关系网络模块,用于基于分布式架构运行时的调用链追踪数据构建所述服务组件的动态调用关系网络。
[0042]根据本专利技术具体实施方式提供的一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如上所述的软件架构优化方法的各个步骤。
[0043]本专利技术所提供的软件架构优化方法,从软件架构从开发到运行的整个过程出发,基于分布式架构中每个服务组件和其他服务组件间的调用关系,构建静态调用关系网络。基于代码库的代码提交记录构建第一二分网络,然后普将第一二分网络向开发人员方向上进行单模映射,得到表征各开发人员间协作关系的团队分工结构。将第一二分网络向代码库方向上进行单模映射,得到表征各服务间修改关系的服务联动修改关系网络。再基于开发人员之间的沟通信息构建沟通信息对应的沟通方式和开发人员之间的第二二分网络。将第二二分网络向开发人员方向上进行单模映射,得到用于表征开发人员间沟通紧密程度的沟通结构。最后以静态调用关系网络、服务联动修改关系网络、团队分工结构和沟通结构作为软件架构优化的基础对软件架构进行优化。本专利技术提供的软件架构优化方法基于多维度数据源和图论建模构建软件架构本身的拓扑图,相较于传统的架构治理更加的全面和可靠,并且因为是对架构本身所产生的数据进行的建模,架构整个生命周期中均可进行建模和治理,不会受到人员变动本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件架构优化方法,其特征在于,包括:基于分布式架构中每个服务组件和其他服务组件间的调用关系,构建静态调用关系网络;基于代码库的代码提交记录构建第一二分网络;将所述第一二分网络向开发人员方向上进行单模映射,得到表征各开发人员间协作关系的团队分工结构;将所述第一二分网络向所述代码库方向上进行单模映射,得到表征各服务间修改关系的服务联动修改关系网络;基于所述开发人员之间的沟通信息构建所述沟通信息对应的沟通方式和所述开发人员之间的第二二分网络;将所述第二二分网络向所述开发人员方向上进行单模映射,得到用于表征所述开发人员间沟通紧密程度的沟通结构;生成架构优化的参考信息,所述参考信息是软件架构优化的基础,所述参考信息至少包括:所述静态调用关系网络、所述服务联动修改关系网络、所述团队分工结构和所述沟通结构。2.根据权利要求1所述的方法,其特征在于,所述参考信息还包括:动态调用关系网络,所述动态调用关系网络的构建过程包括:获取分布式架构运行时的调用链追踪数据;基于所述调用链追踪数据构建所述服务组件在运行时的动态调用关系网络。3.根据权利要求1所述的方法,其特征在于,所述基于分布式架构中每个服务组件和其他服务组件间的调用关系,构建静态调用关系网络,包括:对分布式架构的源代码构造语法树;对所述语法树进行解析,得到服务组件对外提供的接口资源以及与其他服务组件的调用关系;将每个服务组件的接口资源通过所述调用关系与其他服务组件连接,构成所述静态调用关系网络。4.根据权利要求2所述的方法,其特征在于,所述基于所述调用链追踪数据构建所述服务组件的动态调用关系网络,包括:确定调用链追踪数据中追踪标签的类型;基于所述追踪标签的类型确定调用关系的调用方和被调用方;将所述调用方与所述被调用方作为节点,所述追踪标签作为关联关系,相应的调用链追踪数据的标识作为所述关联关系的属性构成调用关系图。5.根据权利要求4所述的方法,其特征在于,所述基于所述调用链追踪数据构建所述服务组件的动态调用关系网络,还包括:对参与实现微服务功能的调用链进行聚合,若两个调用链追踪数据的标识不相同,但都具有相同的微服务参与节点且所述参与节点的调用顺序相同,则将两个调用链合并为一个路径。6.根据...

【专利技术属性】
技术研发人员:夏思雨
申请(专利权)人:思特沃克软件技术北京有限公司
类型:发明
国别省市:

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

1