Shoal GMS's core client API


Interface Summary
Action Base interface to denote an Action.
ActionFactory Produces Action instances.
AliveAndReadySignal Any signal that results in a change in the AliveAndReady members should implement this interface.
AliveAndReadyView A read-only view consisting of all the AliveAndReady CORE members of a GMS group.
CallBack This is a convenience interface that an Action implementation's parent thread can implement and pass to the Action implementation so that the parent thread is called back for any processing operation.
DistributedStateCache Represents a Caching facility that allows each member of the group to use key-value pairs representing the key to their cachable state and the value being serializable objects representing a state to be cached.
FailureNotificationAction Implementations of this interface consume FailureNotificationSignals which provide specifics associated with a failed member.
FailureNotificationActionFactory Marker interface to provide a specific type of ActionFactory.
FailureNotificationSignal Signal corresponding to FailureNotificationAction.
FailureRecoveryAction Action type corresponding to a recovery oriented action.Implementations consume a FailureRecoverySignal.
FailureRecoveryActionFactory Marker interface to provide a specific type of ActionFactory.
FailureRecoverySignal Specific to recovery related signal.
FailureSuspectedAction An Action type that consumes FailureSuspectedSignal.
FailureSuspectedActionFactory Marker interface to provide a specific type of Action standing for creation of FailureSuspicionAction instances.
FailureSuspectedSignal Provides notification of a member's suspected (unconfirmed) failure.
GroupHandle Provides a handle to the interact with the membership group.
GroupLeadershipNotificationAction An Action type that consumes GroupLeadershipNotificationSignal.
GroupLeadershipNotificationActionFactory Marker interface to provide a specific type of ActionFactory namely GroupLeadershipNotificationActionFactory.
GroupLeadershipNotificationSignal Signal corresponding to GroupLeadershipNotificationAction.
GroupManagementService Provides API for joining, and leaving the group and to register Action Factories of specific types for specific Group Event Signals.
GroupStartupNotificationSignal Represents Signal state corresponding to whether a signal is part of an entire group startup or the start of an individual member of the group.
JoinedAndReadyNotificationAction An Action type that consumes JoinedAndReadyNotificationSignal.
JoinedAndReadyNotificationActionFactory Marker interface to provide a specific type of ActionFactory namely JoinedAndReadyNotificationActionFactory.
JoinedAndReadyNotificationSignal Signal corresponding to JoinedAndReadyNotificationAction.
JoinNotificationAction An Action type that consumes JoinNotificationSignal.
JoinNotificationActionFactory Marker interface to provide a specific type of ActionFactory namely JoinNotificationActionFactory.
JoinNotificationSignal Signal corresponding to JoinNotificationAction.
MessageAction An Action type that consumes MessageSignal.
MessageActionFactory Marker interface to provide a specific type of ActionFactory namely MessageActionFactory.
MessageSignal A Signal type that enables consumers to acquire the MessageSignal, get the message( i.e payload), perform appropriate operations and then release the signal to the signal pool.
PlannedShutdownAction Implementations of this interface consume a PlannedShutdownNotificationSignal which provides specifics associated with a member that has announced its planned departure from the group.
PlannedShutdownActionFactory Marker interface to provide a specific type of ActionFactory This factory's implementation provides a API to produce a PlannedShutdownAction
PlannedShutdownSignal Signal corresponding to PlannedShutdownAction.
RejoinSubevent Representation of a missed FAILURE notification when restarting an instance.
Signal A Signal denotes a group event or a message event.

Class Summary
GMSCacheable Support class for DistributedStateCacheImpl.
GMSConstants Herein we specify client facing constants that may be applicable to specific GMS notifications, api calls or key descriptions.
GMSFactory This is the entry point to GMS for the parent application that is initiating GMS module and by client components in the parent app that need to interact with GMS for group events or send or receive messages.
GMSMember Encapsulates the member token and the member type in a serializable

Enum Summary
GroupManagementService.MemberType Members joining the group should be one of the following types.
GroupManagementService.RECOVERY_STATE These are possible recovery states used by GMS's recovery selection and failure fencing functions
ServiceProviderConfigurationKeys Provides the keys that correspond to properties within group communication providers that can be configured.

Exception Summary
ActionException This exception is a general exception thrown by the consumeSignal method of concrete Action implementations.
GMSException An exception class that captures exception conditions occuring while startup or shutdown of the GMS layer.
GMSNotInitializedException An exception class that captures exception conditions occuring while startup or shutdown of the GMS layer.
MemberNotInViewException Created by IntelliJ IDEA.
SignalAcquireException Raises exceptions occuring while acquiring signals.
SignalReleaseException Raises exceptions occuring while releasing signals.

Package Description

Shoal GMS's core client API

Shoal's client API is provided in this package. The entry point for clients using GMS is the GMSFactory class. This class provides the APIs for getting a GroupManagementService instance for a given member name, group name, member type and configuration. The GroupManagementService instance provides methods for registering interest in specific group events.

To process group events on the client side, Shoal makes it easy for clients by providing a single interface that needs to be implemented, namely, the CallBack interface. This interface provides a method processNotification() that accepts a Signal object. Signals are of various types - each type corresponding to a specific group event. Clients register interest in these events by using addActionFactory() methods provided in GroupManagementService. The clients pass in an instance of a specific ActionFactory type to the method.

The ActionFactory is a client side artifact with its sub-types corresponding to a specific group event. One can think of the ActionFactory-Action-Signal triplet as a set of one-to-one correspondence objects for a specific type of group event. Clients can choose to implement a specific ActionFactory and Action type or use the reference implementations provided in the package.

For instance, clients simply implement the CallBack interface and register for group events using the default implementation of the, say, FailureNotificationActionFactory to receive notifications for failure events in the group.

Copyright 2011 Oracle, Inc. All rights reserved. Use is subject to license terms.