17. A client device, comprising: at least one processor; and memory storing computer readable instructions that, when executed by the at least one processor, configure the client device to: establish a connection between the client device and a remote host, said remote host providing access to one or more applications executing remotely within a virtual machine executing on the remote host; receive, at the client device, first information from the remote host about a first application executing within the virtual machine executing on the remote host; and render, within a user interface associated with the client device and with a graphical appearance based on at least one user interface component of said user interface associated with the client device, a first user interface component based on a corresponding user interface component of the first application executing within the virtual machine executing on the remote host.
21. The client device of claim 17 , wherein the remote host has a first plurality of user interface components, and the client device has a second plurality of user interface components, each of the first plurality of user interface components corresponding to a different one of the second plurality of user interface components, and wherein the instructions, when executed by the at least one processor, configure the client device to: substitute one of the second plurality of user interface components for a corresponding one of the first plurality of user interface components received from the remote host; and send user input to the remote host responsive to the corresponding one of the first plurality of user interface components based on user input received via the corresponding one of the second plurality of user interface components.