Skip to content

Replication package for the paper From monolithic to microservice architecture: an automated approach based on graph clustering and combinatorial optimization

License

Notifications You must be signed in to change notification settings

sosygroup/from-monolith-to-microservices

Repository files navigation

From monolithic to microservice architecture: an automated approach based on graph clustering and combinatorial optimization

Published at 2023 IEEE 20th International Conference on Software Architecture (ICSA)

Paper available at https://doi.org/10.1109/ICSA56044.2023.00013

Authors

This study has been designed, developed, and reported by the following investigators:

  • Gianluca Filippone (University of L'Aquila, Italy)
  • Nadeem Qaisar Mehmood (University of L'Aquila, Italy)
  • Marco Autili (University of L'Aquila, Italy)
  • Fabrizio Rossi (University of L'Aquila, Italy)
  • Massimo Tivoli (University of L'Aquila, Italy)

For any information, interested researchers can contact us by writing an email to gianluca.filippone@graduate.univaq.it

Repository structure

Root
│   readme.md                           # This file
│   projects.json                       # Json file containing the list of the selectable monolithic systems
|   1-System_analysis.ipynb             # Jupyter Notebook implementing the static analysis step
|   2-Decomposition_optimization.ipynb  # Jupyter Notebook implementing the decomposition and optimization step
|─── javalang                           # Javalang library for java file parsing
└─── applications                       # Folder containing the considered usecases
     └─── *                             # Use case folders
          |── results                  # Folder containing the output files for the use case (results analysis included)
          └── source                   # Java source files of the use case monolithic application

Required external packages

Analysis step

1-System_analysis.ipynb

Input

Java code

Required user information

Refinement of the automated identification of methods, entities and system's layers

Ouptuts

  • Refinement information file needed for further analysis without further refinements ([project-name]_refinement.json)
  • Nodes csv file ([project-name]_nodes.csv)
  • Full edges csv file, without mapping with node keys ([project-name]_edges_written.csv)
  • Edges csv file, only with references with node keys ([project-name]_edges.csv)
  • Graph gml file without weights ([project-name]_graph.gml)
  • Graph png file ([project-name]_graph.png)

Decomposition and Optimization steps

2-Decomposition_optimization.ipynb

Input

  • Graph gml file ([project-name]_graph.gml)

Optional user information

  • Customization of arcs weights
  • Refinement of entity clusters

Outputs

  • LP formulation ([project-name]_communities_improved_optimization.lp)
  • Solution csv file, mapping nodes to microservices ([project-name]_sol_communities_improved_optimization.csv)
  • Solution image ([project-name]_sol_communities_improved_optimization.png)
  • Solution analysis ([project-name]_sol_communities_improved_optimization.txt)

Included sources

This repository includes the Java source files of the following evaluated systems for auto-containment purposes (last update November 2022):

About

Replication package for the paper From monolithic to microservice architecture: an automated approach based on graph clustering and combinatorial optimization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published