A Lightweight Architecture Analysis of a Monolithic Messaging Gateway

Background: The Enterprise Messaging Gateway (EMG) from Infoflex Connect (ICAB) is a monolithic system used to deliver mobile text messages (SMS) world-wide. The companies using it have diverse requirements on both functionality and quality attributes and would thus benefit from more versatile customizations, e.g. regarding authorization and data replication. Objective: ICAB needed help in assessing the current architecture of EMG in order to find candidates for architectural changes as well as fulfilling the needs of variability in meeting the wide range of customer requirements. Method: We analysed EMG using a lightweight version of ATAM (Architectural Trade-off Analysis Method) to get a better understanding of how different architectural decisions would affect the trade-offs between the quality requirements from the identified stakeholders. Result: Using the results of this structured approach, it was easy for ICAB to identify the functionality that needed to be improved. It also became clear that the selected component should be converted into a set of microservices, each one optimized for a specific set of customers. Limitation: The stakeholder requirements were gathered intermittently during a long period of continuous engagement, but there is a chance some of their requirements were still not communicated to us. Conclusion: Even though this ATAM study was performed internally at ICAB without direct involvement from any external stakeholders, documenting elicited quality attribute requirements and relating them to the EMG architecture provided new, unexpected, and valuable understandings of the system with a rather small effort.

[1]  Rich Hilliard,et al.  Assessing Migration of a 20-Year-Old System to a Micro-Service Platform Using ATAM , 2019, 2019 IEEE International Conference on Software Architecture Companion (ICSA-C).

[2]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[3]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[4]  Mónica Pinto,et al.  Software Product Line Engineering: A Practical Experience , 2019, SPLC.

[5]  Mário Zenha Rela,et al.  A Framework for Classifying and Comparing Software Architecture Tools for Quality Evaluation , 2011, ICCSA.

[6]  Alessandro F. Garcia,et al.  Extraction of Configurable and Reusable Microservices from Legacy Systems: An Exploratory Study , 2019, SPLC.

[7]  Stefan Wagner,et al.  From Monolith to Microservices: A Classification of Refactoring Approaches , 2018, DEVOPS.

[8]  Wasif Afzal,et al.  Towards a More Reliable Store-and-forward Protocol for Mobile Text Messages , 2018, ApPLIED@PODC.

[9]  Sam Newman,et al.  Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith , 2019 .

[10]  Nour Ali,et al.  A Systematic Mapping Study in Microservice Architecture , 2016, 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA).

[11]  Hans van Vliet,et al.  RCDA: Architecting as a risk- and cost management discipline , 2012, J. Syst. Softw..

[12]  Charlene O'Hanlon,et al.  A Conversation with Werner Vogels , 2006, ACM Queue.

[13]  Rick Kazman,et al.  Making Architecture Design Decisions: An Economic Approach , 2002 .

[14]  Claus Pahl,et al.  Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation , 2017, IEEE Cloud Computing.

[15]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[16]  Proceedings of the 2018 Workshop on Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating Algorithms for Distributed systems , 2018, ApPLIED@PODC.

[17]  Dalila Tamzalit,et al.  From Monolith to Microservices: Lessons Learned on an Industrial Migration to a Web Oriented Architecture , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[18]  Jan Bosch,et al.  Scenario-based software architecture reengineering , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[19]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .