SEAIDec 1, 2021

Monolith to Microservices: Representing Application Software through Heterogeneous Graph Neural Network

arXiv:2112.01317v3
Originality Incremental advance
AI Analysis

This addresses a domain-specific problem for software engineers by providing an incremental improvement in automating software migration.

The paper tackles the challenge of migrating monolithic software to microservice architectures by proposing a representation learning solution using a heterogeneous graph neural network with constraint-based clustering, showing effectiveness across different types of monoliths in experiments.

Monolithic software encapsulates all functional capabilities into a single deployable unit. But managing it becomes harder as the demand for new functionalities grow. Microservice architecture is seen as an alternate as it advocates building an application through a set of loosely coupled small services wherein each service owns a single functional responsibility. But the challenges associated with the separation of functional modules, slows down the migration of a monolithic code into microservices. In this work, we propose a representation learning based solution to tackle this problem. We use a heterogeneous graph to jointly represent software artifacts (like programs and resources) and the different relationships they share (function calls, inheritance, etc.), and perform a constraint-based clustering through a novel heterogeneous graph neural network. Experimental studies show that our approach is effective on monoliths of different types.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes