Autonomous Agents-based Mobile-Cloud Computing. Mobile-Cloud Computing (MCC) MCC refers to an infrastructure where the data storage and data processing.

Post on 18-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Autonomous Agents-based Mobile-Cloud

Computing

2

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…

3

Research 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.

4

ChallengesInteroperability and standardizationEfficient 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

connection2. Minimum communication cost with mobile

platform 3. Limited computation overhead

5

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.

6

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 creation2. Process conversion into a message with all

state information3. Message routing to destination server4. Message reconstitution into executable5. Execution continuation with next instruction

7

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

8

JADE Agent Development Environment

9

AAMCC 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 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

10

How to Construct Autonomous Application Modules

11

AAMCC in Action

P1P2

P3

Execution Manager

Cloud Director

y ServiceGet cloud

host listCont.A

Cont.B

HostA, HostB

HostA

HostB

Move to HostAMove to HostB

Mobile

Cloud

App:

R2

R3Result?

12

Experiments with AAMCC

With online data:

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:

13

Experiments with AAMCC (cont.)

Application 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

14

Experiments with AAMCC (cont.)Application 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:

15

Elements of Context in MCC

User preferenceDevice context:

◦Device characteristics (memory, processor etc.)

◦Energy◦Workload

Quality of service:◦Data connection type, bandwidth◦Cloud resource availability

Situational context: location, time, sensors…

Our focus

16

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

Cores

Small 1.7 GB 1

Medium

3.75 GB 1

Large 7.5 GB 2

2x large

30 GB 8

17

Offloading Decision-Making

Easy to make offloading decision for a single application module:if (cost_to_offload < cost_to_execute_locally)

then offloadelse

execute on device

cost_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 modules

18

Multi-Component Offloading Decision-Making

Offline 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

19

Application 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!

20

Offloading Manager Cost Model

Assumption: Execution cost for any module in the cloud is negligible compared to execution cost on devicecdx: local execution cost for x

ccx: cloud execution cost for x

b: available bandwidth xs: set of sub-modules (children) of x

21

Execution Tree Cost Optimization

0.1

0.7

42

19 0.03

19

42

9 1

3123

0.6

c = 19, local c = 0.03, local

(19+.03+.1<0.7)?local:offload

c = 9, offload c = 1, offload

(9+1+19<42)?local: offloadc=0.7, offload c=29, local

Depth-first traversal: O(E)

22

Experiments with Offloading Manager

Synthetic application with 6 offloadable modulesMotorola Atrix 4G + medium AMI on EC2Each module has different computation/data

transfer requirements

top related