Software Parity Verification via Parallel Thread Execution

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 time-consuming and costly, and involves challenges in ensuring parity between the old and new systems, data format transformations, and efficient data migration.

Innovation Solution

Systems and methods for determining software parity by running new and legacy software programs in parallel, transforming data formats using abstraction layers, and migrating data by capturing snapshots and generating metadata to address mismatches, allowing for timely and cost-efficient replacement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the new software program stops processing upon detecting any error in thread output to ensure accuracy, then measurement precision is improved, but productivity deteriorates due to lost time and efficiency

Engineering Contradiction:
Improveoutput accuracyVSAvoidprocessing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system segments the software program into multiple independent threads that can be processed separately. When an error is detected in one thread, only that specific thread is stopped while other threads continue processing, allowing partial productivity maintenance while ensuring accuracy for affected threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements continuous feedback by comparing outputs from the new software program with the legacy software program in real-time. When discrepancies are detected, the system provides feedback to stop only the affected thread and resume after correction, maintaining overall processing efficiency while ensuring output accuracy.

Inventive Principle:
Principle #23Feedback

2Reliability

If the new software program is executed with past input data that was missed during legacy system operation, then completeness of data processing is improved, but loss of time increases

Engineering Contradiction:
Improvedata completenessVSAvoiddeployment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by capturing and storing input data from the legacy software program before replacement. This allows the new software program to process missed historical data without requiring re-execution of the entire system, reducing deployment time while ensuring data completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of the legacy software program's input data and processing logic. These copies enable the new software program to process historical data efficiently without requiring the original legacy system to be re-executed, maintaining data completeness while minimizing time loss.

Inventive Principle:
Principle #26Copying

3Measurement precision

If manual comparison of logic between legacy and new software programs is performed, then measurement precision of parity is improved, but loss of time and cost increase significantly

Engineering Contradiction:
Improveparity verification accuracyVSAvoidverification time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system replaces manual mechanical comparison with automated computational comparison. The computer system automatically compares outputs from both the legacy and new software programs, eliminating the need for manual review while maintaining high precision in parity verification.

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

Solution Approach 2:

The system introduces an intermediary automated comparison mechanism that mediates between the legacy and new software programs. This intermediary systematically compares outputs, identifies discrepancies, and flags them for review, reducing both time and cost while maintaining verification accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If data format transformations are implemented to accommodate different input/output formats between legacy and new software programs, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvedata format compatibilityVSAvoidtransformation layer complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces data format transformation layers as intermediaries between the legacy and new software programs. These layers automatically handle format conversions, providing adaptability while encapsulating complexity within the transformation layers rather than in the core software programs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The transformation layers are designed with universal functionality to handle multiple data format conversions. By creating multi-functional transformation components, the system reduces overall complexity compared to implementing separate conversion mechanisms for each data format pair.

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

Data Source

PatentUS12067386B2Systems and methods for determining software parity
Publication Date: 2024.08.20 CAPITAL ONE SERVICES LLC
  • US12067386B2 patent drawing
  • US12067386B2 patent drawing
  • US12067386B2 patent drawing

AI summary

Systems and methods for determining that a new software program is in parity with a legacy software program. In some aspects, the system receives information for multiple threads processed by a legacy software program. The system processes the information using the new software program, which is executed in parallel with the legacy software program. If an output of a particular thread from the new software program varies outside a threshold distance from a corresponding output for the thread from the legacy software program, the system ceases further processing of the particular thread by the new software program. Otherwise, the system allows processing of the particular thread by the new software program to continue.