WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Software distribution system    

Get related patents on CD
United States Patent4999806   
Link to this pagehttp://www.wikipatents.com/4999806.html
Inventor(s)Chernow; Fred (360 Kiowa Pl., Boulder, CO 80303); Peterson; Randy J. (1330 Arapahoe St., Boulder, CO 80302)
AbstractA central station distributes software by telephone. The central station accepts credit card information, transmits an acceptance code to a caller and then terminates the call. After verifying the credit card information, the station calls the purchaser back and continues with the transaction only after receiving the acceptance code. The central station then transmits a Control Transfer Program and Initialization Program to the purchaser, and the purchaser executes the Initialization Program to turn over control of the purchaser computer to the central station. The Control Transfer Program is then executed to transfer first a Protection program for ensuring that no memory resident copying programs are running, than a Storing Program for modifying the purchased program for storage at the purchaser computer, and finally the requested program itself. During the transaction, the various transmitted programs are erased, so that at the end of the transaction only a copy protected version of the purchased program remains on the purchaser's disk.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Inventor     Chernow; Fred (360 Kiowa Pl., Boulder, CO 80303); Peterson; Randy J. (1330 Arapahoe St., Boulder, CO 80302)
Owner/Assignee    
Patent assignment
All assignments
Company News
Publication Date     March 12, 1991
Application Number     07/093,321
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 4, 1987
US Classification     717/177 705/53 705/57 709/219 709/227 713/2
Int'l Classification     G06F 012/14 H04L 009/00
Examiner     MacDonald; Allen R.
Assistant Examiner     Chun; Debra A.
Attorney/Law Firm     Sughrue, Mion, Zinn, Macpeak & Seas
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS File 364/900 MS File 380/4 380/25
Patent Tags     software distribution
   
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
4864494
Kobus, Jr.
726/33
Sep,1989

[0 after 0 votes]
4817140
Chandra
705/55
Mar,1989

[0 after 0 votes]
4740890
William
726/31
Apr,1988

[0 after 0 votes]
4677565
Ogaki
700/234
Jun,1987

[0 after 0 votes]
4674055
Ogaki
700/234
Jun,1987

[0 after 0 votes]
4672554
Ogaki
700/234
Jun,1987

[0 after 0 votes]
4658093
Hellman
705/52
Apr,1987

[0 after 0 votes]
4654799
Ogaki
700/234
Mar,1987

[0 after 0 votes]
4652990
Pailen
705/56
Mar,1987

[0 after 0 votes]
4634807
Chorley
705/55
Jan,1987

[0 after 0 votes]
4609777
Cargile
713/184
Sep,1986

[0 after 0 votes]
4599489
Cargile
705/52
Jul,1986

[0 after 0 votes]
4598170
Piosenka
713/190
Jul,1986

[0 after 0 votes]
4593376
Volk

Jun,1986

[0 after 0 votes]
4593353
Pickholtz

Jun,1986

[0 after 0 votes]
4573119
Westheimer
713/190
Feb,1986

[0 after 0 votes]
4562305
Gaffney, Jr.
713/190
Dec,1985

[0 after 0 votes]
4562306
Chou
726/20
Dec,1985

[0 after 0 votes]
4558176
Arnold
713/190
Dec,1985

[0 after 0 votes]
4553252
Egendorf
377/15
Nov,1985

[0 after 0 votes]
4528643
Freeny, Jr.
705/52
Jul,1985

[0 after 0 votes]
4525599
Curran
713/190
Jun,1985

[0 after 0 votes]
4471163
Donald
705/55
Sep,1984

[0 after 0 votes]
4446519
Thomas
711/164
May,1984

[0 after 0 votes]
4352952
Boone
713/192
Oct,1982

[0 after 0 votes]
4306289
Lumley
713/190
Dec,1981

[0 after 0 votes]
4278837
Best
713/190
Jul,1981

[0 after 0 votes]
4465901
Best
713/190
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

[0 market size comments]
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%

[0 market share comments]
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%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
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]
[0 license availability comments]
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]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



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

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



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

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A method of transferring software from a central station to requester equipment in communication with said central station over a communications link for storage at said requester equipment, said method comprising the steps of receiving a request for a particular program, transmitting said particular program to said requester equipment and interrupting said communications link, said method further comprising the steps of:

transmitting executable program material to said requester equipment in response to communication from said requester equipment to said central station and in addition to said particular program; and

executing at least a portion of said additional program material at said requester equipment prior to interruption of said communications link to prevent unauthorized use of said particular program.

2. A method as defined in claim 1, wherein said step of transmitting said additional program material is performed prior to said step of transmitting said particular program.

3. A method as defined in claim 1, wherein said additional program material and said particular program are transmitted together as parts of a single composite program.

4. A method as defined in claim 1, wherein said step of executing said additional program material is performed at least prior to or during said step of transmitting said particular program material.

5. A method as defined in claim 1, further comprising the step of modifying said particular program prior to transmitting said particular program to said subscriber equipment.

6. A method as defined in claim 5, wherein said step of modifying said particular program comprises adding copy protection to said program.

7. A method as defined in claim 5, wherein said step of modifying said particular program comprises modifying said particular program so that it can be executed only a predetermined number of times.

8. A method as defined in claim 5, wherein said step of modifying said particular program comprises modifying said particular program so that it may be used for only a predetermined period of time.

9. A method as defined in claim 7, wherein said step of modifying said particular program further comprises modifying said particular program so that the central station can later modify said particular program to permit a desired amount of further use of said particular program at said requester equipment.

10. A method as defined in claim 8, wherein said step of modifying said particular program further comprises modifying said particular program so that the central station can later modify said particular program to permit a desired amount of further use of said particular program at said requester equipment.

11. A method as defined in claim 5, wherein said particular program is modified in a different manner for different transmissions of the same program.

12. A method as defined in claim 11, wherein said particular program is modified in accordance with a different algorithm for different transmissions of the same program.

13. A method as defined in claim 1, wherein said step of transmitting said program material to said requester equipment in addition to said particular program comprises transmitting at least a first program, and wherein said step of executing said additional program material comprises executing at least said first program prior to transmitting said particular program to said requester equipment.

14. A method as defined in claim 13, wherein said first program comprises an initialization program which, when executed by said requester equipment, permits said requester equipment to be controlled by said central station.

15. A method as defined in claim 13, wherein said first program comprises a program for modifying said particular program for storage of said particular program at said requester equipment.

16. A method as defined in claim 15, wherein said first program modifies said particular program in accordance with an algorithm, said method further comprising the step of changing said algorithm for different transmissions of the same particular program.

17. A method as defined in claim 13, wherein said first program comprises a transfer program for transferring said particular program from said central station to said requester equipment.

18. A method as defined in claim 13, wherein said step of transmitting at least a first program comprises transmitting at least first and second programs to said requester equipment, and said step of executing at least said first program comprises first executing said first program and then executing said second program prior to transmitting said particular program to said requester equipment.

19. A method as defined in claim 18, wherein said first program comprises a program for permitting said requester equipment to be controlled by said central station and said second program comprises a program for controlling transfer of said particular program from said central station to said requester equipment.

20. A method as defined in claim 13, further comprising the step of transmitting a second program to said requester equipment after execution of said first program, and executing said second program during or after transmission of said particular program to said requester equipment.

21. A method as defined in claim 20, wherein said first program comprises a program for controlling transfer of said particular program from said central station to said requester equipment and said second program comprises a program for modifying said particular program for storage at said requester equipment.

22. A method as defined in claim 13, wherein said requester equipment includes at least one volatile memory for storing programs during execution thereof and at least one non-volatile storage means, wherein said first program comprises a program for controlling transfers from said central station to said requester equipment when executed, said method further comprising the steps of:

transmitting a second program to said requester equipment during execution of said first program, said second program comprising a program for modifying said particular program for storage of said particular program on said non-volatile storage means; and

executing said second program.

23. A method as defined in claim 22, further comprising, erasing a portion of said volatile memory prior to said step of executing said first program.

24. A method as defined in claim 22, wherein said first program is stored on said non-volatile storage means during said step of transmitting said program material to said requester equipment, said method further comprising erasing said first program from said non-volatile storage means prior to said step of transmitting said second program.

25. A method as defined in claim 14, wherein said step of transmitting said at least first program comprises transmitting said first program as well as a second program for controlling transfers from said central station to said requester equipment, said method further comprising the steps of:

executing said second program at said requester equipment prior to transmitting said particular program;

transmitting a third program to said requester equipment during execution of said second program; and

executing said third program.

26. A method as defined in claim 25, wherein said third program comprises a program for modifying said particular program for storage at said requester equipment.

27. A method as defined in claim 25, wherein said requester equipment includes at least one volatile memory for storing programs during execution thereof and at least one non-volatile storage means for storing at least said second and particular programs upon receipt of said programs from said central station, said method comprising, during execution of said second program, the step of erasing said second program from said non-volatile storage means.

28. A method of transferring software from a central station to requester equipment in communication with said central station over a communications link for storage at said requester equipment, said method comprising the steps of:

receiving a request for a particular program;

transmitting an acceptance code to said requester equipment;

interrupting said communications link between said central station and said requester equipment;

reestablishing said communications link from said central station;

requesting an acceptance code from said requester equipment;

receiving an acceptance code at said central station from said requester equipment;

comparing the received acceptance code to the code transmitted to said requester; and

transmitting said particular program to said requester equipment after verifying that the received and transmitted acceptance codes are the same.

29. A system for transferring software from a central station to requester equipment in communication with said central station over a communications link for storage at said requester equipment, said system comprising:

means at said central station for receiving a request for a particular program;

means at said central station for transmitting executable program material from said central station to said requester equipment in response to communication from said requester equipment to said central station and in addition to said particular program; and

means for initiating execution of said program material by said requester equipment to prevent unauthorized use of said particular program.

30. A system as defined in claim 29, wherein said program material includes at least a first program which is transmitted to said requester equipment prior to transmission of said particular program and is executed by said requester equipment prior to transmission of said particular program.

31. A system as defined in claim 30, wherein said first program comprises an initialization program which, when executed by said requester equipment, permits said requester equipment to be controlled by said central station.

32. A system as defined in claim 30, wherein said first program comprises a program for modifying said particular program for storage of said particular program at said requester equipment.

33. A system as defined in claim 32, wherein said first program modifies said particular program in accordance with an algorithm, said system further comprising means for changing said algorithm for different transmissions of the same particular program.

34. A system as defined in claim 29, further comprising means for modifying said particular program prior to transmitting said particular program to said requester equipment.

35. A system as defined in claim 34, wherein said particular program is modified in a different manner for different transmissions of the same program.

36. A system as defined in claim 35, wherein said particular program is modified in accordance with a different algorithm for different transmissions of the same program.

37. A system as defined in claim 30, wherein said first program comprises a transfer program for transferring said particular program from said central station to said requester equipment.

38. A system as defined in claim 30, wherein said means for transmitting said executable program material comprises means for transmitting at least said first program and a second program to said requester equipment, and said means for initiating execution of said program material comprises means for first initiating execution of said first program by said requester equipment and for then initiating execution of said second program by said requester equipment prior to transmitting said particular program to said requester equipment.

39. A system as defined in claim 38, wherein said first program comprises a program for permitting said requester equipment to be controlled by said central station and said second program comprises a program for controlling transfer of said particular program from said central station to said requester equipment.

40. A system as defined in claim 30, further comprising means for transmitting a second program to said requester equipment after execution of said first program, and means for initiating execution of said second program by said requester equipment during or after transmission of said particular program to said requester equipment.

41. A system as defined in claim 40, wherein said first program comprises a program for controlling transfer of said particular program from said central station to said requester equipment and said second program comprises a program for modifying said particular program for storage at said requester equipment.

42. A system as defined in claim 30, wherein said requester equipment includes at least one volatile memory for storing programs during execution thereof and at least one non-volatile storage means, wherein said first program comprises a program for controlling transfers from said central station to said requester equipment when executed, said system further comprising:

means for transmitting a second program to said requester equipment during execution of said first program, said second program comprising a program for modifying said particular program for storage of said particular program on said non-volatile storage means; and

means for executing said second program.

43. A system as defined in claim 42, further comprising means for erasing a portion of said volatile memory prior to execution of said first program.

44. A system as defined in claim 42, wherein said first program is stored on said non-volatile storage means during transfer of said first program to said requester equipment from said central station, said system further comprising means for erasing said first program from said non-volatile storage means prior to transmission of said second program.

45. A system as defined in claim 31, wherein said means for transmitting said program material comprises means for transmitting said first program as well as a second program for controlling transfers from said central station to said requester equipment, said system further comprising:

means for executing said second program at said requester equipment prior to transmitting said particular program;

means for transmitting a third program to said requester equipment during execution of said second program; and

means for executing said third program.

46. A system as defined in claim 45, wherein said third program comprises a program for modifying said particular program for storage at said requester equipment.

47. A system as defined in claim 45, wherein said requester equipment includes at least one volatile memory for storing programs during execution thereof and at least one non-volatile storage means for storing at least said second and particular programs upon receipt of said programs from said central station, said system comprising means for erasing said second program from said non-volatile storage means during execution of said second program.

48. A system for transferring software from a central station to requester equipment in communication with said central station over a communications link for storage at said requester equipment, said system comprising:

means for receiving a request for a particular program;

means for transmitting an acceptance code to said requester equipment;

means for interrupting said communications link between said central station and said requester equipment;

means for reestablishing said communications link from said central station;

means for requesting an acceptance code from said requester equipment;

means for receiving an acceptance code at said central station from said requester equipment;

means for comparing the received acceptance code to the code sent to said requester; and

means for transmitting said particular program to said requester equipment after verifying that the received and transmitted acceptance codes are the same.

49. A method as defined in claim 1, wherein said communication from said requester equipment to said central station comprises said request for said particular program.

50. A system as defined in claim 29, wherein said communication from said requester equipment to said central station comprises said request for said particular program.

51. A method as defined in claim 1, wherein said step of executing said additional program material comprises executing at least a portion of said additional program material after receipt by said central station of said request for said particular program.

52. A system as defined in claim 29, wherein at least a portion of said program material is executed by said requester equipment after receipt by said central station of said request for said particular program.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention is directed to the sale of computer software and more particularly to a technique for the sale and distribution of software via telephone.

The sale and distribution of software designed for general use is predicated on the assumption that the seller only wishes to sell the right to use the software. The seller specifically does not wish the purchaser to distribute the software to other users. Various methods are employed to accomplish this goal. Since the most common method of distribution is via floppy disk, the purchaser is often restricted by various techniques from either duplicating the floppies or in some cases from using the same floppies on different computers. This results in undesirable side effects.

In the personal computer environment, protection schemes designed to prevent the purchaser from copying the software usually prevent the purchaser from storing the software on hard disk, which would be most convenient. Furthermore, since the software cannot be copied if the floppy disk containing the software is damaged, it must be replaced by the seller. This is often time consuming and always inconvenient. Some sellers have gone to the trouble of including a back up copy of the software along with the original to lessen the inconvenience. Although this is effective in providing a back-up copy, it defeats the seller's desire to prevent proliferation of the software.

Some sellers of general purpose software have avoided software copy protection schemes, instead relying on the honesty of the purchaser, the fact that the documentation can be made difficult to duplicate, and a license agreement which the purchaser is required to honor. The license agreement typically makes it illegal to copy the software or proliferate it by any other means. License agreements are virtually always required by the seller as part of the purchase agreement, regardless of whether the software is protected or not.

Lack of copy protection introduces yet another complexity in the sale and distribution of software. Because software is expensive to purchase, potential buyers would like to examine the software prior to purchase to insure it will perform as expected. Should the software not be copy protected, the seller would not be able to loan the software to a potential purchaser for fear that, if they did like it, they would simply copy it. Thus, non-protected software can only be demonstrated at the seller's location. This can be inconvenient to the potential purchaser who may want a number of people to review the software prior to purchase.

Until now, general purpose software for sale has been primarily distributed on floppy disks, since floppy disks can be readily protected. Software distributed via telephone lines has been typically public domain where protection is not an issue.

There is a need for a technique which will permit copy protection of software distributed by telephone. There is also a need for a technique of efficiently distributing software by telephone, whether the software is copy protected or not.

OBJECTS OF THE INVENTION

It is an object of this invention to provide a means for selling and distributing protected software using standard telephone lines for transferring the software from the seller to the