Dynamic cloud anti-pattern detection for a modernization assessment service

    公开(公告)号:US11544046B1

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

    申请号:US17003568

    申请日:2020-08-26

    Abstract: Techniques are described for enabling an application modernization system to efficiently identify various types of software development “anti-patterns” (including cloud anti-patterns) associated with software applications. An anti-pattern is broadly any characteristic of a software application or system that represents an undesirable or suboptimal solution to a problem within a given software design context. Depending on the particular software design context, examples of possible anti-patterns and cloud anti-patterns can include the use of insecure network protocols, an application's reliance on local file system access, the use of a deprecated or outdated class, function, or library, etc. An application modernization system described herein includes a modernization assessment client application that identifies the presence of anti-patterns in users' software applications using a collection of anti-pattern definitions (e.g., defined based on an anti-pattern definition syntax) obtained from an application modernization service of a cloud provider network.

    Ontology-based software modernization assessment engines

    公开(公告)号:US11467828B1

    公开(公告)日:2022-10-11

    申请号:US16894521

    申请日:2020-06-05

    Abstract: Techniques are described for enabling a software modernization assessment service of a cloud provider network to maintain a modernization knowledge base and to use the knowledge base to generate modernization recommendations for users' software applications. A modernization knowledge base comprises one or more modernization ontologies, where a modernization ontology defines concepts and relationships used to describe modernization tool capabilities and limitations, modernization strategies, etc. The modernization assessment service uses the modernization knowledge base to automate various software modernization processes including, for example, providing modernization recommendations for software applications (e.g., applications identified by users as candidates for modernization) and generating modernization assessment reports. A modernization knowledge base, including an ontology understood by a modernization assessment engine, can be readily updated to account for new modernization strategy information, modernization tool information, and modernization process and tool constraints, without necessitating changes to static definitions of such information defined by a modernization assessment service.

    Access control list (ACL) based static analysis of software application artifacts

    公开(公告)号:US11930013B1

    公开(公告)日:2024-03-12

    申请号:US17102164

    申请日:2020-11-23

    CPC classification number: H04L63/101 G06F8/433 G06F9/547 G06F16/9024

    Abstract: Techniques are described for providing an access control list (ACL) assisted process for filtering the analysis and display of dependency relationships among software application components (e.g., packages, files, classes, etc.), e.g., as part of modernization processes aimed at decomposing monolithic applications, identifying anti-patterns, or otherwise analyzing such applications. A software modernization service of a cloud provider network provides discovery agents and other tools that are capable of creating an inventory of users' software applications and collecting application artifacts (e.g., source code or bytecode files) associated with the software applications in users' computing environments. Various techniques are described for using ACLs containing entries enabling or disabling the analysis or display of various application components to customize various modernization processes and results displays.

    Application binary replatforming as a service

    公开(公告)号:US11900087B1

    公开(公告)日:2024-02-13

    申请号:US17702555

    申请日:2022-03-23

    CPC classification number: G06F8/52 G06F8/47 G06F8/76

    Abstract: Techniques are described for a software modernization service to provide the ability to re-platform software application binaries from one ISA and hardware platform to another. The software modernization service can generate assessment reports for users' legacy applications, including recommendations for hardware platforms available in a cloud provider network for use. Responsive to a user requesting to re-platform an application from one ISA and hardware platform to another, an application re-platforming service automates steps to perform a static and dynamic binary translation of an application and to combine the results into a re-platformed executable. Among other benefits, the described techniques enable the deployment of legacy software applications onto a wider set of target ISA and hardware platforms, thereby enabling such applications to take advantage of the performance, scalability, availability, and other benefits of certain types of hardware platforms as desired by a user.

    Machine learning-based software application modernization assessments

    公开(公告)号:US11354120B1

    公开(公告)日:2022-06-07

    申请号:US16894518

    申请日:2020-06-05

    Abstract: Techniques are described for enabling a software modernization assessment service to train and use ML models to automatically generate modernization assessment recommendations for users' software applications and systems. A modernization assessment service collects historical assessment data reflecting past modernization processes and assessments (e.g., application profile information and associated modernization strategies and tools used in past modernization projects). The modernization assessment service uses the historical assessment data to train one or more ML models (e.g., classifiers) that can be used to automatically identify relevant modernization strategies, services, and tools for given software application or system. Responsive to user requests to generate modernization assessment recommendations, the modernization assessment service can use the trained models to automatically generate modernization recommendations and reports.

    Application migration and modernization action completion time forecasting

    公开(公告)号:US11861362B1

    公开(公告)日:2024-01-02

    申请号:US17211486

    申请日:2021-03-24

    CPC classification number: G06F8/76 G06N20/00

    Abstract: Techniques are described for enabling software migration and modernization services of a cloud provider network to provide completion time forecasts for various types of migration and modernization actions performed by the services relative to users' software applications. A cloud provider network provides a software migration and modernization orchestration service that helps users orchestrate the use of various software migration and modernization services. Depending on the technical characteristics of a user's application and the selection of migration and modernization processes to be performed, an amount of time needed to complete migration and modernization actions can vary widely. The migration and modernization services of the cloud provider network each train and use machine learning (ML) models to forecast an amount of time needed to complete various actions based on historical action execution data collected by the services, thereby providing useful insights into complex migration and modernization processes.

    Automatic source code refactoring to mitigate anti-patterns

    公开(公告)号:US11809841B1

    公开(公告)日:2023-11-07

    申请号:US17118361

    申请日:2020-12-10

    CPC classification number: G06F8/33 G06F9/547 G06N20/00

    Abstract: Techniques are described for enabling the automatic refactoring of software application source code to mitigate identified anti-patterns and other software modernization-related issues. A software modernization system analyzes software applications to generate various types of modernization report information, where the report information can include identifications of various types of design and cloud anti-patterns, proposed decompositions of monolithic applications into subunits, refactoring cost information, recommended modernization tools and migration paths, among other such information. A software modernization system further includes a refactoring engine that can automatically refactor source code based on such application analysis information, e.g., to automatically address identified anti-patterns, restructure code for decomposition, etc. A refactoring engine performs refactoring actions based on refactoring templates, machine learning (ML) refactoring models, or other input.

    Using graph partitioning for software decomposition during modernization processes

    公开(公告)号:US11422797B1

    公开(公告)日:2022-08-23

    申请号:US17109359

    申请日:2020-12-02

    Abstract: Techniques are described for using graph partitioning techniques to identify refactoring candidates to decompose monolithic software applications as part of software modernization processes. An application modernization system constructs a graph model of a software application based on an analysis of application artifacts associated with the software application. The graph model includes nodes each representing an independent application component and further includes edges representing identified dependency relationships among the application components. An application modernization system further generates application profile metrics associated with the identified dependencies, and weights derived from such metrics are applied to the edges of the graph model. Once a weighted graph model is obtained, a graph partitioning algorithm is applied to identify a plurality of subgraphs each representing a candidate subunit of the application for refactoring.

Patent Agency Ranking