Computer manufacturing with smart configuration methods6247128Abstract A system of computer manufacturing with pre-installation of software which utilizes a software selection process controlled by a rules database to determine the proper software components to be pre-installed onto an assembled computer or hard drive. Additionally, the rules base determines the appropriate diagnostic and set-up software components to be installed in order to ensure a system that is ready-to-run upon receipt by a purchaser. Claims What is claimed is: Description BACKGROUND AND SUMMARY OF THE INVENTION
Entity Name Entity Definition
AUDIT-LOG Records all actions against the CCP database.
Where; when; and who did the action.
COMPAQ- All Compaq language codes.
LANGUAGE
COMPAQ-OS All unique operating system identifiers supported
by Compaq.
CONFIGURATION Describes a Compaq system built at the CCP site.
CONFIGURATION- Contains family (configuration) codes for each
CODE base model part number.
CONFIGURATION- Part numbers of Compaq added software
PART and hardware.
CONFIGURATION- Rules are a method of establishing dependencies
RULE between hardware and software part number tags
or between two software part number tags.
CONFIGURATION- Records serial number for Compaq components
SERIAL added to a system configuration.
DATA-COLLECTION Stores the status of diagnostics software download
and post processing. PASS/FAIL is recorded.
DIVISION Identifies all Compaq divisions building systems
in the Channel Configuration Program.
DIVISION-SITE- Site-specific default information. Language and
OPTION operating system defaults for a site are
stored here.
IMAGE A fully configured image for a Configuration.
Describes all partition and file information
for a system.
LOCALIZED- Localized language names.
LANGUAGE
LOCALIZED-TAG The localized string for a TAG description
used for display.
LOCALIZED-TAG- Stores the translated description of TAG types
TYPE for display purposes.
MODEL Slots and bays for a Model-1 Base Configuration.
NON-COMPAQ- Describes the non-Compaq software and hardware
PART added to a Compaq system at the CCP site.
PART Defines all valid Compaq hardware and
software part numbers.
PRODUCT-BOM Contains all TAGs for a specific product model.
REGION Contains REGION descriptions used during
regional settings selection.
ROM-PART Description of FLASH ROM parts. Identified
by Model-1 base configuration.
SELECTED-TAG Contains all selected TAGs for a system
configuration. This includes the hardware
and software TAGs.
SITE Master list of all CCP sites. Default
configuration information about the site.
TAG Part Number Tag definition. Used as an
abstraction of a real part number.
TAG-TYPE Display and entry parameters for a TAG.
USER_DIVISION Used to validate access to the CCP Corp
Master server from the divisions. A stored
procedure validates requesting user against
users in this table.
Entity-Attribute Relationships Each Entity and its attributes are described in the tables in this section.
ENTITY NAME ATTRIBUTE NAMES
AUDIT-LOG AUDIT-LOG-SITE-ID (PK)
AUDIT-LOG-DIVISION-ID (PK)
AUDIT-LOG-USER-NAME (PK)
AUDIT-LOG-DATE (PK)
AUDIT-LOG-SERIAL-NUMBER (PK)
(FK)
AUDIT-LOG-ACTION
COMPAQ- COMPAQ-LANGUAGE-CODE (PK)
LANGUAGE COMPAQ-LANGUAGE-DESCRIPTION
COMPAQ-OS COMPAQ-OS-CODE (PK)
COMPAQ-OS-DESCRIPTION
CONFIGURATION CFG-SERIAL-NUMBER (PK)
CFG-MODEL-PART-NUMBER
CFG-MODEL-DIVISION-ID
CFG-MODEL-EFFECT-DATE
CFG-ROM-DESCRIPTION
CFG-SITE-ID
CFG-DATE-BUILD-STARTED
CFG-DATE-CONFIGURED
CFG-COA
CFG-REGION
CFG-USER-NAME
CFG-COMPANY-NAME
CFG-OS
CFG-LANGUAGE
CFG-DOA
CFG-SHIPPED
CFG-SENT
CFG-DOWNLOAD-STATUS
CFG-LOAD-OPTION
CFG-STATE
CFG-IMAGE-IDENTIFIER
CONFIGURATION- CONFIGURATION-CODE-ID (PK)
CODE CFG-CODE-MODEL-PART-NUMBER
(FK)
CFG-CODE-MODEL-DIVISION-ID (FK)
CFG-CODE-MODEL-EFFECTIVITY-
DATE (FK)
CFG-CODE-MODEL-FLAGS
CONFIGURATION- CFG-PART-SERIAL-NUMBER (PK) (FK)
PART CFG-PART-NUMBER (PK)
CFG-PART-QUANTITY
CFG-PART-SW-HW-IND
CONFIGURATION- RULE-MODEL-PART-NUMBER (PK)
RULE (FK)
RULE-MODEL-DIVISION-ID (PK) (FK)
RULE-MODEL-EFFECT-DATE (PK)
(FK)
RULE-NUMBER (PK)
RULE-VALUE-TAG-NAME (FK)
RULE-VALUE-TAG-DIVISION-ID (FK)
RULE-VALUE-TAG-EFFECT-DATE
(FK)
RULE-OUT-TAG-NAME (FK)
RULE-OUT-TAG-DIVISION-ID (FK)
RULE-OUT-TAG-EFFECT-DATE (FK)
RULE-TAG-TYPE-ID (FK)
RULE-TAG-TYPE-EFFECTIVITY-DATE
(FK)
RULE-CATEGORY-TYPE
RULE-CONDITION
RULE-CONNECTOR
RULE-FLAGS
CONFIGURATION- CFG-SERIAL-NUMBER (PK) (FK)
SERIAL CFG-PART-NUMBER (PK) (FK)
CFG-SERIAL-SERIAL-NUMBER (PK)
DATA-COLLECTION DATA-COLLECTION-SERIAL-NUM-
BER (PK) (FK)
DATA-COLLECTION-DATE (PK)
DATA-COLLECTION-SITE
DATA-COLLECTION-ERRCODE
DIVISION DIVISION-ID (PK)
DIVISION-NAME
DIVISION-CONTACT
DIVISION-PHONE
DIVISION-EMAIL
DIVISION-SITE- DIVISION-SITE-ID (PK) (FK)
OPTION DIVISION-ID (PK) (FK)
DIV-SITE-OPT-DEF-OS-CODE (FK)
DIV-SITE-OPT-DEF-LANGUAGE (FK)
DIV-SITE-OPT-DEF-REGION (FK)
DIV-SITE-OPT-DEF-USER-NAME
DIV-SITE-OPT-DEF-COMPANY-NAME
DIV-SITE-OPT-FLAGS
IMAGE IMAGE-IDENTIFIER (PK)
IMAGE-DATE
IMAGE-DESCRIPTION
IMAGE-CUSTOMER
IMAGE-CUSTOMER-ID
IMAGE-DRIVE-SIZE
IMAGE-CREATOR-SERIAL-NUMBER
LOCALIZED- LANGUAGE-DISPLAY-CODE (PK) (FK)
LANGUAGE LANGUAGE-DISPLAY-SELECTION
(PK) (FK)
LANGUAGE-DISPLAY-DESCRIPTION
LANGUAGE-DISPLAY-FLAGS
LOCALIZED-TAG LOCALIZED-TAG-DIVISION-ID (PK)
(FK)
LOCALIZED-TAG-NAME (PK) (FK)
LOCALIZED-TAG-EFFECTIVITY-
DATE (PK) (FK)
LOCALIZED-TAG-LANGUAGE (PK)
(FK)
LOCALIZED-TAG-DESCRIPTION
LOCALIZED-TAG-FLAGS
LOCALIZED-TAG- LOC_TAG_TYPE_LANGUAGE (PK)
TYPE (FK)
LOC-TAG-TYPE-ID (PK) (FK)
LOC-TAG-TYPE-EFFECTIVITY-DATE
(PK) (FK)
LOCALIZED-TAG-TYPE-DESCRIPTION
LOCALIZED-TAG-TYPE-FLAGS
MODEL MODEL-PART-NUMBER (PK) (FK)
MODEL-DIVISION-ID (PK) (FK)
MODEL-EFFECTIVITY-DATE (PK)
MODEL-INSTALLOS
MODEL-FLAGS
NON-COMPAQ- NON-COMPAQ-CFG-SERIAL-NUMBER
PART (PK) (FK)
NON-COMPAQ-IDENTITY (PK)
NON-COMPAQ-SW-HW-IND
NON-COMPAQ-DESCRIPTION
NON-COMPAQ-UPC-NUMBER
NON-COMPAQ-SERIAL-NUMBER
NON-COMPAQ-MFG-NAME
PART PART-NUMBER (PK)
PART-DIVISION-ID (FK)
PART-DESCRIPTION
PART-FLAGS
PRODUCT-BOM PB-MODEL-PART-NUMBER (PK) (FK)
PB-MODEL-DIVISION-ID (PK) (FK)
PB-MODEL-EFFECT-DATE (PK) (FK)
PB-TAG-NAME (PK) (FK)
PB-TAG-DIVISION-ID (PK) (FK)
PB-TAG-EFFECT-DATE (PK) (FK)
PB-EFFECT-DATE (PK)
PB_FLAGS
REGION REGION-OS-CODE (PK) (FK)
REGION-LANGUAGE-CODE (PK) (FK)
REGION-AUTOMATION-TEXT (PK)
REGION-DISPLAY-TEXT
ROM-PART ROM-PART-MODEL-DIVISION-ID (PK)
(FK)
ROM-PART-MODEL-PART-NUMBER
(PK) (FK)
ROM-PART-MODEL-EFFECTIVITY-
DATE (PK) (FK)
ROM-PART-NUMBER (PK) (FK)
ROM-PART-EFFECTIVITY-DATE (PK)
ROM-PART-DESCRIPTION
ROM-PART-FLAGS
SELECTED-TAG SELECTED-TAG-SERIAL-NUMBER
(PK) (FK)
SELECTED-TAG-DIVISION-ID (PK)
SELECTED-TAG-NAME (PK)
SELECTED-TAG-EFFECT-DATE (PK)
SELECTED-TAG-QUANTITY
SITE SITE-ID (PK)
SITE-NAME
SITE-ADDRESS
SITE-CITY
SITE-STATE
SITE-ZIPCODE
SITE-PHONE
SITE-FAX
SITE-EMAIL
SITE-CONTACT
SITE-COUNTRYCODE
SITE-IMAGE-NUMBER
SITE-DISPLAY-LANGUAGE (FK)
TAG TAG-NAME (PK)
TAG-DIVISION-ID (PK) (FK)
TAG-EFFECTIVITY-DATE (PK)
TAG-TYPE-EFFECTIVITY-DATE (FK)
TAG-TYPE-ID (FK)
TAG-PART-NUMBER (FK)
TAG-ORDER
TAG-HARDWARE-ON-BOARD
TAG-SW-LANGUAGE-REQUIREMENT
TAG-SW-OS-REQUIREMENT
TAG-CATEGORY
TAG-FLAGS
TAG-TYPE TAG-TYPE-ID (PK) (AK1)
TAG-TYPE-EFFECTIVITY-DATE (PK)
(AK1)
TAG-TYPE-SELECTABLE
TAG-TYPE-DISPLAY-AS
TAG-TYPE-SHOW
TAG-TYPE-ENTRY-REQUIRED
TAG-TYPE-DISPLAY-ORDER
TAG-TYPE-DESCRIPTOR (AK1)
USER_DIVISION USER_NAME (PK)
USER-DIVISION-ID (FK)
Attribute Definition Each attribute, along with its usage as a Primary or Foreign key, its definition, and the entity that uses it.
Attribute Name PK FK Attribute Definition Entity Usage
AUDIT-LOG-ACTION The type of operation AUDIT-LOG
executed by the CCP Asso-
ciate.
AUDIT-LOG-DATE (PK) The date that the action AUDIT-LOG
occurred.
AUDIT-LOG- (PK) AUDIT-LOG
DIVISION-ID
AUDIT-LOG- (PK) (FK) The serial number of the AUDIT-LOG
SERIAL-NUMBER base unit.
AUDIT-LOG-SITE-ID (PK) AUDIT-LOG
AUDIT-LOG-USER- (PK) The logon name for the AUDIT-LOG
NAME user.
CFG-COA The Certificate of Authen- CONFIGURA-
ticity number for the oper- TION
ating system selected.
CFG-CODE-MODEL- (FK) CONFIGURA-
DIVISION-ID TION-CODE
CFG-CODE-MODEL- (FK) CONFIGURA-
EFFECTIVITY-DATE TION-CODE
CFG-CODE-MODEL- Export and Test bits. CONFIGURA-
FLAGS TION-CODE
CFG-CODE-MODEL- (FK) CONFIGURA-
PART-NUMBER TION-CODE
CFG-COMPANY-NAME The company name entered CONFIGURA-
for this conflguration. TION
CFG-DATE-BUILD- The date that the build CONFIGURA-
STARTED began for this configu- TION
ration.
CFG-DATE- The date that the part CONFIGURA-
CONFIGURED numbers were requested by TION
PRISM for a download.
CFG-DOA TRUE = Unit is dead-on- CONFIGURA-
arrival. TION
CFG-DOWNLOAD-STA- Status for software down- CONFIGURA-
TUS load for the configuration. TION
CFG-IMAGE- Identifies the image part CONFIGURA-
IDENTIFIER number used. TION
CFG-LANGUAGE Language version for the CONFIGURA-
installed software. TION
CFG-LOAD-OPTION The type of software load CONFIGURA-
performed for the unit: TION
None Components or
Image.
CFG-MODEL- Division id for mase model CONFIGURA-
DIVISION-ID TION
CFG-MODEL- Date that the base model CONFIGURA-
EFFECT-DATE definition becomes effec- TION
tive.
CFG-MODEL-PART- Part number base-model CONFIGURA-
NUMBER TION
CFG-OS Operating system selection CONFIGURA-
used in this configuration. TION
CFG-PART-NUMBER (PK) (FK) CONFIGURA-
TION-SERIAL
CFG-PART-NUMBER (PK) Part number of the Com- CONFIGURA-
paq option. TION-PART
CFG-PART-QUANTITY The number of parts used CONFIGURA-
by the configuration. TION-PART
CFG-PART-SERIAL- (PK) (FK) Serial number of configu- CONFIGURA-
NUMBER ration whose part numbers TION-PART
are defined here.
CFG-PART-SW-HW-IND Hardware or Software CONFIGURA-
part. TION-PART
CFG-REGION The country or region CONFIGURA-
selected during software TION
selection.
CFG-ROM- ROM description CONFIGURA-
DESCRIPTION TION
CFG-SENT The configuration informa- CONFIGURA-
tion has been sent. TION
CFG-SERIAL-NUMBER (PK) (FK) CONFIGURA-
TION-SERIAL
CFG-SERIAL-NUMBER (PK) Serial number for the unit. CONFIGURA-
TION
CFG-SERIAL-SERIAL- (PK) CONFIGURA-
NUMBER TION-SERIAL
CFG-SHIPPED All configuration for a unit CONFIGURA-
has been completed. TION
CFG-SITE-ID A unique identifier as- CONFIGURA-
signed to a CCP Site. This TION
value is retrieved from the
system registry.
CFG-STATE CONFIGURA-
TION
CFG-USER-NAME The user name entered for CONFIGURA-
this configuration. TION
COMPAQ-LANGUAGE- (PK) A two-character code COMPAQ-LAN-
CODE defined by drawing 130- GUAGE
955.
COMPAQ-LANGUAGE- COMPAQ-LAN-
DESCRIPTION GUAGE
COMPAQ-OS-CODE (PK) A string that uniquely COMPAQ-OS
identifies different versions
of Compaq offered operat-
ing systems.
COMPAQ-OS- COMPAQ-OS
DESCRIPTION
CONFIGURATION- (PK) CONFIGURA-
CODE-ID TION-CODE
DATA-COLLECTION- (PK) The date and time when DATA-COL-
DATE the error was logged. LECTION
DATA-COLLECTION- The type of error that DATA-COL-
ERRCODE occurred. LECTION
DATA-COLLECTION- (PK) (FK) Serial number of the unit DATA-COL-
SERIAL-NUMBER where download occurred. LECTION
DATA-COLLECTION- A unique identifler as- DATA-COL-
SITE signed to a CCP Site. This LECTION
value is retrieved from the
system registry.
DIV-SITE-OPT-DEF- The company name used DIVISION-SITE-
COMPANY-NAME by default for operating OPTION
system configuration.
DIV-SITE-OPT-DEF- (FK) Default language selection
DIVISION-SITE-
LANGUAGE OPTION
DIV-SITE-OPT-DEF-OS- (FK) Default operating system DIVISION-SITE-
CODE selection OPTION
DIV-SITE-OPT-DEF- (FK) Default region selection DIVISION-SITE-
REGION OPTION
DIV-SITE-OPT-DEF- The user name used by DIVISION-SITE-
USER-NAME default for operating sys- OPTION
tem configuration.
DIV-SITE-OPT-FLAGS Export and Test bits. DIVISION-SITE-
OPTION
DIVISION-CONTACT DIVISION
DIVISION-EMAIL DIVISION
DIVISION-ID (PK) (FK) Division id for the site DIVISION-SITE-
OPTION
DIVISION-ID (PK) An identification assigned DIVISION
to each Compaq division.
DIVISION-NAME DIVISION
DIVISION-PHONE DIVISION
DIVISION-SITE-ID (PK) (FK) A unique identifier as- DIVISION-SITE-
signed to a CCP Site. OPTION
IMAGE-CREATOR- IMAGE
SERIAL-NUMBER
IMAGE-CUSTOMER Name of the customer that IMAGE
the image belongs to.
IMAGE-CUSTOMER-ID A twenty character user IMAGE
defined identifier for the
customer.
IMAGE-DATE The date that the image IMAGE
was created.
IMAGE-DESCRIPTION The CCP Associates de- IMAGE
scription assigned to the
image. This is used during
software selection.
IMAGE-DRIVE-SIZE The size in MB of the IMAGE
drive the image was on.
IMAGE-IDENTIFIER (PK) IMAGE
LANGUAGE-DISPLAY- The localized description LOCALIZED-
DESCRIPTION text for the selected display
language.
LANGUAGE-DISPLAY- Translation changed LOCALIZED-
FLAGS LANGUAGE
LANGUAGE-DISPLAY- (PK) (FK) The language version that LOCALIZED-
CODE Compaq language codes LANGUAGE
should be displayed in.
LANGUAGE-DISPLAY- (PK) (FK) The language code whose LOCALIZED-
SELECTION text should be displayed. LANGUAGE
LOC-TAG-TYPE- (PK) (FK) LOCALIZED-
EFFECTIVITY-DATE TAG-TYPE
LOC-TAG-TYPE-ID (PK) (FK) LOCALIZED-
TAG-TYPE
LOCALIZED-TAG- Localized string for the LOCALIZED-
DESCRIPTION TAG description. TAG
LOCALIZED-TAG- (PK) (FK) Division identification for LOCALIZED-
DIVISION-ID the localized tag descrip- TAG
tion.
LOCALIZED-TAG- (PK) (FK) LOCALIZED-
EFFECTIVITY-DATE TAG
LOCALIZED-TAG- Export and Test bits. LOCALIZED-
FLAGS TAG
LOCALIZED-TAG- (PK) (FK) LOCALIZED-
LANGUAGE TAG
LOCALIZED-TAG- (PK) (FK) TAG name for this local- LOCALIZED-
NAME ized TAG description. TAG
LOCALIZED-TAG-TYPE- LOCALIZED-
DESCRIPTION TAG-TYPE
LOCALIZED-TAG-TYPE- Translation changed LOCALIZED-
FLAGS TAG-TYPE
LOC_TAG_TYPE.sub.-- (PK) (FK) LOCALIZED-
LANGUAGE TAG-TYPE
MODEL-DIVISION-ID (PK) (FK) MODEL
MODEL-EFFECTIVITY- (PK) MODEL
DATE
MODEL-FLAGS Export and Test bits. MODEL
MODEL-INSTALLOS If TRUE then an operat- MODEL
ing system must be in-
stalled on the unit. If
FALSE an operating
system must not be in-
stalled.
MODEL-PART-NUMBER (PK) (FK) Base Model part number. MODEL
NON-COMPAQ-CFG- (PK) (FK) NON-COMPAQ-
SERIAL-NUMBER PART
NON-COMPAQ- Free form description for NON-COMPAQ-
DESCRIPTION the non-Compaq part. PART
NON-COMPAQ- (PK) NON-COMPAQ-
IDENTITY PART
NON-COMPAQ-MFG- Name of manufacturer for NON-COMPAQ-
NAME the part. PART
NON-COMPAQ-SERIAL- Serial number of the non- NON-COMPAQ-
NUMBER Compaq part. PART
NON-COMPAQ-SW-HW- Categorizes the non-Com- NON-COMPAQ-
IND paq part as hardware or PART
software
NON-COMPAQ-UPC- Universal product code for NON-COMPAQ-
NUMBER the non-Compaq part. PART
PART-DESCRIPTION Description of the part that PART
the part number references.
PART-DIVISION-ID (FK)
PART-FLAGS Export and Test bits. PART
PART-NUMBER (PK) A standard 6-3 Compaq PART
part number. Same format
used for software and
hardware parts.
PB-EFFECT-DATE (PK) Date that the product BOM PRODUCT-
Introduction and Replication of the Rules Base When software is released into the PRISM system a set of rules which defines the conditions under which the software is to be installed is also released. The ERDs above describe the format in which the rules are stored. FIG. 6 illustrates the method by which the rules are released by various software engineering groups into the rules base network. The database relies on its DBMS for transactional replication of the rules base. Separate software engineering groups 102 release software tags and their associated rules into an isolated CCP database for their particular group 602. Any change to the database creates a transaction record. The DBMSs running on the isolated databases 602 uses this transaction log to replicate the change to the corporate CCP database 604. The corporate CCP database 604 is a master database of all the tags and rules released by various software engineering groups of the manufacturer. Any corporate-based data or changes that need to occur to the corporate CCP database 604 are made separate from the division entries 602 at 606. From this master database, the DBMS replicates the changes, based on the transaction log, to CCP databases at remote manufacturing sites 112. Software Configurator The software configurator is executed on a computer connected to a network with access to the CCP server and database. It is used to create a configuration file for each computer or hard drive. The file contains information concerning the installed hardware components, including the model number of the machine being configured, the operating system, and various software packages that will be installed on the machine. The software configurator also allows a language preference to be designated. If a software package is available in the designated language, it is installed instead of an English language version. To create a configuration file for a particular machine, the serial number of the machine is scanned or typed into the application. The model part number must also be selected for the machine. The serial and part numbers of the remaining hardware components that will constitute the machine must then be entered. A language preference is then selected. The language preference determines what operating systems are available for selection. Through a call to the CCP database which contains information concerning the software available for download, a selection list for operating systems is built and displayed. Once selected, the operating system choice along with the language preference determine what software packages may be selected. This list is also created via a call to the CCP database. Once all hardware and software have been selected, a formatted file is created which describes the machine to be configured and the software selections made. This file can be transmitted to the CCP server for parsing and rules evaluation. The software configurator can retain the file, retrieve the rules set necessary for evaluation of the selections, and create the hardware and software part number list necessary for entry into the CCP database. FIG. 4 depicts a data flow diagram which represents the connectivity between the CCP database, the PRISM database, the CCP Client Station, and the assembled unit. Also shown is the connectivity between the CCP and PRISM databases and the manufacturing headquarters or data collection and distribution point. Factory PRISM Server A repository for SKU Components. SKU Components Software deliverables used during the software download process. The deliverables are configured on the assembled unit. Local PRISM Server A repository for locally generated hard disk images. CCP Images Fully configured system images are captured and stored in the CCP database for use when building additional copies of the same computer model. CCP Database Server The physical server that contains the various databases required supporting software tracking and downloading at the CCP site. The CCP database maintains information about systems built and the software installed on those systems Royalty Tracking A segment of the CCP database responsible for counting the software deliverables installed by a CCP. Configuration Rules A segment of the CCP database responsible for storing the configuration rules for hardware and software components. Assembled Unit The computer system assembled from supplied parts, and built at the CCP site. CCP Client Stations One or more stations at the CCP site that executes the program used to record information about a assembled unit. Software Configurator Overview The software configurator is used by the CCP Client Program to identify the SKU Components required for the assembled unit. The configuration process is driven from a description of each base model called a PRODUCT BOM. The Product Bill-of-Materials contains two types of objects. The first is the TAG. The TAG object describes a software deliverable. The software deliverable can be a language version of an operating system, an application, or an operating system driver. Each TAG references an actual software part number. More than one TAG may reference the same software part number. Product Bill-of-Materials The TAG is used in the Product BOM instead of the actual part number to simplify maintenance operations. A TAG may be used in any number of Product BOMs, but if the software part number changes for the TAG, then only the association between the TAG and part number need change. No maintenance is required in the Product BOM. The second type of object found in the Product BOM is rules. Rules are used to show dependencies between two TAGs, whether they are software or hardware. Rules determine the actual list of software part numbers that are produced from the software selection process. The CCP Client Program must construct the software selection dialog dynamically. Since each Product BOM is under frequent revision, and each Product BOM can contain different combinations of software and hardware, the selection dialog is built from the software TAGs in the Product BOM at the time the selection dialog displays. A list of TAGs is built from the hardware part numbers scanned from the assembled unit sub-assemblies. The part number associated with each hardware TAG in the Product BOM for the unit is compared to the part numbers scanned and those that match are saved. This becomes the list of TAGs used to display the selected hardware sub-assembly descriptions. All of the software TAGs are read from the base hardware model Product BOM. The TAGs are arranged by type. For example, all APPLICATION types are grouped together. Within each group the TAGs are also arranged by language and operating system requirements. The selected hardware TAGs and the software TAGs from the Product BOM are combined and sorted by the Display Order field for each TAG type. The TAG types are used to build the display. The type text is used as the descriptive text for a selection, or a group of selections. For example, within the APPLICATION type there may be two packages: Powerpoint for Windows 95 and Word 97. For each TAG type there are properties that define if the type should be displayed, if it can be changed and where it will display on the Software Selection dialog. When the software selection is complete, the rules will be evaluated to create a list of software part numbers. The software download tools need the software part numbers as keys to the PRISM database. Each software part number references a single SKU Component that must be copied to the assembled unit hard drive. Rules Rules are a simple method for establishing dependencies between hardware and software TAGs, or between two TAGs. A Rule table is created for each Product BOM. The rules describe the software part numbers that should be used for each possible configuration of the Product BOM. The Rule table is composed of the TAG-Type, Condition, Value, Connector, and TAG name fields. Part Number Ordering The Compaq Installation Assistant installs SKU Components in the order that they are found on the hard drive. In order to affect the sequence of the installations, the order in which they are copied to the hard drive must be affected. This will be done in the CCP Software Download System by assigning a numeric value to each TAG. This value is passed on to the software download tools through the SFDM Emulator interface. The ordering builds a table of values for the different SKU Components. Categories of components usually are contained within a narrow range of values and categories are separated by a larger division. Selected components are sorted by the order value. CCP Client Program CCP Client is a Windows 95/NT application that can be used by a Channel Configuration Partner to define system configurations built at their site. A system configuration is needed to invoke the software download process from the PRISM system. Configuration information may be specified through CCP Client, or imported from external files. In both cases, the user of the program must logon to the CCP Software Download System to begin the definition and to perform any maintenance on an existing configuration. The CCP Client Program defines an assembled unit's configuration for the CCP Software Download System. The configuration must be fully specified before a software download can occur for the unit. A configuration includes: Compaq hardware, Compaq software, the product identification (COA) number for the Microsoft Operating system used, user registration information, and any non-Compaq hardware and software that is added to the unit. The user may select three options: define a new configuration, open an existing configuration, or display status on existing configurations. Alternatively, the user may elect to Cancel" out of the dialog and make selections through the main menu bar. New Configuration Selecting the New Configuration option prompts the user to create a configuration from input into CCP Client or via an external file. If Create from file is selected, a dialog box like that depicted in FIG. 7A will appear. The user will be prompted for the file location and name. Manual entry begins with capturing the serial number for the unit and selecting the model part number for the unit. The Serial Number determines the list of valid model part numbers for the unit. It may be scanned or entered manually. The serial number must be twelve characters and the edit field in the dialog will insure that the correct number of characters is entered. The serial number is used to identify the configuration in the CCP system. The Model Part Number Description reflects the selected model part number. Compaq Hardware Definition Once the appropriate information is entered into the new configuration dialog box depicted in FIG. 7A, a dialog box like that depicted in FIG. 7B appears to collect information on the manufacturer's hardware sub-assemblies that will be installed. The Compaq Hardware definition includes the hard drive, additional memory modules, cd-rom drive, modems, and any other Compaq supplied option. The serial number and part number must be entered for all Compaq hardware options. Error checking is in place to ensure that only valid hardware options can be selected for a particular model number. As the options are entered they are stored in the window displayed above with a description of the part. This description can be used by the user as a visual reenforcer that the correct item is being recorded. There is no limit to the number of parts that can be entered. When all options have been identified, the user will complete the dialog by selecting the Next button. Selecting Next will advance to the Compaq software specification. Compaq Software Definition There are two methods for defining Compaq software: The Components option allows individual specification of Compaq software options, and will most likely be used for individual orders. The Images option allows selection of a historical download. This option will most likely be used for large volume orders, or for reoccurring orders for identical hardware. The components dialog, depicted in FIG. 7C, is constructed from information supplied in the Compaq hardware dialog, and from information in the CCP database that defines the valid software choices for the type of system being built. This information is combined to create selections for the language version of software, operating system, and applications. The Language version selected will determine the Operating System selections available, and the language and operating system will determine the Applications available. Software drivers for the defined hardware are selected automatically once the language and operating system have been selected. These are not currently displayed. Software and Hardware Dependencies Some software selections are performed for the CCP Build Associate. This selection is controlled through a set of rules. These rules are written for each base model system by the product division. The rules describe hardware and software dependencies, and software and software dependencies. For example, video hardware typically requires specific versions based on the language version of the operating system choice. In this case, a rule would be written that would select the appropriate driver based on the user's language and operating system selection. Selecting the Next button completes the software selection dialog. Certificate of Authenticity Each operating system requires a Certificate of Authenticity number, or sometimes called a product identifier. The COA dialog requires that the user enter the number in a specific sequence. The number contains self-checking information that is used to verify that the numbers entered are correct. An incorrect number will cause an error dialog to display, requiring the user to re-enter the number. A valid COA must be entered before any additional information can be entered. Following the COA dialog is an end-user registration and preferences dialog. This requests a user preference for the operating system regional settings, end-user name and company name. Each of these selections defaults automatically to a site defined set of values. The CCP Build Associate may simply press the Next button to accept the default values. Saving Information for Download Process At this point, all Compaq information has been defined. The CCP Build Associate may change any of the information already entered, or continue on to enter optional non-Compaq information. By selecting Next, the user is given the option to specify non-Compaq hardware. The configuration should now be saved. Since the Compaq information has been fully defined, the system is now enabled for software download. List Translation and the Rules Database FIG. 17 depicts a flow chart of the process which converts hardware and software selections into a configuration file which is used to download the appropriate software and diagnostics onto the machine. A process running on the CCP server receives the formatted file transmitted by the software configurator program (Step 1702). The file is parsed (Step 1704) and, if valid information is received, the descriptive information for each hardware or software component is converted into a tag and placed in a selected tag list (Step 1706). The tags associate the components with particular rules in the database. Each hardware component entry is also converted into a part number and stored in a configuration table by machine serial number which describes the machine "as-built" (Step 1708). Rules which determine the appropriate software components to be installed based on hardware tags, language preference, and selected software tags are stored in the CCP database. A condition array is built by extracting the rules which apply to the selected tag list (Step 1710). The process evaluates each rule in the condition array based on the hardware, language preference, and operating system selections made (Step 1712). If the rule evaluates to true, the tag of any software component designated by the rule to be downloaded is stored in a list Once all the rules have been evaluated without error, the list of tags is converted, by reference to a CCP database table, into part numbers which are stored in the configuration table by machine serial number (Step 1714). The part numbers are accessed by the download process when the machine is ready to be for pre-installation. Import Files The configuration created by the CCP Client Program can also be created manually using a text editor or by a more simple software process. Each text file created instructs the configuration and download system in a different operation. The CCP File Import Program is used to define "As built" configurations in the CCP Software Download System and to set configuration status for units that have shipped and units that are sent back to the manufacturer. This program runs unattended on the CCP server. The CCP Import Program accepts specially formatted text files as the means of defining the "as built" configurations. These text files use commands to identify the unit serial number of the system being configured, manufacturer hardware and software, a language version and operating system choice, the operating system Certificate of Authenticity (COA) number, user preference information, and third-party hardware and software options. This information is recorded in several SQL tables in the CCP database. The program is organized as a main program (console application), a dynamic link library (DLL) with the process code, and one or more resource-only dynamic link libraries used to support messages in multiple languages. Other programs, such as the CCP Client utilize the process DLL to create configurations in the CCP database. The main program is responsible for searching a shared server directory for configuration files. When a file is found, a call is made to the process DLL with the name of the file. The process will return a pass or fail indication. If the configuration request fails, a text file is created with the error code and message in it. These messages are localized based on the setting of the default language for the server. The error messages are written to a file with the same name as the import file, but with a different extension. The process DLL begins execution by identifying the correct resource DLL to use and has that DLL load. Any warning, informative, or error messages written to the error file for the configuration are localized to the site. At this time, connectivity is established to the CCP database. All table accesses are made through this connection. A program log file may also be created if a command line parameter has been specified. The program log will record SQL commands issued, any database error messages returned, and any program level error messages. After the initialization phase, the process DLL begins by reading the import configuration file and storing the contents in memory objects. These objects are accessed during the processing of the configuration by other elements in the process DLL. Configuration rules are checked as the contents of the file are read. Parse error messages will result if the syntax of a command is violated. The error messages are written to the error file for that configuration, and the processing of that file is terminated. Control returns to the main program. The next configuration file is passed to the process DLL. Six different build and status change scenarios are supported: Build a new system, update an existing system, build a no operating system configuration, update a no operating system configuration, set the ship status for a configuration, and setting the dead-on-arrival status for a configuration. The build and update scenarios begin by mapping the four character configuration code embedded in the unit serial number to a base model part number in the PART table. The part number is used to locate a model record in the MODEL table. This record contains information about the software load options available for the unit. A test is made initially to determine if the configuration already exists. If it does, additional checks are performed to determine its ship status, dead-on-arrival status, and operating system load requirements. Some models, as it will be explained later in this document, can not receive any user software. This includes the operating system, and some must have the user software downloaded to the unit. If the model being configured is a No Operating System model, the New and Update scenarios will be described in another section in this document. Building a New System This is the most involved of all the configuration scenarios. A full configuration is created from the parsed contents of the import file. This scenario is executed when a configuration with the same unit serial number does not exist. A new build configuration record is created and initialized to default values. For date fields, a NULL is used. The unit serial number and the part number associated with the base model unit is saved in the build configuration record. Next, the site identifier for the CCP site is read from a SITE.INI file, e.g., D:.backslash.FSDASH.backslash.CCP.backslash.SITE.INI. This value is written to the build configuration record. An error occurs if the SITE.INI file can not be found. The language and operating system version is checked next. These values must be specified for a component software load, but they are ignored for an image load. If an image load is specified, the image identifier is used to retrieve the record from the IMAGE table. The creator's unit serial number is part of the IMAGE record. This serial number is used to read the original configuration record, and the language and operating system values in that configuration are copied to the new configuration. If the image identifier is invalid, an error is written to the error file for the configuration and the build phase is terminated. If the original configuration record is not found, the language and operating system values are left blank, and the build phase continues. If the software is loaded from components, the language and operating system versions are retrieved from the import file values. If these are not specified, an error is written to the error file for the configuration and the build phase is terminated. The values are then checked against the Product BOM for the unit to insure that they are valid selections. If the combination is not supported by the model, an error is written to the error file for the configuration and the build phase is terminated. If the values are valid, they are written to the build configuration record User preferences and registration information is optional in the import file. If it is not specified, the values in the DIVISION_SITE_OPTIONS table are used. If these values cannot be read, an error is written to the error file for the configuration and the build phase is terminated. The regional settings value from the import file is checked against the valid values in the REGION table. If the setting is not correct for the language--operating system selection, an error is written to the error file for the configuration and the build phase is terminated. The valid values are copied to the build configuration record. If a Microsoft operating system is loaded on a system, then a Certificate of Authenticity number is required. If one has not been specified in the import file, an error is written to the error file for the configuration and the build phase is terminated. Each COA is validated against a Microsoft-supplied algorithm. If the number entered is invalid, an error is written to the error file for the configuration and the build phase is terminated. If a COA is supplied, and if it is valid, then an additional check is made in the CCP database to insure that it is not currently assigned to another configuration. If another configuration is currently using the COA, an error is written to the error file for the configuration and the build phase is terminated. The valid COA is written to the build configuration record. Due to the referential integrity checks in place between the CONFIGURATION table and its reference table, the partial build configuration record is written at this time. At this time the core information for a configuration has been processed. The remaining information deals with the manufacturer's hardware and software and third-party hardware and software. Multiple manufacturer hardware options may be specified in a import file. These include, but are not limited to, a hard disk, additional memory, and a CD-ROM. Options are identified by their part numbers. The part number must exist in the PART table. If it doesn't, an error is written to the error file for the configuration and the build phase is terminated. The software configuration rules discussed later in this section are dependent on TAGs. These TAGs are stored in the SELECTED_TAG table. The hardware option part number must be converted to its associated TAG. A search is performed in the TAG table for a TAG with an option part number. If one is not found, an error is written to the error file for the configuration and the build phase is terminated. Once a TAG is found, the PRODUCT BOM table is checked to insure that the hardware option identified by the TAG is valid for the base model. If the hardware option TAG is not found in the PRODUCT_BOM table, an error is written to the error file for the configuration and the build phase is terminated. A valid hardware option TAG is written to the SELECTED_TAG table. In addition, entries are added to the CONFIGURATION_PART and CONFIGURATION SERIAL tables if both a part number and serial number for the option is available. If only a part number is specified, then nothing is written to the CONFIGURATION_SERIAL table. If an error occurs while writing to either of these tables, an error is written to the error file for the configuration and the build phase is terminated. This process of validation and adding continues until all manufacturer hardware options have been processed. The software load option is processed next. Two types of loads can be specified--components or image. Unit builds, where no software is loaded, is discussed later. Components and image load may not be specified at the same time. If they are, an error is written to the error file for the configuration and the build phase is terminated. If an image load is specified, the image identifier is recorded in the build configuration record. This will be retrieved later during the software configuration rules evaluation phase and placed in the CONFIGURATION_PART table for use by the software download tools. If a software load is required a process similar to the manufacturer hardware process is required. Manufacturer software options are identified by name instead of part number. These names are the same as the TAG names for the software deliverable. The valid software choices for a base model are available through the PRODUCT BOM Viewer, which is part of the CCP Client program. The application description in the import file is used to locate the TAG with the same name. If a TAG cannot be found, an error is written to the error file for the configuration and the build phase is terminated. Like manufacturer hardware, each software option must be part of the PRODUCT BOM. If it isn't, an error is written to the error file for the configuration and the build phase is terminated. A valid TAG is written to the SELECTED_TAG table. These are used during the software configuration rules phase to create a list of software part numbers required during download. Once all the manufacturer hardware and software has been processed, the third-party hardware and software options are copied to the configuration. The contents of this data are fairly freeform and no checks are performed on the data supplied. The information is written to the NON_COMPAQ_PART table. It is transmitted back to the manufacturer during the export phase for evaluation. At this time the contents of the import file have been processed. The remaining step must create a list of software SKU Components needed during the software download phase. These components are identified by software part numbers. The components are stored in the PRISM database. The software part numbers are selected as a result of evaluating a set of rules. The rules look at the hardware options selected for the base model and pick the appropriate software drivers and support deliverables. In addition, any applications specified are converted to a software part number. The resulting list of software part numbers is inserted in the CONFIGURATION_PART table. The software download status is changed to ready to download and all stored changes are written to the CCP database. This completes the build configuration phase. Updating an Existing Configuration The update scenario is executed when the configuration exists. The purpose of this scenario is to change some portion of the configuration. Everything may be changed except for the unit serial number, which is the identifier for the configuration. Before any changes are allowed, the software download status is checked. If the status is complete, download started, or if the configuration is locked, then any changes are rejected and an error message is written to the error file for the configuration. The Program Messages section describes each of these messages. It is assumed that when a change occurs to an existing full configuration, that the import file will contain the complete description of the system, instead of just the changes being made to the configuration. Before the new import file changes are made, the entries in the NON_COMPAQ_PART, SELECTED_TAG, CONFIGURATION_PART, and CONFIGURATION_SERIAL tables are purged of all entries for the unit serial number. There are several partial configuration options described in the following sections. The configuration sent field is also cleared at this time so that a new copy of the configuration is sent. The remainder of the update proceeds like a new configuration build. Building a New "No Operating System" Configuration Most base model's require that an operating system be loaded, but there exists a capability to designate that some models will not receive an operating system. This does not mean that the unit will not receive software. The hidden (system) partition still requires that diagnostics be loaded. The process is similar to a full build with the exception that language and operating system version, COA, and manufacturer software specifications are ignored in the import file. Manufacturer hardware, third-party hardware, and software entries are captured and written for the configuration. Updating a "No Operating System" Configuration This update makes many of the same assumptions that the full build update does. It will also purge the reference tables before processing the updated definition from the import file. Setting SHIP Status A special scenario exists where a configuration exists, software download is complete, and all information has been specified. The unit is shipped from the CCP site. The partner needs to tell us this by submitting an import file with two records. One is the MOD1SN and the other is a SHIP record. This file will set the ship date for the configuration to the date specified in the SHIP record. Errors can occur, and processing will terminate, if: the configuration identified in the MOD1SN record does not exist, more records are present than the MOD1SN and SHIP entries, the download status is not complete, the configuration is not locked, the configuration has already shipped, there is no ship date specified in the SHIP record, the build date is after the ship date. If there is no errors, the ship date is written to the configuration record, the download status is changed to CONFIGURATION LOCKED, and the changes are written to the CCP database. Setting DOA Status If a base model has a hardware failure, or has missing components, and must be returned to the manufacturer after a configuration has been created in the CCP database, the unit must be marked as dead-on-arrival. This will also clear the COA number so it may be used with another configuration. This will also change the download status to incomplete, forcing a new software download if the unit should be repaired. Configuration File Parser The import configuration file parser reads the contents of the file and disassembles each line into a recognizable object. These objects are accessed during the configuration build phase. The module opens the file in text mode so that each read retrieves a single line. If the open fails, an error message is written to the configuration error file and the parse phase is terminated. Each non-blank line is composed of a record identifier, which describes the type of data contained on the line, and one or more parameters for the identifier. Each entry on a line is separated by a comma. The disassembly operation first locates the record identifier in an array of valid types. If the identifier is not found, an error message is written to the configuration error file and the parse phase is terminated. The parameters are stored in internal objects. When a line has been completely disassembled, tests are performed to verify that the correct number of parameters have been given for the record identifier. If too many parameters have been specified, or if too few parameters are given, an error message is written to the configuration error file and the parse phase is terminated. When all records have been record from the file, a check is made to insure that the file had at least one record. If no records were read, an error message is written to the configuration error file and the parse phase is terminated. The last task before the parse phase is complete is to build lists for manufacturer hardware, software, third-party hardware, and third-party software entries. These will be returned one at a time during the build phase. These lists store the position that the object has in the object array. If there are more than 50 objects in any category, an error message is written to the configuration error file and the parse phase is terminated. Several methods are defined for retrieving the parsed information. Each of these will return TRUE if an entry is available, or FALSE if no entries are found. Download of software cannot take place without this record in the CCP database. Since changes to the record must go through the DBMS to become effective, no changes or downloads can take place without access to the database, which creates an audit record. Configuration Rules Configuration rules are used by the CCP Import Configuration and CCP Client Programs to identify the SKU Components required for the assembled unit. The configuration process is driven from a description of each base model called a PRODUCT BOM. The Product Bill-of-Materials contains two types of objects. The first is the TAG. The TAG object describes a software deliverable or a Compaq hardware option. The software deliverable can be a language version of an operating system, an application, or an operating system driver. Each TAG references an actual software part number. Several TAGs may reference the same software part number. The TAG is used in the Product BOM instead of the actual part number to simplify maintenance operations. A TAG may be used in any number of Product BOMs, but if the software part number changes for the TAG, then only the association between the TAG and part number need change. The second type of object found in the Product BOM is rules. Rules are used to show dependencies between two TAGs, whether they are software or hardware. Rules determine the actual list of software part numbers that are produced from the software selection process. The rules are evaluated to create a list of software part numbers. The software download tools need the software part numbers as keys to the PRISM database. Each software | ||||||
