3.1.5.4 NetMeeting Object Manager Late Joiner Protocol
The NetMeeting Object Manager implements the late joiner protocol to bring a late-joining instance up to date with the current contents of the workset group. When a NetMeeting client registers with a workset group that exists in a domain, the client is treated as a late joiner for the workset group.
The late joiner instance sends a message to the domain to announce its arrival, and receives one or more replies from the current domain instances. Next, the late joiner instance selects the first responding instance as its helper. The helper instance polls the other domain instances, assembles a current copy of the workset, and sends it to the late joiner.
The late joiner object manager instance:
Sends an OMNET_WORKSET_NEW message indicating that a new late joiner is attempting to join the workset group. It sets the "sender" value to 0 indicating the beginning of a "join" operation.
Requests to join the workset group channel by broadcasting the OMNET_HELLO message and waiting for replies.
Waits for one or more current instances to respond with an OMNET_WELCOME message.
Selects the first responding instance as its helper, and sends a high priority OMNET_WSGROUP_SEND_REQ message to the helper on its user ID channel.
Examines the Object Manager workset group and determines the workset group MCS channel ID and the MCS user ID of an instance from which to request a workset group copy.
Unlocks the Object Manager workset group by broadcasting an OMNET_UNLOCK message at low priority on the Object Manager control channel.
The helper object manager instance:
Receives the OMNET_WSGROUP_SEND_REQ message.
Marks its copy of the workset group as not discardable.
Examines the workset and determines the MCS user IDs of the object manager instances that already have copies of the workset group.
The helper then broadcasts an OMNET_LOCK_REQ to the workset group, ensuring that all other object manager instances in the domain keep their local workset group copies.
Sends the first workset in the workset group using OMNET_WORKSET_CATCHUP, OMNET_WSGROUP_SEND_MIDWAY, and OMNET_WSGROUP_SEND_COMPLETE.
For each additional workset in the workset group, sends one OMNET_WORKSET_NEW message to the late joiner on its single-node channel.
For each object in each workset within the workset group, sends one OMNET_OBJECT_ADD message to the late joiner on its single node channel.
Sends an OMNET_WSGROUP_SEND_COMPLETE message to advise the late joiner that it has caught up with the state of the workset group as of the initial join time.