Things to Note
- Lime currently uses multicast as the communication mechanism to implement
the engagement and disengagement protocol. Be aware of this when using Lime,
because multicast packets are automatically sent to hosts on the same
subnet. So, if different users are testing different Lime applications on the
same subnet, the engagement packets from one application are likely to
interfere with those of the other. To avoid such conflicts, be sure to specify
a different multicast port or address for one of the Lime systems (see the
- Arbitrary connection and disconnection is currently not supported. Changes in connectivity are explicitly triggered by the user using the API calls or with the SafeDistance protocol basedon GPS information. Work on a version of Lime that accounts for unannounced disconnection is ongoing.
- The integration of µCode and Lime currently requires that the classes used in tuple fields are already present at the destination. In other words, a mobile agent cannot write or access tuples using classes that are not present on the file system of the hosting Lime server.
- Lime requires a minimum of four jar files to run:
lights.jar. Using mobile agents requires
mucode.jar. Communicating with a GPS device through a serial port requires Sun's
comm.jar. Note that Sun has not released a version of
javacommfor Linux or Macintosh, though unofficial ports may be available.
Lime 1.1 API Changes
A few minor changes have been made to the API for release 1.1:
shutDown()method in LimeServer is now
shutdown(boolean exit). Pass true if you want LimeServer to shutdown the JVM (by calling
System.exit(0)) when it's finished shutting down the LimeServer. Note also the change in capitalization.
declareLeader()method has been removed as there is no longer the need to declare a leader. All agents should use
getServerID()method is no longer static. Use
- Some PropertyKeys have changed, so calls to
getProperty()should be checked. See
lime.util.Launcherfor the current keys that can be used.