Code Migration - 22
Code Migration - 22
Systems
Distributed Software Systems
Client-server systems
Code for data entry shipped to client system
If large quantities of data need to be processed, it is
better to ship the data processing component to the
client
Dynamically configurable client software
migration difficult
Three types of process to resource
bindings
Process-to- By identifier
resource By value
binding By type
Unattached
Fastened
Fixed
MV (or GR)
CP ( or MV, GR)
RB (or GR, CP)
GR (or MV)
GR (or CP)
RB (or GR, CP)
GR
GR
RB (or GR)
3-15
10
# fac(1) = 1
# fac(n) = n * fac(n 1)
}
set number
set machine
agent_receive
Example: DAgents
DAgents: research middleware platform that
Agent mobility
Sender-initiated weak mobility: agent_submit command
Strong mobility by process migration: agent_jump
command
Strong mobility by process cloning: agent_clone
agent_clone similar to agent_jump except that invoking
process continues execution at the source machine
12
# Create a migrating agent by submitting the script to this machine, from where
# it will jump to all the others in $machines.
agent_submit $this_machine procs all_users
-vars machines
-script { all_users $machines }
agent_receive
13
14
Description
Procedure definitions
Stack of commands
15
Software Agents
A software agent is an autonomous process
Collaborative agents
Mobile agents
Interface agents
Information agents
Common to
all agents?
Description
Autonomous
Yes
Reactive
Yes
Proactive
Yes
Communicative
Yes
Continuous
No
Mobile
No
Adaptive
No
Capable of learning
Agent Technology
18
Description
Message Content
INFORM
Proposition
QUERY-IF
Proposition
QUERY-REF
Expression
CFP
Proposal specifics
PROPOSE
Provide a proposal
Proposal
ACCEPT-PROPOSAL
Proposal ID
REJECT-PROPOSAL
Proposal ID
REQUEST
Action specification
SUBSCRIBE
Reference to source
19
Value
Purpose
INFORM
Sender
max@http://fanclub-beatrix.royalty-spotters.nl:7239
Receiver
elke@iiop://royalty-watcher.uk:5623
Language
Prolog
Ontology
genealogy
Content
female(beatrix),parent(beatrix,juliana,bernhard)
A simple example of a FIPA ACL message sent between two agents using
Prolog to express genealogy information.
20
10
malicious hosts
malicious agents
21
Protecting an agent
Malicious hosts may
steal information carried by an agent
modify an agent to change its behavior
destroy an agent
Fully protecting an agent against all kinds
of attacks is impossible
Alternative: organize agents in such a way
that modifications can be detected
22
11
Ajanta
Append-only logs
data collected by an agent can only be appended to the
log
Initially checksum associated with empty log, Cinit = K+(N),
where N is a nonce and K+ is public key of owner
23
Ajanta contd
Append-only logs (contd)
When a server S appends X to the log, it calculates a new
checksum Cnew = K+(Cold, sig(S,X), S), where Cold is the
previously used checksum
When the agent comes back to the owner, the owner can
start reading the log at the end successively decrypting
the checksum, until the initial checksum is reached
24
12
create a playground
a separate designated machine exclusively reserved for
downloaded code
resources local to other machines are physically
disconnected from the playground
users on other machines can access the playground using
traditional means, e.g. RPC
25
Sandbox vs Playground
A playground
A sandbox
8-28
26
13
8-27
27
14
Adding flexibility
Playgrounds are more flexible than
sandboxes
Next step: downloaded programs are
authenticated, and subsequently a specific
security policy is enforced based on the
where the program came from
authentication achieved through digital
signatures
enforcing a security policy more challenging
29
30
15
8-29
31
32
16