Software Version Diversity for Redundant Hardware Reliability
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If hardware is duplicated to survive component failure, then system availability is improved, but device complexity increases
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.
Data Source
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.


