IP Library Granted Patent US 9,336,291
Granted Patent B2
US 9,336,291 · App. 12/813,104 · Granted May 10, 2016

Message based synchronization for mobile business objects

Inventors: Evan Ireland (Wellington, NZ); David Clegg (Altadena, CA); Michael Ho (Danville, CA); Hemal Pandya (Pune, IN); Guo-ping Zhang (Beijing, CN)
Assignee: SYBASE, INC.
G06F17/30575
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,336,291
App. No.
12/813,104
Granted
May 10, 2016
Kind
B2
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.

Claims (68)

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.

2. The method of claim 1 , further comprising:

updating a last download time for the update subscription.

3. The method of claim 1 , wherein the notification query is configured to determine the update subscription based on identifying subscriptions which reference at least one updated entity.

4. The method of claim 1 , further comprising:

creating a batch message comprising a set of import messages, comprising:

determining whether a buffer has additional room for a next import message from the set of import messages, and adding the next import message to the buffer if additional room exists;

repeating the determining step while additional room exists; and

sending the batch message.

5. The method of claim 1 , further comprising:

sending a synchronization request to the client device.

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.

7. The computer-readable storage device of claim 6 , the operations further comprising:

updating a last download time for the update subscription.

8. The computer-readable storage device of claim 6 , wherein the notification query is configured to determine the update subscription based on identifying subscriptions which reference at least one updated entity.

9. The computer-readable storage device of claim 6 , the operations further comprising:

creating a batch message comprising a set of import messages, comprising:

determining whether a buffer has additional room for a next import message from the set of import messages, and adding the next import message to the buffer if additional room exists;

repeating the determining step while additional room exists; and

sending the batch message.

10. The computer-readable storage device of claim 6 , the operations further comprising:

sending a synchronization request to the client device.

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.

12. The method of claim 1 , wherein the original data stored in the table was previously changed by a client device different from the requesting client, and wherein the change by the client device has been accepted in the table.

13. The method of claim 12 , further comprising:

synchronizing the data in both the client device and requesting client based on the variance.

14. The method of claim 1 , wherein the pending change from the client device comprises a change by the client device prior to a notification to the server of the change by the client device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2010
From: IRELAND, EVAN; CLEGG, DAVID; HO, MICHAEL; PANDYA, HEMAL; ZHANG, GUO-PING
To: SYBASE, INC.
Reel/Frame 024517/0769 →
Continuity (3)
Provisional Application 61290990 · Dec 30, 2009
Provisional Application 61290993 · Dec 30, 2009
Related Publication 20110161349A1 · Jun 30, 2011