A Feature Table approach to decomposing monolithic applications into microservices
微服务架构是指使用大量小规模和独立部署的服务,而不是将所有功能封装到一个整体中。如何将一个大系统分解成更小的部分一直是软件工程中的一个挑战。在本文中,我们提出了一种基于功能特征和微服务相关性的结构化服务分解方法--特征表方法:(1)定义了{ \em特征卡}的概念和12个实例;(2)制定了{ \em分解规则}来分解单体应用;(3)我们设计了{ \em特征表分析工具},为识别微服务提供半自动分析;(4)我们制定了{ \em映射规则},帮助开发人员实现微服务候选。我们对货物跟踪系统进行了案例研究,以验证我们的面向微服务的分解方法。货物跟踪系统是一个典型的案例,已经被分解的其他相关方法(流程驱动的方法,服务切割器,和API分析)。通过与相关方法在具体耦合度和内聚度方面的比较,结果表明,所提出的特征表方法可以提供更合理的微服务候选,在半自动支持下实现是可行的。
2021-05-15 cs.SE
From Monolithic Systems to Microservices: An Assessment Framework
上下文使用基于微服务的架构重新架构单片系统是一种常见的趋势。许多公司出于不同的原因迁移到微服务。然而,做出像重新架构整个系统这样重要的决定必须基于真实的事实,而不仅仅是直觉。Objective.这项工作的目标是为需要迁移到微服务的公司提出一个基于证据的决策支持框架,该框架基于对他们在重新构建其整体系统之前应该收集的一组特征和指标的分析。法我们设计了一个混合方法的方法,结合了系统的映射研究与调查的形式进行了访谈的专业人士得出的评估框架的基础上扎根理论。结果我们确定了一组信息和指标,公司可以使用这些信息和指标来决定是否迁移到微服务。基于上述指标的拟议评估框架可能对需要迁移到微服务的公司有用,并且不想冒不考虑一些重要信息的风险。
2021-04-15 cs.SE
A Hierarchical-DBSCAN Method for Extracting Microservices from Monolithic Applications
本文提出一种基于层次化DBSCAN的方法,通过分析单体应用源代码中的类交互和领域术语来提取微服务,实验表明其生成的微服务内聚性更高、交互更少,精确率最高达0.9。
2022-06-14 cs.SE
An Empirical Comparison of Monolithic and Microservices Architectures for an E-Commerce Application
Prof. Ram Meghe Institute of Technology & Research(Prof. Ram Meghe 技术与研究院)
本文通过实验比较同一电商应用的单体与微服务架构,发现100虚拟用户负载下微服务在吞吐量、延迟等指标上更优,但存在特定服务的短暂故障。
2026-08-18 cs.SE
A Systematic Literature Review of Machine Learning Approaches for Migrating Monolithic Systems to Microservices
本文通过系统文献综述梳理2015至2024年81项研究,揭示机器学习在单体系统向微服务迁移中的自动化阶段、技术、评估与挑战,指出监控和服务识别研究较多而打包等阶段仍待探索。
2025-08-21 cs.SE
CARGO: AI-Guided Dependency Analysis for Migrating Monolithic Applications to Microservices Architecture
微服务架构(MSA)已成为设计云原生企业应用程序的事实标准,因为它具有高效的基础设施设置、服务可用性、弹性可扩展性、可靠性和更好的安全性。现有的(单体)系统必须分解为微服务来利用这些特性。由于大规模应用程序的手动分解可能很费力且容易出错,因此基于AI的系统检测分解策略越来越受欢迎。然而,这些方法的有用性是有限的程序表示的表现力和他们无法模拟应用程序的依赖于关键的外部资源,如数据库。因此,由当前工具提供的分区建议导致导致(a)分布式整体,和/或(b)强制使用(经常受到批评的)分布式事务的架构。这项工作试图通过引入CARGO({context-sensitive l [A] bel p [R] opa [G] ati [O] n}的缩写)来克服这些挑战,CARGO是一种新的无监督/半监督分区细化技术,其使用单片应用程序的上下文和流敏感系统依赖图来细化并从而丰富当前最先进算法的分区质量。CARGO被用于增强四种最先进的微服务分区技术,这些技术应用于五个Java EE应用程序(包括一个工业规模的专有项目)。实验表明,CARGO可以提高所有现代微服务划分技术的划分质量。此外,CARGO大大减少了分布式事务,对基准应用程序(在不同负载下部署)的真实世界性能评估显示,CARGO还将部署的微服务应用程序的整体延迟降低了11%,平均吞吐量增加了120%。
2022-10-06 cs.SE
Automatic Design-Time Detection of Anomalies in Migrating Monolithic Applications to Microservices
本文提出MAD框架,通过SMT编码自动检测单体应用分解为微服务时引入的并发异常,指导程序员选择合适分解方案。
2025-05-23 cs.SE
Microservices: Migration of a Mission Critical System
微服务范式旨在改变软件被感知、构思和设计的方式。与单片架构相比,这种新的有前途的范例的基本特征之一是可扩展性。在本文中,我们提出了一个真实世界的案例研究,以展示如何通过将单片架构重新实现为微服务来积极影响可扩展性。该案例研究基于FX Core系统,这是丹麦最大的银行和北欧领先的金融机构之一丹麦银行的关键任务系统。
2017-04-13 cs.SE
Contrastive Learning-Enhanced Large Language Models for Monolith-to-Microservice Decomposition
Laval University(拉瓦尔大学)
针对单体应用向微服务迁移时拆分难度大的问题,提出MonoEmbed方法,结合对比学习、LoRA微调大语言模型生成组件表示并聚类,可生成更高质量的均衡微服务拆分结果。
2025-02-07 cs.SE
Automate migration to microservices architecture using Machine Learning techniques
微服务架构风格具有许多优点,例如可扩展性,可重用性和易于维护性。因此,微服务已成为开发新应用程序时的流行架构选择。获得这些好处需要重新设计单片应用程序,并将其迁移到基于微服务的架构。这个过程本身就很复杂,成本也很高,因此自动化这项任务至关重要。该项目提出了一种方法,通过该方法可以从给定的单片应用程序中识别潜在的微服务,同时将此问题视为集群主题。我们的方法将源应用程序的源代码作为输入,以便应用不同的方法将一个盒子应用程序设计到不同的微服务中。在本报告中,我们详细介绍了这些技术,同时完成了结果的讨论和比较。
2023-01-16 cs.SE
Microservice Decomposition via Static and Dynamic Analysis of the Monolith
将单片软件系统迁移到微服务需要应用分解技术来寻找和选择适当的服务边界。这些技术通常基于领域知识、静态代码分析和非功能性需求(如可维护性)。在本文中,我们提出了一种方法,该方法扩展了静态分析与遗留软件系统的运行时行为的动态分析,包括实时跟踪可视化,以支持分解为微服务。总的来说,我们的方法结合了微服务分解的既定分析技术,例如域驱动设计的有界上下文模式,并通过动态软件可视化来丰富收集的信息,以确定适当的微服务边界。在与德国IT服务提供商adesso SE的合作中,我们将我们的方法应用于他们的真实世界,传统彩票应用程序,|专注于为这个分层的单片企业Java系统确定良好的微服务分解。
2020-03-05 cs.SE
A Decomposition and Metric-Based Evaluation Framework for Microservices
从单体系统迁移到微服务是一项非常复杂的任务。公司通常手动分解整体系统,分析整体系统的依赖关系,然后评估不同的分解选项。我们的工作目标有两个方面:1)我们提供了一个微服务度量框架,以客观地评估和比较基于微服务的系统的质量; 2)我们提出了一个基于业务流程挖掘的分解系统。微服务度量框架可以独立于所采用的分解过程来应用,但也有助于持续评估系统的架构演进。结果表明,分解框架可以帮助企业轻松地识别不同的分解选项。度量框架可以帮助减少不同分解选项之间决策的主观性,并评估现有系统中的架构侵蚀。
2019-08-22 cs.SE
Balancing Microservices and Monolithic Architectures
探讨企业软件团队在单体与微服务架构间的选择,分析两者技术利弊及对多方面影响,讨论团队依多种因素评估架构方法的方式。
2026-07-07 cs.DC cs.SE
Automatic Extraction of Security-Rich Dataflow Diagrams for Microservice Applications written in Java
针对 Java 微服务应用,提出通过解析源码与配置、迭代滚雪球发现关键词并结合多类检测自动生成富安全 DFD 的工具化方法,在17个开源应用上达到93%精确率和85%召回率。
2023-04-25 cs.SE
PF4Microservices: A decomposion scheme for microservices based on Problem Frames
近年来,微服务架构已经成为软件工程中流行的架构风格,其对DevOps和持续交付的天然支持,以及其可扩展性和可扩展性,推动行业从业者迁移到微服务架构。然而,采用微服务架构存在许多挑战,其中最重要的是如何将单片系统正确分解为微服务。目前,单片系统的微服务分解决策依赖于主观的人类经验,这是一个成本高昂、耗时的过程,结果具有高度的不确定性。为了解决这个问题,本文提出了一种使用Jackson问题框架进行微服务分解的方法。该方法首先分析系统的需求,获得所提出的软件与其环境之间的交互描述,构建多个问题图,然后通过分析它们之间的相关性和相似性合并问题图,得到微服务分解方案。最后以一个智能停车场系统为例进行了案例分析。研究结果表明,该方法可以根据需求和软件环境进行微服务分解,从而减轻开发人员的决策负担,分解结果合理。
2022-07-11 cs.SE
Microservices, Continuous Architecture, and Technical Debt Interest: An Empirical Study
持续架构(CA)是一种支持公司缩短交付间隔时间的方法。迁移到微服务是公司采用持续架构流程时最常见的情况之一[4]。公司通常采用初始迁移策略,利用简化的微服务模式从整体系统中提取一些组件作为微服务[5][4]。例如,公司通常直接将微服务连接到传统的单片系统,并且在开始时不采用任何消息总线。当系统开始变得越来越复杂时,他们通常会考虑不同的架构模式,重新构建系统。一些公司引入API网关模式来简化不同服务的管理和负载均衡,而另一些公司也考虑轻量级消息总线[4][5][6]。所有这些架构变化都需要对系统进行深度重构,从而增加了引入新故障的风险。在本文中,我们报告了正在进行的工作的初步结果,我们监测了采用CA方法的中小企业(SME =中小型企业)的TD,同时将传统的单片系统迁移到微服务生态系统。据我们所知,目前还没有关于推迟活动对TD的影响的研究,特别是在CA和微服务的背景下。这项工作将帮助公司了解TD如何随着时间的推移而增长和变化,同时为未来研究TD在持续架构过程中的兴趣分析开辟新的途径。
2018-10-25 cs.SE
Extracting Overlapping Microservices from Monolithic Code via Deep Semantic Embeddings and Graph Neural Network-Based Soft Clustering
提出Mo2oM框架,将微服务提取建模为软聚类问题,结合深度语义嵌入与方法调用图的结构依赖,利用图神经网络生成重叠微服务,在多个基准上显著提升模块化、降低通信开销并平衡服务规模。
2025-08-10 cs.AI cs.CV cs.SE
Migration to Microservices: A Comparative Study of Decomposition Strategies and Analysis Metrics
本文提出一种基于密度的聚类方法,通过考虑类之间的静态分析、结构和语义关系来识别单体应用中的潜在微服务,并在多个应用和基线上验证了其有效性和稳定性。
2024-02-13 cs.SE
Moving From Monolithic To Microservices Architecture for Multi-Agent Systems
University of California, Berkeley(加州大学伯克利分校)
本文综述多智能体系统从单体架构转向微服务架构的动因、原则与通信协议,比较两类架构并归纳新兴模式、挑战及设计考量。
2025-05-05 cs.AI cs.DC cs.MA
From Monolith to Microservices: Software Architecture for Autonomous UAV Infrastructure Inspection
线性基础设施任务控制(LiMiC)是一个应用程序的自主无人机(UAV)的基础设施检查任务规划开发的单片软件架构。该应用程序根据用户的输入、参与任务的UAV数量和UAV的位置计算沿基础设施的路线。LiMiC1.0是最新的应用程序版本,从单体迁移到微服务,持续集成,并使用DevOps工具部署,以促进未来的功能开发,实现更好的流量管理,并缩短路线计算处理时间。通过将路由计算算法重构到服务中,在Kubernetes集群中扩展它们,并在它们之间启用异步通信,从而缩短了处理时间。在本文中,我们讨论了单体和微服务架构之间的差异,以证明我们迁移的决定。我们描述了应用程序的迁移和实施过程的方法,我们用于持续集成和部署的技术,我们提出了微服务与单片应用程序相比改进的性能结果。
2022-04-05 cs.SE
Microusity: A testing tool for Backends for Frontends (BFF) Microservice Systems
微服务软件架构比其单一的前身更具可扩展性和效率。尽管微服务越来越多地被采用,但它可能会暴露出与单片设计相关的安全问题和问题。我们提出了Microusity,这是一种在特定类型的微服务模式上执行RESTful API测试的工具,称为后端为前端(BFF)。我们设计了一种新的方法来跟踪BFF请求,使用BFF请求和发送到后端微服务的子请求之间的端口映射。此外,我们的工具可以查明导致内部服务器错误的后端服务,这可能导致未处理的错误或漏洞。Microusity提供了一个错误报告和图形可视化,可以揭示错误的来源,并支持开发人员理解和调试错误。八位软件从业者的评估表明,Microusity及其安全测试报告对于调查和理解BFF系统中的问题非常有用。原型工具和该工具的视频演示可以在https://github.com/MUICT-SERU/MICROUSITY上找到。
2023-02-22 cs.SE
Insights on Microservice Architecture Through the Eyes of Industry Practitioners
本研究通过对53名国际软件从业者的混合方法研究,分析了单体系统向微服务迁移的驱动力、实施活动、数据一致性策略及挑战,揭示了相关实践痛点与云技术的支撑作用。
2024-08-19 cs.SE
Survey on Tools and Techniques Detecting Microservice API Patterns
设计模式在许多方面改善了系统的开发和维护。虽然我们通常在单片系统中认识到这些模式,但云计算出现了许多模式,特别是微服务。不幸的是,虽然已经提出了各种模式,但可用的质量评估工具通常无法识别许多模式。本文进行了一次灰色文献综述,以查找和分类可用于检测微服务API模式(MAP)的工具。它推理出可以用来检测这些模式的机制。此外,结果表明,质量评估工具的差距和改进的机会。最后,读者提供了一个路线图,以检测技术,可以用来挖掘地图。
2022-05-20 cs.SE
Incidents During Microservice Decomposition: A Case Study
本文通过 Carbon Health 的案例分析 107 起事件,总结微服务拆分中的故障原因与经验,并建议先进行单体模块化以减少事件、提升系统弹性。
2025-05-14 cs.SE
MicroAgent: Context-Augmented Multi-Agent Framework for Automatic Microservice Decomposition
The Chinese University of Hong Kong(香港中文大学);Sun Yat-sen University(中山大学)
提出MicroAgent框架,通过将分解任务分为五个子任务并分配专门智能体,结合多粒度上下文和设计原则分析工具,在10个Java Web应用上实现89.2%的平均分解准确率,较现有方法提升24.6%。
2026-10-27 cs.SE
Monolith to Microservices: Representing Application Software through Heterogeneous Graph Neural Network
IBM Research(IBM研究院);Amazon(亚马逊);Google(谷歌)
单片软件将所有功能封装到单个可部署单元中。但随着对新功能需求的增长,管理它变得越来越困难。微服务架构被视为一种替代方案,因为它提倡通过一组松散耦合的小型服务构建应用程序,其中每个服务拥有单一的功能责任。但是,与功能模块分离相关的挑战减缓了将单片代码迁移到微服务的速度。在这项工作中,我们提出了一个基于表示学习的解决方案来解决这个问题。我们使用异构图来共同表示软件工件(如程序和资源)以及它们共享的不同关系(函数调用,继承等),并通过一种新的异构图神经网络进行基于约束的聚类。实验研究表明,我们的方法是有效的不同类型的整料。
2022-05-20 cs.AI cs.SE
Microservices Anti Patterns: A Taxonomy
有几家公司正在用微服务重新架构他们的整体信息系统。然而,许多公司在迁移时没有微服务的经验,主要是从书籍或从业者的博客中学习如何迁移。由于这一主题的新颖性,从业人员和咨询公司正在通过实践学习如何迁移,因此面临着几个问题,但也有几个好处。在本章中,我们将介绍最常见的微服务反模式的目录和分类,以识别常见问题。我们的反模式目录是基于我们在过去三年中采访的不同实践者总结的经验。我们确定了20个反模式的分类,包括组织(面向团队和面向技术/工具)反模式和技术(内部和通信)反模式。这些结果可能有助于从业人员避免在他们开发的系统中遇到同样的困难情况。此外,研究人员可以从这个目录中受益,并进一步验证所识别的反模式的危害性。
2019-08-21 cs.SE
MONO2REST: Identifying and Exposing Microservices: a Reusable RESTification Approach
Nantes Université(南特大学);Université de Montréal(蒙特利尔大学)
本文提出一种可复用的两阶段自动化方法MONO2REST,结合进化算法与机器学习,在不迁移遗留系统的情况下,通过方法级多目标遗传算法识别微服务,并用分类算法生成REST API,在Spring PetClinic案例中验证了其有效性。
2025-03-27 cs.AI cs.SE
Structural Validation of LLM-Generated Microservice Decompositions Using Source-Code Dependencies
Federal University of Campina Grande - UFCG(坎皮纳格兰德联邦大学);Federal Institute of Pernambuco - IFPE(伯南布哥联邦学院);Instituto Federal da Paraíba - IFPB(帕拉伊巴联邦学院)
本文提出基于静态依赖分析的自动验证流程,评估OpenAI o3生成的微服务分解的结构一致性,发现零样本与少样本提示的结构一致性相当,且需控制映射覆盖率以避免方法学偏差。
2026-07-31 cs.SE
A Unified Feature Model for Microservice Identification and Refactoring
INESC-ID, Instituto Superior Técnico University of Lisbon(葡萄牙高教技术研究所,里斯本大学高等技术学院)
本文提出一种微服务识别工具的统一特征模型,经评估其可捕获现有方法的主要变体点,现有工具虽未覆盖模型大部分内容,但共同覆盖几乎所有变体点,为微服务识别工具的分析、比较与设计提供了统一基础。
2026-08-05 cs.SE
From Monolith to Microservices: A Comparative Evaluation of Decomposition Frameworks
University of Moratuwa(莫鲁图瓦大学);WSO2 LLC(WSO2有限公司)
本文通过统一评估框架,比较了不同微服务分解方法,发现HDBScan在分解质量上表现最优。
2026-01-30 cs.SE
Developing a Model-Driven Reengineering Approach for Migrating PL/SQL Triggers to Java: A Practical Experience
Faculty of Informatics, University of Murcia(穆尔西亚大学信息学院)
本文提出一种模型驱动的再造方法,集成类似TDD的增量开发与三种验证,用于将PL/SQL触发器迁移至Java,并详细阐述实现、验证及MDE应用评估。
2025-10-23 cs.SE
Componentization: Decomposing Monolithic LLM Responses into Manipulable Semantic Units
Honda Research Institute, USA, Inc.(本田研究院(美国公司))
本文提出组件化方法,将LLM单体输出分解为可独立编辑的语义单元,通过MAOD算法和CBRA架构实现,原型MAODchat经初步用户研究验证,支持迭代细化与选择性复用,促进组件级协作。
2025-09-10 cs.AI cs.HC cs.SE