Development_FAQ

chrfrantz edited this page May 16, 2016 · 2 revisions

When developing a micro-agent application first make sure you know the feature set of the platform (as described in Developing micro-agent applications) as this might answer your question.

This page does not provide an alternative to this but summarizes some development-related questions. If you feel that there is one relevant answer missing, please write to .

Should I use social or passive roles?

This depends on your application. See the according criteria. In most cases you will use social roles to fulfill more sophisticated tasks. Passive roles have a rather complementary character for primitive tasks 'inside' an agent playing a social role.

Should I use Broadcast or Multicast-based discovery?

General answer: First try Multicast. If platforms do not detect each other you can switch to Broadcast and see if you have more success. However, when using Broadcast you cannot detect platforms running on the same host. So for general use Multicast-based discovery is suggested.

Read up on it

Should I use configuration via configuration file or in-code configuration?

You should generally use the configuration file as it makes the application more flexible to changing environments which demand the use of other settings. It also keeps implementation code and parameterisation separate. However, for spontaneous tests, debugging or cases where explicit access to the file system is prohibited the in-code configuration is a useful feature. In fact a general suggestion for application development is to try to solve problems by configuration rather than rewriting the own application if errors are not obvious: As all software this platform is likely to contain bugs. As the configuration often provides alternatives many issues could be resolved by changing settings. However, upon discovery of problems or likeliness of bugs a notice to the above-mentioned mail address is appreciated!

Read up on it

Should I use Jetlang or MicroFiber as Message Passing Framework?

In general you should try to stick to Jetlang. It is the fastest option available. If your applications consists or numerous agents (e.g. more than 100 (depending on your hardware)) and you experience Java OutOfMemory errors (in particular PermGen memory) the switch to MicroFiber is indicated. This can simply be done in the configuration and does not demand for any change of the developed code.

However, even then Jetlang can further be used if you increase the memory allocated to your application. A brief description on how to configure this is given here, under Step 5 in the Setup section. The actual values (i.e. allocated memory) depend on your actual application and the available hardware and are thus likely to deviate from the values shown there.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.