Legacy Software Data Migration With Parallel Parity Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Replacing legacy software programs, such as those written in COBOL, with newer languages like PYTHON or JAVA is time-consuming and costly, and ensuring parity between the old and new systems is difficult due to format mismatches and the inability to manually compare large volumes of code.

Innovation Solution

Systems and methods for determining software parity by running new and legacy programs in parallel, transforming data models, and migrating data efficiently to ensure consistent outputs, allowing only threads with errors to be stopped while others continue processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual comparison of legacy and new software code is performed, then software parity can be ensured, but the process becomes time-consuming and costly

Engineering Contradiction:
Improvesoftware parity verificationVSAvoidcode replacement time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces manual mechanical code comparison with automated computational systems. The system automatically retrieves source code from version control, generates executable code from both legacy and new implementations, and performs systematic comparison of outputs across multiple test cases, eliminating the need for time-consuming manual review while maintaining verification accuracy

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

Solution Approach 2:

The system performs preliminary actions by automatically setting up the comparison environment before actual verification begins. It retrieves source code, configures build environments, compiles both legacy and new code, and prepares test datasets in advance, so that the actual parity verification can proceed efficiently without manual intervention

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all threads are stopped when an error is detected in parallel processing, then data accuracy is maintained, but processing efficiency decreases

Engineering Contradiction:
Improvedata accuracyVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the thread processing into independent comparable units. Each thread's output is independently verified against the legacy system's output, allowing the system to identify and isolate only the specific threads with discrepancies. This enables selective continuation of processing for threads without errors while maintaining accuracy for those that do have errors

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements feedback mechanisms where each thread's output is continuously monitored and compared against the legacy system. When a discrepancy is detected in a specific thread, the system provides feedback to stop only that particular thread while allowing other threads to continue processing, thus maintaining data accuracy for problematic threads without halting overall processing efficiency

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If data format transformation is performed between legacy and new software, then compatibility is improved, but system complexity increases

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

Solution Approach 1:

The patent introduces an intermediary data format layer that both the legacy and new software systems can interact with. The system retrieves data in the legacy format, transforms it to a standardized intermediary format suitable for the new system, and performs comparisons in this neutral format. This intermediary approach maintains compatibility between systems without requiring complex direct transformation logic

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system applies parameter changes by systematically transforming data format parameters from the legacy system to match the new system's requirements. It identifies format differences, applies appropriate transformation rules, and validates the transformed data, thereby improving compatibility through controlled parameter adjustments rather than complex structural changes

Inventive Principle:
Principle #35Parameter changes

4Reliability

If expert programmers manually update legacy code, then system reliability is maintained, but the process becomes costly and slow

Engineering Contradiction:
Improvesystem reliabilityVSAvoidcode replacement ease
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent enables self-service by automating the code verification and comparison process. The system automatically retrieves source code, generates executable code from both legacy and new implementations, runs comprehensive test suites, and generates detailed comparison reports without requiring expert programmer intervention. This maintains reliability through systematic automated verification while dramatically improving ease of code replacement

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12417087B2Systems and methods for data migration
Publication Date: 2025.09.16 CAPITAL ONE SERVICES LLC
  • US12417087B2 patent drawing
  • US12417087B2 patent drawing
  • US12417087B2 patent drawing

AI summary

Systems and methods for migrating data from a legacy software program to a new software program. In some aspects, the system captures a snapshot of the current state of static data for multiple threads from the legacy software program. The system processes the static data for the multiple threads using the new software program to generate dynamic data for a period of time. During the same period of time, the legacy software program also produces dynamic data for the multiple threads. If there is a mismatch between dynamic data from the new and legacy software programs for at least one thread, the system generates metadata for the at least one thread to supplement static data for the at least one thread for processing by the new software program.