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

基于功能特性与微服务关联度的单体应用分解工具及方法技术

技术编号:28941176 阅读:26 留言:0更新日期:2021-06-18 21:45
本发明专利技术公开一种基于功能特性与微服务关联度的单体应用分解工具,在进行单体应用微服务化分解的过程中,自动化分解工具基于一组软件功能特性:关联后端、数据计算、通知、外观、用户偏好、信息传输、数据存储、搜索、时效性、功能扩展、软件开发、快捷键,通过用户对于软件功能进行特性评估,结合本工具提供的微服务标准库计算得到的特性与微服务关联度,计算出每一个软件功能适合进行微服务化的权重,为单体应用的微服务化分解提供了衡量指标,本发明专利技术同时也提供了管理员功能,可以对微服务标准库中的数据进行添加修改,从而不断提高特性与微服务关联度的准确度与适用范围,用户也可以保存评估得到的结果,以便对于后续的微服务重构开发提供指导。

【技术实现步骤摘要】
基于功能特性与微服务关联度的单体应用分解工具及方法
本专利技术涉及单体应用的微服务分解,具体涉及一种基于软件功能特性与微服务关联度的单体应用微服务分解工具及其分解方法。
技术介绍
单体应用架构是传统的软件架构方式,一般被认为是将所有的功能都在一个应用中进行开发。不太复杂的单体应用很容易开发、测试和部署,但是随着应用规模的扩大,单体应用的劣势逐渐显现出来。例如,过于复杂和难以理解的单体应用会对处理bug带来阻碍;而庞大的单体架构也会降低开发的进展,由于更长的启动时间,持续开发的效率也会大大降低。为了解决上述问题,微服务架构被提出,这是一种灵活的、松耦合的架构,由Lewis和Fowler最先提出。微服务架构指的是一组小型的、单独运行的、通过轻量级机制交流的服务所构成的应用架构。相比单体应用,微服务架构的应用由更好的独立部署性和扩展性。但是单体应用并不是银弹,在拥有上述优点的同时也带来了很多问题,其中最重要的一个问题就是如何高效地将单体应用分解为微服务应用。不合适的分解方式可能导致开发出的应用开销巨大。换言之,单体应用的微服务分解粒度是一个具有挑战性的难点。目前已经有一些自动化或者半自动化的微服务分解方法。以ServiceCutter为代表的方法提供了自动化的成熟分析工具,ServiceCutter基于无向带权图通过切割集群的方式得到微服务模块,但是这种方式要求使用者提供特定的预期模型,需要对待分解的系统进行详尽的分析,而这些分析结果有时候是不容易获取的。以APIanalysis为代表的方法基于OpenAPI分析来获取合理的微服务分解粒度,但是这种方法依赖定义准确、描述详细的接口,因此在一些情况下这些信息很难处理。以Dataflow-driven为代表的方法基于数据流对待分解软件的内部组成(数据库、操作等)进行集群划分,但是这一方法在高内聚、低耦合衡量指标下相比前两种方法并没有优势。上述三种方法的共同缺点是,它们不能够产生可运行的微服务实例,也就是说,所给出的方法停留在理论层面。本专利技术提供的方法基于功能模块和功能点,通过计算它们与微服务之间的关联度,得到一系列微服务候选,从而直接为微服务化的重构提供了指导,具有实现的可行性。同时,在高内聚、低耦合的衡量指标下,本专利技术分析得到的微服务候选相比上述方法有很大的优势,因此对于实际开发也有很好的指导作用。
技术实现思路
本专利技术提供了一种基于软件功能特性与微服务关联度的单体应用微服务分解工具及其分解方法,目标是解决单体应用微服务分解指导的问题。为此目的,本专利技术提供了一种基于软件功能特性与微服务关联度的单体应用微服务分解工具,包括以下模块:M1:StatisticsService模块,用于使管理者更新各项特性与微服务关联度权重以及后续能够将作为标准的单体应用微服务分解结果插入到微服务标准库中;M2:AnalyseService模块,用于使使用者获取各项特性与微服务关联度权重;M3:Eureka模块,与M1和M2相连,用于对M1和M2进行注册管理,确保服务模块的正常运行;M4:微服务标准库Database,与M1和M2相连,用于存储微服务分解基准以及所述功能特性与微服务关联度权重,以提供给M1和M2使用;M5:管理者前端显示界面Managers,与M1相连,用于支持管理者使用M1模块提供的功能;M6:用户前端显示界面Users,与M2相连,用于支持使用者使用M2模块提供的功能,进行单体应用微服务化分解的分析和分析数据的存储。所述M1中各项特性包括:前提条件Precondition、计算Computation、数据Data、混合·关联时间Hybrid.TimeRelated、混合·开放性Hybrid.Openness和其他Other;所述前提条件Precondition包含关联后端BackendRelated特性;所述计算Computation包含数据计算DataComputation特性;所述数据Data包含通知Notification、外观Appearance、用户偏好Preference、信息传输InformationTransmission和数据存储DataStorage特性;所述混合·关联时间Hybrid.TimeRelated包含搜索Search和时效性Timeliness特性;所述混合·开放性Hybrid.Openness包含功能扩展FunctionExtension和软件开发SoftwareDevelopment特性;所述其他Other包含快捷键HotKey特性。所述M2具体为:使用者在web页面上输入自己所分析应用的功能模块、功能点和各个功能点的特性能够自动获得每一个功能点是否适合微服务的权重;并且可以.将分析后的分解结果存储到本地。本专利技术还提供了一种基于上述分解工具的分解方法,包括以下步骤:S1:管理者将微服务标准库导入MySQLWorkbench中的数据库,微服务标准库是我们提供的一组微服务分解基准,其中每条数据包含:应用名称、功能名称、是否适合微服务、是否关联后端、是否是数据计算相关、是否是通知相关、是否是外观相关、是否是用户偏好相关、是否是信息传输相关、是否是数据存储相关、是否是搜索相关、是否是时效性相关、是否是功能扩展相关、是否是软件开发相关、是否是快捷键相关;S2:管理者可以通过统计服务中的更新功能特性与微服务关联度权重功能计算更新各项特性与微服务关联度权重。计算方式为:若在微服务标准库中有m条数据中包含功能特性A,在这m条数据中有n条数据是适合微服务的,那么功能特性A与微服务关联度的权重就为n/m;S3:管理者可以通过统计服务中的插入新的微服务分解基准功能将认为合适作为标准的单体应用微服务分解结果插入到微服务标准库中,所插入的数据格式符合S1的描述;S4:普通使用者可以通过分析服务中的获取功能特性与微服务关联度权重功能获取各项特性与微服务关联度权重,这些权重是S2中计算得到的;S5:普通使用者在web页面上输入自己所分析的应用的功能模块、功能点和各个功能点的特性,本工具可以根据各项特性与微服务关联度权重计算得到每一个功能点是否适合微服务的权重;S6:普通使用者可以通过分析服务中的存储分析后的应用数据功能存储分析后的分解结果,存储格式为.csv格式。与现有技术相比,本专利技术的技术效果如下:通过分析单体应用的功能模块和功能点,可以较为高效地对单体应用进行微服务化分解的分析。附图说明图1为本专利技术的基于SpringCloud的单体应用微服务分解工具架构示意图。图2为本专利技术的应用功能微服务相关特性划分示意图。图3为本专利技术的应用功能的微服务关联度评估算法流程图。具体实施方式下面结合附图和具体实施例对本专利技术做进一步详细说明。如图1所示,本专利技术的一种基于软件功能特性与微服务关联度的单体本文档来自技高网
...

【技术保护点】
1.基于功能特性与微服务关联度的单体应用分解工具,其特征在于:包括以下模块:/nM1:StatisticsService模块,用于使管理者更新各项特性与微服务关联度权重以及后续能够将作为标准的单体应用微服务分解结果插入到微服务标准库中;/nM2:AnalyseService模块,用于使使用者获取各项特性与微服务关联度权重;/nM3:Eureka模块,与M1和M2相连,用于对M1和M2进行注册管理,确保服务模块的正常运行;/nM4:微服务标准库Database,与M1和M2相连,用于存储微服务分解基准以及所述功能特性与微服务关联度权重,以提供给M1和M2使用;/nM5:管理者前端显示界面Managers,与M1相连,用于支持管理者使用M1模块提供的功能;/nM6:用户前端显示界面Users,与M2相连,用于支持使用者使用M2模块提供的功能,进行单体应用微服务化分解的分析和分析数据的存储。/n

【技术特征摘要】
1.基于功能特性与微服务关联度的单体应用分解工具,其特征在于:包括以下模块:
M1:StatisticsService模块,用于使管理者更新各项特性与微服务关联度权重以及后续能够将作为标准的单体应用微服务分解结果插入到微服务标准库中;
M2:AnalyseService模块,用于使使用者获取各项特性与微服务关联度权重;
M3:Eureka模块,与M1和M2相连,用于对M1和M2进行注册管理,确保服务模块的正常运行;
M4:微服务标准库Database,与M1和M2相连,用于存储微服务分解基准以及所述功能特性与微服务关联度权重,以提供给M1和M2使用;
M5:管理者前端显示界面Managers,与M1相连,用于支持管理者使用M1模块提供的功能;
M6:用户前端显示界面Users,与M2相连,用于支持使用者使用M2模块提供的功能,进行单体应用微服务化分解的分析和分析数据的存储。


2.根据权利要求1所述的基于功能特性与微服务关联度的单体应用分解工具,其特征在于:所述M1中各项特性包括:前提条件Precondition、计算Computation、数据Data、混合·关联时间Hybrid.TimeRelated、混合·开放性Hybrid.Openness和其他Other;
所述前提条件Precondition包含关联后端BackendRelated特性;
所述计算Computation包含数据计算DataComputation特性;
所述数据Data包含通知Notification、外观Appearance、用户偏好Preference、信息传输InformationTransmission和数据存储DataStorage特性;
所述混合·关联时间Hybrid.TimeRelated包含搜索Search和时效性Timeliness特性;
所述混合·开放性Hybrid.Openness包含功能扩展FunctionExtension和软件开发SoftwareDevelopment特性;
所述其他Other包含快捷键HotKey特性。


3.根据权利要求1所述的基于功能特性与微服务关联度的单体应用分解工具,其特征在于:所述M2具体为:使用者在web页面上输入自己所分析应用的功能模块、功能点和各个功能点的特性能够自动获得每一个功能点是否适合微服务的权重;并且能够将分析后的分解结果存储到本地。


4.根据权利要求2所述的基于功能特性与微服务关联度的单体应用分解工具,其特征在于:所述M1和M2中各项特性与微服务关联度权重的计算步骤为:
若所评估的功能Function不具备关联后端BackendRelated特性,则这个功能与微服务的关联度赋为0%,结束计算;
若所评估的功能Function具备关联后端BackendRelated特性,则这个功能与微服务的关联度使用权重计算公式进行计算。


5....

【专利技术属性】
技术研发人员:潘敏学张天卫昱阳
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

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

1