OutlineOutline::• Motivation & background• Mobile agents and enterprise
computing• Algebra of itineraries• Implementation and applications• Demo
Scripting Scripting Mobile Agents to Mobile Agents to Support Support Enterprise Enterprise
ApplicationsApplications
Mobile AgentsMobile Agents AgentAgent: convenient metaphor for software
system/component which acts on user’s behalf; situated in an environment and exhibits behaviour which can be viewed as pro-active, autonomous, communicative, persistent, ...
Mobile agentMobile agent: software component (code, data, execution state) which can perform tasks by moving from one place to another (own volition/invited) and exhibits “agentness”
Needs software support for platform independent execution: e.g. Java “write once, go anywhere”
More than a dozen mobile agent toolkits: Aglets, Concordia, Telescript, Grasshopper, …
Mobile Agents … moreMobile Agents … more
Some general applications: reduce network load, encapsulate protocols, adapt by moving, offload computations from mobile computers, proxy,
Mobile agent applications: network management, electronic commerce, distributed data retrieval, workflow management, community-ware, supply-chain management, groupware, parallel processing [no killer but unifier]
Mobile agent standards: OMG’s MASIF, FIPA
Mobile Agents … moreMobile Agents … more
Mobile Agent: “program that moves across a computer network doing some computation”
MagicCap: “A distributed computing environment in which agent processes direct their own movement through a computer network. Place processes provide a computing context within which agent processes are interpreted.”
Technological trendsTechnological trends
Networked enterprise Dynamic ad hoc virtual
communities Peer to peer computing model
ITAG: AimITAG: Aim
A high-level language for reasoning with and programming the mobility behaviour of agents:– encourage separation of concerns: mobility,
behaviour and task code details– structuring of mobile agent applications– economy of expression of mobility
behaviour– identification and reuse of patterns in
mobility behaviour
An Algebra of ItinerariesAn Algebra of Itineraries
Itinerary: describes the places an agent visits, the tasks/actions to be performed at each place, and the order of such traversal
Simple object-oriented model of agent:– mobile agent = state + action +
mobility
OperatorsOperators
Agent Movement Parallel Composition Sequential Composition Independent Nondeterminism Conditional Nondeterminism Placement Operations and
Language
):()|()()||(:: IIIIIIIIAI ap ο
ExamplesExamples
Meeting Scheduling schedule meeting among parties p,q,r,s and h
(the initiator)
Sales Order Processing– us_sc = US stock control– asia_sc = Asian stock control– mat = raw materials seller– man = product manufacturer– ext = external product seller
Examples of ItineraryExamples of Itinerary CommandsCommands [A,Paris,readData] || [A,England,readData]
[A,Australia,saveData] [A,Sydney,priceCheck] : [A,Canberra,priceCheck] :
[A,Brisbane,priceCheck] : [A,Tasmania,priceCheck] [A,home,showBestPrice]
[A,sales,contactMgr] | [A,engineering,contactMgr] | [A,research,contactMgr] | [A,customerservice,contactMgr] [A,headoffice,showResults]
VotingVoting:
announces
announcer
announceq
announcep
tabulateh
votes
voter
voteq
votep
VVVV
VVVVV
Features of the Itinerary Features of the Itinerary Language not SupportedLanguage not Supported
Places in an atomic activity that are a result of a function
The non-deterministic operator is ignored
The sequential operator does not have an associated method. The parallel operator does.– [A,melb,getInfo] || [A,syd,getInfo].{comb1}
[A,melb,getInfo]– [A,melb,getInfo] || {combo1} [A,syd,getInfo]
Limited English Natural Limited English Natural LanguageLanguage
Acts as a bridge between the user of the system and the raw itinerary language.
Much more understandable May sometimes act as a shortcut
command
Limited English Natural Limited English Natural LanguageLanguage move A to p doing a [A,p,a] Then . Otherwise : Or | parallel with || then using method .method otherwise using method :method or using method |method parallel with using method ||method
tour [agent] to [locations] in (series | parallel) doing [method]
tour [agent] (one of | if needed) [locations] doing [method]
Examples of Natural Examples of Natural Language CommandsLanguage Commands - - VotingVoting(move V to p do vote)then (move V to q do vote)then (move V to r do vote) then (move V to s do vote))then (return V do tabulate)then ((move V to p do announce)in parallel with
(move V to q do announce)in parallel with (move V to r do announce)in parallel with (move V to s do announce)
Alternatively:Alternatively:tour V to p,q,r,s in series do vote) then (return V do tabulate) then (tour V to p,q,r,s in parallel do announce)
GrasshopperGrasshopper Agent development toolkit Agents
– a self-contained software component responsible for autonomously carrying out one or multiple tasks.
Agencies– the run-time environment for Grasshopper.
Regions– a central location at which all agencies are
registered in. Places
– a logical entity inside a Grasshopper agency.
Enterprise applicationsEnterprise applications
Meeting scheduling(tour M to p, j, r, s in series do ask) then (return M do finalize) then (tour M to p, j, r, s in parallel do inform)
Parallel processing((move D to p do job1)in parallel with (move D to j do job2)in parallel with (move D to r do job3)in parallel with (move D to s do job4))then (return D do combine_results)
Information gatheringtour I if needed to db1, db2, db3 do search using found
Mobile agents & CSCWMobile agents & CSCW
Ad hoc virtual communities– Redeployment of components with
agents to support distributed activities– Scripting approach– Web-based facility, control and
coordination centre Peer-to-peer computing
– Peer identifiers