1. Method for executing an application program comprising: caching a cacheable component of the application program received from an original computing device; receiving a request for executing a component of the application program determining whether or not the request relates to the cacheable application program component that has been cached; directing the request to the cacheable application program component in response to a determination that the request relates to the component that has been cached; and, otherwise, passing the request to another computing device.