|
|
|
| United States Patent | 6049671 |
| Link to this page | http://www.wikipatents.com/6049671.html |
| Inventor(s) | Slivka; Benjamin W. (Clyde Hill, WA), Webber; Jeffrey S. (Kirkland, WA) |
| Abstract | Creators of computer software provide the most up-to-date versions of their
computer software on an update service. A user who has purchased or
downloaded free computer software calls an update service or a network
service provider (e.g., an Internet provider) on a periodic basis. The
update or network service automatically inventories the user computer to
determine what computer software (e.g., a network browser) may be
out-of-date, and/or need maintenance updates. If so desired by the user,
the update service computer automatically downloads with a secure software
transfer process and installs computer software to the user computer. By
making periodic calls to an update or network service, the user always has
the most up-to-date computer software immediately available. The update or
network service may also alert the user to new products (i.e. including
new help files, etc.), and new and enhanced versions of existing products
which can be purchased electronically by a user and transferred
immediately from the update or network service. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 6049671 |
|
|
Method for identifying and obtaining computer software from a network
computer |
|
|
|
|
|
| Publication Date |
April 11, 2000 |
|
|
|
|
|
| Filing Date |
April 18, 1996 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This application is related to application Ser. No. 08/562,929, "Method and
System for Identifying and Obtaining Software from a Remote Computer,"
filed Nov. 27, 1995 by Philip E. Fawcett now U.S. Pat. No. 5,845,077. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5862362 Somasegar 703/21 Jan,1999 |      Your vote accepted [0 after 0 votes] | | 5860012 Luu 717/175 Jan,1999 |      Your vote accepted [0 after 0 votes] | | 5845090 Collins, III 709/221 Dec,1998 |      Your vote accepted [0 after 0 votes] | | 5845077 Fawcett 709/221 Dec,1998 |      Your vote accepted [0 after 0 votes] | | 5838906 Doyle 715/501.1 Nov,1998 |      Your vote accepted [0 after 0 votes] | | 5781707 Kunz 358/1.5 Jul,1998 |      Your vote accepted [0 after 0 votes] | | 5748960 Fischer 719/316 May,1998 |      Your vote accepted [0 after 0 votes] | | 5717930 Imai 717/176 Feb,1998 |      Your vote accepted [0 after 0 votes] | | 5694546 Reisman 705/26 Dec,1997 |      Your vote accepted [0 after 0 votes] | | 5654901 Boman 717/173 Aug,1997 |      Your vote accepted [0 after 0 votes] | | 5638446 Rubin 705/51 Jun,1997 |      Your vote accepted [0 after 0 votes] | | 5586304 Stupek, Jr. 717/170 Dec,1996 |      Your vote accepted [0 after 0 votes] | | 5586322 Beck 707/200 Dec,1996 |      Your vote accepted [0 after 0 votes] | | 5555416 Owens 717/178 Sep,1996 |      Your vote accepted [0 after 0 votes] | | 5548645 Ananda 705/52 Aug,1996 |      Your vote accepted [0 after 0 votes] | | 5528490 Hill 717/168 Jun,1996 |      Your vote accepted [0 after 0 votes] | | 5496177 Collia 434/118 Mar,1996 |      Your vote accepted [0 after 0 votes] | | 5495411 Ananda 705/32 Feb,1996 |      Your vote accepted [0 after 0 votes] | | 5473772 Halliwell 717/171 Dec,1995 |      Your vote accepted [0 after 0 votes] | | 5421009 Platt 709/221 May,1995 |      Your vote accepted [0 after 0 votes] | | 5390247 Fischer 713/176 Feb,1995 |      Your vote accepted [0 after 0 votes] | | 5388211 Hornbuckle 717/178 Feb,1995 |      Your vote accepted [0 after 0 votes] | | 5367686 Fisher 717/174 Nov,1994 |      Your vote accepted [0 after 0 votes] | | 5337360 Fischer 713/176 Aug,1994 |      Your vote accepted [0 after 0 votes] | | 5267171 Suzuki 700/234 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5155847 Kirouac 709/221 Oct,1992 |      Your vote accepted [0 after 0 votes] | | 5155680 Wiedemer 705/52 Oct,1992 |      Your vote accepted [0 after 0 votes] | | 5155484 Chambers, IV 341/55 Oct,1992 |      Your vote accepted [0 after 0 votes] | | 5142680 Ottman 717/176 Aug,1992 |      Your vote accepted [0 after 0 votes] | | 4796181 Wiedemer 705/52 Jan,1989 |      Your vote accepted [0 after 0 votes] | | 5047928 Wiedemer 705/52 Dec,1969 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
| Add a new Other reference: |
| Post related web sites and other references in this section |
| | Reference | Relevancy | Comments | Rozenblit, "O, A & M Capabilities for Switching Software Management", IEEE Global Telecommunications Conference, 1993, p. 357-61, 1993.
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Lichty, America Online's Internet; Windows Ed., pp. 135-178 (1994).
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Lichty, America Online for Macintosh Tour Guide, 2.sup.nd Ed., Version 2.5, pp. 123-163 (1994).
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Mori et al., "Superdistribution: The Concept and the Architecture," The Transactions of the IEICE, vol. E73, No. 7, pp. 1133-1146 (Jul. 1990).
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Williams, "Internet Component Download," Microsoft Interactive Developer, pp. 49-52, (Summer, 1996).. Dec,2006 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. In a computer system with a server computer in communication with a client computer over a computer network, a method of installing a selected grouping of software on the
client computer, the method comprising:
building at the server computer a software collection file comprising the selected grouping of software and an installation utility operable for executing at the client computer to install the selected grouping of software at the client computer;
creating a self-extracting executable distribution file by combining at the server computer the software collection file with an extracting application operable for extracting the installation utility and the selected grouping of software from
the self-extracting executable distribution file and further operable for automatically executing the installation utility to install the grouping of software at the client computer, the extracting application arranged within the self-extracting
executable distribution file to be automatically invoked when the self-extracting executable distribution file is executed, the self-extracting executable distribution file comprising a section of executable code to automatically invoke the installation
utility extracted from the distribution file after the extracting application in the distribution file extracts the software collection file from the self-extracting executable distribution file, whereby the extracting application, the selected grouping
of software, the installation utility, and the section of executable code co-reside in the self-extracting executable distribution file;
transmitting the self-extracting executable distribution file over the computer network to the client computer;
executing at the client the self-extracting executable distribution file;
responsive to said executing the self-extracting executable distribution file, invoking the extracting application in the self-extracting executable distribution file to extract the installation utility and the selected grouping of software from
the self-extracting executable distribution file; and
further responsive to said executing the self-extracting executable distribution file, automatically executing the extracted installation utility at the client computer to install the extracted selected grouping of software at the client
computer.
2. The method of claim 1 in which the selected grouping of software includes an executable file, a help file, and a dynamic link library.
3. The method of claim 1 in which the server computer comprises a server application in communication with a network browser on the client computer, and execution of the extracting application is initiated by the network browser upon receipt of
the self-extracting executable distribution file.
4. The method of claim 1 wherein the client computer has a client computer data capacity, the method further comprising:
incorporating a minimum data capacity value into the self-extracting executable distribution file, wherein the minimum data capacity value is indicative of a minimum data capacity required to complete installation of the selected grouping of
software; and
selectively inhibiting installation of the grouping of software if the client computer data capacity is less than the minimum data capacity.
5. The method of claim 1 further comprising:
selecting the installation utility at the server computer.
6. The method of claim 1 wherein said transmitting is initiated responsive to a network browser at the client encountering a hyper text tag indicative of an updated program.
7. In a computer system with a server application on a server computer in communication with a client application on a client computer over a computer network, a method of creating a secure self-extracting executable distribution file, the
method comprising:
selecting a grouping of software;
building at the server a software collection file comprising the selected grouping of software and an installation utility for installing the selected grouping of software;
combining the software collection file with an extracting application to create a self-extracting executable distribution file, wherein the extracting application is operable for extracting the selected grouping of software from the
self-extracting executable distribution file to an extracted grouping of software and further operable for extracting the installation utility from the self-extracting executable distribution file to an executable file for installing the extracted
grouping of software, wherein the extracting application comprises a section of code for automatically executing the executable file for installing the extracted grouping of software, wherein the extracting application is arranged within the
self-extracting executable distribution file to be automatically invoked when the self-extracting executable distribution file is executed; and
signing the self-extracting executable file with a digital signature to create a secure self-extracting executable distribution file.
8. The method of claim 7 further comprising:
transmitting the secure self-extracting executable distribution file from the server computer to the client computer over the computer network; and
verifying the digital signature of the transmitted secure self-extracting executable distribution file from the client application.
9. The method of claim 8 wherein
the signing step comprises using a private key to create the digital signature; and
the verifying step comprises using a public key to verify the digital signature at the client.
10. A computer-readable storage medium having computer-executable instructions for performing the steps recited in claim 7.
11. The method of claim 7 wherein the digital signature is a first digital signature created with a first private key, the method further comprising:
detecting the presence of the first digital signature in the self-extracting executable file; and
responsive to said detecting, replacing the first digital signature with a second digital signature created with a second private key.
12. The method of claim 7 further comprising:
selecting the installation utility at the server computer.
13. In a client computer system with a client application in communication with a server computer with a server application, a method of installing at the client computer a grouping of software from the server computer, the method comprising:
retrieving to the client a self-extracting executable distribution file from the server computer, wherein the self-extracting executable distribution file comprises an extracting application, the grouping of software extractable with the
extracting application, and an installation utility extractable with the extracting application;
executing the self-extracting executable distribution file at the client computer;
responsive to said executing the self-extracting executable distribution file, extracting the grouping of software and the installation utility from the distribution file with the extracting application; and
further responsive to said executing the self-extracting executable distribution file, automatically executing code in the self-extracting executable distribution file to invoke the extracted installation utility to install the grouping of
software.
14. A computer-readable storage medium having computer-executable instructions for performing the steps recited in claim 13.
15. A computer-implemented method of creating an executable distribution file for installing software on a remote computer, the method comprising:
selecting a grouping of software for installation at the remote computer; and
creating a distribution file by combining the selected grouping of software, an installation utility operable for installing the selected grouping of software at the remote computer, and an extracting application operable for extracting the
installation utility and the selected grouping of software from the distribution file and further operable for automatically executing the extracted installation utility on the remote computer to install the extracted grouping of software on the remote
computer, wherein the extracting application is placed within the executable distribution file to automatically extract the installation utility and the selected grouping of software and invoke the installation utility to install the extracted grouping
of software when the executable distribution file is executed, whereby the created distribution file is executable on the remote computer to install the grouping of software.
16. A computer-readable storage medium having computer-executable instructions for performing the steps recited in claim 15.
17. The method of claim 15 further comprising:
appending a digital signature to the distribution file after the last data block of executable information in the distribution file.
18. The method of claim 15 wherein
the installation utility is operable for configuring the remote computer; and
installation with the installation utility comprises configuring the remote computer.
19. The method of claim 15 wherein
the installation utility is operable for updating a file on the remote computer; and
installation with the installation utility comprises updating the file on the remote computer.
20. A computer-readable storage medium having a computer-executable distribution file for distributing and installing software on a computer upon execution of the distribution file, the distribution file comprising:
a grouping of software installable at the computer;
an installation program co-resident in the distribution file with the grouping of software, the installation program operative to install the grouping of software when the grouping of software and the installation program are extracted from the
distribution file;
an extracting program co-resident in the distribution file with the grouping of software and the installation program, the extracting program arranged within the distribution file to be automatically executed when the distribution file is
executed and operative to extract the grouping of software and the installation program when executed to provide an extracted grouping of software and an extracted installation program; and
installation program invocation code arranged within the distribution file to be automatically executed after the extracted grouping of software and the extracted installation program are extracted, the installation program invocation code
operative to invoke the extracted installation program to install the extracted grouping of software. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF INVENTION
The present invention relates to a system for automatically identifying software that may be appropriate for installation on a computer and for making that software available to that computer. In particular the invention relates to a remote
system that inventories software installed on a computer, identifies additional software that may be appropriate for the computer (e.g. patches, fixes, new versions of existing software, new software, etc.), and makes the identified software available to
that computer.
BACKGROUND AND SUMMARY OF THE INVENTION
The continual and rapid development of computers, computer software and related technology has revealed many problems with the typical update and distribution channels for computer software. For example, computer software, the coded instructions
that control a computer's operation, is constantly and incrementally being upgraded and improved. The computer hardware and operating system environment on which the computer software is used is continually being changed, which requires additional
changes in the computer software (e.g. new device drivers, new operating system calls, etc.).
A computer software developer will typically release an initial version of a software product. Thereafter, as new and improved computers and peripherals are developed, the software product will commonly be upgraded so as to take full advantage
of the increased capabilities of the hardware. In addition, a software developer, to remain competitive, will often upgrade the software product to provide new features and functionality.
With the ever increasing pace of advancement in computer related technologies, software developers compete to be the first to offer a new feature or upgrade. As a result, sometimes software products are made available to the public with unknown
errors or defects. Similarly, software products that work as intended on a particular computer with a particular configuration, may fail when installed on a different computer having a different configuration (e.g. different hardware, peripherals,
operating systems, etc.). Software developers frequently provide fixes for their software products to correct defects that were undetected or unanticipated at the time the software product was released. Fixes are also provided to allow the software
product to function correctly on a new computer or with a different operating system environment.
However, it is often difficult for software developers to make upgrades and fixes available to users. This difficulty not only deprives the user of access to the most reliable and up-to-date software products, it can result in lost sales to the
software developer and can damage the goodwill and the development of a long term relationship with a customer by releasing a flawed or deficient software product.
Commonly, mass distribution of commercial software products is accomplished by copying the software product onto storage media (e.g. CD-ROMs, floppy disks, magnetic tapes, etc.). To take advantage of economies of scale, typically a large number
of copies of the software product are made during the manufacture of a particular software product. Then, the storage media containing the software product is provided to distributors and retailers for sale to users.
However, given the rapid pace of software development, this manner of distribution is frequently insufficient. For example, it is not uncommon that defects are detected and fixes created shortly after a software product is introduced to the
public. However, the software products that remain in the distribution chain contain the defect without the fix. This situation is frustrating for users who subsequently purchase the software product that is already obsolete (i.e. because of the
defects).
Software can also be distributed over electronic bulletin board systems, the Internet, etc. In such systems, a user connects to the bulletin board or the Internet and then selects and downloads desired software. Such systems allow for rapid
updating of software by simply supplying a new updated version of the software to the bulletin board. However, such systems also require a degree of user sophistication and technical expertise in the selection, downloading and installation | | |