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 条
  • [41] Newman S., 2015, Building microservices: designing fine-grained systems
  • [42] PARNAS DL, 1972, COMMUN ACM, V15, P1053, DOI 10.1145/361598.361623
  • [43] Software Clustering Using Dynamic Analysis and Static Dependencies
    Patel, Chiragkumar
    Hamou-Lhadj, Abdelwahab
    Rilling, Juergen
    [J]. 13TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING: CSMR 2009, PROCEEDINGS, 2009, : 27 - 36
  • [44] Poshyvanyk D, 2006, PROC IEEE INT CONF S, P469
  • [45] Software Module Clustering as a Multi-Objective Search Problem
    Praditwong, Kata
    Harman, Mark
    Yao, Xin
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2011, 37 (02) : 264 - 282
  • [46] An approach for mapping features to code based on static and dynamic analysis
    Rohatgi, Abhishek
    Hamou-Lhadj, Abdelwahab
    Rilling, Juergen
    [J]. PROCEEDINGS OF THE 16TH IEEE INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, 2008, : 234 - 239
  • [47] Dynamic analysis of software systems using execution pattern mining
    Safyallah, Hossein
    Sartipi, Kamran
    [J]. 14TH IEEE INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2006), PROCEEDINGS, 2006, : 84 - +
  • [48] Identifying Software Components from Object-Oriented APIs Based on Dynamic Analysis
    Shatnawi, Anas
    Shatnawi, Hudhaifa
    Saied, Mohamed Aymen
    Al Shara, Zakarea
    Sahraoui, Houari
    Seriai, Abdelhak
    [J]. 2018 IEEE/ACM 26TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2018), 2018, : 189 - 199
  • [49] Stine M., 2015, Migrating to cloud-native application architectures
  • [50] Cloud-Based Execution to Improve Mobile Application Energy Efficiency
    Tilevich, Eli
    Kwon, Young-Woo
    [J]. COMPUTER, 2014, 47 (01) : 75 - 77