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:
- a processor;
an operating system executing on the processor;
a web server application program executing as a process on the operating system of the device, wherein the web server application program receives data from the client by a client socket of the operating system and forwards the data from the intermediate networking device to the target server;
an event-based signaling mechanism within the operating system that triggers operating system-level signaling events in response to data arriving on the client socket, a completion of a connection request for the client socket, an initiation of a disconnection request for the client socket, a completion of the disconnection request for the client socket, a partial connection shutdown for the client socket, data being sent to server sockets, and asynchronous errors with respect to the client socket; and
a filter and an event queue within the operating system, the event queue of the operating system being associated with the client socket and accessible by the web server application program,wherein the filter within the operating system receives the operating system-level signaling events, and passes to the event queue only those operating-system-level events that were triggered in response to data arriving on the client socket without allowing any remaining ones of the other operating system-level events to enter the event queue, andwherein, in response to detecting one of the operating system-level signaling events in the event queue, the web server application program reads the data off of the client socket without polling the client socket first to determine that data is ready to be read from the socket and forwards the data from the intermediate networking device to the target server.
0 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.
-
Citations
16 Claims
-
1. An intermediate networking device positioned between a client and a target server, the networking device comprising:
-
a processor; an operating system executing on the processor; a web server application program executing as a process on the operating system of the device, wherein the web server application program receives data from the client by a client socket of the operating system and forwards the data from the intermediate networking device to the target server; an event-based signaling mechanism within the operating system that triggers operating system-level signaling events in response to data arriving on the client socket, a completion of a connection request for the client socket, an initiation of a disconnection request for the client socket, a completion of the disconnection request for the client socket, a partial connection shutdown for the client socket, data being sent to server sockets, and asynchronous errors with respect to the client socket; and a filter and an event queue within the operating system, the event queue of the operating system being associated with the client socket and accessible by the web server application program, wherein the filter within the operating system receives the operating system-level signaling events, and passes to the event queue only those operating-system-level events that were triggered in response to data arriving on the client socket without allowing any remaining ones of the other operating system-level events to enter the event queue, and wherein, in response to detecting one of the operating system-level signaling events in the event queue, the web server application program reads the data off of the client socket without polling the client socket first to determine that data is ready to be read from the socket and forwards the data from the intermediate networking device to the target server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. 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; 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; in response to detecting the events passed to the event queue, reading data off of the client socket with the web server application program without polling the client socket first to determine that the data is ready to be read from the socket; and forwarding the data read off of the client socket from the intermediate networking device to the target server. - View Dependent Claims (11, 12)
-
-
13. An intermediate network device located between a plurality of clients and a target server, the intermediate network device comprising:
-
a web server application program executing 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; and 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, wherein, in response to detecting one of the operating system-level signaling events in the event queue, the web server application program reads data off of one of the client sockets without polling the client socket first to determine that data is ready to be read from the socket and forwards the data from the intermediate networking device to the target server via at least one of the server sockets. - View Dependent Claims (14)
-
-
15. A computer readable storage medium comprising instructions that cause a processor to:
-
receive data from a client at a client socket on an intermediate networking device located between the client and a target server; create 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; filter 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 of an operating system executing on the processor; detect the events passed to the event queue from a component of a web server application program executed on the networking device; in response to detecting the events passed to the event queue, read data off of the client socket with the web server application program without polling the client socket first to determine that data is ready to be read from the socket; and forward the data read off of the client socket from the intermediate networking device to the target server. - View Dependent Claims (16)
-
Specification