中文

一种用于从单体应用提取微服务的分层DBSCAN方法

软件工程 2025-02-11 v1

摘要

微服务架构风格具有可扩展性、可重用性和易于维护等诸多优势。因此,微服务已成为开发新应用时的常见架构选择。为此,为了从这些优势中获益,需要对单体应用进行重新设计,以迁移到基于微服务的架构。由于该过程固有的复杂性和高成本,实现此任务的自动化至关重要。在本文中,我们提出了一种能够从给定单体应用中识别潜在微服务的方法。我们的方法以源应用的源代码作为输入,通过其交互及代码中使用的领域术语来度量系统中所有类之间的相似性与依赖关系。随后,这些相似度值被用于一种基于密度的聚类算法的变体,以生成推荐微服务的层次化结构,同时识别潜在的离群类。我们通过不同的实验设置对我们的方法进行了实证评估,包括与现有人工设计的微服务进行比较,以及与5种基线方法进行比较。结果表明,与人工设计的微服务相比,我们的方法成功生成的微服务整体内聚性更强、彼此间交互更少,精确率得分最高可达0.9。

关键词

引用

@article{arxiv.2206.07010,
  title  = {A Hierarchical-DBSCAN Method for Extracting Microservices from Monolithic Applications},
  author = {Khaled Sellami and Mohamed Aymen Saied and Ali Ouni},
  journal= {arXiv preprint arXiv:2206.07010},
  year   = {2025}
}