Pre-processing Unit for Distributed Application Code Offloading

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveapplication QoSVSAvoiddevice resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedevice resourcesVSAvoidserver storage and network communication
Core Design Contradiction:
Quantity of substanceVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improveapplication execution efficiencyVSAvoidpre-processing time
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improveresource overload detection accuracyVSAvoiddevice resources for monitoring
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentEP2450792B1Method for allowing distributed running of an application and related pre-processing unit
Publication Date: 2020.01.15 ORANGE SA
  • EP2450792B1 patent drawingFigure 1
  • EP2450792B1 patent drawingFigure 2
  • EP2450792B1 patent drawingFigure 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.