Title: Putting it all together the Open Agent Architecture OAA
1Putting it all together the Open Agent
Architecture (OAA)
Tobias Kluge, UKakluge_at_ira.uka.de
2overview
- About the OAA
- Integration of OAA
- Demo of OAA-enabled system
- How you can use it
- Discussion
3OAA more than just
- agents provide services that can be
requested by other agents OAA Developers
Guide
?!?
4OAA sample agents
Agent 1
Agent 2 solvables
Facilitator Agent
answer
request a service
5OAA an agent-based message-driven middleware
architecture
- Agents Client Facilitator Agent
- language bindings Java, C, Prolog, Perl
- License Public Domain os-independent
- Connections of gt 1 OAA-subsystems possible
- integration into program vs. writing stubs
- homepage http//www.ai.sri.com/oaa/
6OAA ICL
- interface communication language shared by all
agents (independent from programming language,
os, ) - extension of prolog
- Example
- newSpeechRecognized(Msg,Params)
- newSpeechRecognized(hello,world,
lang(en),time(20030311/170320100))
7Integration writing stubs
- changing of middleware / interfaces without
changing code of program - 1 interface for the program to handle
- other programming languages
- connection to stub (e.g. socket) what to do if
connection crashes problems of socket
communication - additional latency
stub agent
OAA
program
socket
answer
request a service
8Integration into program
- faster than socket communication through stubs
- no socket to handle
- integration of oaa-communication more complex
than handling of incoming socket messages - change program if middleware/interfaces changes
OAA
program
answer
request a service
9Integration of OAA in our system
system as black box
Switch on light...
voice recording
speech recognition
dialog manager
10Interfaces of used components
- voice recording
- messages- newVoiceFileStart(Filename,Params)-
newVoiceFileReady(Filename,Params) - solvables- none yet
- speech recognition
- messages- newRecognizedSpeech(Msg,Params)
- solvables- newVoiceFileStart(Filename,Params)
- newVoiceFileReady(Filename,Params)
- dialog manager
- messages- none yet
- solvables- newRecognizedSpeech(Msg,Params)
11voice recording (C)
OAA
dialog manager (Java)
socket 8001
Java
Java
socket 8023
stub
speech recognition (TCL)
program
12Demo of OAA enabled system
- programs voice recorder, speech recognition,
dialog manager - Trace messages with oaa-monitor
13What you should think about...
- direct integration or using stubs
- provided services (solvables)
- sent messages
- use oaa-monitor to trace communication
14Speaking different languages Java
- use OaaClient library from UKA simplifies
creation of custom agents - Documentation
- Tutorial http//www.ai.sri.com/oaa/distribution/v
2.2/doc/tutorial/index.html - Developers Guide http//www.ai.sri.com/oaa/distri
bution/v2.2/2.2.0/doc/devguide.html
15Speaking different languages C
- Documentation
- API - documentation
- http//www.ai.sri.com/oaa/distribution/v2.2/2.2.0
/doc/c-doxygen-api-doc-220/html/ - Examples
- In the source-code package, under c/samples/
- simple-agent connection to system, declare
solvables - add-agent 2 agent communicating with each other
16What you should implement
- program - initialisation
- register with OAA-system
- declare solvables
- add trigger
- Running
- send solvable requests
- add, modify, delete data to/from system
- react on incoming messages
17Discussion
18voice recording
speech translation
???
gesture recognition
voice recognition
people / object tracker
room control
camera man
virtual realty
information retrieval
Dialog Manager
butler
sound localisation
media player
19From bottom up
- Which components should be connected?
- What data do / will these components need /
provide? - UKa newVoiceFileStart, newVoiceFileReady,
recognizedSpeech, ...
20top - down
- Cross-connections between systems (CORBA, other
OAA - sub systems)
master OAA system
ORB
slave OAA system
21top down questions
- Who has already a middleware-system running?
- What components should be arranged together?
- What messages should be routed to master-system,
which not? (message hierarchy)
22Thanks for your attention!