Soft switch extension for internet protocol applications
First Claim
1. A server in a client/server network using an improved TCP/IP protocol comprising:
- a. a processor executing a first software application and a second software application; and
b. a computer-readable medium having stored thereon;
i. a first monitoring process stored in a first region of a first range of memory addresses in the computer-readable medium, said monitoring process monitoring execution of said first software application,ii. a first active process flag stored in a second region of a second range of memory addresses in the computer-readable medium, said first active process flag identifying said first software application as being active when said first active process flag is set,iii. a second monitoring process stored in a third region of a third range of memory addresses in the computer-readable medium, said monitoring process monitoring execution of said second software application,iv. a second active process flag stored in a fourth region of a fourth range of memory addresses in the computer-readable medium, said second active process flag identifying said second software application as being active when said second active process flag is set, andv. an IP address stored in a fifth region of a fifth range of memory addresses in the computer-readable, said IP address identifying said server in said client/server network.
3 Assignments
0 Petitions
Accused Products
Abstract
An improved TCP/IP protocol for use in a client/server network is disclosed. The improved protocol allows a server to switch execution of an application from one processor or task to another processor or task without interruption of the IP connection or serious delay in execution of the application by a server or client. As implemented, each server usually includes a unique hardware address, an improved IP layer with a shared IP address, a "Speak No Evil-Communication Protocol" layer with a unique SNE-CP address, a soft switch protocol ("SSP") layer with at least one unique SSP address assigned to a process or task, usually a TCP layer, at least one SSP monitoring process and a processor executing at least one software application. In this invention, each server typically receives each message packet from each client; however, only one server is allowed to respond to the client'"'"'s message. Thus, in the event that one processor or task faults, the application can be switched to another processor or task without interruption of the IP connection or serious delay in execution.
102 Citations
17 Claims
-
1. A server in a client/server network using an improved TCP/IP protocol comprising:
-
a. a processor executing a first software application and a second software application; and b. a computer-readable medium having stored thereon; i. a first monitoring process stored in a first region of a first range of memory addresses in the computer-readable medium, said monitoring process monitoring execution of said first software application, ii. a first active process flag stored in a second region of a second range of memory addresses in the computer-readable medium, said first active process flag identifying said first software application as being active when said first active process flag is set, iii. a second monitoring process stored in a third region of a third range of memory addresses in the computer-readable medium, said monitoring process monitoring execution of said second software application, iv. a second active process flag stored in a fourth region of a fourth range of memory addresses in the computer-readable medium, said second active process flag identifying said second software application as being active when said second active process flag is set, and v. an IP address stored in a fifth region of a fifth range of memory addresses in the computer-readable, said IP address identifying said server in said client/server network. - View Dependent Claims (2, 3)
-
-
4. A plurality of servers in a client/server network, said plurality of servers using an improved TCP/IP protocol, said plurality of servers comprising:
-
a. one of said plurality of servers including a first computer-readable medium having stored thereon; i. a first IP address stored in a first region of a first range of memory addresses in the first computer-readable medium, ii. a first active server flag stored in a second region of a second range of memory addresses in the first computer-readable medium, said first active server flag identifying said one of said plurality of servers as an active server when said first active server flag is set; and b. another of said plurality of servers including a second computer-readable medium having stored thereon; i. a second IP address stored in a third region of a third range of memory addresses in the second computer-readable medium, ii. a second active server flag stored in a fourth region of a fourth range of memory addresses in the second computer-readable medium, said second active server flag identifying said another of said plurality of servers as the active server when said second active server flag is set, whereby each of said plurality of servers receive client requests and each of said plurality of servers mirror actions performed by the active server, but only the active server is allowed to respond to the client requests. - View Dependent Claims (5, 6)
-
-
7. A plurality of servers in a client/server network, said plurality of servers using an improved TCP/IP protocol, each of said plurality of servers comprising:
-
a. a processor executing a software application; b. a computer-readable medium having stored thereon; i. an IP address stored in a first region of a first range of memory addresses in the computer-readable medium, the IP address of each of said plurality of servers being identical, ii. an active server flag stored in a second region of a second range of memory addresses in the computer-readable medium, said first active server flag identifying said one of said plurality of servers as an active server when said active server flag is set, iii. a monitoring process monitoring execution of said software application; and c. an interface to the client/server network, said interface having a unique hardware address that identifies the server on the client/server network, whereby each of said plurality of servers receive client requests and each of said plurality of servers mirror actions performed by the active server, but only the active server is allowed to respond to the client requests.
-
-
8. A method of switching execution of an application from a first processor to a second processor, said method comprising the steps of:
-
a. terminating execution of the application on the first processor; b. sending a first message to start execution of the application on the second processor; and c. sending a second message signaling that the start of execution of the application on the second processor was successful.
-
-
9. A method of switching execution of an application from a first processor having a first active flag to a second processor having a second active flag, said method comprising the steps of:
-
a. sending a first message signaling that a switch is about to take place; b. terminating execution of the application on the first processor; c. sending a second message to toggle the first active flag and the second active flag; and d. sending a third message to the second monitoring task to start execution of the application on the second processor. - View Dependent Claims (10)
-
-
11. A method of switching execution of an application from a first processor, having a first monitoring task and a first active flag, to a second processor, having a second monitoring task and a second active flag, said method comprising the steps of:
-
a. sending a first message from the first monitoring task to the second monitoring task that a switch is about to take place; b. the second monitoring task acknowledging the first message from the first monitoring task; c. the first monitoring task terminating execution of the application on the first processor; d. sending a second message to toggle the first active flag and the second active flag; e. sending a third message to the second monitoring task to start execution of the application on the second processor; and f. sending a fourth message from the second monitoring task that the start of execution of the application on the second processor was successful.
-
-
12. A method of switching execution of an application from a first computer having a first active flag to a second computer having a second active flag, said method comprising the steps of:
-
a. sending a first message signaling that a switch is about to take place; b. terminating execution of the application on the first computer; c. sending a second message to toggle the first active flag and the second active flag; and d. sending a third message to the second monitoring task to start execution of the application on the second computer. - View Dependent Claims (13)
-
-
14. A method of starting a plurality of computers on a network, each of said plurality of computers having an active server flag, said network including a router, said method comprising the steps of:
-
a. one of said plurality broadcasting an SNE-CP message to the network; b. said router updating at least one routing table to reflect that said one of said plurality is an active server; c. said one of said plurality waiting for a time period; d. if a response is received from another of said plurality within said time period, said one of said plurality setting its said active server flag to inactive and said another of said plurality informing said router that said another of said plurality of computers is the active server; and e. if said response is not received from said another of said plurality of computers within said time period, said one of said plurality setting its said active server flag to active.
-
-
15. A server in a client/server network using an improved TCP/IP protocol comprising:
-
a. means for executing a first software application and a second software application; b. first monitoring means for monitoring execution of said first software application; c. first active process means for identifying when said first software application is active, said first monitoring means communicating with said first active process means, said first monitoring means informing said first active process means when said first software application is active; d. second monitoring means for monitoring execution of said second software application; e. second active process means for identifying when said second software application is active, said second monitoring means communicating with said second active process means, said second monitoring means informing said second active process means when said second software application is active; and f. IP means for identifying an IP address for the server, said IP address identifying said server in said client/server network.
-
-
16. A plurality of servers in a client/server network, said plurality of servers using an improved TCP/IP protocol, each of said plurality of servers comprising:
-
a. means for executing a software application; b. means for storing an IP address, the IP address of each of said plurality of servers being identical; c. means for monitoring execution of said software application; d. active server means for identifying an active server, said active server means identifying said one of said plurality of servers as the active server; e. interfacing means for interfacing with the client/server network, said interfacing means having a unique hardware address that identifies the server on the client/server network, whereby each of said plurality of servers receive client requests and each of said plurality of servers mirror actions performed by the active server, but only the active server is allowed to respond to the client requests.
-
-
17. A method of communicating between a plurality of computers on a client/server network using a plurality of protocols, said client/server network having at least one router, said method comprising the steps of:
-
a. said at least one router receiving a message formatted in a first protocol of said plurality of protocols; b. said at least one router translating said message into a first translated message, said first translated message being formatted in a second protocol of said plurality of protocols; c. said at least one router sending said first translated message to at least one of said plurality of computers; d. said at least one of said plurality of computers translating said first translated message into a second translated message, said second translated message being formatted in a third of said plurality of protocols; and e. said at least one of said plurality of computers sending said second translated message to at least another of said plurality of computers.
-
Specification