Software Application Striping for Secure Distributed Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed computing systems fail to provide a secure general computing platform that protects software applications during execution, as they often rely on localized execution or inadequate security measures, making them vulnerable to compromise if the underlying computer or facility is compromised.

Innovation Solution

A distributed computing platform is formed by allocating resources from a network fabric, where a software application is disaggregated into portions and assigned to different processing cores across interconnected networking nodes, with system memory spread across nodes for secure execution, and redundancy features to ensure fault tolerance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a software application is executed on a distributed computing platform using public computers, then computing power and scalability are improved, but security of the software application deteriorates

Engineering Contradiction:
Improvecomputing powerVSAvoidsoftware security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The software application is divided into multiple segments that are distributed across different processing cores in the network fabric. Each core executes only a portion of the application, preventing any single compromised node from accessing the complete application code and thereby maintaining security while utilizing distributed computing resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A secure execution environment is introduced as an intermediary layer between the distributed computing platform and the software application. This intermediary ensures that application segments are executed securely across the network fabric, protecting the software from compromise while enabling distributed execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a software application is kept local to the computing environment, then security is improved, but scalability and distributed computing capability deteriorate

Engineering Contradiction:
Improvesoftware securityVSAvoidscalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The application is segmented and distributed across multiple nodes in the network fabric, allowing the system to scale while maintaining security. Each node holds only a portion of the application, so the complete application cannot be accessed from any single location, enabling both scalability and security.

Inventive Principle:
Principle #1Segmentation

3Reliability

If computing resources are distributed across network nodes, then fault tolerance is improved, but system complexity increases

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple processing cores across different network nodes are merged to form a unified distributed computing platform. This merging provides fault tolerance through redundancy while the underlying network fabric manages the complexity of coordinating these distributed resources.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8364744B2Software application striping
Publication Date: 2013.01.29 NANT HOLDINGS IP LLC
  • US8364744B2 patent drawing
  • US8364744B2 patent drawing
  • US8364744B2 patent drawing

AI summary

A distributed computing system comprising networking infrastructure and methods of executing an application on the distributed computing system is presented. Interconnected networking nodes offering available computing resources form a network fabric. The computing resources can be allocated from the networking nodes, including available processing cores or memory elements located on the networking nodes. A software application can be stored in a system memory comprising memory elements allocated from the nodes. The software application can be disaggregated into a plurality of executable portions that are striped across the allocated processing cores by assigning each core a portion to execute. When the cores are authenticated with respect to their portions, the cores are allowed to execute the portions by accessing the system memory over the fabric. While executing the software application, the networking nodes having the allocated cores concurrently forward packets through the fabric.