Software Version Diversity for Redundant Hardware Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing multiple versions of software independently is cost-prohibitive and impractical, and existing approaches to increase software reliability are susceptible to single points of hardware failure.

Innovation Solution

Generating multiple versions of software from the same source code and installing them on unique, redundant hardware systems with different binary and execution profiles, using random processes and compilation parameters to ensure independent executions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple versions of software are independently developed by different teams to eliminate common bugs, then software reliability is improved, but development cost increases significantly

Engineering Contradiction:
Improvesoftware reliabilityVSAvoiddevelopment cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The software development process is segmented into source code generation and binary compilation stages. Multiple binary versions are created from a single source code through different compilation parameters, rather than requiring multiple independent development teams. This segmentation allows reliability improvement through version diversity while maintaining cost efficiency through shared source code.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different binary versions are generated by changing compilation parameters such as optimization levels, compiler flags, and build configurations. This parameter variation creates execution diversity without requiring separate development efforts, thereby improving software reliability while avoiding the high costs of parallel independent development.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If software replicas are run on the same host to detect memory corruption, then software security is improved, but the system becomes susceptible to single point of hardware failure

Engineering Contradiction:
Improvesoftware securityVSAvoidhardware failure susceptibility
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system segments software replicas across multiple independent hardware hosts rather than concentrating them on a single host. This spatial segmentation ensures that a failure on one host does not affect other replicas, eliminating the single point of hardware failure while maintaining security through multiple replicas.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The solution transitions from a single-dimension approach (multiple replicas on one host) to a multi-dimensional approach (replicas distributed across multiple hosts). This dimensional change adds hardware diversity as a new layer of protection, preventing cascading failures while maintaining the security benefits of replicated software.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If hardware is duplicated to survive component failure, then system availability is improved, but device complexity increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidhardware duplication complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple hardware systems running different software versions serve the same functional purpose, creating a universal platform that can handle both primary and backup operations. This multi-functionality allows a single hardware configuration to fulfill multiple roles, reducing the need for specialized redundant components and simplifying the overall system architecture.

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

Data Source

PatentUS20240061676A1Reliable system with redundant hardware, and software derived from the same source code but having different binary executions
Publication Date: 2024.02.22 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240061676A1 patent drawing
  • US20240061676A1 patent drawing
  • US20240061676A1 patent drawing

AI summary

A computer-implemented method, in accordance with one embodiment, includes generating multiple versions of software from the same source code. Each of the versions is installed onto a corresponding, unique hardware system, the hardware systems being redundant relative to one another. When the versions are run on the respective hardware systems, the resulting respective executions of the versions are different.