# Patent

## Title
Apparatus and method for configuring computers

## Abstract

A method and apparatus for automatically manufacturing a computer. An order is received from a customer. A manufacturing plant assembles together the hardware and software components from stores specified by the order, and loads the software packages onto the computer. A Web page is provided for the customer to specify any software modifications required. Those modifications are recorded as auto-modification files. The auto-modification files and the order details are checked against each other and the manufacturer's current capabilities for consistency by a validation unit. Each auto-modification file in turn is called by the manufacturing control unit, which determines the configuration data corresponding thereto and enters that configuration data into the computer as the software packages are being loaded.

## Background
BACKGROUND
The disclosures herein relate to computers, and more specifically to configuring computers to meet customers build-to-order requirements.
This application relates to U.S. patent application Ser. No. 08/514,649, filed on Aug. 14, 1995, now U.S. Pat. No. 5,894,571, issued Apr. 13, 1999, entitled PROCESS FOR CONFIGURING SOFTWARE IN A BUILD-TO-ORDER COMPUTER SYSTEM, naming Clint H. O'Conner as inventor; U.S. patent application Ser. No. 09/012,962, filed on Jan. 26, 1998, now U.S. Pat. No. 6,182,275, issued Jan. 30, 2001, entitled GENERATION OF A COMPATIBLE ORDER FOR A COMPUTER SYSTEM, naming Alan E. Beelitz and Paul J. Maia, as inventors; and U.S. patent application Ser. No. 09/158,564, filed on Sep. 22, 1998, now U.S. Pat. No. 6,167,383, issued Dec. 26, 2000, entitled METHOD AND APPARATUS FOR PROVIDING CUSTOMER CONFIGURED MACHINES AT AN INTERNET SITE, naming Ken Henson as inventor. The above-listed issued patents are incorporated herein by reference in their entirety, and assigned to the assignee of the present invention.
A computer manufacturer will typically be prepared to supply customers with virtually any combination of hardware and software which a customer may require. The combination of hardware units which the customer requires will obviously have to be physically assembled together. The combination of software systems must also obviously be assembled together and then loaded onto the hardware.
Both hardware and software units frequently offer many options. For hardware, the appropriate choices for the various options for the different units obviously have to be made when the units are being selected and assembled. For software, the options essentially involve selecting and loading the appropriate modules.
The customer generally has a wide choice of hardware units, depending on their particular needs. The types of hardware units range from specialized ones, such as drafting units, to those which are near-universal, such as Visual Display Units (VDU's) and printers. For each of these units, there is a wide variety of different types. The one true universal unit is the central processor, without which, no other unit can usefully run.
Similarly, the customer generally has a wide choice of software packages, depending on their particular needs. The types of software packages range from specialized ones such as special-purpose statistics packages and 3 dimensional CAD/CAM packages to those which are near-universal, such as word processing packages (it is a rare computer which does not have at least some basic word-processing capability). Again, for each of these units, there is a wide variety of different types. The one true universal package is the operating system, without which, no application packages can run.
With hardware, there are broadly two types of options. Some options are true hardware options, e.g., which type of drive or modem should be included in the system. Others are settable, typically involving the setting of an array of small switches, for example as used on a printer. The manufacturer is obviously responsible for ensuring that the desired set of hardware features is included in each hardware unit supplied. However, the correct setting of the settable features is normally left to the customer. The setting of peripheral units such as printers is normally regarded as relatively simple. The customer will often not be in a position to make an informed choice of the settings until they have read and digested the operating instructions for the unit. Many types of units are bought in by the manufacturer, who may therefore have limited knowledge and expertise concerning them.
Turning to software, many software modules or packages incorporate a wide variety of options. It is normally the responsibility of the customer to select the appropriate options, typically on installing the software package, but often to some extent during use of the package. When a software package is “opened”, i.e. selected to run on the computer, the various options can usually be selected for setting or adjustment. In practice, major settings are likely to be made during installation, and minor ones during the first few times the program is run (though generally the options can be changed at any time if desired).
In a sense, by far the most important software package in any conventional computer is the operating system. It is fundamental in the sense that without it, none of the application packages will run. An operating system is normally permanently installed, and runs automatically whenever the computer is switched on (rather than having to be started up or “opened” like application software). Parts of the operating system may be resident in ROM rather than RAM, and many of the more basic of the operating system options may be set permanently by being “burned in” during their installation.
Operating systems have evolved to incorporate a large number of functions which in earlier days were performed by application programs, and this process is continuing. As a result, the number of options selectable in an operating system is becoming very large, and their complexity is also becoming very high.
It is realized that many of the most important settings of the operating system are concerned with functions which affect the operation and efficiency of the computer system. To select such settings properly, considerable acquaintance with the nature and details of the computer system is required. These settings affect what may be termed the internal workings of the system. This is in contrast to the settings required in typical applications programs, which are in general much more readily appreciated by the user and the effects of which are in general much more readily apparent in the behavior of the program.
Therefore, what is needed is to provide a technique for making software settings of a computer system, and more particularly to provide a technique which is applicable to the settings required for operating systems.
SUMMARY
One embodiment, accordingly, provides a method of automatically manufacturing a computer. To this end, an order is received from a customer. The hardware components specified by the order are assembled together. The software packages specified by the order are loaded onto the computer. An Internet-accessible page is provided for the customer to specify any software modifications required. Those modifications are recorded as an auto-configuration file. For each modification in the auto-configuration file, the configuration data corresponding thereto is determined and entered into the computer as the software packages are being loaded.
A principal advantage of this embodiment is that it provides for automatically configuring a computer in accordance with customer requirements. This reduces or avoids the need for manual configuration, with its attendant problems of cost and the possibility of error.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a simplified general flow diagram illustrating an embodiment of the present process.
FIG. 2 is a general block diagram illustrating an embodiment of the hardware units involved in the process.



DETAILED DESCRIPTION
The general sequence of operations in the present system is shown in FIG. 1. The standard procedure for a customer to obtain a computer system is indicated in blocks 10 to 13. In block 10, the customer places an order, and a reference number for the order is generated. In block 11, the manufacturer's order entry system accepts the order. In block 12, the order is down-loaded to the manufacturing plant and the system goes into a build mode. Also, if any special configuration is required for this order, an auto-configuration indicator is included in the order.
If there are any special configuration requirements, these are processed as shown by blocks 13 to 15. The process of these blocks occurs essentially in parallel with the standard procedures of blocks 10 to 12, though blocks 13 to 15 can of course be included at any convenient points in the sequence of blocks 10 to 12 if desired.
In block 13, the customer compiles the specific configuration information required, and passes this to the manufacturer over the Internet. More specifically, the manufacturer makes a Web page available to the customer for this purpose. In block 14, the configuration is submitted to the manufacturer. The manufacturer passes the information to a validation system which checks the modifications to verify that they are consistent with each other and within the range of modifications which the manufacturer can implement. In block 16, the desired software configuration is down-loaded to the database server of the manufacturing plant.
Blocks 16 to 19 show the manufacturing process in more detail for orders which involve modifications. In block 16, a special modifications indicator in the order, flags the system to look for specific configuration data. The system then (block 17) queries the factory database for the specific configuration data (this data was passed to the factory database server in block 15). In block 18, the configuration data is applied to the system being manufactured, and that fact is logged in a manufacturing log record. In block 19, the completed system is shipped to the customer. The system as shipped thus includes the specific configuration data required, and has been manufactured without requiring operator intervention to achieve that configuration.
FIG. 2 is a general block diagram showing the various units involved in this process. The main units involved are the customer 25, a Web page unit 30, the manufacturer's office unit 35, and the manufacturing plant 45. The office unit 35 and plant 45 are of course both part of the manufacturer's organization. The web page unit 30 supports a web page 31, which is also effectively a part of the manufacturer's organization. Physically, the web page 31 has to be supported on a web server unit 32. In principle, this could be operated and/or owned by a third party Internet Service Provider, but in practice it will normally also be a part of the manufacturer's organization.
The normal purchase process involves the customer 25 sending an order to an order unit 36 in the office unit 35 (blocks 10 and 11 of FIG. 1). In principle, this may be a paper exercise between the customer and the manufacturer, with the relevant data, both technical and commercial (price, delivery arrangements, etc.) being entered into the order unit 36 by the manufacturer. It may however be convenient for the relevant information to be passed from the customer to the manufacturer in digital form, e.g. over the Internet. This may in fact involve the use of a Web page, but it must be noted that this process is essentially independent of the automated configuration process described below.
Once the order has been placed, the technical elements of the order are passed (block 12) to a control unit 46 in the manufacturing plant, which controls manufacturing machinery 47, which manufactures and assembles the computer 48. Various supply lines 49, 50, etc., contain hardware units and software packages, respectively. The appropriate hardware units are selected from the supply line 49 for assembly together to form the computer 48, and the appropriate software packages are selected from the supply line 50 and loaded onto the computer 48.
If the customer wants the computer to be given a special configuration, i.e., a configuration which differs from the standard default configuration, then the customer communicates with the Web page 31 and enters the details of the desired configuration in that page (block 13). The Web page may of course include guidance and advice to assist the customer to make their choices and to understand the significance of those choices. In addition, the customer must include, in the main order which is passed to the order unit 36, an indication that a special configuration is desired for the computer being ordered.
Once the desired configuration has been specified on the Web page 31, the page is passed to a modification unit 37 in the office unit 35. The configuration details in the modification unit are then passed to a validation unit 38, which is also fed with the details of the order from the order unit 36. The validation unit 38 checks for consistency between the order details and the configuration details. The validation unit is also supplied with general information about the current capabilities of the manufacturer, and checks those details for compatibility with the order details and configuration details (block 14).
Once the configuration details have been validated, they are made available to the control unit 46 in the manufacturing plant. This control unit detects any modification flag in the order details coming from the order unit 36 (block 16) and obtains the corresponding configuration details from the unit 37. Next, the control unit checks those details with the factory database to determine how to implement them (block 17). The control unit then enters the appropriate data into the computer 48 being manufactured (block 18). This will normally involve entering the details in the appropriate ones of the software packages which are being or have been loaded from the software supply line 50. The completed computer is then shipped to the customer (block 19).
In summary, the preferred embodiment provides a method of automatically manufacturing a computer 48. An order is received at 36 from a customer 25. Manufacturing plant 47 assembles together the hardware and software components from supply lines or stores 49, 50, etc., specified by the order, and loads the software packages onto the computer. A Web page 31 is provided for the customer to specify any software modifications required. Those modifications are recorded at 37 as an auto-modification file. The modifications and the order details are checked against each other and the manufacturer's current capabilities for consistency by a validation unit 38. Each modification in turn is called by the manufacturing control unit 46, which determines the configuration data corresponding thereto and enters that configuration data into the computer as the software packages are being loaded.
Although illustrative embodiments have been shown and described, a wide range of modification, change and substitution is contemplated in the foregoing disclosure and in some instances, some features of the embodiments may be employed without a corresponding use of the other features. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the embodiments disclosed herein.

## Claims

1. A method of automatically manufacturing a computer comprising:
a manufacturer providing a manufacturer web page unit, a manufacturer office unit and a manufacturer plant;
a customer sending a main order for the computer to the office unit via a web page in the web page unit, the customer being required to indicate if a special configuration is desired;
passing elements of the main order to a control unit in the manufacturing plant unit;
the control unit controlling manufacturing and supply lines containing a plurality of compatible hardware and selected software components for installation into the computer being manufactured;
the customer entering any special configuration details to the web page unit;
passing the web page to a modification unit in the office unit;
passing the special configuration details to a validation unit in the office unit;
the validation unit checking the special configuration details for compatibility with details of the main order;
upon validation, sending the special configuration details to the control unit;
the control unit detecting any modification details in the main order details and obtaining corresponding configuration details from the modification unit;
the control unit checking the configuration details with a factory database for implementation; and
the control unit entering appropriate data into the computer being manufactured including entering modification details in appropriate ones of the selected software components which are being installed or have been installed in the computer.

2. The method according to claim 1, further comprising logging the modification details as they are made.

3. The method according to claim 1, further comprising generating an order reference number.

4. The method according to claim 1, further comprising accepting the order.

5. The method according to claim 1, further comprising processing the special configuration in parallel with the main order.

6. The method according to claim 1, further comprising logging the special configuration into a manufacturing log.

7. The method according to claim 1, further comprising shipping the order to the customer.

8. The method according to claim 1, further comprising verifying each modification detail against current manufacturing capabilities.