Sending inter-server notifications using an out-of-band communications protocol
AssigneeMicrosoft Corporation
InventorsDeepak P. Rao, Shaun D. Cox
Life of this patent
Estimating the term…
Abstract
A method and system for sending notifications from servers of a server pool to clients is provided. The notification system determines when an in-band notification is to be sent to clients. The notification system identifies a distinguished server for each client that is to send the in-band notification to that client. The notification system then sends an out-of-band notification to the distinguished server of each client indicating that an in-band notification is to be sent to the client. When the distinguished server receives the out-of-band notification, the distinguished server then sends an in-band notification to the client.
Claims15
A method in a server pool of servers for sending notifications of presence information to subscribers of presence information of publishers, each server of the server pool for accessing presence-related information via a back-end database server, the back-end database server storing presence information of publishers and subscription information of subscribers, the publishers and subscribers being clients of presence information, the method comprising:
- for each client,
- receiving at a load balancer for the server pool a logon request from the client;
- and
- upon receiving the logon request from the client,
- selecting at the load balancer a server of the server pool to be assigned as being a distinguished server for the client based on number of clients assigned to each server;
- and
- storing by the load balancer at the back-end database server an indication that the selected server has been assigned to be the distinguished server of the client;
- receiving at the load balancer an update to presence information of a publisher;
- after receiving the update,
- determining at the load balancer the distinguished server of the publisher;
- and
- sending from the load balancer to the distinguished server of the publisher an indication of the updated presence information of the publisher;
- storing at the back-end database server by the distinguished server of the publisher updated presence information of the publisher;
- determining by the distinguished server of the publisher that an in-band notification is to be sent to subscribers to the presence information of the publisher by retrieving from the back-end database server an indication of subscribers to the presence information of the publisher;
- identifying by the distinguished server of the publisher a distinguished server for each subscriber to the presence information of the publisher by retrieving from the back-end database server an indication of the distinguished server of each subscriber;
- sending from the distinguished server of the publisher an out-of-band notification to each distinguished server of each subscriber, the out-of-band notification indicating that the distinguished server is to send an in-band notification to the subscriber whose distinguished server is that distinguished server, the in-band notification indicating the updated presence information of the publisher so that the distinguished server of a subscriber can send to the subscriber a notification of the updated presence information;
- and
- under control of each distinguished server of each subscriber,
- retrieving from the back-end database server, undated presence information of the publisher;
- and
- sending the retrieved undated presence information to the subscriber.
A server pool of servers for sending notifications of presence information to subscribers of presence information of publishers, each server of the server pool for accessing presence-related information via a back-end database server, the back-end database server storing presence information of publishers and subscription information of subscribers, the publishers and subscribers being clients of presence information, comprising:
- a load balancer that,
- for each client,
- receives for the server pool a logon request from the client;
- and
- upon receiving the logon request from the client,
- selects a server of the server pool to be assigned as being a distinguished server for the client based on number of clients assigned to each server;
- and
- stores at the back-end database server an indication that the selected server has been assigned to be the distinguished server of the client;
- receives an update to presence information of a publisher;
- and
- after receiving the update,
- determines the distinguished server of the publisher;
- and
- sends to the distinguished server of the publisher an indication of the updated presence information of the publisher;
- and
- a plurality of servers that
- when a server is a distinguished server of a publisher,
- receives from the load balancer an indication of updated presence information of the publisher;
- stores at the back-end database server updated presence information of the publisher;
- determines that an in-band notification is to be sent to subscribers to the presence information of the publisher by retrieving from the back-end database server an indication of subscribers to the presence information of the publisher;
- identifies a distinguished server for each subscriber to the presence information of the publisher by retrieving from the back-end database server an indication of the distinguished server of each subscriber;
- and
- sends an out-of-band notification to each distinguished server of each subscriber, the out-of-band notification indicating that the distinguished server is to send an in-band notification to the subscriber whose distinguished server is that distinguished server, the in-band notification indicating the updated presence information of the publisher so that the distinguished server of a subscriber can send to the subscriber a notification of the updated presence information;
- and
- when the server is the distinguished server a subscriber of a publisher,
- receives from the distinguished server of the publisher an out-of-band notification;
- retrieves from the back-end database server, updated presence information of the publisher;
- and
- sends the retrieved updated presence information to the subscriber.
One or more computer-readable storage media storing computer-executable instructions for controlling a server pool of servers to send notifications of presence information to subscribers of presence information of publishers, each server of the server pool for accessing presence-related information via a back-end database server, the back-end database server storing presence information of publishers and subscription information of subscribers, the publishers and subscribers being clients of presence information, by a method comprising:
- for each client,
- receiving at a load balancer for the server pool a logon request from the client;
- and
- upon receiving the logon request from the client,
- selecting at the load balancer a server of the server pool to be assigned as being a distinguished server for the client based on number of clients assigned to each server;
- and
- storing by the load balancer at the back-end database server an indication that the selected server has been assigned to be the distinguished server of the client;
- receiving at the load balancer an update to presence information of a publisher;
- after receiving the update,
- determining at the load balancer the distinguished server of the publisher;
- and
- sending from the load balancer to the distinguished server of the publisher an indication of the updated presence information of the publisher;
- storing at the back-end database server by the distinguished server of the publisher updated presence information of the publisher;
- determining by the distinguished server of the publisher that an in-band notification is to be sent to subscribers to the presence information of the publisher by retrieving from the back-end database server an indication of subscribers to the presence information of the publisher;
- identifying by the distinguished server of the publisher a distinguished server for each subscriber to the presence information of the publisher by retrieving from the back-end database server an indication of the distinguished server of each subscriber;
- sending from the distinguished server of the publisher an out-of-band notification to each distinguished server of each subscriber, the out-of-band notification indicating that the distinguished server is to send an in-band notification to the subscriber whose distinguished server is that distinguished server, the in-band notification indicating the updated presence information of the publisher so that the distinguished server of a subscriber can send to the subscriber a notification of the updated presence information;
- and
- under control of each distinguished server of each subscriber,
- retrieving from the back-end database server, updated presence information of the publisher;
- and
- sending the retrieved updated presence information to the subscriber.
Dependencies are inferred from the claim text.