[Next] [Up] [Previous] [Contents]
Next: 2.2 Yoid Tree and Up: 2 Yoid Architecture Previous: 2 Yoid Architecture

2.1 Major Components

 

Each distribution group is comprised of two components:

  1. One or more rendezvous hosts
  2. group member hosts

Each group has a globally unique identifier (the group ID) consisting of the following three components:

  1. Rendezvous Host Domain Name
  2. Rendezvous Host UDP Port (optional)
  3. Group Name
The group ID can be encoded as a URL and has the same syntax restrictions as a URL:
yoid://rendezvous.name:port/groupName

The group ID has this form for two primary reasons. First, it allows any host with its own domain name to independently create (globally unique) identifiers for any number of trees. In other words, identifier creation is simple and scalable. Second, it allows discovery of the rendezvous host(s).

The primary purpose of the rendezvous host (or just rendezvous) is to bootstrap group members (or just members) into the tree and mesh topologies (or just tree-mesh, when referring to both topologies together). The rendezvous does this by simply informing each (new) member of several current members, and optionally various other information about the tree (a signature for the application content, the appropriate buffer size, min and max throughputs, etc.). (The term ``content'' is used to refer to data distributed by the application using the yoid group.) Once this is done, the new member joins the tree-mesh by talking only with current members--one or more of those that it learned from the rendezvous, and others that it in turn learned from those members.

This initial joining is the only time a member must talk with the rendezvous. It may, however, talk to the rendezvous in several other cases:

Every attempt is made to keep the rendezvous' activity to a minimum. The rendezvous is not attached to the tree-mesh per se (it does not receive or transmit distributed content). Almost everything needed to maintain the tree-mesh is done via members talking directly to each other. If every rendezvous is disabled (crashes or loses connectivity), the tree-mesh continues to function. New members, however, will not be able to discover members and therefore will not be able to join the group.

Because every member must first go through a rendezvous to learn of other members, the rendezvous is an appropriate place to put other important functions related to the group. Foremost among these is security. The rendezvous can convey signatures about the content being sent over the tree-mesh, can apply access control to the member, can convey authentication information and credentials for joining the group, and so on. (Understanding of course that once a rogue host does join a group, for instance because it somehow got the right credentials, there is nothing the rendezvous or other members per se can do to prevent it from passing content on to any host.) The rendezvous may also be a convenient place for accounting, billing, and so on.


[Next] [Up] [Previous] [Contents]
Next: 2.2 Yoid Tree and Up: 2 Yoid Architecture Previous: 2 Yoid Architecture

Paul Francis
Fri Oct 1 11:06:22 JST 1999