Mobile Agent Programming Concepts FK Dimensions of mobility

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 • • • Static network (fixed host network address) Roaming network (dyn. host netw. address) Reliable real-time (stationary server computer) Intermittent real-time (laptop, i. Phone) True persistence (Hard-disc, NV-RAM) Volatile persistence (battery RAM)

Properties of agent execution environments Dynamic network address Intermittent realtime Volatile persistence Static network address Reliable realtime True persistence Dynamic network address Intermittent realtime True persistence

Properties of agent execution environments Dynamic Cell phones Early wearables Network address Laptops Intermittent Servers e l-tim Rea Static Persistence Volatile

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 • IPv 4 → IPv 6 : 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) 2. Set timer 1. Save state 3. S leep Zz 5. Restore state 4. Wake up

Planned discontinuity (2) 3. External event 2. T e rmi 1. Save state nate 4. R e star 5. Restore state t

Planned discontinuity (3) 1. Negotiate hosting 2. Save state 3. Terminate 5. Restart 4. Transfer identity and state 6. Restore state

Mobile code (1) Initial execution environment Next execution environment 1. Locate exec. env. 2. Negotiate hosting 3. Transfer identity and state 4. Terminate 5. Continue

Mobile code (2) Initial execution environment Next execution environment 1. Locate exec. env. 2. Negotiate hosting 3. Transfer identity and state 6. Acknowledge 7. Terminate 5. Continue

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 (my. State) { 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

y==1 START State (cont’d) y==2 START y = y*2 Migrate? Yes y = y*2 No z=y Migrate? z==2 Variables evolve while code point is reset No z=y z==4

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 must run on the recipient’s current host.

Goal-driven execution while (true) do if (the current host is the user host) then execute the message exit else locate the user host move to user host endif done

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 Goal expansion Establish host of Ralph Move to Ralph’s host Deliver message to Ralph Execute goal-code Execute message code Y Fail? N Pop stack Establish host of Ralph Move to Ralph’s host Execute message code Move commanded by external events has small impact on top-most goal. Empty stack? Y Stop N

Goal stack interpreter Execute goal-code Pop Establish host of Ralph Move to Ralph’s host Execute message code Y Fail? N Pop stack Empty stack? Current goal Y Stop N

Layers of abstraction Task Transport Discovery Communication

Layers of abstraction Task Transport Discovery Communication Code for identifying and approaching the goal.

Layers of abstraction Code for moving the agent between places of execution. Task Transport Discovery Communication Code for identifying and approaching the goal.

Layers of abstraction Code for moving the agent between places of execution. Task Transport Discovery Communication Code for identifying and approaching the goal. Methods for finding (the addresses) to resources.

Layers of abstraction Code for moving the agent between places of execution. Task Transport Discovery Sending the bits of the agent to another place. Communication Code for identifying and approaching the goal. Methods for finding (the addresses) to resources.

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 YES NO Am I it? NO Move to a Bailiff with players Is there a player here? YES NO Tag a player Move or wait according to strategy Is the ’it’ player here? YES Move to another Bailiff

TAG player outline Locate all Bailiffs and players YES NO Am I it? NO Move to a Bailiff with players Is there a player here? YES State information must be updated NO Tag a player Move or wait according to strategy Is the ’it’ player here? YES Move to another Bailiff

TAG player outline Locate all Bailiffs and players YES NO Am I it? NO Move to a Bailiff with players Is there a player here? YES Seek to be lonely Seek company Act randomly NO Tag a player Move or wait according to strategy Is the ’it’ player here? YES Move to another Bailiff

TAG player outline Seek to be lonely Seek company Act randomly

TAG player outline Seek to be lonely Seek company Act randomly

TAG player outline Seek to be lonely Seek company Act randomly

TAG player outline The 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
- Slides: 39