Message based synchronization for mobile business objects
First Claim
Patent Images
1. A method comprising:
- deriving a notification query from a download cursor for a business object based on a request for synchronization by one of a plurality of clients associated with the business object, wherein the clients are configured to asynchronously synchronize with a table;
receiving from the requesting client a pending change from a client device and an original state of data prior to the pending change; and
determining whether the matches corresponding data stored in the table, wherein if the original state of data matches;
generating a cache table for the business object, wherein the download cursor and notification query are run against the cache table,executing the notification query to identify an update subscription,running the download cursor against the update subscription to generate result rows comprising differences that have occurred since the last synchronization, andsending the result rows to a client device in an import message, wherein the client device is associated with the update subscription,and wherein if the original state of data does not match the corresponding data stored in the table;
determining whether a variance between the original state of data and the corresponding data stored in the table is resolvable, wherein;
if the variance is resolvable;
applying the variance to the pending change, andupdating the data stored in the table, including the pending change, andif the variance is unresolvable;
notifying the user of a synchronization failure.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method, and computer program product are provided for executing a notification query derived from a download cursor for a business object to identify an updated subscription. The download cursor is run against the updated subscription to generate result rows. The result rows are sent to a client device in an import message. Additional systems, methods, and computer program products are provided for guaranteeing at-least-once delivery of a message.
82 Citations
14 Claims
-
1. A method comprising:
-
deriving a notification query from a download cursor for a business object based on a request for synchronization by one of a plurality of clients associated with the business object, wherein the clients are configured to asynchronously synchronize with a table; receiving from the requesting client a pending change from a client device and an original state of data prior to the pending change; and determining whether the matches corresponding data stored in the table, wherein if the original state of data matches; generating a cache table for the business object, wherein the download cursor and notification query are run against the cache table, executing the notification query to identify an update subscription, running the download cursor against the update subscription to generate result rows comprising differences that have occurred since the last synchronization, and sending the result rows to a client device in an import message, wherein the client device is associated with the update subscription, and wherein if the original state of data does not match the corresponding data stored in the table; determining whether a variance between the original state of data and the corresponding data stored in the table is resolvable, wherein; if the variance is resolvable; applying the variance to the pending change, and updating the data stored in the table, including the pending change, and if the variance is unresolvable;
notifying the user of a synchronization failure. - View Dependent Claims (2, 3, 4, 5, 12, 13, 14)
-
-
6. A non-transitory computer-readable storage device having computer-executable instructions stored thereon, execution of which by a computing device, causes the computing device to perform operations comprising:
-
deriving a notification query from a download cursor for a business object based on a request for synchronization by one of a plurality of clients associated with the business object, wherein the clients are configured to asynchronously synchronize with a table; receiving from the requesting client a pending change from a client device and an original state of data prior to the pending change; and determining whether the original state of data matches corresponding data stored in the table, wherein if the original state of data matches; generating a cache table for the business object, wherein the download cursor and notification query are run against the cache table, executing the notification query to identify an update subscription, running the download cursor against the update subscription to generate result rows comprising differences that have occurred since the last synchronization, and sending the result rows to a client device in an import message, wherein the client device is associated with the update subscription, and wherein if the original state of data does not match the corresponding data stored in the table; determining whether a variance between the original state of data and the corresponding data stored in the table is resolvable, wherein; if the variance is resolvable; applying the variance to the pending change, and updating the data stored in the table, including the pending change, and if the variance is unresolvable;
notifying the user of a synchronization failure. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system comprising:
-
a memory configured to store modules comprising; a deriving module configured to derive a notification query from a download cursor for a business object based on a request for synchronization by one of a plurality of clients associated with the business object, wherein the clients are configured to asynchronously synchronize with a table, the deriving module configured to receive from the requesting client a pending change from a client device and an original state of data prior to the pending change, the deriving module configured to determine whether the original state of data matches corresponding data stored in the table, wherein if the original state of data matches; one or more processors configured to process modules, processes the following modules; a generating module configured to generate a cache table for the business object, wherein the download cursor and notification query are run against the cache table, an executing module configured to execute the notification query to identify an update subscription, a running module configured to run the download cursor against the update subscription to generate result rows comprising differences that have occurred since the last synchronization, and a sending module configured to send the result rows to a client device in an import message, wherein the client device is associated with the update subscription; and wherein if the original state of data does not match the corresponding data stored in the table, the deriving module is configured to; determine whether a variance between the original state of data and the corresponding data stored in the table is resolvable, wherein; if the variance is resolvable; apply the variance to the pending change, and update the data stored in the table, including the pending change, and if the variance is unresolvable;
notify the user of a synchronization failure.
-
Specification