Mobile Agent Programming Concepts

Post on 23-Feb-2016

43 views 1 download

Tags:

description

Mobile Agent Programming Concepts. FK. Dimensions of mobility. Moving between different execution servers (processes, hosts) Moving in time Moving with the user (execution server) Moving between contexts. Properties of agent execution environments. - PowerPoint PPT Presentation

Transcript of Mobile Agent Programming Concepts

Mobile Agent ProgrammingConcepts

FK

Dimensions of mobility

• Moving between different execution servers (processes, hosts)

• Moving in time• Moving with the user (execution server)• Moving between contexts

Properties of agent execution environments

• Static network (fixed host network address)• Roaming network (dyn. host netw. address)• Reliable real-time (stationary server computer)• Intermittent real-time (laptop, iPhone)• True persistence (Hard-disc, NV-RAM)• Volatile persistence (battery RAM)

Properties of agent execution environments

Static network addressReliable realtimeTrue persistence Dynamic network address

Intermittent realtimeTrue persistence

Dynamic network addressIntermittent realtimeVolatile persistence

Properties of agent execution environments

Network address

Static

Dynamic

Real-time

Persistence

Intermittent

Volatile

Cell phonesEarly wearables

Laptops

Servers

Dynamic network address

• Difficult to find a particular host• Needs registration at a well-known name• LAN: local discovery techniques (eg Jini)• WAN: remote interaction (eg SIP)• Network Address Translation (NAT)

imposes similar problem• IPv4 → IPv6 : needed but costly

Intermittent real-time

• If the agent is suspended externally, eg by power management, it may not “see” the suspension.

• Can the agent control power mgmt when it needs to?

• Small devices (mobile phones) may be suspended without warning.

Volatile persistence

• How much of the present state must be saved?• To where can it be saved?• How to (re)establish state after

reanimation?• How can the saved state be found?• Time (how long was the agent asleep?)

Planned discontinuity (1)

Z z1. Save state

2. Set timer

3. Sleep 4. Wake up

5. Restore state

Planned discontinuity (2)

1. Save state

2. Terminate

3. External event

5. Restore state

4. Restart

Planned discontinuity (3)

2. Save state3. Terminate

1. Negotiate hosting

6. Restore state5. Restart

4. Transfer identity and state

Mobile code (1)

4. Terminate

2. Negotiate hosting

5. Continue

3. Transfer identityand state

Initial execution environment

Next execution environment

1. Locate exec. env.

Mobile code (2)

7. Terminate

2. Negotiate hosting

5. Continue

3. Transfer identityand state

Initial execution environment

Next execution environment

1. Locate exec. env.

6. Acknowledge

What do we mean by “state”?

• Memory and cpu configuration of process• Values of active variables (including call

stack) and the execution point• A classifiable subset of the true state:

switch (myState) {case 0: /* state 0 */ break;case 1: /* state 1 */ break; // etc...}

State (cont’d)

• For the programmer, state and code are often the same concept

• Mobile code (e.g. Java) may not be able to transfer the execution point

• This breaks the code-state relationship

State (cont’d)

y = y*2

Migrate?

z = y

START

Yes

Noy = y*2

Migrate?

z = y

START

No

y==1

y==2

z==2

z==4

Variables evolve whilecode point is reset

Goal-driven execution

• The task can be expressed as a sequence of discrete steps

• The accomplishment of each step can be tested

• What to do next is computable

Goal-driven execution (cont’d)Task: Deliver a message (to a user)

The message is executable and mustrun on the recipient’s current host.

Goal-driven execution

while (true) doif (the current host is the user host) then

execute the messageexit

elselocate the user hostmove to user host

endifdone

Goal-driven execution

• Gets complicated quite fast, e.g. remember failures, responses, a dialogue...

• State must be ”knitted” into the task resolution structure

• Goal stack approach

Goal stack interpreter

• Useful for intermittent real-time (wearable devices, power management)

• The goal stack is maintained as a data structure

• The goal on top of the stack is either replaced by a sequence of subgoals, or executed as an idempotent unit until it succeeds

Goal stack interpreter

Deliver message to Ralph

Establish host of Ralph

Move to Ralph’s host

Execute message code

Establish host of Ralph

Move to Ralph’s host

Execute message code

Goal expansionExecute

goal-code

Popstack

Y

N

Fail?

Emptystack?

N

StopY

Move commandedby external eventshas small impacton top-most goal.

Goal stack interpreter

Move to Ralph’s host

Execute message code

Executegoal-code

Popstack

Current goal

N

Fail?

Emptystack?

N

StopY

Establish host of Ralph

Move to Ralph’s host

Execute message code

Current goal

Y

Pop

Layers of abstraction

Task

Transport

Discovery

Communication

Layers of abstraction

Task

Transport

Discovery

Communication

Code for identifying and approaching the goal.

Layers of abstraction

Task

Transport

Discovery

Communication

Code for identifying and approaching the goal.

Code for moving the agent between places of execution.

Layers of abstraction

Task

Transport

Discovery

Communication

Code for identifying and approaching the goal.

Code for moving the agent between places of execution.

Methods for finding (the addresses) to resources.

Layers of abstraction

Task

Transport

Discovery

Communication

Code for identifying and approaching the goal.

Code for moving the agent between places of execution.

Methods for finding (the addresses) to resources.

Sending the bits of the agent to another place.

Agent enabling middleware

• Discovery mechanisms (execution hosts, other agents, negotiation partners ...)

• Addressing namespaces (IP, URLs, SIP, RMI)• Communication means (netw. stack)• Protocol (language and semantics)

Game of Tag for agents

• Discover execution environments• Query properties of the exec. env.• Locate other agents• Negotiate for status (being ‘it’ or not)• Transaction (reliably transferring ‘it’

between players)• Multiple roles and tasks dep. on being ‘it’.

TAG player outline

Acquire state of game

Decide what to do

Execute choice

TAG player outline

Locate all Bailiffs and players

Am I it?

Move toa Bailiff

with players

Isthe ’it’ player

here?

YES NO

YES

Move toanother Bailiff

NO

Move or waitaccording to

strategy

Isthere a player

here?

YESNO

Tag aplayer

TAG player outline

Locate all Bailiffs and players

Am I it?

Move toa Bailiff

with players

Isthe ’it’ player

here?

YES NO

YES

Move toanother Bailiff

NO

Move or waitaccording to

strategy

Isthere a player

here?

YESNO

Tag aplayer

State informationmust be updated

TAG player outline

Locate all Bailiffs and players

Am I it?

Move toa Bailiff

with players

Isthe ’it’ player

here?

YES NO

YES

Move toanother Bailiff

NO

Move or waitaccording to

strategy

Isthere a player

here?

YESNO

Tag aplayer

Seek to be lonelySeek companyAct randomly

TAG player outline

Seek to be lonelySeek companyAct randomly

TAG player outline

Seek to be lonelySeek companyAct randomly

TAG player outline

Seek to be lonelySeek companyAct randomly

TAG player outlineThe lonely strategy• increases the chance that the it player goes to another Bailiff• makes the player faster• needs as many Bailiffs as there are players, but no more• with fewer Bailiffs it approaches the company strategy

The company strategy• increases the chance that the it player tags another player• needs fewer Bailiffs• makes the player slower

End