Federated operating system for a server
First Claim
1. A method for responding to a request received over an external network, comprising:
- running a receiver operating system on a first member hardware unit;
running a dispatcher operating system on a second member hardware unit;
running a responder operating system on a third member hardware unit;
receiving, with the first member hardware unit, a request transmitted over the external network;
sending over an internal network, to the second member hardware unit, request data received by the first member hardware unit, wherein the request data includes an http header;
sending over the internal network, to the third member hardware unit, a message from the second member hardware unit instructing the third member hardware unit to transmit some response data over the external network;
transmitting response data over the external network from the third hardware unit;
identifying, with the second member hardware unit, the correct response to the request;
identifying, with the second member hardware unit, the third member hardware unit that has the correct response data out of a plurality of member hardware units having response data, and sending to the third member hardware unit the message instructing the third member hardware unit to transmit some response data over the external network; and
transmitting, information identifying the unique instance of the response associated with the connection, and information indicating the size of the response data, from the third member hardware unit to the second member hardware unit over the internal network.
3 Assignments
0 Petitions
Accused Products
Abstract
A server, methods, and software, for implementing a distributed, high capacity, high speed, operating system are disclosed. One embodiment concerns a Web server that is implemented with a plurality of members which are categorized into member classes. Each member class has a distinct specialized operating system that is optimized for its function. Together, the operating systems of the members make up an operating system referred to as the Federated Operating System™. One illustrative embodiment includes a receiver member, a dispatcher member, and a responder member. Each member has an internal network interface for coupling to an internal network which is used for communications between the members. Members can be located in the same enclosure or can be separated over large distances. Receiver members and responder members also have an external network interface for coupling to an external network such as the Internet. Receiver members receive requests from clients over the external network, and pass off data from the requests to dispatcher members over the internal network. A dispatcher member uses the internal network to send information to a responder member, instructing the responder member to send data requested by the client to the client over the external network. Preferred embodiments of the invention use address and host lookup algorithms that execute in a fixed amount of time even when searching large databases, which permits real time processing of a large number of connections.
-
Citations
12 Claims
-
1. A method for responding to a request received over an external network, comprising:
-
running a receiver operating system on a first member hardware unit;
running a dispatcher operating system on a second member hardware unit;
running a responder operating system on a third member hardware unit;
receiving, with the first member hardware unit, a request transmitted over the external network;
sending over an internal network, to the second member hardware unit, request data received by the first member hardware unit, wherein the request data includes an http header;
sending over the internal network, to the third member hardware unit, a message from the second member hardware unit instructing the third member hardware unit to transmit some response data over the external network;
transmitting response data over the external network from the third hardware unit;
identifying, with the second member hardware unit, the correct response to the request;
identifying, with the second member hardware unit, the third member hardware unit that has the correct response data out of a plurality of member hardware units having response data, and sending to the third member hardware unit the message instructing the third member hardware unit to transmit some response data over the external network; and
transmitting, information identifying the unique instance of the response associated with the connection, and information indicating the size of the response data, from the third member hardware unit to the second member hardware unit over the internal network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
looking up an IP address and TCP port contained in the request to determine if they correspond with an existing connection;
establishing a connection with a requesting client if a connection is not already established;
allocating a data structure in the second member hardware unit, to hold state information regarding the connection;
transmitting a connection identifier from the second member hardware unit to the first member hardware unit; and
allocating a data structure in the first member hardware unit, to hold state information regarding the connection.
-
-
9. The method of claim 8 further comprising:
-
receiving, with the first member hardware unit, an acknowledgement from a client;
determining, with the second member hardware unit, that all of the response data has been acknowledged by the client;
sending a message, over the internal network, from the second member hardware unit to the first member hardware unit, informing the first member hardware unit that a connection is to be closed;
sending a message, over the internal network, from the second member hardware unit to the third member hardware unit, informing the third member hardware unit that the unique instance for the response for the connection is no longer needed;
deallocating a data structure in the second member hardware unit containing state information for the subject connection with the client; and
closing the connection and deallocating, in the first member hardware unit, a data structure containing state information for the connection.
-
-
10. The method claim 9 further comprising configuring a server by:
-
assigning a receiver member class to at least one member hardware unit;
assigning a dispatcher member class to at least one member hardware unit; and
assigning a responder member class to at least one member hardware unit.
-
-
11. A method for initializing a server, comprising:
-
defining a plurality of members by assigning an operating system member class to each of a plurality of member hardware units, the assigned operating system member classes including at least one receiver member, and at least one responder member;
downloading operating system executable code to each member;
defining at least one TCP port and at least one IP address for each receiver member to accept connections on;
associating a receiver member and at least one other member with at least one connection;
determining a service to associate with at least one IP address/TCP port pair;
determining which host names to accept requests for;
loading response data onto at least one responder member; and
updating a corresponding data structure used to lookup responses with the identity and location of the response data in the at least one responder member.
-
-
12. A method for initializing a server, comprising:
-
defining a plurality of members by assigning an operating system member class to each of a plurality of member hardware units, the assigned operating system member classes including at least one receiver member, at least one dispatcher member, and at least one responder member;
downloading operating system executable code to each member;
defining at least one TCP port and at least on IP address for each receiver member to accept connections on;
informing each receiver member of at least one dispatcher member to associate with at least one connection;
informing at least one dispatcher member of a service to associate with at least one IP address/TCP port pair;
informing at least one dispatcher member of which host names to accept HTTP requests for;
loading response data onto at least one responder member;
informing at least one dispatcher member of the identity and location of the data in at least one responder member, and updating a corresponding dispatcher member data structure used to lookup responses, with the identity and location of the data in the at least one responder member.
-
Specification