WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method for identifying and obtaining computer software from a network computer    
United States Patent6049671   
Link to this pagehttp://www.wikipatents.com/6049671.html
Inventor(s)Slivka; Benjamin W. (Clyde Hill, WA), Webber; Jeffrey S. (Kirkland, WA)
AbstractCreators 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6049671
Method for identifying and obtaining computer software from a network
     computer - US Patent 6049671 Drawing
Method for identifying and obtaining computer software from a network computer
Inventor     Slivka; Benjamin W. (Clyde Hill, WA) , Webber; Jeffrey S. (Kirkland, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     April 11, 2000
Application Number     08/634,390
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 18, 1996
US Classification     717/173
Int'l Classification    
Examiner     Follansbee; John A.
Assistant Examiner     Davis Jr.; Walter D.
Attorney/Law Firm     Klarquist Sparkman Campbell Leigh & Whinston LLP
Address
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.
Priority Data    
USPTO Field of Search     395/712 709/203 709/219 709/222
Patent Tags     identifying obtaining computer software network computer
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5862362
Somasegar
703/21
Jan,1999

[0 after 0 votes]
5860012
Luu
717/175
Jan,1999

[0 after 0 votes]
5845090
Collins, III
709/221
Dec,1998

[0 after 0 votes]
5845077
Fawcett
709/221
Dec,1998

[0 after 0 votes]
5838906
Doyle
715/501.1
Nov,1998

[0 after 0 votes]
5781707
Kunz
358/1.5
Jul,1998

[0 after 0 votes]
5748960
Fischer
719/316
May,1998

[0 after 0 votes]
5717930
Imai
717/176
Feb,1998

[0 after 0 votes]
5694546
Reisman
705/26
Dec,1997

[0 after 0 votes]
5654901
Boman
717/173
Aug,1997

[0 after 0 votes]
5638446
Rubin
705/51
Jun,1997

[0 after 0 votes]
5586304
Stupek, Jr.
717/170
Dec,1996

[0 after 0 votes]
5586322
Beck
707/200
Dec,1996

[0 after 0 votes]
5555416
Owens
717/178
Sep,1996

[0 after 0 votes]
5548645
Ananda
705/52
Aug,1996

[0 after 0 votes]
5528490
Hill
717/168
Jun,1996

[0 after 0 votes]
5496177
Collia
434/118
Mar,1996

[0 after 0 votes]
5495411
Ananda
705/32
Feb,1996

[0 after 0 votes]
5473772
Halliwell
717/171
Dec,1995

[0 after 0 votes]
5421009
Platt
709/221
May,1995

[0 after 0 votes]
5390247
Fischer
713/176
Feb,1995

[0 after 0 votes]
5388211
Hornbuckle
717/178
Feb,1995

[0 after 0 votes]
5367686
Fisher
717/174
Nov,1994

[0 after 0 votes]
5337360
Fischer
713/176
Aug,1994

[0 after 0 votes]
5267171
Suzuki
700/234
Nov,1993

[0 after 0 votes]
5155847
Kirouac
709/221
Oct,1992

[0 after 0 votes]
5155680
Wiedemer
705/52
Oct,1992

[0 after 0 votes]
5155484
Chambers, IV
341/55
Oct,1992

[0 after 0 votes]
5142680
Ottman
717/176
Aug,1992

[0 after 0 votes]
4796181
Wiedemer
705/52
Jan,1989

[0 after 0 votes]
5047928
Wiedemer
705/52
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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