Decoupled Anti-Pattern Detection for Cloud Modernization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software modernization processes face challenges in efficiently identifying and addressing anti-patterns across diverse software applications, particularly when migrating to cloud environments, due to the ever-changing nature of anti-patterns and the burden of updating detection logic in modernization assessment client applications.
Innovation Solution
An application modernization system that decouples anti-pattern definition management from the modernization assessment client application, using a cloud provider network's service to maintain and update a library of anti-pattern definitions, allowing the client application to identify and report anti-patterns without requiring frequent updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If anti-pattern detection logic is embedded directly in the modernization assessment client application, then detection capability is available locally, but the system becomes difficult to maintain and update as anti-patterns change over time
Solution Approach 1:
The patent extracts the anti-pattern definition library from the modernization assessment client application and places it in a separate cloud-based repository. This allows the detection logic to remain in the client while the definitions are independently manageable in the cloud, enabling updates without modifying the client application itself.
Solution Approach 2:
The system implements dynamic updating of anti-pattern definitions by allowing the cloud-based library to be modified, added, or removed based on changing requirements. The client application can retrieve updated definitions from the cloud, making the system adaptable without requiring client updates.
2Adaptability or versatility
If a comprehensive library of anti-pattern definitions is maintained to detect all types of anti-patterns, then detection coverage is improved, but the size and complexity of the definition library increases
Solution Approach 1:
The patent creates a universal anti-pattern definition library that can detect multiple types of anti-patterns across different programming languages and cloud environments. By using a standardized definition format and structure, the same library serves multiple detection purposes without requiring separate definition sets for each scenario.
Solution Approach 2:
The cloud-based anti-pattern definition library acts as an intermediary between the diverse world of software anti-patterns and the detection engine. It provides a standardized interface and structured format that simplifies the complexity of various anti-pattern types while maintaining comprehensive detection coverage.
3Measurement precision
If the modernization assessment client application is frequently updated to incorporate new anti-pattern definitions, then detection accuracy improves, but update frequency and resource consumption increase
Solution Approach 1:
By extracting the anti-pattern definitions from the client application and storing them in the cloud, the system eliminates the need to update the client application itself. Only the cloud-based definition library needs updating, which can be done independently and distributed to clients as needed without requiring client updates.
Solution Approach 2:
The system performs preliminary actions by maintaining the anti-pattern definition library in the cloud where updates can be prepared and validated before being made available to client applications. This allows update preparation to occur independently of client deployment cycles.
Data Source
AI summary
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.


