{"title":"Layered microservices architecture: A multitree-based domain-driven approach","authors":"Duc Minh Le , Duc-Hanh Dang , Hieu Dinh Vo","doi":"10.1016/j.infsof.2025.107720","DOIUrl":null,"url":null,"abstract":"<div><h3>Context:</h3><div>Domain-driven design is commonly used with microservices architecture to develop complex microservices-based software systems. Layered, tree-based microservices architectures have recently been discussed as a solution to tame the complexity of these systems. However, there exists a knowledge gap in terms of the exact nature of this architecture style and how it is constructed.</div></div><div><h3>Objective:</h3><div>In this paper, we propose a domain-driven multitree microservices architecture (TMSA) to bridge this gap.</div></div><div><h3>Method:</h3><div>We precisely define the TMSA metamodel in UML/OCL. A service is composed of a nested service tree, whose internal nodes are domain-driven modules. Service structure reuse is enabled by unidirectional edges that connect nodes in distinct service trees. The multitree structure provides a scaffolding on which to precisely define service resiliency and TMSA model evolution. We use OCL and the UML communication diagram to model the resiliency patterns and the architectural model evolution.</div></div><div><h3>Results:</h3><div>Our UML/OCL-based metamodel of TMSA provides a foundation on which to define three essential service resiliency patterns and two operators for architectural model evolution. To ease software construction, we further define an annotation-based DSL, named <span>TASL</span>, to specify the TMSA model and a semi-automatic procedure that takes a <span>TASL</span> specification as input and constructs software as the output. We demonstrate TMSA with an implementation in a Java software framework and a real-world software example. We also evaluate the performance, resiliency and modifiability of TMSA. The results show that TMSA possesses the expected levels of quality for these attributes.</div></div><div><h3>Conclusion:</h3><div>Our work provides not only a framework to identify and formally define multitree-based MSAs but a state-of-the-art realisation of this framework in high-level object-oriented programming languages.</div></div>","PeriodicalId":54983,"journal":{"name":"Information and Software Technology","volume":"183 ","pages":"Article 107720"},"PeriodicalIF":4.3000,"publicationDate":"2025-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Information and Software Technology","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S095058492500059X","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 0
Abstract
Context:
Domain-driven design is commonly used with microservices architecture to develop complex microservices-based software systems. Layered, tree-based microservices architectures have recently been discussed as a solution to tame the complexity of these systems. However, there exists a knowledge gap in terms of the exact nature of this architecture style and how it is constructed.
Objective:
In this paper, we propose a domain-driven multitree microservices architecture (TMSA) to bridge this gap.
Method:
We precisely define the TMSA metamodel in UML/OCL. A service is composed of a nested service tree, whose internal nodes are domain-driven modules. Service structure reuse is enabled by unidirectional edges that connect nodes in distinct service trees. The multitree structure provides a scaffolding on which to precisely define service resiliency and TMSA model evolution. We use OCL and the UML communication diagram to model the resiliency patterns and the architectural model evolution.
Results:
Our UML/OCL-based metamodel of TMSA provides a foundation on which to define three essential service resiliency patterns and two operators for architectural model evolution. To ease software construction, we further define an annotation-based DSL, named TASL, to specify the TMSA model and a semi-automatic procedure that takes a TASL specification as input and constructs software as the output. We demonstrate TMSA with an implementation in a Java software framework and a real-world software example. We also evaluate the performance, resiliency and modifiability of TMSA. The results show that TMSA possesses the expected levels of quality for these attributes.
Conclusion:
Our work provides not only a framework to identify and formally define multitree-based MSAs but a state-of-the-art realisation of this framework in high-level object-oriented programming languages.
期刊介绍:
Information and Software Technology is the international archival journal focusing on research and experience that contributes to the improvement of software development practices. The journal''s scope includes methods and techniques to better engineer software and manage its development. Articles submitted for review should have a clear component of software engineering or address ways to improve the engineering and management of software development. Areas covered by the journal include:
• Software management, quality and metrics,
• Software processes,
• Software architecture, modelling, specification, design and programming
• Functional and non-functional software requirements
• Software testing and verification & validation
• Empirical studies of all aspects of engineering and managing software development
Short Communications is a new section dedicated to short papers addressing new ideas, controversial opinions, "Negative" results and much more. Read the Guide for authors for more information.
The journal encourages and welcomes submissions of systematic literature studies (reviews and maps) within the scope of the journal. Information and Software Technology is the premiere outlet for systematic literature studies in software engineering.