next up previous contents
Next: Channel Up: JavaGroups User's Guide Previous: Contents   Contents


Overview

JavaGroups is toolkit for reliable group communication. Processes can join a group, send messages to all members or single members and receive messages from members in the group. The system keeps track of the members in every group, and notifies group members when a new member joins, or an existing member leaves or crashes. A group is identified by its name. Groups do not have to be created explicitly; when a process joins a non-existing group, that group will be created automatically. Member processes of a group can be located on the same host, within the same LAN, or across a WAN. A member can be part of multiple groups.

The architecture of JavaGroups is shown in fig. 1.1.

Figure 1.1: Architecture of JavaGroups
\begin{figure}\center{\epsfig{file=figs/Architecture.eps,width=.4\textwidth}}
\end{figure}

It consists of 3 parts: (1) the Channel API used by application programmers to build reliable group communication applications, (2) the building blocks, which are layered on top of the channel and provide a higher abstraction level and (3) the protocol stack, which implements the properties specified for a given channel.

This document describes how to install and use JavaGroups, ie. the Channel API and the building blocks. The targeted audience is application programmers who want to use JavaGroups to build reliable distributed programs that need group communication. Programmers who want to implement their own protocols to be used with JavaGroups should consult the Programmer's Guide for more details about the architecture and implementation of JavaGroups.

A channel is connected to a protocol stack. Whenever the application sends a message, the channel passes it on to the protocol stack, which passes it to the topmost protocol. The protocol processes the message and the passes it on to the protocol below it. Thus the message is handed from protocol to protocol until the bottom protocol puts it on the network. The same happens in the reverse direction: the bottom (transport) protocol listens for messages on the network. When a message is received it will be handed up the protocol stack until it reaches the channel. The channel stores the message in a queue until the application consumes it.

When an application connects to the channel, the protocol stack will be started, and when it disconnects the stack will be stopped. When the channel is closed, the stack will be destroyed, releasing its resources.

The following three sections give an overview of channels, building blocks and the protocol stack.



Subsections
next up previous contents
Next: Channel Up: JavaGroups User's Guide Previous: Contents   Contents
Bela Ban 2002-11-16