ABSTRACT
Designing systems to serve a large number of people, who have similar demands, but also have varied needs and generate a huge volume of data, requires a software architecture that allows constant evolution, is easy to maintain, and has the ability to scale smartly. The SPL technique with microservices architecture seems promising to meet these requirements, but this integration is not trivial. Thus, we conduct a SLR that identified 3 architectures that proposed the combination of these techniques. However, the architectures found were complex and reduced time-to-market, as they proposed the implementation of all resources through microservices. Thus, in order to reduce the complexity of development and, consequently, reduce the time to market, this work presents a proposal for the design of a hybrid SPL architecture, through the combination of large backend APIs and microservices. In addition, this research paper presents a case study that consisted of defining the architecture of a medical clinics SPL as a Multi-tenant Software as a Service. Finally, we compare the complexity of the architecture generated using our approach, with a microservice architecture constructed using other approach found in literature.
- Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2016. Feature-oriented software product lines. Springer.Google ScholarDigital Library
- Wesley KG Assunção, Jacob Krüger, and Willian DF Mendonça. 2020. Variability management meets microservices: six challenges of re-engineering microservice-based webshops. In Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A-Volume A. 1–6.Google ScholarDigital Library
- Saša Baškarada, Vivian Nguyen, and Andy Koronios. 2020. Architecting microservices: Practical opportunities and challenges. Journal of Computer Information Systems 60, 5 (2020), 428–436.Google ScholarCross Ref
- Alex Malmann Becker and Daniel Lucrédio. 2020. The Impact of Microservices on the Evolution of a Software Product Line. In Proceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse. 51–60.Google ScholarDigital Library
- Benjamin Benni, Sébastien Mosser, Jean-Philippe Caissy, and Yann-Gaël Guéhéneuc. 2020. Can microservice-based online-retailers be used as an spl? a study of six reference architectures. In Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A-Volume A. 1–6.Google Scholar
- Kyle Brown and Bobby Woolf. 2016. Implementation patterns for microservices architectures. In Proceedings of the 23rd conference on pattern languages of programs. 1–35.Google ScholarDigital Library
- Simon Brown. 2018. Just Enough Software Architecture: A Risk-Driven Approach. Marshall Press, New York, NY.Google Scholar
- Mike Cohn. 2004. User Stories Applied: For Agile Software Development. Addison Wesley Longman Publishing Co., Inc., USA.Google ScholarDigital Library
- Ana Claudia LAI Costa, Thelma E Colanzi, Anderson S Marcolino, and Ellen F Barbosa. 2019. Microservice-oriented Product Line Architecture Design: An Exploratory Study. In Proceedings of the XIII Brazilian Symposium on Software Components, Architectures, and Reuse. 113–122.Google ScholarDigital Library
- Manoel Marisergio Alves de Oliveira. 2023. Integração de LPS e Microsserviços para o Desenvolvimento de SaaS Multilocatário: proposta de diretrizes para o projeto arquitetural com variabilidades implementadas por meio de microsserviços. Master’s thesis. Universidade Federal Rural do Semi-Àrido e Universidade do Estado do Rio Grande do Norte, Mossoró.Google Scholar
- Eric Evans. 2014. Domain-Driven Design Reference: Definitions and Pattern Summaries (1st edition ed.). Addison-Wesley Professional.Google Scholar
- Martin Fowler. 2017. Microservice Trade-Offs (2015). Dostupné z:https://martinfowler. com/articles/microservice-trade-offs. html (2017).Google Scholar
- Sara Hassan and Rami Bahsoon. 2016. Microservices and Their Design Trade-Offs: A Self-Adaptive Roadmap. https://doi.org/10.1109/SCC.2016.113Google ScholarCross Ref
- Kyo C Kang, Sholom G Cohen, James A Hess, William E Novak, and A Spencer Peterson. 1990. Feature-oriented domain analysis (FODA) feasibility study. Technical Report. Carnegie-Mellon Univ Pittsburgh Pa Software Engineering Inst.Google Scholar
- James Lewis and Martin Fowler. 2014. Microservices: a definition of this new architectural term. https://martinfowler.com/articles/microservices.html. Accessed: 2023-05-07.Google Scholar
- Welder Luz, Everton Agilar, Marcos César de Oliveira, Carlos Eduardo R de Melo, Gustavo Pinto, and Rodrigo Bonifácio. 2018. An experience report on the adoption of microservices in three Brazilian government institutions. In Proceedings of the XXXII Brazilian Symposium on Software Engineering. 32–41.Google ScholarDigital Library
- Peter Mell, Tim Grance, 2011. The NIST definition of cloud computing. (2011).Google Scholar
- Vinicius Feitosa Pacheco. 2018. Microservice Patterns and Best Practices: Explore patterns like CQRS and event sourcing to create scalable, maintainable, and testable microservices. Packt Publishing Ltd.Google Scholar
- Daniela Rabiser, Herbert Prähofer, Paul Grünbacher, Michael Petruzelka, Klaus Eder, Florian Angerer, Mario Kromoser, and Andreas Grimmer. 2018. Multi-purpose, multi-level feature modeling of large-scale industrial software systems. Software & Systems Modeling 17, 3 (2018), 913–938.Google ScholarDigital Library
- Grand View Research. 2022. Cloud Computing Market Size, Share & Trends Report, 2030. https://www.grandviewresearch.com/industry-analysis/cloud-computing-industry. (Accessed on 06/14/2023).Google Scholar
- Maya RA Setyautami, Hafiyyan S Fadhlillah, Daya Adianto, Ichlasul Affan, and Ade Azurat. 2020. Variability management: re-engineering microservices with delta-oriented software product lines. In Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A-Volume A. 1–6.Google ScholarDigital Library
- Elemar Rodrigues Severo Junior. 2021. Manual do Arquiteto de Software. Arquitetura de Software, Brasil. https://arquiteturadesoftware.online/Google Scholar
- Davide Taibi, Valentina Lenarduzzi, and Claus Pahl. 2017. Processes, motivations, and issues for migrating to microservices architectures: An empirical investigation. IEEE Cloud Computing 4, 5 (2017), 22–32.Google ScholarCross Ref
- Leonardo P Tizzei, Marcelo Nery, Vinícius CVB Segura, and Renato FG Cerqueira. 2017. Using microservices and software product line engineering to support reuse of evolving multi-tenant saas. In Proceedings of the 21st International Systems and Software Product Line Conference-Volume A. 205–214.Google ScholarDigital Library
- David Tripp. 2005. Pesquisa-ação: uma introdução metodológica. Educação e pesquisa 31, 03 (2005), 443–466.Google Scholar
- Frank J Van der Linden, Klaus Schmid, and Eelco Rommes. 2007. Software product lines in action: the best industrial practice in product line engineering. Springer Science & Business Media.Google Scholar
- João Varajão. 2021. Software Development in Disruptive Times. Commun. ACM 64, 10 (sep 2021), 32–35. https://doi.org/10.1145/3453932Google ScholarDigital Library
Index Terms
- SPL integrated with Microservices: a hybrid architectural proposal for multitenant SaaS
Recommendations
Using Microservices and Software Product Line Engineering to Support Reuse of Evolving Multi-tenant SaaS
SPLC '17: Proceedings of the 21st International Systems and Software Product Line Conference - Volume AIn order to achieve economies of scale, a Software as a Service (SaaS) should be configurable, multi-tenant efficient, and scalable. But building SaaS with these characteristics comes at a price of having more complex services. Some works in the ...
Using microservices for non-intrusive customization of multi-tenant SaaS
ESEC/FSE 2019: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringEnterprise software vendors often need to support their customer companies to customize the enterprise software products deployed on-premises of customers. But when software vendors are migrating their products to cloud-based Software-as-a-Service (SaaS)...
Migrating monoliths to cloud-native microservices for customizable SaaS
Abstract Context:It was common that software vendors sell licenses to their clients to use software products, such as Enterprise Resource Planning, which are deployed as a monolithic entity on clients’ premises. Moreover, many ...
Highlights- Our approach can guide monoliths to become customizable multi-tenant Software-as-a-Service (SaaS).
Comments