Dynamic Agent Distribution (DAD) is a supplemental service that allows the application developer to declare how the agents are distributed among the Cybele containers or nodes. Without DAD service, the users are forced to create agent in the container where they intend the agent to run. However, with DAD service, the users have the flexibility to configure the mapping between Agents and Containers, so that they can change the distribution of agents (e.g., to balance the load) using the configuration files and not by changing the source code. DAD service eliminates developing special code within the application to determine where the agents needs to be created. DAD service also greatly reduces time required for developing a "load-balanced" distributed application.
The DAD service provides a "fixed" and "round-robin" algorithms for agent distribution. However, it also provides a simple Java API to use proprietary algorithms in distributing agents. Different proprietary algorithms can be specified for different classes of agents. As a result, agents created using an agent delegate class will actually be created in a container as determined by the propretary algorithm specfied for the agent delegate class. |