mobile agent programming concepts
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 PresentationTRANSCRIPT
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