# US 8,751,587 B2 · Real-time web applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,587 B2
- Document ID: US8751587B2
- Status: Granted
- Kind: B2
- Application number: 12/626,497
- Filed: 2009-11-25
- Published: 2011-05-26
- Granted: 2014-06-10
- Earliest claimed: 2009-11-25
- Assignees: Red Hat, Inc.
- Applicants: Luke J. Macken
- Inventors: Luke J. Macken
- Web page: https://patentgrep.com/patent/US8751587B2

## CPC

- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- G06F 16/972: {Access to data in other repository systems, e.g. legacy data or dynamic Web page generation}
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/55: Push-based network services
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and apparatus for providing real-time web applications is described. In one embodiment, the method includes obtaining data for a topic with a server computer system. The method may also include determining a client that is rendering a framework widget with a subscription to the topic. In one embodiment, the method may further include transmitting a message including the data from an application framework to the client to enable the framework widget to process the data, the message transmitted to the client without the client issuing a request for an update.

## Claims

### Claim 1

A method comprising:
obtaining, by a processing device of a server computer system, data for a topic associated with a message queue;
identifying, by the processing device, a client rendering a framework widget corresponding to a client web application, the framework widget to subscribe to the message queue for the topic; and
transmitting, by the processing device to the client without the client requesting an update for the client web application, a message comprising the topic data, wherein the message to enable the framework widget to process the data and to update the client web application using the data.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving a request from the client for a web page comprising the framework widget, the widget comprising a subscription to the topic; and
dynamically injecting a framework socket into the requested web page prior to delivery to the client, the framework socket creating an open communications pathway between the client and a message broker.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
transmitting a message associated with a subscription using the dynamically injected framework socket.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
dynamically injecting application code into the framework widget while the framework widget is transmitted to the client.

### Claim 5 (depends on 4)

The method of claim 4, wherein the dynamically injected application code corresponds to one or more pointers, stored by the framework widget, that point to snippets of logic stored by a real-time web application framework.

### Claim 6 (depends on 4)

The method of claim 4, wherein the application code comprises logic for the display of the received message.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving the message comprising the data at a framework socket open in a client, the framework socket enabling a live communications link between the framework widget and a message broker;
determining one or more framework widgets displayed in a web page with subscriptions to the topic; and
routing, by the framework socket, the message comprising the data to only the framework widgets with corresponding topic subscriptions.

### Claim 8 (depends on 7)

The method of claim 7, further comprising
responsive to receiving the message routed by the framework socket, executing one or more callback functions to process the data message.

### Claim 9 (depends on 1)

The method of claim 1, wherein the data is obtained by a hub of a real-time web application framework, the hub executing plug-in applications outside of a web stack managed by the real-time web application framework.

### Claim 10 (depends on 1)

The method of claim 1, wherein the message is transmitted to the client in real-time and without receiving a request from the web browser for the data.

### Claim 11

A non-transitory computer readable storage medium that provides instructions, which when executed on a processing device cause the processing device to perform a method comprising:
obtaining, by the processing device of a server computer system, data for a topic associated with a message queue;
identifying, by the processing device, a client rendering a framework widget corresponding to a client web application, the framework widget to subscribe to the message queue for the topic; and
transmitting, by the processing device to the client without the client requesting an update for the client web application, a message comprising the topic data, wherein the message to enable the framework widget to process the data and to update the client web application using the data.

### Claim 12 (depends on 11)

The non-transitory computer readable storage medium of claim 11, further comprising:
receiving a request from a client for a web page comprising the framework widget, the widget comprising a subscription to the topic; and
dynamically injecting a framework socket into the requested web page prior to delivery to the client, the framework socket creating an open communications pathway between the client and a message broker.

### Claim 13 (depends on 12)

The non-transitory computer readable storage medium of claim 12, further comprising:
transmitting a message associated with a subscription using the dynamically injected framework socket.

### Claim 14 (depends on 12)

The non-transitory computer readable storage medium of claim 12, further comprising:
dynamically injecting application code into the framework widget while the framework widget is transmitted to the client.

### Claim 15 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein the dynamically injected application code corresponds to one or more pointers, stored by the framework widget, that point to snippets of logic stored by a real-time web application framework.

### Claim 16 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein the application code comprises logic for the display of the received message.

### Claim 17 (depends on 11)

The non-transitory computer readable storage medium of claim 11, further comprising:
receiving the message comprising the data at a framework socket open in a client, the framework socket enabling a live communications link between the framework widget and a message broker;
determining one or more framework widgets displayed in a web page with subscriptions to the topic; and
routing, by the framework socket, the message comprising the data to only the framework widgets with corresponding topic subscriptions.

### Claim 18 (depends on 17)

The non-transitory computer readable storage medium of claim 17, further comprising
responsive to receiving the message routed by the framework socket, executing one or more callback functions to process the data message.

### Claim 19 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the data is obtained by a hub of a real-time web application framework, the hub executing plug-in applications outside of a web stack managed by the real-time web application framework, and wherein the message is transmitted to the client in real-time and without receiving a request from the web browser for the data.

### Claim 20

A system, comprising:
a memory;
a processing device coupled with the memory; and
an application framework executed from the memory by the processing device, the application framework to:
obtain data for a topic associated with a message queue;
identify a client rendering a framework widget corresponding to a client web application, the framework widget to subscribe to the message queue for the topic; and
transmit a message to the client without the client requesting an update for the client web application, the message comprising the topic data, wherein the message is to enable the framework widget to process the data and to update the client web application using the data.

### Claim 21 (depends on 20)

The system of claim 20, wherein the application framework further to:
receive a request from the client for a web page comprising the framework widget, the widget comprising a subscription to the topic; and
dynamically inject a framework socket into the requested web page prior to delivery to the client, the framework socket creating an open communications pathway between the client and a message broker.

### Claim 22 (depends on 20)

The system of claim 20, wherein the application framework further to:
receive the message comprising the data at a framework socket open in a client, the framework socket enabling a live communications link between the framework widget and a message broker; and
determine one or more framework widgets displayed in a web page with subscriptions to the topic;
wherein the framework socket to route the message comprising the data to only the framework widgets with corresponding topic subscriptions.
