论文标题
一种用于从整体应用中提取微服务的层次-DBSCAN方法
A Hierarchical-DBSCAN Method for Extracting Microservices from Monolithic Applications
论文作者
论文摘要
微服务架构风格具有许多优势,例如可扩展性,可重复使用性和易于可维护性。由于开发新应用程序,这种微服务已成为一种常见的建筑选择。因此,为了从这些优势中受益,需要重新设计单片应用,才能迁移到基于微服务的体系结构。由于与此过程相关的固有复杂性和高成本,因此自动执行此任务至关重要。在本文中,我们提出了一种可以从给定的整体应用中识别潜在的微服务的方法。我们的方法以输入源应用程序的源代码为输入,以便使用其交互和代码中使用的域术语来衡量系统中所有类之间的相似性和依赖关系。然后将这些相似性值与基于密度的聚类算法的变体一起使用,以生成推荐的微服务的层次结构,同时识别潜在的异常类别。我们通过不同的实验环境提供了对方法的经验评估,包括与现有的人类设计的微服务进行比较以及与5个基准的比较。结果表明,与人类设计的微服务相比,我们的方法成功地生成了总体上更具凝聚力并且在它们之间具有更少相互作用的微服务,而精度得分的相互作用较少。
The microservices architectural style offers many advantages such as scalability, reusability and ease of maintainability. As such microservices has become a common architectural choice when developing new applications. Hence, to benefit from these advantages, monolithic applications need to be redesigned in order to migrate to a microservice based architecture. Due to the inherent complexity and high costs related to this process, it is crucial to automate this task. In this paper, we propose a method that can identify potential microservices from a given monolithic application. Our method takes as input the source code of the source application in order to measure the similarities and dependencies between all of the classes in the system using their interactions and the domain terminology employed within the code. These similarity values are then used with a variant of a density-based clustering algorithm to generate a hierarchical structure of the recommended microservices while identifying potential outlier classes. We provide an empirical evaluation of our approach through different experimental settings including a comparison with existing human-designed microservices and a comparison with 5 baselines. The results show that our method succeeds in generating microservices that are overall more cohesive and that have fewer interactions in-between them with up to 0.9 of precision score when compared to human-designed microservices.