Service Candidate Identification from Monolithic Systems Based on Execution Traces

被引:71
作者
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 MICROSERVIC
[42]   CRITERIA TO BE USED IN DECOMPOSING SYSTEMS INTO MODULES [J].
PARNAS, DL .
COMMUNICATIONS OF THE ACM, 1972, 15 (12) :1053-&
[43]   Software Clustering Using Dynamic Analysis and Static Dependencies [J].
Patel, Chiragkumar ;
Hamou-Lhadj, Abdelwahab ;
Rilling, Juergen .
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 [J].
Praditwong, Kata ;
Harman, Mark ;
Yao, Xin .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2011, 37 (02) :264-282
[46]   An approach for mapping features to code based on static and dynamic analysis [J].
Rohatgi, Abhishek ;
Hamou-Lhadj, Abdelwahab ;
Rilling, Juergen .
PROCEEDINGS OF THE 16TH IEEE INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, 2008, :234-239
[47]   Dynamic analysis of software systems using execution pattern mining [J].
Safyallah, Hossein ;
Sartipi, Kamran .
14TH IEEE INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2006), PROCEEDINGS, 2006, :84-+
[48]   Identifying Software Components from Object-Oriented APIs Based on Dynamic Analysis [J].
Shatnawi, Anas ;
Shatnawi, Hudhaifa ;
Saied, Mohamed Aymen ;
Al Shara, Zakarea ;
Sahraoui, Houari ;
Seriai, Abdelhak .
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 [J].
Tilevich, Eli ;
Kwon, Young-Woo .
COMPUTER, 2014, 47 (01) :75-77