A MICROSERVICE DECOMPOSITION METHOD THROUGH USING DISTRIBUTED REPRESENTATION OF SOURCE CODE

被引:17
作者
Al-Debagy, Omar [1 ]
Martinek, Peter [1 ]
机构
[1] Budapest Univ Technol & Econ, Dept Elect Technol, Budapest, Hungary
来源
SCALABLE COMPUTING-PRACTICE AND EXPERIENCE | 2021年 / 22卷 / 01期
关键词
microservices decomposition; microservices; refactoring; ARCHITECTURE;
D O I
10.12694/scpe.v22i1.1836
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This research proposed a novel decomposition method for refactoring monolithic applications into microservices applications using a neural network model (code2vec) for creating code embeddings from the monolithic application source code. As a Result, semantically similar code embeddings are clustered through a hierarchical clustering algorithm to produce microservices candidates to resemble the domain model more efficiently. The quality characteristics of the results were measured using two metrics for measuring cohesion. These metrics were Cohesion at Message Level (CHM) and Cohesion at Domain Level (CHD). Also, four applications were used as test cases with different sizes ranging from small to big applications. The proposed method showed promising results in terms of cohesion when compared to other decomposition methods. The proposed method scored better scores in 5 out of 8 tests compared to other methods. Also, averaged CHD and CHM results were 0.52 and 0.76, respectively, for the proposed method, better results when compared to the other methods.
引用
收藏
页码:39 / 52
页数:14
相关论文
共 29 条
[1]   Unsupervised learning approach for web application auto-decomposition into microservices [J].
Abdullah, Muhammad ;
Iqbal, Waheed ;
Erradi, Abdelkarim .
JOURNAL OF SYSTEMS AND SOFTWARE, 2019, 151 :243-257
[2]   A new decomposition method for designing microservices [J].
Al-Debagy O. ;
Martinek P. .
Periodica polytechnica Electrical engineering and computer science, 2019, 63 (04) :274-281
[3]   code2vec: Learning Distributed Representations of Code [J].
Alon, Uri ;
Zilberstein, Meital ;
Levy, Omer ;
Yahav, Eran .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (POPL)
[4]  
Alon U, 2018, ACM SIGPLAN NOTICES, V53, P404, DOI [10.1145/3296979.3192412, 10.1145/3192366.3192412]
[5]  
Amal B, 2014, LECT NOTES COMPUT SC, V8636, P31
[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]   Microservices Architecture Enables DevOps Migration to a Cloud-Native Architecture [J].
Balalaie, Armin ;
Heydarnoori, Abbas ;
Jamshidi, Pooyan .
IEEE SOFTWARE, 2016, 33 (03) :42-52
[8]   Microservices Identification Through Interface Analysis [J].
Baresi, Luciano ;
Garriga, Martin ;
De Renzis, Alan .
SERVICE-ORIENTED AND CLOUD COMPUTING (ESOCC 2017), 2017, 10465 :19-33
[9]  
Cerny T, 2017, APPL COMPUT REV, V17, P29, DOI [10.1145/3129676.3129682, 10.1145/3183628.3183631]
[10]  
Dragoni N., 2017, Microservices: Yesterday, Today and Tomorrow, DOI 10.1007/978-3-319-67425-4_12