Application migration system
US-11194558-B2 · Dec 7, 2021 · US
US11860980B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11860980-B2 |
| Application number | US-202217647075-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 5, 2022 |
| Priority date | Jan 5, 2022 |
| Publication date | Jan 2, 2024 |
| Grant date | Jan 2, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and related system detail a split of an architecture of a monolithic application into an architecture of a micro service application. The method receives source code for the monolithic application, and maps the source code into a directed graph. The graph is split into subgraphs and optimized. The method further provides the detailing of the micro service application split, based on the subgraphs.
Opening claim text (preview).
What is claimed is: 1. A method for detailing a split of an architecture of a monolithic application into an architecture of a micro service application comprising: receiving source code for the monolithic application; mapping the source code into a directed graph; splitting the graph into subgraphs and optimizing the subgraph; providing the detailing of the micro service application split, based on the subgraphs; and performing multiple iterations to optimize a subgraph of the subgraphs; wherein: the splitting of the graph further comprises utilizing a discovery algorithm and a label classification model for the splitting of the directed graph into the subgraphs; the iterative optimization comprises verifying each iterative result based on predefined constraints; the predefined constraints comprise: different sub graphs can only be called one-way and not in a loop; and a division of subgraphs follows a horizontal split according to a level label, and not on a vertical; and the label classification model performs labelling each class node, wherein the label for each class node is selectable from the hierarchical group comprising “basic service layer”, “composite service layer”, and “controller layer”. 2. The method of claim 1 , wherein the discovery algorithm is a Community Overlap PRopagation Algorithm (COPRA). 3. The method of claim 1 , wherein the mapping comprises traversing a source file, and, based on the traversing: designating identified classes and methods as respective vertices of the directed graph; and designating an include relationship between classes and methods to connect them. 4. The method of claim 3 , wherein the mapping further comprises: designating an implements relationship between classes and interfaces; and designating an extends relationship between classes. 5. The method of claim 4 , wherein the extend relationship is an inheritance relationship. 6. The method of claim 1 , wherein the providing of the detailing comprises: generating a recommendation for the micro services application split; and communicating the recommendation to developers via a network interface. 7. The method of claim 1 , wherein the providing of the detailing comprises modifying the source code using the micro service application split to enable a generation of the micro service application from the source code. 8. A system, the system comprising: a memory, the memory containing one or more instructions; and a processor, the processor communicatively coupled to the memory, the processor, in response to reading the one or more instructions, configured to: receive source code for the monolithic application; map the source code into a directed graph; split the graph into subgraphs and optimizing the subgraph; provide the detailing of the micro service application split, based on the subgraphs; and perform multiple iterations to optimize a subgraph of the subgraphs; wherein: the split of the graph further comprises the processor being configured to utilize a discovery algorithm and a label classification model for the split of the directed graph into the subgraphs; the iterative optimization comprises the processor being configured to verify each iterative result based on predefined constraints; the predefined constraints comprise: different sub graphs can only be called one-way and not in a loop; and a division of subgraphs follows a horizontal split according to a level label, and not on a vertical; and the label classification model causes the processor to label each class node, wherein the label for each class node is selectable from the hierarchical group comprising “basic service layer”, “composite service layer”, and “controller layer”. 9. The system of claim 8 , wherein the processor is configured to, for the mapping, traverse a source file, and, based on the traversal: designate identified classes and methods as respective vertices of the directed graph; and designate an include relationship between classes and methods to connect them; designate an implements relationship between classes and interfaces; and designate an extends relationship between classes. 10. The system of claim 8 , wherein the processor is configured to, for the providing of the detailing: generate a recommendation for the micro services application split; communicate the recommendation to developers via a network interface; and modify the source code using the micro service application split to enable a generation of the micro service application from the source code. 11. A computer program product, the computer program product comprising: one or more computer readable storage media; and program instructions collectively stored on the one or more computer readable storage media, the program instructions configured to, when run on a processor: receive source code for the monolithic application; map the source code into a directed graph; split the graph into subgraphs and optimizing the subgraph; provide the detailing of the micro service application split, based on the subgraphs; and perform multiple iterations to optimize a subgraph of the subgraphs, wherein: the split of the graph further comprises the processor being configured to utilize a discovery algorithm and a label classification model for the split of the directed graph into the subgraphs; the iterative optimization comprises the processor being configured to verify each iterative result based on predefined constraints; the predefined constraints comprise: different sub graphs can only be called one-way and not in a loop; and a division of subgraphs follows a horizontal split according to a level label, and not on a vertical; and the label classification model causes the processor to label each class node, wherein the label for each class node is selectable from the hierarchical group comprising “basic service layer”, “composite service layer”, and “controller layer”.
Related publications grouped by family.
Answers are generated from the same data shown on this page.