Gaggle Components
Data Standards

What's new in the new Gaggle

Behavioral Changes

  • Starting almost any Gaggle-enabled application (or "goose") will now automatically start the Gaggle Boss if it is not already started. The Boss will start up invisibly but you can make it visible by selecting "Boss" in the broadcast target list of any goose and clicking "Show" (or "S"). In the Firegoose this is turned off by default but may be enabled from the Tools/Firegoose menu.
  • Most geese will automatically un-register themselves from the Boss upon shutdown.
  • All geese will be notified immediately whenever there is a change to the list of active geese. This means that the update button is no longer necessary and has been removed.
  • The Boss now checks for geese that have shut down improperly yet still show up in the list of active geese. You can force this check by clicking the "Refresh" button in the boss; it will also occur every time a goose registers or un-registers.
  • It is now easier to disconnect from and reconnect to the Boss from within an goose. This removes the previous necessity to close down geese containing useful data in order to reconnect to the Boss.
  • The R goose now supports the connectToGaggle() and disconnectToGaggle() methods for independently connecting and disconnecting to/from the Boss.

API Changes

  • The kinds of data broadcast between boss and geese have been made into objects. In other words, where previously you would handle a name list as follows:
    void handleNameList (String species, String [] names)
    You now accomplish the same thing in this manner:
    public void handleNameList(String source, Namelist nameList)
    Note that broadcasts now include the name of the goose they originated from. This is useful for geese that want to ignore broadcasts originating from certain sources.
  • All of the Gaggle Data types implement the interface GaggleData which requires them to implement methods for accessing: the species associated with the broadcast; an optional name for the broadcast; and an optional TupleList object containing metadata for the broadcast
  • In the Boss interface, the various overloaded broadcast() methods have been renamed to broadcastNamelist(), broadcastMatrix(), etc.
  • More detailed information about the core interfaces and data types can be found in the Javadoc. The Sample Goose is meant to be an example of how to write a goose using the new API. It is also a useful diagnostic tool.
  • A new method in the Goose interface, update(), is called whenever there is a change to the list of geese. There are new static utility methods to automatically update your UI widgets accordingly.
  • The broadcasting of associative arrays (hash maps) has been replaced by broadcasting TupleLists. A TupleList is a flexible data storage object that can be used as a hash map or a list of lists, or some combination thereof.
  • Each Gaggle data type (and therefore each broadcast) includes an optional TupleList so that metadata can be sent along with the broadcast. It is up to the broadcasting and receiving geese to properly construct and parse the TupleList object.
© 2007, Institute for Systems Biology, All Rights Reserved