METHOD AND SYSTEM FOR FAST ON SITE DEPLOYMENT OF COMPUTER EQUIPMENT IN A NETWORK COMPUTER ENVIRONMENT

Abstract: In a network computer system including computer units connected through a network, a method for rapid installation of a unit includes the following steps: a) at a unit manufacturing stage: preparing at least one master disk image containing a plurality of computer programs and associated parameters; assigning to each master disk image a unique software code value representative of a software configuration corresponding to the contents of said master disk image; during the manufacture of each unit, loading into a mass memory thereof the contents of a selected master disk image and providing on said unit readable information representative of the software code value assigned to said selected master disk image; b) when a unit is to be installed on the network: determining a software code value identifying the software configuration to be used in said computer unit; by using said readable information, selecting from a set of units one having said software code value; connecting said selected unit to the network, and performing a soft installation of said unit involving communication between said unit and a remote configuration server of the network and providing to the unit data for finely tuning the contents of the mass memory of the unit.

Description: METHOD AND SYSTEM FOR FAST ON SITE DEPLOYMENT OF COMPUTER EQUIPMENT IN A NETWORK COMPUTER ENVIRONMENT The present invention generally relates to the deployment of computer equipments in network-based computer systems, in particular those sytems as implemented in industrial plants for controlling and monitoring the operation of the various equipments of the plant. A deployment is meant here as the installation and the replacement (both from the hardware and software standpoints) of a piece of equipment such as a PC box. Background of the invention Nowadays such systems include more and more sophisticated pieces of equipment, including among others ruggerized computers having the hardware architecture of conventional personal computers (hereinafter PCs) , with a microprocessor, adequate volatile and non-volatile memory, I/O ports, a mass storage such as a hard disk, etc. When a failure is the operation of such computer occurs, the conventional approach of the problem consists in replacing the full, hardware of the failing equipment with a fresh one, the hard disk of which is generally empty or merely loaded with basic operating system and application programs. Therefore, there may be a huge amount of work for bringing the mass memory of the new PC system into a state which is identical or at least very similar to the state of the mass memory of the PC system which is to be replaced. Such work typically includes the installation from scratch of a variety of application programs and the setting of numerous parameters associated with such programs . Practically, such work can require anything from about several hours when everything goes right to several day when installation or parameter setting problems (incompatibilities, etc.) occur. In such instances where the PC system to be installed has to take in charge of essential automation operations in an industrial process such as a complex manufacturing process, this might mean that the whole process may have to be halted for an extremely long period, which is of course detrimental to the production rate of the process and might cause significant damage such as financial losses, lose of customer confidence, etc., to the company which works the industrial process. Therefore,- there is a need for a method which would allow considerably faster and more reliable software installation an configuration of new pieces of computer equipment in such industrial computer network, whether as an add-on or as a replacement of a defective piece of equipment, so as to minimize such damage by allowing fast and efficient recovery of the production capability. Another object of the present invention is to rely on a script-based engine for programming and performing such software installation and configuration. Summary of the invention The present invention aims at providing such method. To this end, the present invention provides according to a first aspect, in a network computer system including a plurality of individual computer units connected to each other through a network, a method for rapid installation of an individual computer unit, said method including the following steps: a) at the manufacturing stage of each individual computer unit: preparing at least one master disk image containing a plurality of computer programs and associated parameters, - assigning to each master disk image a unique software code value representative of a , software configuration corresponding to the contents of said master disk image; during the process of manufacturing each individual computer unit, loading into a mass memory of said individual computer unit the contents of a selected master disk image and providing on said unit readable information representative of the software code value assigned to said selected master disk image; b) when an individual computer unit is to be installed on the network: - determining a software code value identifying the software configuration that should be used in said computer unit, - by using said readable information, selecting from a set of individual computer units one unit having said software code value, - physically connecting said selected unit to the network, and - performing a soft installation of said selected unit involving communication between said selected unit and a remote configuration server existing on the network and providing to the unit data for finely tuning the contents of the mass memory of the unit. The present invention also provides according to a second aspect a network computer system including a plurality of individual computer units connected to each other through a network, and soft installation and configuration means for rapid installation of an individual computer unit, said system further including a masse storage containing at least one master disk image containing a plurality of computer programs and associated parameters, wherein a unique software code value is assigned to each master disk image and is representative of a software configuration corresponding to the contents of said master disk image, wherein a mass memory of each individual computer unit is initially loaded with the contents of a selected master disk image, wherein said unit is provided with readable information representative of the software code value assigned to said selected master disk image, and wherein said soft installation and configuration means comprises for each additional unit to be added to the system : means for determining a software code value identifying the software configuration that should be used in said computer unit, - means for selecting from a set of individual computer units one unit having said software code value, - means for performing a soft installation of said selected unit by communication between said selected unit and a remote configuration server belonging to the network computer system and providing to said unit data for finely tuning the contents of the mass memory thereof. Brief description of the drawings Other aspects, aims and advantages of the present invention will appear more clearly from the following detailed description of a preferred embodiment thereof, made with reference to the appended drawings. In the drawings: Figure 1 shows a user interface of a self- configuration and deployment aiding component of the present invention, Figure 2 is a synopsis showing the global implementation of such component, Figure 3 is a state diagram of said component, Figure 4 is a synopsis showing the general architecture of a script-based component according to the present invention for configuring, parameter-setting and programming of the system according to the present invention, Figure 5 illustrates an example of a script generated with the component of Figure 4, Figure 6 shows a list of script items together with associated icons, Figure 7 illustrates the tree structure of an first exemplary script, Figure 8 is a source code of a method included in the exemplary script of Figure 7, implemented in a dynamic link library, Figure 9 illustrates the tree structure of a second exemplary script, Figure 10 is a source code of a method included in the exemplary script of Figure 9, implemented in said dynamic link library, Figure 11 is a example of a deployment sheet as printed after deployment according to the present invention, and Figure 12 is an example of a certificate of authenticity delivered after deployment according to the present invention. Detailed description of a preferred embodiment The main purpose of the present invention is to generate a software configuration, for instance in a conventional hard disk, flash memory or equivalent of an industrial PC or the like, which is pre-initialized and which requires only minor manual configuration operations when the PC is to be put into operation in an industrial computer network or when such PC is to replace a existing PC of the network which does not work properly or does not work at all, for whatever reason. The basic steps of the method according to the present invention will now be described with reference to figure 1. A preliminary step STEP-1 is a conventional step when implementing a PC in an industrial computerized network intended to control and to monitor an industrial process. Such step consists in analyzing, developing and testing the set of operating systems, application programs, resources, parameters, data, etc. which have to reside in the permanent memory of the PC in order to make it work according to the needs . Such set of programs ■ and data is called "functional disk image". Such step involves a preliminary process including the following sub-steps: - SSTEP-1.1: analyzing the needs of the customer, relation with the industrial and network environment, en particular the network architecture; SSTEP-1.2: selecting the right application software (most often a publicly available automation software) , operating system and additional software tools; - SSTEP-1.3: preparing a detailed list of the pieces of software (OS, auxiliary tools, automation software) to be installed; - SSTEP-1.4: determining the values of typical configuration parameters of the operating system and the application software, such as network parameters, access rights, passwords, etc.); the parameters of the automation software are determined, in a manner known per se, according to the type(s) of automation equipment (s) connected to the PC box and to the operations intended to be performed by such equipment in the industrial process of the customer; - SSTEP-1.5: preparing a reference document describing the whole procedures to be performed for generating a reference disk image, and attributing a unique software code value to the reference disk image to be generated accordingly; - SSTEP-1.6: validating the choices of the various pieces of software and related parameters, with particular concern of the availability of the software and its operating stability; - SSTEP-1.7 : generating a reference disk image according to the contents of the reference document prepared in SSTEP-1.5, by adequate installation and parameter setting procedures; - SSTEP-1.8: preliminary test of the reference disk image on a special platform which simulates the environment of the customer site; if such test reveals any defects, appropriate sub-steps from SSTEP-1.1 to SSTEP-1.7 are executed again as necessary to bring the adequate corrections; - SSTEP-1.9: once the testing in SSTEP-1.8 is successful, this sub-step consists in testing the reference disk image on the customer site, by a deployment procedure which will be described in detail herebelow; here again, whenever such on-site testing reveals any defect, appropriate sub-steps from SSTEP-1.1 to SSTEP-1.7 are executed again as necessary to make the adequate corrections; - SSTEP-1.10: once the on-site testing is successful, the . reference disk image is validated, the reference document prepared in SSTEP-1.5 is given an adequate protection attribute so that in cannot be changed again except in special circumstances, and the reference disk image can be used as a master disk image (MDI) in the process of manufacturing the PC boxes. It should be noted here that, depending on the environment in which a PC box is intended to operate, and depending on the time at which the PC box is manufactured, there will be in practice different master disk images each having a specific software code value; for instance, different masters can contain different versions of a same operating system, different versions of a same automation software, different types of automation or auxiliary software programs, etc. The next step STEPO consists in initializing a disk image at a relevant stage of the PC box manufacturing process. Such step includes the following sub-steps: - SSTEP0.1: formatting and if necessary partitioning the PC box hard disk; - SSTEP0.2: copying the contents of the relevant master disk image on the PC hard disk; SSTEP0.3: individualizing the hard disk by inputting - e.g. via a keyboard connected to the PC box - and writing into the hard disk various data which characterize the hard disk contents, inter alia: * assigning to the PC the software code value which is associated with the master disk image which has been used in SSTEP0.2; * serial number of the PC box; * serial number of the operating system; * individual license numbers of the application programs contained in the disk, whenever appropriate; * IP address of the PC, whether by hand or automatically; * name allocated to the PC on the plant network (most often, the serial number of the PC) ; * a variety of other individual system parameters; - SSTEP0.4: creating a computer file concerning the follow-up of manufacture of the PC box, such file constituting at the same time a certificate • of authenticity of the PC. The following step STEPl includes the necessary operations for testing and validating the full PC box (hardware and software) at the end of the- PC box manufacturing process. Such operations include: - SSTEP1.1: a first power-on boot of the PC box, which has to be successful in order to make possible the validation of the system and to expect a correct boot when the PC will be put into operation in the industrial plant (cf. STEP2) ; SSTEP1.1 is performed by launching a specific deployment program (SDP) which will be described hereinafter in a first mode described as test booting mode; - SSTEP1.2: final initialization and writing on the PC box hard disk of the individual parameters of the PC box; ~ SSTEP1.3: launching a special test program for aiding semi-automatic functional test of the PC box, in relationship with a special test station on a test network at the PC box manufacturing site; - SSTEP1.4: performing the tests defined in the test program launched at SSTEP1.3, and recording the test results in the manufacturing follow-up file associated with the PC box; - SSTEP1.5: if the tests in the previous sub-step are successful, then validating the results; else, making appropriate corrections and getting back to SSTEP1.3; - SSTEP1.6: after the above validation sub-step, a flag is set in the specific deployment program SDP so as to cause the latter to run in a second, on-site booting mode the next time it will be launched; - SSTEP1.7: at the test station described in SSTEPl.3, printing the manufacturing follow-up file, which constitutes an individual certificate of conformity of the PC box and which contains the essential information on its hardware and software and all related installation and test procedures. The PC box may now be delivered to the customer. The following step (STEP2) is the first on-site deployment of the delivered PC box. This step involves the specific deployment program SDP running in a second mode of operation and includes the following operations: - physical installation of the PC box and physical connections at the customer's industrial plant; - booting the PC box and launching the special deployment program in its second mode (on-site booting) , such booting leading to the following operations (SSTEP2.1 and SSTEP2.2) : * displaying of a page allowing on-site characterizing data to be entered in relevant input fields (it should be noted here that, although a basic PC box in use normally does not have a display screen connected thereto, such a display can be temporarily connected for this purpose) ; such data typically include the name that the PC box should have on the network; * using the inputted network name to automatically fetch in a remote configuration file server belonging to the industrial network various parameters, configuration (""config") files, update of programs, drivers or services as appropriate, contained in a specific directory associated with the network name; this fetching: • allows the correct integration of the PC box operating system in the industrial network, • causes the automatic configuration of the application software by using the config files SSTEP2.3; • causes the possible update of application software version, in the case where the software version loaded into the PC box hard disk at SSTEP0.2 is older than the version stored in the configuration file server (SSTEP2.3) ; * final self-testing of the connected PC box (SSTEP2.4) which, if successful, causes validation of the installation and validation procedure, after which the services provided by the various application software are automatically launched. It should be noted that step STEP2 is performed either when a PC box is to be installed for the first time in the industrial environment, or when the PC box is intended to replace a pre-existing, defective PC box. In this regard, the procedure for replacement of a defective PC box is substantially identical to the procedure for installation of a fresh PC box. After STEP2 has been performed, the PC box is ready for effective operation on the network system. the next step STEP3 consists in starting or launching the automation software; during the initial stage of the launch, the appropriate configuration files of the automation software are fetched through the network in the configuration file server. Optionally, and as known per se, such configuration files are fetched each time the automation software is launched again, in order to load into the PC box any configuration updates that may have occurred in the meantime. It should be noted here that each time a significant update or new version of an application software is to be used by the PC box, it may be appropriate to execute again the whole on-site deployment as defined by STEP2. The specific deployment program SDP referred to in the description of STEP1 and STEP2 will now be described in greater detail. First of all, such global deployment program is based on a main engine consisting of a software embarked in the PC box. Such deployment program has a user interface for instance as shown in figure 1 of the drawings. This shows a Microsoft Windows"-type window having a display area, a list of items, and three buttons ""Next", "Back" and "Quit" . The list enables the user to be informed of the status of the deployment software, such list ending with "Ready for Production", informing the user that the deployment and associated tests as defined by STEP1 and/or STEP2 have been successfully performed. As shown in Figure 2, the PC box software system SYST includes the deployment program Deploy which includes the a graphical user interface GUI cooperating with a script engine. Said script engine is in communication (i) with a plant server though the plant network, and (ii) with local configuration scripts stored in the hard disk of the PC box. The system SYST enables the calling of procedures (API) in relationship with the operating system as well as the calling of utility programs belonging to the operating system. Figure 3 shows the state diagram of the deployment software, including the basic states corresponding to STEPO, STEP1, STEP2 and STEP3 as defined above. Transitions are: - from STEPO to STEP1 and vice versa; - from STEP1 to STEP2 (i.e. activation of the deployment program SDP) and vice versa; from STEP2 to STEP3 (i.e. exit from the deployment program SDP) and vice versa (i.e. reactivation of the deployment program SDP) . Within STEP2, the transitions between the sub-steps thereof SSTEP2.1 to SSTEP2.4 are also shown. A script-based engine for performing the configuration of SSTEP2.3 will now be described in detail. Such engine is operated on the basis of scripts which are basically text files of directives written according to a pre-defined macro language and to a structure of diagram and transition between states. Programming the engine, i.e. writing the script, is performed by the operator by means of a script editor. The scripts are executed without any necessity of compiling them. The global architecture of the script engine and the related environment is shown in Figure 4. It includes the script engine itself (StateEngine) , which receives script functions to be executed from (i) standard Dynamic Link Libraries (DLLs) 102 and from (ii) additional, specialized Dynamic Link Libraries. Through the plant network, the engine is capable of accessing (i) text files of config parameters and (ii) text files of state logic programs. These text files and are created/modified by a specific file Editor therefor. The standard DLLs includes the code of the standard set of functions of the scripting language. The specialized DLLs includes an additional code of supplementary functions which are specialized according to the needs of specific ■ application programs to be fitted in the PC box. Typically, these functions correspond to specifically developed drivers for said application programs. Creating the additional, specialized DLLs is typically performed by conventional programming in a compilable language . For instance, the deployment program uses a specialized DLL containing specific functions in relation with the PC box operating system. For instance, when the operating system is "Windows NT" (trademark of Microsoft, Corp.), such functions typically are API interfaces and more generally interfaces that use the utility programs of the operating system. Another specialized DLL is the man/machine interface as briefly described above, allowing to display and to input deployment information. An example of a script for the deployment program is shown in Figure 5. This script has been developed with the basic and well known script creation tool "State Model builder". The item types present in the script of Figure 5 are detailed in Figure 6, together with the corresponding icons . The contents of Figures 5 and 6 are to be considered as included in the present description. Figure 7 shows an example of a specialized "System" DLL used in the deployment program, corresponding to the re-booting of the PC box. This DDL includes a "Reboot" state, which is represented as having no sub-states and no specific variables. The "Reboot" state has two actions as listed under the "Actions" item. The "Enter" action designates the handling of the event which has activated the "Reboot" state, together with possible initialization. The "ButtonlPressed" action is triggered by the user depressing a button "Reboot validation" in the man/machine interface, such action calling four processing methods SetButtons, SetInfo, SetStep and Reboot. The first three methods are basic setting steps, while the method Reboot corresponds to the rebooting action per se. It is shown under the Reboot method that such method includes no calling parameters nor any returned results. The code for the above-described "Reboot" method, as implemented in the "System" specialized DLL, is shown in Figure 8. Such code includes in particular a standard API function ABool :=InitiateSystemShutdown(nil, ' ' , 0, True, True) Figure 9 illustrates the script of a somewhat more complex function of the deployment program, i.e. the function of configuring the network name of the PC box. This script includes inter alia an action "SetComputerName", which is a method for network name change having as sent parameter Name=EqpName and as returned parameter Error/Code = ErrCode if this name change results in an error. The script also includes a transition "StateName = Reboot", which when no error exits activates the Reboot state described in figures 7 and 8, such rebooting being necessary for validating the new network name. An exemplary code for the "SetComputerName" method is shown in Figure 10. It includes inter alia a function "SetNetBiosName", and further calls various specialized tools for manipulating system parameters in order to implement the NetBiosName change in the system. Although the preceding description is applicable to an operating system such as "Windows NT" (a registered Trade Mark of Microsoft Corp.), the one skilled in the art will easily make the necessary adaptations for other operating systems such as "Unix"-based operating systems. Likewise, although the present description refers to a PC box having the conventional architecture of a personal computer, it will be understood that the present invention may be used with any computer equipment having processor means, memory means, mass storage means, I/O means and other appropriate devices whenever necessary. Figure 11 shows a deployment report generated by the deployment program SDP in second mode. Figure 12 shows a certificate of authenticity associated to a given PC box and generated by the deployment program SDP in the first mode, containing inter alia the "Software code" ST8AL1.1 which designates the master disk image loaded in said given PC box.

Claims: WHAT IS CLAIMED IS: 1. In a network computer system including a plurality of individual computer units connected to each other through a network, a method for rapid installation of an individual computer unit, said method including the following steps: a) at the manufacturing stage of each individual computer unit: - preparing at least one master disk image containing a plurality of computer programs and associated parameters, - assigning to each master disk image a unique software code value representative of a software configuration corresponding to the contents of said master disk image; during the process of manufacturing each individual computer unit, loading into a mass memory of said individual computer unit the contents of a selected master disk image and providing on said unit readable information representative of the software code value assigned to said selected master disk image; b) when an individual computer unit is to be installed on the network: - determining a software code value identifying the software configuration that should be used in said computer unit, - by using said readable information, selecting from a set of individual computer units one unit having said software code value, - physically connecting said selected unit to the network, and - performing a soft installation of said selected unit involving communication between said selected unit and a remote configuration server existing on the network and providing to the unit data for finely tuning the contents of the mass memory of the unit. 2. A method according to claim 1, wherein said performing step is performed by means of a script engine. 3. A network computer system including a plurality of individual computer units connected to each other through a network, and soft installation and configuration means for rapid installation of an individual computer unit, said system further including a masse storage containing at least one master disk image containing a plurality of computer programs and associated parameters, wherein a unique software code value is assigned to each master disk image and is representative of a software configuration corresponding to the contents of said master disk image, wherein a mass memory of each individual computer unit is initially loaded with the contents of a selected master disk image, wherein said unit is provided with readable information representative of the software code value assigned to said selected master disk image, and wherein said soft installation and configuration means comprises for each additional unit to be added to the system : means for determining a software code., value identifying the software configuration that should be used in said computer unit, - means for selecting from a set of individual computer units one unit having said software code value, - means for performing a soft installation of said selected unit by communication between said selected unit and a remote configuration server belonging to the network computer system and providing to said unit data for finely tuning the contents of the mass memory thereof.

Inventors: BELLAMY FABRICE, MOUSTIES RICHARD, RAYMOND THIERRY, BELLAMY, FABRICE, MOUSTIES, RICHARD, RAYMOND, THIERRY
Applicants: SI AUTOMATION
Application year: 2001
Main classification: G06F9
IPC codes: G06F9