next up previous contents
Next: The real MAFFinder Up: MAFFinder Service Previous: Structure   Contents

Information provided

The MAFFinder is used to register the following parts of the System:

Agent Systems
Every Agent System has to be registered in the MAFFinder. This is done when starting the System in the init() method. When there is already an Agent System registered with the same name the new Agent System will exit with an error. Therefor it checks first if its name is already assigned to an Agent System by doing a lookup on its name and the MAFFinder should return an empty array.
Agents
Every Agent registers itself in the MAFFinder when it is started. When an Agent moves to another System it is restarted (resumed) there again and will register itself with the new Location. The Agent can register itself more times with different Location and the last registration will be kept in the internal database of the MAFFinder to provide always only the actual information about this Agent.
System Agents
System Agents are normally not registered in the MAFFinder. This could be changed in the future to make the MAFFinder also to a registry of resources. The only System Agents registered in the MAFFinder are the communication services. Every communication service uses a certain port to listen to and to be connected from other Agent Systems. To provide this information every communication System Agent registers itself with its listener port with the MAFFinder. When now another communication service wants to connect to it, it asks the MAFFinder for the registry entry with the desired port to be used to connect to it. Also it provides an actual database of which communication services are available to access a certain Agent System. The communication services register not really themselves in the MAFFinder but the Agent System where they are residing. The Agent System itself registers without giving a protocol and port, the communication services register themselves with the same name but with a protocol and port. By querying for an Agent System one gets the entry of the Agent System back and a list of all possible communication protocols to access it. This is used by the basic Agent class to look for an appropriate communication method for a given Agent System.
Places
Although places are not totally supported in this version of TAgents, the MAFFinder has already the methods to register places. A place should be used by a special group of Agents and therefor the naming of a place should be standardized in the Agent System.
As one can see, without a MAFFinder an Agent System cannot work properly. For example there would be big problems for doing the communication between two Agent Systems or for finding other Agents. Therefor it could decided in future to build a backup MAFFinder on another System. This backup MAFFinder would have to have the same entries as the real one and would have to be kept up to date whenever a entry changes. This could be done by using the same mechanisms as the MAFFinderServiceProxies to keep the other MAFFinders up to date. Also the MAFFinder is prepared to be able to move to another place which could be necessary when the Agent System is going down. The MAFFinder with all its data could transfer itself to the next System and continue work there. The problem is that all the MAFFinderServiceProxy would have to get the new address of the MAFFinder. But the changes should be not to much.


next up previous contents
Next: The real MAFFinder Up: MAFFinder Service Previous: Structure   Contents
Thomas Letsch 2001-02-21