Edge Device Software Execution Environment Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In industrial process automation systems, executing user-supplied software applications on edge devices alongside essential primary applications poses a risk of interference, resource contention, and potential system instability, making it challenging to ensure the primary application's functionality and network connectivity.
Innovation Solution
A method that determines the trustworthiness level of secondary applications through code and behavioral analysis, selecting appropriate execution environments with varying degrees of isolation based on resource availability and the propensity for interference, ensuring the primary application's stability while allowing secondary applications to run concurrently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If secondary applications are allowed to execute on the hardware platform, then functionality and data processing capabilities are expanded, but system stability and reliability deteriorate due to potential interference with primary applications
Solution Approach 1:
The system segments the execution environment into isolated containers for secondary applications, separating them from the primary application's execution space. This allows multiple secondary applications to run concurrently with the primary application without direct interference, resolving the contradiction between functionality expansion and system stability.
Solution Approach 2:
The patent introduces a gateway or intermediary layer that mediates between secondary applications and the primary application/system resources. This intermediary controls and filters interactions, preventing malicious or buggy secondary applications from directly affecting the primary application, thus maintaining reliability while allowing functionality expansion.
2Adaptability or versatility
If customer-supplied secondary applications are installed on the edge device, then data processing and custom functionality are enhanced, but security risks and system vulnerability increase
Solution Approach 1:
The system performs preliminary analysis and validation of secondary applications before allowing them to execute. This includes code analysis, behavioral assessment, and trustworthiness evaluation to identify potential security risks in advance, preventing malicious applications from compromising system security while still allowing legitimate custom functionality.
Solution Approach 2:
An intermediary gateway layer is introduced that acts as a security buffer between secondary applications and critical system resources. This intermediary monitors and controls access, blocking potentially harmful operations while allowing legitimate data processing, thus enabling custom functionality without proportionally increasing security risks.
3Reliability
If secondary applications are executed with high isolation to prevent interference, then system reliability is maintained, but resource overhead and system complexity increase
Solution Approach 1:
The isolation level of secondary applications is made dynamic rather than static. The system adjusts the degree of isolation based on the trustworthiness level of each secondary application and its current behavior. Highly trusted applications receive lower isolation (reducing overhead), while untrusted applications receive higher isolation (maintaining reliability), thus balancing reliability with reduced complexity.
Solution Approach 2:
Different isolation mechanisms and security levels are applied locally to different secondary applications based on their individual trustworthiness assessments. Instead of applying uniform high isolation to all secondary applications, the system tailors the isolation level to each application's risk profile, reducing overall system complexity while maintaining necessary reliability.
4Reliability
If code analysis and behavioral monitoring are performed on secondary applications, then trustworthiness assessment and security are improved, but processing time and computational overhead increase
Solution Approach 1:
Code analysis and initial trustworthiness assessment are performed preliminarily during the application deployment phase rather than during runtime execution. This upfront analysis establishes a baseline trust level, allowing faster runtime deployment while still maintaining security through pre-evaluation, thus improving reliability without proportionally increasing deployment time.
Solution Approach 2:
The system performs partial code analysis and selective behavioral monitoring based on the application's risk profile. Low-risk applications undergo minimal analysis (reducing overhead), while high-risk applications receive comprehensive scrutiny (improving reliability). This differentiated approach optimizes the balance between trustworthiness assessment and processing time.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
A method (100) for executing software applications (2, 3) on a hardware platform (1) that is associated with an apparatus and/or an industrial plant, the method (100) comprising the steps of: • executing (110), on the hardware platform (1), at least one primary application (2) that is essential for the proper functioning and/or network connectivity of the apparatus and/or industrial plant; • receiving (120) at least one secondary application (3) that is to be executed on the hardware platform (1) concurrently with the primary application (2); • determining (130), based at least in part on a code analysis and/or behavioral analysis of the secondary application (3), a trustworthiness level (3a) that is indicative of a propensity of the execution of the secondary application (3) interfering with the execution of the primary application (2); • selecting (140), based at least in part on the determined trustworthiness level (3a), a type (4a) of execution environment (4) for executing the secondary application (3); • creating (150), on the hardware platform (1), an instance of the execution environment (4) of the selected type (4a); and • executing (160), in the created execution environment (4), the secondary application (3).