Transcript mobile-cloud
Autonomous Agents-based Mobile-Cloud Computing
Mobile-Cloud Computing (MCC)
MCC refers to an infrastructure where the data storage and data processing can happen outside of the mobile device. Mobile-cloud applications move computing into powerful and centralized computing platforms located in clouds.
Advantages: Extending battery lifetime, improving processing power, increasing availability, dynamic resource provisioning...
Applications: Augmented reality, security/emergency, mobile healthcare, mobile gaming, mobile commerce… 1
Research Problem
In MCC, an inflexible split of computation between the mobile and cloud platforms causes sub-optimal runtime performance. There is need for a mobile-cloud computation framework that achieves optimal performance under varying runtime conditions, without sacrificing security.
Autonomous agents, when augmented with self protection and self-performance evaluation capability, are effective tools for high-performance, secure MCC.
2
Challenges
Interoperability and standardization Efficient and effective computation offloading: ◦ Variable bandwidth ◦ ◦ Mobile service availability Difficulty of runtime conditions estimation Security: ◦ Multi-tenancy in cloud causes vulnerability ◦ ◦ Offloaded code prone to tampering End-to-end security of mobile code at risk Any mechanism needs to satisfy: 1. Real-time response under intermittent network connection 2. Minimum communication cost with mobile platform 3. Limited computation overhead 3
AN AUTONOMOUS AGENTS-BASED COMPUTATION OFFLOADING FRAMEWORK FOR MCC (AAMCC)
• P. Angin, B. Bhargava. “An Agent-based Optimization Framework for Mobile-Cloud Computing,” Journal of
Wireless Mobile Networks, Ubiquitous Computing, and
Dependable Applications, Vol. 4, No. 2, 2013.
4
Mobile (Autonomous) Agents
1.
2.
3.
4.
5.
A mobile agent is a software program with mobility, which can be sent out from a computer into a network and roam among the nodes in the network autonomously to finish its task on behalf of its owner.
Mobile agent migration follows these steps: Process suspension/new process creation Process conversion into a message with all state information Message routing to destination server Message reconstitution into executable Execution continuation with next instruction 5
Why Mobile Agents for MCC?
Agents can provide better support for mobile clients (reduced network communication) Agents facilitate real-time interaction with server Agent-based transactions avoid the need to preserve process state Agent-based modules are capable of moving across different platforms transparently Agent-based modules can be augmented with self-protection and performance evaluation capability 6
JADE Agent Development Environment
7
AAMCC Components
Autonomous application modules:
Chunk of application code packed in a mobile agent, that is executable on a cloud host.
Cloud directory service: Maintains an up to-date database of VMIs available for use in the cloud Cloud hosts (VMIs): Host containers of the mobile agents sent to the cloud
Offloading manager (execution
manager): Makes the decision regarding the execution platform of the different program partitions More later 8
How to Construct Autonomous Application Modules
9
AAMCC in Action
Cloud Cont.A
HostA R2 Get cloud host list Cloud Directory Service HostA, HostB HostB Cont.B
R3 Result?
Mobile Execution Manager App: P1 P2 P3 Move to HostA Move to HostB 10
Experiments with AAMCC
Application 1: Face Recognition Given the picture of a person, identify the most similar face to it in a set of pictures Android 4.2 device emulator vs. AAMCC, under average speed Wi-Fi network With online data: Local-only data: 11
Experiments with AAMCC (cont.)
Application 2: Sudoku Given a Sudoku puzzle with a given list of initially filled cells, find all possible solutions Motorola Atrix 4G (1 GHz dual-core, 1 GB RAM) with Android 2.3 vs. AAMCC, under average speed Wi-Fi network 12
Experiments with AAMCC (cont.)
Application 3: NQueens Puzzle Given an NQueens puzzle for an N x N board, find all possible solutions Motorola Atrix 4G device with Android 2.3 vs. AAMCC, under average speed Wi-Fi network Number of solutions: All solutions: 13
Elements of Context in MCC
User preference Device context: ◦ Device characteristics (memory, processor etc.) ◦ Energy ◦ Workload Quality of service: ◦ ◦ Data connection type, bandwidth Cloud resource availability Our focus Situational context: location, time, sensors… 14
Effects of Context on AAMCC
Face recognition with local-only data, 32-picture set Multi-threaded NQueens returning # of solutions Face recognition with local-only data
Instance Memory Core s
Small 1.7 GB 1 Medium 3.75 GB 1 Large 2x large 7.5 GB 30 GB 2 8 15
Offloading Decision-Making
Easy to make offloading decision for a single application module:
if (cost_to_offload < cost_to_execute_locally) then offload else execute on device cost_to_offload = time to send code and data to cloud + time to get response from cloud + time to execute in cloud
Not so easy to decide for multiple inter- dependent application modules 16
Multi-Component Offloading Decision-Making
Offline steps: Identify dependencies between offloadable application modules Construct execution tree based on dependencies Insert cost statistics into tree Online steps: Calculate offloading costs Run cost optimization algorithm 17
Application Execution Tree
Represents interactions between modules Root of the tree: entry node (main method) If x is the child of y, y invokes x No cyclic dependencies!
m x : cost to execute x on device – cost to execute children of x c x : amount of data to transfer to offload x (separate from parent) 18
Offloading Manager Cost Model
Assumption: Execution cost for any module in the cloud is negligible compared to execution cost on device cd x : local execution cost for x cc x : cloud execution cost for x b: available bandwidth x s : set of sub-modules (children) of x 19
Execution Tree Cost Optimization
42 19 c = 19, local 0.7
0.1
(19+.03+.1<0.7)?
local:offload 0.6
0.03
c = 0.03, local 123 c = 9, offload Depth-first traversal: O(E) 9 42 19 (9+1+19<42)?
local: offload 1 3 c = 1, offload 20
Experiments with Offloading Manager
Synthetic application with 6 offloadable modules Motorola Atrix 4G + medium AMI on EC2 Each module has different computation/data transfer requirements 21