Microservices Identification Through Interface Analysis

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.

[1]  Ricardo Terra,et al.  Towards a Technique for Extracting Microservices from Monolithic Enterprise Systems , 2016, ArXiv.

[2]  Kurt Sandkuhl,et al.  Towards an integrated service-oriented reference enterprise architecture , 2013, WEA 2013.

[3]  Cesare Pautasso,et al.  Restful web services vs. "big"' web services: making the right architectural decision , 2008, WWW.

[4]  Thomas Risse,et al.  Selecting skyline services for QoS-based web service composition , 2010, WWW '10.

[5]  Stéphane Ducasse,et al.  Semantic clustering: Identifying topics in source code , 2007, Inf. Softw. Technol..

[6]  Luciano Baresi,et al.  A discrete-time feedback controller for containerized cloud applications , 2016, SIGSOFT FSE.

[7]  Bilal Gonen,et al.  Approaches to the Evolution of SOA Systems , 2016, Emerging Trends in the Evolution of Service-Oriented and Enterprise Architectures.

[8]  Fionn Murtagh,et al.  Ward’s Hierarchical Agglomerative Clustering Method: Which Algorithms Implement Ward’s Criterion? , 2011, Journal of Classification.

[9]  Alejandro Zunino,et al.  A domain independent readability metric for web service descriptions , 2017, Comput. Stand. Interfaces.

[10]  Lianping Chen,et al.  The Journal of Systems and Software , 2022 .

[11]  Tyson R. Browning,et al.  Applying the design structure matrix to system decomposition and integration problems: a review and new directions , 2001, IEEE Trans. Engineering Management.

[12]  Pooyan Jamshidi,et al.  Migrating to Cloud-Native Architectures Using Microservices: An Experience Report , 2015, ESOCC Workshops.

[13]  Marin Lujak,et al.  Service discovery acceleration with hierarchical clustering , 2015, Inf. Syst. Frontiers.

[14]  Josef Spillner,et al.  Self-managing cloud-native applications: Design, implementation, and experience , 2017, Future Gener. Comput. Syst..

[15]  Rami Bahsoon,et al.  Microservices and Their Design Trade-Offs: A Self-Adaptive Roadmap , 2016, 2016 IEEE International Conference on Services Computing (SCC).

[16]  Peter Kolb,et al.  Experiments on the difference between semantic similarity and relatedness , 2009, NODALIDA.

[17]  Evans,et al.  Domain-driven design , 2003 .

[18]  Aleksi Partanen,et al.  Microservices vs. Service-oriented architecture , 2018 .

[19]  Olaf Zimmermann,et al.  Service Cutter: A Systematic Approach to Service Decomposition , 2016, ESOCC.

[20]  Richi Nayak,et al.  Ontology Mining for Personalized Web Information Gathering , 2007, IEEE/WIC/ACM International Conference on Web Intelligence (WI'07).

[21]  Richi Nayak,et al.  Web Service Discovery with additional Semantics and Clustering , 2007, IEEE/WIC/ACM International Conference on Web Intelligence (WI'07).

[22]  H. Kuhn The Hungarian method for the assignment problem , 1955 .

[23]  Alfred Zimmermann,et al.  Towards Integrating Microservices with Adaptable Enterprise Architecture , 2016, 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW).

[24]  Pooyan Jamshidi,et al.  Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture , 2016, IEEE Software.