Outline : Motivation & background Mobile agents and enterprise computing Algebra of itineraries Implementation and applications Demo Scripting Mobile Agents to Support Enterprise Applications
Mobile Agents 4 Agent 4 Agent: 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,... 4 Mobile agent 4 Mobile agent: software component (code, data, execution state) which can perform tasks by moving from one place to another (own volition/invited) and exhibits “agentness” 4 Needs software support for platform independent execution: e.g. Java “write once, go anywhere” 4 More than a dozen mobile agent toolkits: Aglets, Concordia, Telescript, Grasshopper, …
Mobile Agents … more 4 Some general applications: reduce network load, encapsulate protocols, adapt by moving, offload computations from mobile computers, proxy, 4 Mobile agent applications: network management, electronic commerce, distributed data retrieval, workflow management, community-ware, supply- chain management, groupware, parallel processing [no killer but unifier] 4 Mobile agent standards: OMG’s MASIF, FIPA
Mobile Agents … more 4 Mobile Agent: “program that moves across a computer network doing some computation” 4 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 trends 4 Networked enterprise 4 Dynamic ad hoc virtual communities 4 Peer to peer computing model
ITAG: Aim 4 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
Mobile agents in the enterprise
An Algebra of Itineraries 4 Itinerary: describes the places an agent visits, the tasks/actions to be performed at each place, and the order of such traversal 4 Simple object-oriented model of agent: –mobile agent = state + action + mobility
Operators 4 Agent Movement 4 Parallel Composition 4 Sequential Composition 4 Independent Nondeterminism 4 Conditional Nondeterminism 4 Placement Operations and Language
Examples 4 Meeting Scheduling 4 schedule meeting among parties p,q,r,s and h (the initiator) 4 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 Itinerary Commands 4 [A,Paris,readData] || [A,England,readData] [A,Australia,saveData] 4 [A,Sydney,priceCheck] : [A,Canberra,priceCheck] : [A,Brisbane,priceCheck] : [A,Tasmania,priceCheck] [A,home,showBestPrice] 4 [A,sales,contactMgr] | [A,engineering,contactMgr] | [A,research,contactMgr] | [A,customerservice,contactMgr] [A,headoffice,showResults] 4 Voting 4 Voting:
Features of the Itinerary Language not Supported 4 Places in an atomic activity that are a result of a function 4 The non-deterministic operator is ignored 4 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 Language 4 Acts as a bridge between the user of the system and the raw itinerary language. 4 Much more understandable 4 May sometimes act as a shortcut command
Limited English Natural Language 4 move A to p doing a[A,p,a] 4 Then. 4 Otherwise: 4 Or| 4 parallel with|| 4 then using method.method 4 otherwise using method:method 4 or using method|method 4 parallel with using method||method 4 tour [agent] to [locations] in (series | parallel) doing [method] 4 tour [agent] (one of | if needed) [locations] doing [method]
Examples of Natural Language Commands - Voting (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: 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)
Overall Design of the System
Grasshopper 4 Agent development toolkit 4 Agents –a self-contained software component responsible for autonomously carrying out one or multiple tasks. 4 Agencies –the run-time environment for Grasshopper. 4 Regions –a central location at which all agencies are registered in. 4 Places –a logical entity inside a Grasshopper agency.
Grasshopper at Work 4 Master - Slave paradigm 4 Intermediary object - proxy
Scenario 1: Serial operations
Scenario 2: Parallel operations
Scenario 3: Conditional operations
Enterprise applications 4 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) 4 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) 4 Information gathering tour I if needed to db1, db2, db3 do search using found
Mobile agents & CSCW 4 Ad hoc virtual communities –Redeployment of components with agents to support distributed activities –Scripting approach –Web-based facility, control and coordination centre 4 Peer-to-peer computing –Peer identifiers
Live Demonstration Live Demonstration