US 12,217,031 B2
Monolith-to-microservice refactoring via source-code-to-domain-model graph comparison
Srikanth Govindaraj Tamilselvam, Ayapakkam (IN); Amith Singhee, Karnataka (IN); Divakar R. Mysore, Bangalore (IN); and Radhika Vaddarse, Bengaluru (IN)
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Jul. 27, 2022, as Appl. No. 17/815,430.
Prior Publication US 2024/0036837 A1, Feb. 1, 2024
Int. Cl. G06F 8/41 (2018.01); G06F 8/72 (2018.01)
CPC G06F 8/427 (2013.01) [G06F 8/447 (2013.01); G06F 8/72 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
a memory that stores computer-executable components; and
a processor that executes at least one of the computer-executable components that:
trains a neural network to refactor monolithic applications into microservices according to target domain models;
accesses, using the neural network, source code of a monolithic application and a target domain model corresponding to the monolithic application; and
generates, using the neural network, a group of microservices associated with the target domain model based on refactoring the monolithic application, by aligning a first graph representing the source code with a second graph representing the target domain model, wherein the aligning the first graph with the second graph yields a set of node pairs that respectively map nodes of the first graph to nodes of the second graph, wherein the nodes of the second graph respectively correspond to the group of microservices, wherein the set of node pairs indicate that a first node of the first graph is mapped to a second node of the second graph, wherein the first node represents a program within the source code, wherein the second node represents a service domain within the target domain model, and wherein the refactoring further comprises:
comparing, via natural language processing, non-exposing method calls written within the program to business capabilities specified by the target domain model for the service domain, and
comparing, via the natural language processing, program-exposing method calls written within the program to service domain interactions specified by the target domain model for the service domain.