Java Runtime Environment Self-Upgrading Orchestrator

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveupgrade reliabilityVSAvoidupgrade productivity
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improveupgrade productivityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improveapplication downtimeVSAvoidupgrade safety
Core Design Contradiction:
Loss of timeVSReliability

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.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11586431B1Dynamically upgrading java runtime environments with running applications
Publication Date: 2023.02.21 RAPID7 INC
  • US11586431B1 patent drawing
  • US11586431B1 patent drawing
  • US11586431B1 patent drawing

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.