IDENTIFYING MICROSERVICES FOR A MONOLITH APPLICATION THROUGH STATIC CODE ANALYSIS

    公开(公告)号:US20230168887A1

    公开(公告)日:2023-06-01

    申请号:US17538355

    申请日:2021-11-30

    IPC分类号: G06F8/75 G06F8/41

    CPC分类号: G06F8/75 G06F8/433 G06F8/447

    摘要: Methods, systems, and computer program products for identifying microservices from a monolith application through static code analysis are provided herein. A method includes performing a static code analysis to extract multiple features of a monolith application; partitioning code elements of the monolith application into multiple groups using an agglomerative clustering process, wherein the agglomerative clustering process is based on the extracted multiple features and a set of clustering metrics; obtaining at least one weight corresponding to one or more of: at least one of the multiple features and at least one of the multiple groups; adjusting the groups based on the at least one weight; generating a list of candidate microservices for the monolith application, wherein each candidate microservice in the list corresponds to a different one of the adjusted multiple groups; and outputting the list of candidate microservices to at least one of a system and a user.

    Heterogeneous graph generation for application microservices

    公开(公告)号:US11836538B2

    公开(公告)日:2023-12-05

    申请号:US17498406

    申请日:2021-10-11

    摘要: One embodiment provides a method, including: receiving information describing an application to be split into a plurality of microservices; identifying, utilizing a microservices advisor application, application elements of the application; generating, utilizing the microservices advisor application and from the application elements, a heterogenous graph, wherein each node within the heterogenous graph represents an application element and wherein each edge within the heterogenous graph represents a relationship between two nodes connected by the edge; identifying, based upon user input identifying preferences of relationships between nodes, groups of nodes within the heterogenous graph sharing a common attribute; and providing, from the microservices advisor application, a recommendation, based upon the identified groups of nodes, for splitting the application into microservices, wherein the recommendation includes a number of microservices for the application and application elements that should be included within each of the microservices.

    CONSTRAINTS-BASED REFACTORING OF MONOLITH APPLICATIONS THROUGH ATTRIBUTED GRAPH EMBEDDINGS

    公开(公告)号:US20230084685A1

    公开(公告)日:2023-03-16

    申请号:US17467690

    申请日:2021-09-07

    IPC分类号: G06F8/72 G06N3/02 G06F8/75

    摘要: Methods, systems, and computer program products for constraints-based refactoring of monolith applications through attributed graph embeddings are provided herein. A computer-implemented method includes performing an analysis of source code of a monolith application to identify structural features and behavioral features; generating a graph structure representing the monolith application based on the identified structural features and the identified behavioral features, wherein the graph structure comprises: a plurality of nodes, each node corresponding to one of a plurality of software modules of the monolith application, and a plurality of edges between the plurality nodes, each edge representing a relationship of the corresponding nodes; automatically identifying constraints associated with the plurality of nodes in the graph structure based on the analysis of the source code; clustering the nodes using a convolutional neural network based the constraints; and outputting candidate microservices corresponding to respective ones of the clusters for refactoring the monolith application.

    Identifying microservices for a monolith application through static code analysis

    公开(公告)号:US11768679B2

    公开(公告)日:2023-09-26

    申请号:US17538355

    申请日:2021-11-30

    IPC分类号: G06F9/44 G06F8/75 G06F8/41

    CPC分类号: G06F8/75 G06F8/433 G06F8/447

    摘要: Methods, systems, and computer program products for identifying microservices from a monolith application through static code analysis are provided herein. A method includes performing a static code analysis to extract multiple features of a monolith application; partitioning code elements of the monolith application into multiple groups using an agglomerative clustering process, wherein the agglomerative clustering process is based on the extracted multiple features and a set of clustering metrics; obtaining at least one weight corresponding to one or more of: at least one of the multiple features and at least one of the multiple groups; adjusting the groups based on the at least one weight; generating a list of candidate microservices for the monolith application, wherein each candidate microservice in the list corresponds to a different one of the adjusted multiple groups; and outputting the list of candidate microservices to at least one of a system and a user.

    Application refactoring with explainability

    公开(公告)号:US11782704B1

    公开(公告)日:2023-10-10

    申请号:US17845267

    申请日:2022-06-21

    IPC分类号: G06F8/72

    CPC分类号: G06F8/72

    摘要: By analyzing transaction data of an executing application, an application graph is constructed, the application graph comprising a plurality of nodes and a plurality of edges connecting pairs of the plurality of nodes, a node in the application graph corresponding to a module of the application. The plurality of nodes is clustered into a set of clusters. Formation of a cluster in the set of clusters is analyzed, the analyzing identifying a central node of the cluster, a feature importance in placing a node into the cluster, and an edge importance in placing the node into the cluster. Responsive to a confidence value in the cluster being above a threshold confidence value, using the central node of the cluster, the application is refactored into a set of microservices, the cluster corresponding to a microservice, the central node of the cluster corresponding to a component of the microservice.

    HETEROGENEOUS GRAPH GENERATION FOR APPLICATION MICROSERVICES

    公开(公告)号:US20230111379A1

    公开(公告)日:2023-04-13

    申请号:US17498406

    申请日:2021-10-11

    摘要: One embodiment provides a method, including: receiving information describing an application to be split into a plurality of microservices; identifying, utilizing a microservices advisor application, application elements of the application; generating, utilizing the microservices advisor application and from the application elements, a heterogenous graph, wherein each node within the heterogenous graph represents an application element and wherein each edge within the heterogenous graph represents a relationship between two nodes connected by the edge; identifying, based upon user input identifying preferences of relationships between nodes, groups of nodes within the heterogenous graph sharing a common attribute; and providing, from the microservices advisor application, a recommendation, based upon the identified groups of nodes, for splitting the application into microservices, wherein the recommendation includes a number of microservices for the application and application elements that should be included within each of the microservices.

    Assisting Dependency Migration
    7.
    发明申请

    公开(公告)号:US20210271466A1

    公开(公告)日:2021-09-02

    申请号:US16806630

    申请日:2020-03-02

    摘要: Methods, systems, and computer program products for assisting dependency migration are provided herein. A computer-implemented method includes determining differences between a first version of a dependency used by a software application and each of a plurality of upgrade candidates, the plurality of upgrade candidates comprising at least one of: (i) one or more newer versions of the dependency and (ii) a substitute dependency; identifying, based on the determined differences for a given one of the upgrade candidates, one or more sections of code of the software application that need to be patched in order to be compatible with the given upgrade candidate; and generating a modified version of the software application for the given upgrade candidate that comprises one or more patches for at least a portion of the identified one or more sections of code.

    DATASET CREATION FOR DEEP-LEARNING MODEL

    公开(公告)号:US20210264283A1

    公开(公告)日:2021-08-26

    申请号:US16798757

    申请日:2020-02-24

    IPC分类号: G06N3/08 G06N3/04

    摘要: One embodiment provides a method, including: receiving a training dataset to be utilized for training a deep-learning model; identifying a plurality of aspects of the training dataset, wherein each of the plurality of aspects corresponds to one of a plurality of categories of operations that can be performed on the training dataset; measuring, for each of the plurality of aspects, an amount of variance of the aspect within the training dataset; creating additional data to be incorporated into the training dataset, wherein the additional data comprise data generated for each of the aspects having a variance less than a predetermined amount, wherein the data generated for an aspect results in the corresponding aspect having an amount of variance at least equal to the predetermined amount; and incorporating the additional data into the training dataset.

    Constraints-based refactoring of monolith applications through attributed graph embeddings

    公开(公告)号:US11847443B2

    公开(公告)日:2023-12-19

    申请号:US17467690

    申请日:2021-09-07

    IPC分类号: G06F8/72 G06F8/75 G06N3/02

    CPC分类号: G06F8/72 G06F8/75 G06N3/02

    摘要: Methods, systems, and computer program products for constraints-based refactoring of monolith applications through attributed graph embeddings are provided herein. A computer-implemented method includes performing an analysis of source code of a monolith application to identify structural features and behavioral features; generating a graph structure representing the monolith application based on the identified structural features and the identified behavioral features, wherein the graph structure comprises: a plurality of nodes, each node corresponding to one of a plurality of software modules of the monolith application, and a plurality of edges between the plurality nodes, each edge representing a relationship of the corresponding nodes; automatically identifying constraints associated with the plurality of nodes in the graph structure based on the analysis of the source code; clustering the nodes using a convolutional neural network based the constraints; and outputting candidate microservices corresponding to respective ones of the clusters for refactoring the monolith application.