FIPA | 96/06/03 18:27 |
FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS | nyws012 |
Source: Agostino Poggi and Giovanni Adorni
(University of Parma) |
FIPA's standardization should require agent subsystems development
by means of object teschnology and different implementation languages.
In fact, agent technology might be built on the top of object
technology, because an agent is a natural extension of an object
and, more important, because this solution allows to add the features
of object technology (i.e., extendibility, reusability, flexibility,
...) to the features of agent technology (i.e., autonomy, social
ability, responsiveness,...). Moreover, the implementation of
agent subsystems with different languages is useful because agents
will be used for different types of application that require some
features offered by different types of languages (e.g., while
C++ is more suitable to develop real time application, Java is
more suitable to develop internet applications, where code mobility
is more important that high speed).
The implementation of FIPA's subsystems through different programming
languages might make heavy the development of agent templates
to be specialized for different applications. However, when a
programmer develops an agent system, he will be able to use all
the FIPA's subsystems and so he will usually write only the code
of the "brain" of the system.
The "brain" of an agent system usually manages the coordination
of the different subsystems and the interaction with the other
agens; therefore, its code does not depend on the type of application
and may be written into any of the different programming languages
chosen by FIPA.
A solution limiting the amount of code to be written might be
the definition of a "minimal" agent programming language
that could become a standard for programming agent "brain".
Such language should have the following features: i) a limited
set of primitives and programming constructs to make more convenient
its use than the use of a low level language; ii) an interface
to the most common low level languages to reuse some useful software
libraries and FIPA's subsystems; iii) an efficient implementation
to allow the development of systems in all the possible application
domains; iv) a set of code translators, one for each of the (chosen)
programming languages.
A fundamental task of standardization should be the definition
of a set of primitives for inter-agent communication. These primitives
might be defined starting from KQML and KIF. Different agent applications
work on different types of data and require different types of
interaction and different types of communication protocol. Then,
a good solution might be that the definition of an extendible
hierarchy of sets of primitives for inter-agent communication
that specialize a minimal set of primitives (i.e., the primitives
used by all the agents) for the different agent applications.
Agostino Poggi and Giovanni Adorni
Dipartimento di Ingegneria dell'Informazione
University of Parma, Viale delle Scienze, 43100 Parma, Italy
Email: {poggi, adorni}@CE.UniPR.IT