close
Skip to main content

Evolution and Anti-patterns Visualized: MicroProspect in Microservice Architecture

  • Conference paper
  • First Online:
Software Architecture. ECSA 2023 Tracks, Workshops, and Doctoral Symposium (ECSA 2023)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14590))

Included in the following conference series:

  • 689 Accesses

  • 5 Citations

Abstract

A microservice architecture has become the dominant direction for designing the building blocks of large-scale, distributed software systems. However, the dynamic and changing microservices within decentralized systems in contrast to available static tracing tools presents challenges for comprehending its impact on the overall architecture. Existing tracing tools uncover service call graphs but have limitations in visualizing historical changes; moreover, they are not meant to aid with architecture assessment where developers seek potential design anomalies. With the ever-growing system complexity, developers likely resort to focusing on specific subsets of the system, especially given the lack of tools to analyze the impacts of system evolution. To address these challenges, we introduce the MicroProspect tool that provides a high-level, holistic visual perspective on the system’s service view, tracks its structural changes throughout system evolution, and detects and visualizes anti-patterns that could lead to architectural degradation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+
from $39.99 /Month
  • Starting from 10 chapters or articles per month
  • Access and download chapters and articles from more than 300k books and 2,500 journals
  • Cancel anytime
View plans

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Free shipping worldwide - view details

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    MicroProspect Source Code: https://github.com/cloudhubs/mvp.

  2. 2.

    MicroProspect Demo: https://youtu.be/HXSB4uAxRH4.

  3. 3.

    https://dblp.uni-trier.de/rec/conf/icse/ZhouPX0XJZ18.html?view=bibtex.

  4. 4.

    MicroProspect Tool: https://cloudhubs.ecs.baylor.edu/mavp.

References

  1. Jaeger: Open source, distributed tracing platform. https://www.jaegertracing.io/. Accessed Nov 17 2023

  2. Abdelfattah, A.S., Cerny, T., Taibi, D., Vegas, S.: Comparing 2D and augmented reality visualizations for microservice system understandability: A controlled experiment. In: 2023 IEEE/ACM 31st International Conference on Program Comprehension (ICPC), pp. 135–145 (2023). https://doi.org/10.1109/ICPC58990.2023.00028

  3. Abdelfattah, A.S., Cerny, T.: The microservice dependency matrix. In: Papadopoulos, G.A., Rademacher, F., Soldani, J. (eds.) Service-Oriented and Cloud Computing: 10th IFIP WG 6.12 European Conference, ESOCC 2023, Larnaca, Cyprus, October 24–25, 2023, Proceedings, pp. 276–288. Springer Nature Switzerland, Cham (2023). https://doi.org/10.1007/978-3-031-46235-1_19

    Chapter  Google Scholar 

  4. Abdelfattah, A.S., Cerny, T.: Roadmap to reasoning in microservice systems: a rapid review. Appl. Sci. 13(3), 1838 (2023)

    Article  Google Scholar 

  5. Baabad, A., Zulzalil, H.B., Hassan, S., Baharom, S.B.: Software architecture degradation in open source software: a systematic literature review. IEEE Access 8, 173681–173709 (2020). https://doi.org/10.1109/ACCESS.2020.3024671

    Article  Google Scholar 

  6. Bakhtin, A., Li, X., Soldani, J., Brogi, A., Tomas, C., Taibi, D.: Tools reconstructing microservice architecture: A systematic mapping study. In: Agility with Microservices Programming, co-located with ECSA 2023 (2023)

    Google Scholar 

  7. Bogner, J., Fritzsch, J., Wagner, S., Zimmermann, A.: Limiting technical debt with maintainability assurance - an industry survey on used techniques and differences with service- and microservice-based systems. In: 2018 IEEE/ACM International Conference on Technical Debt (TechDebt), pp. 125–133 (2018)

    Google Scholar 

  8. Bogner, J., Wagner, S., Zimmermann, A.: Automatically measuring the maintainability of service-and microservice-based systems - a literature review (10 2017). https://doi.org/10.1145/3143434.3143443

  9. Bushong, V., Das, D., Cerny, T.: Reconstructing the holistic architecture of microservice systems using static analysis. In: Proceedings of the 12th International Conference on Cloud Computing and Services Science-CLOSER (2022)

    Google Scholar 

  10. Campbell, G.A., Papapetrou, P.P.: SonarQube in Action, 1st edn. Manning Publications Co., USA (2013)

    Google Scholar 

  11. Cerny, T., Abdelfattah, A.S., Bushong, V., Al Maruf, A., Taibi, D.: Microservice architecture reconstruction and visualization techniques: A review. In: 2022 IEEE International Conference on Service-Oriented System Engineering (SOSE), pp. 39–48. IEEE (2022)

    Google Scholar 

  12. Cerny, T., Abdelfattah, A.S., Bushong, V., Al Maruf, A., Taibi, D.: Microvision: Static analysis-based approach to visualizing microservices in augmented reality. In: 2022 IEEE International Conference on Service-Oriented System Engineering (SOSE), pp. 49–58 (2022). https://doi.org/10.1109/SOSE55356.2022.00012

  13. Cerny, T., Abdelfattah, A.S., Maruf, A.A., Janes, A., Taibi, D.: Catalog and detection techniques of microservice anti-patterns and bad smells: a tertiary study. J. Syst. Softw. 206, 111829 (2023). https://doi.org/10.1016/j.jss.2023.111829, https://www.sciencedirect.com/science/article/pii/S0164121223002248

  14. Cerny, T., Maruf, A., Janes, A., Taibi, D.: Microservice anti-patterns and bad smells. how to classify, and how to detect them. a tertiary study. SSRN Electronic Journal (01 2023). https://doi.org/10.2139/ssrn.4328067

  15. Cerny, T., et al.: On code analysis opportunities and challenges for enterprise systems and microservices. IEEE access 8, 159449–159470 (2020)

    Article  Google Scholar 

  16. Cerny, T., Taibi, D.: e static analysis: opportunities, gaps, and advancements. In: Joint Post-proceedings of the Third and Fourth International Conference on Microservices (Microservices 2020/2022). Schloss Dagstuhl–Leibniz-Zentrum für Informatik GmbH (2023)

    Google Scholar 

  17. Conway, M.E.: How do committees invent? Datamation (April 1967)

    Google Scholar 

  18. Engel, T., Langermeier, M., Bauer, B., Hofmann, A.: Evaluation of microservice architectures: a metric and tool-based approach. In: Mendling, J., Mouratidis, H. (eds.) Information Systems in the Big Data Era: CAiSE Forum 2018, Tallinn, Estonia, June 11-15, 2018, Proceedings, pp. 74–89. Springer International Publishing, Cham (2018). https://doi.org/10.1007/978-3-319-92901-9_8

    Chapter  Google Scholar 

  19. Fontana, F.A., Roveda, R., Zanoni, M.: Tool support for evaluating architectural debt of an existing system: an experience report. In: Proceedings of the 31st Annual ACM Symposium on Applied Computing, pp. 1347–1349. SAC ’16, ACM (2016). https://doi.org/10.1145/2851613.2851963

  20. de Freitas Apolinário, D.R., de França, B.B.N.: Towards a method for monitoring the coupling evolution of microservice-based architectures. In: Proceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse, pp. 71-80. SBCARS ’20, ACM (2020). https://doi.org/10.1145/3425269.3425273

  21. Gaidels, E., Kirikova, M.: Service dependency graph analysis in microservice architecture. In: Buchmann, R.A., Polini, A., Johansson, B., Karagiannis, D. (eds.) Perspectives in Business Informatics Research: 19th International Conference on Business Informatics Research, BIR 2020, Vienna, Austria, September 21–23, 2020, Proceedings, pp. 128–139. Springer International Publishing, Cham (2020). https://doi.org/10.1007/978-3-030-61140-8_9

    Chapter  Google Scholar 

  22. Gamage, I.U.P., Perera, I.: Using dependency graph and graph theory concepts to identify anti-patterns in a microservices system: a tool-based approach. In: 2021 Moratuwa Engineering Research Conference (MERCon), pp. 699–704 (2021). https://doi.org/10.1109/MERCon52712.2021.9525743

  23. Gortney, M.E., et al.: Visualizing microservice architecture in the dynamic perspective: a systematic mapping study. IEEE Access (2022)

    Google Scholar 

  24. Granchelli, G., Cardarelli, M., Francesco, P., Malavolta, I., Iovino, L., Di Salle, A.: Towards recovering the software architecture of microservice-based systems, pp. 46–53 (04 2017). https://doi.org/10.1109/ICSAW.2017.48

  25. Huizinga, A., Parker, G., Abdelfattah, A.S., Li, X., Cerny, T., Taibi, D.: Detecting microservice anti-patterns using interactive service call graphs: effort assessment. In: Han, H., Baker, E. (eds.) Next Generation Data Science: Second Southwest Data Science Conference, SDSC 2023, Waco, TX, USA, March 24–25, 2023, Revised Selected Papers, pp. 212–227. Springer Nature Switzerland, Cham (2024). https://doi.org/10.1007/978-3-031-61816-1_15

    Chapter  Google Scholar 

  26. Janes, A., Li, X., Lenarduzzi, V.: Open tracing tools: overview and critical comparison. J. Syst. Softw. 204, 111793 (2023). https://doi.org/10.1016/j.jss.2023.111793,https://www.sciencedirect.com/science/article/pii/S0164121223001887

  27. Lenarduzzi, V., Lomio, F., Saarimäki, N., Taibi, D.: Does migrating a monolithic system to microservices decrease the technical debt? J. Syst. Softw. 169, 110710 (2020). https://doi.org/10.1016/j.jss.2020.110710

    Article  Google Scholar 

  28. Ma, S.P., Fan, C.Y., Chuang, Y., Liu, I.H., Lan, C.W.: Graph-based and scenario-driven microservice analysis, retrieval, and testing. Future Gener. Comput. Syst. 100, 724–735 (11 2019). https://doi.org/10.1016/j.future.2019.05.048

  29. Parker, G., et al.: Visualizing anti-patterns in microservices at runtime: a systematic mapping study. IEEE Access 11, 4434–4442 (2023). https://doi.org/10.1109/ACCESS.2023.3236165

    Article  Google Scholar 

  30. Riaz, M., Sulayman, M., Naqvi, H.: Architectural decay during continuous software evolution and impact of ‘design for change’ on software architecture, pp. 119–126. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-10619-4_15

  31. Roveda, R., Arcelli Fontana, F., Pigazzini, I., Zanoni, M.: Towards an architectural debt index. In: 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pp. 408–416 (2018). https://doi.org/10.1109/SEAA.2018.00073

  32. Schiewe, M., Curtis, J., Bushong, V., Cerny, T.: Advancing static code analysis with language-agnostic component identification. IEEE Access 10, 30743–30761 (2022)

    Article  Google Scholar 

  33. Schmitt Laser, M., Medvidovic, N., Le, D.M., Garcia, J.: Arcade: an extensible workbench for architecture recovery, change, and decay evaluation. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp. 1546–1550. ESEC/FSE 2020, ACM (2020). https://doi.org/10.1145/3368089.3417941

  34. Sigelman, B.H., et al.: Dapper, a large-scale distributed systems tracing infrastructure. Tech. rep., Google, Inc. (2010). https://research.google.com/archive/papers/dapper-2010-1.pdf

  35. Taibi, D., Lenarduzzi, V.: On the definition of microservice bad smells. IEEE Softw. 35(3), 56–62 (2018). https://doi.org/10.1109/MS.2018.2141031

    Article  Google Scholar 

  36. Taibi, D., Lenarduzzi, V., Pahl, C.: Microservices anti-patterns: a taxonomy. In: Bucchiarone, A., Dragoni, N., Dustdar, S., Lago, P., Mazzara, M., Rivera, V., Sadovykh, A. (eds.) Microservices: Science and Engineering, pp. 111–128. Springer International Publishing, Cham (2020). https://doi.org/10.1007/978-3-030-31646-4_5

    Chapter  Google Scholar 

  37. Xiao, L., Cai, Y., Kazman, R., Mo, R., Feng, Q.: Identifying and quantifying architectural debt. In: Proceedings of the 38th International Conference on Software Engineering, pp. 488–498. ICSE ’16, ACM (2016). https://doi.org/10.1145/2884781.2884822

  38. Zhou, X., et al.: Benchmarking microservice systems for software engineering research. In: The 40th International Conference on Software Engineering, pp. 323–324. ICSE ’18, ACM (2018). https://doi.org/10.1145/3183440.3194991

Download references

Acknowledgements

This material is based upon work supported by the National Science Foundation under Grant No. 2409933, and a grant from the Academy of Finland (grant n. 349488 - MuFAno).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tomas Cerny.

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Adams, L. et al. (2024). Evolution and Anti-patterns Visualized: MicroProspect in Microservice Architecture. In: Tekinerdoğan, B., Spalazzese, R., Sözer, H., Bonfanti, S., Weyns, D. (eds) Software Architecture. ECSA 2023 Tracks, Workshops, and Doctoral Symposium. ECSA 2023. Lecture Notes in Computer Science, vol 14590. Springer, Cham. https://doi.org/10.1007/978-3-031-66326-0_19

Download citation

Keywords

Publish with us

Policies and ethics

Profiles

  1. Davide Taibi