next up previous contents
Next: Design and Implementation Up: Requirements Previous: Requirements   Contents

General Targets

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 [*] 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 up previous contents
Next: Design and Implementation Up: Requirements Previous: Requirements   Contents
Thomas Letsch 2001-02-21