Advertisement

Microservices Identification Through Interface Analysis

  • Luciano Baresi
  • Martin GarrigaEmail author
  • Alan De Renzis
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10465)

Abstract

The microservices architectural style is gaining more and more momentum for the development of applications as suites of small, autonomous, and conversational services, which are then easy to understand, deploy and scale. One of today’s problems is finding the adequate granularity and cohesiveness of microservices, both when starting a new project and when thinking of transforming, evolving and scaling existing applications. To cope with these problems, the paper proposes a solution based on the semantic similarity of foreseen/available functionality described through OpenAPI specifications. By leveraging a reference vocabulary, our approach identifies potential candidate microservices, as fine-grained groups of cohesive operations (and associated resources). We compared our approach against a state-of-the-art tool, sampled microservices-based applications and decomposed a large dataset of Web APIs. Results show that our approach is able to find suitable decompositions in some 80% of the cases, while providing early insights about the right granularity and cohesiveness of obtained microservices.

Keywords

Microservices Microservice architecture Monolith decomposition 

References

  1. 1.
    Hassan, S., Bahsoon, R.: Microservices and their design trade-offs: a self-adaptive roadmap. In: IEEE International Conference on Services Computing (SCC), pp. 813–818. IEEE (2016)Google Scholar
  2. 2.
    Fowler, M.: Monolith first (2015). http://martinfowler.com/bli-ki/MonolithFirst.html
  3. 3.
    Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term (2014). http://martinfowler.com/articles/microservices.html
  4. 4.
    Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)CrossRefGoogle Scholar
  5. 5.
    Garriga, M.: Towards a microservices taxonomy. In: Microservices: Science and Engineering Workshop, Co-located with Software Engineering and Formal Methods (SEFM), Trento, Italy (2017, accepted for publication)Google Scholar
  6. 6.
    Richards, M.: Microservices vs. service-oriented architecture. (2015)Google Scholar
  7. 7.
    Wilde, N., Gonen, B., El-Sheikh, E., Zimmermann, A.: Approaches to the evolution of SOA systems. In: El-Sheikh, E., Zimmermann, A., Jain, L.C. (eds.) Emerging Trends in the Evolution of Service-Oriented and Enterprise Architectures. ISRL, vol. 111, pp. 5–21. Springer, Cham (2016). doi: 10.1007/978-3-319-40564-3_2 CrossRefGoogle Scholar
  8. 8.
    Richardson, C.: Microservices architecture (2014). http://micro-services.io/
  9. 9.
  10. 10.
    Zimmermann, O.: Do microservices pass the same old architecture test? Or: Soa is not dead-long live (micro-) services. In: Microservices Workshop at SATURN Conference, SEI (2015)Google Scholar
  11. 11.
    Browning, T.R.: Applying the design structure matrix to system decomposition and integration problems: a review and new directions. IEEE Trans. Eng. Manag. 48(3), 292–306 (2001)CrossRefGoogle Scholar
  12. 12.
    Kuhn, A., Ducasse, S., Gorba, T.: Semantic clustering: identifying topics in source code. Inf. Softw. Technol. 49(3), 230–243 (2007). 12th Working Conference on Reverse EngineeringCrossRefGoogle Scholar
  13. 13.
    Chen, L.: Continuous delivery: overcoming adoption challenges. J. Syst. Softw. 128, 72–86 (2017)CrossRefGoogle Scholar
  14. 14.
    Pautasso, C., Zimmermann, O., Leymann, F.: Restful web services vs. “Big” web services: making the right architectural decision. In: 17th International Conference on World Wide Web, pp. 805–814. ACM Press (2008)Google Scholar
  15. 15.
    OpenAPI Consortium: The OpenAPI Initiative (OAI) (2016). https://www.openapis.org/
  16. 16.
    Kolb, P.: Experiments on the difference between semantic similarity and relatedness. In: Proceedings of the 17th Nordic Conference on Computational Linguistics - NODALIDA 2009. Link University Electronic Press, May 2009Google Scholar
  17. 17.
    Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, Reading (2004)Google Scholar
  18. 18.
    Renzis, A.D., Garriga, M., Flores, A., Cechich, A., Mateos, C., Zunino, A.: A domain independent readability metric for web service descriptions. Comput. Stand. Interfaces 50, 124–141 (2017)CrossRefGoogle Scholar
  19. 19.
    Kuhn, H.W.: The Hungarian method for the assignment problem. Naval Res. Logistic Q. 2, 83–97 (1955)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Gysel, M., Kölbener, L., Giersche, W., Zimmermann, O.: Service Cutter: a systematic approach to service decomposition. In: Aiello, M., Johnsen, E.B., Dustdar, S., Georgievski, I. (eds.) ESOCC 2016. LNCS, vol. 9846, pp. 185–200. Springer, Cham (2016). doi: 10.1007/978-3-319-44482-6_12 CrossRefGoogle Scholar
  21. 21.
    Levcovitz, A., Terra, R., Valente, M.T.: Towards a technique for extracting microservices from monolithic enterprise systems. In: 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM), pp. 97–104 (2015)Google Scholar
  22. 22.
    Nayak, R., Lee, B.: Web service discovery with additional semantics and clustering. In: IEEE/WIC/ACM International Conference on Web Intelligence, pp. 555–558. IEEE, Silicon Valley (2007)Google Scholar
  23. 23.
    Cong, Z., Fernandez, A., Billhardt, H., Lujak, M.: Service discovery acceleration with hierarchical clustering. Inf. Syst. Front. 17(4), 799–808 (2015)CrossRefGoogle Scholar
  24. 24.
    Alrifai, M., Skoutas, D., Risse, T.: Selecting skyline services for QoS-based web service composition. In: Proceedings of the 19th International Conference on World Wide Web, pp. 11–20. ACM (2010)Google Scholar
  25. 25.
    Murtagh, F., Legendre, P.: Ward’s hierarchical agglomerative clustering method: which algorithms implement ward’s criterion? J. Classif. 31(3), 274–295 (2014)MathSciNetCrossRefzbMATHGoogle Scholar
  26. 26.
    Bogner, J., Zimmermann, A.: Towards integrating microservices with adaptable enterprise architecture. In: 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW), pp. 1–6, September 2016Google Scholar
  27. 27.
    Zimmermann, A., Sandkuhl, K., Pretz, M., Falkenthal, M., Jugel, D., Wissotzki, M.: Towards an integrated service-oriented reference enterprise architecture. In: Proceedings of the 2013 International Workshop on Ecosystem Architectures, pp. 26–30. ACM (2013)Google Scholar
  28. 28.
    Balalaie, A., Heydarnoori, A., Jamshidi, P.: Migrating to cloud-native architectures using microservices: an experience report. In: Celesti, A., Leitner, P. (eds.) ESOCC Workshops 2015. CCIS, vol. 567, pp. 201–215. Springer, Cham (2016). doi: 10.1007/978-3-319-33313-7_15 CrossRefGoogle Scholar
  29. 29.
    Toffetti, G., Brunner, S., Blöchlinger, M., Spillner, J., Bohnert, T.M.: Self-managing cloud-native applications: design, implementation, and experience. Future Gener. Comput. Syst. 72, 165–179 (2017)CrossRefGoogle Scholar
  30. 30.
    Baresi, L., Guinea, S., Leva, A., Quattrocchi, G.: A discrete-time feedback controller for containerized cloud applications. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, pp. 217–228. ACM, New York (2016)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2017

Authors and Affiliations

  • Luciano Baresi
    • 1
  • Martin Garriga
    • 1
    Email author
  • Alan De Renzis
    • 2
  1. 1.Dipartimento di Elettronica, Informazione e BioingegneriaPolitecnico di MilanoMilanItaly
  2. 2.Faculty of InformaticsNational University of ComahueNeuquénArgentina

Personalised recommendations