Software Application Striping for Secure Distributed Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If a software application is kept local to the computing environment, then security is improved, but scalability and distributed computing capability deteriorate
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.
3Reliability
If computing resources are distributed across network nodes, then fault tolerance is improved, but system complexity increases
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.
Data Source
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.


