SEQUENTIAL IDENTIFICATION OF A GROUP OF COMPUTERS CROSS-REFERENCE TO RELATED APPLICATIONS The present application claims priority of an earlier filed provisional application U. S.
Ser. No. 60/300,191, entitled SEQUENTIAL IDENTIFICATION OF A GROUP OF COMPUTERS, filed on June 21,2001, the entire content of which is incorporated herein by reference.
BACKGROUND 1. Field of the Invention The present application generally relates to identifying a computer in a group of computers. More particularly, the present application relates to identifying the network identification of the computer.
2. Related Art A group of computers can be linked together on a computer network. In some applications, these computers can be arranged as a rack of computers. Each computer can function as a server, client, or both as a server and client.
The installation and maintenance of such a group of computers can involve correlating each computer with its network identification, such as an IP or MAC address. This network identification can be dynamically or statically assigned to each computer in the group. By identifying a computer's network identification, a server can communicate with a particular computer in the group of computers. Furthermore, a system operator can identify a computer within the group of computers that needs maintenance or attention.
Typically, a system operator identifies each computer in a group of computers by either writing down hardware identification numbers attached to each computer's physical hardware, or interacting with each computer using input devices such as a keyboard or a mouse. In particular, a system operator can sequentially attach a keyboard to each computer and use keyboard input to identify the computer. After identifying a computer in a group of computers, the system operator can optionally assign a new network identification, such as an IP or MAC address, to the computer.
However, these ways of identifying computers in a group of computers are time consuming and typically require error-free recordation of hardware identification numbers, such as a MAC address, and the subsequent error-free input of those hardware identification numbers into a system. Furthermore, when using input devices such as a keyboard to interact with each computer, a keyboard and monitor must be attached to each computer in the group of computers. This arrangement can be inconvenient, especially when a single keyboard and a single monitor must be manually connected to each of the computers in a group of computers as each computer is identified.
Another way of identifying computers in a group of computers involves using specialized hardware that is connected to the group of computers. This specialized hardware can match each computer's physical hardware to a network address.
However, such specialized hardware can be costly to obtain and use.
Another way of identifying computers in a group of computers includes using individualized boot software. In particular, the individualized boot software can include media, such as a floppy disk or a CD-ROM, that includes a unique ID that can be used to identify and sequence the group of computers. However, both producing and using individualized boot software can be time consuming, particularly because the boot software media must be inserted into the correct computer within the group in order for the individualized boot software to identify the computer accurately.
Furthermore, a failure of the boot software media requires rebuilding that specific boot software media for the individual computers that failed.
Yet another way of identifying computers in a group of computers includes sequentially booting the computers, and identifying each computer by determining the order in which the computers complete their boot-up sequence. However, this way of identifying a computer in a group of computers can be time consuming because it requires waiting for the computers to boot-up and obtain a network address. The time required for the computers to boot-up can depend on factors such as the details of the computer hardware, network load, and the like. Furthermore, if one or more of the computers fail during the boot-up sequence, the group of computers may provide no indication to the human operator that a computer in the group failed, thus producing an identification sequence that is missing one or more of the computers in the group.
Accordingly, when the operator discovers the error, the sequence must be reconstructed.
SUMMARY The present application relates to methods and apparatus for identifying a computer among a group of computers, where each computer in the group is connected to a server and has a network identification.
In one embodiment, a computer in the group is physically manipulated after being turned on. A signal is sent to the server that can be identified with the physically manipulated computer and indicates that the computer has been physically manipulated. The signal is received at the server. The network identification associated with the received signal is associated with the physically manipulated computer.
In another embodiment, the apparatus includes a system having a group of computers to be identified and a server. Each computer in the group of computers is configured to detect a physical manipulation to the computer and send a signal to the server indicating that the computer has been manipulated and can be identified with the computer. The server is configured to receive a signal from each computer in the group of computers and associate it with the manipulated computer.
DESCRIPTION OF DRAWING FIGURES The present invention can be best understood by reference to the following description taken in conjunction with the accompanying drawing figures, in which like parts may be referred to by like numerals: Fig. 1 is a schematic diagram depicting a server and a group of computers; Fig. 2 is a flow chart depicting stages of an exemplary identification process; Fig. 3 is a flow chart depicting stages of another exemplary identification process; Fig. 4 is a flow chart depicting stages of yet another exemplary identification process; Fig. 5 is a flow chart depicting an exemplary process that can be used to identify and sequence a computer in a group of computers; and Fig. 6 is another schematic diagram depicting a server and a group of computers.
DETAILED DESCRIPTION In order to provide a more thorough understanding of the present invention, the following description sets forth numerous specific details, such as specific configurations, parameters, examples, and the like. It should be recognized, however, that such description is not intended as a limitation on the scope of the present invention, but is intended to provide a better description of the exemplary embodiments.
With reference to Fig. 1, a group of computers 100 can be arranged in a stack, rack, or any other configuration, and connected to server 102. Each computer in the group of computers 100 can function as a server, client, or both as a server and client, depending on the application. Furthermore, server 100 can function as a server, client, or both as a server and client, depending on the application. Although Fig. 1 shows a group of computers 100 arranged in a rack configuration, it should be recognized that the group of computers 100 can be arranged in any configuration.
As shown in Fig. 1, each computer in a group of computers 100 can be identified by a server by associating a network address, such as an IP or MAC address 104, with the computer. In each of the embodiments described below, computers and servers can include software that allows the computers and servers to communicate with each other. In particular, this software can allow a computer to contact a server and register its network address, provide a list of ways that the computer can be identified, and the like. Furthermore, although the following embodiments describe identifying a single computer in a group of computers, each computer in the group of computers can be identified sequentially.
With reference to Fig. 2, an embodiment of a process that can be used to identify a computer in a group of computers 100 (Fig. 1) is shown. In step 200, an operator can physically manipulate the state of a computer that is already turned on in a manner that is detectable by the computer. Next, in step 202, the computer can detect the manipulation and send a message to server 102 (Fig. 1) indicating that the computer has been manipulated. The message can include information such as network identification of the computer, information about the manipulation, and the like. In step 204, server 102 (Fig. 1) can then identify the manipulated computer by associating which computer was physically manipulated with which computer sent the message. In particular, server 102 (Fig. 1) can associate a network identification, such as an IP or MAC address, and the like, to this computer.
With reference to Fig. 3, another embodiment of a process that can be used to identify a computer in a group of computers 100 (Fig. 1) is shown. In step 300, the computer can send heartbeat messages to server 102 (Fig. 1) on a periodic basis. The heartbeat messages can include information such as network identification, information about the computer, and the like. Next, in step 302, an operator can physically manipulate the state of the computer in a manner that is detectable by the computer. In step 304, the computer can detect the manipulation and consequently fail to send at least one heartbeat message to server 102 (Fig. 1). In step 306, server 102 (Fig. 1) can identify the manipulated computer by associating which computer was physically manipulated with which computer failed to send a heartbeat message.
In particular, server 102 (Fig. 1) can associate a network identification, such as a network address, and the like, to this computer.
With reference to Fig. 4, another embodiment of a process that can be used to identify a computer in a group of computers 100 (Fig. 1) is shown. In step 400, an operator can physically manipulate the state of a computer that is already turned on in a manner that is detectable by the computer. Next, in step 402, software can automatically detect the manipulation and can identify the manipulated computer and associate it with a network identification, such as its IP or MAC address, and the like.
The software can be installed on the server, or as a system installed on both the computer and server.
With reference to Fig. 5, an embodiment of a possible sequence that can be used to identify a computer in a group of computers is shown. In step 500, the computer can emit a signal indicating that the computer is ready to be identified. This signal can be detectable by an operator in some manner such as visibly, audibly, and the like. For instance, the signal can include activating a light, activating a light emitting diode (LED), manipulating the display on an integral LCD, manipulating the display on an integral display panel, ejecting or reinserting a CD-ROM, emitting an auditory sound, and the like. Activating a light or LED can include illuminating the light or LED, flashing the light or LED, and the like. It should be recognized, however, that step 500 may not be used in all applications, such as when a computer is always ready for identification.
In step 502 of the present embodiment, an operator can physically manipulate the state of the computer in a manner that is detectable by the computer. Next, in step 504, the computer can detect the manipulation and send a message to server 102 (Fig.
1) indicating that the computer has been manipulated. The message can include information such as network identification of the computer, information about the manipulation, and the like. Alternately, for a computer that sends heartbeat messages to server 102 (Fig. 1), the computer can fail to send at least one heartbeat message when the computer detects an manipulation in step 504.
In step 506 of the present embodiment, server 102 (Fig. 1) can then identify the manipulated computer by associating which computer was physically manipulated with which computer sent the message. In particular, server 102 (Fig. 1) can associate a network identification, such as an IP or MAC address, and the like, to this computer.
Next, in step 508, server 102 (Fig. 1) can send a message to the computer.
The message can include information such as information that the computer has been properly identified and sequenced, and the like, and the message can include a command such as a command that the computer produce a signal indicating that the computer has been properly identified and sequenced.
In step 510, the computer being identified produces-a signal. The signal produced by the computer can be detectable by an operator in some manner, such as visibly, audibly, and the like. For instance, the signal can include activating a light, activating a light emitting diode (LED), manipulateing the display on an integral LCD, manipulating the display on an integral display panel, ejecting or reinserting a CD-ROM, emitting an auditory sound, and the like. Activating a light or a to LED can include illuminating the light or LED, flashing the light or LED, and the like.
It should be recognized, however, that step 508 and/or step 510 may be omitted in some applications, such as when server 102 (Fig. 1) provides an indication that the computer has been properly identified. For instance, when a computer fails to send a heartbeat message, the server can emit a signal that can notify an operator that the computer has been properly identified and seqenced.
In step 512 of the present embodiment, identification and sequencing information gathered about the computers can be used to assign network identification, such as an IP address, and the like, to the computers in an ordered sequence. However, it should be recognized that step 512 may be omitted in some applications, such as when the computers have already been assigned proper network addresses.
With reference now to Fig. 6, a group of computers 100 connected to server 102 is shown. The following is an example of a process of identifying the computers in the group of computers 100. In particular, assume computers 600,602, and 604 have already been identified. Specifically, assume computer 600 emitted a signal indicating that it was ready to be identified by activating its floppy light 106,116.
Then, an operator activated the power button 108,112 on computer 600 in order to manipulate computer 600. After computer 600 was successfully identified, computer 600 emitted a sound 110, indicating that identification was successful.
Similarly, assume computers 602 and 604 have also been identified by server 102. In particular, assume computer 602 emitted a signal indicating that it was ready to be identified by activating its floppy light 106,116. Then, an operator ejected a floppy disk 108,118 from computer 602 in order to manipulate computer 602. After computer 602 was successfully identified, computer 602 emitted a sound 110, indicating that identification was successful.
Furthermore, assume computer 604 emitted a signal indicating that it was ready to be identified by activating its floppy light 106,116. Then, an operator ejected a floppy disk 108,118 from computer 604 in order to manipulate computer 604. After computer 604 was successfully identified, computer 604 emitted a sound 110, indicating that identification was successful.
In the present embodiment, assume computers 606,608,610,612,614, and 616 are waiting to be identified by server 102.
In each of the above-described embodiments, the state of a computer can be physically manipulated in various ways. In particular, the state of a computer can be manipulated by manipulating any device, switch, interface, signal, and the like, that is connected to or part of the computer, and that is detectable by server 102 either directly or through a message generated by software on the computer. For example, physically manipulating a computer can include inserting or ejecting a floppy disk (118,120), CD-ROM disk, and the like, into or from the computer. Another way that a computer can be physically manipulated includes manipulating computer hardware, such as by moving a mouse, manipulating buttons or keys such as the power button (112), suspend button, reboot button, hotkey, keyboard key, and the like. In addition, a computer can be physically manipulated by attaching or removing a peripheral device, such as a keyboard, a mouse, dongle, serial device, parallel device, USB device, secondary network interface cable or card, and the like. Furthermore, a computer can be physically manipulated by attaching or removing a device, such as a keyboard, mouse, and the like, to or from any connector, such as a USB port, serial port, parallel port, Ethernet, other communications port, and the like. In addition, a computer can be physically manipulated by detaching a primary network cable, card, network interface device, and the like, where the detachment may be for a particular length of time, or may be detached until the entire set of computers has been identified and sequenced. Furthermore, a computer can be physically manipulated by a communication with an infrared port on the computer, or disconnecting the communications cable, card, network interface device, and the like, such as an Ethernet cable or card, while the server and computer or exchanging heartbeat messages. Moreover, a computer can be physically manipulated by inserting or ejecting a hot plug device, such as a hard drive, PCMCIA device, and the like.
Although the present invention has been described with respect to certain embodiments, examples, and applications, it will be apparent to those skilled in the art that various modifications and changes may be made without departing from the invention.