Personal computer systems are well known in the art. They have attained widespread use for providing computer power to many segments of today's modern society. Personal computers (PCs) may be defined as a desktop, floor standing, or portable computer that includes a system unit having a central processing unit (CPU) and associated volatile and non-volatile memory, a display, an input-output device such as a keyboard and/or a mouse, a storage device such as a hard disk storage drive, and, in many instances, a network interface adapter. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. Examples of such personal computer systems are IBM's PC 300 series, Aptiva series, and Intellistation series.
Computer systems typically communicate with network resources via local area networks (LANs), such as campus-area networks (CANs) or home-area networks (HANs), or via wide area networks (WANs), such as metropolitan-area networks (MANs) or the Internet. The widespread use of PCs in conjunction with networks has resulted in a reliance on the network resources, or other computer systems, for, just to name a few, telecommuting, obtaining news and stock market information, trading, banking, shopping, shipping, communicating in the form of Voice Internet protocol (VoiceIP) and email. For many, PCs represent an essential tool for their livelihood. In today's networked world, the availability and performance of the network is as important as the availability and performance of the personal computer. Thus, it is desirable to minimize loss of productivity by increasing availability of network resources.
A growing trend in large scale computing today is to have various services, e.g., audio player, video player, router, a hardware access routine, etc., provided by multiple nodes in a distributed computing environment. In such a complex environment, downloading a specific set of software on a node based on its location and specific service is required and is very useful, but is difficult to implement. This problem becomes more complicated if the nodes are diskless, i.e., cannot reboot themselves and must get their images from others, and receive their images from a common entity. Typically, a certain firmware is already loaded on the node. If one node is to provide just hardware access, then another set of firmware is loaded onto another node. So, no TFTP servers allow one to download two different images from the same server. Instead, a TFTP server normally only has one image, which is loaded on a node, and this disclosure provides solutions to change that by dynamically loading a service onto a node on a networked computer system, and, thereby permit multiple images from a TFTP server based on what the node requests for the service that the node is to supply.
Embodiments of this disclosure generally provide methods, systems, and media for dynamically loading a service onto a node on a networked computer system. One embodiment of the method includes requesting, by a service requester, of a service from a service broker. Further, the method includes selecting, by the service broker, of the node among the nodes on the networked computer system. Further still, the method includes re-booting, by the service broker, of the node based on the selecting and requesting, by the node, of an image from a TFTP relay agent for the service for the node. Yet further, the method includes querying, by the TFTP relay agent, for a type of the service from the service broker for the node, and downloading of the image for the type of the service from a software repository accessed by the TFTP relay agent to the node. Finally, the method includes booting, by the node, to the image, informing the service requester by the node that the service is ready for use, and using the service on now loaded on the node.
In another embodiment, this disclosure provides a system for dynamically loading a service onto a node on a networked computer system. The system includes a networked computer system comprising a service requester, a service broker, a TFTP relay agent, a software repository, and one or more nodes. The system's service requester requests a service from the service broker. The system's service broker selects the node among the one or more nodes and re-boots the node selected by the service broker. The system's node selected by the service broker requests an image from the TFTP relay agent for the service for the node. The system's TFTP relay agent queries the service broker for a type of the requested service, reads the system's software repository for the image, and then downloads the image for the type of the service from the system's software repository to the node. And, finally, the system's node selected by the service broker boots the image and informs the service requester that the service is now ready for use, e.g., the downloaded service, such as an audio or video filename, and now loaded onto the node may be used by the node having an audio or video player.
In yet another embodiment, this disclosure provides a machine-accessible storage medium containing instructions for dynamically loading a service onto a node on a networked computer system. The instructions generally include operations for requesting, by a service requester, of a service from a service broker. Further, the instructions include operations for selecting, by the service broker, of the node among the nodes on the networked computer system. Further still, the instructions include operations for re-booting, by the service broker, of the node based on the selecting and requesting, by the node, of an image from a TFTP relay agent for the service for the node. Yet further, the instructions include operations for querying, by the TFTP relay agent, for a type of the service from the service broker for the node, and downloading of the image for the type of the service from a software repository accessed by the TFTP relay agent to the node. Finally, the instructions include operations for booting, by the node, to the image, informing the service requester by the node that the service is ready for use, and using the service now loaded on the node.
So that the manner in which the above recited features, advantages and objects of the present disclosure are attained and can be understood in detail, a more particular description of this disclosure, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for this disclosure may admit to other equally effective embodiments.
The following is a detailed description of example embodiments of this disclosure depicted in the accompanying drawings. The embodiments are examples and are in such detail as to clearly communicate this disclosure. However, the amount of detail offered is not intended to limit the anticipated variations of embodiments; on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present disclosure as may be defined by the appended claims. The detailed descriptions below are designed to make such embodiments obvious to a person of ordinary skill in the art.
Generally speaking, methods, and media for dynamically loading a service onto a node on a networked computer system are contemplated. A service requester may request a service, e.g., programmable serial interface (psi), from a service broker, which may searches what nodes are present, free and available in the networked computer system. The service broker may select a particular node based on the search and reboot the selected node. The rebooted node requests a image from a TFTP relay agent, which informs the service broker that the selected node is requesting a software/firmware/operator system image (“image”) to perform the example psi service. The TFTP relay agent reads the image located on a software repository, and downloads that image onto the selected node. The selected node boots from the downloaded image that supports the example psi service, loads that image, and starts the service on the node, e.g., the psi service., that is now ready for use on the node for the desired service.
By way of further general discussion, this disclosure defines solutions using a broker to determine, for example, the service type and the file name, for loading onto a node, and thus coupling the service management and file download based on the hardware location. This allows a server requester to decide what services are being provided by a particular node based on the hardware location and a image that needs to be provide from a software repository having one or more images.
The process for service determination and image download may be viewed as two parts. First, the node that needs a specific service selects a node based on the location, as well as being free and available, to provide the service. Second, the tiny or trivial transfer protocol (TFTP) relay agent comprising one or more servers queries the service location to find the map for the image based on the node and service the node needs to provide.
The service broker tracks the hardware nodes present and their current status, i.e., whether free and available. When a node requests a particular device, the node looks at the current list of nodes and allocates one to be used for the service. The service broker also sends a message to the node to reload the image. When a node requests the image download, the TFTP relay agent queries the service broker for the service. Based on the service type, e.g., audio or video player, the TFTP relay agent extracts the image from the software repository and downloads the image to the node.
By way of the following examples, aspects of this disclosure may be further envisaged. Imagine there are fifteen different devices that can actually play video and music together. Prior to this disclosure, a ps3 device or node would play video and a psp device or node would play audio, and each would receive their images from a central server. With this disclosure, however, modularization of hardware based on what service is desired is possible. That is, one node may do any service and/or one node may do another node's function so long as the hardware is there to support it. Turning to the home environment for another example, one may have a PC, which may have a ps3, psp and and X-Box devices or nodes. From the PC, a user tells the ps3 node what to do, i.e., only download, and do not do video. So, the ps3 node will be re-booted and then be provided a new image, which will makes the ps3 node function like an ftp server and download data. The X-Box device will do nothing but receive the new image in order to play video. As a result of this disclosure, one no longer needs to receive an image and place it on a CD or a harddisk and boot therefrom. That is, one no longer needs to load the image onto the device by hand. Instead, the present disclosure allows for dynamic loading of an image onto a node. The nodes do not have pre-loaded images, but are loaded dynamically onto the selected node for the particular service because the abstracted images required to perform the particular service on the nodes are located on the software repository of the TFTP server accessed by the TFTP relay agent through use of a broker.
Turning now to the drawings,
The system 100 depicts an application 110 on the networked computer system 110 coupled 115 to the computer 117 having a node 125 as well as other unnumbered nodes associated with the computer 117. The application 110, enabled by logic reduced to hardware and/or software, may actually be one or more applications, and may collectively and/or separately include a service requester 120, a service broker 130, and a TFTP relay agent 140. The point here is still the same: in various, example embodiments, the actual components of the networked computer system 110, have enabling logic reduced to hardware and/or software, may be parceled together in various embodiments, but the components are sill logically interconnected through enabling logic to permit transfer of the proper image 160 to a selected node 125 that is free and available to perform the desired service 145 required for a node 145 by transfer of that image 160 to the selected node 145.
Discussing
The service broker 130, through enabling logic, selects the node 125 among the one or more nodes in the computer 117, and for simplicity's sake of this discussion, the service broker 130 is said to select node 125 among the nodes on the computer 117 for the service 145 to be performed on the computer 117. Before the service broker 130 actually selects the node 125 among the one or more nodes on the computer 117, however, the service broker 130 searches among the nodes in order to select a node 125 that is free and available for performing the service 145. Thereafter, through further enabling logic reduced to software and/or hardware, the service broker 130 reboots the selected node 125.
As part of the reboot sequence, the selected node 125 requests an image 160 from a TFTP relay agent 140 for the service 145 for the selected node 125. The TFTP relay agent 140, having enabling logic reduced to software and/or hardware, may comprise one or more servers for querying the service broker 130 for a type, e.g., video or audio, of the service 145 for the now requested image 160 to tell the TFTP relay agent 140 which image 160 to read from an associated software repository 155 containing one or more images, including image 160, available for download by the TFTP relay agent 140 for the type of the requested service 145 to the selected node 125. As can be seen, the service broker 130 is analogous to a conductor of an orchestra comprised of components directed to provide a service 145 on a selected node 125, which may provide video and audio much like an orchestra.
After the image 160 from the software repository 160 accessed by the TFTP relay agent to the selected node 125, the example system 100 culminates by booting the selected node 125 to the downloaded image 160 as directed by the reboot sequence from the service broker 130. Thereafter, the node 125 informs the service requester 120 that the service 145 is ready for use, whereby the service requester 120 uses the service 145 on the node 125.
Turning now to
Flowchart 200 starts 205 by requesting 210 a service from a service broker. The service broker selects 220 a node by searching among the one or more nodes in the networked computer system that is free and available, i.e., a node is not currently being used and is capable of performing a service. In selecting 220 such a node, there may be one or many nodes, such as in IBM's system i/p servers, wherein a machine typically has eight nodes with two node controllers per node to prevent single point failure, and in such a configuration, it is understood that the node controllers behave as the nodes as described elsewhere herein, i.e., the node controllers are capable of providing a service if the image is downloaded thereto by the TFTP relay agent from the software repository.
Returning to flowchart 200, after selecting 220 the node among the one or more nodes possible in the networked computer system, the flowchart 200 continues by re-booting 230 the selected node by a service broker. The service broker requests 240, such as by communicating through one or more messages, an image from a TFTP relay agent for the service to be performed on the selected 240 node. The TFTP relay agent then queries 250 the service broker for a type of service for the selected 240 node, and locates the type of the service for the selected node through this querying 250. The TFTP relay agent downloads 260 the image for the type of the service from a software repository for and to the selected 240 node. The node boots 270 to the now downloaded 260 image from the software repository, and informs 280 the service requester that the selected 240 node is now ready for use. Finally, the flowchart 200 culminates in the node beginning 290 use of the service loaded onto the selected 240 node before the flowchart ends 295.
Moving on to
BIOS 480 is coupled to ISA bus 440, and incorporates the necessary processor executable code for a variety of low-level system functions and system boot functions. BIOS 480 can be stored in any computer-readable storage medium, including magnetic storage media, optical storage media, flash memory, random access memory, read only memory, and so forth. In order to attach computer system 401 to another computer system to copy files over a network, LAN card 430 is coupled to PCI bus 425 and to PCI-to-ISA bridge 435. Similarly, to connect computer system 401 to an ISP to connect to the Internet using a telephone line connection, modem 475 is connected to serial port 464 and PCI-to-ISA Bridge 435.
While the computer system described in
Another embodiment of the disclosure is implemented as a program product for use within a device such as, for example, those systems and methods depicted in
In general, the routines executed to implement the embodiments of this disclosure, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present disclosure typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of this disclosure. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus this disclosure should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
While the foregoing is directed to example embodiments of this disclosure, other and further embodiments of this disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.