Framework for managing client application data in offline and online environments
First Claim
1. A method performed in a client application program in a computerized environment, wherein the client application is configured to work in an online mode with a target application service, and in an offline mode, the method being for handling data produced through the client application so that the data is communicated with the target application service in an efficient manner, and the method comprising the acts of:
- receiving data from a user;
identifying a logic component to be associated with the data, the logic component including one or more rule elements that indicate how a synchronization framework is to determine whether a target application is effectively online for purposes of the data, wherein the target application is effectively offline when it does not meet determined criteria, regardless of whether the target application is actually offline, and regardless of whether the client application is online;
associating the data received from the user with the logic component by creating a single object that includes not only the data received from the user, but also the logic component that is associated with the data, such that the object includes the data encapsulated with one or more rule elements providing logic describing how the synchronization framework is to determine whether the target application is effectively online for purposes of the data, and before sending a service request based on the data to the target application;
passing the object, including the data and the encapsulated one or more rule elements, to the synchronization framework, such that the synchronization framework communicates the service request based on the object to the target application service in an efficient manner; and
receiving a response from the synchronization framework;
wherein the logic component includes logic elements corresponding to;
a local execution phase, wherein the logic element of the local execution phase specifies how the synchronization framework will receive data from the client application into an object, where to store the object once it is created, and what values to use for other logic elements corresponding to the object, and how to recognize local state for the object at the computing system running the client application;
a synchronization phase, wherein the logic element of the synchronization phase includes parameters of how to treat certain types of connections with the target application service, including how to determine whether the target application service is effectively offline, wherein the parameters of how to treat certain types of connections are based at least in part on a size of the object; and
a commit phase, wherein the commit phase includes logic for confirming tentative state changes made for the object during the local execution phase, deferring the commit phase when the object is not processed successfully, rolling back tentative state changes when a request fails, and requiring re-association of a new set of object logic when data is unsuccessfully processed, wherein the local execution phase, the synchronization phase, and the commit phase are all phases of the synchronization framework.
2 Assignments
0 Petitions
Accused Products
Abstract
A multi-phase synchronization framework allows developers to develop smart client applications that can operate efficiently in offline and online modes. For example, a client application receives user input, and generates an object that includes the user input data, as well as some associated logic for one or more phases in the synchronization framework. The object can then be passed to the synchronization framework, which communicates a service request based on the object to a target application service only when the target application service is effectively online, generally as defined by the associated logic. Whether the target application service is effectively online can also be based on default settings. The synchronization framework handles state for the object, and communicates failure and/or success to the client application. As such, the functionality for treating failed or successful communication is handled generally by the synchronization framework, rather than necessarily the client application.
24 Citations
19 Claims
-
1. A method performed in a client application program in a computerized environment, wherein the client application is configured to work in an online mode with a target application service, and in an offline mode, the method being for handling data produced through the client application so that the data is communicated with the target application service in an efficient manner, and the method comprising the acts of:
-
receiving data from a user; identifying a logic component to be associated with the data, the logic component including one or more rule elements that indicate how a synchronization framework is to determine whether a target application is effectively online for purposes of the data, wherein the target application is effectively offline when it does not meet determined criteria, regardless of whether the target application is actually offline, and regardless of whether the client application is online; associating the data received from the user with the logic component by creating a single object that includes not only the data received from the user, but also the logic component that is associated with the data, such that the object includes the data encapsulated with one or more rule elements providing logic describing how the synchronization framework is to determine whether the target application is effectively online for purposes of the data, and before sending a service request based on the data to the target application; passing the object, including the data and the encapsulated one or more rule elements, to the synchronization framework, such that the synchronization framework communicates the service request based on the object to the target application service in an efficient manner; and receiving a response from the synchronization framework; wherein the logic component includes logic elements corresponding to; a local execution phase, wherein the logic element of the local execution phase specifies how the synchronization framework will receive data from the client application into an object, where to store the object once it is created, and what values to use for other logic elements corresponding to the object, and how to recognize local state for the object at the computing system running the client application; a synchronization phase, wherein the logic element of the synchronization phase includes parameters of how to treat certain types of connections with the target application service, including how to determine whether the target application service is effectively offline, wherein the parameters of how to treat certain types of connections are based at least in part on a size of the object; and a commit phase, wherein the commit phase includes logic for confirming tentative state changes made for the object during the local execution phase, deferring the commit phase when the object is not processed successfully, rolling back tentative state changes when a request fails, and requiring re-association of a new set of object logic when data is unsuccessfully processed, wherein the local execution phase, the synchronization phase, and the commit phase are all phases of the synchronization framework. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method performed at a synchronization manager of an offline/online framework for a client application in a computerized environment, the synchronization manager being configured to efficiently handle data generated through the client application in offline or online modes, the method being for communicating the data to the target application service in an efficient manner, and the method comprising the acts of:
-
accessing an object generated by a client application, the client application configured to operate in both an online and an offline mode, the object being a single object that includes generated data encapsulated with a logic component having one or more logic elements, the one or more logic elements including at least one rule that defines logic for how the synchronization manager can relatively immediately determine when a target application of a remote computing system is to be considered effectively online or offline, independent of whether the client application is online, and before sending the data to the target application; saving the single object to a local store, such that the data and the at least one rule defining logic for how the synchronization manager can relatively immediately determine before sending a service request based on the data to the target application when the target application is to be considered effectively online or offline is jointly stored in the local store in the single object; accessing the one or more logic components and the logic for determining when a target application is considered effectively online or offline and using such criteria to determine whether a corresponding target application is effectively online for purposes of the data, wherein determining whether a corresponding target application is effectively online includes relatively immediately identifying a likelihood of successfully transmitting the object to the corresponding target application based on logic included in the logic component, and wherein the target application is effectively online if the identified likelihood of successfully transmitting the object exceeds a threshold level, such that the target application can be deemed effectively offline regardless of whether it is actually offline; automatically sending the service request based on the object to the target application service over a network, such that the service request is communicated to the target application service only when the target application service is effectively online; and receiving a response from the target application service; wherein the logic component includes logic elements corresponding to; a local execution phase, wherein the logic element of the local execution phase specifies how the synchronization framework will receive data from the client application into an object, where to store the object once it is created, and what values to use for other logic elements corresponding to the object, and how to recognize local state for the object at the computing system running the client application; a synchronization phase, wherein the logic element of the synchronization phase includes parameters of how to treat certain types of connections with the target application service, including how to determine whether the target application service is effectively offline, wherein the parameters of how to treat certain types of connections are based at least in part on a size of the object; and a commit phase, wherein the commit phase includes logic for confirming tentative state changes made for the object during the local execution phase, deferring the commit phase when the object is not processed successfully, rolling back tentative state changes when a request fails, and requiring re-association of a new set of object logic when data is unsuccessfully processed, wherein the local execution phase, the synchronization phase, and the commit phase are all phases of the synchronization framework. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. In a computerized environment in which a client application communicates data works in offline or online modes, a one or more computer readable media having computer-executable instructions stored thereon that, when executed, cause one or more processors to perform a method of handling data produced through the client application so that the data is communicated with the target application service in an efficient manner, comprising the following:
-
receiving data from a user; identifying a logic component to be associated with the data, the logic component including one or more rule elements that indicate how a synchronization framework is to determine whether a target application is effectively online for purposes of the data, wherein the target application is effectively offline when it does not meet determined criteria, regardless of whether the target application is actually offline, and regardless of whether the client application is online; associating the data received from the user with the logic component by creating a single object that includes not only the data received from the user, but also the logic component that is associated with the data, such that the object includes the data encapsulated with one or more rule elements providing logic describing how the synchronization framework is to determine whether the target application is effectively online for purposes of the data, and before sending a service request based on the data to the target application; passing the object, including the data and the encapsulated one or more rule elements, to the synchronization framework, such that the synchronization framework communicates the service request based on the object to the target application service in an efficient manner; and receiving a response from the synchronization framework; wherein the logic component includes logic elements corresponding to; a local execution phase, wherein the logic element of the local execution phase specifies how the synchronization framework will receive data from the client application into an object, where to store the object once it is created, and what values to use for other logic elements corresponding to the object, and how to recognize local state for the object at the computing system running the client application; a synchronization phase, wherein the logic element of the synchronization phase includes parameters of how to treat certain types of connections with the target application service, including how to determine whether the target application service is effectively offline, wherein the parameters of how to treat certain types of connections are based at least in part on a size of the object; and a commit phase, wherein the commit phase includes logic for confirming tentative state changes made for the object during the local execution phase, deferring the commit phase when the object is not processed successfully, rolling back tentative state changes when a request fails, and requiring re-association of a new set of object logic when data is unsuccessfully processed, wherein the local execution phase, the synchronization phase, and the commit phase are all phases of the synchronization framework.
-
Specification