Autonomous Agentsbased MobileCloud Computing MobileCloud Computing MCC MCC
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
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 �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
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. More of the different later 8
How to Construct Autonomous Application Modules 9
AAMCC in Action Cloud Directory Service Host. A Cont. A R 2 Get cloud host list Mobile Host. B Cont. B R 3 Result? Host. A, Host. B Execution Manager App : P 1 Move to Host. A P 2 P 3 Move to Host. B 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 With online data: Local-only data: network 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 4 G (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 4 G 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: Our focus ◦ Data connection type, bandwidth ◦ Cloud resource availability �Situational context: location, time, 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 Instanc e Memory Cores Small 1. 7 GB 1 Medium 3. 75 GB 1 Large 7. 5 GB 2 2 x large 30 GB 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! mx: cost to execute x on device – cost to execute children of cx: amount of data to transfer to offload x (separate from par 18
Offloading Manager Cost Model Assumption: Execution cost for any module in the cloud is negligible compared to execution cost on device cdx: local execution cost for x ccx: cloud execution cost for x b: available bandwidth xs: set of sub-modules (children) of x 19
Execution Tree Cost Optimization 0. 7 0. 1 42 19 c = 19, local 42 c=0. 7, offload (19+. 03+. 1<0. 7)? local: offload 0. 6 0. 03 c = 0. 03, local 19 9 123 c = 9, offload Depth-first traversal: O(E) (9+1+19<42)? c=29, local: offload 1 3 c = 1, offload 20
Experiments with Offloading Manager �Synthetic application with 6 offloadable modules �Motorola Atrix 4 G + medium AMI on EC 2 �Each module has different computation/data transfer requirements 21
- Slides: 22