GossipLib

The quickest way to develop and test Java-based Gossip Applications

GossipLib is a Java library supporting the development of gossip-based application in a large-scale setting.

Initially introduced as a family of algorithms for maintaining replicated database systems, gossip-based protocols have been applied in a wide range of situations such as data dissemination, overlay maintenance, and, more recently, also in peer-to-peer streaming applications.  In a gossip, each node periodically exchanges messages with randomly selected nodes in order to disseminate data, exchange membership information, or build distributed state.

The structure of a gossip-based application essentially consists of two blocks of code: the Active Cycle and the Passive Cycle. The former is executed periodically with a specified gossip frequency. The latter is instead executed reactively upon the receipt of a gossip message. During each active cycle, a node selects one or more other nodes to communicate with and send them a message representing a snapshot or part of its own state. The nodes receiving the message execute their passive cycle which uses the information in the message to modify their own state accordingly. This kind of interaction is  present in all types of gossip protocol and goes under the name of Push phase. In addition to this, some gossip protocol also incorporate a pull-phase. In such protocol, the passive cycle does not only modify the state of the node, but also sends a reply message back to the sender. This pull-gossip also contains information extracted from the state of the sending node. However, the structures of the two messages may be completely different. In principle the process may be iterated an arbitrary number of times, even though, two phases are most common and in practice protocols normally do not include more than three phases of consecutive information exchange between a given pair of nodes.

GossipLib provides application developer with a set of support classes that constitute a solid starting point for building any gossip-based application. GossipLib is designed to facilitate code reuse and testing of distributed application and as thus also provides the implementation of a number of standard gossip protocols that may be used out of the box or extended to build more complex protocols and applications. These include for example the peer-sampling protocols for overlay management.

GossipLib also provides facility for the configuration and deployment of applications as final-product but also as research prototype in environments like PlanetLab, clusters, network emulators, and even as event-based simulation. Based on the GenericRuntime library, the code developed with GossipLib can be run both as a real application and in simulation simply by changing one line in a configuration file.


The current version of GossipLib provides the implementation of a peer-sampling protocol, as well as a demo application enabling the visualization of the execution of the protocols. The architecture of GossipLib is designed to facilitate code-reuse. Each gossip-based component may be used as a building block to develop new and more complex protocols and applicaitions.
Resources
  • Source code: gossiplib-0.7alpha-src.tar.gz
  • Precompiled jar: soon available
  • Javadoc: gossiplib-0.7alpha-doc.tar.gz
  • Javadoc: online version
Project Summary
Tracker Tracker

 - Bugs ( 0 ouvert(s) / 0total )
Bug Tracking System

 - Support ( 0 ouvert(s) / 0total )
Tech Support Tracking System

 - Patches ( 0 ouvert(s) / 0total )
Patch Tracking System

 - Feature Requests ( 0 ouvert(s) / 0total )
Feature Request Tracking System


Forums Forums ( 2 messages in 2 forums )
Docs Doc Manager
Mail Lists Mailing Lists ( 0 public lists )
Tasks Task Manager
  - To Do
  - Next Release
SCM SCM Tree ( 381 commits, 733 adds )
FTP Released Files
Powered By GForge Collaborative Development Environment