Bytecode Agent for Legacy Software Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy software systems are challenging to modernize due to their monolithic nature, leading to unmanageable applications with high maintenance risks and low release frequencies, resulting in poor user experience and high failure rates during replacement processes.

Innovation Solution

An interception-based or instrumentation-based agent functionality is used to interact with legacy software applications' bytecode, allowing for dynamic and runtime interaction with procedures, enabling smooth transitions and quick reversions without modifying the source code, thus facilitating incremental updates and reducing risks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If legacy software applications are updated or replaced, then new functionality and improved performance are achieved, but the system becomes unstable and prone to failures

Engineering Contradiction:
Improverelease frequencyVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a dynamic system where the legacy application and new application can switch roles at runtime. The duality manager dynamically determines which application should handle specific requests, allowing the system to adapt between stability (using legacy) and innovation (using new) based on current needs without compromising overall system reliability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of the application architecture by introducing a duality manager that controls request routing between two application instances. This parameter change allows the system to maintain the legacy application in a stable state while running the new application in parallel, enabling frequent releases without destabilizing the core system.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the legacy application is replaced by a new application, then modern functionality is achieved, but the replacement process takes months or years and the new application becomes outdated before completion

Engineering Contradiction:
Improvefunctionality modernizationVSAvoidreplacement duration
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by setting up the new application instance alongside the legacy application before fully transitioning. The duality manager is configured in advance to route specific requests to the new application, allowing incremental modernization without a lengthy complete replacement process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of replacing the entire legacy application at once, the system applies partial action by selectively routing only certain requests to the new application instance. This allows modernization to proceed incrementally, reducing the overall replacement time while maintaining functionality.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If extensive testing is performed on the new application before launch, then reliability is improved, but the testing period extends the time to market and the application becomes outdated

Engineering Contradiction:
Improvetesting completenessVSAvoidtime to market
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent enables continuity of useful action by allowing the new application to receive and process real production requests immediately through the duality manager, rather than waiting for testing completion. The legacy application continues to handle other requests, ensuring business operations continue uninterrupted while the new application is gradually validated.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system implements feedback mechanisms where the duality manager monitors the performance and behavior of the new application instance receiving real requests. This continuous feedback allows for immediate detection and correction of issues, enabling rapid iteration and reducing the time needed for thorough validation.

Inventive Principle:
Principle #23Feedback

4Adaptability or versatility

If the legacy application is modified to add new functionality, then adaptability is improved, but the application becomes more complex and harder to maintain

Engineering Contradiction:
Improvenew functionalityVSAvoidapplication complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by separating the new functionality into a distinct new application instance rather than integrating it into the legacy application. The duality manager acts as a separator that routes requests appropriately, keeping the legacy application simple and maintainable while adding modern functionality in isolation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The duality manager serves as an intermediary between the legacy application and the new application. It handles the complexity of coordinating between the two instances, allowing each application to remain simple and focused on its specific functionality while the intermediary manages the overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP4027239B1Method for operating a legacy software application together with an interception-based or instrumentation-based agent functionality, system or computing or execution environment for operating a legacy software application, agent functionality for being operated or running together with a legacy software application within a computing or execution environment, bytecode-object-to-interface-object converter or interface-object-to-bytecode-object converter, program and computer program product
Publication Date: 2023.08.09 DEUTSCHE TELEKOM AG
  • EP4027239B1 patent drawingFigure 1
  • EP4027239B1 patent drawingFigure 2
  • EP4027239B1 patent drawing

AI summary

The invention relates to a method for operating a legacy software application, executed by running bytecode within a computing or execution environment, by means of using the legacy software application together with an interception-based or instrumentation-based agent functionality, running on or in the computing or execution environment of the legacy software application and being realized as a generic and configurable agent functionality, especially being agnostic to the legacy software application, wherein the agent functionality is able to intercept or instrument the execution of the legacy software application's bytecode, wherein by means of intercepting or instrumenting the legacy software application's bytecode the agent functionality is able to interact, dynamically and/or at runtime of the bytecode, with at least one procedure or procedure call as part of the legacy software application, wherein the method comprises the following steps: -- in a first step, the agent functionality is triggered to be operated together with the legacy software application running on or in the computing or execution environment of the legacy software application, -- in a second step, subsequent to the first step and at runtime of the agent functionality, the agent functionality intercepts or instruments or triggers the execution of the legacy software application's bytecode with regard to the at least one procedure or procedure call by means of the agent functionality being provided with program flow configuration data such that, dependent on a content of the program flow configuration data, the computing or execution environment executes the at least one procedure or procedure call of the legacy software application under the control of the agent functionality.