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 3 Any mechanism needs to satisfy: 1.Real-time response under intermittent network connection 2.Minimum communication cost with mobile platform 3.Limited computation overhead
AN AUTONOMOUS AGENTS-BASED COMPUTATION OFFLOADING FRAMEWORK FOR MCC (AAMCC) 4 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.
Mobile (Autonomous) Agents 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: 1. Process suspension/new process creation 2. Process conversion into a message with all state information 3. Message routing to destination server 4. Message reconstitution into executable 5. 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 8 More later
How to Construct Autonomous Application Modules 9
AAMCC in Action 10 P1 P2 P3 Execution Manager Cloud Directory Service Get cloud host list Migrate M2 Cont.A Cont.B HostA, HostB HostA HostB Move to HostA Move to HostB Mobile Cloud App: R2 R3 Result?
Experiments with AAMCC With online data: 11 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 Local-only data:
Experiments with AAMCC (cont.) 12 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
Experiments with AAMCC (cont.) 13 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:
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 Situational context: location, time, sensors 14 Our focus
Effects of Context on AAMCC 15 Face recognition with local-only data, 32-picture set Multi-threaded NQueens returning # of solutions Face recognition with local-only data InstanceMemoryCores Small1.7 GB1 Medium3.75 GB1 Large7.5 GB2 2x large30 GB8
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 18 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) No cyclic dependencies!
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 20 0.1 0.7 42 190.03 19 42 91 3123 0.6 c = 19, local c = 0.03, local (19+.03+.1