Continuous replication for session initiation protocol based communication systems
First Claim
Patent Images
1. A method executed on a computing device for providing continuous replication of routing rules, the method comprising:
- detecting an agreement between a processor of a presence server and a processor of a registrar server on a common protocol designed to minimize data transfer;
upon detecting a user log-in at the processor of the registrar server, providing the processor of the presence server with a version of a current routing rules replica stored at data storage of the registrar server;
receiving a list of routing rules and current versions of the routing rules from the processor of the presence server, wherein the list of routing rules and current versions of the routing rules are comprised of batches;
determining out-of-date routing rules at the processor of the registrar server;
requesting updates for the out-of date routing rules from the processor of the presence server;
wherein the request includes a registrar cluster identification, a batch identifier, and a batch version, each batch version including a major version and a minor version;
employing a major/minor versioning scheme to compute batch deltas in order to provide update information, wherein;
in response to determination that a major version for a batch matches a major version of a batch received from a processor of the registrar server, modified resources are determined in each batch based on a comparison of minor versions of received and stored batches at a processor of the presence server to compute the batch deltas; and
in response to determination that the major version for a batch does not match the major version of a batch received from the processor of the registrar server, a list of users associated with the batch is obtained, and information is sent back for each user in the list that is assigned to the processor of the registrar server;
receiving the update information associated with the out-of-date routing rules at the processor of the registrar server; and
updating the routing rules stored at the processor of the registrar server and versions of the updated routing rules.
3 Assignments
0 Petitions
Accused Products
Abstract
User defined routing rules are managed within a primary/backup architecture through continuous replication between home servers and their corresponding presence servers in an automatic manner. User set-up rules are stored and published by a designated presence server to home servers on which the user can register including the user'"'"'s home registrar and any backup registrars. Changes to the rules may be disseminated and synchronized through comparison of versions and exchange of batches between the presence server and registrars.
51 Citations
19 Claims
-
1. A method executed on a computing device for providing continuous replication of routing rules, the method comprising:
-
detecting an agreement between a processor of a presence server and a processor of a registrar server on a common protocol designed to minimize data transfer; upon detecting a user log-in at the processor of the registrar server, providing the processor of the presence server with a version of a current routing rules replica stored at data storage of the registrar server; receiving a list of routing rules and current versions of the routing rules from the processor of the presence server, wherein the list of routing rules and current versions of the routing rules are comprised of batches; determining out-of-date routing rules at the processor of the registrar server; requesting updates for the out-of date routing rules from the processor of the presence server;
wherein the request includes a registrar cluster identification, a batch identifier, and a batch version, each batch version including a major version and a minor version;employing a major/minor versioning scheme to compute batch deltas in order to provide update information, wherein; in response to determination that a major version for a batch matches a major version of a batch received from a processor of the registrar server, modified resources are determined in each batch based on a comparison of minor versions of received and stored batches at a processor of the presence server to compute the batch deltas; and in response to determination that the major version for a batch does not match the major version of a batch received from the processor of the registrar server, a list of users associated with the batch is obtained, and information is sent back for each user in the list that is assigned to the processor of the registrar server; receiving the update information associated with the out-of-date routing rules at the processor of the registrar server; and updating the routing rules stored at the processor of the registrar server and versions of the updated routing rules. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device for providing continuous replication of routing rules, the computing device comprising:
-
a processing unit; a memory; and the processing unit coupled to the memory, the processing unit executing a communication application, wherein the communication application is configured to; detect an agreement between a presence server and a registrar server on a common protocol designed to minimize data transfer; upon detecting a user log-in, notify the presence server with a version of a current routing rules replica stored at the registrar server using the protocol to reduce the data transfer between the presence server after an initial notification; determine out-of-date routing rules based on a comparison of versions of a list of routing rules received from a presence cluster assigned to a registrar cluster, wherein the versions of the list of routing rules comprise versioned batches that are compared to exchange update information about the out-of-date routing rules; request updates for the out-of date routing rules from the presence cluster, wherein the request includes a registrar cluster identification, a batch identifier, and a batch version, each batch version including a major version and a minor version; employ a major/minor versioning scheme at the presence cluster to compute batch deltas, wherein; in response to determination that a major version for a batch matches a major version of a batch received from a processor of the registrar server, modified resources are determined in each batch based on a comparison of minor versions of received and stored batches at a processor of the presence server to compute the batch deltas; and in response to determination that the major version for a batch does not match the major version of a batch received from the processor of the registrar server, obtain a list of users associated with the batch, and send back the information for each user in the list that is assigned to the processor of the registrar server; provide the batch deltas to the registrar cluster; update the routing rules stored at the registrar cluster and versions of the updated routing rules based on the batch deltas received from the presence cluster; and in response to the notification from the registrar cluster, send a current replica version and a current list of routing rules to the registrar cluster; determine update information for each out-of-date routing rule based on the update requests from the registrar cluster; provide the update information to the registrar cluster; and update the current replica version. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer-readable memory device with instructions stored thereon for providing continuous replication of routing rules, the instructions comprising:
-
detecting an agreement between processors of a presence cluster and processors a registrar cluster on a common protocol designed to minimize data transfer; periodically querying the processors of the presence cluster for changes to a routing payload comprising at least one from a set of;
routing rules, a privacy relationship setting, and a hierarchical relationship setting associated with users assigned to the processors of the registrar cluster;upon detecting a user log-in at the registrar cluster, notifying the processors of the presence cluster with a version of a current routing rules replica stored at the processors of the registrar cluster; receiving a list of the routing rules and current versions of the routing rules from the processors of the presence cluster; determining out-of-date routing rules by comparing the received versions to versions of the routing rules cached at the processors of the registrar cluster, wherein versions of the routing rules are comprised of versioned batches; requesting individual updates for the out-of date routing rules from the processors of the presence cluster, wherein the request includes a registrar cluster identification, a batch identifier, and a batch version, each batch version including a major version and a minor version; employing a major/minor versioning scheme at the processors of the presence cluster to compute batch deltas, wherein; in response to determination that a major version for a batch matches a major version of a batch received from a processor of the registrar cluster, modified resources are determined in each batch based on a comparison of minor versions of received and stored batches at a processor of the presence cluster to compute the batch deltas; and in response to determination that the major version for a batch does not match the major version of a batch received from the processor of the cluster, obtain a list of users associated with the batch, and send back information for each user in the list that is assigned to the processor of the registrar cluster; receiving update information associated with the out-of-date routing rules at the processors of the registrar cluster from the batch deltas provided by the processors of the presence cluster; updating the routing rules and versions of the routing rules cached at the processors of the registrar cluster; and updating the version of the current routing rules replica at the processors of the registrar cluster. - View Dependent Claims (17, 18, 19)
-
Specification