1. A method for an application to interact with a user at a client device through a user proxy server (UPS) system, the method comprising: receiving, at the UPS system, an interaction request from the application to initiate interactions with the user, wherein the interaction request specifies data, data types, and/or semantic metadata for interacting with the user; processing, at the UPS system, the interaction request and contextual information existing at the UPS system, wherein the processing comprises: creating, based on the data, data types, and/or semantic metadata, a hierarchy of graphical user interface (GUI) components to interact with the user and behavior managers for handling events associated with the GUI components; and providing the hierarchy of GUI components and the behavior managers to the client device; and the UPS system interacting with the user at the client device in a manner that is consistent with the contextual information, wherein said interacting is asynchronous and uses the hierarchy of GUI components and the behavior managers.