Decoupling microservices from a monolithic application
US-2020285451-A1 · Sep 10, 2020 · US
US11416243B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11416243-B2 |
| Application number | US-202016750532-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 23, 2020 |
| Priority date | Jan 23, 2020 |
| Publication date | Aug 16, 2022 |
| Grant date | Aug 16, 2022 |
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.
Systems and techniques that facilitate automated recommendation of microservice decomposition strategies for monolithic applications are provided. In various embodiments, a community detection component can detect a disjoint code cluster in a monolithic application based on a code property graph characterizing the monolithic application. In various aspects, the code property graph can be based on a temporal code evolution of the monolithic application. In various embodiments, a topic modeling component can identify a functional purpose of the disjoint code cluster based on a business document corpus corresponding to the monolithic application. In various embodiments, a microservices component can recommend a microservice to replace the disjoint code cluster based on the functional purpose.
Opening claim text (preview).
What is claimed is: 1. A system, comprising: a memory that stores computer-executable components; and a processor, operably coupled to the memory, that executes the computer-executable components stored in the memory, wherein the computer-executable components comprise: a community detection component that detects a disjoint code cluster in a monolithic application based on a code property graph characterizing the monolithic application, wherein the code property graph is generated based on an analysis of a temporal code evolution of the monolithic application that identifies groups of changes to source code of the monolithic application that occur in respective defined time periods; a topic modeling component that identifies a functional purpose of the disjoint code cluster based on a business document corpus corresponding to the monolithic application; and a microservices component that recommends a microservice to replace the disjoint code cluster based on the functional purpose. 2. The system of claim 1 , wherein the business document corpus includes at least one from a group consisting of a design document, a user guide, a code annotation, a wiki-document, a github-document, and a readme-document corresponding to the monolithic application. 3. The system of claim 1 , wherein the code property graph is a multi-graph that concurrently depicts structure of the source code, control flows in the source code, and data dependencies in the source code. 4. The system of claim 1 , further comprising: a graph component that: generates the code property graph based on source code of the monolithic application, wherein the code property graph comprises a combination of an abstract syntax tree, a control flow graph, and a program dependence graph characterizing the monolithic application; and augments edge weights of the code property graph based on the temporal code evolution, wherein the temporal code evolution comprises the changes to the source code of the monolithic application over time. 5. The system of claim 1 , wherein the topic modeling component identifies the functional purpose of the disjoint code cluster by employing a Latent Dirichlet Allocation algorithm. 6. The system of claim 1 , further comprising: a feedback component that collects user feedback associated with the recommended microservice and the disjoint code cluster, wherein the feedback component modifies parameters of the community detection component or parameters of the topic modeling component based on the collected user feedback. 7. The system of claim 1 , further comprising: a dependency pattern storage component that stores dependency patterns learned from code property graphs of other monolithic applications, wherein the community detection component and the topic modeling component leverage the dependency patterns to identify the disjoint code cluster and the functional purpose. 8. The system of claim 1 , wherein the microservices component replaces the disjoint code cluster with the recommended microservice. 9. A computer-implemented method, comprising: detecting, by a device operatively coupled to a processor, a disjoint code cluster in a monolithic application based on a code property graph characterizing the monolithic application, wherein the code property graph is generated based on an analysis of a temporal code evolution of the monolithic application that identifies groups of code changes of the monolithic application that occur in respective defined time periods; identifying, by the device, a functional purpose of the disjoint code cluster based on a business document corpus corresponding to the monolithic application; and recommending, by the device, a microservice to replace the disjoint code cluster based on the functional purpose. 10. The computer-implemented method of claim 9 , wherein the business document corpus includes at least one from a group consisting of a design document, a user guide, a code annotation, a wiki-document, a github-document, and a readme-document corresponding to the monolithic application. 11. The computer-implemented method of claim 9 , wherein the code property graph is a multi-graph that concurrently depicts structure of the source code, control flows in the source code, and data dependencies in the source code. 12. The computer-implemented method of claim 9 , further comprising: generating, by the device, the code property graph based on source code of the monolithic application, wherein the code property graph comprises a combination of an abstract syntax tree, a control flow graph, and a program dependence graph characterizing the monolithic application; and augmenting, by the device, edge weights of the code property graph based on the temporal code evolution, wherein the temporal code evolution comprises the changes to the source code of the monolithic application over time. 13. The computer-implemented method of claim 9 , wherein the identifying the functional purpose of the disjoint code cluster employs a Latent Dirichlet Allocation algorithm. 14. The computer-implemented method of claim 9 , further comprising: collecting, by the device, user feedback associated with the recommended microservice and the disjoint code cluster; and modifying, by the device, parameters of an algorithm that facilitates the detecting the disjoint code cluster or parameters of an algorithm that facilitates the identifying the functional purpose based on the collected user feedback. 15. The computer-implemented method of claim 9 , further comprising: storing, by the device, dependency patterns learned from code property graphs of other monolithic applications, wherein the dependency patterns facilitate the detecting the disjoint code cluster and the identifying the functional purpose. 16. The computer-implemented method of claim 9 , further comprising: replacing, by the device, the disjoint code cluster with the recommended microservice. 17. A computer program product for facilitating automated recommendation of microservice decomposition strategies for monolithic applications, the computer program product comprising a computer readable memory having program instructions embodied therewith, the program instructions executable by a processing component to cause the processing component to: detect a disjoint code cluster in a monolithic application based on a code property graph characterizing the monolithic application, wherein the code property graph is generated based on an analysis of a temporal code evolution of the monolithic application that identifies groups of code changes of the monolithic application that occur in respective defined time periods; identify a functional purpose of the disjoint code cluster based on a business document corpus corresponding to the monolithic application; and recommend a microservice to replace the disjoint code cluster based on the functional purpose. 18. The computer program product of claim 17 , wherein the business document corpus includes at least one from a group consisting of a design document, a user guide, a code annotation, a wiki-document, a github-document, and a readme-document corresponding to the monolithic application. 19. The computer program product of claim 17 , wherein the code property graph is a multi-graph that concurrently depicts structure of the source code, control flows in the source code, and data dependencies in the source code. 20. The computer program product of claim 17 , wherein the program instructions are further execut
using virtualisation of network functions or resources, e.g. SDN or NFV entities · CPC title
using machine learning or artificial intelligence · CPC title
Code refactoring · CPC title
Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format · CPC title
Configuration setting · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.