Software Problem Isolation via Usage Scenario Snapshot Comparison
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software troubleshooting methods are costly and time-consuming due to the inability to efficiently isolate and compare software components involved in specific usage scenarios across different systems, particularly in identifying issues in multi-tiered applications.
Innovation Solution
A method that allows users to define and execute usage scenarios on both a reference and a study computer system, acquiring and comparing data to identify differences and isolate problematic software components, enabling snapshot comparison and analysis to detect faults.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual collection and analysis of runtime dependencies is performed, then software problems can be detected, but the process becomes extremely costly and time-consuming
Solution Approach 1:
The patent creates virtual copies (snapshots) of the software system state at different points in time. These snapshots capture runtime dependencies, configurations, and component states without requiring manual analysis. By comparing these automated snapshots, the system can detect software problems efficiently, resolving the contradiction between reliable problem detection and time consumption.
Solution Approach 2:
The patent performs preliminary actions by automatically capturing and storing snapshots of the software system state before problems occur. These pre-captured snapshots contain all necessary runtime dependency and configuration information, eliminating the need for time-consuming manual collection and analysis when troubleshooting is needed.
2Loss of information
If snapshots of software infrastructure are taken for analysis, then runtime dependencies can be identified, but the ability to isolate components in specific usage scenarios is lost
Solution Approach 1:
The patent segments the software system into distinct usage scenarios, each with its own snapshot. Instead of taking a single comprehensive snapshot of the entire system, the system creates targeted snapshots for specific usage scenarios, making it easier to isolate and analyze particular software components involved in specific problems while retaining all necessary runtime dependency information.
Solution Approach 2:
The patent extracts only the relevant portion of system state information needed for specific usage scenarios. Rather than capturing and analyzing the entire software infrastructure, the system extracts and stores snapshots focused on particular usage scenarios, enabling easier isolation of problematic components while maintaining complete runtime dependency data for those scenarios.
3Productivity
If automated snapshot comparison is implemented, then troubleshooting speed increases, but the complexity of the system increases
Solution Approach 1:
The patent uses virtual copies (snapshots) of system state rather than implementing complex real-time monitoring and comparison infrastructure. These snapshots are simple data structures that capture system state at specific moments, and their comparison is straightforward, achieving high troubleshooting speed without excessive system complexity.
Solution Approach 2:
The patent performs preliminary actions by pre-capturing system state snapshots with all necessary information embedded. This eliminates the need for complex real-time data collection and processing infrastructure during troubleshooting, as the comparison can be performed directly on the pre-captured snapshot data, increasing productivity while maintaining manageable system complexity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The preferred embodiment provides a mechanism for accelerating the processes of isolating a software problem, detecting the nature of the problem and resolving it, by isolating the software components involved in the usage scenario wherein the problem occurred. The preferred embodiment then tests the software components by: automatically executing a reference usage scenario within the infrastructure of the faulty software application; and comparing the results of the usage scenario wherein the problem occurred, with expected results from the reference scenario. The preferred embodiment may be used at the end of an installation process to check if the product or patch has been successfully installed by defining a usage scenario descriptor for the installation process. The preferred embodiment may also be used for usage scenario test progression. In particular, the preferred embodiment can allow a user to prepare a usage scenario descriptor for each regression scenario before applying a patch in a production environment. Furthermore, the preferred embodiment can automatically run the usage scenario discovery process in the test environment and cause the comparator to verify the result therefrom.