Patent ID: 7250862

Claim:
A computer program product, tangibly embodied in an information carrier, the computer program product being operable to cause data processing apparatus to perform operations comprising: establishing a persistent connection between a client and a server; receiving a subscription request at the server from the client via the persistent connection, the subscription request specifying one or more parameters associated with a topic; invoking a subscription module at the server based upon receiving the subscription request; transmitting a web page from the server to the client via the persistent connection, based upon the subscription request, the web page including a visible frame and a hidden frame; displaying the visible frame at the client; creating a subscriber instance for the client at the server based upon the subscription request using the invoked subscription module; adding the subscriber instance to a subscriber list; activating the subscriber instance, thereby causing the subscriber instance to continuously check for and retrieve events from an event queue; receiving an event from a data acquisition device at the server, the event formatted in a device-specific format associated with the data acquisition device, and the data acquisition device comprising a radio frequency identification device reader, an environmental sensor, or a programmable logic control device, and the data acquisition device comprising a periodic device that emits periodic data and/or an aperiodic device that emits aperiodic data, periodic data being data that is emitted continuously at regular intervals, and aperiodic data being data that is emitted at irregular intervals; converting the event from the device-specific format to a system-specific format at the server, the system-specific format associated with the client; determining a topic associated with the event at the server; identifying whether the subscriber instance is associated with the event; adding the event to the event queue; receiving a call at the server from the hidden frame of the web page; transmitting the event from the event queue to the client via the persistent connection based upon receiving the call; determining, at the client, a portion of the visible frame affected by the event; and selectively redrawing the determined portion of the visible frame based upon the transmitted event.