Autonomous Agents-based Mobile-Cloud Computing

  • Published on

  • View

  • Download

Embed Size (px)


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. - PowerPoint PPT Presentation


A Mobile Agent-based Model for Secure Mobile-Cloud Computing

Autonomous Agents-based Mobile-Cloud Computing 0Mobile-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

11Research ProblemIn 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.22ChallengesInteroperability and standardizationEfficient and effective computation offloading:Variable bandwidthMobile service availabilityDifficulty of runtime conditions estimationSecurity:Multi-tenancy in cloud causes vulnerabilityOffloaded code prone to tamperingEnd-to-end security of mobile code at risk3Any mechanism needs to satisfy:Real-time response under intermittent network connectionMinimum communication cost with mobile platform Limited computation overhead3

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.4Mobile (Autonomous) AgentsA 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 creationProcess conversion into a message with all state informationMessage routing to destination serverMessage reconstitution into executableExecution continuation with next instruction

55Why Mobile Agents for MCC?Agents can provide better support for mobile clients (reduced network communication)Agents facilitate real-time interaction with serverAgent-based transactions avoid the need to preserve process stateAgent-based modules are capable of moving across different platforms transparentlyAgent-based modules can be augmented with self-protection and performance evaluation capability66JADE Agent Development Environment7

7AAMCC ComponentsAutonomous 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 cloudCloud hosts (VMIs): Host containers of the mobile agents sent to the cloudOffloading manager (execution manager): Makes the decision regarding the execution platform of the different program partitions8More later8How to Construct Autonomous Application Modules9

9AAMCC in Action10

P1P2 P3Execution ManagerCloud Directory ServiceGet cloud host listMigrate M2Cont.ACont.BHostA, HostBHostAHostBMove to HostAMove to HostBMobileCloud

App:R2R3Result?10Experiments with AAMCCWith online data:11

Application 1: Face RecognitionGiven the picture of a person, identify the most similar face to it in a set of picturesAndroid 4.2 device emulator vs. AAMCC, under average speed Wi-Fi network Local-only data:

11Experiments with AAMCC (cont.)12Application 2: SudokuGiven a Sudoku puzzle with a given list of initially filled cells, find all possible solutionsMotorola Atrix 4G (1 GHz dual-core, 1 GB RAM) with Android 2.3 vs. AAMCC, under average speed Wi-Fi network

12Experiments with AAMCC (cont.)13Application 3: NQueens PuzzleGiven an NQueens puzzle for an N x N board, find all possible solutionsMotorola Atrix 4G device with Android 2.3 vs. AAMCC, under average speed Wi-Fi network

Number of solutions:All solutions:13Elements of Context in MCCUser preferenceDevice context: Device characteristics (memory, processor etc.)EnergyWorkloadQuality of service:Data connection type, bandwidthCloud resource availabilitySituational context: location, time, sensors14Our focusEffects of Context on AAMCC15

Face recognition with local-only data, 32-picture setMulti-threaded NQueens returning # of solutions

Face recognition with local-only dataInstanceMemoryCoresSmall1.7 GB1Medium 3.75 GB1Large7.5 GB22x large30 GB8Offloading Decision-MakingEasy to make offloading decision for a single application module:if (cost_to_offload < cost_to_execute_locally)then offloadelseexecute on devicecost_to_offload = time to send code and data to cloud + time to get response from cloud + time to execute in cloudNot so easy to decide for multiple inter-dependent application modules16Multi-Component Offloading Decision-MakingOffline steps:Identify dependencies between offloadable application modules Construct execution tree based on dependenciesInsert cost statistics into tree

Online steps:Calculate offloading costsRun cost optimization algorithm

17Application Execution TreeRepresents interactions between modulesRoot of the tree: entry node (main method)If x is the child of y, y invokes x


mx: cost to execute x on device cost to execute children of xcx: amount of data to transfer to offload x (separate from parent)No cyclic dependencies!Offloading Manager Cost ModelAssumption: Execution cost for any module in the cloud is negligible compared to execution cost on devicecdx: local execution cost for xccx: cloud execution cost for xb: available bandwidth xs: set of sub-modules (children) of x 19

Execution Tree Cost Optimization200.10.742190.0319429131230.6c = 19, localc = 0.03, local(19+.03+.1