1. A computer implemented method for causing a processor to provide a hosted service to a client, the method comprising the following steps performed by one or more processors: determine a hosted service for use with an application at a client based on user context data associated with the application; receive a request for the hosted service and a reference to stored data required for the hosted service; execute the hosted service using the reference to the stored data; and transmit results from the execution of the hosted service and user interface metadata associated with the hosted service to the client.