Dynamic Runtime Workload Translocation for Mobile Applications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional methods for distributing workload between client devices and remote computing resources are inflexible, relying on pre-defined boundaries that do not adapt to changing capabilities or conditions, leading to underutilization of device capabilities and increased complexity.
Innovation Solution
A unified paradigm for developing applications that allows dynamic translocation of classes or methods between client devices and remote computing nodes, using annotations, static analysis, and monitoring to determine suitability for translocation based on factors like computational demands and network conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If pre-defined interfaces and design-time boundaries are used between client devices and remote computing resources, then the system structure is simple and easy to implement, but the system cannot adapt to changing capabilities or conditions, leading to underutilization of device capabilities
Solution Approach 1:
The patent implements dynamic workload distribution by allowing the boundary between client and remote computing resources to change at runtime based on current conditions. The system monitors device capabilities, network status, and computational demands, then dynamically determines which program components execute locally and which execute remotely, replacing the static design-time boundary with an adaptive runtime decision-making process.
Solution Approach 2:
The system changes the operational parameters of program execution by transitioning components between local and remote execution states based on real-time conditions. This includes adjusting execution location, data transfer volume, and computational task allocation according to changing device capabilities, network availability, and computational demands, enabling the system to optimize performance under varying conditions.
2Productivity
If more computational tasks are performed on client devices, then device capabilities are better utilized, but the complexity of managing workload distribution increases
Solution Approach 1:
The system implements self-service through automated runtime analysis and decision-making algorithms that automatically determine optimal workload distribution without requiring manual intervention. The client device autonomously monitors its own capabilities and network conditions, then makes intelligent decisions about which tasks to execute locally versus remotely, reducing the complexity burden on developers and system administrators.
Solution Approach 2:
The system incorporates continuous feedback loops that monitor device performance, network conditions, and computational demands, then use this information to dynamically adjust workload distribution. This feedback mechanism enables the system to respond to changing conditions in real-time, optimizing device capability utilization while automatically managing the complexity of workload distribution through data-driven decisions.
3Power
If remote computing resources are used, then computational demands can be met, but network dependencies increase and application performance may be affected
Solution Approach 1:
The system dynamically adjusts the balance between local and remote execution based on real-time network conditions and computational demands. When network conditions are poor or device capabilities are sufficient, the system executes tasks locally to ensure reliable performance. When computational demands exceed local capabilities and network conditions are good, the system transitions tasks to remote execution, thereby maintaining performance reliability while accessing greater computational power when needed.
Solution Approach 2:
The system changes execution parameters by transitioning program components between local and remote execution states based on monitored conditions. This includes adjusting data transfer volumes, execution timing, and task allocation to optimize the balance between utilizing remote computational power and maintaining application performance reliability under varying network conditions.
Data Source
Figure 1A
Figure 1B
Figure 2
AI summary
An application program may be analyzed to identify candidate classes or methods that may be executed using a remote computing node. Candidate classes or methods may be translocated to the remote computing node based on performance characteristics of the device on which the application program is running, the environment in which the device operates, and on the performance and availability of the remote computing node. An application program publisher may be assigned instances of virtual machines that may be dedicated to hosting translocated classes and methods.