Multi-Process Architecture for Application Security and Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Large monolithic applications face increased failure probabilities and security risks as they grow in size due to the cumulative failure of independent functional segments and increased attack surfaces, leading to nonlinearly rising engineering costs for achieving reliability and security.
Innovation Solution
A multi-process architecture is implemented, where a master process instantiates child processes and inter-process communication (IPC) channels, allowing direct peer-to-peer communication between child processes while managing security settings to minimize privileges and access, thereby isolating functions and reducing the attack surface.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a monolithic application structure is used to simplify architecture, then device complexity is reduced, but reliability decreases as the number of functional segments increases
Solution Approach 1:
The patent divides the monolithic application into multiple independent child processes, each handling specific functional segments. This segmentation isolates failures to individual processes while maintaining overall system functionality, thereby improving reliability without significantly increasing architectural complexity through the use of a master process coordinator.
2Device complexity
If a monolithic application structure is used to simplify architecture, then device complexity is reduced, but security risks increase due to increased attack surface and privilege requirements
Solution Approach 1:
The application is segmented into multiple child processes with distinct security contexts and privilege levels. Each process has minimal necessary privileges for its specific function, reducing the overall attack surface. The master process acts as a security boundary, managing inter-process communication and preventing unauthorized access between segments.
3Reliability
If functional segments are divided amongst several processes to improve reliability, then reliability improves, but device complexity increases
Solution Approach 1:
Multiple child processes are merged under a single master process that provides centralized coordination, configuration management, and inter-process communication routing. This merging approach maintains reliability benefits of process separation while reducing architectural complexity through unified control, making the system easier to manage and deploy.
4Reliability
If functional segments are divided amongst several processes to improve reliability, then reliability improves, but engineering costs increase nonlinearly
Solution Approach 1:
The master process provides universal functionality for managing all child processes, including process creation, configuration, communication coordination, and failure recovery. This multi-functional approach reduces engineering costs by reusing the same management infrastructure across all functional segments rather than implementing separate management systems for each process.
Data Source
AI summary
Methods, systems, infrastructures and techniques for operating a multi-process application are described. The method includes starting a master process and the master process instantiating a first child process and a first inter-process communication (IPC) channel; and instantiating a second child process and a second IPC channel. The method further includes the master process instantiating a third IPC channel used for a direct peer-to-peer (P2P) communication; and providing first and second handles of the third IPC channel to the first and second child processes, using the first and second IPC channels, respectively. The first child process and the second child process can communicate directly using the received first and second handles of the third IPC channel.


