Service Candidate Identification from Monolithic Systems Based on Execution Traces

被引:64
作者
Jin, Wuxia [1 ]
Liu, Ting [1 ]
Cai, Yuanfang [2 ]
Kazman, Rick [3 ]
Mo, Ran [2 ]
Zheng, Qinghua [1 ]
机构
[1] Xi An Jiao Tong Univ, Key Lab Intelligent Networks & Network Secur MOEK, Minist Educ, Xian 718900, Shaanxi, Peoples R China
[2] Drexel Univ, Dept Comp Sci, Philadelphia, PA 19104 USA
[3] Univ Hawaii, Dept Informat Technol Management, Honolulu, HI 96822 USA
基金
国家重点研发计划; 中国国家自然科学基金;
关键词
Software; Atomic measurements; Frequency measurement; Testing; Computer architecture; History; Microservice; monolith decomposition; service candidate; execution trace; functionality; modularity; evolvability; SOFTWARE; CODE; COHESION; TAXONOMY;
D O I
10.1109/TSE.2019.2910531
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:987 / 1007
页数:21
相关论文
共 52 条
  • [1] Inferring Hierarchical Motifs from Execution Traces
    Alimadadi, Saba
    Mesbah, Ali
    Pattabiraman, Karthik
    [J]. PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 776 - 787
  • [2] From Object-Oriented Applications to Component-Oriented Applications via Component-Oriented Architecture
    Allier, Simon
    Sadou, Salah
    Sahraoui, Houari
    Fleurquin, Regis
    [J]. 2011 9TH WORKING IEEE/IFIP CONFERENCE ON SOFTWARE ARCHITECTURE (WICSA), 2011, : 214 - 223
  • [3] A Systematic Mapping Study in Microservice Architecture
    Alshuqayran, Nuha
    Ali, Nour
    Evans, Roger
    [J]. 2016 IEEE 9TH INTERNATIONAL CONFERENCE ON SERVICE-ORIENTED COMPUTING AND APPLICATIONS (SOCA), 2016, : 44 - 51
  • [4] Information-theoretic software clustering
    Andritsos, P
    Tzerpos, V
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2005, 31 (02) : 150 - 165
  • [5] [Anonymous], 2017, P 27 INT WORKSHOP SO, DOI DOI 10.1145/3143434.3143443
  • [6] [Anonymous], 2012, P 3 ACM SPEC INT C P
  • [7] Cohesion-Driven Decomposition of Service Interfaces without Access to Source Code
    Athanasopoulos, Dionysis
    Zarras, Apostolos V.
    Miskos, George
    Issarny, Valerie
    Vassiliadis, Panos
    [J]. IEEE TRANSACTIONS ON SERVICES COMPUTING, 2015, 8 (04) : 550 - 562
  • [8] Improving Software Modularization via Automated Analysis of Latent Topics and Dependencies
    Bavota, Gabriele
    Gethers, Malcom
    Oliveto, Rocco
    Poshyvanyk, Denys
    De Lucia, Andrea
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2014, 23 (01)
  • [9] Using structural and semantic measures to improve software modularization
    Bavota, Gabriele
    De Lucia, Andrea
    Marcus, Andrian
    Oliveto, Rocco
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2013, 18 (05) : 901 - 932
  • [10] Finding knees in multi-objective optimization
    Branke, E
    Deb, K
    Dierolf, H
    Osswald, M
    [J]. PARALLEL PROBLEM SOLVING FROM NATURE - PPSN VIII, 2004, 3242 : 722 - 731