In some networks, when a computer is initially started, various management tasks are performed with respect to the computer. Typically, such management tasks are performed by a management server that is coupled to the network. To find a management server, a computer often broadcasts a User Datagram Protocol (UDP) packet onto the network, which broadcast UDP packet is received by all nodes on the network. UDP is described in Request for Comments (RFC) 768, entitled “User Datagram Protocol,” dated August 1980. A management server monitors for broadcast UDP packets, and records the address of each new computer identified by a broadcast UDP packet.
More recently, for security reasons and to lower bandwidth usage of a network, many organizations are disabling the use of UDP communications on networks. If UDP is disabled on a network, then a computer that has just started on a network may not be able to find a management server, since broadcast UDP packets transmitted by the computer will be blocked and thus will be unable to reach a management server. As a result, the management server may not notice that a computer has started on a network, which prevents the management server from performing management tasks with respect to the computer. The computer will therefore not be configured properly on the network, which may prevent proper functioning of the computer on the network.
Some embodiments of the invention are described with respect to the following figures:
A “thin client” computer refers to a computer having reduced features, such as an operating system with reduced capabilities and a storage having reduced capacity. Also, a thin client computer generally has a reduced set of software applications running on the thin client computer. Generally, a thin client computer is used to access capabilities on one or more application servers 108 (also coupled to the network 100). In the ensuing discussion, reference is made to thin client computers. However, it is noted that in alternative embodiments, other types of client computers (standard computers with full features rather than reduced features) can be used instead.
The application servers 108 can provide any one or more of the following services: run applications for performing various tasks, provide storage to store databases of information, and so forth. For example, the application servers 108 can be servers used in a bank, where financial and account information of customers is stored. The thin client computer 102 of
According to some embodiments, the thin client computer 102 includes an embedded operating system 110. An embedded operating system is an operating system designed to be relatively compact and efficient, with various features and functionalities of non-embedded or normal operating systems omitted. Examples of embedded operating systems include WINDOWS® CE, WINDOWS® XP embedded, embedded Linux, a real-time operating system (RTOS), and so forth.
The thin client computer 102 also includes a non-volatile storage 112, which can be implemented as a hard disk drive, a non-volatile integrated circuit (IC) storage device (such as a flash memory and the like), or other storage device. For reduced costs, the non-volatile storage 112 has a smaller capacity than storage used in standard computers with full-featured operating systems. The non-volatile storage 112 is coupled to a central processing unit (CPU 114), on which various software modules are executable. For example, the embedded operating system 110 is executable on the CPU 114. Other software in the thin client computer 102 includes a management client software module 116 and a DHCP (Dynamic Host Configuration Protocol) client software module 118.
The management client software module 116 is used to communicate with a management server software module 120 in the management server computer 104. The DHCP client software module 118 is used to communicate with a DHCP server software module 122 in a DHCP server computer 124. DHCP is described in RFC 1541, entitled “Dynamic Host Configuration Protocol,” dated October 1993. Definition of DHCP options and vendor-specific options (for inclusion in DHCP messages) is specified by RFC 2132, entitled “DHCP Options and BOOTP Vendor Extensions,” dated March 1997.
DHCP defines messaging between the client computer 102 and the DHCP server computer 124 for the purpose of obtaining configuration information of the client computer 102 from the DHCP server computer 124. As discussed further below, in accordance with some embodiments, a client computer and the DHCP server computer 124 are configured such that the DHCP server computer 124 is able to provide an address (such as an Internet Protocol (IP) address) of the management server computer 104 to the client computer 102 in a configuration message (defined by DHCP). By using DHCP messaging to allow the client computer 102 to find the IP address of the management server computer 104, UDP (User Datagram Protocol) broadcasting for the purpose of finding a management server computer would not have to be performed so that the client computer 102 can still identify itself to the management server computer 104 even in networks that block UDP communications.
The DHCP server computer 124 is an example of a configuration server that contains a database 126 of configuration information used for storing configuration information for various configuration clients, such as the client computer 102. The configuration requests and responses are exchanged between the configuration client (e.g., client computer 102) and the configuration server (e.g., DHCP server computer 124) for the purpose of retrieving configuration information of the configuration client from the configuration server. Moreover, in accordance with some embodiments, a further configuration information included in a DHCP response from the DHCP server computer 124 to the client computer 102 is the IP address of the management server computer 104. The configuration database 126 is stored in a storage 128 of the DHCP server computer 124. The DHCP server computer 124 also includes one or plural CPUs 130 on which the DHCP server software module 122 is executable.
More generally, instead of reference to DHCP server software module 122, reference is made to a configuration server software module. Similarly, in the client computer 102, instead of a DHCP client software module 118, reference is made more generally to a configuration client software module. In alternative embodiments, instead of using DHCP messages between the client computer 102 and the configuration server computer 124, other types of configuration messaging can be used. Thus, generally, a configuration response from a configuration server to a client can include an address of a management server.
Each of the DHCP server computer 124, client computer 102, and management server computer 104 includes a network interface 132, network interface 134, and network interface 136, respectively, that is coupled to the network 100.
The management server software module 120 in the management server computer 104 is able to perform various management tasks with respect to the client computer 102 (via communication with the management client software module 116 in the client computer 102). Examples of management tasks include any one or more of the following: rebooting the client computer 102; obtaining an inventory of various aspects of the client computer 102, such as the type of CPU, storage capacity, serial number, type of operating system, software versions, and so forth; updating or adding software applications at the client computer 102; performing operating system updates at the client computer 102; retrieving an image of software on the client computer 102, such as an image of the operating system and application software along with various data stored in the non-volatile storage 112; and other management tasks.
The management server computer 104 also includes one or more CPUs 138 that are coupled to a storage 140. The management server software module 120 is executable on the one or more CPUs 138.
Also, in accordance with some embodiments, the network interface 136 of the management server computer 104 also includes a UDP/IP (User Datagram Protocol/Internet Protocol) stack 146, which includes network interface layers for the purpose of performing UDP/IP communications (UDP messaging carried in IP packets) over the network 100. The network interface 134 of the client computer 102 also includes a UDP/IP stack 144 for communicating with the UDP/IP stack 146 of the management server computer 104.
In accordance with some embodiments, the client computer 102 is able to selectively use one of at least two techniques for finding the management server computer 104 by obtaining an address, such as an IP address, of the management server computer 104. As noted above, a first technique of obtaining the IP address of the management server computer 104 is by exchanging configuration messages between the DHCP client software module 118 in the client computer 102 and the DHCP server software module 122 in the DHCP server computer 124. A DHCP response sent from the DHCP server computer 124 to the client computer 102 in response to a DHCP request from the client computer 102 contains a vendor-specific option field that is defined to store the IP address of the management server computer 104. The vendor-specific option field that contains the IP address of the management server computer 104 is stored in the configuration database 126. Thus, each of multiple client computers 102 coupled to the network 100 is able to access the DHCP server computers 124 to retrieve the IP address of the management server computer 104 for the purpose of enabling communications between each client computer 102 and the management server computer 104.
In some cases, the DHCP server computer 124 may not be configured to store a vendor-specific option field for containing the IP address of the management server computer 104. In such an arrangement, the client computer 102 may not be able to obtain the IP address of the management server computer 104 from the DHCP server computer 124. In this arrangement, the client computer 102 can select a second technique to use for finding the management server computer 104, namely by sending a broadcast UDP message or packet over the network 100. The broadcast UDP packet is received by all nodes on the network 100, including the management server computer 104. When the management server computer 104 sees the UDP packet, the management server computer 104 sends its IP address to the client computer 102.
By selectively employing one of at least two techniques of obtaining the IP address of the management server computer 104 to find the management server computer 104, flexibility is enhanced. For example, in cases where the router 106 is configured to block UDP packets, use of the second technique (that involves a broadcast UDP packet) would not be successful in identifying the IP address of the management server computer 104. In this scenario, use of the DHCP configuration procedure allows the client computer 102 to obtain the IP address from the DHCP server computer 124 instead of from the management server computer 104.
Alternatively, in another scenario, the DHCP server computer 124 may not be configured to store the IP address of the management server computer 104. In this case, if the router 106 allows UDP packets to pass through, then the client computer 102 can select use of the broadcast UDP messaging for finding the management server computer 104.
Although only one DHCP server computer 124 and management server computer 104 are depicted in
More generally, the DHCP request sent at 202 is a configuration request sent from the client computer to a configuration server, and the DHCP ACK message is a configuration response that contains configuration information, which may include the EP address of a management server, if the configuration server is configured to store the IP address of a management server.
Upon receiving the DHCP ACK message, the thin client computer 102 determines (at 206) whether the IP address of the management server has been received. If so, the IP address of the management server computer 104 is stored (at 208) (as management IP address 142 in non-volatile storage 112 in
If the IP address of the management server computer 104 is not received in the configuration response sent at 204, then the client computer 102 selects the second technique of obtaining the IP address of the management server by sending (at 212) a broadcast UDP packet (containing the address of the client computer) to the management server computer 104. The management server computer 104 records (at 214) the address of the client computer in the management server computer 104. Also, the management server computer 104 sends (at 216) a message containing the IP address of the management server computer 104 to the client computer 102 such that the client computer 102 can establish communications (at 210) with the management server computer 104, as discussed above.
Note that the transmission at 216 is performed in response to the broadcast UDP packet sent at 212. In other words, the transmission at 216 does not occur if the client computer 102 has obtained the IP address of the management server from the DHCP server computer 124. Thus, the client computer 102 selects the first technique (involving use of configuration messages such as DHCP messages) for finding the management server in response to detecting that a configuration response from the configuration server contains the IP address of the management server. Alternatively, the client computer 102 selects the second technique (involving use of a broadcast UDP packet) of finding the management server in response to detecting that a configuration response from the configuration server does not contain the IP address of the management server.
In addition to enhanced flexibility, other benefits that may be provided by some embodiments are listed below. For example, if the configuration procedure is performed to obtain the IP address of the management server, the content of the option field containing the IP address of the management server can be easily changed, such as when there are conflicts between two or more management servers. A further benefit is that by using the configuration procedure to retrieve the IP address of the management server, the management tasks performed by the management server with respect to the client computer can be performed across different subnets, such as the subnets coupled by a router 106 in
Instructions or code of software described above (including the management client software module 116, DHCP client software module 118, DHCP server software module 122, and management server software module 120 in
Data and instructions (of the software) are stored in respective storage devices, which are implemented as one or more machine-readable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; and optical media such as compact disks (CDs) or digital video disks (DVDs).
In the foregoing description, numerous details are set forth to provide an understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these details. While the invention has been disclosed with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover such modifications and variations as fall within the true spirit and scope of the invention.