Agent-Oriented Programming

SEA Side
Software •AAnnotation
Engineering Annotations
6
One hour presentation to inform you of new
techniques and practices in software
development.
Professor Sara Stoecklin
Director of Software Engineering- Panama City
Florida State University – Computer Science
[email protected]
[email protected]
850-522-2091
850-522-2023 Ex 182
Assembly languages
Subroutines
Libraries or modules of subroutines
Objects
Distributed objects
Object libraries
Distributed agents
Agent libraries
EQUIVALENT TERMS
SWE with agents
Agent based software engineering
Multi agent systems
Agent oriented software engineering
Examples:
Animated paperclip agent in MS
Computer Virus destructive agents
Artificial players in computer games
(quake)
Trading and negotiation agents (Ebay)
Web spiders (search engines like
google)
What are agents????
Agents are processes that can execute a
procedure - usually general purpose rather
than specialized functions.
Agent is authorized to act for or in place of
another.
Standards groups for AOP
OAA - :Open Agent Architecture
Agent is a software process that meets
the conventions of the OAA society
OAA
Agent satisfies this requirement by
registering the services it can provide in
an acceptable form by being able to
speak the Inter-agent Communication
Language (ICL), and by sharing
functionality common to all OAA agent
such as the ability to install triggers,
manage data in certain ways, etc.
A Simple Example
Agent for Spoken Language
- travel agency
- telephone directory assistance
to find someone’s number
to dial someone’s number
- train schedule information
Speech Processing Diagram
user
speech input
HMM
messages
Formal
Language
models
noises
Acoustic
Signal
Processing
Dynamic
Time
Warp
Time
Analysis
BNF
speech signals
Acoustic
Pattern
Matching
Acoustic patterns
Figure 1
Language
Specifications
Selected
Word
Page 8
Build
?
Action
Question
Listen
shared
applicatio
n
shared
applicatio
n
Figure 2 : Two users interaction with a speech-based
application
Reengineering
Telephone
Registration
Implementation
Shoham proposes AOP system has
three components
A logical system for defining the mental
state of agents
Interpreted program language for
programming agents
An “agentification” process, for
compiling agent programs into lower
level executable systems.
Framework
Distributed agent framework – multiple agents
contribute a high level expression describing
the needs and attributes of the request to a
specialized facilitator agent. The facilitator
agent makes decisions about which agents are
available and capable of handling sub-parts of
the request and manage all agent interactions
required to handle the complex query.
Framework
Advantage such a distributed agent arch allows
the construction of systems that are more
flexible and adaptable than distributed object
frameworks.
Individual agents are dynamically added to the
community extending the functionality that the
agent community. The agent system is also able
to adapt to the available resources in a way that
hardcoded distributed objects cannot.
Framework
Agents themselves will compete and
cooperate in parallel to translate user
requests into a ICL expressions.
The facilitator techniques, reason about the
agent interactions necessary for handling a
given complex ICL expression and allow
human users to closely interact with the
ever changing community of distributed
agents.
OOP vs AOP
Extension of OOP where objects become
agents by redefining both their internal state
and their communication protocol in
intentional terms.
Agents have quality of volition that is using AI
techniques intelligent agents judge their
results and modify their behavior and their
own internal structure to improve their
perceived fitness.
OOP vs AOP
Normal objects contain arbitrary values in their
slots and communicate with messages.
AOP agents contain beliefs, commitments,
choices, and the like and communicate with
each other via a constrained set of speech type
acts such as inform, request, promise, decline
the state of the agent is called its mental state.
OOP vs AOP
OO focused on defining interfaces for
objects coupling where one objects needs
to invoke a specific method with specific
arguments on the other object thereby
coupling the two in code.
This same method invocation does occur in
agents with one major difference, there
effectively just one method with each agent
and one argument.
OOP vs AOP
All the semantics of the invocation are
bundled into that one argument just like in
human communication where one language
is used to initiate complex cooperative
behavior.
Agents may communicate using an ACL or
ICL where objects communicate with a fixed
method of interfaces
OOP vs AOP
Objects are abstractions of things like
invoices.
Agents are abstractions of intelligent beings
they are essentially anthropomorphic not
intelligent in the human sense only
modeling an anthropomorphic architecture
with beliefs, desires, etc
Claim of AOP is that is it a level of
abstraction above and beyond the current
capabilities of OO.
AOP Software Engineering is one of the
most recent contributions to the field of
software with benefits compared to
existing development approaches, in
particular the ability to let agents
represent entities in a software system.
Computer-Assisted Requisitioning
•E-procurement agents enable companies to implement electronic
invoice presentment and payment systems (EBPP)
•Remember B2B invoices are complex
–May have several hundred pages
–May have many discrepancies
•ebXML is being considered for payment systems so the workflow
can communicate in B2B e-procurement
•IBM has a tpaXML trading partner agreement markup language
allows trading partners to manage contracts and relationships
including payment relationships
IBM – ebXML, tpaXML
XbML
DARPA Agent Mark Up Language (DAML)
DAML (DARPA Agent Markup Language) is a markup language
based on the Extensible Markup Language (XML).
DARPA is developing DAML as a technology with intelligence
built into the language through the behaviors of agents,
programs that can dynamically identify and comprehend
sources of information, and interact with other agents in an
autonomous fashion.
DAML agents are embedded in code and maintain awareness of their
environment, are user-directed, but have the capacity to behave
autonomously.
They have the capacity to "learn" from experience, so that they improve
their behavior over time.
DAML uses a number of agents (such as information agents, event
monitoring agents, and secure agents) for different purposes.
DAML's semantic knowledge and autonomous behavior is expected to make
it capable of processing large volumes of data much as a human being
would process it.
THE FUTURE
Click on Sears
Scroll down to maintenance
“ Hello Dr. Stoecklin “
“Which of your products needs maintenance?”
<<grill>>
“Is it still in the back yard on the wooden deck?”
<<yes>>
“Can we come on Monday morning at 11:00 ”
<<yes>>
“ It is time to renew your maintenance or replace that grill, we
have one very similar to the one you have on sale for 129.00 or
your renewal maintenance contract will be 89.00 for 4 years.
Would you like us to order one for you.”
<<no>>
ONE YEAR LATER about June contacted again.
Personalization of Customer – by name, preferences, content by
profile, cross sells, ATMs, sales behavior, click streams,
registration, purchasing patterns.
Website Content Presentation Management – agents to provide content
based on personalization of customer
Website Analysis Tools – agents to analyze effectiveness during use
Portals and Knowledge Management – agents for intelligent queries,
profile based searches
Employee Relationship Management – agents to help with benefits, off time
Customer Relationship Management –agents with txonomies and linguistics
Contract Management – agents to negotiate, partnership management
Enterprise Resource Planning – agents for monitoring OLAP to plan
Supply Chain Management – agents for determining best chain
Help Desk Support – agents to help with billing, computer help, etc.
Field Service and Dispatch – agents for scheduling field service