PC Remote Build
Purpose:
The tool PC Remote Build was originally designed to allow one to build a PC, from scratch, with very little effort. 
The need for this tool was quickly realized when the task of building over 100 PCs, slated for the year 1 & 2 sites, 
became apparent. The tool would have to meet certain requirements in order . First, the tool would have to be able 
to deal with windows as well as any application that alters the windows environment. Likewise, the tool must be 
able to function completely from a disk, to allow for the possibility that the hard drive was recently formatted. And 
finally, the tool must be dynamic and flexible in dealing with the different types hardware that a PC might have 
installed. 
Original Components:
Using the criteria listed above, PC Remote Build was constructed in basically two phases: 
- INSTALL 
 
- The Install tool would fit completely on a single disk and would be able to handle all the possible hardware 
configurations that CK:P would be aware of. This tool was a script written in Perl (based on several 
decisions that are not covered in this document), that used data files (which could be manually updated) to 
inform the script of all the possible hardware and software possibilities. Install would also responsible of 
installing enough software to allow a RESTORE to function using IP with the WATTCP networking library. 
 
- RESTORE 
 
- The Restore tool would be responsible of loading the software and handling the configuration of windows 
and any applications that alter the basic windows configuration. The initial phase of Restore would first 
require all the software necessary, from the sever, that would allow the main phase of Restore to run. The 
main phase would then, based on the information that Install left, and on information that Restore required 
from server, fetch all the software it needed from the server. On completion of fetching all the software 
(which actually is broken up into packages on the server), the last phase of Restore proceeds to run 
"configuration" scripts for each package that was retrieved. These scripts handle the configuration problems 
that exist in a PC running windows. 
 
Design:
PC Remote Build was designed under the common description of a server-client environment. The basic premise 
was to only keep enough information on a disk or hard drive necessary to build a remote PC from a server. 
Moreover, the knowledge that NCSA would no longer support "ftp", and that the HTTP protocol would remain 
stable, encouraged the development of the system such that all requests to the server would be via the WWW 
Server using the HTTP protocol at port 80. 
Assumptions:
PC Remote Build was written with several basic assumptions in mind: 
- User: The user would have some knowledge about the hardware and IP configuration of the LAN & PC 
that the software was running on. 
 
- Hardware: There is a stable (production) server locally on the LAN that has a WWW Server and sufficient 
disk space to support PC Remote Build. Likewise, the PC must have an Ethernet card, and the software to 
run the Ethernet card under WATTCP must be available to PC Remote Build. In order to run Restore, 
Install *must* have been previously run CORRECTLY to define the packages and hardware for that PC, as 
well as setting the network configuration. 
 
- Maintenance: A programmer (with the knowledge of Perl) is needed to add new packages and update older 
packages. 
 
Goals:
It quickly became evident that this tool would be very useful in a changing environment (e.g. classroom), such that, 
it would work in a co-existence with "private" or "local" software that was added to the user device. A new phase 
of PC Remote Build "Refresh" was created to allow simple updates of software on a client, without interfering with 
existing software. Unfortunately, because of the complex nature of this problem, and the fact that windows was 
poorly designed for remote configuration, "Refresh" is not optimal. 
 
Return to the PC-RB page
 
Revision 1.1:July 16, 1996:CJR