A method and architecture for enabling interaction between a remote device
and a host computer. A service provided by the remote device is
discovered, and a description pertaining to the service is retrieved by
the host computer. A network communication link is the established
between the remote device and the host computer based on connection
information provided by the description. Host-side and client-side
software service modules are run on the host and remote devices to enable
interaction between the devices using a service protocol that is specific
to the service. Various service protocols are provided, including a
display service protocol and an input service protocol. Using commands
provided by each protocol, the host computer is enabled to control the
service remotely by pushing data and appropriate commands to the remote
device, whereupon these commands are processed by the client-side service
module to perform service operations that employ the sent data.