Skip to main content

A Modular Approach to Calculate Service-Based Maintainability Metrics from Runtime Data of Microservices

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11915))

Abstract

While several service-based maintainability metrics have been proposed in the scientific literature, reliable approaches to automatically collect these metrics are lacking. Since static analysis is complicated for decentralized and technologically diverse microservice-based systems, we propose a dynamic approach to calculate such metrics from runtime data via distributed tracing. The approach focuses on simplicity, extensibility, and broad applicability. As a first prototype, we implemented a Java application with a Zipkin integrator, 23 different metrics, and five export formats. We demonstrated the feasibility of the approach by analyzing the runtime data of an example microservice-based system. During an exploratory study with six participants, 14 of the 18 services were invoked via the system’s web interface. For these services, all metrics were calculated correctly from the generated traces.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    https://opentracing.io.

  2. 2.

    https://github.com/xJREB/microservices-runtime-analysis.

  3. 3.

    https://jgrapht.org.

  4. 4.

    For more details on tool analysis and selection, please refer to https://github.com/xJREB/microservices-runtime-analysis/tree/master/docs/tools.

  5. 5.

    https://zipkin.io.

  6. 6.

    For more details on metric analysis and selection, please refer to https://github.com/xJREB/microservices-runtime-analysis/tree/master/docs/metrics.

  7. 7.

    https://github.com/senecajs/ramanujan.

  8. 8.

    We also published the results in our repository: https://github.com/xJREB/microservices-runtime-analysis/tree/master/docs/demonstration-results.

References

  1. Basci, D., Misra, S.: Data complexity metrics for XML web services. Adv. Electr. Comput. Eng. 9(2), 9–15 (2009). https://doi.org/10.4316/aece.2009.02002

    Article  Google Scholar 

  2. Bogner, J., Fritzsch, J., Wagner, S., Zimmermann, A.: Assuring the evolvability of microservices: insights into industry practices and challenges. In: 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, Cleveland (2019)

    Google Scholar 

  3. Bogner, J., Wagner, S., Zimmermann, A.: Automatically measuring the maintainability of service- and microservice-based systems. In: Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement on - IWSM Mensura 2017, pp. 107–115. ACM Press, New York (2017). https://doi.org/10.1145/3143434.3143443

  4. Cardarelli, M., Iovino, L., Di Francesco, P., Di Salle, A., Malavolta, I., Lago, P.: An extensible data-driven approach for evaluating the quality of microservice architectures. In: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing - SAC 2019, pp. 1225–1234. ACM Press, New York (2019). https://doi.org/10.1145/3297280.3297400

  5. Engel, T., Langermeier, M., Bauer, B., Hofmann, A.: Evaluation of microservice architectures: a metric and tool-based approach. In: Mendling, J., Mouratidis, H. (eds.) CAiSE 2018. LNBIP, vol. 317, pp. 74–89. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-92901-9_8

    Chapter  Google Scholar 

  6. Gebhart, M., Abeck, S.: Metrics for evaluating service designs based on SoaML. Int. J. Adv. Softw. 4(1), 61–75 (2011)

    Google Scholar 

  7. Geetika, R., Singh, P.: Dynamic coupling metrics for object oriented software systems. ACM SIGSOFT Softw. Eng. Notes 39(2), 1–8 (2014). https://doi.org/10.1145/2579281.2579296

    Article  Google Scholar 

  8. Granchelli, G., Cardarelli, M., Francesco, P.D., Malavolta, I., Iovino, L., Salle, A.D.: Towards recovering the software architecture of microservice-based systems. In: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), pp. 46–53. IEEE (2017). https://doi.org/10.1109/ICSAW.2017.48

  9. Haupt, F., Leymann, F., Scherer, A., Vukojevic-Haupt, K.: A framework for the structural analysis of REST APIs. In: 2017 IEEE International Conference on Software Architecture (ICSA), pp. 55–58. IEEE (2017). https://doi.org/10.1109/ICSA.2017.40

  10. Mayer, B., Weinreich, R.: An approach to extract the architecture of microservice-based software systems. In: 2018 IEEE Symposium on Service-Oriented System Engineering (SOSE), pp. 21–30. IEEE (2018). https://doi.org/10.1109/SOSE.2018.00012

  11. Newman, S.: Building Microservices: Designing Fine-Grained Systems, 1st edn. O’Reilly Media, Sebastopol (2015)

    Google Scholar 

  12. Papazoglou, M.P.: Service-oriented computing: concepts, characteristics and directions. In: Proceedings of the 7th International Conference on Properties and Applications of Dielectric Materials (Cat. No. 03CH37417), pp. 3–12. IEEE Computer Society (2003). https://doi.org/10.1109/WISE.2003.1254461

  13. Tahir, A., MacDonell, S.G.: A systematic mapping study on dynamic metrics and software quality. In: 2012 28th IEEE International Conference on Software Maintenance (ICSM), pp. 326–335. IEEE (2012). https://doi.org/10.1109/ICSM.2012.6405289

  14. Tosi, D., Lavazza, L., Morasca, S., Taibi, D.: On the definition of dynamic software measures. In: Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement - ESEM 2012, p. 39. ACM Press, New York (2012). https://doi.org/10.1145/2372251.2372259

Download references

Acknowledgments

This research was partially funded by the Ministry of Science of Baden-Württemberg, Germany, for the doctoral program Services Computing (https://www.services-computing.de/?lang=en).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Justus Bogner .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Bogner, J., Schlinger, S., Wagner, S., Zimmermann, A. (2019). A Modular Approach to Calculate Service-Based Maintainability Metrics from Runtime Data of Microservices. In: Franch, X., Männistö, T., Martínez-Fernández, S. (eds) Product-Focused Software Process Improvement. PROFES 2019. Lecture Notes in Computer Science(), vol 11915. Springer, Cham. https://doi.org/10.1007/978-3-030-35333-9_34

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-35333-9_34

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-35332-2

  • Online ISBN: 978-3-030-35333-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics