基于实体访问的单体候选分解的领域驱动设计表示
Domain-Driven Design Representation of Monolith Candidate Decompositions Based on Entity Accesses
AI总结:
本文扩展Mono2Micro流水线,将单体应用的微服务候选分解映射为CML中的DDD概念,并通过真实案例验证其重构与可视化价值。
摘要:
微服务架构作为开发大规模系统的首选架构方法之一,已经取代单体架构方法而受到欢迎。同样,战略性领域驱动设计(DDD)作为开发微服务的首选架构设计方法也受到关注。然而,DDD及其战略模式在设计上是开放式的,导致DDD概念与微服务设计之间存在差距。这一差距在从单体系统识别微服务的迁移工具中尤为明显:这些工具给出的微服务候选分解在DDD重构和可视化方面提供的支持很少。本文针对该问题提出解决方案,通过扩展名为Mono2Micro的多策略微服务识别工具的运行流水线,加入一个DDD建模工具;该工具提供名为Context Mapper DSL(CML)的语言,用于形式化最相关的DDD概念。该扩展将候选分解的内容(包括簇、实体和功能)映射到表示DDD概念的CML构造,例如限界上下文、聚合、实体和服务等。研究通过案例研究验证结果,比较了真实世界单体应用在经过CML翻译与未经CML翻译时产生的候选分解。
英文摘要:
Microservice architectures have gained popularity as one of the preferred architectural approaches to develop large-scale systems, replacing the monolith architecture approach. Similarly, strategic Domain-Driven Design (DDD) gained traction as the preferred architectural design approach for the development of microservices. However, DDD and its strategic patterns are open-ended by design, leading to a gap between the concepts of DDD and the design of microservices. This gap is especially evident in migration tools that identify microservices from monoliths, where candidate decompositions into microservices provide little in terms of DDD refactoring and visualization. This paper proposes a solution to this problem by extending the operational pipeline of a multi-strategy microservice identification tool, called Mono2Micro, with a DDD modeling tool that provides a language, called Context Mapper DSL (CML), for formalizing the most relevant DDD concepts. The extension maps the content of the candidate decompositions, which include clusters, entities, and functionalities, to CML constructs that represent DDD concepts such as Bounded Context, Aggregate, Entity, and Service, among others. The results are validated with a case study by comparing the candidate decompositions resulting from a real-world monolith application with and without CML translation.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。