Next: The real MAFFinder
Up: MAFFinder Service
Previous: Structure
  Contents
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: The real MAFFinder
Up: MAFFinder Service
Previous: Structure
  Contents
Thomas Letsch
2001-02-21