Server Version Management for Zero-Downtime Java EE Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methodologies for maintaining 'zero downtime' during updates or modifications in distributed Java EE applications are inadequate, as they often result in system unavailability, data loss, or versioning issues, and lack standardization for component replacement and deployment.

Innovation Solution

A server computer system that allows simultaneous operation of multiple versions of components, manages generic requests to connect clients with the applicable version, and includes a logic replacement unit and object persistence manager to facilitate dynamic operation and maintenance, enabling real-time modification and versioning of components without downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If current update methodologies are used in Java EE applications, then system availability is maintained during updates, but versioning issues and data loss occur

Engineering Contradiction:
Improvesystem availabilityVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system segments the application into multiple co-existing versions (v1 and v2), allowing simultaneous operation of different version sets. This segmentation enables the persistence manager to selectively migrate data between versions without affecting overall system availability, thus preventing data loss while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The persistence manager performs preliminary actions by pre-migrating data from old version entities to new version entities before the actual update occurs. This preliminary data preparation ensures that when version switching happens, data is already in the correct format and location, preventing data loss and maintaining system availability.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If component replacement is performed in Java EE applications, then system functionality is updated, but system unavailability occurs

Engineering Contradiction:
Improvesystem update capabilityVSAvoiddowntime
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system implements dynamic version management where multiple application versions can co-exist and be switched between at runtime. The persistence manager dynamically determines which version entities should be migrated based on current system state, allowing continuous operation during updates and eliminating downtime while maintaining adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system ensures continuity of useful action by maintaining multiple version sets simultaneously and enabling seamless switching between them. The persistence manager continues to manage data migration in the background while the application serves requests, ensuring that system functionality is continuously available during the update process.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If multiple versions of components are run simultaneously, then zero-downtime updates are enabled, but system complexity increases

Engineering Contradiction:
Improveupdate speedVSAvoidversion management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The persistence manager acts as an intermediary that automatically manages the complexity of running multiple versions simultaneously. It handles version detection, data migration, and entity mapping between versions, shielding the rest of the system from version management complexity while enabling rapid zero-downtime updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements self-service through automatic version detection and data migration. The persistence manager automatically determines which versions are active, which entities need migration, and executes the migration process without manual intervention, reducing the perceived complexity for operators while enabling fast updates.

Inventive Principle:
Principle #25Self-service

4Ease of operation

If generic requests are used for component access, then client flexibility is improved, but version identification difficulty increases

Engineering Contradiction:
Improveclient access flexibilityVSAvoidversion detection difficulty
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

The persistence manager implements feedback mechanisms to automatically detect which application version set is currently active and which entities require migration. This feedback loop allows the system to maintain client access flexibility through generic requests while automatically resolving version identification without increasing operational complexity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8788569B2Server computer system running versions of an application simultaneously
Publication Date: 2014.07.22 BRITISH TELECOM PLC
  • US8788569B2 patent drawing
  • US8788569B2 patent drawing
  • US8788569B2 patent drawing

AI summary

A server computer system comprising: means for permitting a first and a second version of a component or application to run on the server computer system simultaneously; means for identifying one of the versions as currently applicable and the other as not currently applicable; and means for connecting a requesting client to the currently applicable version in response to a request by the client to access the component or application.