IP Library Granted Patent US 8,321,392
Granted Patent B2
US 8,321,392 · App. 12/797,975 · Granted Nov 27, 2012

Pending state management for mobile business objects

Assignee: Sybase, Inc.
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 8,321,392
App. No.
12/797,975
Granted
Nov 27, 2012
Kind
B2
Abstract

A system, method, and computer program product are provided for invoking an operation to change a current data row of a table in a local database. As a result, a pending change data row is inserted in the table, distinguished by a primary key comprising a common key value and a pending change indicator. The pending change is then submitted for synchronization.

Claims (80)

1. A method comprising:

invoking an operation to change a current data row from a table in a local database;

inserting a pending change data row in the table, the pending change data row comprising a changed attribute, wherein the pending change data row and current data row are distinguished by a primary key comprising a key value which is common to the pending change data row and the current data row and a pending change indicator; and

submitting data from the pending change data row.

2. The method of claim 1 , wherein data from the table corresponds to a business object.

3. The method of claim 1 , wherein the operation is a create operation, the method further comprising:

determining whether a corresponding pending change data row already exists, and, if so, updating the pending change data row using data from the create operation; and

identifying the pending change data row as a create operation.

4. The method of claim 1 , wherein the operation is an update operation, the method further comprising:

inserting a copy of data from the current data row into an original state table; and

identifying the pending change data row as an update operation.

5. The method of claim 1 , wherein the operation is a delete operation, the method further comprising:

inserting a copy of data from the current data row into an original state table; and

identifying the pending change data row as an update operation.

6. The method of claim 1 , further comprising:

inserting a copy of data from the current data row into an original state table if the operation is an update or delete operation; and

setting a replay counter within the pending change data row to a unique identifier.

7. The method of claim 6 , further comprising:

receiving notification of a replay operation; and

determining whether the replay operation was successful.

8. The method of claim 7 , wherein the replay operation was successful, the method further comprising:

deleting the pending change data row corresponding to the replay operation based on correlation between a message identifier and the replay counter; and

deleting a corresponding original state from the original state table if created.

9. The method of claim 7 , wherein the replay operation was unsuccessful, the method further comprising:

updating the pending change data row with a message identifier to indicate failure.

10. The method of claim 6 , wherein submitting data from the pending change data row comprises:

specifying a client identifier corresponding to the local database;

specifying a message identifier corresponding to the replay counter; and

sending a message based synchronization request to a synchronization server, the request comprising the client identifier and the message identifier.

11. The method of claim 1 , further comprising:

rewriting an existing named query to prevent returning both the pending change data row and the current data row in a result.

12. The method of claim 11 , wherein rewriting the existing named query further comprises:

modifying the existing named query to return pending changes including the pending change data row where pending changes exist, or current data where pending changes do not exist.

13. The method of claim 1 , further comprising:

generating a dynamic query to prevent returning both the pending change data row and the current data row in a result.

14. The method of claim 13 , wherein generating the dynamic query further comprises:

designing the dynamic query to return pending changes including the pending change data row where pending changes exist, or current data where pending changes do not exist.

15. A computer-readable medium having computer-executable instructions stored thereon that, if executed by a computing device, cause the computing device to perform a method comprising:

invoking an operation to change a current data row from a table in a local database;

inserting a pending change data row in the table, the pending change data row comprising a changed attribute, wherein the pending change data row and current data row are distinguished by a primary key comprising a key value which is common to the pending change data row and the current data row and a pending change indicator; and

submitting data from the pending change data row.

16. The computer-readable medium of claim 15 , wherein data from the table corresponds to a business object.

17. The computer-readable medium of claim 15 , wherein the operation is a create operation, the method further comprising:

determining whether a corresponding pending change data row already exists, and, if so, updating the pending change data row using data from the create operation; and

identifying the pending change data row as a create operation.

18. The computer-readable medium of claim 15 , wherein the operation is an update operation, the method further comprising:

inserting a copy of data from the current data row into an original state table; and

identifying the pending change data row as an update operation.

19. The computer-readable medium of claim 15 , wherein the operation is a delete operation, the method further comprising:

inserting a copy of data from the current data row into an original state table; and

identifying the pending change data row as an update operation.

20. The computer-readable medium of claim 15 , the method further comprising:

inserting a copy of data from the current data row into an original state table if the operation is an update or delete operation; and

setting a replay counter within the pending change data row to a unique identifier.

21. The computer-readable medium of claim 20 , the method further comprising:

receiving notification of a replay operation; and

determining whether the replay operation was successful.

22. The computer-readable medium of claim 21 , wherein the replay operation was successful, the method further comprising:

deleting the pending change data row corresponding to the replay operation based on correlation between a message identifier and the replay counter; and

deleting a corresponding original state from the original state table if created.

23. The computer-readable medium of claim 21 , wherein the replay operation was unsuccessful, the method further comprising:

updating the pending change data row with a message identifier to indicate failure.

24. The computer-readable medium of claim 20 , wherein submitting data from the pending change data row comprises:

specifying a client identifier corresponding to the local database;

specifying a message identifier corresponding to the replay counter; and

sending a message based synchronization request to a synchronization server, the request comprising the client identifier and the message identifier.

25. The computer-readable medium of claim 15 , the method further comprising:

rewriting an existing named query to prevent returning both the pending change data row and the current data row in a result.

26. The computer-readable medium of claim 25 , wherein rewriting the existing named query further comprises:

modifying the existing named query to return pending changes including the pending change data row where pending changes exist, or current data where pending changes do not exist.

27. The computer-readable medium of claim 15 , the method further comprising:

generating a dynamic query to prevent returning both the pending change data row and the current data row in a result.

28. The computer-readable medium of claim 27 , wherein generating the dynamic query further comprises:

designing the dynamic query to return pending changes including the pending change data row where pending changes exist, or current data where pending changes do not exist.

29. A system comprising:

a memory configured to store modules comprising:

an invoking module configured to invoke an operation to change a current data row from a table in a local database,

an inserting module configured to insert a pending change data row in the table, the pending change data row comprising a changed attribute, wherein the pending change data row and current data row are distinguished by a primary key comprising a key value which is common to the pending change data row and the current data row and a pending change indicator, and

a submitting module configured to submit data from the pending change data row; and

one or more processors configured to process the modules.

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/0371 →
Continuity (2)
Provisional Application 61290993 · Dec 30, 2009
Related Publication 20110161339A1 · Jun 30, 2011