Pre-processing Unit for Distributed Application Code Offloading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Devices with limited resources, such as mobile devices, face resource overload issues when running multiple applications simultaneously, leading to impacted application quality of service (QoS) due to insufficient processing power and memory, which existing technologies fail to effectively manage.
Innovation Solution
A method for distributed application running between a device and a server, where a pre-processing unit analyzes application code to identify resource-intensive parts, transmits only those parts to the server, and generates enriched code to offload execution to the server during resource overload, thereby leveraging the server's resources and reducing device load.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the application runs entirely on the device, then the device can execute the application independently, but the device experiences resource overload when too many applications are running simultaneously, impacting QoS
Solution Approach 1:
The application code is segmented into two parts: resource-intensive parts that are offloaded to the server and non-intensive parts that run on the device. The pre-processing unit analyzes the application code to identify which parts satisfy resource consumption criteria, separating them into different execution locations based on their resource requirements.
Solution Approach 2:
A pre-processing unit acts as an intermediary between the application developer and the runtime system. This unit analyzes application code, identifies resource-intensive parts, and generates enriched application code with appropriate annotations before deployment, enabling the runtime system to make informed decisions about code distribution without requiring complex runtime analysis.
2Quantity of substance
If resource-intensive application code parts are offloaded to the server, then device resource overload is reduced, but the server needs to store application code and exchange messages with the device
Solution Approach 1:
The pre-processing unit performs code analysis and identification of resource-intensive parts before the application is deployed to the device or server. This preliminary action enables the runtime system to execute pre-determined code distribution decisions without requiring complex runtime analysis or increasing server storage requirements beyond what is already needed for application execution.
3Productivity
If the enriched application code is generated by a pre-processing unit before runtime, then computation during application running is avoided, but the pre-processing unit must analyze the entire application code beforehand
Solution Approach 1:
The pre-processing unit performs comprehensive code analysis and generates enriched application code with execution annotations before deployment. This one-time pre-processing effort eliminates the need for complex runtime code analysis and enables efficient execution decisions to be made at runtime based on pre-computed information.
Solution Approach 2:
The pre-processing unit creates an enriched version of the application code that contains additional metadata and annotations about resource consumption characteristics. This enriched code copy is then deployed to both the device and server, enabling both locations to make informed execution decisions without requiring the original code to be re-analyzed at runtime.
4Reliability
If continuous resource monitoring is implemented on the device, then resource overload can be detected in real-time, but permanent background monitoring processes consume additional resources
Solution Approach 1:
Instead of continuous monitoring, the system implements periodic resource checks at specific points in the application execution flow. The enriched application code contains annotations that indicate when resource criteria should be checked, allowing the device to monitor resources only at these predetermined checkpoints rather than continuously in the background.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Method for allowing distributed running of an application between a device (2) and a server (3) connected via a network (4). The method comprises the following steps carried out by a pre-processing unit: analyzing a code (5) of the application for identifying parts (8-9) that satisfy or are assumed to satisfy at least one first criterion based on resource consumption; transmitting only the identified application code parts to the server; generating from the application code an enriched application code (11) arranged to call for the execution of one of the identified application code parts on the server only if at least one second criterion based on resource overload is satisfied at the time said application code part is to be run; and transmitting the enriched application code to the device.