Evaluation of the impacts of decomposing a monolithic application into microservices: A case study
单片应用程序正在被分解为微服务架构,旨在提高可维护性,性能和模块化。虽然这种分解现在已经在工业中广泛进行,但文献中关于这些分解的影响的报道很少。因此,这项工作报告了一个案例研究,旨在调查分解真实行业应用程序对微服务架构的影响。该研究的目标应用程序是指由金融机构执行的raid操作,该操作是从单片应用程序提取到基于微服务的应用程序。特别是,将指标应用于单片和基于微服务的应用程序,旨在量化耦合,内聚,CPU消耗和内存消耗。结果表明,微服务架构在软件模块化指标方面产生了更好的结果,此外还降低了内存和CPU消耗。最后,这项工作带来了洞察力,并指出了学术界和工业界需要探索的挑战和未来的研究方向。
2022-08-02 cs.SE
Does Migrate a Monolithic System to Microservices Decrease the Technical Debt?
背景从单体系统到微服务的迁移涉及系统的深度重构。因此,迁移通常会产生很大的经济影响,公司往往会在此过程中推迟几项活动,主要是为了加快迁移本身,但也是因为需要发布新功能。Objective.我们监测了一家中小型企业的技术债务,同时将一个遗留的单片系统迁移到微服务生态系统,以分析迁移到微服务之前和之后代码技术债务的变化。法我们进行了一个案例研究,分析了一个大项目(28万行代码)四年多的历史,其中两个团队从整体系统中提取了五个业务流程作为微服务,首先使用SonarQube分析技术债务,然后与开发人员进行定性研究,以了解系统的感知质量和最终推迟活动的动机。结果.从长远来看,微服务的发展有助于减少技术债务。尽管由于新微服务的发展,技术债务最初出现了峰值,但在相对较短的时间内,技术债务的增长速度往往比单片系统慢。
2020-07-04 cs.SE
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 Monolith to Microservices: Software Architecture for Autonomous UAV Infrastructure Inspection
线性基础设施任务控制(LiMiC)是一个应用程序的自主无人机(UAV)的基础设施检查任务规划开发的单片软件架构。该应用程序根据用户的输入、参与任务的UAV数量和UAV的位置计算沿基础设施的路线。LiMiC1.0是最新的应用程序版本,从单体迁移到微服务,持续集成,并使用DevOps工具部署,以促进未来的功能开发,实现更好的流量管理,并缩短路线计算处理时间。通过将路由计算算法重构到服务中,在Kubernetes集群中扩展它们,并在它们之间启用异步通信,从而缩短了处理时间。在本文中,我们讨论了单体和微服务架构之间的差异,以证明我们迁移的决定。我们描述了应用程序的迁移和实施过程的方法,我们用于持续集成和部署的技术,我们提出了微服务与单片应用程序相比改进的性能结果。
2022-04-05 cs.SE
Code Vectorization and Sequence of Accesses Strategies for Monolith Microservices Identification
将单体应用程序迁移到微服务架构中可以受益于自动化方法,这些方法可以加快迁移并改善分解结果。当前指导软件架构师进行迁移的方法之一是使用单体功能对域实体的访问序列将单体域实体分组为微服务。在本文中,我们丰富的访问序列的解决方案,通过应用代码向量化的单片,使用\textit{Code2Vec}神经网络模型。我们应用\textit{Code2Vec}来矢量化整体功能。我们提出了两种策略来表示功能,一个是通过聚合其调用图方法向量,另一个是通过扩展访问实体的向量化访问方法的序列。为了评估这些策略,我们将所提出的策略与访问策略的顺序和使用类向量化的现有方法进行比较。我们在一个大的代码库集上运行所有这些策略,然后比较它们的内聚性,耦合性和复杂性分解的结果。
2022-12-21 cs.SE
From Monolithic Systems to Microservices: An Assessment Framework
上下文使用基于微服务的架构重新架构单片系统是一种常见的趋势。许多公司出于不同的原因迁移到微服务。然而,做出像重新架构整个系统这样重要的决定必须基于真实的事实,而不仅仅是直觉。Objective.这项工作的目标是为需要迁移到微服务的公司提出一个基于证据的决策支持框架,该框架基于对他们在重新构建其整体系统之前应该收集的一组特征和指标的分析。法我们设计了一个混合方法的方法,结合了系统的映射研究与调查的形式进行了访谈的专业人士得出的评估框架的基础上扎根理论。结果我们确定了一组信息和指标,公司可以使用这些信息和指标来决定是否迁移到微服务。基于上述指标的拟议评估框架可能对需要迁移到微服务的公司有用,并且不想冒不考虑一些重要信息的风险。
2021-04-15 cs.SE
Contrastive Learning-Enhanced Large Language Models for Monolith-to-Microservice Decomposition
针对单体应用向微服务迁移时拆分难度大的问题,提出MonoEmbed方法,结合对比学习、LoRA微调大语言模型生成组件表示并聚类,可生成更高质量的均衡微服务拆分结果。
2025-02-07 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
Automatic Design-Time Detection of Anomalies in Migrating Monolithic Applications to Microservices
本文提出MAD框架,通过SMT编码自动检测单体应用分解为微服务时引入的并发异常,指导程序员选择合适分解方案。
2025-05-23 cs.SE
Sliceable Monolith: Monolith First, Microservices Later
我们提出了Sliceable Monolith,这是一种用于开发微服务架构的新方法,并通过利用Monolith的大部分简单性来执行集成测试:单个代码库和模拟分布的本地执行环境。然后,工具为每个微服务和云部署配置编译代码库。我们的方法的关键推动者是Jolie提供的与技术无关的服务定义语言。
2021-07-17 cs.PL cs.SE
A Hierarchical-DBSCAN Method for Extracting Microservices from Monolithic Applications
本文提出一种基于层次化DBSCAN的方法,通过分析单体应用源代码中的类交互和领域术语来提取微服务,实验表明其生成的微服务内聚性更高、交互更少,精确率最高达0.9。
2022-06-14 cs.SE
Stepwise Migration of a Monolith to a Microservices Architecture: Performance and Migration Effort Evaluation
当今业务固有的敏捷性促进了软件架构的定义,其中业务实体被解耦为模块和/或服务。然而,具有丰富的领域模型是有优势的,其中领域实体紧密连接,因为它促进了最初的快速开发。另一方面,将业务逻辑拆分为模块和/或服务,通过定义良好的接口进行封装,以及引入服务间通信,都会带来性能方面的成本。在本文中,我们分析了使用富域对象将单体逐步迁移到微服务架构中,其中模块化单体架构用作中间步骤。这两个步骤对迁移工作和性能的影响都进行了测量。目前的技术水平分析了整体系统向微服务架构的迁移,但我们观察到,迁移工作和性能问题在迁移到模块化整体系统时已经很重要了。因此,为每个步骤建立了明确的区别,这可以告知软件架构师关于整体系统迁移的规划。特别是,做所有的迁移过程或只是迁移到一个模块化的整体的权衡。
2022-01-17 cs.SE
Modular Monolith: Is This the Trend in Software Architecture?
本文通过系统性灰色文献综述界定模块化单体,识别相关框架与案例,指出其兼具单体与微服务优势,可作为微服务替代方案或迁移前置阶段。
2024-01-22 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
A Decomposition and Metric-Based Evaluation Framework for Microservices
从单体系统迁移到微服务是一项非常复杂的任务。公司通常手动分解整体系统,分析整体系统的依赖关系,然后评估不同的分解选项。我们的工作目标有两个方面:1)我们提供了一个微服务度量框架,以客观地评估和比较基于微服务的系统的质量; 2)我们提出了一个基于业务流程挖掘的分解系统。微服务度量框架可以独立于所采用的分解过程来应用,但也有助于持续评估系统的架构演进。结果表明,分解框架可以帮助企业轻松地识别不同的分解选项。度量框架可以帮助减少不同分解选项之间决策的主观性,并评估现有系统中的架构侵蚀。
2019-08-22 cs.SE
Monolith Development History for Microservices Identification: a Comparative Analysis
最近的研究提出了在整体系统上自动识别候选微服务的不同方法,这些方法在整体表示,相似性标准和所使用的质量度量方面有所不同。另一方面,他们通常是有限的代码库和分解的数量进行评估,并存在的方法之间的比较很少。考虑到在软件工程的技术的基础上的代码库的演变分析的新兴趋势,我们比较了表示的基础上的整体代码结构,特别是访问域实体的序列,与表示的基础上的整体开发历史(文件更改和更改的作者)。通过对28个代码库的468k分解的分析,使用五个质量指标来评估模块化,每个功能的事务数量最小化以及团队和通信的减少,我们得出结论,每个指标的最佳分解是通过结合访问序列和开发历史表示的数据来实现的。我们还发现,具有许多作者的代码库的变更作者身份表示实现了与具有少数作者的代码库的访问序列表示相比相当或更好的结果,这与每个功能的事务数量的最小化和团队的减少有关。
2022-12-21 cs.SE
A Systematic Literature Review of Machine Learning Approaches for Migrating Monolithic Systems to Microservices
本文通过系统文献综述梳理2015至2024年81项研究,揭示机器学习在单体系统向微服务迁移中的自动化阶段、技术、评估与挑战,指出监控和服务识别研究较多而打包等阶段仍待探索。
2025-08-21 cs.SE
Domain-Driven Design Representation of Monolith Candidate Decompositions Based on Entity Accesses
本文扩展Mono2Micro流水线,将单体应用的微服务候选分解映射为CML中的DDD概念,并通过真实案例验证其重构与可视化价值。
2024-06-21 cs.SE
Microservices: Migration of a Mission Critical System
微服务范式旨在改变软件被感知、构思和设计的方式。与单片架构相比,这种新的有前途的范例的基本特征之一是可扩展性。在本文中,我们提出了一个真实世界的案例研究,以展示如何通过将单片架构重新实现为微服务来积极影响可扩展性。该案例研究基于FX Core系统,这是丹麦最大的银行和北欧领先的金融机构之一丹麦银行的关键任务系统。
2017-04-13 cs.SE
From Monolith to Microservices: A Comparative Evaluation of Decomposition Frameworks
University of Moratuwa(莫鲁图瓦大学);WSO2 LLC(WSO2有限公司)
本文通过统一评估框架,比较了不同微服务分解方法,发现HDBScan在分解质量上表现最优。
2026-01-30 cs.SE
Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java Applications to Microservices
在将生产工作负载迁移到云端时,企业通常面临着将单片应用程序向微服务架构发展的艰巨任务。在IBM,我们开发了一个名为Mono2Micro的工具来帮助完成这项具有挑战性的任务。Mono2Micro执行时空分解,利用定义良好的业务用例和运行时调用关系来创建应用程序类的功能内聚分区。我们对Mono2Micro的初步评估显示了有希望的结果。Mono2Micro与其他分解技术相比表现如何,从业者如何看待该工具?本文介绍了Mono2Micro的技术基础,并给出了回答这两个问题的结果。为了回答第一个问题,我们在一组开源和专有Java应用程序上评估了Mono2Micro对四种现有技术的影响,并使用不同的指标来评估分解的质量和工具的效率。我们的研究结果表明,Mono2Micro在为问题领域定义的特定指标方面显着优于最先进的基线。为了回答第二个问题,我们对21位使用过Mono2Micro的不同行业的从业者进行了调查。这项研究突出了几个好处的工具,有趣的从业者的看法,并进一步改进的范围。总的来说,这些结果表明,Mono2Micro可以为从业者提供有价值的帮助,帮助他们创建功能内聚和可解释的微服务分解。
2021-09-14 cs.SE
From Monolith to Microservices: A Classification of Refactoring Approaches
虽然最近出现的微服务架构风格在文献中被广泛讨论,但很难找到重构遗留应用程序过程的明确指导。这个主题的重要性是由重构过程的高成本和工作量所支撑的,重构过程还有其他几个影响,例如整体流程(DevOps)和团队结构。面对这一挑战,软件架构师需要选择合适的策略和重构技术。在这种情况下,讨论最多的方面之一是找到正确的服务粒度,以充分利用微服务架构的优势。本研究首先讨论架构重构的概念,然后比较学术文献中最近提出的10种现有重构方法。这些方法通过底层分解技术进行分类,并以决策指南的形式直观地呈现,以供快速参考。审查产生了各种各样的策略,将单片应用程序分解为独立的服务。除了一个例外,大多数方法只适用于某些条件。进一步关注的是一些方法需要大量的输入数据以及有限的或原型的工具支持。
2019-01-24 cs.SE
Automate migration to microservices architecture using Machine Learning techniques
微服务架构风格具有许多优点,例如可扩展性,可重用性和易于维护性。因此,微服务已成为开发新应用程序时的流行架构选择。获得这些好处需要重新设计单片应用程序,并将其迁移到基于微服务的架构。这个过程本身就很复杂,成本也很高,因此自动化这项任务至关重要。该项目提出了一种方法,通过该方法可以从给定的单片应用程序中识别潜在的微服务,同时将此问题视为集群主题。我们的方法将源应用程序的源代码作为输入,以便应用不同的方法将一个盒子应用程序设计到不同的微服务中。在本报告中,我们详细介绍了这些技术,同时完成了结果的讨论和比较。
2023-01-16 cs.SE
Reviewing the Scope and Impact of Implementing a Modernised IT Event-Driven Architecture from Traditional Architecture using Agile Frameworks: A Case study of Bimodal operational strategy
提出和实施软件系统,特别是使用传统单片方法的电子商务Web应用程序已经成为常态,然而,随着新的用户需求迫使组织和开发人员向其系统添加更多功能,并且随着用户需求的增加,单片应用程序的性能下降,维护成本上升。这些问题需要一个更好的系统,这就是微服务事件驱动应用程序的用武之地。本文研究了迁移到微服务的范围和影响,使用敏捷框架和双模式IT策略。为了获得用于分析的定量数据,将单体和微服务网站的原型与开源指标Dropwizard和Apache JMeter集成,并收集响应时间和出错率读数。结果表明,当用户请求调用的数量在容忍范围内时,整体式具有更快的响应时间,优于微服务,但随着复杂性随着时间的推移而增加,并且用户请求调用增加,微服务似乎表现得更好。
2023-03-02 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
Balancing Microservices and Monolithic Architectures
探讨企业软件团队在单体与微服务架构间的选择,分析两者技术利弊及对多方面影响,讨论团队依多种因素评估架构方法的方式。
2026-07-07 cs.DC 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
Migration to Microservices: A Comparative Study of Decomposition Strategies and Analysis Metrics
本文提出一种基于密度的聚类方法,通过考虑类之间的静态分析、结构和语义关系来识别单体应用中的潜在微服务,并在多个应用和基线上验证了其有效性和稳定性。
2024-02-13 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
Moving From Monolithic To Microservices Architecture for Multi-Agent Systems
University of California, Berkeley(加州大学伯克利分校)
本文综述多智能体系统从单体架构转向微服务架构的动因、原则与通信协议,比较两类架构并归纳新兴模式、挑战及设计考量。
2025-05-05 cs.AI cs.DC cs.MA
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
Optimizing microservices with hyperparameter optimization
在过去的几年里,应用程序的云化需要新的概念和技术来充分利用新计算模式的好处。其中,受面向服务架构启发的微服务架构风格受到了业界和学术界的关注。然而,将单体分解为多个微服务也会在应用程序的生命周期中带来一些挑战。在这项工作中,我们专注于微服务的操作方面,并提出了我们的新建议,使自我优化的微服务系统基于网格搜索和随机搜索技术。初步结果表明,我们的方法能够将微服务的延迟性能优化到10.56%。
2022-03-14 cs.SE
Refactoring Towards Microservices: Preparing the Ground for Service Extraction
针对单体系统向微服务迁移中现有方法忽略代码层面挑战的问题,本文提出含7种聚焦依赖处理的重构方法目录,填补代码层流程系统化空白,简化迁移并为自动化奠基。
2025-10-03 cs.SE
Insights on Microservice Architecture Through the Eyes of Industry Practitioners
本研究通过对53名国际软件从业者的混合方法研究,分析了单体系统向微服务迁移的驱动力、实施活动、数据一致性策略及挑战,揭示了相关实践痛点与云技术的支撑作用。
2024-08-19 cs.SE
Handling Communication via APIs for Microservices
本文提出通过 API 传递 ID 替代 JSON 以解决微服务通信依赖问题,设计算法构建子图并重构代码以减少 API 数量,在五个 Java 应用中验证了其在时间和内存复杂度上优于 JSON,并减少 40-60% 手动重构工作。
2023-08-02 cs.SE
TripleBound: Triplet-Guided Heterogeneous Graph Learning for Microservice Decomposition
Department of Computer Science and Engineering, University of Moratuwa(莫拉图瓦大学计算机科学与工程系);WSO2 LLC(WSO2有限公司)
针对单体到微服务分解中结构依赖与语义信号未统一优化的问题,提出TripleBound框架,利用三元组约束增强异构图神经网络,在多个基准上取得领先的综合分解得分。
2026-09-11 cs.SE
Survey on Tools and Techniques Detecting Microservice API Patterns
设计模式在许多方面改善了系统的开发和维护。虽然我们通常在单片系统中认识到这些模式,但云计算出现了许多模式,特别是微服务。不幸的是,虽然已经提出了各种模式,但可用的质量评估工具通常无法识别许多模式。本文进行了一次灰色文献综述,以查找和分类可用于检测微服务API模式(MAP)的工具。它推理出可以用来检测这些模式的机制。此外,结果表明,质量评估工具的差距和改进的机会。最后,读者提供了一个路线图,以检测技术,可以用来挖掘地图。
2022-05-20 cs.SE
Microvision: Static analysis-based approach to visualizing microservices in augmented reality
微服务正在支持数字化转型;然而,缺少基本的工具和系统视角来更好地观察、理解和管理这些系统、它们的属性和依赖关系。微服务架构倾向于去中心化,这给系统运营带来了很多优势,但也给其发展带来了挑战。微服务缺乏以系统为中心的视角,无法更好地应对系统演进和质量评估。在这项工作中,我们将探索基于静态分析的微服务特定架构重构。这样的重建通常导致系统模型以可视化所选择的以系统为中心的视角。当服务基数较高时,传统模型的实用性受到限制。我们考虑一种替代的数据可视化使用三维空间,使用增强现实。为了开始测试从微服务系统中获得这些视角的可行性,我们开发并实现了用于软件架构重建和比较视角可视化的原型工具。
2022-07-23 cs.SE
Incidents During Microservice Decomposition: A Case Study
本文通过 Carbon Health 的案例分析 107 起事件,总结微服务拆分中的故障原因与经验,并建议先进行单体模块化以减少事件、提升系统弹性。
2025-05-14 cs.SE
Using Microservice Telemetry Data for System Dynamic Analysis
微服务为软件系统带来了各种好处。它们还带来了去中心化,并失去了自包含系统部分之间的耦合。由于这些系统可能以分散的方式发展,因此需要对它们进行监控,以确定何时可能设计不良的扩展会使整体系统质量恶化。对于整料系统,这些任务通常通过静态分析来解决。然而,考虑到微服务的分散性和可能的语言多样性,静态分析工具仍然缺乏。另一方面,有一些从业者常用的工具可以为微服务提供集中的日志记录、跟踪和指标收集。在本文中,我们评估的机会,结合当前的动态分析工具与异常检测的质量指标和反模式的形式。我们开发了一个工具原型,用于评估一个大型微服务系统基准测试,以证明这种方法的可行性和潜力。
2022-07-06 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
Does Microservices Adoption Impact the Development Velocity? A Cohort Study. A Registered Report
本研究通过队列研究比较GitHub上微服务与单体架构项目,旨在探究微服务对开发速度的影响,并确认其有效提升开发速度,为实证方法贡献首批队列研究案例。
2023-06-21 cs.SE
Comparison of Static Analysis Architecture Recovery Tools for Microservice Applications
本研究针对微服务架构监管难、缺乏工具有效性实证综述的问题,计划通过多源文献梳理静态分析架构恢复工具,在通用数据集上实测并比较其有效性,为CI/CD集成提供参考。
2024-03-11 cs.SE
Towards a Characterization of Microservice Architectures Generated by Large Language Models
Federal University of Campina Grande(坎皮纳格兰德联邦大学)
本研究实证刻画了LLMs从模块化单体描述生成微服务架构的行为,发现提示策略(少样本vs零样本)比模型提供商更显著影响架构的粒度、通信密度和职责描述,为生成式架构转换提供了基线。
2026-09-18 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
Development Frameworks for Microservice-based Applications: Evaluation and Comparison
微服务架构风格作为一种设计、开发和部署云原生应用程序的新方法,最近受到了学术界和工业界的广泛关注。这个概念鼓励将整体分解成多个可独立部署的单元。典型的基于微服务的应用程序由两种服务类型组成:功能服务,提供核心业务逻辑;基础设施服务,为微服务生态系统提供基本功能。为了提高开发人员的生产力,已经开发了许多软件框架来提供那些可重用的基础设施服务,允许程序员专注于以任意方式实现微服务。在这项工作中,我们使用了四个开源框架,以开发一个基于云的应用程序,以比较和评估他们的可用性和实用性。虽然所有选定的框架一般都促进异步微服务设计,但每个框架实现服务的方式都存在差异。这会导致互操作性问题,例如消息主题命名约定。此外,一个关键的发现是基于JVM的服务启动时间长,这可能会降低应用程序的弹性和可移植性。其他一些优势直接来自于程序设计语言,例如Go生成原生二进制可执行文件的能力,这会导致非常小和紧凑的Docker映像(与其他语言相比最多小78%)。
2022-03-14 cs.SE
Minerva: A Portable Machine Learning Microservice Framework for Traditional Enterprise SaaS Applications
Oracle Corp(甲骨文公司);Purdue University(普渡大学)
在传统的SaaS企业应用程序中,微服务是成功部署机器学习(ML)模型的重要组成部分。一般来说,微服务可以提高软件服务设计、开发和交付的效率。随着它们在单片软件的重新设计中变得无处不在,随着机器学习的加入,传统的应用程序也变得越来越智能。在这里,我们提出了一个可移植的ML微服务框架Minerva(应用ML的微服务容器),作为在传统的传统SaaS应用程序套件中模块化和部署智能微服务的有效方法,特别是在企业领域。我们确定并讨论了将ML微服务纳入此类应用程序的需求,挑战和架构。Minervas设计使用微服务架构与传统应用程序进行最佳集成,利用轻量级基础设施加速在此类应用程序中部署ML模型。
2020-05-02 cs.LG cs.SE
SoK: Microservice Architectures from a Dependability Perspective
本文从可靠性视角综述微服务架构可能引入的故障与漏洞,重点探讨运行时检测与恢复机制,以弥补现有文献在故障和漏洞覆盖分析上的不足。
2025-03-05 cs.DC cs.SE
Tools for Refactoring to Microservices: A Preliminary Usability Report
本研究梳理微服务迁移相关工具,从91篇文献中提取22款工具,评估7款服务分解工具的技术、可用性等,发现其理念有前景但成熟度和通用性不足,难以满足行业可靠使用需求。
2023-11-09 cs.SE
Comparison of Static Analysis Architecture Recovery Tools for Microservice Applications
本研究通过多源文献综述识别出13款面向微服务应用的静态架构恢复工具,对其中9款的检测能力进行对比,发现最优工具F1值为0.86,进一步组合4款工具可将F1值提升至0.91。
2024-12-11 cs.SE
Are LLMs Ready for Anti-Pattern Detection in Microservice Architectures?
University of Naples Federico II(那不勒斯费德里科二世大学)
本文研究大型语言模型(LLM)通过提示分析微服务仓库静态制品来检测16种架构反模式的能力,与静态分析工具MARS对比,发现LLM在局部、异构或语义丰富的反模式上表现有竞争力,但在需要结构或跨服务依赖证据时受限,可作为补充工具。
2026-06-26 cs.SE
Student Research Abstract: Microservices-based Systems Visualization
去中心化的基于微服务的系统的发展具有挑战性。这些挑战分为静态和动态两类。关于静态的观点,文档化和可视化流体应用程序拓扑是很少有人能够完成的事情。构建服务设计的架构图是一项复杂的任务,其解释而不是构造。因此,以系统为中心和最新的视图成为这样的分布式系统必不可少的。动态视角考虑调查和服务路径检测的过程。因此,执行根本原因分析是一项繁重的任务;因此,需要将跟踪数据放在正确的上下文中以便于调查。此外,由于系统中涉及大量的微服务,通过传统的可视化技术来可视化这些跟踪是不可行的。本文提出了一种基于微服务的系统使用增强现实(AR)技术,将这些静态和动态行为合并到一个单一的中心视图的可视化概念。此外,我们挑战的困难,跟踪和调试的问题,在这样的分布式系统。这一概念旨在作为这些系统的动态文档和可追溯性平台。概念验证和研究的实施,以显示这一建议的可行性和成功。
2022-07-23 cs.SE
Distributed Architecture Reconstruction of Polyglot and Multi-Repository Microservice Projects
Adelaide University(阿德莱德大学);Swordfish Computing(剑鱼计算公司);Singapore Management University(新加坡管理大学);Monash University(蒙纳士大学)
本文提出了一种支持多仓库环境的分布式架构重建框架,通过技术特定的提取器模块实现静态架构重建,以应对微服务项目中快速演变带来的文档维护挑战。
2026-02-08 cs.SE