Construct a step-by-step guide explaining the operation of the alternative rendezvous-based routing algorithm.
What will be an ideal response?
This algorithm relies on an implementation of two functions, EN(e) and SN(s). SN(s) takes a given subscription, s, and returns one or more rendezvous nodes that take responsibility for that subscription. Each such rendezvous node maintains a subscription list, and forwards all matching events to the set of subscribing nodes. Second, when an event e is published, the function EN(e) also returns one or more rendezvous nodes, this time responsible for matching e against subscriptions in the system. In the description below, we do not look at the implementation of the two functions; we only assume that a correct implementation is provided whereby the intersection of EN(e) and SN(e) is non-empty. Appropriate implementations of the two functions are considered.
The algorithm is quite straightforward given appropriate implementations of the two functions.
On the occurrence of a subscribe event, the associated rendezvous nodes are calculated, using SN(s). If the local node is one of the rendezvous nodes, the subscription is added to the local subscription list for future reference, otherwise it is propagated to other rendezvous nodes.
On the occurrence of a publish event, the associated rendezvous nodes are determined by calling EN(e) on the associated event, e. If the local node is in this set, the subscription list is consulted to determine subscriptions that match. The event is then sent directly to each of these subscribers through notify messages ensuring all subscribers will see this event. If the local node is not a rendezvous node, the publish event is propagated to the nodes contained in EN(e).
Note: there is an error in the first impression of the book in that the last line of the receive implementation should be:
```
else
send publish(e) to rvlist;
rather than
send publish(e) to rvlist - i;
```
This will be fixed in subsequent impressions.
You might also like to view...
Which port would you open in a firewall to enable encrypted terminal sessions?
a- tcp/20 and tcp/21 b- tcp/443 c- tcp/143 d- tcp/22 e- tcp/23
Superscript numbers are used to reference footnotes and endnotes
Indicate whether the statement is true or false