Patent ID: 8255921

Claim:
A method comprising: storing, by a client, an application that includes a function to perform a process, where the application invokes the function when the process is to be performed, where, when invoked by the application, the function accesses, via a network, a server to perform the process, where the server processes the function to obtain data, and where the application receives the obtained data, via a communication layer of the client; replacing, by the client, the function with a proxy function to modify the application, where replacing the function with the proxy function to modify the application causes the application to invoke the proxy function when the process is to be performed; determining, at the client and by the application, that the process is to be performed; invoking, at the client, the proxy function, where the proxy function is invoked by the application based on determining that the process is to be performed; determining, at the client and by the proxy function, whether to access the server or an alternate resource to perform the process, where determining whether to access the server or the alternate the alternate resource includes at least one of: determining whether the network is available, or determining whether the server is available; accessing, at the client and by the proxy function the alternate resource to perform the process when: the network is unavailable, or the server is unavailable; and accessing, at the client and by the proxy function the server to process the function when: the network is available, and the server is available.