Core Concepts
This paper presents the construction of a comprehensive feature dataset for open-source microservices-based systems developed using the Spring Cloud framework. The dataset captures various metrics related to the architecture, design, and interactions of individual microservices, enabling in-depth analysis and detection of microservice bad smells.
Abstract
The paper addresses the lack of an appropriate open-source microservice feature dataset by taking the following steps:
-
Curation of a catalog of 55 open-source microservice systems developed using the Spring Cloud framework, selected based on specific criteria to ensure a certain level of maturity and diversity.
-
Establishment of 23 metrics to capture the fundamental aspects of individual microservices, including their presentation layer, business logic layer, data access layer, and model objects. These metrics enable the evaluation of microservice granularity, design, and interaction relationships.
-
Development of an extraction program to parse the collected microservice systems and extract the necessary feature data, followed by manual verification to ensure the accuracy of the extracted data.
-
Creation of a comprehensive feature dataset in the form of a CSV file, which is made publicly available. This dataset can serve as a valuable resource for the application of machine learning algorithms and further research in the domain of microservice bad smell detection.
The paper also discusses the limitations of the dataset, such as the potential exclusion of exceptional open-source microservice systems and the challenges in achieving 100% accurate automatic extraction due to the diverse technologies and development standards employed in microservice systems.
Stats
The effective lines of source code in all .java files of the microservice is 338.
The number of entity classes used for persistent storage in the microservice is 100.
The number of attributes contained in the microservice entity classes is 100.
The number of controllers in the microservice is 100.
The number of interfaces in the microservice is 100.
The number of abstract classes in the microservice is 100.
The number of service implementation classes in the microservice is 100.
The number of Data Transfer Object classes in the microservice is 100.
The number of APIs exposed by the microservice is 100.
The maximum value of the parameter list size of all APIs exposed is 100.
Quotes
"The availability of such datasets may contribute to the detection of microservice bad smells unexpectedly."
"To address the current gap, this paper analyzes the architecture and interactions of microservices based on Spring in various Spring Cloud style microservice systems, establishes the relevant metrics of various fundamental elements of microservices in Spring Boot style, which are based on the three-tier architecture, collects open-source microservice systems, implements the extraction program, and constructs a dataset containing microservice feature data, which in turn paves the way for exploring poor practices within and between different microservices through machine learning, heuristic algorithms, and other means."