|
Software Patent Abstract
One embodiment of the present invention provides a system for authorizing
a software product to be used on a computer system. During operation,
the system receives authorization information at a database from
a point of sale system located at a retailer, wherein the authorization
information is associated with the software product. The system
then modifies a database entry associated with the software product
to authorize use of the software product.
Software Patent Claims
1. A method for authorizing a software product to be used on a computer
system, the method comprising:receiving authorization information
at a database from a point of sale system located at a retailer,
wherein the authorization information is associated with the software
product; andmodifying a database entry in the database to indicate
that use of the software product is authorized, wherein the database
entry is associated with the software product.
2. The method of claim 1, further comprising installing the software
product on the computer system, wherein installing the software
product involves:receiving registration information from the computer
system at the database, wherein the registration information is
associated with the software product;checking the database entry
associated with the software product to determine if installation
of the software product is authorized;if so, registering the product;
andif not, sending a message to the computer system indicating that
the product is not authorized for installation, wherein the software
product is subsequently disabled on the computer system.
3. The method of claim 1, further comprising deactivating the software
product by modifying the database entry associated with the software
product to indicate that use of the software product is not authorized.
4. The method of claim 3, wherein the deactivation of the software
product is triggered by receiving deactivation information from
a second point of sale system at the database, wherein the deactivation
information is associated with the software product.
5. The method of claim 3, wherein the deactivation of the software
product is triggered by reaching an expiration time.
6. The method of claim 3, wherein after modifying the database
entry the method further involves rendering the software product
inoperable at the computer system.
7. The method of claim 1, wherein after receiving the authorization
information the method further comprises billing the retailer for
the software product.
8. The method of claim 1, wherein the authorization information,
the deactivation information, and the registration information can
include:a serial number;a license number;a version identifier, which
identifies the version of the software product that a customer is
purchasing;a retailer's name;a retailer's location identifier;a
sale price, wherein the sale price is the price the customer paid
for the software product;a purchase price, wherein the purchase
price is the price the retailer paid for the software product;a
customer name; anda customer contact information.
9. The method of claim 1, wherein the authorization information
is received from a third-party system, which received the authorization
information from the point of sale system.
10. A computer-readable storage medium storing instructions that
when executed by a computer cause the computer to perform a method
for authorizing a software product to be used on a computer system,
the method comprising:receiving authorization information at a database
from a point of sale system located at a retailer, wherein the authorization
information is associated with the software product; andmodifying
a database entry in the database to indicate that use of the software
product is authorized, wherein the database entry is associated
with the software product.
11. The computer-readable storage medium of claim 10, further comprising
installing the software product on the computer system, wherein
installing the software product involves:receiving registration
information from the computer system at the database, wherein the
registration information is associated with the software product;checking
the database entry associated with the software product to determine
if installation of the software product is authorized;if so, registering
the product; andif not, sending a message to the computer system
indicating that the product is not authorized for installation,
wherein the software product is subsequently disabled on the computer
system.
12. The computer-readable storage medium of claim 10, further comprising
deactivating the software product by modifying the database entry
associated with the software product to indicate that use of the
software product is not authorized.
13. The computer-readable storage medium of claim 12, wherein the
deactivation of the software product is triggered by receiving deactivation
information from a second point of sale system at the database,
wherein the deactivation information is associated with the software
product.
14. The computer-readable storage medium of claim 12, wherein the
deactivation of the software product is triggered by reaching an
expiration time.
15. The computer-readable storage medium of claim 12, wherein after
modifying the database entry the method further involves rendering
the software product inoperable at the computer system.
16. The computer-readable storage medium of claim 10, wherein after
receiving the authorization information the method further comprises
billing the retailer for the software product.
17. The computer-readable storage medium of claim 10, wherein the
authorization information, the deactivation information, and the
registration information can include:a serial number;a license number;a
version identifier, which identifies the version of the software
product that a customer is purchasing;a retailer's name;a retailer's
location identifier;a sale price, wherein the sale price is the
price the customer paid for the software product;a purchase price,
wherein the purchase price is the price the retailer paid for the
software product;a customer name; anda customer contact information.
18. The computer-readable storage medium of claim 10, wherein the
authorization information is received from a third-party system,
which received the authorization information from the point of sale
system.
19. An apparatus that authorizes a software product to be used
on a computer system, comprising:a computer system;a point of sale
system located at a retailer;a database;a software product;a receiving
mechanism configured to receive authorization information at the
database from the point of sale system, wherein the authorization
information is associated with the software product; anda modification
mechanism configured to modify a database entry in the database
to indicate that use of the software product is authorized, wherein
the database entry is associated with the software product.
20. The apparatus of claim 19, further comprising an installation
mechanism configured to install the software product on the computer
system, wherein installing the software product involves:receiving
registration information from the computer system at the database,
wherein the registration information is associated with the software
product;checking the database entry associated with the software
product to determine if installation of the software product is
authorized;if so, registering the product; andif not, sending a
message to the computer system indicating that the product is not
authorized for installation, wherein the software product is subsequently
disabled on the computer system.
21. The apparatus of claim 19, further comprising a deactivating
mechanism configured to deactivate the software product by modifying
the database entry associated with the software product to indicate
that use of the software product is not authorized.
22. The apparatus of claim 21, further comprising a triggering
mechanism configured to receive a trigger, wherein the trigger can
include:receiving deactivation information from a second point of
sale system at the database, wherein the deactivation information
is associated with the software product; andreaching an expiration
time.
23. The apparatus of claim 21, further comprising a disabling mechanism
configured to render the software product inoperable at the computer
system.
24. The apparatus of claim 19, further comprising a billing mechanism
configured to bill the retailer for the software product.
25. A method for authorizing a software product to be used on a
computer system, the method comprising:receiving an identifier for
a software product which is being purchased at a point-of-sale system;sending
authorization information to a software authorizer from the point
of sale system, wherein the authorization information is associated
with the software product, andreceiving a confirmation from the
software authorizer indicating if the software product is authorized
for installation.
26. A computer-readable storage medium storing instructions that
when executed by a computer cause the computer to perform a method
for authorizing a software product to be used on a computer system,
the method comprising:receiving an identifier for a software product
which is being purchased at a point-of-sale system;sending authorization
information to a software authorizer from the point of sale system,
wherein the authorization information is associated with the software
product, andreceiving a confirmation from the software authorizer
indicating if the software product is authorized for installation.
27. An apparatus that authorizes a software product to be used
on a computer system, the method comprising:a receiving mechanism
configured to receive an identifier for a software product which
is being purchased at a point-of-sale system;a sending mechanism
configured to send authorization information to a software authorizer
from the point of sale system, wherein the authorization information
is associated with the software product, andwherein the receiving
mechanism is further configured to receive a confirmation from the
software authorizer indicating if the software product is authorized
for installation.
28. A computer system, comprising:a processor,a memory;a software
product;a sending mechanism for sending registration information
associated with the software product to a software authorizer; anda
receiving mechanism for receiving authorization information associated
with the software product from the software authorizer;wherein the
computer system only executes the software product if the authorization
information indicates the software product is authorized for use.
29. A method for authorizing a software product to be used on a
computer system, the method comprising:sending registration information
associated with the software product to a software authorizer; andreceiving
authorization information associated with the software product from
the software authorizer;wherein the computer system only executes
the software product if the authorization information indicates
the software product is authorized for use.
30. An apparatus, comprising:a sending mechanism that sends registration
information associated with a software product to a software authorizer;
anda receiving mechanism that receives authorization information
associated with the software product from the software authorizer;wherein
the computer system only executes the software product if the authorization
information indicates the software product is authorized for use.
31. A computer-readable storage medium storing a software product,
wherein the software product comprises:a core functionality for
the software product;a sending mechanism for sending registration
information associated with the software product to a software authorizer;
anda receiving mechanism for receiving authorization information
associated with the software product from the software authorizer;wherein
the software product only executes the core functionality if the
authorization information indicates the software product is authorized
for use.
32. A method for deactivating a software product used on a computer
system, the method comprising:receiving deactivation information
associated with the software product at a database; andmodifying
a database entry in the database to indicate that the software product
has been deactivated and the use of the software product is no longer
authorized, wherein the database entry is associated with the software
product.
33. The method of claim 32, further comprising:receiving deactivation
information associated with the software product at a computer system;
anddeactivating the software product on the computer system so that
the software product cannot be executed.
34. A computer-readable storage medium storing instructions that
when executed by a computer cause the computer to perform a method
for deactivating a software product used on a computer system, the
method comprising:receiving deactivation information associated
with the software product at a database; andmodifying a database
entry in the database to indicate that the software product has
been deactivated and the use of the software product is no longer
authorized, wherein the database entry is associated with the software
product.
35. The computer-readable storage medium of claim 34, wherein the
method further comprises:receiving deactivation information associated
with the software product at a computer system; anddeactivating
the software product on the computer system so that the software
product cannot be executed.
36. An apparatus configured to deactivate a software product used
on a computer system, comprising:a receiving mechanism configured
to receive deactivation information associated with the software
product at a database; anda modification mechanism configured to
modify a database entry in the database to indicate that the software
product has been deactivated and the use of the software product
is no longer authorized, wherein the database entry is associated
with the software product.
37. The apparatus of claim 36, further comprising:a second receiving
mechanism configured to receive deactivation information associated
with the software product at a computer system; anda deactivation
mechanism configured to deactivate the software product on the computer
system so that the software product cannot be executed.
Software Patent Description
BACKGROUND
[0001]To avoid losing revenue due to product theft of software
products, retailers typically implement theft-deterrent measures
for software products. Often, the theft-deterrent measures interfere
with the shopping experience of legitimate customers because the
theft deterrent measures make it more difficult to select a software
product. For example, one theft deterrent measure some retailers
currently use is "spiderwrap," which comprises a set of
wires wrapped around a box and locked together. Spiderwrap often
obscures the description of the software product written on the
box of the software product. Furthermore, spiderwrap prevents a
customer from opening a product "description flap," which
is included with many software products. By preventing the customer
from reading the product description, spiderwrap makes it difficult
for the customer to select and purchase a software product.
[0002]Some retailers place software products that exceed a price
threshold in a locked case or in a storage room making it not only
difficult to view a product description, but also increasing the
amount of time spent by the customer to select and purchase the
software product.
[0003]The above-described theft-deterrent measures make it difficult
for a customer to purchase a product. As a result, the theft-deterrent
measures that a retailer uses to prevent lost revenue due to theft
can often cause the retailer to lose revenue due to customer frustration.
SUMMARY
[0004]One embodiment of the present invention provides a system
for authorizing a software product to be used on a computer system.
During operation, the system receives authorization information
at a database from a point of sale system located at a retailer,
wherein the authorization information is associated with the software
product. The system then modifies a database entry associated with
the software product to authorize use of the software product.
[0005]In a variation on this embodiment, the system facilitates
installation of the software product on the computer system. The
process begins when the system receives verification information
from the computer system, wherein the verification information is
associated with the software product. Next, the system checks a
database entry associated with the software product to determine
if installation of the software product is authorized. If so, the
system enables installation of the product. If not, the system sends
a message to the computer system indicating that the product is
not authorized for installation, which causes the computer system
to subsequently disable the software product.
[0006]In a variation on this embodiment, the system facilitates
installation of the software product on the computer system. The
process begins when the system receives registration information
from the computer system, wherein the registration information is
associated with the software product. Next, the system checks a
database entry associated with the software product to determine
if the software product is authorized for use. If so, the system
registers the product. If not, the system sends a message to the
computer system indicating that the product is not authorized for
use.
[0007]In a further variation, upon receiving a message that the
product is not authorized for use, the computer system renders the
software product inoperable at the computer system.
[0008]In a variation on this embodiment, the system deactivates
the software product by modifying the database entry associated
with the software product to indicate that the system does not authorize
use of the software product.
[0009]In a further variation, upon receiving deactivation information
from a second point of sale system, the system deactivates the software
product, wherein the system associates the deactivation information
with the software product.
[0010]In a further variation, upon reaching an expiration time,
the system deactivates the software product.
[0011]In a further variation, after the system modifies the database
entry, the system renders the software product inoperable at the
computer system.
[0012]In a variation on this embodiment, after the system receives
the authorization information, the system bills the retailer for
the software product.
[0013]In a variation on this embodiment, the authorization information,
deactivation information, verification information, and registration
information can include: a serial number; a license number; a version
identifier, which identifies the version of the software product
that a customer is purchasing; a retailer's name; a retailer's location
identifier; a sale price, wherein the sale price is the price the
customer paid for the software product; a purchase price, wherein
the purchase price is the price the retailer paid for the software
product; a customer name; and a customer contact information.
[0014]In a variation on this embodiment, the system receives the
authorization information from a third-party system, wherein the
third-party system receives the authorization information from the
point of sale system.
[0015]One embodiment of the present invention provides a system
that authorizes a software product to be used on a computer system.
The system operates by receiving an identifier for a software product
which is being purchased at a point-of-sale system. The system then
sends authorization information to a software authorizer from the
point of sale system, wherein the authorization information is associated
with the software product. Finally, the system receives a confirmation
from the software authorizer indicating if the software product
is authorized for installation.
[0016]One embodiment of the present invention provides a system
that authorizes a software product to be used on a computer system.
The system operates by sending registration information associated
with the software product to a software authorizer. Next, the system
receives authorization information associated with the software
product from the software authorizer. Note that the computer system
only executes the software product if the authorization information
indicates the software product is authorized for use.
[0017]One embodiment of the present invention provides a computer-readable
storage medium storing a software product. The software product
includes a core functionality for the software product, a sending
mechanism for sending registration information associated with the
software product to a software authorizer, and a receiving mechanism
for receiving authorization information associated with the software
product from the software authorizer. Note that the software product
only executes the core functionality if the authorization information
indicates the software product is authorized for use.
[0018]One embodiment of the present invention provides a system
for deactivating a software product used on a computer system. The
system operates by receiving deactivation information associated
with the software product at a database. The system then modifies
a database entry in the database to indicate that the software product
has been deactivated and the use of the software product is no longer
authorized.
[0019]In a variation on this embodiment, the system receives deactivation
information associated with the software product at a computer system.
The system then deactivates the software product on the computer
system so that the software product cannot be executed.
BRIEF DESCRIPTION OF THE FIGURES
[0020]FIG. 1 illustrates the process of purchasing and installing
a software product in accordance with an embodiment of the present
invention.
[0021]FIG. 2 illustrates the process of stealing and attempting
to install a software product in accordance with an embodiment of
the present invention.
[0022]FIG. 3 illustrates a computing environment in accordance
with an embodiment of the present invention.
[0023]FIG. 4 presents a flowchart illustrating the process of purchasing
a software product in accordance with an embodiment of the present
invention.
[0024]FIG. 5 presents a flowchart illustrating the process of installing
a software product in accordance with an embodiment of the present
invention.
[0025]FIG. 6 presents a flowchart illustrating the process of deactivating
a software product in accordance with an embodiment of the present
invention.
DETAILED DESCRIPTION
[0026]The following description is presented to enable any person
skilled in the art to make and use the invention, and is provided
in the context of a particular application and its requirements.
Various modifications to the disclosed embodiments will be readily
apparent to those skilled in the art, and the general principles
defined herein may be applied to other embodiments and applications
without departing from the spirit and scope of the present invention.
Thus, the present invention is not limited to the embodiments shown,
but is to be accorded the widest scope consistent with the principles
and features disclosed herein.
[0027]The data structures and code described in this detailed description
are typically stored on a computer-readable storage medium, which
may be any device or medium that can store code and/or data for
use by a computer system. This includes, but is not limited to,
volatile memory, non-volatile memory, magnetic and optical storage
devices such as disk drives, magnetic tape, CDs (compact discs),
DVDs (digital versatile discs or digital video discs), or other
media capable of storing computer readable media now know or later
developed.
Overview
[0028]One embodiment of the present invention teaches a method
for deterring theft by authorizing the use of a software product
at a point of sale system. FIG. 1 illustrates the process of purchasing
and installing a software product in accordance with an embodiment
of the present invention. Note that a software product can refer
to a license for software already existing on a computer system,
or to be installed on a computer system. In this embodiment, a customer
selects a software product to purchase at a retailer, and takes
the software product to a cashier to complete the purchase (step
202). Note that the customer can purchase a single license, a volume
license, a consumptive or transaction-based license, or a site license
for the software product. Furthermore, note that a customer can
be an individual, or an organization. At this point, an authorization
agent has neither authorized nor registered the copy of the software
product (see 212). Note that an authorization agent can include
a retail-store manager or owner, the original equipment manufacturer
of the software product, or a third-party organization responsible
for authorizing the software product. Furthermore, the authorization
agent can be an individual or group of individuals, or a mechanism
responsible for authorizing the software product.
[0029]In one embodiment of the present invention, the authorization
agent ensures that a customer can only use a copy of the software
product that the customer legally purchased. In this embodiment,
the authorization agent includes a database entry for each copy
of the software product for sale at the retailer.
[0030]Next, the cashier scans a unique serial number on the copy
of the software product at a point of sale system (step 204). Scanning
the unique serial number results in the retailer sending the unique
serial number to the authorization agent (see 214). Then, the authorization
agent records the fact that the retailer has authorized the copy
of the software product for use, and sends an authorization confirmation
to the retailer (see 224). Finally, the customer installs the copy
of the software product on a computer system and registers the copy
of the software product with the authorization agent (step 206).
Installing the copy of the software product involves the computer
system sending a license number associated with the copy of the
software product to the authorization agent (see 216). The authorization
agent then records the fact that the copy of the software product
is registered, and also enables the full purchased functionality
of the copy of the software product on the computer system (see
226). Note that the customer can install the copy of the software
product on a plurality of computer systems, a server, or a plurality
of servers. Also, note that registering the copy of the software
product can include: verifying the identity of the customer; verifying
the customer's authorization to use the copy of the software product;
verifying the customer's authorization to install the copy of the
software product; and providing customer contact and feedback information.
In one embodiment of the present invention, registering the copy
of the software product and verifying the customer's authorization
to install and/or use the copy of the software product are separate
and independent processes. In one embodiment of the present invention,
registering the copy of the software product and verifying the customer's
authorization to install and/or use the copy of the software product
are part of the same process.
[0031]FIG. 2 illustrates a process of stealing and attempting to
install a software product in accordance with an embodiment of the
present invention. In this embodiment, a thief steals a copy of
the software product from a retailer (step 302). At this point,
the authorization agent has neither authorized nor registered the
copy of the software product (see 312). When the thief installs
the stolen copy of the software product on a computer system, the
computer system sends a license number associated with the stolen
copy of the software product to the authorization agent (see 314).
The authorization agent determines that the stolen copy of the software
product is not authorized by the retailer and the authorization
agent disables the functionality of the stolen copy of the software
product on the computer system (see 324). Thus, the thief is unable
to enable the functionality of the stolen copy of the software product
(step 304).
Computing Environment
[0032]FIG. 3 illustrates a computing environment 400 in accordance
with an embodiment of the present invention. Computing environment
400 can generally include any type of computer system, including,
but not limited to, a computer system based on a microprocessor,
a mainframe computer, a digital signal processor, a portable computing
device, a personal organizer, a device controller, and a computational
engine within an appliance. Computing environment 400 includes point
of sale system 410, client 420, database 430, server 440, and network
450.
[0033]In one embodiment of the present invention, computing environment
400 is divided (as illustrated by the dotted lines) into four sub-environments
representing different organizations/physical locations. These sub-environments
include: retailer 414 which sells the software product to customers;
home/office 424 where the customer installs and uses the software
product; authorizing service 434, which ensures that the copy of
the software product was legally purchased prior to enabling full
functionality of the software product; and third-party 444, which
may perform data collection and processing to assist authorizing
service 434, retailer 414, or the manufacturer of copy of software
product 490.
[0034]In one embodiment of the present invention, authorizing service
434 can be the original equipment manufacturer of the copy of software
product 490, or retailer 414.
[0035]In one embodiment of the present invention, home/office 424
is retailer 414.
[0036]In one embodiment of the present invention, retailer 414
is the original equipment manufacturer of the copy of software product
490.
[0037]In one embodiment of the present invention third-party 444
can be the original equipment manufacturer of the copy of software
product 490, retailer 414, or authorizing service 434.
[0038]In one embodiment of the present invention, retailer 414
can be an online retailer. In this embodiment, customer 422 can
download copy of software product 490 or a license for the copy
of software product 490 from retailer 414's web-site or an associated
web-site, or visit a brick-and-mortar store associated with retailer
414 to obtain the copy of software product 490 or a license for
the copy of software product 490.
[0039]Point of sale system 410 can generally include any device
capable of making and recording a purchase transaction. Typically,
point of sale system 410 includes a device for scanning barcodes
and a device for reading magnetic stripes, such as those found on
credit cards. Point of sale system 410 can also include a device
for reading radio frequency identification (RFID) tags.
[0040]Client 420 can generally include any node on a network including
computational capability and including a mechanism for communicating
across the network.
[0041]Database 430 can generally include any type of system for
storing data. This includes, but is not limited to, systems based
upon magnetic, optical, and magneto-optical storage devices, storage
devices based on flash memory and/or battery-backed up memory, or
other systems capable of storing computer readable data now know
or later developed.
[0042]Server 440 can generally include any computational node including
a mechanism for servicing requests from a client for computational
and/or data storage resources.
[0043]Network 450 can generally include any type of wired or wireless
communication channel capable of coupling together computing nodes.
This includes, but is not limited to, a local area network, a wide
area network, or a combination of networks. In one embodiment of
the present invention, network 450 includes the Internet.
[0044]In one embodiment of the present invention, customer 422
decides to purchase copy of software product 490. Customer 422 takes
a copy of software product 490 to cashier 412 who subsequently scans
a barcode associated with the copy of software product 490 at point
of sale system 410. Next, point of sale system 410 sends authorization
information to database 430 via network 450 at authorizing service
434. Then, database 430 locates the database entry associated with
the copy of software product 490 and records that copy of software
product 490 is retail-authorized. Next, customer 422 installs the
copy of software product 490 on client 420 at home/office 424. This
involves client 420 contacting database 430 via network 450 and
sending registration information to database 430. Database 430 uses
the registration information to identify the database entry associated
with the copy of software product 490 and then registers the copy
of software product 490. Database 430 then enables the full functionality
of the copy of software product 490 at client 420.
[0045]In one embodiment of the present invention, the authorization
information can include information obtained by scanning a barcode
on the box of the copy of software product 490 such as a unique
serial number associated with the copy of software product 490,
and a version identifier that identifies the version of computer
software that customer 422 is purchasing. In addition to the information
obtained by scanning the barcode on the box of the copy of software
product 490, the authorization information can include: retailer
414's name; retailer 414's location identifier; the sale price,
wherein the sale price is the price paid by customer 422 the for
copy of software product 490; the purchase price, wherein the purchase
price is the price retailer 414 paid for the copy of software product
490; customer 422's name; and customer 422's contact information.
[0046]In one embodiment of the present invention, registration
information can include a serial number, a license number, retailer
414's name, customer 422's name, and customer 422's contact information.
[0047]In one embodiment of the present invention, verification
information can include a serial number, a license number, retailer
414's name, customer 422's name, and customer 422's contact information.
[0048]In one embodiment of the present invention, point of sale
system 410 sends the authorization information to server 440 via
network 450 to perform any additional processing, such as information
tracking, requested by the original equipment manufacturer (not
shown), retailer 414, or authorizing service 434. The additional
processing can include generating a bill for the difference between
the initial purchase price (the price retailer 414 paid to obtain
the copy of software product 490) and the actual purchase price
(the price retailer 414 agreed to pay for the copy of software product
490). Note that the initial purchase price can be zero.
[0049]In one embodiment of the present invention, server 440 belonging
to third-party 444 sends the authorization information to database
430 at authorizing service 434.
[0050]In one embodiment of the present invention, cashier 412 contacts
authorizer 432 via network 450, a telephone (not shown), or any
other communication method known to those familiar in the art capable
of providing the authorization information to authorizer 432. Authorizer
432 then modifies an entry associated with copy of software product
490 to indicate that copy of software product 490 is retail-authorized.
Note that authorizer 432 can include: a computer system that is
coupled to database 430, a module within database 430, a person
that has access to database 430, or a device that has access to
database 430.
[0051]In one embodiment of the present invention, customer 422
contacts authorizer 432 via network 450, a telephone (not shown),
or any other communication method known to those familiar in the
art and provides the registration information to authorizer 432.
Authorizer 432 uses the registration information to identify the
database entry on database 430 associated with the copy of software
product 490 and then registers the copy of software product 490.
Authorizer 432 then enables the full functionality of the copy of
software product 490 at client 420 by providing a license number
or an authorization-key to customer 422, sending the authorization
key to client 420 via a client (not shown) at authorizing service
434, or modifying an entry on database 430 associated with copy
of software product 490 to indicate that copy of software product
490 is authorized for use by customer 422, client 420, or home/office
424.
[0052]In one embodiment of the present invention, retailer 414
provides the license number or authorization-key to customer 422.
[0053]In one embodiment of the present invention, copy of software
product 490 is a web-based application. In this embodiment, customer
422 purchases a license from retailer 414 to download and install
copy of software product 490 on client 424, or to access and use
copy of software product 490 on a server, such as server 440. In
this embodiment, retailer 414 can provide the license to customer
422 as a license number, an authorization-key, a dongle, a read-only
storage medium, a device that can be coupled to a client that includes
a license or a license certificate, or any other method for providing
the license to customer 422 known to those familiar in the art.
Purchasing a Software Product
[0054]FIG. 4 presents a flowchart illustrating the process of purchasing
a software product in accordance with an embodiment of the present
invention. The process begins when cashier 412 scans a barcode associated
with a copy of software product 490 using point of sale system 410
(step 500). Scanning the barcode enables point of sale system 410
to obtain authorization information associated with the copy of
software product 490. This authorization information can include
the product name, a serial number (which is typically a unique serial
number), and a version identifier which identifies the version of
the copy of software product 490, wherein different versions include
different levels of functionality. Point of sale system 410 can
obtain additional authorization information from a computer system
(not shown) associated with retailer 414 and from information that
customer 422 provides to cashier 412 who subsequently provides the
information to point of sale system 410 via an input device (not
shown). This additional authorization information can include: retailer
414's name; retailer 414's location identifier; a copy of software
product 490's sale price (the price at which retailer 422 is selling
the copy of software product 490 to customer 422); a copy of computer
software 490's purchase price (the price at which retailer 422 bought
the copy of software product 490); customer 422's name; and customer
422's contact information. In one embodiment of the present invention,
the copy of software product 490 is a complete version of a software
product, but retailer 414 can sell the copy of software product
490 with different levels of functionality depending on the price
customer 422 is willing to pay for a copy of software product 490.
In this embodiment, authorization information can include the version
of the software product that customer 422 is purchasing; or other
information relevant to the purchase and licensing of a software
product.
[0055]In one embodiment of the present invention, copy of software
product 490 includes volume, consumptive, or site licenses.
[0056]In one embodiment of the present invention, point of sale
system 410 includes an RFID reader that obtains authorization information
from an RFID embedded in the copy of software product 490.
[0057]In one embodiment of the present invention, cashier 412 uses
an input device such as a keyboard or a digital pen to manually
enter authorization information into point of sale system 410.
[0058]Point of sale system 410 then sends the authorization information
to database 430 which authorizing service 434 owns (step 502). Note
that authorizing service 434 can be the original equipment manufacturer
of the copy of software product 490, a third-party, or retailer
414 or an organization associated with retailer 414.
[0059]In one embodiment of the present invention, point of sale
system 410 sends the authorization information to server 440 which
third-party 444 owns. In this embodiment, server 440 or point of
sale system 410 can send the authorization information to database
430.
[0060]Next, database 430 modifies a database entry, based on the
authorization information, associated with the copy of software
product 490 to indicate that the copy of software product 490 is
retail authorized (step 504). Note that database 430 uses the authorization
information to identify the database entry associated with the copy
of software product 490.
[0061]In one embodiment of the present invention, database 430
sends an authorization confirmation to point of sale system 410
or retailer 414 (step 506). This step is optional as illustrated
by the dashed lines surrounding step 506.
[0062]In one embodiment of the present invention, database 430
bills retailer 414 for the difference in the initial price, which
is the price paid by retailer 414 for the copy of software product
490 prior to customer 422 purchasing the copy of software product
490 (typically the initial price is a value below the threshold
value that retailer 414 uses to determine whether to use a theft
deterrent device to secure the copy of software product 490) and
the final price, which is the total price retailer 414 agreed to
pay to the organization that sold the copy of software product 490
to retailer 414 (step 508). Note that in the case of consignment,
the initial price may be zero and the organization that sold the
copy of software product 490 bills retailer 414 for the purchase
price of copy of software product 490 after customer 422 has purchased
copy of software product 490.
[0063]Using two price points provides incentive to retailer 414
to avoid using theft deterrent devices. By not using theft deterrent
devices, retailer 414 improves customer 422's shopping experience.
Furthermore, retailer 414 avoids the costs associated with theft
deterrent devices such as employee time spent installing and removing
theft deterrent devices. This step is optional as illustrated by
the dashed lines surrounding step 508.
Installing a Software Product
[0064]FIG. 5 presents a flowchart illustrating the process of installing
a software product in accordance with an embodiment of the present
invention. The process begins when customer 422 installs a copy
of software product 490 on client 420 (step 600). Database 430 then
receives registration information from client 420 (step 602). This
registration information can include a license number associated
with the copy of software product 490, retailer 414's name, customer
422's name, customer 422's contact information, the name of the
copy of software product 490, and the version of the copy of software
product 490 that customer 422 purchased. Database 430 uses the registration
information to identify the database entry associated with the copy
of software product 490, and then checks if customer 422 has permission
to use the copy of software product 490 (step 604). If so, database
430 registers that customer 422 owns the copy of software product
490 and has permission to use the copy of software product 490 (step
606). Database 430 then enables client 420 to execute the full functionality
of the copy of software product 490 (step 608).
[0065]In one embodiment of the present invention, the process begins
when customer 422 launches copy of software product 490. In this
embodiment, database 430 receives verification information from
client 420, which facilitates in determining if customer 422 has
permission to proceed with installing, or executing copy of software
product 490 on client 420. Note that "launch" can refer
to launching the installation process, or launching execution of
copy of software product 490.
[0066]In one embodiment of the present invention, database 430
enables client 420 to execute the purchased functionality of the
copy of software product 490. Note that the purchased functionality
of the copy of software product 490 may not be the full potential
functionality of the copy of software product 490. This embodiment
enables an organization to sell different versions of a software
product on a single set of non-volatile storage media without the
problem that a user who purchased a cheaper version of the software
product will have access to a pricier version of the software product
without paying for an upgrade.
[0067]In one embodiment of the present invention, database 430
verifies that customer 422 has permission to use the copy of software
product 490 each time customer 422 attempts to use the copy of software
product 490.
[0068]In one embodiment of the present invention, database 430
ensures that the number of customers using the copy of software
product 490 at any given time does not exceed the number of licenses
customer 422 purchased for the copy of software product 490.
[0069]In one embodiment of the present invention, database 430
ensures that customer 422 is installing the software product on
a client located at a site specified by a site license.
[0070]In one embodiment of the present invention, database 430
ensures that customer 422 does not exceed the number of transactions
included in a consumptive or transaction-based license.
[0071]In one embodiment of the present invention, enabling client
420 to execute the copy of software product 490 can include providing
a key to unlock the copy of software product 490, decrypting the
copy of software product 490, and any other method for enabling
client 420 to execute the copy of software product 490 known to
those familiar in the art.
[0072]If database 430 determines that customer 422 does not have
permission to use the copy of software product 490, database 430
sends a message to client 420 indicating that customer 422 does
not have permission to use the copy of software product 490 and
that customer 422 should contact the organization that manufactures
the copy of software product 490 for further assistance (step 610).
Database 430 then disables the functionality of the copy of software
product 490 on client 420 (step 612). This step is optional as illustrated
by the dashed lines surrounding step 612.
[0073]In one embodiment of the present invention, customer 422
calls a registration agent (not shown) who works for authorizing
service 434 to provide registration information to database 430.
In this embodiment, the registration agent checks database 430 to
determine whether customer 422 has permission to use the copy of
software product 490.
[0074]In one embodiment of the present invention, database 430
receives verification information, which facilitates in determining
if customer 422 has permission to install copy of software product
490 on client 420. In this embodiment, registration information
determines if customer 422 has permission to use copy of software
product 490, but does not prevent installation of copy of software
product 490.
Deactivating a Software Product
[0075]FIG. 6 presents a flowchart illustrating the process of deactivating
a software product in accordance with an embodiment of the present
invention. The process begins when database 430 receives a trigger
to deactivate a copy of software product 490 (step 700).
[0076]In one embodiment of the present invention, the trigger to
deactivate the copy of software product 490 is an expiration time.
This helps facilitate trial or grace periods of software products
and for software products sold under a licensing scheme that enables
the use of the software product for a limited time period. Note
that a trial or grace period may or may not include the full functionality
of copy of software product 490.
[0077]In one embodiment of the present invention, upon scanning
the copy of software product 490, a point of sale system sends a
trigger to database 430 to deactivate the copy of software product
490. This trigger includes deactivation information, which can include:
a serial number associated with the copy of software product 490,
retailer 414's name, retailer 414's location identifier, customer
422's name, and customer 422's contact information.
[0078]In one embodiment of the present invention, the point of
sale system sending the trigger to database 430 to deactivate the
copy of software product 490 is point of sale system 410.
[0079]Next, database 430 modifies a database entry associated with
the copy of software product 490 to indicate that the copy of software
product 490 is not authorized for use (step 702). Typically, retailers
do not accept returns on opened boxes of software products for fear
of contributing to copyright infringement. Using this invention,
retailer 414 can accept returns, thus increasing customer satisfaction,
without the fear of contributing to copyright infringement.
[0080]In one embodiment of the present invention, database 430
renders the copy of software product 490 inoperable at client 420
(step 704). This step is optional as illustrated by the dashed lines
surrounding step 704.
[0081]The foregoing descriptions of embodiments of the present
invention have been presented only for purposes of illustration
and description. They are not intended to be exhaustive or to limit
the present invention to the forms disclosed. Accordingly, many
modifications and variations will be apparent to practitioners skilled
in the art. Additionally, the above disclosure is not intended to
limit the present invention. The scope of the present invention
is defined by the appended claims. |