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 selfprotection 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 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 upto-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 Cloud Directory Service HostA Cont.A R2 Get cloud host list Mobile HostB Cont.B R3 Result? HostA, HostB Execution Manager App: P1 Move to HostA P2 P3 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 Face recognition with local-only data Instance Memory Core s Multi-threaded NQueens returning # of solutions Small 1.7 GB 1 Medium 3.75 GB 1 Large 7.5 GB 2 2x 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 interdependent 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 x cx: 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 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 (19+.03+.1<0.7)? c=0.7, offload local:offload 19 0.6 0.03 c = 0.03, local 9 123 c = 9, offload Depth-first traversal: O(E) (9+1+19<42)? c=29, local 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