Legacy Software Data Transformation via Parallel Thread Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Replacing legacy software programs written in older programming languages like COBOL with newer languages is a time-consuming and costly process, as it involves manually comparing and updating thousands of lines of code, handling format mismatches, and migrating data from long-running systems, which can be inefficient and costly.

Innovation Solution

Systems and methods for determining software parity between legacy and new software programs by running them in parallel, transforming data formats, and migrating data efficiently, allowing only threads with errors to be stopped while others continue uninterrupted, thus facilitating a timely and cost-effective transition.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual comparison and updating of code is performed to replace legacy software, then software replacement can be achieved, but the process becomes time-consuming and costly

Engineering Contradiction:
Improvesoftware replacement accuracyVSAvoidcode replacement time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent uses automated code translation to create a copy of the legacy COBOL code functionality in modern programming languages. The system automatically translates COBOL code to languages like Java, C#, or Python, preserving the original logic and functionality while eliminating manual code rewriting. This copying approach maintains replacement accuracy while dramatically reducing the time required compared to manual code migration.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent replaces the mechanical process of manual code comparison and updating with an automated computer-based translation system. Instead of programmers manually analyzing and rewriting thousands of lines of COBOL code, the system uses automated translation tools and algorithms to perform the conversion, substituting human manual labor with computational processes that are both faster and more consistent.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If all threads are stopped when an error is detected to ensure software parity, then accuracy is maintained, but processing efficiency decreases

Engineering Contradiction:
Improvesoftware parity accuracyVSAvoidthread processing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the thread processing into independent units that can be evaluated individually. When an error is detected in one thread, only that specific thread is stopped for correction, while other threads continue processing independently. This segmentation allows the system to maintain high accuracy in software parity verification while preserving overall processing efficiency, as errors in one thread do not halt the entire processing system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent enables continuous processing of multiple threads simultaneously, ensuring that useful computational actions continue uninterrupted in unaffected threads. The system monitors thread outputs for parity with legacy system outputs and maintains continuous processing flow, stopping only the specific threads that exhibit discrepancies. This approach maintains both measurement precision for software parity and productivity through uninterrupted parallel processing.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If data format transformation is performed to match new software requirements, then compatibility is achieved, but system complexity increases

Engineering Contradiction:
Improvedata format compatibilityVSAvoiddata transformation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces data format transformation layers as intermediary components between the legacy COBOL system and the modern software system. These intermediary layers handle format conversion, data mapping, and protocol adaptation, allowing the new system to accept data in formats compatible with legacy outputs without requiring complex modifications to the core business logic. The intermediaries absorb the transformation complexity, protecting the main systems from direct complexity exposure.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If comprehensive manual comparison of code logic is performed, then software parity can be ensured, but operational costs increase

Engineering Contradiction:
Improvesoftware parity assuranceVSAvoidoperational cost
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent enables the translation and verification process to be self-service oriented, where the system automatically performs code translation, executes test cases, compares outputs, and identifies discrepancies without requiring extensive manual programmer intervention. The automated system serves itself by performing verification tasks that would otherwise require human expertise, thereby ensuring software parity while reducing operational costs associated with manual code migration efforts.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11983514B2Systems and methods for data transformation
Publication Date: 2024.05.14 CAPITAL ONE SERVICES LLC
  • US11983514B2 patent drawing
  • US11983514B2 patent drawing
  • US11983514B2 patent drawing

AI summary

Systems and methods for transforming data for a batch-based legacy software program into data suitable for processing by a streaming-based new software program. In some aspects, the system generates an information stream for multiple threads from batch information received from the legacy software program. The system processes the information stream for the multiple threads using the new software program. If there is a mismatch between outputs of the legacy and new software programs for at least one thread, the system adjusts a data model of the new software program to address the mismatch and generates an updated information stream for processing by the new software program.