Patent Publication Number: US-2003227477-A1

Title: Detecting compatibility of a computer system with a software download through the world wide web

Description:
RELATED PATENT APPLICATIONS  
       [0001]                                                              5881236   March 1999   Dickey   709/221           6282712   August 2001   Davis et al.   717/170           5832275   November 1998   Olds   717/173           5752042   May 1998   Cole et al.   717/173           5579509   November 1996   Furtney et al.   703/27           6282711   August 2001   Halpern et al.   717/175                        
       OTHER REFERENCES  
       [0002] “System Requirements, EFS”, http://www.uspto.gov/ebc/efs/downloads/systemreq.htm “Microsoft COM Specification”, http://www.microsoft.com/com/resources/comdocs.asp “ActiveX Controls”, http://www.microsoft.com/com/tech/ActiveX.asp  
       Reference to Computer Program Listing Appendix  
       [0003] A computer program listing is included with certain support files. They have been submitted on two CD-R. An original and a duplicate.  
       [0004] The files included are:  
                                                       Name   Size   Description                                                        CheckData.cpp   546   //configuration code           CheckData.h   449           CheckInfo.cpp   17505   //system checking code           CheckInfo.h   571           DrawResult.cpp   1923   //visual output code           DrawResult.h   429           MsgLog.cpp   499   //user reporting/logging code           MsgLog.h   350           Sec.cpp   189           Sec.h   6554   //main component code           Sec.htm   430   //example HyperText Markup                   Language (HTML)           StdAfx.cpp   315           StdAfx.h   929           Trace.cpp   242   //logging           Trace.h   260           resource.h   542           satl.cpp   1930           satl.def   216           satl.h   5257   //com object definition           satl.idl   727                      
 
       BACKGROUND OF THE INVENTION  
       [0005] The present invention relates to the installation of software downloaded through the World Wide Web (Web), and in particular the compatibility of that software with the downloading computer.  
       [0006] Downloading and installing software through the web can be a difficult task, especially for new or non-technology oriented users. There are a many things that need to work properly for software to be installed. This includes, being able to unpackage the software correctly, having the correct operating system, having correct hardware, having additional support software installed. These leaves many potential areas for failure when trying to download software through the web. The current invention allows to user to avoid the time and hassle of downloading and installing a software by knowing whether their system meets the softwares requirements.  
       [0007] Currently, in the most common case, when users download software through the web their browser retrieves the file over the web using HTTP, the file is stored on disk after which it is unpackaged and the installation program if needed is run.  
       [0008] Most often before downloading the user is advised of the “System Requirements” Here is an excerpt from the EFS system requirements, needed to run ePAVE. 
       [0009] Processor: Pentium 266 mHz minimum  
       [0010] Memory: 64 MB RAM minimum  
       [0011] Free Space: 42 MB minimum  
       [0012] Monitor Resolution: 800 by 600 minimum  
       [0013] Operating System: Windows 95 (Service Release 1 or higher) or Windows 98 or Windows/NT® (Service Pack 3 or higher) or Windows 2000  
       [0014] Browser: Microsoft Internet Explorer 5.01 or higher (Internet Explorer 5.5 recommended)  
       [0015] TIFF Viewer Plug-In  
       [0016] Internet Connection: 56 Kbps or faster 
       [0017] The user is expected to understand these requirements, to know the capabilities of their computer system, and decide if the software will work or not. Even for advanced users this can prove a difficult task, since there are unstated underlying assumptions on which these requirements are based. Such things as the file system format can change the disk space requirement significantly, or the type of memory installed can have a significant impact on performance. This method of determining compatibility, although the most common, contains serious disadvantages for the user.  
       [0018] There have been various strategies to make this simpler for the user, more advanced websites use the HTTP request&#39;s “User-Agent” header in order to automatically redirect users to the right download link based on information in that field, this does not work for browsers that do not report the operating system in the user-agent string, and this essentially only relieves the user of the burden of understanding the operating system requirement.  
       [0019] A very few websites have gone further, such a Microsoft.com which contains an ActiveX control which finds what software is installed on the system and makes recommendations of other software to install. This works for an isolated group of software that is designed to run together.  
       [0020] Other software relies on the installation process. Before the software is the installation software flags any problem with the system. This a better solution since it can detect more problems, but still requires the user to spend time downloading the software which can be a time consuming task. Also in some instances the installation software itself may not run.  
       BRIEF SUMMARY OF THE INVENTION  
       [0021] The invention allows a user to know before downloading software whether their system meets the requirements of the software and therefore will most likely be compatible with it. This saves the user the time of downloading, and potential corruption of their system from attempting to install a piece of software.  
       [0022] The invention is a component of software that runs within the execution environment of a web browser. It is refered to in Internet Explorer as a control , and in Netscape, as a plugin. Other browser exists with other terminology and interface, but the concept is the same. The software is automatically downloaded and run when a user downloads a web page which contains the correct html.  
       [0023] To give meaningful results specific html must be used to reference the control, and also to input the system requirements of the software. Once this is done the control can compare these against the downloading system and display the result. A check mark is displayed if everything is a ok, and a red X if there is a a problem. Furthermore there is an error log that is created and which can be viewed by clicking on the red X. It informs the user of what requirement(s) their system did not meet. 
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0024]FIG. 1 Displays the client-server system in which the invention is used, and shows what the invention looks like to the user  
     [0025]FIG. 2 Displays a flow control diagram for the main detection portion of the invention 
    
    
     DETAILED DESCRIPTION  
     [0026] The invention is a piece of software that is automatically downloaded and run on the users computer when they request a web page.  
     [0027]FIG. 1 shows the system in which the invention can be used. A user&#39;s computer  101  along with software capable of connecting to the World Wide Web, commonly known as a web browser  102 , connects to a remoter server  106  through a network  105  with a HTTP server  107  running. The web browser requests a HyperText Markup Language (HTML), document. The server responds with the document  104 , which contains special HTML used to tell the web browser where to find the software that comprises the invention, and what the configuration information is. For the results of the invention to be meaningful, the configuration information must correspond to the necessary requirements of a computer system to run the software.  
     [0028] Example HTML to locate and configure an ActiveX control implementation is 
     [0029] &lt;OBJECT ID=“Sec”CLASSID=“CLSID:D1482FFF-77A7-445F-B1FA-23979E61E06B” codebase=“/”&gt; 
     [0030] &lt;param name=XSIZE VALUE=“4000”&gt; 
     [0031] &lt;param name=YSIZE VALUE=“4000”&gt; 
     [0032] &lt;param name=DIRECTX_VERSION VALUE=“6”&gt; 
     [0033] &lt;param name=SCREEN_X VALUE=“640”&gt; 
     [0034] &lt;param name=SCREEN_Y VALUE=“480”&gt; 
     [0035] &lt;param name=MEMORY VALUE=“1000”&gt; 
     [0036] &lt;param name=DISK VALUE=“10000”&gt; 
     [0037] &lt;param name=MAJOR_OS VALUE=“5”&gt; 
     [0038] &lt;param name=MINOR_OS VALUE=“0”&gt; 
     [0039] &lt;param name=“PLATFORM_OS” VALUE=“0”&gt; 
     [0040] &lt;param name=“PROC_ARCH” VALUE=“0”&gt; 
     [0041] &lt;param name=“PROC_LEVEL” VALUE=“6”&gt; 
     [0042] &lt;/OBJECT&gt; 
     [0043] The design of the invention allows more system checks to be added easily.  
     [0044] The currently supported ones are shown above and are 
     [0045] DIRECTX_VERSION—The version of Microsoft DirectX that is installed on the system  
     [0046] SCREEN_X—Screen Resolution Horizontal pixels  
     [0047] SCREEN_Y—Screen Resolution Vertical pixels  
     [0048] MEMORY—memory in kilobytes  
     [0049] DISK—disk space in kilobytes  
     [0050] MAJOR_OS—os version id  
     [0051] MINOR_OS—os sub version id  
     [0052] PLATFORM_OS—os platform is  
     [0053] PROC_ARCH—id for processor architecture (Intel, ALPHA, 68K)  
     [0054] PROC_LEVEL—depends on PROC_ARCH, but for Intel reprsenrs 386,486, Pentium and so on.  
     [0055] Once this HTML is processed by the browser it will retrieve the control, and possibly show the user a security warning before executing it. Depending on whether the system meets the requirements or not, in the display area of the control  103 , an image of a green check mark or red “X” will be shown.  
     [0056]FIG. 2 shows the overall operation of the invention when it is executed by the browser. At step  201  the invention reads in the configuration information, this currently only consists of the XSIZE and YSIZE parameters, which define the size of the actual invention within the web page. This allows the implementer to change the visual size of invention in order to suit his needs for that particular HTML page.  
     [0057] At step  202  the invention reads in all the system requirements supplied in the param tags. The requirements specified are absolutely critical to the detection process results being meaningful. The control is in essence a comparison engine. It is the responsibility of the web page developer, or developer of the software to supply the correct minimum requirements for the software and generate the correct html for this.  
     [0058] In steps  203 ,  205 , and  206  the invention cycles through all the requirements testing each one individually. If any time the system does not meet one of the requirements the process stops and the failure symbol is drawn, a red “X”  207 . An error log is also created that documents what test failed  208 . This can be accessed by the user by clicking with the primary mouse button anywhere inside the visual area of the control. If after checking all the requirements, there have been no failure then the invention proceeds to step  204  since the system must meet every requirement and a big green check mark is displayed.