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 条
[1]   Inferring Hierarchical Motifs from Execution Traces [J].
Alimadadi, Saba ;
Mesbah, Ali ;
Pattabiraman, Karthik .
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 [J].
Allier, Simon ;
Sadou, Salah ;
Sahraoui, Houari ;
Fleurquin, Regis .
2011 9TH WORKING IEEE/IFIP CONFERENCE ON SOFTWARE ARCHITECTURE (WICSA), 2011, :214-223
[3]   A Systematic Mapping Study in Microservice Architecture [J].
Alshuqayran, Nuha ;
Ali, Nour ;
Evans, Roger .
2016 IEEE 9TH INTERNATIONAL CONFERENCE ON SERVICE-ORIENTED COMPUTING AND APPLICATIONS (SOCA), 2016, :44-51
[4]   Information-theoretic software clustering [J].
Andritsos, P ;
Tzerpos, V .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2005, 31 (02) :150-165
[5]  
[Anonymous], 2012, P 3 ACM SPEC INT C P
[6]   Cohesion-Driven Decomposition of Service Interfaces without Access to Source Code [J].
Athanasopoulos, Dionysis ;
Zarras, Apostolos V. ;
Miskos, George ;
Issarny, Valerie ;
Vassiliadis, Panos .
IEEE TRANSACTIONS ON SERVICES COMPUTING, 2015, 8 (04) :550-562
[7]   Improving Software Modularization via Automated Analysis of Latent Topics and Dependencies [J].
Bavota, Gabriele ;
Gethers, Malcom ;
Oliveto, Rocco ;
Poshyvanyk, Denys ;
De Lucia, Andrea .
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2014, 23 (01)
[8]   Using structural and semantic measures to improve software modularization [J].
Bavota, Gabriele ;
De Lucia, Andrea ;
Marcus, Andrian ;
Oliveto, Rocco .
EMPIRICAL SOFTWARE ENGINEERING, 2013, 18 (05) :901-932
[9]  
Bogner J., 2017, P 27 INT WORKSH SOFT, P107, DOI DOI 10.1145/3143434.3143443
[10]   Finding knees in multi-objective optimization [J].
Branke, E ;
Deb, K ;
Dierolf, H ;
Osswald, M .
PARALLEL PROBLEM SOLVING FROM NATURE - PPSN VIII, 2004, 3242 :722-731