Advertisement

Using architectural modifiability tactics to examine evolution qualities of Service- and Microservice-Based Systems

An approach based on principles and patterns
  • Justus BognerEmail author
  • Stefan Wagner
  • Alfred Zimmermann
Special Issue Paper

Abstract

Software evolvability is an important quality attribute, yet one difficult to grasp. A certain base level of it is allegedly provided by Service- and Microservice-Based Systems, but many software professionals lack systematic understanding of the reasons and preconditions for this. We address this issue via the proxy of architectural modifiability tactics. By qualitatively mapping principles and patterns of Service-Oriented Architecture (SOA) and Microservices onto tactics and analyzing the results, we cannot only generate insights into service-oriented evolution qualities, but can also provide a modifiability comparison of the two popular service-based architectural styles. The results suggest that both SOA and Microservices possess several inherent qualities beneficial for software evolution. While both focus strongly on loose coupling and encapsulation, there are also differences in the way they strive for modifiability (e.g. governance vs. evolutionary design). To leverage the insights of this research, however, it is necessary to find practical ways to incorporate the results as guidance into the software development process.

Keywords

Modifiability Architectural tactics Patterns Service-Based Systems SOA Microservices 

Notes

Acknowledgements

This research was partially funded by the Ministry of Science of Baden-Württemberg, Germany, for the Doctoral Program “Services Computing”. http://www.services-computing.de/?lang=en.

References

  1. 1.
    Alexander C, Ishikawa S, Silverstein M, i Ramió JR, Jacobson M, Fiksdahl-King I (1977) A pattern language. Gustavo GiliGoogle Scholar
  2. 2.
    Ali M, Elish MO (2013) A comparative literature survey of design patterns impact on software quality. In: 2013 international conference on information science and applications (ICISA), pp 1–7.  https://doi.org/10.1109/ICISA.2013.6579460
  3. 3.
    Ameller D, Galster M, Avgeriou P, Franch X (2016) A survey on quality attributes in service-based systems. Softw. Qual. J. 24(2):271–299.  https://doi.org/10.1007/s11219-015-9268-4 CrossRefGoogle Scholar
  4. 4.
    Bachmann F, Bass L, Nord R (2007) Modifiability tactics. Tech. Rep. CMU/SEI-2007-TR-002, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PAGoogle Scholar
  5. 5.
    Baker S, Dobson S (2005) Comparing service-oriented and distributed object architectures. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics), vol. 3760 LNCS, pp 631–645.  https://doi.org/10.1007/11575771_40
  6. 6.
    Bass L, Clements P, Kazman R (2003) Software architecture in practice, 2nd edn. Addison-Wesley Professional, WestfordGoogle Scholar
  7. 7.
    Bass L, Clements P, Kazman R (2012) Software architecture in practice, 3rd edn. Addison-Wesley Professional, WestfordGoogle Scholar
  8. 8.
    Bogner J, Fritzsch J, Wagner S, Zimmermann A (2018) Limiting technical debt with maintainability assurance - an industry survey on used techniques and differences with Service- and Microservice-Based Systems. In: Proceedings of the 1st international conference on technical debt (TechDebt’18). ACM, Gothenburg, Sweden.  https://doi.org/10.1145/3194164.3194166
  9. 9.
    Bogner J, Zimmermann A, Wagner S (2018) Analyzing the relevance of SOA patterns for Microservice-Based Systems. In: Proceedings of the 10th central European workshop on services and their composition (ZEUS’18). CEUR-WS.orgGoogle Scholar
  10. 10.
    Capelli S, Scandurra P (2016) A framework for early design and prototyping of service-oriented applications with design patterns. Comput Lang Syst Struct 46:140–166.  https://doi.org/10.1016/j.cl.2016.07.001 Google Scholar
  11. 11.
    Erl T (2005) Service-Oriented Architecture: concepts, technology, and design. Prentice Hall PTR, Upper Saddle RiverGoogle Scholar
  12. 12.
    Erl T (2009) SOA design patterns. Pearson Education, BostonGoogle Scholar
  13. 13.
    Erl T, Carlyle B, Pautasso C, Balasubramanian R (2012) SOA with REST: principles, patterns and constraints for building enterprise solutions with REST. The prentice hall service technology series from Thomas Erl. Pearson EducationGoogle Scholar
  14. 14.
    Fowler M (2015) Microservices resource guide. URL http://martinfowler.com/microservices
  15. 15.
    Galster M, Avgeriou P (2012) Qualitative analysis of the impact of SOA patterns on quality attributes. In: 2012 12th international conference on quality software, pp 167–170.  https://doi.org/10.1109/QSIC.2012.35
  16. 16.
    Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, BostonzbMATHGoogle Scholar
  17. 17.
    Hegedűs P, Bán D, Ferenc R, Gyimóthy T (2012) Myth or reality? Analyzing the effect of design patterns on software maintainability. In: Kim Th, Ramos C, Kim Hk, Kiumi A, Mohammed S, Ślȩzak D (eds) communications in computer and information science, communications in computer and information science, vol 340, pp. 138–145. Springer, Berlin.  https://doi.org/10.1007/978-3-642-35267-6_18
  18. 18.
    Mcheick H, Qi Y (2012) Quality attributes and design decisions in service-oriented computing. In: 2012 international conference on innovations in information technology (IIT), IEEE, pp 283–287.  https://doi.org/10.1109/INNOVATIONS.2012.6207749
  19. 19.
    Me G, Procaccianti G, Lago P (2017) Challenges on the relationship between architectural patterns and quality attributes. In: 2017 IEEE international conference on software architecture (ICSA), IEEE, pp 141–144.  https://doi.org/10.1109/ICSA.2017.19
  20. 20.
    Mirandola R, Potena P, Scandurra P (2014) Adaptation space exploration for service-oriented applications. Sci Comput Program 80(PART B):356–384.  https://doi.org/10.1016/j.scico.2013.09.017 CrossRefGoogle Scholar
  21. 21.
    Newman S (2015) Building microservices: designing fine-grained systems, 1st edn. O’Reilly Media, NewtonGoogle Scholar
  22. 22.
    Papazoglou MP (2003) Service-oriented computing: concepts, characteristics and directions. In: Proceedings of the 7th international conference on properties and applications of dielectric materials (Cat. No.03CH37417), IEEE Comput. Soc., pp 3–12.  https://doi.org/10.1109/WISE.2003.1254461
  23. 23.
    Parvizi-Mosaed A, Moaven S, Habibi J, Beigi G, Naser-Shariat M (2015) Towards a self-adaptive service-oriented methodology based on extended SOMA. Front Inf Technol Electron Eng 16(1):43–69.  https://doi.org/10.1631/FITEE.1400040 CrossRefGoogle Scholar
  24. 24.
    Parvizi-Mosaed A, Moaven S, Habibi J, Heydarnoori A (2014) Towards a tactic-based evaluation of self-adaptive software architecture availability. In: The 26th international conference on software engineering and knowledge engineering, hyatt regency, Vancouver, BC, Canada, July 1–3, 2013, pp 168–173Google Scholar
  25. 25.
    Perepletchikov M, Ryan C, Frampton K (2005) Comparing the impact of service-oriented and object-oriented paradigms on the structural properties of software. Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics) 3762 LNCS, pp 431–441.  https://doi.org/10.1007/11575863_63
  26. 26.
    Riaz M, Breaux T, Williams L (2015) How have we evaluated software pattern application? A systematic mapping study of research design practices. Inf Softw Technol 65:14–38.  https://doi.org/10.1016/j.infsof.2015.04.002 CrossRefGoogle Scholar
  27. 27.
    Richards M (2016) Microservices vs. Service-Oriented Architecture. O’Reilly Media, SebastopolGoogle Scholar
  28. 28.
    Richardson C (2018) Microservices patterns. Manning Publications, Shelter IslandGoogle Scholar
  29. 29.
    Rotem-Gal-Oz A (2012) SOA patterns. Manning, Shelter IslandGoogle Scholar
  30. 30.
    Voelz D, Goeb A (2010) What is different in quality management for SOA? In: 2010 14th IEEE international enterprise distributed object computing conference, IEEE, pp 47–56.  https://doi.org/10.1109/EDOC.2010.27
  31. 31.
    Yu Y, Fernandez-Ramil J, Lu J, Yuan P (2007) Comparing web services with other software components. In: Proceedings—2007 IEEE international conference on web services, ICWS 2007, Icws, IEEE, pp 388–397.  https://doi.org/10.1109/ICWS.2007.64
  32. 32.
    Zimmermann O (2017) Microservices tenets. Comput Sci Res Dev 32(3–4):301–310.  https://doi.org/10.1007/s00450-016-0337-0 CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  • Justus Bogner
    • 1
    • 2
    Email author
  • Stefan Wagner
    • 2
  • Alfred Zimmermann
    • 1
  1. 1.University of Applied Sciences ReutlingenReutlingenGermany
  2. 2.University of StuttgartStuttgartGermany

Personalised recommendations