Next: Design and Implementation
Up: Requirements
Previous: Requirements
  Contents
The basic requirements for this work were to extend the old
TAgents platform
with plain socket communication, asynchronous messaging for RMI and plain socket
and to build a MAFFinder. Due to the reasons mentioned in Chapter
![[*]](/usr/share/latex2html/icons/crossref.png)
it was very fast clear that it would mean major rewrites. So it was decided
to rewrite whole the platform implementing a good design and making it ready
for future enhancements.
This leaded to some more requirements for this work. Now the whole platform
had to be redesigned and rewritten in addition to the former requirements. The
new requirements to met were the following.
First the new design should be easy extendable by more communication protocols
like CORBA or secure sockets layer. Since there exist already two protocols
in this work the new design would have to be independent from the communication
protocol anyway. This can only be achieved by separating all the communication
methods in an extra module and provide the System with a full interface to all
communication needed.
Second requirement was to implement asynchronous communication. Asynchronous
communication means to send a message and to be able then to continue execution
without having to wait for an answer. In other words the object which sends
a message is not blocked until the answer arrives, which means until the message
was processed and the response was transported back to the sender. There exist
two main approaches for this communication method.
The first is event based. An agent sends a message and continues executing.
When the response is arrived it gets an event that contains the response. This
is used for example by the IBM Aglets. It fits good in the more event based
design of Aglets.
The other approach uses a so called FutureResult object to store the response
in. In detail sends the Agent a message and gets immediately a FutureResult
object back. This object will contain the response after the message was processed
and the answer arrived in the senders Agent System. The Agent polls the FutureResult
object until the response is there. This method does not block as well. The
following image will give a an overview about the calls made when sending a
FutureResult message.
Figure:
Process Flow of the Future Result Message
| 2#2 |
The third part of the general requirements was to implement a MAFFinder. Since
the use of CORBA requires significant knowledge in this communication method
and just runs on JDKs newer then 1.2.2 it was decided to just implement the
MAFFinder without the use of CORBA. It means that there had to be used the interface
definition of the MAFFinder but another, standard communication method.
There exists also a MASIF standard for an Mobile Agent System
which is called MAFAgentSystem. It was decided not to intend to make the System
compliant to this standard because of the status of the standard and the difficulties
to implement. The difficulties were mostly missing methods and not so easy to
implement method calls. It has shown that in newer versions of the standard
the MAFFinder interface has been kept almost the same since major changes have
been in the MAFAgentSystem. So this decision was proved to has been correct
this time.
Next: Design and Implementation
Up: Requirements
Previous: Requirements
  Contents
Thomas Letsch
2001-02-21