4.6 Article

Service Candidate Identification from Monolithic Systems Based on Execution Traces

Journal

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
Volume 47, Issue 5, Pages 987-1007

Publisher

IEEE COMPUTER SOC
DOI: 10.1109/TSE.2019.2910531

Keywords

Software; Atomic measurements; Frequency measurement; Testing; Computer architecture; History; Microservice; monolith decomposition; service candidate; execution trace; functionality; modularity; evolvability

Funding

  1. National Key R&D Program of China [2016YFB0800202]
  2. National Natural Science Foundation of China [61632015, 61772408, U1766215, 61721002, 61532015, 61833015]
  3. Ministry of Education Innovation Research Team [IRT_17R86]
  4. United States National Sciences Foundation [1816594, 1835292, 1823177]

Ask authors/readers for more resources

Monolithic systems face maintainability and scalability issues as they grow, and (micro)service-based architectures are believed to alleviate these problems. Service extraction from traditional monolithic systems is difficult and challenging, as well as evaluating the identified service candidates.
Monolithic systems increasingly suffer from maintainability and scalability issues as they grow in functionality, size, and complexity. It is widely believed that (micro)service-based architectures can alleviate these problems as each service is supposed to have the following characteristics: clearly defined functionality, sufficient modularity, and the ability to evolve independently. Industrial practices show that service extraction from a legacy monolithic system is labor-intensive and complex. Existing work on service candidate identification aims to group entities of a monolithic system into potential service candidates, but this process has two major challenges: first, it is difficult to extract service candidates with consistent quality; second, it is hard to evaluate the identified service candidates regarding the above three characteristics. To address these challenges, this paper proposes the Functionality-oriented Service Candidate Identification (FoSCI) framework to identify service candidates from a monolithic system. Our approach is to record the monolith's execution traces, and extract services candidates using a search-based functional atom grouping algorithm. We also contribute a comprehensive service candidate evaluation suite that uses interface information, structural/conceptual dependency, and commit history. This evaluation system consists of 8 metrics, measuring functionality, modularity, and evolvability respectively of identified service candidates. We compare FoSCI with three existing methods, using 6 widely-used open-source projects as our evaluation subjects. Our results show that FoSCI outperforms existing methods in most measures.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.6
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available