Java Runtime Environment Self-Upgrading Orchestrator
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Java-based applications cannot update or upgrade their Java Runtime Environment (JRE) while actively executing, requiring manual intervention that is costly and time-consuming, especially in cloud-based cybersecurity environments where continuous operation is critical.
Innovation Solution
Implementing a self-dependent remote upgrade method that involves receiving a request to update the JRE, downloading a new upgrader-executable, halting the application, updating necessary files, and restarting with the new configuration, while monitoring the upgrade's success and rolling back if necessary to maintain continuous operation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual JRE upgrade procedures are used, then upgrade reliability is improved, but productivity deteriorates due to costly and time-consuming manual intervention
Solution Approach 1:
The system implements self-service automation where the upgrade orchestrator automatically coordinates JRE upgrades across multiple applications. The orchestrator receives upgrade requests, determines compatibility, executes upgrades, and handles rollbacks without manual intervention, eliminating the need for costly and time-consuming manual procedures while maintaining reliability through systematic validation and error handling.
Solution Approach 2:
The system performs preliminary actions by evaluating upgrade compatibility before execution. The orchestrator assesses whether the target JRE version is compatible with each application before initiating the upgrade, and prepares rollback mechanisms in advance. This preliminary validation prevents failed upgrades and ensures system stability, maintaining reliability while enabling automated high-speed execution.
2Productivity
If automated JRE upgrade procedures are implemented, then productivity is improved through reduced manual intervention, but device complexity worsens due to the need for upgrade orchestrators and compatibility management
Solution Approach 1:
The upgrade orchestrator serves multiple functions within a single system component: it receives and manages upgrade requests, determines JRE version compatibility across different applications, executes upgrades, monitors upgrade status, and performs rollbacks if necessary. This multi-functional approach consolidates what would otherwise require multiple separate tools and procedures, achieving high automation productivity without proportionally increasing system complexity.
3Loss of time
If JRE upgrades are performed while applications are actively executing, then downtime is reduced, but reliability worsens due to the impossibility of safe updates during active execution
Solution Approach 1:
The system implements periodic action by scheduling JRE upgrades during planned maintenance windows or low-traffic periods. The orchestrator coordinates upgrades to occur in sequence rather than simultaneously, allowing each application to be upgraded during its designated time slot while others continue running. This approach minimizes overall downtime by avoiding complete system shutdowns while ensuring each individual upgrade occurs under safe conditions with proper validation and rollback capability.
Data Source
AI summary
Disclosed herein are methods, systems, and processes to perform self-dependent upgrades of Java Runtime Environments (JREs). A request to update a plugin to a new version with a new configuration that includes a location to download a new upgrader-executable is received from a platform computing device at an endpoint computing device. The plugin is uploaded to the new version. The new upgrader-executable that includes an executable with an executable table executed by the plugin is downloaded from the location. The executable is used to halt execution of a JRE application (e.g., a Collector) and download JRE files required for the upgrade. The JRE application (e.g., the Collector) is then re-started with the new configuration, which can be rolled back if the upgrade is unsuccessful.


