IP Library Granted Patent US 9,509,769
Granted Patent B2
US 9,509,769 · App. 14/193,605 · Granted Nov 29, 2016

Reflecting data modification requests in an offline environment

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,509,769
App. No.
14/193,605
Granted
Nov 29, 2016
Kind
B2
Abstract

A method for processing data requests may include storing data on a client device received from a data provider maintaining the data. A request may be received to modify the data maintained by the data provider. After connectivity to the data provider is available, the request may be sent to the data provider. After connectivity is not available the request may be processed based on the data stored on the client device and the modified data may be stored on the client device.

Claims (60)

1. A method for processing data requests, the method being implemented by one or more hardware data processors forming part of at least one computing device, the method comprising:

storing, by at least one hardware at least one processor, data on a client device received from a data provider maintaining the data;

processing, by at least one hardware at least one processor, at least one request to modify the data maintained by the data provider, wherein processing the at least one request further comprises:

determining whether the client device has connectivity to the data provider;

in the event the client device has connectivity to the data provider, sending the request(s) to the data provider; and

in the event the client device does not have connectivity to the data provider, processing the request(s) based on the data stored on the client device, storing the request(s) in a request queue, storing the modified data on the client device, and upon establishing connectivity, updating the data provider with the changes made to the data while the client device did not have connectivity by sending the request(s) stored in the request queue to the data provider;

wherein:

a current refresh index is maintained that is incremented each time data is synchronized on the client device with the data maintained by the data provider;

a value of the current refresh index is set to a refresh index of the entities stored on the client device when the entities are synchronized with the data provider;

a value of an incremented current refresh index is set to a refresh index of the request(s) in the request queue when such request(s) are accepted by the data provider; and

the request(s) is deleted upon processing by the data provider.

2. The method of claim 1 , wherein the requests are Open Data Protocol (OData) requests.

3. The method of claim 1 , wherein the modified data is stored on the client device without modifying the stored data received from the data provider.

4. The method of claim 3 , wherein when the modified data is stored on the client device the modified data is made active such that subsequent requests for the same data will expose the modified data.

5. The method of claim 4 , wherein the stored data received from the data provider that corresponds to the modified data is made inactive when the modified data is stored on the client device.

6. The method of claim 1 , further comprising receiving updated data from the data provider and replacing the stored data on the client device with the updated data.

7. The method of claim 6 , further comprising, when updated data is stored on the client device, deleting the modified data stored on the client device that corresponds to the updated data received from the data provider.

8. The method of claim 7 , further comprising processing the requests in the request queue that have not been sent to the data provider, wherein the requests are processed using the data stored on the client device.

9. The method of claim 6 , wherein the requests are sent to the data provider directly and the updated data from the data provider is received via a link server.

10. The method of claim 1 , further comprising:

receiving a request to add a new entity;

in the event the client device does not have connectivity to the data provider, providing a new entity in the stored data on the client device and storing the request in a request queue; and

upon establishing connectivity, sending the request in the request queue to the data provider.

11. A client device, comprising:

a database storing data received from a data provider; and

a hardware processor in communication with the database, the processor operable to:

receive at least one request to modify the data maintained by the data provider;

determine whether client device has connectivity to the data provider;

in the event the client device has connectivity to the data provider, send the request(s) to the data provider; and

in the event the client device does not have connectivity to the data provider, processing the request(s) based on the data stored on the client device, storing the request(s) in a request queue, storing the modified data on the client device, and upon establishing connectivity, updating the data provider with the changes made to the data while the client device did not have connectivity by sending the request(s) stored in the request queue to the data provider;

wherein:

a current refresh index is maintained that is incremented each time data is synchronized on the client device with the data maintained by the data provider;

a value of the current refresh index is set to a refresh index of the entities stored on the client device when the entities are synchronized with the data provider;

a value of an incremented current refresh index is set to a refresh index of the request(s) in the request queue when such request(s) are accepted by the data provider; and

the request(s) is deleted upon processing by the data provider.

12. The client device of claim 11 , wherein the requests are Open Data Protocol (OData) requests.

13. The client device of claim 11 , wherein the modified data is stored in the database without modifying the data received from the data provider.

14. The client device of claim 13 , wherein when the modified data is stored in the database, the modified data is set to be active such that subsequent requests for the same data will expose the modified data.

15. The client device of claim 14 , wherein the stored data received from the data provider that corresponds to the modified data is made inactive when the modified data is stored in the database.

16. The client device of claim 11 , wherein the processor is further configured to receive updated data from the data provider, replace the stored data in the database with the updated data, and delete all modified data stored on the client device that corresponds to the updated data received from the data provider.

17. A method for processing data requests, the method being implemented by one or more hardware data processors forming part of at least one computing device, the method comprising:

storing, by at least one hardware data processor, data on a client device received from a data provider maintaining the data;

receiving, by at least one hardware data processor, at least one Open Data Protocol (OData) request to modify the data maintained by the data provider;

determining, by at least one hardware data processor, whether the client device has connectivity to the data provider;

in the event the client device does not have connectivity to the data provider:

processing, by at least one hardware data processor, the request(s) based on the data stored on the client device;

storing, by at least one hardware data processor, the modified data on the client device without modifying the stored data received from the data provider;

setting, by at least one hardware data processor, the modified data to be active and the corresponding stored data received from the client device to be inactive, such that subsequent requests for the same data will expose the modified data; and

storing, by at least one hardware data processor, the requests in a request queue;

upon establishing connectivity to the data provider:

sending, by at least one hardware data processor, the received request(s) to modify the data to the data provider;

sending, by at least one hardware data processor, the requests stored in the request queue to the data provider;

receiving, by at least one hardware data processor, updated data from the data provider;

replacing, by at least one hardware data processor, the stored data on the client device with the updated data; and

when the stored data on the client device is replaced with the updated data from the data provider, deleting corresponding modified data that was stored while connectivity was not available;

wherein:

a current refresh index is maintained that is incremented each time data is synchronized on the client device with the data maintained by the data provider;

a value of the current refresh index is set to a refresh index of the entities stored on the client device when the entities are synchronized with the data provider;

a value of an incremented current refresh index is set to a refresh index of the request(s) in the request queue when such request(s) are accepted by the data provider; and

the request(s) is deleted upon processing by the data provider.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 032324 FRAME: 0713. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 8, 2016
From: HURST, ADAM; BORGES, MATT; MCCLEMENTS, TIM
To: SAP AG
Reel/Frame 039630/0851 →
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2014
From: HURST, ADAM; BORGES, MATT; MCCLEMENTS, TIM
To: SAG AG
Reel/Frame 032324/0713 →