Shoal is an open-source Java clustering framework that can be used to make an application server, such as GlassFish, highly scalable and reliable. The project released the 1.0 early access version of its code.
Shoal, part of the open-source GlassFish project family on java.net, announced a 1.0 early access release of its pluggable clustering framework. According to Shoal Project lead Shreedhar Ganapathy, since the project's initial alpha release last November, the Shoal project has been focused on fine-tuning its technology to allow clustering of GlassFish app server instances:
[We] have been concentrating on improving and addressing GlassFish high availability features and associated bugs. In the process, Shoal's Group Management Service benefited from intensive QE cycles on 8-node GlassFish clusters under scores of scenarios and test cases. We have been focused on fixing bugs, improving performance, and progressively gating changes in Shoal to manage risks for the upcoming GlassFish v2 FCS release...
At the moment, Shoal is in good shape and we decided to release the Shoal 1.0 Early Access version... This will be followed by the 1.0 Final release before the GlassFish v2 release once we know that we have delivered the final acceptable bits for that product.
Shoal consists of a pluggable group communication provider API and a client API. The pluggable architecture allows a user to configure any supported group communication mechanism, such as JGroups or JXTA. The client API, by contrast, specifies how individual cluster nodes receive notifications of events occurring on the cluster, such as the joining of new cluster members or the removal of existing nodes. The client API also provides a high-level mechanism for a cluster node to communicate with any other node via messages.
The advantage of this general-purpose architecture, according to the project's documentation, is that:
The framework can be plugged into any product needing clustering and related distributed systems capabilities without tightly binding to a specific communications infrastructure... The framework can be plugged in as an in-process component.
What do you think of Shoal's general-purpose approach to clustering?