Methods and systems are disclosed for dynamically managing multicast sessions for software downloads and, more particularly, for such software downloads used in build-to-order manufacturing information handling systems. Multiple multicast sessions are automatically managed simultaneously, where each session can have its own unique set of session parameters, in such a way as to support a high mix, high volume manufacturing build-to-order environment. multicast session control parameters, such as start time and client count, are defined for each multicast session base upon download requests from the information handling systems as they reach the software installation phase.
|
5. A multicast session manager for a manufacturing system for information handling systems, comprising a session parameter controller configured to receive multicast download requests related to a plurality of information handling systems being manufactured in a manufacturing line when they reach a software installation phase during their manufacture, to create a plurality of multicast sessions based upon the requests, to assign each information handling system to a multicast session, to define one or more multicast session control parameters for each multicast session, and to cause datasets to be downloaded to the information handling systems through communication channels while the information handling systems are being manufactured within the manufacturing line;
wherein the one or more multicast session control parameters comprises a start time for each multicast session, the start time representing a time period after which the multicast session download will begin;
wherein the start time is calculated by the multicast session manager utilizing a time at which a multicast download session is being created plus a wait time, wherein the wait time represents an amount of time after which a run-rate for the manufacturing line would be affected;
wherein the wait time is also calculated utilizing a value representing a time to download a dataset requested to be downloaded and a value representing a time allowed in the manufacturing line for software installation;
wherein the wait time is also calculated utilizing a value representing a time to download additional datasets not part of the multicast download and a value representing additional post-download set-up time; and
wherein the plurality of information handling systems are being manufactured within a build-to-order manufacturing line where information handling systems are built according to customer selected configurations.
7. A method for downloading datasets to information handling systems
during the manufacture of the information handling systems in a manufacturing line, comprising:
providing a plurality of information handling systems being manufactured within a manufacturing line and configured to manufacture the plurality of information handling systems, the plurality of information handling systems being configured to communicate through communication channels during the manufacture of the information handling systems;
receiving multicast download requests related to the plurality of information handling systems in the manufacturing line when they reach a software installation phase while the information handling systems are being manufactured;
creating a plurality of multicast sessions based upon the requests; assigning each information handling system to at least one multicast session; and
downloading one or more datasets to the information handling systems through the communication channels using the plurality of created multicast sessions while the information handling systems are being manufactured within the manufacturing line;
wherein the defining step comprises defining a start time for each multicast session, the start time representing a time period after which the multicast session download will begin;
wherein the start time is calculated by a multicast session manager utilizing a time at which a multicast download session is being created plus a wait time, wherein the wait time represents an amount of time after which a run-rate for the manufacturing line would be affected;
wherein the wait time is also calculated utilizing a value representing a time to download a dataset requested to be downloaded and a value representing a time allowed in the manufacturing line for software installation;
wherein the wait time is also calculated utilizing a value representing a time to download additional datasets not part of the multicast download and a value representing additional post-download set-up time; and
wherein the plurality of information handling systems are being manufactured within a build-to-order manufacturing line where information handling systems are built according to customer selected configurations.
1. A manufacturing system for manufacture of information handling systems including a managed multicast download system, comprising:
a manufacturing line configured to manufacture a plurality of information handling systems, the manufacturing line including a software installation phase in which datasets are downloaded to the information handling systems through a plurality of multicast downloads while the information handling systems are being manufactured;
a plurality of information handling systems being manufactured within the manufacturing line and configured to communicate through communication channels with multicast infrastructure to receive datasets through the communication channels during the manufacture of the information handling systems;
multicast infrastructure in communication with the manufacturing line and configured to download datasets to the information handling systems through the communication channels using a plurality of multicast downloads; and
a multicast session manager in communication with the manufacturing line and the multicast infrastructure, the multicast session manager being configured to receive multicast download requests related to the information handling systems when they reach the software installation phase, to create a plurality of multicast sessions based upon the requests, to assign each information handling system to a multicast session, and to provide one or more multicast session control parameters to the multicast infrastructure to cause the datasets to be downloaded to the plurality of information handling systems through the communication channels of while the information handling systems are being manufactured within the manufacturing line;
wherein the one or more multicast session control parameters comprises a start time for each multicast session, the start time representing a time period after which the multicast session download will begin;
wherein the start time is calculated by the multicast session manager utilizing a time at which a multicast download session is being created plus a wait time, wherein the wait time represents an amount of time after which a run-rate for the manufacturing line would be affected;
wherein the wait time is also calculated utilizing a value representing a time to download a dataset requested to be downloaded and a value representing a time allowed in the manufacturing line for software installation;
wherein the wait time is also calculated utilizing a value representing a time to download additional datasets not part of the multicast download and a value representing additional post-download set-up time; and
wherein the plurality of information handling systems are being manufactured within a build-to-order manufacturing line where information handling systems are built according to customer selected configurations.
2. The manufacturing system of
3. The manufacturing system of
4. The manufacturing system of
6. The multicast session manager of
8. The method of
9. The method of
|
This invention relates to the management of multicast software downloads and, more particularly, to the download of software to information handling systems in a manufacturing environment.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Some information handling systems are manufactured using build-to-order manufacturing processes. As part of this process, datasets are typically downloaded to the information handling system. These datasets can include, for example, operating system software, application software, other software, data files and customer specific images or interfaces. This dataset download process can be implemented manually; however, it is more efficiently implemented through a network infrastructure such that a database of information provides the source for datasets being downloaded to the build-to-order information handling systems. One problem with current network infrastructures is the limited bandwidth provided between the server system, which controls the database, and the client machines to which datasets are being downloaded.
IP multicasting protocols, which are currently known and implemented by a variety of vendors, enable a file server to send a single copy of a file to multiple clients simultaneously. As such, multicasting can be far more efficient than requiring the server to send an individual copy of a file to each client (often referred to as point-to-point unicast). With respect to this point-to-point unicast, the number of clients is restricted by the amount of bandwidth available to the server, as each client will consume an equal amount of the bandwidth available. As more clients attach to the server the download speed decreases dramatically. With IP multicast only one stream of data is sent out for all clients, therefore there is no limit to the number of clients that can download a file from the server at the same time. Also, the reduced usage in bandwidth can result in faster download speeds. Although several third-party software installation tools or hard disk imaging tools exist which support IP multicast (e.g., Ghost, PowerQuest, ImageCast, Rembo and OmniCast), none of these tools provide a method to resolve automatically the unique set of parameters that are needed for each session in a build-to-order manufacturing process. Although these tools provide either a programming interface or a command-line interface, the person using these tools must manually provide the session parameters for each multicast session. As such, these prior multicast tools are suited only to large pre-scheduled downloads where one is guaranteed that all clients are available to perform the download at a specified time. In a build-to-order manufacturing process, or other environments where the clients to participate are not known in advance, the existing IP multicast tools do not provide an adequate solution to software downloads.
The present invention provides systems and methods for dynamically managing multicast sessions for software downloads and, more particularly, for such software downloads used in the manufacture of information handling systems. The present invention, for example, can be used to manage multicast sessions for IP multicasts in a build-to-order environment or any other environment where the session's clients are not known ahead of time. The present invention provides a process that automatically manages multiple multicast download sessions simultaneously, where each session can have its own unique set of session parameters, in such a way as to support a high mix, high volume manufacturing environment. As part of the process, the present invention can assign each client needing a software download to a relevant multicast session by providing it with the correct session name.
In one embodiment, the present invention is a manufacturing system for information handling systems including a managed multicast download system, including a manufacturing line, multicast infrastructure, and a multicast session manager. The manufacturing line includes a software installation phase in which datasets are downloaded to a plurality of information handling systems through a plurality of multicast downloads. The multicast infrastructure is configured to download datasets to the information handling systems through a plurality of multicast downloads. The multicast session manager is configured to receive multicast download requests related to the information handling systems when they reach a software installation phase, to create a plurality of multicast sessions based upon the requests, to assign each information handling system to a multicast session, and to provide one or more multicast session control parameters to the multicast infrastructure. The multicast session parameters can include, for example, a start time associated with each multicast session and a client count associated with each multicast session. As described below, other features and variations can be implemented, if desired, and related methods can be utilized, as well.
In another embodiment, the present invention is a method for managing multicast downloads for information handling systems, including receiving multicast download requests related to a plurality of information handling systems when they reach a software installation phase, creating a plurality of multicast sessions based upon the requests, assigning each information handling system to at least one multicast session, and downloading one or more datasets to the information handling systems using the plurality of created multicast sessions. As described below, other features and variations can be implemented, if desired, and related systems can be utilized, as well.
It is noted that the appended drawings illustrate only exemplary embodiments of the invention and are, therefore, not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a server computer system, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
The present invention provides systems and methods for efficiently downloading software to information handling systems in software download environments. One example software download environment is a software installation phase within a manufacturing line for information handling systems. Whereas current manufacturing processes typically use point-to-point unicast methods to perform software downloads, IP multicast techniques can greatly increase the efficiency of this software download process because the number of clients is not limited by server network bandwidth. The present invention solves the problem of applying IP multicast to the build-to-order environment or any other environment where the sessions clients are not known ahead of time. In particular, the present invention provides a process that automatically manages multiple multicast download sessions simultaneously, where each session can have its own unique set of session parameters, in such a way as to support a high mix, high volume manufacturing build-to-order environment. Furthermore, the present invention can automatically assign each client to a relevant multicast session by providing it with the correct session name. Advantageously, the reduced usage in bandwidth on the network, as a result using IP multicast, can result in much higher download speeds, with no limit to the number of clients attached.
According to the present invention, dynamic multicast sessions use some or all of the following session parameters: (a) the session name, which typically must be unique on the network, (b) the file(s) or dataset to be downloaded as part of the session (as requested by the clients), (c) the IP multicast address to use for the session (taken from a pool of available addresses), (d) the amount of bandwidth to use for the session, (e) the client count, which is the number of clients to wait for to join the session before starting the download, and/or (f) the start time, which is the time to start the download if the number of clients to wait for is not specified or if not all of the clients have joined the session by that time. If the start time and the client count are both specified, as discussed in more detail below, then the download begins as soon as one of these two conditions is met. Advantageously, the present invention can automatically, and dynamically, determine the session parameters based on current demand based upon download requests, create the individual multicast sessions as they are required, and provide the clients with the name of the multicast session to join in order to download the requested file(s) or dataset.
The multicast infrastructure 108 operates to provide IP multicast services for the clients 106A, 106B, 106C, 106D, 106E . . . based upon the session parameters set by the multicast session manager 100. Depending upon those dynamically managed parameters, the multicast infrastructure 108 receives datasets 112A, 112B, 112C . . . through communication channels 119, for example, from one or more database servers, and broadcasts those datasets 112A, 112B, 112C . . . to the clients 106A, 106B, 106C, 106D, 106E . . . in one or more multicast sessions. As depicted, clients 106A, 106B and 106C are receiving downloads through multicast session 110A, and clients 106D and 106E are receiving downloads through multicast session 110B.
It is noted that the communication channels 107, 110A, 110B, 114, 116, 118 and 119 can be wireless or wired communication channels, as desired, and these communication channels can also take advantage of one or more intervening communication systems in order to provide communications between system components. It is also noted that the multicast infrastructure 108 can be implemented using one or more devices, including multicast server systems running multicast controller and/or multicast application programs, multicast-enabled routers, and/or other multicast systems, as desired. For example, Cisco Systems sells multicast-enabled routers and network infrastructure.
The multicast session controller 206 communicates with multicast server application 204 to provide instructions, such as create session instruction 218, and to receive back information, such as session status information 217. As depicted, the multicast server application 204 performs the multicast download from multicast dataset storage 112 to the session clients 106A, 106B, 106C, . . . through the multicast download 110A. It is again noted that communication channels, such as represented by elements 110A, 119, 210, 212, 214, 216, 217, 218, 220 and 222, can be wireless or wired communication channels, as desired, and these communication channels can also take advantage of one or more intervening communication systems in order to provide communications between system components. In the depicted embodiment, therefore, the dynamically managed multicast system of the present invention includes five basic components: the multicast server application 204, the session clients 106 and their client imaging tools, the multicast session manager 100, the multicast session controller 206, and the session database 208.
In operation in a build-to-order manufacturing environment, the client systems can be part of a manufacturing line infrastructure, as depicted in
In this manufacturing environment, the multicast session manager 100 will receive requests 210 from clients 106A, 106B, 106C . . . for a multicast session for a dataset download when they are in a software installation phase. The multicast session manager 100 creates a new session, if required, or assigns the client to an already existing session. In the case of a new session being required, the session manager 100 resolves a unique set of session parameters for the new session. In addition to a unique session name, one important parameter can be the session's start time. The start time, as discussed further below, can be calculated to help maximize the number of clients that have an opportunity to join the session such that the run-rate of the manufacturing line is unaffected. To further refine the start time (either start earlier or start later), a client count can be measured. The client count is the number of similar clients that will be in software installation phase within a given period. To help make this determination, each client 106A, 106B, 106C . . . can send to the session manager 100 status updates during the phases prior to software installation. Alternatively, another system that is monitoring the progress of each client 106A, 106B, 106C . . . can send this status message. Thus, in this way, the estimated time of arrival of a client into the software installation phase can be more easily calculated. The first client system that enters software installation looking to download a particular image or dataset can be configured to trigger the creation of a new multicast session with the start time calculated, as described in more detail below. Any additional clients that wish to download the same image or dataset and that enter software installation phase before the start time has arrived can also be assigned to this same multicast session.
A wide variety of algorithms can be utilized to determine and manage session parameters. When the session manager 100 creates a new session, the session manager 100 can use such algorithms to calculate or determine parameters that can be used by the multicast session controller 206 to control the multicast session. As discussed above, two such parameters that can be managed by the session manager 100 are the client count and the start time, which can each be defined for each multicast session that is created. As stated above, other parameters could also be determined and managed, as desired. It is noted that build-to-order manufacturing, where information handling systems are built according to customer selected configurations, can benefit greatly from the present invention because the download needs of each new information handling system being manufactured can vary due to the customer configuration selections. Thus, the download needs must often be managed on a real-time or near real-time basis.
With respect to start time calculation in a manufacturing or build-to-order manufacturing line environment, for example, the following start time calculation algorithm can be utilized:
START TIME=Current Time+Twait [Equation 1]
Twait=Tsi−Tdownload−Tlayering−Tsw
In the START TIME equation (Equation 1), “current time” represents the time at which the multicast download request for a client is being analyzed by the session manager 100. The expression “Twait” in the wait time equation (Equation 2) represents the maximum time that the multicast session can wait before starting the multicast download such that the run-rate of the manufacturing line is not affected. The expression “Tsi” represents the maximum time allowed for the software installation phase of the manufacturing process in order to support the run-rate of the manufacturing line. And this manufacturing run-rate can be dependent upon a variety of factors including the type of factory and the nature the manufacturing lines. The expressions “Tdownload” represents the amount of time the software download will take and can be calculated by dividing the download size by the download speed. The expression “Tlayering” represents the time spent downloading any additional software parts that were not included in the multicast download. Finally, the expression “Tsw
The multicast session controller 206 acts as the interface between the multicast session manager 100 and the multicast server application(s) 204. The session controller 206 initiates the creation of a multicast session on request from the session manager 100. The session controller 206 can accomplish this task by launching a new instance of the multicast server application for each multicast session and by providing the multicast server application with the session parameters, for example, via a command-line interface. In the case of a service-type multicast server application, the controller 206 can send a message requesting a new session with the session parameters included in the message. It is noted that other session creation steps could also be used depending upon the multicast application software being utilized for the multicast server application 204. It is also noted that one or more server systems can be utilized to operate multicast controller and server application software in order to provide the multicast infrastructure components.
In operation in a build-to-order manufacturing environment, the client systems can be part of a manufacturing line infrastructure, as depicted in
Further modifications and alternative embodiments of this invention will be apparent to those skilled in the art in view of this description. It will be recognized, therefore, that the present invention is not limited by these example arrangements. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the manner of carrying out the invention. It is to be understood that the forms of the invention herein shown and described are to be taken as the presently preferred embodiments. Various changes may be made in the implementations and architectures. For example, equivalent elements may be substituted for those illustrated and described herein, and certain features of the invention may be utilized independently of the use of other features, all as would be apparent to one skilled in the art after having the benefit of this description of the invention.
Patent | Priority | Assignee | Title |
10091252, | Apr 10 2015 | Microsoft Technology Licensing, LLC | Endpoint control for a communication session |
10855745, | Nov 29 2018 | Dell Products L.P.; Dell Products L P | Systems and methods for downloading data chunks using a varying number of simultaneous connections |
10887360, | Dec 30 2015 | ICLOUDPATENT COM LTD | Direct network connections using cloud instance for multipoint meeting service |
8856313, | Nov 13 2007 | International Business Machines Corporation | Systems and methods for using provenance information for data retention in stream-processing |
Patent | Priority | Assignee | Title |
5604906, | Feb 06 1995 | Apple Inc | Method and apparatus for installing software block-by block via an image of the target storage device |
5857072, | Apr 30 1996 | Sprint Communications Co. L.P.; SPRINT COMMUNICATIONS COMPANY L P | System and method for distributing data simultaneously to multiple computers on a network, with advanced notice to intended recipients |
6009274, | Dec 13 1996 | Hewlett Packard Enterprise Development LP | Method and apparatus for automatically updating software components on end systems over a network |
6108697, | Oct 02 1998 | CA, INC | One-to-many disk imaging transfer over a network |
6256673, | Dec 17 1998 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Cyclic multicasting or asynchronous broadcasting of computer files |
6600743, | Aug 25 1998 | International Business Machines Corporation | IP multicast interface |
6684331, | Dec 22 1999 | Cisco Technology, Inc | Method and apparatus for distributing and updating group controllers over a wide area network using a tree structure |
6772192, | Feb 29 2000 | Hewlett Packard Enterprise Development LP | Software download and distribution via image building and multicast |
20030236863, | |||
20050243776, | |||
20060236320, | |||
20070150892, | |||
JP2004157753, | |||
WO235348, |
Date | Maintenance Fee Events |
Feb 11 2011 | ASPN: Payor Number Assigned. |
Sep 01 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Aug 21 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Aug 18 2022 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 01 2014 | 4 years fee payment window open |
Sep 01 2014 | 6 months grace period start (w surcharge) |
Mar 01 2015 | patent expiry (for year 4) |
Mar 01 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 01 2018 | 8 years fee payment window open |
Sep 01 2018 | 6 months grace period start (w surcharge) |
Mar 01 2019 | patent expiry (for year 8) |
Mar 01 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 01 2022 | 12 years fee payment window open |
Sep 01 2022 | 6 months grace period start (w surcharge) |
Mar 01 2023 | patent expiry (for year 12) |
Mar 01 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |