Agent-based event-driven web server architecture
First Claim
Patent Images
1. An intermediate networking device positioned between a client and a target server, the networking device comprising:
- an operating system;
a web server application program configured to run on the operating system of the device, wherein the web server application program comprises a multiplexing agent that receives data from the client by a single client socket and forwards the data from the intermediate networking device to the target server using at least two different server sockets;
an event-based signaling mechanism within the operating system configured to trigger a single operating system-level signaling event in response to each of;
(a) data arriving on the client socket, and (b) at least one of connection request completion for the client socket, disconnection request initiation for the client socket, disconnection request completion for the client socket, partial connection shutdown for the client socket, data being sent to server sockets, or asynchronous errors;
a filter within the operating system configured to receive the operating system-level signaling events, and pass from the operating system to an event queue accessible by the web server application program only operating system-level events that were triggered in response to data arriving on the client socket;
wherein, in response to detecting one of the operating system-level signaling events in the event queue, the multiplexing agent of the web server application program reads data off of the client socket without polling the client socket first to determine that data is ready to be read from the sockets and multiplexes the data from the single client socket to the at least two different server sockets to forward the data from the intermediate networking device to the target server.
6 Assignments
0 Petitions
Accused Products
Abstract
A networking device, method, and web server software architecture are provided. The device may include a web server application program configured to run on an operating system of the device, and an event-based signaling mechanism configured to signal the web server application program when data has arrived on a socket of the operating system, by triggering an operating system-level signaling event. The web server application program is configured to read data off of the socket in response to detecting the event, without polling the socket first to determine that data is ready to be read from the socket.
41 Citations
19 Claims
-
1. An intermediate networking device positioned between a client and a target server, the networking device comprising:
-
an operating system; a web server application program configured to run on the operating system of the device, wherein the web server application program comprises a multiplexing agent that receives data from the client by a single client socket and forwards the data from the intermediate networking device to the target server using at least two different server sockets; an event-based signaling mechanism within the operating system configured to trigger a single operating system-level signaling event in response to each of;
(a) data arriving on the client socket, and (b) at least one of connection request completion for the client socket, disconnection request initiation for the client socket, disconnection request completion for the client socket, partial connection shutdown for the client socket, data being sent to server sockets, or asynchronous errors;a filter within the operating system configured to receive the operating system-level signaling events, and pass from the operating system to an event queue accessible by the web server application program only operating system-level events that were triggered in response to data arriving on the client socket; wherein, in response to detecting one of the operating system-level signaling events in the event queue, the multiplexing agent of the web server application program reads data off of the client socket without polling the client socket first to determine that data is ready to be read from the sockets and multiplexes the data from the single client socket to the at least two different server sockets to forward the data from the intermediate networking device to the target server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for serving web resources, the method comprising:
-
receiving data from a client at a client socket on an intermediate networking device located between the client and a target server; receiving second data from the client on the same client socket on the intermediate networking device; creating operating system-level events in response to each of receiving the data on the client socket and at least one of connection request completion, disconnection request initiation, disconnection request completion, partial connection shutdown, data being sent to server sockets, and asynchronous errors; filtering the operating system-level events to pass only the events that are in response to receiving the data on the client socket to an event queue; detecting the events passed to the event queue from a component of a web server application program executed on the networking device; and in response to detecting the events passed to the event queue, reading data off of the client socket with the web server application program; and forwarding the first data from the client socket and the second data from the client socket to the target server as multiplexed data using at least two different server sockets without polling the client socket to determine whether the first data or the second data is ready to read on the client socket. - View Dependent Claims (15, 16, 17)
-
-
18. An intermediate network device located between a plurality of clients and a target server, the intermediate network device comprising:
-
a web server application program configured to run on an operating system having client sockets for communicating with the clients and a plurality of server sockets for communicating with the target server; an operating system-level event-based means for triggering a signaling event in response to each of the arrival of data on any of the client sockets and at least one other condition unrelated to data arriving on the client sockets; filter means for filtering the signaling events triggered by the event-based means such that only the events that are in response to arrival of data on any of the client sockets are provided to an event queue; and multiplexing agent means for multiplexing data from a single one for the client sockets to at least two different ones of the server sockets for communicating the data from the intermediate network device to the target server in response to signaling events within the queue without polling the client sockets of the operating system. - View Dependent Claims (19)
-
Specification