Graph Neural Network to Dilute Outliers for Refactoring Monolith Application

  title={Graph Neural Network to Dilute Outliers for Refactoring Monolith Application},
  author={Utkarsh Desai and Sambaran Bandyopadhyay and Srikanth G. Tamilselvam},
  booktitle={AAAI Conference on Artificial Intelligence},
Microservices are becoming the defacto design choice for software architecture. It involves partitioning the software components into finer modules such that the development can happen independently. It also provides natural benefits when deployed on the cloud since resources can be allocated dynamically to necessary components based on demand. Therefore, enterprises as part of their journey to cloud, are increasingly looking to refactor their monolith application into one or more candidate… 

Figures and Tables from this paper

CARGO: AI-Guided Dependency Analysis for Migrating Monolithic Applications to Microservices Architecture

CARGO is a novel un-/semi-supervised partition refinement technique that uses a context- and flow-sensitive system dependency graph of the monolithic application to refine and thereby enrich the partitioning quality of the current state-of-the-art algorithms.

A Hierarchical DBSCAN Method for Extracting Microservices from Monolithic Applications

A method that can identify potential microservices from a given monolithic application and generate microservices that are overall more cohesive and that have fewer interactions in-between them with up to 0.9 of precision score when compared to human-designed microservices is proposed.

Monolith to Microservices: Representing Application Software through Heterogeneous GNN

The solution is the first of its kind to leverage heterogeneous graph neural network to learn representations of such diverse software entities and their relationships for the clustering task and study the effectiveness by comparing with works from both software engineering and existing graph representation based techniques.

An Expert System for Redesigning Software for Cloud Applications

This work proposes DEEPLY, a new algorithm that extends the CO-GCN deep learning partition generator with (a) a novel loss function and (b) some hyper-parameter optimization that generally outperforms prior work across multiple datasets and goals.

Monolith to Microservices: VAE-Based GNN Approach with Duplication Consideration

This work applies the variational autoencoder to extract features of classes and uses the fuzzy c means to group the classes into microservices according to their extracted features, and finds that it is helpful in terms of reducing the overhead of communications between microservices.

Automate migration to microservices architecture using Machine Learning techniques

This report proposes a method by which potential microservices can be identified from a given monolithic application while treating this problem as a clustering thematic.

Partitioning Cloud-based Microservices (via Deep Learning)

This new algorithm extends the CO-GCN deep learning partition generator with (a) a novel loss function and (b) some hyper-parameter optimization, and generally outperforms prior work (including COGCN, and others) across multiple datasets and goals.

A Survey on Graph Neural Networks for Microservice-Based Cloud Applications

The research shows the popularity of leveraging convolutionalgraph neural networks for microservice-based applications in the current design of cloud systems and the emerging area of adopting spatio-temporal graph neural networks (STGNNs) and dynamic graph neural network (DGNN) for more advanced studies.

Lessons learned from hyper-parameter tuning for microservice candidate identification

Using a set of open source Java EE applications, it is shown that hyperparameter optimization can significantly improve microservice partitioning and an open issue for future work is how to find which optimizer works best for different problems.

A service graph based extraction of microservices from monolith services of service‐oriented architecture

This work proposes an approach to extract the candidate microservices from the existing legacy applications using graph based algorithms, and extracted the microservices.



Comparison of Graph Clustering Algorithms for Recovering Software Architecture Module Views

An empirical study that evaluates four clustering algorithms according to three previously proposed criteria: extremity of cluster distribution, authoritativeness, and stability, which were measured against consecutive releases of four different systems suggest that the k-means algorithm performs best in terms of author itativeness and extremity and the modularization quality algorithm produces more stable clusters.

Extraction of Microservices from Monolithic Software Architectures

A formal microservice extraction model is presented to allow algorithmic recommendation of micro service candidates in a refactoring and migration scenario and shows that the produced microservice candidates lower the average development team size down to half of the original size or lower.

From Monolith to Microservices: A Classification of Refactoring Approaches

The notion of architectural refactoring is discussed and a variety of strategies to break down a monolithic application into independent services are yielded, with one exception, most approaches only applicable under certain conditions.

Service Candidate Identification from Monolithic Systems Based on Execution Traces

The Functionality-oriented Service Candidate Identification (FoSCI) framework to identify service candidates from a monolithic system is proposed, to record the monolith's execution traces, and extract services candidates using a search-based functional atom grouping algorithm.

Representation Learning on Graphs: Methods and Applications

A conceptual review of key advancements in this area of representation learning on graphs, including matrix factorization-based methods, random-walk based algorithms, and graph neural networks are provided.

Supervised Community Detection with Line Graph Neural Networks

This work presents a novel family of Graph Neural Networks (GNNs) for solving community detection problems in a supervised learning setting and shows that, in a data-driven manner and without access to the underlying generative models, they can match or even surpass the performance of the belief propagation algorithm on binary and multi-class stochastic block models.

A Comprehensive Survey on Graph Neural Networks

This article provides a comprehensive overview of graph neural networks (GNNs) in data mining and machine learning fields and proposes a new taxonomy to divide the state-of-the-art GNNs into four categories, namely, recurrent GNNS, convolutional GNN’s, graph autoencoders, and spatial–temporal Gnns.

Outlier Resistant Unsupervised Deep Architectures for Attributed Network Embedding

This work proposes a deep unsupervised autoencoders based solution which minimizes the effect of outlier nodes while generating the network embedding, and proposes a second unsuper supervised deep model which learns by discriminating the structure and the attribute based embeddings of the network and minimizesThe effect of outliers in a coupled way.

node2vec: Scalable Feature Learning for Networks

In node2vec, an algorithmic framework for learning continuous feature representations for nodes in networks, a flexible notion of a node's network neighborhood is defined and a biased random walk procedure is designed, which efficiently explores diverse neighborhoods.

Clustering Methodologies for Software Engineering

The state of the art in software clustering research is presented and the clustering methods that have received the most attention from the research community are discussed and outline their strengths and weaknesses.