论文标题
代码矢量化和访问序列是Monolith微服务标识的策略
Code Vectorization and Sequence of Accesses Strategies for Monolith Microservices Identification
论文作者
论文摘要
将整体应用迁移到微服务体系结构中可以受益于自动化方法,从而加快迁移并改善分解结果。当前指导软件架构的当前方法是使用对域实体的整体功能的访问序列将整体域实体分组为微服务。在本文中,我们使用\ textIt {code2vec}神经网络模型将代码矢量化应用于整体。我们将\ textit {code2vec}应用于矢量化整体功能。我们提出了两种策略来代表功能,一个策略是通过汇总其呼叫图形向量,另一个是通过扩展访问实体的矢量化访问方法的顺序。为了评估这些策略,我们将提出的策略与访问策略的顺序和使用类向量化的现有方法进行比较。我们在大量代码库上运行所有这些策略,然后比较其分解结果在凝聚力,耦合和复杂性方面。
Migrating a monolith application into a microservices architecture can benefit from automation methods, which speed up the migration and improve the decomposition results. One of the current approaches that guide software architects on the migration is to group monolith domain entities into microservices, using the sequences of accesses of the monolith functionalities to the domain entities. In this paper, we enrich the sequence of accesses solution by applying code vectorization to the monolith, using the \textit{Code2Vec} neural network model. We apply \textit{Code2Vec} to vectorize the monolith functionalities. We propose two strategies to represent a functionality, one by aggregating its call graph methods vectors, and the other by extending the sequence of accesses approach with vectorization of the accessed entities. To evaluate these strategies, we compare the proposed strategies with the sequence of accesses strategy and an existing approach that uses class vectorization. We run all these strategies over a large set of codebases, and then compare the results of their decompositions in terms of cohesion, coupling, and complexity.