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 using a tag    
United States Patent6256668   
Link to this pagehttp://www.wikipatents.com/6256668.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. When an upgrade is available, a tag in a hypertext document indicates an upgrade should be automatically downloaded from a location provided in the tag when the hypertext document is browsed by a computer having a browser.



 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 6256668
Method for identifying and obtaining computer software from a network

     computer using a tag - US Patent 6256668 Drawing
Method for identifying and obtaining computer software from a network computer using a tag
Inventor     Slivka; Benjamin W. (Clyde Hill, WA); Webber; Jeffrey S. (Kirkland, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     July 3, 2001
Application Number     09/169,618
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 9, 1998
US Classification     709/220
Int'l Classification     G06F 013/00
Examiner     Harrell; Robert B.
Assistant Examiner    
Attorney/Law Firm     Klarquist Sparkman Campbell Leigh & Whinston, LLP
Address
Parent Case     CROSS-REFERENCE TO RELATED APPLICATION This is a divisional of U.S. patent application Ser. No. 08/634,390, entitled, "METHOD AND SYSTEM FOR IDENTIFYING AND OBTAINING COMPUTER SOFTWARE FROM A NETWORK COMPUTER," filed Apr. 18, 1996, now U.S. Pat. No. 6,049,671.
Priority Data    
USPTO Field of Search     717/11 709/200 709/202 709/203 709/221 709/316 709/220 709/218 709/315 341/55 713/176 380/4 380/30 705/59 705/500 705/501 705/513 705/515 705/516
Patent Tags     identifying obtaining computer software network computer tag
   
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
6016520
Facq
710/33
Jan,2000

[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]
5748960
Fischer
719/316
May,1998

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

[0 after 0 votes]
5708709
Rose
705/59
Jan,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]
5586322
Beck
707/200
Dec,1996

[0 after 0 votes]
5586304
Stupek, Jr.
717/170
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]
5155484
Chambers, IV
341/55
Oct,1992

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

[0 after 0 votes]
5155680
Wiedemer
705/52
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
 


We claim:

1. In a local computer with a network browser in communication with a remote server computer over a computer network, a method of installing software on the local computer, the method comprising:

during browsing of a hypertext document with the network browser, encountering with the network browser at the local computer a hypertext tag indicative of a software program resident on the server computer to be automatically installed at the local computer, wherein the hypertext tag resides in the hypertext document;

responsive to encountering the hypertext tag in the hypertext document, automatically downloading from the server computer an executable file for installing the software program; and

executing the executable file at the client computer to install the software program at the client computer.

2. A computer readable medium having computer-executable instructions for performing the steps of the method in claim 1.

3. The method of claim 1 further comprising:

sending a file request from the local computer to the server computer upon encountering the tag; and

generating at the server computer the executable file in response to the file request, wherein the executing step comprises:

executing at the client computer the executable file to extract an installation utility and a grouping of software from the executable file; and

automatically executing the installation utility at the local computer to install the grouping of software at the local computer.

4. The method of claim 1 wherein the executable file has a digital signature and wherein the method further comprises:

verifying the digital signature before the executing step to determine if the digital signature is proper; and

inhibiting the executing step if the verifying step indicates the digital signature is improper.

5. In a local computer system with an operating system, a network browser for browsing hypertext pages available from remote computer systems connected to the local computer over a network, the network browser operable for acquiring an executable file comprising a software upgrade from a server computer, the browser comprising:

a facility for identifying a tag indicative of a software upgrade when encountered in one of the hypertext pages, the tag indicative of the executable file's location;

a facility for downloading the executable file from the server computer automatically upon encountering the tag;

a facility for automatically submitting the executable file to the operating system for execution to install the software upgrade at the local computer after it is downloaded by the downloading facility.

6. The network browser of claim 5 wherein the tag comprises a description of the software upgrade and a time stamp indicating a date of the software upgrade.

7. A computer-readable medium having stored thereon a hypertext page with a tag data structure for identifying to a browsing client computer a software upgrade to be installed at the client computer automatically upon browsing the page, the data structure comprising:

a tag name instructive to automatically install the software upgrade; and

a link to a server computer on which a downloadable file comprising the software upgrade is stored.

8. The computer-readable medium of claim 7 wherein the data structure further comprises:

a field indicative of a time stamp associated with the software upgrade; and

a field describing the upgrade.

9. The computer-readable medium of claim 7 wherein the tag data structure is in HTML, format to trigger automatic downloading and installation of the software from the server when the tag data structure is encountered by an HTML browser recognizing the tag name.

10. The computer-readable medium of claim 9 wherein the software upgrade is a viewer for use with the HTML browser.

11. In a local computer system having a network browsing system, a method of delivering a remotely-located piece of software to the local computer, the method comprising:

downloading a document;

encountering in the document a tag identifying a location of the remotely-located piece of software; and

responsive to said encountering, downloading to the local computer system the piece of software from the location identified by the tag.

12. A computer-readable medium having computer-executable instructions for performing the actions of the method in claim 11.

13. The method of claim 11 wherein the piece of software is embedded in a file comprising an installation utility for installing the piece of software and an extractor positioned in the file to be executed upon execution of the file, wherein the extractor extracts the piece of software and the installation utility from the file when executed, the file further comprising a section of executable code for automatically invoking the installation utility after the extractor extracts the piece of software and the installation utility from the file, the method further comprising:

executing the file to execute the extractor to extract the piece of software and the installation utility from the file and automatically invoke the installation utility to install the extracted piece of software.

14. In a local computer system having a network browsing system comprising a set of installed software, a method of updating the network browsing system with the network browsing system, the method comprising:

downloading a document to the local computer system;

with the network browsing system, encountering in the document a tag identifying a location of a file comprising a remotely-located piece of software, wherein the remotely-located piece of software updates the set of installed software to update the network browsing system; and

responsive to said encountering, downloading the file from the location identified by the tag to the local computer system to install the piece of software identified by the tag on the local computer system to update the network browsing system.

15. A computer-readable medium having computer-executable instructions for performing the actions of the method in claim 14.

16. The method of claim 14 wherein the document is downloaded by the network browsing system.

17. The method of claim 14 wherein

the location is specified in the tag as a conventional hypertext markup language uniform resource locator; and

said downloading retrieves the file via the hypertext markup language uniform resource locator.

18. The method of claim 14 wherein the tag further identifies a title associated with the remotely-located piece of software.

19. The method of claim 14 wherein the piece of software is a viewer for the network browsing system.

20. The method of claim 14 wherein the piece of software is embedded in a file comprising an installation utility for installing the piece of software and an extractor positioned in the file to be executed upon execution of the file, wherein the extractor extracts the piece of software and the installation utility from the file when executed, the file further comprising a section of executable code for automatically invoking the installation utility after the extractor extracts the piece of software and the installation utility from the file, the method further comprising:

executing the file to execute the extractor to extract the piece of software and the installation utility from the file and automatically invoke the installation utility to install the extracted piece of software.

21. In a local computer, a self-updating network browser system comprising:

document downloading means for downloading and rendering remotely-located documents;

tag detection means for detecting in the documents a tag specifying a location of a remotely-located software program upgrading the browser system; and

software program downloading means to download the remotely-located software program upgrading the browser system from the location specified to the local computer.

22. The self-updating network browser system of claim 21 wherein the software program is a viewer for rendering elements embedded within the remotely-located documents.

23. The self-updating network browser system of claim 21 further comprising:

a program launcher for executing the software program downloaded to the local computer to install an upgrade to the network browser system.
 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 tag in a hypertext document indicating software to be automatically downloaded to the 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 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 of the new software. Moreover, such systems do not provide a user that has already obtained a software product with a simple, automatic way of learning of or obtaining upgrades or fixes for that product. The software provider may also have updated help files and other help utilities about which a user would have no way of knowing.

The present invention overcomes many of the problems associated with obtaining computer software. A user with a user computer is allowed to access (e.g. with a modem, an Internet connection, etc.) an update service, a network service, etc. (c.g. the Internet) at a remote location on which is stored a variety of computer software. When a user accesses the remote update service or network service, an update service computer conducts an automatic inventory of the computer software on the user computer. The data collected from the inventory of the user computer software is then used to make comparisons to database entries from a database on the update service computer. The database entries contain information about computer software available on the update service computer. The comparison is conducted to identify software available from the remote update service that might be appropriate for installation on the user computer (i.e. new computer software, new versions of existing computer software, patches or fixes for existing computer software, new help files, etc.). After the comparison is completed, the update service computer makes the computer software stored at the remote update service computer available to the user.

In one aspect of the invention, available computer software can be downloaded from the remote update service computer and installed immediately on the user computer. Another aspect of the invention allows the update service computer to contact the user computer at a later, more convenient time, reestablish two-way communications, then download and install available computer software on the user computer. If a delayed download is requested, the user will provide access information (e.g. phone number, network address, a file of commands to execute to logon the user computer, etc.) to the update service computer which allows the remote update service computer to re-connect to the user computer. The transfer may use an encryption scheme to permit safe transfer of the software to the user computer.

In yet another aspect of the invention, the system will allow a user to purchase the available computer software electronically. The user, for example, provides credit card information, debit card information, an account number to bill, etc. to the update service computer. Secure transaction technology and/or digital signatures are used to safeguard the payment information. After verifying the payment information, the update service computer permits transfer of the computer software.

The electronic updates have several advantages. A user is automatically provided with information about the available versions of computer software as result of the inventory conducted by the update center computer. If the version of the computer software on the user computer has defects that are known and have been corrected, the user is alerted to this fact and is offered an up-to-date version of the computer software. The user is also alerted to the availability of new computer software, or enhanced versions of existing computer software, and can purchase them electronically. In either case, the most up-to-date versions of computer software are available for downloading to users.

The available versions of the computer software can also be automatically installed on the user computer. Since it is no longer necessary for the user to install the computer software, the incidence of user related installation problems is greatly reduced. It is also not necessary for the user to obtain or save any storage media since the computer software is downloaded directly to the user computer. If the computer software installed on the user computer ever gets corrupted, the user can call the update service (e.g. for some limited number of iterations) and download a new (and up-to-date) copy of the computer software.

In addition to providing benefits for the user, the present invention provides benefits to the developers of the software. The developers of the computer software save support, distribution, and advertising costs. A user who calls the update service or network service automatically obtains up-to-date versions of available computer software, and may never encounter defects which would have been encountered using an earlier, defective version of the computer software. As a result, a user will require less support from the developers of the software, be more satisfied, and be more willing to purchase future versions of computer software. Since the computer software is downloaded to the user computer, the developers of the computer software may save distribution costs as fewer versions of the computer software have to be copied to storage media and distributed. In addition, since the user is also alerted when new computer software, and/or new versions of existing computer software are available, the software developers may also save advertising costs.

The foregoing and other features and advantages of the present invention will be more readily apparent from the following detailed