The jGCS library provides a generic interface for Group Communication. This interface can be used by applications that need primitives from simple IP Multicast group communication to virtual synchrony or atomic broadcast. Its a common interface to several existing toolkits that provide different APIs.
jGCS implements also a new concept of providing a group communication service. Using the notion of inversion of control pattern, this service provides the separation of configuration and use. Provides also modularity, since applications use a common API that can be implemented using different solutions. The solution that will be used by an application is defined on configuration time. A Paper that describes this in detail can be found in the documentation section of this site.
This service supports the following notions:
- Support for data and membership;
- Support for peer groups and multicast groups;
- Usable from IP Multicast to VSC. It can also be usable for autonomous membership services;
- High concurrency/low latency/latency hiding: support for optimistic deliveries and semantic protocols;
- Container-managed concurrency: it is up to the application decide the thread policy to receive messages (blocking or concurrent non-blocking).