Dynamic Software Patching via Class Path Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software patch deployment tools face challenges in ensuring correct installation, maintaining system consistency, and efficient uninstallation, particularly due to complexities with shared code and the risk of side effects or bugs, which require manual expertise and consume valuable development time.
Innovation Solution
A system utilizing a patch repository and patch index to manage patch components, ensuring correct installation and uninstallation through a patch manager that maintains a logical interface for patch indexing and class path management, allowing dynamic patching and unpatching while avoiding conflicts between different software versions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual patch installation steps are performed by system administrators, then patches can be installed with proper knowledge, but it consumes valuable development time and requires intricate working knowledge
Solution Approach 1:
The patch installer process automatically performs extraction, component placement, and system updates without requiring manual administrator intervention. The system self-manages the patch installation by executing scripts that handle file extraction to appropriate directories, class path updates, and registry modifications, eliminating the need for administrators to have intricate working knowledge while preserving installation reliability
Solution Approach 2:
The patch package is pre-configured with an installer process and script that contains all necessary installation steps beforehand. The extraction commands, component placement paths, and class path modifications are predetermined and embedded in the patch structure, allowing automatic execution without real-time administrator input or development time consumption
2Adaptability or versatility
If shared code is updated in a patch, then common tasks can be improved across target pieces, but it may cause conflicts between different target pieces using the same shared code
Solution Approach 1:
The system segments shared code updates by creating version-specific patch directories (e.g., patch_812, patch_813) and maintaining separate class paths for different target versions. Each target piece receives patched shared code through version-specific class path configurations, preventing conflicts between different versions while preserving shared code reusability within each version context
Solution Approach 2:
The patch installer applies shared code updates locally to specific target versions through version-directed file placement and class path setting. Each target piece receives the appropriate version of shared code based on its version identifier, ensuring system consistency by preventing mismatched shared code from being applied to incompatible targets
3Reliability
If multiple patches are installed on a target system, then more problems can be solved, but uninstallation becomes complicated and time-consuming
Solution Approach 1:
The patch installer pre-configures uninstallation instructions and commands within each patch package before installation. The uninstall script contains predetermined commands to remove patch components, restore original files, and clean registry entries, enabling straightforward removal without requiring administrators to manually track installation steps or perform complex reverse operations
Solution Approach 2:
The system maintains installation state information that provides feedback for uninstallation. The patch manager tracks installed patches and their components, enabling the uninstall process to automatically identify what was installed and execute appropriate removal commands in the correct sequence, simplifying multi-patch uninstallation while maintaining reliability
4Ease of manufacture
If patch components are extracted using common tools, then extraction is simplified, but additional manual steps are required to place components in proper locations
Solution Approach 1:
The patch installer process merges extraction and component placement into a single automated operation. The installation script combines winzip extraction commands with file copy commands that directly place extracted components into their final destination directories, eliminating the need for separate manual placement steps while maintaining the simplicity of using common extraction tools
Data Source
AI summary
A system and method to update a patch index such that one or more properties in the patch index are associated with the patch, wherein the patch includes one or more components for the target software system; updating a class path at run-time for the target software system such that the patch associated with each one of the one or more properties supersedes prior patches for the same property; and wherein a component can include a class.


