# US 8,788,627 B2 · Interactive web application framework

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

- Number: US 8,788,627 B2
- Document ID: US8788627B2
- Status: Granted
- Kind: B2
- Application number: 13/250,537
- Filed: 2011-09-30
- Published: 2013-04-04
- Granted: 2014-07-22
- Earliest claimed: 2011-09-30
- Assignees: Apple Inc.
- Applicants: Viswanadh Addala
- Inventors: Viswanadh Addala
- Web page: https://patentgrep.com/patent/US8788627B2

## CPC

- G06F 16/958: Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An interactive web application framework allows a user to define user interface and logic of a web application and publish the web application. A first application server can receive database data from a database server. The first application can process the database data to generate publication data. A second application server can receive the publication data from the first application server. The second application server can process the publication data to generate web data. The second application server can then send the web data to a web server for pushing to a web browser.

## Claims

### Claim 1

A method, comprising:
receiving, at a database-side application server, database data from a database server, the database-side application server being optimized to communicate with the database server;
processing the database data at the database-side application server to generate publication data;
receiving, at a web-side application server and through an asynchronous communication layer, the publication data from the database-side application server, the web-side application server being configured to communicate with a web server, the asynchronous communication layer including hardware and software configured to manage flow of data between the database-side application server and the web-side application server using an event priority queue, wherein the event priority queue is configured to:
determine a priority of the publication data,
place a publication notification to process the publication data in a queue data structure according to the priority, and
send the publication notification to the web-side application server when the publication notification reaches a head of the queue data structure;
processing the publication data at the web-side application server in response to the publication notification to generate web data; and
from the web-side application server, sending the web data to the web server for pushing to a web browser.

### Claim 2 (depends on 1)

The method of claim 1, wherein the database data includes at least one of content data, user interface configuration data, and logic data.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
the database-side application server includes a first web publishing engine based on a first language; and
the web-side application server includes a second web publishing engine based on a second language.

### Claim 4 (depends on 3)

The method of claim 3, wherein the database-side application server is programmed to communicate with the web-side application server using an inter-process communication component for communicating between a first process based on the first language and a second process based on the second language.

### Claim 5 (depends on 1)

The method of claim 1, wherein receiving the database data from the database server comprises retrieving, at the database-side application server, the database data from the database server upon receiving a database notification from the database server, the database notification indicating that the database data are created, changed, or deleted at the database server.

### Claim 6 (depends on 1)

The method of claim 1, wherein the event priority queue places the publication notification at a position in the queue data structure, the position being independent of a temporal order in which the publication data was sent by the database-side application server relative to other publication data.

### Claim 7 (depends on 1)

The method of claim 1, wherein processing the database data at the database-side application server to generate publication data comprises translating user interface data stored in a database into a document in plain text or into a text-based data interchange language.

### Claim 8 (depends on 7)

The method of claim 7, wherein the text-based data interchange language is a markup language or a Java-based scripting language.

### Claim 9 (depends on 1)

The method of claim 1, wherein receiving the publication data from the database-side application server comprises:
receiving, at the web-side application server, the publication notification from the asynchronous communication layer; and
retrieving, at the web-side application server and from the asynchronous communication layer, the publication data.

### Claim 10 (depends on 1)

The method of claim 1, wherein at least one of the database-side application server or the web-side application server is programmed to perform notification queuing for asynchronous communication between the database server and the web browser.

### Claim 11

A non-transitory storage device storing a computer program product, the product, when executed by one or more processors, causes the one or more processors to perform operations comprising:
receiving, at a database-side application server, database data from a database server, the database-side application server being configured to communicate with the database server;
processing the database data at the database-side application server to generate publication data;
receiving, at a web-side application server and through an asynchronous communication layer, the publication data from the database-side application server, the web-side application server being configured to communicate with a web server, the asynchronous communication layer including hardware and software configured to manage flow of data between the database-side application server and the web-side application server using an event priority queue, wherein the event priority queue is configured to:
determine a priority of the publication data,
place a publication notification to process the publication data in a queue data structure according to the priority, and
send the publication notification to the web-side application server when the publication notification reaches a head of the queue data structure;
processing the publication data at the web-side application server in response to the publication notification to generate web data; and
from the web-side application server, sending the web data to the web server for pushing to a web browser.

### Claim 12 (depends on 11)

The non-transitory storage device of claim 11, wherein the database data includes at least one of content data, user interface configuration data, and logic data.

### Claim 13 (depends on 11)

The non-transitory storage device of claim 11, wherein:
the database-side application server includes a first web publishing engine based on a first language; and
the web-side application server includes a second web publishing engine based on a second language.

### Claim 14 (depends on 13)

The non-transitory storage device of claim 13, wherein the database-side application server is programmed to communicate with the web-side application server using an inter-process communication component for communicating between a first process based on the first language and a second process based on the second language.

### Claim 15 (depends on 11)

The non-transitory storage device of claim 11, wherein receiving the database data from the database server comprises retrieving, at the database-side application server, the database data from the database server upon receiving a database notification from the database server, the database notification indicating that the database data are created, changed, or deleted at the database server.

### Claim 16 (depends on 11)

The non-transitory storage device of claim 11, wherein the event priority queue places the publication notification a position in the queue data structure, the position being independent of a temporal order in which the publication data was sent by the database-side application server relative to other publication data.

### Claim 17 (depends on 11)

The non-transitory storage device of claim 11, wherein processing the database data at the database-side application server to generate publication data comprises translating user interface data stored in a database into a document in plain text or into a text-based data interchange language.

### Claim 18 (depends on 17)

The non-transitory storage device of claim 17, wherein the text-based data interchange language is a markup language or a Java-based scripting language.

### Claim 19 (depends on 11)

The non-transitory storage device of claim 11, wherein receiving the publication data from the database-side application server comprises:
receiving, at the web-side application server, the publication notification from the asynchronous communication layer; and
retrieving, at the web-side application server and from the database-side application server, the publication data.

### Claim 20 (depends on 11)

The non-transitory storage device of claim 11, wherein at least one of the database-side application server or the web-side application server is programmed to perform notification queuing for asynchronous communication between the database server and the web browser.

### Claim 21

A system comprising:
one or more computers configured to perform operations comprising:
receiving, at a database-side application server, database data from a database server, the database-side application server being configured to communicate with the database server;
processing the database data at the database-side application server to generate publication data;
receiving, at a web-side application server and through an asynchronous communication layer, the publication data from the database-side application server, the web-side application server being configured to communicate with a web server, the asynchronous communication layer including hardware and software configured to manage flow of data between the database-side application server and the web-side application server using an event priority queue, wherein the event priority queue is configured to:
determine a priority of the publication data,
place a publication notification to process the publication data in a queue data structure according to the priority, and
send the publication notification to the web-side application server when the publication notification reaches a head of the queue data structure;
processing the publication data at the web-side application server in response to the publication notification to generate web data; and
from the web-side application server, sending the web data to the web server for pushing to a web browser.

### Claim 22 (depends on 21)

The system of claim 21, wherein the database data includes at least one of content data, user interface configuration data, and logic data.

### Claim 23 (depends on 21)

The system of claim 21, wherein:
the database-side application server includes a first web publishing engine based on a first language; and
the web-side application server includes a second web publishing engine based on a second language.

### Claim 24 (depends on 23)

The system of claim 23, wherein the database-side application server is programmed to communicate with the web-side application server using an inter-process communication component for communicating between a first process based on the first language and a second process based on the second language.

### Claim 25 (depends on 21)

The system of claim 21, wherein receiving the database data from the database server comprises retrieving, at the database-side application server, the database data from the database server upon receiving a database notification from the database server, the database notification indicating that the database data are created, changed, or deleted at the database server.

### Claim 26 (depends on 21)

The system of claim 21, wherein the event priority queue places the publication notification a position in the queue data structure, the position being independent of a temporal order in which the publication data was sent by the database-side application server relative to other publication data.

### Claim 27 (depends on 21)

The system of claim 21, wherein processing the database data at the database-side application server to generate publication data comprises translating user interface data stored in a database into a document in plain text or into a text-based data interchange language.

### Claim 28 (depends on 27)

The system of claim 27, wherein the text-based data interchange language is a markup language or a Java-based scripting language.

### Claim 29 (depends on 21)

The system of claim 21, wherein receiving the publication data from the database-side application server comprises:
receiving, at the web-side application server, the publication notification from the asynchronous communication layer; and
retrieving, at the web-side application server and from the database-side application server, the publication data.

### Claim 30 (depends on 21)

The system of claim 21, wherein at least one of the database-side application server or the web-side application server is programmed to perform notification queuing for asynchronous communication between the database server and the web browser.
