IP Library › Granted Patent US 9,917,923
Granted Patent B2
US 9,917,923 · App. 14/791,139 · Granted Mar 13, 2018

Building message relationships for offline operation of an enterprise application

Inventors: Shoaib Javed (Tamil Nadu, IN); Filipe Leahy-Dios (Bracknell, GB); Michael Patrick Rodgers (Orange, CA); Gurbinder Singh Bali (Highlands Ranch, CO)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L67/42G06F17/30861H04W4/18
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,917,923
App. No.
14/791,139
Granted
Mar 13, 2018
Kind
B2
Abstract

A system, method, and computer program product for building JSON message relationships for offline operation of an enterprise application is presented. The claimed embodiments address the problem of mobile application behavior during periods of limited access to backend application services and data. More specifically, some embodiments are directed to approaches for capturing request and response information communicated between a client device and application server when connected by a network, and storing respective relationships using the captured information. The stored requests and responses and respective relationships are used to emulate the backend services provided by the application server when the client device is disconnected from the network. In one or more embodiments, a crawler on the client device can generate simulated online requests to build a set of information for use by the emulator when the client device is disconnected from the application server.

Claims (60)

1. A method for offline operation of a client application on a client device using a client-local database of online activity records, the method comprising:

receiving, from a networked component, computer code comprising at least a portion of an emulator processing entity to execute on the client device, the emulator processing entity comprising:

a capture module that allocates memory on the client device that stores a relationship associating at least one online request and at least one online response into a client-local database,

wherein the relationship comprises at least a timestamp column corresponding to an indicator of a freshness of data of the relationship between the at least one online request and respective at least one online response, and at least a data row corresponding to the online response generated from the online request, and

an emulator module that receives an offline request from the client application and delivers an offline response to the client application when the client device is disconnected from the networked component, the offline response retrieved from the client-local database based at least in part on the relationship associated between the at least one online request and the at least one online response;

sending one or more online requests from the client application on the client device to the networked component;

receiving one or more online responses from the networked component, the one or more online responses to the client application being responsive to at least one of the one or more online requests;

storing, into the client-local database of online activity records, one or more relationships between the one or more online requests and respective one or more online responses, at least one of an entirety of the online requests from the client device and online responses from the networked component, and a relationship between a second online request and first online request;

retrieving, by the emulator module on the client device, stored instances of the respective one or more online responses from the client-local database based at least in part on the one or more relationships associated to one or more offline requests received from the client application;

receiving instructions for deploying a crawler processing entity to the client device, wherein the crawler processing entity is configured to generate a set of simulated online requests when the client device is connected to the networked component, the set of simulated online requests producing a wide range of request-response pairs, wherein the wide range of request-response pairs depend from one or more previous request-response pairs;

storing, into the client-local database, the set of simulated online requests, wherein the simulated online requests generate additional online activity records and are accessible when the client device is disconnected from the networked component; and

operating the client application in an offline mode when the client device is disconnected from the networked component by delivering the respective one or more online responses from the client-local database to the client application as one or more offline responses.

2. The method of claim 1 , wherein the emulator processing entity is configured to process one or more occurrences of subsequent requests to produce offline responses when the client device is disconnected from a network.

3. The method of claim 2 , wherein the emulator processing entity serves to retrieve stored instances of the one or more online responses based at least in part on a one-to-one relationship with the subsequent request.

4. The method of claim 2 , wherein the emulator processing entity is configured to deliver one or more offline responses to the client application when the client device is disconnected from an application server.

5. The method of claim 1 , wherein one or more online requests and one or more offline responses has a JSON format.

6. The method of claim 5 , further comprising storing at least some data relationships based on a JSON-formatted online request and one or more JSON-formatted offline responses.

7. The method of claim 1 , further comprising receiving instructions for simulating online requests when the client device is connected to the network component.

8. A computer program product, embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by a processor causes the processor to execute a process for offline operation of a client application on a client device using a client-local database of online activity records, the process comprising:

receiving, from a networked component, computer code comprising at least a portion of an emulator processing entity to execute on the client device, the emulator processing entity comprising:

a capture module that allocates memory on the client device that stores a relationship associating at least one online request and at least one online response into a client-local database,

wherein the relationship comprises at least a timestamp column corresponding to an indicator of a freshness of data of the relationship between the at least one online request and respective at least one online response, and at least a data row corresponding to the online response generated from the online request, and

an emulator module that receives an offline request from the client application and delivers an offline response to the client application when the client device is disconnected from the networked component, the offline response retrieved from the client-local database based at least in part on the relationship associated between the at least one online request and the at least one online response;

sending one or more online requests from the client application on the client device to the networked component;

receiving one or more online responses from the networked component, the one or more online responses to the client application being responsive to at least one of the one or more online requests;

storing, into the client-local database of online activity records, one or more relationships between the one or more online requests and respective one or more online responses, at least one of an entirety of the online requests from the client device and online responses from the networked component, and a relationship between a second online request and first online request;

retrieving, by the emulator module on the client device, stored instances of the respective one or more online responses from the client-local database based at least in part on the one or more relationships associated to one or more offline requests received from the client application;

receiving instructions for deploying a crawler processing entity to the client device, wherein the crawler processing entity is configured to generate a set of simulated online requests when the client device is connected to the networked component, the set of simulated online requests producing a wide range of request-response pairs, wherein the wide range of request-response pairs depend from one or more previous request-response pairs;

storing, into the client-local database, the set of simulated online requests, wherein the simulated online requests generate additional online activity records and are accessible when the client device is disconnected from the networked component; and

operating the client application in an offline mode when the client device is disconnected from the networked component by delivering the respective one or more online responses from the client-local database to the client application as one or more offline responses.

9. The computer program product of claim 8 , wherein the emulator processing entity is configured to process one or more occurrences of subsequent requests to produce offline responses when the client device is disconnected from a network.

10. The computer program product of claim 9 , wherein the emulator processing entity serves to retrieve stored instances of the one or more online responses based at least in part on a one-to-one relationship with the subsequent request.

11. The computer program product of claim 9 , wherein the emulator processing entity is configured to deliver one or more offline responses to the client application when the client device is disconnected from an application server.

12. The computer program product of claim 8 , wherein one or more online requests and one or more offline responses has a JSON format.

13. The computer program product of claim 12 , further comprising instructions to cause the process to store at least some data relationships based on a JSON-formatted online request and one or more JSON-formatted offline responses.

14. The computer program product of claim 8 , further comprising instructions to cause the process to receive instructions for simulating online requests when the client device is connected to the networked component over a network.

15. A system for offline operation of a client application on a client device using a client-local database of online activity records, the system comprising:

a networked component comprising:

a backend system comprising an application server, and

a database engine storing application data; and

a client device comprising:

a computer processor to execute a set of program code instructions, and

a memory to hold the set of program code instructions, in which the set of program code instructions comprises program code to perform:

receiving, from a networked component, computer code comprising at least a portion of an emulator processing entity to execute on the client device, the emulator processing entity comprising:

a capture module that allocates memory on the client device that stores a relationship associating at least one online request and at least one online response into a client-local database,

wherein the relationship comprises at least a timestamp column corresponding to an indicator of a freshness of data of the relationship between the at least one online request and respective at least one online response, and at least a data row corresponding to the online response generated from the online request, and

an emulator module that receives an offline request from the client application and delivers an offline response to the client application when the client device is disconnected from the networked component, the offline response retrieved from the client-local database based at least in part on the relationship associated between the at least one online request and the at least one online response;

sending one or more online requests from the client application on the client device to the networked component;

receiving one or more online responses from the networked component, the one or more online responses to the client application being responsive to at least one of the one or more online requests;

storing, into the client-local database of online activity records, one or more relationships between the one or more online requests and respective one or more online responses, at least one of an entirety of the online requests from the client device and online responses from the networked component, and a relationship between a second online request and first online request;

retrieving, by the emulator module on the client device, stored instances of the respective one or more online responses from the client-local database based at least in part on the one or more relationships associated to one or more offline requests received from the client application;

receiving instructions for deploying a crawler processing entity to the client device, wherein the crawler processing entity is configured to generate a set of simulated online requests when the client device is connected to the networked component, the set of simulated online requests producing a wide range of request-response pairs, wherein the wide range of request-response pairs depend from one or more previous request-response pairs;

storing, into the client-local database, the set of simulated online requests, wherein the simulated online requests generate additional online activity records and are accessible when the client device is disconnected from the networked component; and

operating the client application in an offline mode when the client device is disconnected from the networked component by delivering the respective one or more online responses from the client-local database to the client application as one or more offline responses.

16. The system of claim 15 , wherein the emulator processing entity is configured to process one or more occurrences of subsequent requests to produce offline responses when the client device is disconnected from a network.

17. The system of claim 16 , wherein the emulator processing entity serves to retrieve stored instances of the one or more online responses based at least in part on a one-to-one relationship with the subsequent request.

18. The system of claim 16 , wherein the emulator processing entity is configured to deliver one or more offline responses to the client application when the client device is disconnected from an application server.

19. The system of claim 15 , wherein one or more online requests and one or more offline responses has a JSON format.

20. The system of claim 19 , wherein the set of program code instructions further comprises storing at least some data relationships based on a JSON-formatted online request and one or more JSON-formatted offline responses.

21. The system of claim 15 , wherein the set of program code instructions further comprises program code to perform receiving instructions for simulating online requests when the client device is connected to the networked component over a network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2015
From: JAVED, SHOAIB; LEAHY-DIOS, FILIPE; RODGERS, MICHAEL PATRICK; BALI, GURBINDER SINGH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 035975/0306 →
Continuity (2)
Provisional Application 62055841 · Sep 26, 2014
Related Publication 20160094497A1 · Mar 31, 2016