Apache Tribes - The Tomcat Cluster Communication Module

### QuickStart

                //create a channel
                Channel myChannel = new GroupChannel();

                //create my listeners
                MyMessageListener msgListener = new MyMessageListener();
                MyMemberListener mbrListener = new MyMemberListener();

                //attach the listeners to the channel
                myChannel.addMembershipListener(mbrListener);
                myChannel.addChannelListener(msgListener);

                //start the channel
                myChannel.start(Channel.DEFAULT);

                //create a message to be sent, message must implement java.io.Serializable
                //for performance reasons you probably want them to implement java.io.Externalizable
                Serializable myMsg = new MyMessage();

                //retrieve my current members
                Member[] group = myChannel.getMembers();

                //send the message
                channel.send(group,myMsg,Channel.SEND_OPTIONS_DEFAULT);

### Interfaces for the Application Developer

1. `org.apache.catalina.tribes.Channel` Main component to interact with to send messages
2. `org.apache.catalina.tribes.MembershipListener` Listen to membership changes
3. `org.apache.catalina.tribes.ChannelListener` Listen to data messages
4. `org.apache.catalina.tribes.Member` Identifies a node, implementation specific, default is org.apache.catalina.tribes.membership.MemberImpl

### Interfaces for the Tribes Component Developer

1. `org.apache.catalina.tribes.Channel` Main component to that the application interacts with
2. `org.apache.catalina.tribes.ChannelReceiver` IO Component to receive messages over some network transport
3. `org.apache.catalina.tribes.ChannelSender` IO Component to send messages over some network transport
4. `org.apache.catalina.tribes.MembershipService` IO Component that handles membership discovery and
5. `org.apache.catalina.tribes.ChannelInterceptor` interceptors between the Channel and the IO layer
6. `org.apache.catalina.tribes.ChannelMessage` The message that is sent through the interceptor stack down to the IO layer
7. `org.apache.catalina.tribes.Member` Identifies a node, implementation specific to the underlying IO logic