Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
 

Credit Card Facts
Category:
Finance / Investment  

Got Bills to Pay You ve got a Decision to Make
Category:
Business  

What to look for when getting a loan
Category:
Business  

Lasik Lose Those Glasses For Good
Category:
Home And Family  

Are UK Secured Loans a part of your financial portfolio
Category:
Business  

Natural Liver Cleansing Products
Category:
Sports  

How things change
Category:
Marketing  

Joint Support Products to Fight Inflammation
Category:
Sports  

Eating Well While Traveling
Category:
Travel  

Incorporation Is It Right For My Business
Category:
Business  

The never ending Spyware story
Category:
Computers  

Raise Your Income
Category:
Marketing  

Is There A Single Acne Cure That Will Work For Everyone
Category:
Health / Fitness  

Hypertension Determining If You Are At Risk
Category:
Health / Fitness  

HOW YOU CAN ENJOY A CRUISE OF A LIFETIME YOU DESERVE IT
Category:
Home And Family  

Let s Meet For Coffee
Category:
Home And Family  

Making Money With Niche Products
Category:
Marketing  

Why Pick a Modular home
Category:
Home And Family  

Euro Pound brief property Almeria Spain 2nd August 2006
Category:
Business  

When Disaster Strikes Your Laptop
Category:
Computers  

The Best Way To Generate Free Targeted Website Traffic
Category:
Marketing  

Credit Cards Answers to the Approval Process
Category:
Finance / Investment  

Croydon Hotels Hotels in Croydon Cheap B and B Accommodation nea...
Category:
Travel  

Is Growing Saint George Utah The New Palm Springs
Category:
Travel  

Benefit from the Ornish Diet
Category:
Health / Fitness  

Zone Diet Revolution
Category:
Health / Fitness  

India Biotech Disappointed Not Enough Tax Incentives
Category:
Business  

3 Quick and Easy Tips for Picking A Las Vegas Condo
Category:
Travel  

High quality Hose
Category:
Business  

Hooked on Russian Women
Category:
Travel  

Contact Lenses Have Come A Long Way To Give You Simple Hassle Fr...
Category:
Health / Fitness  

10 Ways To Lower Your Auto Insurance
Category:
Finance / Investment  

Why Secondary research is preferred for Market research Report
Category:
Business  

Get Your Buzz On
Category:
Health / Fitness  

Ceiling Fans Are you a Fan
Category:
Real Estate  

Traffic Generation Using Only Free Methods
Category:
Business  

Tummy Tuck Surgery At A Glance
Category:
Health / Fitness  

Marketing Pro Rod Stinson Introduces The One Step System
Category:
Business  

Golf Fitness Tips Five Benefits Of Adding A Few Simple Exercises...
Category:
Sports  

Discover The Simple Method Of Fat Loss No One Else Will Tell You...
Category:
Health / Fitness  

Failure is Part of Success
Category:
Business  

Two Things You Do Not Know About LASIK Eye Surgery
Category:
Health / Fitness  

Tennis A sport your love handles hate
Category:
Sports  

Buying Real Property in Panama
Category:
Real Estate  

Make Allergy Triggers Disappear Part 1
Category:
Health / Fitness  

Vitamins for Depression
Category:
Health / Fitness  

The Best Countertops Are Granite
Category:
Home And Family  

Life Insurance Should be Death Insurance but they d have a hard ...
Category:
Business  

Health And Hygiene For A Better World
Category:
Health / Fitness  

Why You Should Consider Voip Phones
Category:
Computers  

The Fastest Way To Secure A Loan
Category:
Marketing  

The Road to Fitness Getting the Most Out of an Elliptical Machin...
Category:
Health / Fitness  

Ecuador Galapagos and more
Category:
Travel  

What Factors To Look For In A Home Based Business
Category:
Business  

Where Do You Get the Money for Fixer Uppers
Category:
Business  

The Great Smoky Mountain National Park just why it is so special...
Category:
Home And Family  

Avoid Financial Disaster with Good Planning
Category:
Finance / Investment  

What is better for carpet cleaning Steam cleaners or regular vac...
Category:
Home And Family  

Free Ebook Demonstrates Your Path To The Top Of The Search Engin...
Category:
Business  

Free Teleseminar Is Showing Thousands How To Make 500 A Day
Category:
Business  

Becoming A Freelancer
Category:
Business  

Homoeopathy
Category:
Health / Fitness  

Cosmetic Surgery for Those in their 40s and Up
Category:
Health / Fitness  

Transfer Money Overseas Or Do Anything Else You Want With Nearly...
Category:
Business  

Flax Seed a source for omega 3 fatty acids
Category:
Health / Fitness  

How do negative affirmations affect my life
Category:
Marketing  

Cheap Airfares Ways To Secure It
Category:
Finance / Investment  

When the Cardiologist says you have heart disease part 2
Category:
Health / Fitness  

How to Enjoy Your Relatives
Category:
Home And Family  

Start with the end in mind
Category:
Business  

Can Animals Really Teach Us Marketing YES
Category:
Marketing  

3 Steps to Find Freebies to Add to Your E book
Category:
Marketing  

Virtual Economy in MMORPGs
Category:
Business  

Making Money with Articles The Importance of Keywords
Category:
Marketing  

Balancing home and work for home business
Category:
Business

Distributing software via distribution files Number:7,149,789 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Distributing software via distribution files

Abstract: When creating a distribution file for distributing software over a network, instructions for automatically invoking instructions for installing software can be placed in the software distribution file. If an installation program, the software, and the instructions are placed in the software distribution file, a single user action can download and activate the software distribution file, leading to automatic installation of the software. The installation can be accomplished without further user input. The software distribution file can include an extractor for automatically extracting items in the distribution file.

Patent Number: 7,149,789 Issued on 12/12/2006 to Slivka,   et al.


Inventors: Slivka; Benjamin W. (Clyde Hill, WA), Webber; Jeffrey S. (Kirkland, WA)
Assignee: Microsoft Corporation (Redmond, WA)
Appl. No.: 09/898,702
Filed: July 2, 2001


Related U.S. Patent Documents

Application NumberFiling DatePatent NumberIssue Date
09169618Oct., 19986256668
08634390Apr., 19966049671

Current U.S. Class: 709/219 ; 717/178
Current International Class: G06F 13/00 (20060101)
Field of Search: 717/168,169,170,171,172,173,174,175,176,178 709/218,200,203,219,217,221


References Cited [Referenced By]

U.S. Patent Documents
4558413 December 1985 Schmidt et al.
4796181 January 1989 Wiedemer
4953209 August 1990 Ryder, Sr. et al.
4982430 January 1991 Frezza et al.
5003591 March 1991 Kauffman et al.
5047928 September 1991 Wiedemer
5142680 August 1992 Ottman et al.
5155484 October 1992 Chambers, IV
5155680 October 1992 Wiedemer
5155847 October 1992 Kirouac et al.
5247683 September 1993 Holmes et al.
5267171 November 1993 Suzuki et al.
5337360 August 1994 Fischer
5367621 November 1994 Cohen et al.
5367686 November 1994 Fisher et al.
5388211 February 1995 Hornbuckle
5390247 February 1995 Fischer
5421009 May 1995 Platt
5473772 December 1995 Halliwell et al.
5495411 February 1996 Ananda
5496177 March 1996 Collia et al.
5528490 June 1996 Hill
5548645 August 1996 Ananda
5555416 September 1996 Owens et al.
5586304 December 1996 Stupek, Jr. et al.
5586322 December 1996 Beck et al.
5638446 June 1997 Rubin
5654746 August 1997 McMullan, Jr. et al.
5654901 August 1997 Boman
5678002 October 1997 Fawcett et al.
5694546 December 1997 Reisman
5701451 December 1997 Rogers et al.
5706502 January 1998 Foley et al.
5708709 January 1998 Rose
5710918 January 1998 Lagarde et al.
5717930 February 1998 Imai et al.
5721824 February 1998 Taylor
5732275 March 1998 Kullick et al.
5742829 April 1998 Davis et al.
5748960 May 1998 Fischer
5764992 June 1998 Kullick et al.
5781707 July 1998 Kunz et al.
5835777 November 1998 Staelin
5838906 November 1998 Doyle et al.
5845077 December 1998 Fawcett
5845090 December 1998 Collins, III et al.
5860012 January 1999 Luu
5862362 January 1999 Somasegar et al.
5909581 June 1999 Park
5913040 June 1999 Rakavy et al.
6016520 January 2000 Facq et al.
Foreign Patent Documents
0677809 Oct., 1995 EP

Other References

Daniel L. Jenkins "Re: how to run Doom?" alt.games.doom.newplayers (Nov. 23, 1994). cited by examiner .
Moore, "SMS Debut Draws Crowds, Queries; Corporate Role Remains Uncertain," Computerworld, vol. 28, No. 38, p. 14 (Abstract only), Sep. 19, 1994. cited by other .
Darrow et al., "Microsoft Debuts Low-Cost NT 3.5," Computer Reseller News, No. 596, pp. 1-2 (Abstract only, 1 page), Sep. 19, 1994. cited by other .
Flavin et al., "Management of Distributed Applications in Large Networks," IEEE, pp. 232-241, 1988. cited by other .
Pei Wei, O'Reilly & Associates, "WWW Browsers: Extensibility Issues," Stanford Computer Forum WWW Workshop, 1 page, Sep. 20-21, 1994. cited by other .
Pei Wei, O'Reilly & Associates, "Extensibility in WWW Browsers," Stanford Computer Forum WWW Workshop, 3 pages, Sep. 20-21, 1994. cited by other .
"A Brief Overview of the Viola Engine, and its Applications," http://www.viola.org/violaIntro.html, 15 pages, Aug. 16, 1994. cited by other .
Walsh, Foundations of Java Programming for the World Wide Web, "Java in Action," pp. 127-169, 1996. cited by other .
Walsh, Foundations of Java Programming for the World Wide Web, "Input/Output: Java Streams," pp. 569-605, 1996. cited by other .
U.S. Appl. No. 08/764,040, filed Dec. 1996, Parthasarathy et al. cited by other .
"Mercury Operator's Log: Oct. 26-Dec. 1, 1994," http://www.usc.edu/dept/raiders/logs/alpha-log-941202-941224.html, Dec. 24, 1994. cited by other .
Branwyn, "Getting Started," Mosaic Quick Tour, Ventana Press, Inc., Chapel Hill, NC, pp. 11-26, 1994. cited by other .
Schroeder et al., "Windows 95 Rushes the Net: Netscape, Microsoft, Others Release New Browsers," PC Week, vol. 12, No. 34, p. 11, Aug. 28, 1995. cited by other .
Branwyn, Mosaic Quick Tour, Ventana Press, Inc., Chapel Hill, NC, pp. 104-112, 1994. cited by other .
Wingfield, "Netscape Inks Pact with Sun, Macromedia," InfoWorld, vol. 17, No. 22, p. 16, May 29, 1995. cited by other .
Lichty, "Getting the Goods (FTP)," America Online's Internet Windows Edition, pp. 135-167, 170-178, 1994. cited by other .
Lichty, "Computing," The Official American Online for Macintosh Tour Guide, Version 2.5, pp. 123-163, 1994. cited by other .
Mori et al., "Superdistribution: The Concept and the Architecture," The Transactions of the IEICE, vol. E 73, No. 7, pp. 1133-1146, Jul. 1990. cited by other .
Rozenblit, "O, A&M Capabilities for Switching Software Management," IEEE, pp. 357-361, 1993. cited by other .
William, "Internet Component Download," Microsoft Interactive Developer, pp. 49-52, Summer 1996. cited by other .
Lebel-Fraser-Dagenais et al., LUDE, A Distributed Software Library, http://www.cs.ualbert.ca/operations/DOC/lude2.html (Oct. 1995). cited by other .
http://dbz.icequake.net/share/afs/pub/pc/hardware/sound/gravis.sub.--ultra- sound/gravis/doom/, "Index of /share/afs/pub/pc/hardware/sound/gravis.sub.--ultrasound/gravis/doom/," 1 page, showing Doom files of Sep. 1994. cited by other .
"doomsession.txt," 2 pages, session capture of execution of doom.exe, constructed via deice from above Doom files of Sep. 1994. cited by other .
Yoshizaki, "Appendix A--Manual for LHA Version 2.13," pp. A1-A16, Jul. 20, 1991. cited by other .
Daniel L. Jenkins, http://groups.google.com/groups?q=faq+%22self+extracting+file%22&start=23- 0&hl=en&lr=&ie=UTF-8&oe=UTF- 8&scoring=d&selm=Czp23z.plG%40ns1.nodak.edu&rnum=233, "Re: how to run Doom?" alt.games.doom.newplayers, Nov. 23, 1994. cited by other .
Raggett, Hyper Text Markup Language Specification Version 3.0, pp. 1-90, Mar. 28, 1995. cited by other.

Primary Examiner: Harrell; Robert B.
Attorney, Agent or Firm: Klarquist Sparkman, LLP

Parent Case Text



CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. patent application Ser. No. 09/169,618, now U.S. Pat. No. 6,256,668, entitled, "METHOD FOR IDENTIFYING AND OBTAINING COMPUTER SOFTWARE FROM A NETWORK COMPUTER USING A TAG," filed Oct. 9, 1998, which 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 issued as U.S. Pat. No. 6,049,671, both of which are hereby incorporated herein by reference.
Claims



We claim:

1. A method of building a file for installing software at a remote computer, the method comprising: placing the software in the file; and placing, at a location within the file so as to be automatically excecuted responsive to execution of the file, instructions for installing the software on the remote computer.

2. The method of claim 1 further comprising: combining the file with a digital signature of the file into a digitally-signed file.

3. The method of claim 1 further comprising: appending a digital signature of the file to the file.

4. The method of claim 1 wherein the instructions for installing the software in the file comprise instructions for installing the software in appropriate directories.

5. The method of claim 1 wherein the instructions for installing the software in the file comprise instructions for deleting files.

6. The method of claim 1 wherein the instructions for installing the software in the file comprise instructions for updating files.

7. A computer-readable medium comprising computer-executable instructions for performing the method of claim 1.

8. A computer-readable storage medium having a computer-executable distribution file for distributing software to a computer and installing the software on the computer upon execution of the distribution file, the distribution file comprising: software installable at the computer; and an installation program co-resident in the distribution file with the software, the installation program operable to install the software and arranged within the distribution file to automatically install the software upon execution of the distribution file.

9. The computer-readable storage medium of claim 8 wherein the distribution file is combined with a digital signature of the distribution file into a digitally-signed file.

10. The computer-readable storage medium of claim 8 wherein a digital signature of the distribution file is appended to the distribution file.

11. The computer-readable storage medium of claim 8 wherein the installation program comprises instructions for installing the software in appropriate directories.

12. The computer-readable storage medium of claim 8 wherein the installation program comprises instructions for deleting files.

13. The computer-readable storage medium of claim 8 wherein the installation program comprises instructions for updating flies.

14. A method of providing a file for installing desired software at a remote computer, the method comprising: placing the desired software in the file; placing instructions for installing the software in the file; placing instructions for automatically invoking the instructions for installing the software in the file; and placing the file in a location accessible to the remote computer via a computer network; whereby, when the file is retrieved and opened by the remote computer, the instructions for installing the software are automatically invoked to install the desired software.

15. The method of claim 14 further comprising: over the computer network, providing to the remote computer a reference to the location accessible to the remote computer via the computer network.

16. A computer-readable storage medium having a computer-executable distribution file for distributing software to a computer and installing the software on the computer upon execution of the distribution file, the distribution file comprising: software installable at the computer; an installation program co-resident in the distribution file with the software, the installation program operable to install the software; and executable installation program starting instructions arranged within the distribution file to be automatically executed responsive to execution of the distribution file, the installation program starting instructions operable to start the installation program to install the software.

17. The computer-readable storage medium of claim 16 wherein the computer-executable distribution file is an executable program.

18. A computer-readable storage medium having a distribution file for distributing and installing software on a computer, the distribution file comprising: software installable at the computer; and code for extracting and installing the software installable at the computer, the code arranged within the distribution file to be automatically executed upon execution of the distribution file.

19. A computer-readable medium having stored thereon a file built according to the method of claim 1.

20. A computer-readable software program carrier medium having carried thereon a computer-executable distribution file for distributing software to a computer and installing the software on the computer upon execution of the distribution file, the distribution file comprising: software installable at the computer; an installation program co-resident in the distribution file with the software, the installation program operable to install the software; and executable installation program starting instructions arranged within the distribution file to be automatically executed responsive to execution of the distribution file, the installation program starling instructions operable to start the installation program to install the software.

21. 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: software installable at the computer; an installation program co-resident in the distribution file with the software, the installation program operable to install the software; and executable installation program starting instructions arranged within the distribution file to be automatically executed responsive to execution of the distribution file, the installation program starting instructions operable to slur the installation program to install the software.

22. A computer-readable storage medium having a distribution file for distributing and installing software on a computer, the distribution file comprising: software installable at the computer; an installer co-resident in the distribution file with the software, the installer operable to install the software; an extractor co-resident in the distribution flue with the software, the extractor operable to extract the software and the installer from the distribution file and automatically invoked upon receipt of the distribution file; and installer starting instructions arranged within the distribution file to be automatically executed upon completion of extraction of the software and the installer, the installer starting instructions operable to start the installer to install the software.

23. 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: software installable at the computer; a set of installation instructions co-resident in the distribution file with the software, the installation instructions operable to direct installation of the software; and executable installation program starting instructions arranged within the distribution file to be automatically executed responsive to execution of the distribution file, the installation program starting instructions operable to start the installation instructions to direct installation of the software.

24. In a server computer in communication with a remote computer over a network, a software system for installing software on the remote computer, the system comprising: means for accepting an indication from a user at the remote computer that selected software is to be installed on the remote computer; responsive to the means for accepting, means for uploading a software distribution file to the remote computer, wherein the software distribution file comprises the selected software and an installation program for installing the selected software, wherein the software distribution file further comprises means for initiating the installation program upon activation of the software distribution file; and means to indicate the distribution file is to be activated to install the selected software.

25. 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: software installable at the computer; installation means co-resident in the distribution file with the software, the installation means operable to install the software; and executable installation starting means arranged within the distribution file to be automatically executed responsive to execution of the distribution file, the installation starting means operable to start the installation means to install the software.

26. A method of building a file for installing desired software at a remote computer, the method comprising: placing the desired software in the file; placing instructions for installing the software in the file; placing, at a location within the file so as to be automatically executed upon execution of the file, instructions for automatically invoking the instructions for installing the software in the file.

27. A computer-readable storage medium having a distribution file for distributing and installing software on a computer, the distribution file comprising: software installable at the computer; an installer co-resident in the distribution file with the software, the installer operable to install the software; an extractor co-resident in the distribution file with the software, the extractor operable to extract the software from the distribution file and automatically invoked upon execution of the distribution file; and installer starting instructions arranged within the distribution file to be automatically executed upon completion of extraction of the software, the installer starting instructions operable to start the installer to install the software.

28. A computer-readable storage medium having a distribution file for distributing and installing software on a computer, the distribution file comprising: software installable at the computer; an extractor co-resident in the distribution file with the software, the extractor operable to extract the software from the distribution file and automatically invoked upon execution of the distribution file to extract the software from the distribution file; and an installer co-resident in the distribution file with the software, the installer operable to install the software and arranged within the distribution file to be automatically executed responsive to execution of the distribution file.
Description



FIELD OF INVENTION

The invention relates to software distribution.

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. (e.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, re-establish 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 description, which proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system used to implement an illustrated embodiment of the present invention.

FIG. 2 is a block diagram illustrating the update service center and the remote user computers.

FIG. 3 is a block diagram illustrating the access processes on the user and update service computers.

FIGS. 4A 4B are a flow chart illustrating an illustrative sequence which is followed when a user calls the update service.

FIG. 5 is a flow chart illustrating an illustrative sequence which is followed when the update service re-connects to a user computer.

FIG. 6 is a block diagram illustrating the present invention on a computer network.

FIG. 7 is a flow diagram illustrating a method of obtaining software over a computer network for the present invention.

FIG. 8 is a block diagram illustrating an executable file format.

DETAILED DESCRIPTION OF AN ILLUSTRATED EMBODIMENT

Referring to FIG. 1, an operating environment for the illustrated embodiment of the present invention is a computer system 10 with a computer 12 that comprises at least one high speed processing unit (CPU) 14, in conjunction with a memory system 16, an input device 18, and an output device 20. These elements are interconnected by a bus structure 22.

The illustrated CPU 14 is of familiar design and includes an ALU 24 for performing computations, a collection of registers 26 for temporary storage of data and instructions, and a control unit 28 for controlling operation of the system 10. Any of a variety of processors, including those from Digital Equipment, Sun, MIPS, IBM, Motorola, NEC, Intel, Cyrix, AMD, Nexgen and others are equally preferred for CPU 14. Although shown with one CPU 14, computer system 10 may alternatively include multiple processing units.

The memory system 16 includes main memory 30 and secondary storage 32. Illustrated main memory 30 is high speed random access memory (RAM) and read only memory (ROM). Main memory 30 can include any additional or alternative high speed memory device or memory circuitry. Secondary storage 32 takes the form of long term storage, such as ROM, optical or magnetic disks, organic memory or any other volatile or non-volatile mass storage system. Those skilled in the art will recognize that memory 16 can comprise a variety and/or combination of alternative components.

The input and output devices 18, 20 are also familiar. The input device 18 can comprise a keyboard, mouse, pointing device, sound device (e.g. a microphone, etc.), or any other device providing input to the computer system 10. The output device 20 can comprise a display, a printer, a sound device (e.g. a speaker, etc.), or other device providing output to the computer system 10. The input/output devices 18, 20 can also include network connections, modems, or other devices used for communications with other computer systems or devices.

As is familiar to those skilled in the art, the computer system 10 further includes an operating system and at least one application program. The operating system is a set of software which controls the computer system's operation and the allocation of resources. The application program is a set of software that performs a task desired by the user, making use of computer resources made available through the operating system. Both are resident in the illustrated memory system 16.

In accordance with the practices of persons skilled in the art of computer programming, the present invention is described below with reference to symbolic representations of operations that are performed by computer system 10, unless indicated otherwise. Such operations are sometimes referred to as being computer-executed. It will be appreciated that the operations which are symbolically represented include the manipulation by CPU 14 of electrical signals representing data bits and the maintenance of data bits at memory locations in memory system 16, as well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits.

As is shown in FIG. 2, one illustrated embodiment of the invention consists of one or more user computers 34 which are connected over communications links 36 to an update service center 38. The update service center consists of one or more second remote computer(s) 40, one or more communications links 36, and one or more databases 42.

The update service center 38 consists of one or more computers 40 (e.g., the computer that was described in FIG. 1) which are capable of simultaneous access by a plurality of user computers. If a plurality of update service computers are used, then the update service computers may be connected by a local area network (LAN) 44 or any other similar connection technology. However, it is also possible for an update service center to have other configurations, one of which is shown in FIG. 6 and will be explained below. For example, an update service center could have a smaller number of larger computers (i.e. a few mainframe, mini, etc. computers) with a number of internal programs or processes running on the larger computers capable of establishing communications links to the user computers. The update service center may also be connected to a remote network (e.g. the Internet shown in FIG. 6) or a remote site (e.g. a satellite) (which is not shown in FIG. 2). The remote network or remote site allows the update service center to provide a wider variety of computer software than could be stored at the update service center. One or more databases 42 connected to the update center computer(s) 40 are used to store database entries consisting of computer software available on the update service computer(s). The update service computer(s) also contain a plurality of communications links 36 such as telecommunications connections (e.g. modem connections, ISDN connections, ATM connections, frame relay connections, etc.), network connections (e.g. Internet, etc.), satellite connections (e.g. Digital Satellite Services, etc.), wireless connections, two-way paging connections, etc., to allow one or more user computers to simultaneously connect to the update service computer(s). The connections are managed by an update server 46.

After a user computer establishes two-way communications with the update service computer, an inventory of computer software on the user computer is completed without interaction from the user, sent to the update service computer, and compared to database entries on the update service computer. The database entries from the database connected to the update service computer contain information about computer software which is available to a user. After the comparison, the user computer is sent back a summary of available computer software which is displayed for the user. The summary contains information such as the availability of patches and fixes for existing computer software, new versions of existing computer software, and brand new computer software, new help files, etc. The user is then able to make one or more choices from the summary of available computer software, and have the computer software transferred from the update service computer to the user computer. The user may choose to update on the fly, or store update information for future update needs.

As is shown in FIG. 3, running on the update service computer(s) 40 is one or more service update applications (SUA) 48 that will communicate with a user update application (UUA) 50 on the user computer when the update service is contacted by the a user with a user computer. The user update application 50 is a computer software program that is capable of initiating, establishing and terminating two-way communications with an update service application on the update service computer. The service update application 48 is a computer software program which is also capable of initiating, establishing and terminating two-way communications with a user update application on a user computer.

To access the update service center 38, a user starts a user update application (UUA) 50 on the user computer 34 to begin the access process. The user update application 50 tries to establish a two-way communications link 36 with an update service computer 40 using a modem, a network connection (e.g. Internet), etc. However, this access can also be completed by a variety of other methods which provide two-way data transfer. As the user update application 48 on the user computer 34 tries to establish a two-way communications link 36 to the update service computer 40, the update service computer starts a service update application (SUA) 48. The service update application on the update service computer then tries to establish a two-way communications link to the user update application on the user computer. This is shown by the dashed lines 52 in FIG. 3. This communications link can be established with a network protocol suite (e.g., TCP/IP) through sockets, or any other two-way communications technique known in the art.

After establishing a two-way communications link, the service update application conducts an automatic inventory (i.e., without input from the user) of the computer software on the user computer. The data collected during the inventory is sent from the user computer to the remote update service computer. The service update application on the update service computer compares the inventory data collected from the user computer to data stored in a database on the update service computer. The database contains information on available computer software available from the update service. The update service computer then creates a summary and sends the summary to the user computer. The summary 54 is then presented to the user by the user computer. The summary contains information about computer software available on the update service computer such as the availability of patches and fixes for existing computer software, new versions of existing computer software, and brand new computer software, etc. In addition, the availability of agent help files, wizards, inference engines, and other operating system components will be listed in the summary.

The illustrated embodiment of the invention is implemented in the Microsoft Windows 95 operating system by the Microsoft Corporation of Redmond, Wash. using a modem, or a Internet network connection, for access to the update service computer. The invention can likewise be practiced with other operating systems and other access technologies that allow two-way data transfer.

As is shown in the flowchart in FIG. 4A, a user begins the access sequence 56 to an update service by launching a user update application included in the Windows 95 operating system. However, the user update application can also be any application that is capable of two-way communications, and run under other operating systems. The user update application allows the user computer to establish a two-way communications path for access to the update service computer.

When the user update application starts 58, the user is shown optional help information which instructs the user on how to establish a connection between the user computer and the update service computer. The actual connection configuration is completed by allowing a user to choose the appropriate connection method 60. For example, the user may choose to establish the connection with a modem. If a modem is chosen, the phone number to dial, modem (e.g. speed, line type, etc.) and communications parameters (e.g. parity, stop bits, etc.) are then configured. If the user chooses to make a network connection (e.g. Internet, etc.) to access the update service, the network address of the update service and other network parameters are configured. A similar sequence would be completed for other connection technologies.

When the user update application attempts to make the desired connection 62, the update service computer launches a service update application 64. A two-way communications path 66 is set up between the service update application on the update service computer and the user update application on the user computer. The service update application on the update service computer then requests that the user update application on the user computer conduct an automatic inventory of all computer software installed 68 on the user computer.

In the illustrated system, this inventory is done automatically (i.e., without input from the user), and is completed by assigning the inventory task to a Window's 95 operating system process thread on the user computer. The operating system thread completes the task in the "background" while the user is performing other activities in the "foreground" (e.g., choosing options from the user update application). Background and foreground processes refer to a number of operation system processes and process threads which are run for some specified time interval by the operating system. Threads are well known in the art and are used in other operating systems such as Windows NT by Microsoft, and OS/2 by IBM. However, other operating system techniques could also be used to accomplish the inventory on the user computer.

During the inventory, data is collected about all computer software installed on the user computer. Data such as the software title, date, version, file size, file checksum, directory location on the user computer, etc. are collected. After the inventory is complete, the user update application sends 70 the inventory data from the user computer to the service update application on the update service computer. The service update application compares the user inventory data from the user computer to database entries in the computer software database to automatically analyze the computer software stored on the user computer 72. The database connected to the update service computer has entries which contain information about available computer software. The database entries also identify and describe, for example, components of the computer software, including new computer software, patches, fixes, new help files, wizards, inference engines, other operating system components, updates as well as enhancements and new features of existing computer software. The database entries describing new computer software may also include entries describing brand new computer software (i.e. computer software that is newly created, and not previously existing).

Any computer software installed on the user computer which is listed in the database on the update service computer (e.g. out-of-date and/or requires a maintenance update, etc.) is flagged as available 74. The user computer may also contain computer software that is not known by the update service. If the user computer contains computer software which is unknown to the update service computer, this computer software is marked as unknown by the update service computer. After the service update application completes the analysis of user computer software, a summary report is sent back to the user computer from the update service computer 76.

In the illustrated system, the user can choose from several update service options. One option may be to check for maintenance updates for all computer software installed on the user computer that is known by the update service. A second option may be to check only specific computer software, or a specific group of computer software stored on the user computer for maintenance updates. For example, if the user wanted to check and see if there were any maintenance updates for a particular word processing program, option two would be selected. A third option may be to check whether there are any new or enhanced versions of computer software available from the update service. A fourth option may be to check only for new versions of specific computer software or groupings of computer software installed on the user computer. A fifth option may be to check the update service computer for information on new computer software (i.e. brand new products, not new or enhanced versions of existing products). A sixth option may be to check only if there are new help files, or other new support data available. This list of options is not intended to be all inclusive, as other options can be added to provide additional update service functionality. Based on user input, the user update application creates an output report 78 (FIG. 4B) based on the option(s) chosen by the user and the summary report created by the service update application. The service update application can also create the output report directly, using default choices with no input at all from a user.

If the output report is not empty 80, a second optional report is created and displayed for the user providing a short description that summarizes the computer software available from the update service 82. This second optional report is used by the user to determine what computer software on the user computer will be updated, if any. If the output report is empty, the computer software on the user computer is current and up-to-date 84, so no further action by either the update service computer or the user computer is required.

If the output report is not empty, then the user is asked to choose which available computer software shown in the output report, if any, will be downloaded and installed on the user computer 86. No software is downloaded without the user's permission. If one or more computer software components (i.e. pieces or parts of the available computer software) are chosen by the user, the user update application is instructed to make backup copies of all of the computer software components on the user computer that will be affected, and create a log for the user documenting which computer software will be replaced 88. The backup copies and the log can be used by the user to restore the original version of the computer software components on the user computer if a need arises to do so.

The user has the option of choosing none, one, or a number of computer software components to download and install. If the list of available computer software to be downloaded and installed is large, the user also has the option of delaying the update to a later time 90. If the user chooses an immediate download, the user is asked if the service update center should also install the computer software chosen by the user 92 after downloading.

If immediate installation is chosen, the service update application on the update service computer downloads the available software to the user computer and installs the software in the proper place (e.g., in the proper directory or subdirectory) on the user computer 94. A log is also created that records what computer software was downloaded to the user computer. If immediate installation is not chosen by the user, the user can save any update information, and continue with other tasks before deciding when to download any software chosen by the user.

If the user chooses a delayed update, the user provides re-connect information 98 that allows the update service computer to re-connect to the user computer at a more convenient time (e.g. midnight, etc.) and complete the downloading and installation at that time.

As part of the re-connect information, the user may create a logon script using an automated macro language to provide the logon sequence to be used, and the directory to be used to download the software chosen by the user. The logon script and the time the user wishes to have the chosen software downloaded are then sent to the update service computer, and stored in an update service computer database. At the appropriate time chosen by the user, the update service will execute the logon script to re-connect to the user computer, and download the chosen software in the proper directory. An encryption scheme may also be used to permit safe transfer of the software to the user computer.

The user also has the option of choosing a logon method different than the one they are currently connected to the update service center with. For example, if a user is connected to the update service center with a modem, the user may choose to have the chosen software downloaded at a later time using a network connection (e.g., Internet, etc.) However, the user's computer must be capable of accepting software with a different connection method.

To allow a re-connection using a modem, the user would enter the phone number of the phone line attached to the user computer and send this information to the update service computer. The user would leave the user computer and modem on, and set the communications


Free Web Sudoku Puzzles.
Solve with your browser.
          8   5 6
    7 1          
4 6 3            
      5   4   1  
1               8
  4   2   9      
            2 4 7
          6 5    
2 8   3          
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!