Patent Publication Number: US-6701364-B1

Title: Method and apparatus for remote computer management using web browser application to display system hardware and software configuration

Description:
CROSS-REFERENCE TO RELATED PATENT APPLICATION 
     This application is a continuation-in-part of U.S. patent application Ser. No. 09/303,118, filed on Apr. 30, 1999. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates generally to remote computer accessing, and, more particularly, to performing computer diagnostics and computer management using a web browser application program and a Hyper-Media Managed Object application program. 
     2. Description of the Related Art 
     Performing computer diagnostics and computer management are essential tasks for maintaining proper operation of computers. Modern computers have multiple complex hardware components that cooperate to perform computer operations. Integration of complex hardware and software in computers can result in several technical problems that compromise optimal performance of computers. Many times, a computer professional&#39;s services are required to remedy computer diagnostic problems. 
     Much of the consultations performed by computer experts are conducted via the telephone. Often, a computer user will communicate with a computer consultant over a telephone and run certain computer software application programs and report back to the computer consultant. This can be a tedious, as well as an inefficient, process. Many times, the computer operator will not be familiar with the hardware and software details to properly advise the computer consultant of the problems at hand. The computer consultant is then forced to iteratively narrow down possible hardware or software problems. 
     Often, a computer consultant performs an on-site inspection of a computer that has been experiencing operational problems. Alternatively, a computer which is experiencing operational problems is taken off-site, to a computer consultant. Both of the options, on-site and off-site inspections, are very time-consuming and costly. Several diagnostic evaluations must be performed on a computer which is experiencing operational problems before a course of corrective action is taken. One of the tools utilized by computer experts is the execution of a diagnostic software application program. Generally, the execution of a diagnostic software application program initiates a series of tests on a computer system. Often the knowledge of an experienced computer technician is required to evaluate the results of the tests performed by the diagnostic tool. Computer systems are generally complex and may host many peripheral devices that must cooperate properly. Consequently, software systems that analyze and diagnose computer systems are increasingly complex. Therefore, users who are not extensively trained in evaluation of computer systems are often unable to properly execute computer diagnostic software. 
     Many times, attempts to evaluate and resolve computer problems over a telephone conversation are futile since the computer user may not be able to execute the computer diagnostic tool and report back the results. Therefore, a site visit from a computer technician is often the only practical solution for some computer-related problems. The costs associated with a site visit by a computer technician compounds the problems related to computer malfunction. Beyond the cost of the consultation from a computer technician, delay, due to the non-operation of the computer system while awaiting a site visit, could bring about additional productivity-related costs. A visit from a computer technician not only halts productivity before the technician arrives, productivity could be suspended while the technician performs tests, evaluation, and repairs on the computer system. 
     The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above. 
     SUMMARY OF THE INVENTION 
     The present invention provides for a method and an apparatus for performing remote system administration upon a standalone computer system, using a controlling computer system. A remote communication sequence is started. The remote communication sequence is used to initiate a web browser application within a communication control platform using a Hypertext Transfer Protocol (HTTP) communication link. Communication between the controlling computer system and the standalone computer system is established using the communication control platform. A diagnostic application on the standalone computer system is initiated using the established communication between the controlling computer system and the standalone computer system. 
     In another aspect of the present invention, an apparatus is provided for performing remote system administration upon a standalone computer system, using a controlling computer system. The apparatus of the present invention further comprises: means for starting a remote communication sequence; means for using the remote communication sequence to initiate a request to a computer destination address; means for establishing communication between the controlling computer system and the standalone computer system by decoding the computer destination address; and means for initiating a diagnostic software application program on the standalone computer system using the established communication between the controlling computer system and the standalone computer system. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention may be understood by reference to the following description taken in conjunction with the accompanying drawings and appendices, in which like reference numerals identify like elements, and in which: 
     FIG. 1 is an illustration of one embodiment of the apparatus that facilitates the implementation of the present invention: a block diagram of a controlling computer system communicating with a standalone computer system using a remote communication protocol; 
     FIG. 2 illustrates one embodiment of the remote communications protocol described in FIG. 1; 
     FIG. 3 illustrates a more detailed depiction of the communication system described in FIG. 2; 
     FIG. 4 illustrates a block diagram of the method of performing system administration by the controlling computer described in FIG. 1; 
     FIG. 5 illustrates one embodiment of an HTTP request structure called the EXTENSION_CONTROL_BLOCK pointer; 
     FIG. 6 illustrates one embodiment of the source code implementation for a software procedure known as HttpExtensionProc, which in one embodiment is capable of identifying an HTTP request; 
     FIG. 7 illustrates one embodiment of the source code for reading the information processed by the diagnostic software application program (DFWReadInspect); 
     FIG. 8 illustrates one example of the inspection of the hardware and software in a standalone computer, performed by Compaq Diagnostics® and reported over the Internet or intranet, as implemented by the present invention; 
     FIG. 9 illustrates one example of the status check of a standalone computer, performed by Compaq Diagnostics® and reported over the Internet or intranet, as implemented by the present invention; 
     FIG. 10 illustrates one example of a screen display, in Compaq Diagnostics® software application, that allows a user to perform remote testing of a standalone computer system, as implemented by the present invention; 
     FIG. 11 illustrates an alternative embodiment of the remote communication protocol described in FIG. 1; 
     FIG. 12 illustrates a more detailed depiction of the communication system described in FIG. 11; 
     FIG. 13 illustrates a block diagram of an alternative method of performing system administration by the controlling computer described in FIG. 1; and 
     FIG. 14 illustrates one example of an inspection of the hardware and software in a standalone computer system and reported over the Internet or an intranet. 
    
    
     Appendix A illustrates one embodiment of the entry source code implementation for a Hyper-Media Managed Object (HMMO); 
     Appendix B illustrates one embodiment of a source code implementation for performing the steps of gathering and formatting into HTML computer hardware and operating system information; 
     Appendix C illustrates one embodiment of a source code implementation for initiating a diagnostic software application program; and 
     Appendix D depicts one illustration of an HTML formatted output of the diagnostic software application program output as processed by Compaq Inspect® For Windows®. 
     While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims. 
     DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS 
     Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers&#39;specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure. 
     Turning now to FIG. 1, one embodiment of a system that employs the present invention is illustrated. A standalone computer system  110  is electronically connected to a controlling computer system  120  through a remote communication protocol  130 . The standalone computer system  110 , in one embodiment, is a client computer system that is operational at a remote site, such as an office or a home. In one embodiment, the controlling computer system  120  is a computer controlled by a computer technician. Generally, the controlling computer system  120  is located at a remote office (not shown). In one embodiment, the standalone computer system  110  and the controlling computer system  120  may be comprised of a Macintosh system, a UNIX system, a PC system, a VAX system, a Workstation system, or any other system employed by those skilled in the art. 
     The remote communication protocol  130 , in one embodiment, consists of a communication system that allows the controlling computer system  120  to perform system administration tasks upon the standalone computer system  110 . One embodiment of the remote communication protocol  130  is illustrated in FIG.  2 . 
     Turning now to FIG. 2, one embodiment of a more detailed depiction of the remote communication protocol  130  is illustrated. A communication platform  210  is electronically coupled to a communication server  220 . The communication platform  210  includes a browser application program  215  for Internet/Intranet communication. In one embodiment, the communication server  220  facilitates data transfer between the standalone computer system  110  and the controlling computer system  120 . 
     The communication server  220  is electronically connected to first through Nth HTTP servers  240 ,  250 ,  260 . The communication server  220  directs diagnostic control from the web browser application program  215  to the first through Nth HTTP servers  240 ,  250 ,  260 . In one embodiment, the first through Nth HTTP servers  240 ,  250 ,  260  are located within the remote standalone computer systems  270 ,  280 ,  290 . In one embodiment, the first through Nth remote standalone computer systems  270 ,  280 ,  290  are configured to be Hyper-Media Managed Objects (HMMO). 
     The remote standalone computer systems  270 ,  280 ,  290  include a Hyper-Media Managed Object Application Program (HMMO API)  212 . The HMMO API  212  is used by the remote standalone computer systems  270 ,  280 ,  290  to facilitate communications between the web browser program  215  and the first through Nth remote standalone computer systems  270 ,  280 ,  290 . 
     In one embodiment, communications between the controlling computer system  120  and the first through Nth remote standalone computer systems  270 ,  280 ,  290  are facilitated by HTTP requests, within the web browser application program  215 , in the communication platform  210 . A Hypertext Transfer Protocol (HTTP) program, along with Hyper-text Markup Language (HTML), is employed by the present invention to facilitate communications between the controlling computer system  120  and the first through Nth remote standalone computer systems  270 ,  280 ,  290 . 
     HTML is a set of “markup” symbols or codes inserted in a file intended for display on a World Wide Web browser. The markup tells the Web browser application program  215  how to display a Web page&#39;s words and images for the user. HTML is defined in practice by both of the major Web browser developers, Netscape® and Microsoft®. Netscape® and Microsoft® are in the process of adding changes to their respective web browser application programs, and more officially for the industry, through the World Wide Web Consortium (W3C). A new version of HTML, called HTML4, has recently been officially recommended by the W3C, making this level an effective industry standard. However, both Netscape® and Microsoft® have implemented some features differently into their web browser application programs and they have provided non-standard extensions. Web developers using the more advanced features of HTML4 may have to design pages for both web browser applications and send out the appropriate version to the users. Significant features in HTML4 are sometimes described in general as dynamic HTML. The method and apparatus taught by the present invention can be implemented on different types of web browser applications. 
     In one embodiment, an HMMO is a management agent that can render its information as HTML pages. A client application requesting the HTML pages may be a web browser application program  215  or other Hypertext Transfer Protocol (HTTP) client applications, such as a Hyper-Media Management Application (HMMA). 
     Hypertext Transfer Protocol (HTTP) is the set of rules for exchanging files on the World Wide Web. The files exchanged under the HTTP guidelines include text files, graphic image files, sound files, video files, and other multimedia files. Essential concepts that are part of HTTP include the idea that files can contain references to other files whose selection will elicit additional transfer requests. Generally, Web server machines contain, in addition to the HTML and other files it can serve, an HTTP daemon. The HTTP daemon is a program that is designed to wait for HTTP requests and handle them when they arrive. The web browser application program  215  is an HTTP client, sending requests to server machines. When the user of the web browser application program  215  enters a file request by either “opening” a Web file by typing in a Uniform Resource Locator (URL), or clicking on a hypertext link, the web browser application program  215  builds an HTTP request and sends it to the Internet Protocol address (IP address) that is indicated by the URL. The HTTP daemon in the destination server machine receives the request and, after any necessary processing, the requested file is returned. 
     In order for an HMMO to be able to provide the management information as HTML pages, it must have access to an HTTP server. The HTTP server will listen for HTTP requests at a configured port and trigger the HMMO to provide its information when an HTTP request is received. In order to reduce undesirable interactions between multiple HMMOs and the crash potential of the HMMOs, each HMMO, or remote standalone computer system  270 ,  280 ,  290 , is given its own corresponding HTTP server. Therefore, the first through Nth remote standalone computer systems  270 ,  280 ,  290 , which are configured as HMMOs, are equipped with a first through Nth HTTP server  240 ,  250 ,  260 , respectively. Utilizing the first through Nth HTTP servers  240 ,  250 ,  260 , the first through Nth computer systems  270 ,  280 ,  290  are able to monitor their respective HTTP configured port (not shown) and “listen” for HTTP requests from the controlling computer system  120 . 
     In one embodiment, the controlling computer system  120  is electronically coupled with the first through Nth HTTP servers  240 ,  250 ,  260 . The first through Nth HTTP servers  240 ,  250 ,  260  are electronically coupled to a first through Nth, remote standalone computer system  270 ,  280 ,  290 , respectively. In an alternative embodiment, the first through Nth HTTP servers  240 ,  250 ,  260  are located within the first through Nth remote standalone computer systems  270 ,  280 ,  290 . 
     Generally, the controlling computer  120  addresses the first remote standalone computer system  270  through the first HTTP server  240  via the communication platform  210 . Once communication is established between the controlling computer  120  and the remote standalone computer system  270 , computer diagnostics can be performed. The diagnostic software application server program  230  controls a computer administration process that is capable of performing multiple status and diagnostic checks on remote standalone computer systems. In one example, the controlling computer system  120  will perform an overview status check on the remote standalone computers  270 ,  280 ,  290 . Such a status will yield information such as remote standalone computer&#39;s processor type, the total memory in the remote standalone computer  270 , peripheral devices that are interfaced with the remote standalone computer  270 , etc. The controlling computer system  120  will be able to display a screen that is substantially similar to the screen that would be displayed if a local diagnostic software application program were to be executed locally on the remote standalone computers  270 ,  280 ,  290 . The system administration performed on the first through Nth remote standalone computer systems  270 ,  280 ,  290  are performed in a similar manner. 
     Utilizing the remote communication protocol  130 , the controlling computer system  120  can display a screen that lists the status of the subsystems of the remote standalone computers  270 ,  280 ,  290 , such as the status of input devices (not shown). These input devices include the keyboard, joystick, mouse, etc. Therefore, if a problem regarding any of the aforementioned subsystems is suspected, an operator using the controlling computer system  120  will be able to address the problem by accessing the status of the subsystems and narrowing down the list of possible causes of the problem. Furthermore, utilizing the remote communication protocol  130 , an operator can test the internal memory of the remote standalone computers  270 ,  280 ,  290  by accessing their respective memory sections and testing them. 
     In one embodiment, one test performed on the internal memory of the remote stand alone computers  270 ,  280 ,  290  includes performing a write and read-back test. The write and read-back test includes writing certain values into the internal memory locations of the remote standalone computers  270 ,  280 ,  290  and then reading the values back to insure that memory locations are functioning properly. Other remote diagnostic tests can be performed on the remote standalone computers  270 ,  280 ,  290  by utilizing the remote communication protocol  130  described in the present invention. 
     Turning now to FIG. 3, a more detailed depiction of the communication system described in FIG. 2 is illustrated. The HTTP server  240  facilitates HTML communication with the first remote standalone computer system  270 . An HTTP request detector  320  detects incoming HTTP data. In one embodiment, the HTTP request detector  320  is capable of decoding HTML computer destination addresses. When the HTTP request detector  320  checks and confirms an address data packet sent by the controlling computer  120  to the first remote standalone computer system  270 , a communication link between the controlling computer  120  and the first remote standalone computer system  270  is established. Communication between the controlling computer system  120  and the second through Nth remote standalone computer systems  280 ,  290  is also performed in a similar manner. 
     The first through Nth remote standalone computers  270 ,  280 ,  290  contain a diagnostic software application program  330  that is accessible through the diagnostic software. The diagnostic software application server program  230  facilitates data transfer between a web browser application program  215  (see FIG. 2) and the first through Nth remote standalone computers  270 ,  280 ,  290 . The HTTP server  240 , in conjunction with the web browser application program  215 , initiates and controls the diagnostic software application programs  330 . 
     The controlling computer system  120 , which in one embodiment contains the web browser application program  215 , can gain access to the diagnostic software application programs  330  in the first through Nth remote standalone computers  270 ,  280 ,  290  through the communication path described above. Utilizing the software and hardware computer communication system described above, the controlling computer system  120  can perform system administration on the first through Nth remote standalone computer systems  270 ,  280 ,  290 . 
     A block diagram of the method of system administration by a controlling computer system is illustrated in FIG. 4, Turning now to FIG. 4, the remote system administration described by the present invention is initiated by starting a remote communication sequence, as described in block  410 . In blocks  420  and  430 , the web browser application is initiated and communication is established between the controlling computer  120  and the standalone computer  110 . 
     In one embodiment, the controlling computer  120  initiates an HTTP request to a specific address. The HTTP facilitates HTML communication with the first through Nth remote standalone computer systems  270 ,  280 ,  290 , which in one embodiment are configured as Hyper-Media Managed Objects (HMMO). The HTTP server  310  in the first remote standalone computer system  270  receives an HTTP request and sends it to the HTTP request detector  320 . When the HTTP request detector  320  decodes the proper address for the first remote standalone computer  270 , an Internet/Intranet communication line is established between the controlling computer system  120  and the first remote standalone computer system  270 . 
     In one embodiment, the standalone computer system  110  is capable of employing Hyper-Media Managed Object Application Programming Interface  212  (HMMO API). The HMMO API  212  is well known by those skilled in the art and having the benefit of the present invention. The HMMO API  212  is capable of operating in multiple operating systems, such as Microsoft Windows® and Windows NT®. In one embodiment, the HMMO API  212  is delivered as a binary library and “C” program header file. In one embodiment, the files with the “HTML/” prefix are generally found in an “HTML” sub-directory of the calling program. The files residing in the “HTML/” directory allow the HMMO API  212  binary library to present a default home page for an individual HMMO, such as said first remote standalone computer system  270 . In one embodiment, most of the HMMO API  212  functions are used primarily to configure, start, and stop operations of the first through Nth HTTP servers  240 ,  250 ,  260 . 
     In one embodiment, the standalone computer system  110  is also capable of employing an Internet Server Application Programming Interface (ISAPI). The ISAPI protocol is well known by those skilled in the art and who have the benefit of the present invention. One example of the Internet Server Application Programming Interface (ISAPI) is a communication technology offered by Microsoft®. In one embodiment, the present invention employs an ISAPI Dynamic Link Library (DLL) application for the operation on the first through Nth HTTP servers  240 ,  250 ,  260 , for Internet/Intranet communications. Operations of DLL applications are well known by those skilled in the art and who have the benefit of the present invention. 
     ISAPI applications provide a simple and efficient method of facilitating communication to multiple ISAPI-compliant Hypertext Transfer Protocol (HTTP) servers located within the first through Nth HTTP servers  240 ,  250 ,  260 . Generally, Internet Server Applications (ISA) operate in the same address space as the HTTP servers. Furthermore, the ISA is capable of accessing all computer resources available to the HTTP servers located within the first through Nth web servers  240 ,  250 ,  260 . Internet Server Applications generally have low overhead (relating to computer resources) because they do not require the creation of additional processes. Furthermore, the ISA will consume low overhead because they generally do not perform time-consuming communications across process boundaries. 
     An HTTP extension procedure function (HTTPExtensionProc function) is called by the HTTP servers  240 ,  250 ,  260  for each HTTP request targeted to the ISAPI extension. A structure called EXTENSION_CONTROL_BLOCK structure, provided to the call, contains the necessary HTTP request information to completely process an HTTP request. One embodiment of the EXTENSION_CONTROL_BLOCK structure is illustrated in FIG.  5 . 
     When a software procedure known as HttpExtensionProc is called, the typical ISAPI extension will examine an IpszPathInfo parameter to see the URL requested and then determine which task is processed. The ISAPI extension will then use a combination of calls to the ServerSupportFunction and WriteClient Function pointers to return information to the requesting entity, which is generally the standalone computer system  120 . In many cases, an ISAPI extension will map a URL to a file residing in a directory. This directory can be a known location, with no support from the HMMO API binary library. Alternatively, the ISAPI extension can be mapped to the HTTP server file pool implemented by the HMMO API binary library. The ISAPI structure variable IpszPathTraslated, and the complementary ISAPI/CGI variable PATH_TRANSLATED, provide a generic means of locating the mapped directory for a URL, if it is located in the HTTP server file pool. The mapping of a URL to the HTTP server file pool is based on the UrlBase provided when the ISAPI extension was registered, as illustrated by the following example: 
     ISAPI extension DFW (diagnostic application such as Compaq Diagnostics®); 
     Name=/DFW 
     UrlBase=C:/DFW/Html 
     URL is; 
     //IP:PORT/DFW/default.htm 
     PATH_TRANSLATED and IpszPathTranslated would be; 
     C :/DFW/Html/default.htm. 
     In some cases, UrlBase is not provided during registration. In such cases, the ExtensionBase, which is generally provided when the HTTP server is configured, is copied as the UrlBase. The IpszPathInfo parameter is examined to see if the URL requested is “/DFW/Inspect,” which designates a request to capture hardware and operating system information using the diagnostic software application program  330 , such as Compaq Diagnostics®. One embodiment of the source code implementation for the HttpExtensionProc is illustrated in FIG.  6 . One embodiment of the entry source code implementation for the HMMO is illustrated in Appendix A, which is forms a part of and is incorporated into the present detailed description, as if set forth fully below. 
     When HttpExtensionProc identifies a request to capture hardware and operating system information (/DFW/Inspect), then the diagnostic software application program  330 , such as Compaq Diagnostics® for Windows® (DFW) application process is initiated in silent mode to perform this task. One embodiment of a source code implementation for performing the steps of gathering and formatting computer hardware and operating system information is provided in Appendix B, which forms a part of and is incorporated into the present detailed description, as if set forth fully below. 
     One embodiment of a source code implementation for initiating the diagnostic software application program  330  is illustrated in Appendix C, which a forms a part of and incorporated into the present detailed description, as if set forth fully below. In one embodiment, the information gathered is specified to be written to an ASCII text file. The ASCII text file name is derived from the date and time the information is requested. One embodiment of the source code for reading the information processed by the diagnostic software application program  330  (DFW Readlnspect) is illustrated in FIG.  7 . Once the diagnostic software application process is completed, the ASCII text file is read and formatted into HTML format as shown in the output of the Compaq Inspect® For Windows® output, which is illustrated in Appendix D, which forms a part of and is incorporated into the present detailed description, as if set forth fully below. 
     The diagnostic software application program  330 , such as Compaq Diagnostics®, is initiated on the standalone computer system  110 , as described in block  440  of FIG.  4  and described above. Utilizing the communication system described above, the controlling computer system  120  performs system administration on the standalone computer system  110 , as described in block  450  of FIG.  4 . The system administration tasks performed on the standalone computer system include inspection of the hardware and software, status checks, hardware tests, and asset management. 
     One example of inspection of the hardware and software in a standalone computer  110 , performed by Compaq Diagnostics® and reported over the Internet or Intranet, is illustrated in FIG.  8 . As illustrated in FIG. 8, the computer system-type, the processor type, the storage device type, and the software version are detected remotely, using the principles of the present invention. Computer status, such as the expansion bus and the current computer system speed, can be obtained by using the principles described in the present invention. One example of the status check of a standalone computer  110 , performed by Compaq Diagnostics® and reported over the Internet or Intranet, is illustrated in FIG.  9 . 
     Many types of hardware and software tests can be performed upon a standalone computer  110  using the principles taught by the present invention. One example of a hardware test is to write to a certain register in the main Central Processing Unit (CPU), and read back and verify the correct value in that particular register. If the data that was written in the CPU register is read back, then the write/read test can be deemed successful. Other hardware tests, such as testing of computer peripherals, can be performed using the present invention. One example of a screen display, in the Compaq Diagnostics® software application program, that allows a user to perform remote testing of a standalone computer system  110 , is illustrated in FIG.  10 . 
     Other system administration tasks, such as asset management of computer peripherals, can be performed by implementing the present invention. Audit trails of peripherals in standalone computer systems  110 , such as computer systems within a corporate office, can be performed to ensure that computer peripherals are not changed or displaced without authorization. Other system administration tasks can be performed by implementing the principles taught by the present invention. 
     Once the desired system administration is performed on the standalone computer system  110 , the remote diagnostic operation is terminated, as described in block  460  of FIG.  4 . The remote diagnostic communication sequence is then terminated, as described in block  470  of FIG.  4 . At this point, control of the standalone computer  110  is relinquished by the controlling computer system  120 . 
     Turning now to FIG. 11, an alternative embodiment of employing the method taught by the present invention is illustrated. FIG. 11 illustrates an alternative embodiment of implementing the remote communication protocol  130 . A communication platform  1110 , which may be located in the standalone computer system  110 , is electronically connected to a communication server  1120 . The communication server  1120  facilitates data transfer between the standalone computer system  110  and the controlling computer system  120 . Utilizing the remote communication protocol  130 , the controlling computer system  120  can display a screen in the web browser application listing all the subsystems of the remote standalone computers  1160 ,  1170 ,  1180 , such as the input devices. These input devices include the keyboard, joystick, mouse, etc. Therefore, if a configuration problem regarding any of the aforementioned subsystems is suspected, an operator using the controlling computer system  120  will be able to better address the problem by accessing the list of all the subsystems and narrow down the list of possible causes. 
     The communication server  1120  is electronically connected to a first through an Nth HTTP server application  1130 ,  1140 ,  1150 . In one embodiment, the first through Nth HTTP server applications  1130 ,  1140 ,  1150  are electronically connected to a first through Nth remote standalone computer system  1160 ,  1170 ,  1180 . The HTTP server applications  1130 ,  1140 ,  1150  facilitate system administration tasks, that are performed by the controlling computer system  120 , upon the first through Nth remote standalone computer systems  1160 ,  1170 ,  1180 . 
     Turning now to FIG. 12, a more detailed depiction of the communication protocol  130  described in FIG. 11 is illustrated. In one embodiment, the communication platform  1110  described in FIG. 11 includes a web browser application  1210 . In one embodiment, the web browser application  1210  may include Microsoft Internet Explorer®, Netscape Navigator®, or other such applications that are known to those skilled in the art. In one embodiment, the web browser application  1210  will interact with an HTTP server application  1270  that is connected to an Internet or an Intranet port  1215 . Remote standalone computers  1160 ,  1170 ,  1180  contain a diagnostic application  1280  that can be accessed and controlled by the controlling computer system  120  via the remote communication protocol  130 . Communications from the web browser application to the first through Nth remote standalone computers  1160 ,  1170 ,  1180  are received by the HTTP server application  1270 . The first through Nth remote standalone computers  1160 ,  1170 ,  1180  contain a diagnostic application  1280  that is accessible through the HTTP server application  1270 . The HTTP server application  1270  facilitates data transfer between the web browser application  1210  and the first through Nth remote standalone computers  1160 ,  1170 ,  1180 . The web browser application  1210  and the HTTP server application  1270  initiate and control the diagnostic applications  1280  via the Internet or Intranet path  1215 . The controlling computer system  120 , which in one embodiment contains the web browser application  1210 , can gain access to the diagnostic applications  1280  in the first through Nth remote standalone computers  1160 ,  1170 ,  1180  through the communication path  1215  described above. Utilizing the software and hardware computer communication system described above, the controlling computer system  120  can perform system configuration gathering on the first through Nth remote standalone computers  1160 ,  1170 ,  1180 . A block diagram of an alternative method of performing system administration by a controlling computer system is illustrated in FIG.  13 . 
     Turning now to FIG. 13, the remote system administration described by the present invention is initiated by starting a remote communication sequence, as described in block  1310 . In one embodiment, the communication sequence is implemented by the communication platform  1110  and the communication server  1120 , which incorporates the web browser application  1210 , as described in FIG.  12 . The web browser application  1210  is initiated, as described in block  1320  of FIG.  13 . As described in block  1330  of FIG. 13, communication between the controlling computer system  120  and the standalone computer system  110  is established using the remote communication protocol  130  described in the present invention. In one embodiment, to establish communications between the controlling computer system  120  and the standalone computer system  110 , an HTTP server application  1270  is used to implement TCP/IP communications. The HTTP server application  1270  monitors a specific TCP/IP port on a network for a request to launch Compaq Diagnostics® together system configuration information and returns the requested result to the client. The diagnostic application, such as Compaq Diagnostics®, is initiated on the standalone computer system  110 , as described in block  1340  of FIG.  13 . Utilizing the communication system described above, the controlling computer system  120  performs system administration on the standalone computer system  110 , as described in block  1350  of FIG.  13 . The system administration tasks performed on the standalone computer system  110  include inspection of the hardware and software. One example of inspection of the hardware and software in a standalone computer system  110 , performed by Compaq Diagnostics® and reported over the Internet or Intranet, is illustrated in FIG.  14 . 
     As illustrated in FIG. 14, the computer system type, the processor type, the storage device type, and the software version are detected remotely, using the principles of the present invention. The system configuration gathered is compared against previous configurations (i.e., when the computer was first set up) and sent to the web browser application to display the system configuration differences in italics, in one embodiment, in red italics. Once system configuration gathering, comparison and desired system administration is performed on the standalone computer, the remote diagnostic communication protocol is terminated, as described in FIG.  13 . At this point, control of the standalone computer  110  is relinquished by the controlling computer system  120 . The principles taught by the present invention may be utilized by one skilled in the art and having the benefit of the present disclosure to perform various computer-related tasks from a remote location. 
     The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below.