Title: Agent Framework Technology
1Agent Framework Technology
- An overview of agent frameworks for use in
GasTurbnLab
By Matthias Wollnik
2Overview
- 1. Agent definition
- 2. Agent types
- 3. GasTurbnLab agents
- 4. Agent frameworks
- 5.Conclusion
3What is an Agent?
1) Process 2) Autonomous 3) Very specialized 4)
Originally meant for AI work 5) Recently used for
collaboration and internet searches
4What can an agent be?
1) Mobile 2) Can communicate with other agents 3)
Intelligent 4) Distributed 5) Extensible
5Agent Types
1) Mobile Agents 2) Collaboration 3) Search
Agents 4) Cognitive Simulation 5) Miscellaneous
6Mobile Agents Theory
- Need to get and process information from many
machines - Can be a problem when the connection is not good
- Solution Dont communicate over uncertain
connections - Move the agent and communicate locally
7Mobile Agent Structure
Compiled Agents
Interpreted Agent 1
...
Agent Virtual Machine
Host Operation Systems
8Collaborative Agents
Data-Space Sites
Data-Processing Sites
- Workstations provide data
- Can change the data that everyone sees
9Agent use in Collaboration
- communication between workstation and data-space
- communication between data-space machines
- communication between data-processing machines
- The agents allowing the data to be seen from each
workstation require that they get their
information from the data-space which must
distribute it using agents.
10Search Agents
- Inspired by the vastness of the Internet
- Move from machine to machine searching for data
- Commonly implemented as locally running agents
- Online search engines are biggest user
- may be used to prefetch web pages
11Cognitive Agents
- Commonly used in the AI community
- Often set up to simulate intelligence models
- Not usually possible to handle external access
- Use proprietary languages (or prolog/lisp) to
- describe models
12Miscellaneous
There are other types that are meant for
specific purposes like gathering information out
of your local PIM. Also general frameworks that
can emulate two or more of the previous ones fall
in this category.
13Agent Summary
14GasTurbnLab Agents
Basic Requirements
1) Distributed agents 2) Communication between
agents 3) Ability to run Kiva, Ale3D, and
//ELLPACK code 4) Ability to build mediators with
either internal language or compiled code
15GasTurbnLab Agents
Possible Extensions
1) Agent intelligence 2) Dynamically assign
agents to machines 3) Split up problems if new
agents become available 4) Add machines to
resource pool at run time
16Agent Frameworks
Soar
- Started in 1983 at CMU
- A workshop is held every 8-10 months
- Main institutions involved
- CMU
- Ohio State
- UMich
- Univ of South California
- multiple sites in Europe
- In use at over 100 sites around the world
17Agent Frameworks
Soar
- Mainly used for cognitive research
- has been used to simulate learning
- psychological models
- Supports the creation of autonomous processes
- allows very extensive intelligence modelling
- allows extension building via Tcl
- communication between agents is done by I/O
routines - does not support network communication
inheritently
18Agent Frameworks
Soar Sample notation
Sp applymove-blockremove-old-ontop
(state ltstate1gt operator ltop1gt
ontop ltontopgt) (ltop1gt name
move-block moving-block
ltblock1gt destination-block
ltblock2gt) (ltontopgt top-block ltblock1gt
bottom-thing ltgt ltblock2gt
ltblock3gt ) ----gt (ltstate1gt ontop
ltontopgt -)
19Agent Frameworks
Grashopper Agent Platform
- Made by the German company IKV
- (Informations- und Kommunikationstechnologie)
- Grasshopper is a mobile agent framework
- Compliant with OMGs MASIF standard
- based upon CORBA
Compiled Agents
Interpreted Agent 1
...
Agent Virtual Machine
Host Operation Systems
20Agent Frameworks
Grashopper Agent Platform
- Written in Java using ORB
- can be extended easily using ORB applications
- supports regions which allow sub-partitioning
of network - supports compiled (service) agents and Java
agents - supplies tools to get information on running
agents on network - region registry is used to find other agents
- Commercially supported and available for 3000
for binary - developers license. Source code license costs
110000
21Agent Frameworks
Ara-Platform for Mobile Agents
- Made by the University of Kaiserslauern, Germany
- Supported by 6 people under Nehmer
- implemented in C
- Supports compiled languages as dynamically loaded
libraries - First publication on Ara is dated 1997
- Web page very out of date
- Stationary agents are used as services that
mobile agents - come to interface with
22Agent Frameworks
Ara-Platform for Mobile Agents
Sample Agent in C int main(int argc, char
argv) char homeStringARA_PLACENAME_SP
ACE Ara_PlaceName home Ara_Here(),
destination Ara_PlaceNameCreate("thor")
Ara_Go(ARA_ID_NONE, destination,
ARA_ALLOWANCE_NONE,
ARA_ALLOWANCE_NONE) Ara_PlaceNamePrint(home,
homeString) printf("Hello at thor, I've come
from s!\n", homeString) Ara_PlaceNameDelete(
home) Ara_PlaceNameDelete(destination)
Ara_Exit(0) / Never reached /
return -1
23Agent Frameworks
Ara-Platform for Mobile Agents
Sample Agent in Tcl ara_agent set home
ara_here ara_go thor puts "Hello at
thor, I've come from home!" ara_exit
24Agent Frameworks
Collaborative Computing for Nat. Sci. Research
- Built at Emory University
- Supported by 17 people under Sunderam
- Collaborative environment
- written in C/C for Solaris and IRIX
- Supports compiled languages as stationary
services - Will upload programs to machines designated to
run them - Uploadable agents written in either Perl or Java
- Basic message passing interface
25Agent Frameworks
Bond Distributed Object System
- Built at Purdue University
- Originally built for Computational Biology
- written in Java
- Supports directly callable external programs
- Active development by three grad Students with
- supervision by one faculty member
- Cannot easily be classified in any one category
of Agents - Message passing is done via KQML over infospheres
26Agent Frameworks
Bond Distributed Object System
Each agent is implemented as a finite state
machine in either Java or a proprietary
format public Class PDESolverAgent extends
bondAgent public PDESolverAgent()
bondStrategyGroup bsu1 new bondUtilStrategyGroup
(fancy1) fsm.addState(new
bondFSMState(name,bsu1.getStrategy(name)))
fsm.addTransition(name1,name2,condition)
.
27Agent Frameworks
Bond Distributed Object System
begin blueprint agent PDEMediatorAgent add state
AgentStarted with strategy Util.WaitAndSucceedde
fault internal transitions from
AgentStarted to DataStaging on success from
AgentStarted to Error on failure
28Agent Frameworks
Bond Distributed Object System
The system has the unique advantage that we
already have a sample implementation for
SciAgents done. However, there have been serious
problems with stability in the framework.
29Agent Frameworks
Open Agent Architecture
- OAA is being developed at SRI on IRD funding
- by Cheyer and Moran.
- Meant to be a general framework to produce a
variety - of agents including mobile, distributed, and
learning. - Exists as set of libraries for Prolog, C,
Common Lisp, - Java, Delphi, and Visual Basic
- Communication via InterAgent Communication
Language - Very little documentation available to the public
at this time - Release date of April 99
- Free for non-commercial use
30Agent Frameworks
Open Agent Architecture
System will use a Facilitator design. The
Facilitator will receive requests and make
decisions as to which agent the work is assigned
to. This allows the Facilitator to split complex
problems into pieces as more agents become
available.
31Agent Frameworks Summary
32Agent Frameworks Summary
Addendum ObjectSpace Voyager
ObjectSpace has built a free mobile agent
framework named Voyager. They receive revenue by
building programs on top of Voyager. Voyager is
very similar to Grasshopper in that it is
implemented in Java using CORBA. However, it
does not support external programs. Has a very
nice multicasting setup and has RMI support.
33Conclusion
- For our purposes, we can use either a distributed
or a mobile - paradigm.
- The approach taken by CCF is not advisable for us
since it - results in message-passing be a major focus for
us. - We would have to modify all solvers to use the
functions - or write wrappers.
- True also of OOA, but added advantage would be
Facilitator - agent
- Soar is not a viable option since it allows no
network access - and does not allow interaction with legacy code
34Conclusion
- Bond has distinct advantage since SciAgent has
been ported - Unreliable support
- Ara would be a reasonable system, however getting
more - current data is important
- Grasshopper may be the best solution if money is
available - since it is backed by a company
35Conclusion
- If mobile Agents are acceptable Grasshopper
should be - considered as most useful agent framework
- Otherwise the OAA framework will most likely be
best - If the limited support is acceptable using Bond
for the - first implementation would also be acceptable.