|
|  Get related patents on CD |
| United States Patent | 4999806 |
| Link to this page | http://www.wikipatents.com/4999806.html |
| Inventor(s) | Chernow; Fred (360 Kiowa Pl., Boulder, CO 80303);
Peterson; Randy J. (1330 Arapahoe St., Boulder, CO 80302) |
| Abstract | A 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  |
|
|
|
|
|
|
| Publication Date |
March 12, 1991 |
|
|
|
|
|
| Filing Date |
September 4, 1987 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 4864494 Kobus, Jr. 726/33 Sep,1989 |      Your vote accepted [0 after 0 votes] | | 4817140 Chandra 705/55 Mar,1989 |      Your vote accepted [0 after 0 votes] | | 4740890 William 726/31 Apr,1988 |      Your vote accepted [0 after 0 votes] | | 4677565 Ogaki 700/234 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4674055 Ogaki 700/234 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4672554 Ogaki 700/234 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4658093 Hellman 705/52 Apr,1987 |      Your vote accepted [0 after 0 votes] | | 4654799 Ogaki 700/234 Mar,1987 |      Your vote accepted [0 after 0 votes] | | 4652990 Pailen 705/56 Mar,1987 |      Your vote accepted [0 after 0 votes] | | 4634807 Chorley 705/55 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4609777 Cargile 713/184 Sep,1986 |      Your vote accepted [0 after 0 votes] | | 4599489 Cargile 705/52 Jul,1986 |      Your vote accepted [0 after 0 votes] | | 4598170 Piosenka 713/190 Jul,1986 |      Your vote accepted [0 after 0 votes] | | 4593376 Volk
Jun,1986 |      Your vote accepted [0 after 0 votes] | | 4593353 Pickholtz
Jun,1986 |      Your vote accepted [0 after 0 votes] | | 4573119 Westheimer 713/190 Feb,1986 |      Your vote accepted [0 after 0 votes] | | 4562305 Gaffney, Jr. 713/190 Dec,1985 |      Your vote accepted [0 after 0 votes] | | 4562306 Chou 726/20 Dec,1985 |      Your vote accepted [0 after 0 votes] | | 4558176 Arnold 713/190 Dec,1985 |      Your vote accepted [0 after 0 votes] | | 4553252 Egendorf 377/15 Nov,1985 |      Your vote accepted [0 after 0 votes] | | 4528643 Freeny, Jr. 705/52 Jul,1985 |      Your vote accepted [0 after 0 votes] | | 4525599 Curran 713/190 Jun,1985 |      Your vote accepted [0 after 0 votes] | | 4471163 Donald 705/55 Sep,1984 |      Your vote accepted [0 after 0 votes] | | 4446519 Thomas 711/164 May,1984 |      Your vote accepted [0 after 0 votes] | | 4352952 Boone 713/192 Oct,1982 |      Your vote accepted [0 after 0 votes] | | 4306289 Lumley 713/190 Dec,1981 |      Your vote accepted [0 after 0 votes] | | 4278837 Best 713/190 Jul,1981 |      Your vote accepted [0 after 0 votes] | | 4465901 Best 713/190 Dec,1969 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
|
|
|
|
|
|
Public's "Guesstimation" of Royalty Value
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |