An architecture is disclosed for facilitating communications with one or
more embedded devices from a client application. The architecture
includes gateway software and server software. The gateway software
includes device communications software for sending and receiving device
messages to and from the one or more embedded devices and gateway
communications software for sending and receiving communications to other
software. The server software includes user interface software that is
downloadable by the client application for use to communicate with the
server software. The server software also includes serving software for
responding to requests received from the client application through the
user interface software. The server software also includes gateway
communications software for sending and receiving communications to the
gateway software. The architecture operates such that the server software
communicates with the gateway software and the gateway software
communicates with the one or more embedded devices. The server software
sends a user interface component to the client application, and the
client application uses the user interface component to communicate with
an embedded device by sending communications to the server software. The
server software facilitates communications with the embedded device
through the gateway software.