Identifying and isolating unique monolithic application code
AssigneeInternational Business Machines Corporation
InventorsKieran Geoghegan, Paul Barry, Fuguo Huang, Vinh Tuan Thai, Ryan Thomas Claussen
Life of this patent
Estimating the term…
Abstract
A processor set is configured to receive code associated with a monolithic application. The processor set further discovers hidden internal common code by analyzing the received code and identifies unique application code based on the discovered hidden internal common code. The processor set may also generate a unique code module including the unique application code. The unique code module may be transmitted to a user device.
Claims18
A computer-implemented method, comprising:
- receiving, by a processor set, binary code associated with a monolithic application;
- discovering, by the processor set, hidden internal common code by performing a static analysis of the binary code, wherein the static analysis includes:
- generating a call graph representing calling relationships between components of the monolithic application;
- and
- determining, for each component, a number of incoming and outgoing edges in the call graph;
- identifying, by the processor set, unique application code based on a weighting value of the components associated with the monolithic application being less than a threshold value that is set based on characteristics of the monolithic application, the weighting value being determined from the call graph based depending on a number of the components that use the discovered hidden internal common code;
- generating, by the processor set, a unique code module comprising the unique application code;
- and
- refactoring, by the processor set, the monolithic application into a microservice architecture based on the unique code module.
A computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:
- receive binary code associated with a monolithic application;
- discover hidden internal common code by performing a static analysis of the binary code, wherein the static analysis includes:
- generating a call graph representing calling relationships between components of the monolithic application;
- and
- determining, for each component, a number of incoming and outgoing edges in the call graph;
- identify unique application code based on a weighting value of the components associated with the monolithic application being less than a threshold value that is set based on characteristics of the monolithic application, the weighting value being determined from the call graph based on a number of the components that use the discovered hidden internal common code;
- generate a unique code module comprising the unique application code;
- and
- refactor the monolithic application into a microservice architecture based on the unique code module.
A system comprising:
- a processor set, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:
- receive binary code associated with a monolithic application;
- discover hidden internal common code by performing a static analysis of the binary code, wherein the static analysis includes:
- generating a call graph representing calling relationships between components of the monolithic application;
- and
- determining, for each component, a number of incoming and outgoing edges in the call graph;
- identify unique application code based on a weighting value of the components associated with the monolithic application being less than a threshold value that is set based on characteristics of the monolithic application, the weighting value depending on a number of the components that use the discovered hidden internal common code;
- generate a unique code module comprising the unique application code;
- and
- refactor the monolithic application into a microservice architecture based on the unique code module.
Dependencies are inferred from the claim text.