Microservice decomposition strategy of monolithic applications

US11416243B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11416243-B2
Application numberUS-202016750532-A
CountryUS
Kind codeB2
Filing dateJan 23, 2020
Priority dateJan 23, 2020
Publication dateAug 16, 2022
Grant dateAug 16, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • using virtualisation of network functions or resources, e.g. SDN or NFV entities · CPC title

  • H04L41/16Primary

    using machine learning or artificial intelligence · CPC title

  • G06F8/72Primary

    Code refactoring · CPC title

  • Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format · CPC title

  • Configuration setting · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11416243B2 cover?
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 …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification H04L41/16. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 16 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).