(WO/2002/069107) DIGITAL ONLINE EXCHANGE
- Biblio. Data
- Description
- Claims
- National Phase
- Notices
- Documents
- Note: OCR Text
- Note: Text based on automatic Optical
Character Recognition processes. Please
use the PDF version for legal matters
- Note: Text based on automatic Optical
DIGITAL ONLINE EXCHANGE REFERENCE TO RELATED APPLICATIONS The present application claims the benefit of commonly owned U. S.
Provisional Patent Application Serial No. 60/272,130, filed February 28,2001, and U. S. Provisional Patent Application Serial No. 60/310,381, filed August 6,2001, both of which are hereby incorporated by reference in their entirety.
BACKGROUND OF THE INVENTION The present invention generally relates to purchasing systems, and more specifically, but not exclusively, concerns a sales system adapted to dynamically price goods and/or services over a computer network.
With the recent explosion in Internet commerce, the amount of stolen or
pirated content has been on the rise. Encryption systems, such as Secured Digital
Music Interface (SDMI), can be circumvented by hackers so that songs contained
therein are freely available. For example, point-to-point (peer-to-peer) (P2P)
programs, such as Napster and Gnutella, have made it very easy for a person to
copy copyrighted material without compensating the author or artist. Consumers
who download the pirated content believe that it
Due to their popularity, the P2P swapping services, like Napster and Gnutella, have dramatically increased network loads of institutions where such services are extremely popular, like colleges and universities. To combat the increased network loads, universities have denied students access to such services across their networks. Thus, these services are severely hampered in contacting an extremely desirable demographic of consumers, students.
Therefore, there has been a long-felt need for a system to provide digital
media priced so that content suppliers can make a profit, and at the same time
provide an incentive for consumers to purchase and not steal content.
SUMMARY OF THE INVENTION One form of the present invention concerns a unique digital media content purchasing system. Other forms concern unique systems, apparatus and techniques for supplying media content.
In one form, a first price of an item for sale is sent from a processor to one or more clients over a network. Orders for the item at the first price is received from the clients, and the item is delivered to the clients that ordered the item at the first price. The processor prices the item at a second price based at least on the orders at the first price, and the second price is sent over the network to the clients.
In another form, a computer readable device is encoded with a program executable by a computer. The program is executable to send a first price of an item for sale to one or more clients over a network. The program is further executable to receive one or more orders for the item at the first price from the clients. The program prices the item at a second price based on the orders received at the first price and sends the second price of the item to the clients over the network.
In a further form, a system includes memory containing at least one item and a processor operatively coupled to the memory. The processor is responsive to input over a network from one or more clients. The processor is operable to dynamically adjust pricing of the item and to deliver the item from memory to the clients that order the item at a dynamically adjusted price.
In another form, an institutional network is operatively coupled to one or more clients. The institutional network is operatively coupled to at least one server that supplies media content to the clients over the institutional network.
Compensation is received for the media content supplied by the server to the clients over the institutional network.
In a further form, a computer readable is device encoded with a program
executable by a computer. The program is executable to identify one or more
clients that purchase an item over an institutional network as members of an
institution that operates the institutional network. The program rewards the
institution based on the purchases of the members.
Other forms, embodiments, objects, features, advantages, benefits, and
aspects of the present invention shall become apparent from the detailed drawings
and description contained herein.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG.
FIG. 2 shows a diagrammatic view of a communication system that includes a dynamic pricing system according to another embodiment of the present invention.
FIG. 3 shows a diagrammatic view of a table structure for the FIG. 2 dynamic pricing system.
FIG. 4 is a flow diagram illustrating process for dynamically pricing and providing content according to one embodiment of the present invention.
FIG. 5 shows a main display screen for the dynamic pricing system.
FIG. 6 shows a registration display screen for the dynamic pricing system.
FIG. 7 shows a user agreement display screen for the dynamic pricing system.
FIG. 8 shows a registration completed display screen for the dynamic pricing system.
FIG. 9 shows a sign-in display screen for the dynamic pricing system.
FIG. 10 shows a registered user main display screen for the dynamic pricing system.
FIG. 11 is a flow diagram illustrating a process of crediting a user account according to one embodiment of the present invention.
FIG. 12 shows a billing display screen for the dynamic pricing system.
FIG. 13 shows an update user profile display screen for the dynamic pricing system.
FIG. 14 shows a purchase history display screen for the dynamic pricing system.
FIG. 15 shows a charge credit card display screen for the dynamic pricing system.
FIG. 16 shows a search display screen for the dynamic pricing system.
FIG. 17 shows a search results display screen for the dynamic pricing
system.
FIG. 18 shows a media type display screen for the dynamic pricing system.
FIG. 19 shows a music category display screen for the dynamic pricing system.
FIG. 20 shows a genre display screen for the dynamic pricing system.
FIG. 21 shows a musical artist display screen for the dynamic pricing system.
FIG. 22 shows an album display screen for the dynamic pricing system.
FIG. 23 shows a details display screen for the dynamic pricing system.
FIG. 24A shows a purchase content display screen for the dynamic pricing system.
FIG. 24B shows a download display screen for the dynamic pricing system.
FIG.
FIG.
FIG.
FIG. 28 shows a diagrammatic view of data flow between navigation servlets in the FIG. 2 system.
FIG. 29 shows a diagrammatic view of data flow between file servlets in the FIG. 2 system.
FIG. 30 shows a diagrammatic view of data flow between database servlets in the FIG. 2 system.
FIG.
FIG. 32 shows an artist agreement and release display screen for the dynamic pricing system.
FIG. 33 shows a content pricing and download display screen for the
dynamic pricing system.
FIG. 34 is a flow diagram illustrating a technique for providing incentives
in order to gain access to institutional networks according to one embodiment of
the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENTS For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended, such alterations and further modifications in the illustrated device, and such further applications of the principles of the invention as illustrated therein being contemplated as would normally occur to one skilled in the art to which the invention relates.
FIG.
As should be appreciated, administrative computer 104 can also be operatively coupled to system 102 through the network 106. Although only one administrative computer 104 is shown in FIG. 1, it should be understood that system 100 can include multiple administrative computers 104. The administrative computer 104 can include a personal computer, a computer terminal, a personal digital assistant (PDA) and/or other types of devices generally known to those skilled in the art. In one embodiment, administrative computer 104 is a personal computer.
The dynamic pricing system 102 stores, dynamically prices, and delivers
media content items to the clients 108 over the network 106. The dynamic pricing
system 102 is also operable to receive media content from the clients 108. This
media content can include, but is not limited to, music, books, movies, videos,
television shows, software, coupons, tickets, web pages, magazines, newspapers,
and other type of electronic media. As should be appreciated from the discussion
below, the dynamic pricing system 102 can be adapted to dynamically price goods
and/or services, such as electronics and repair services. For instance, these goods
Processor 110 can be of a programmable variety responsive to software
instructions, a hardwired state machine, or a combination of these. The clock 111
is used to time events in the dynamic pricing system 102. As should be
appreciated, the clock 111 can be incorporated into the processor
The removable memory 114 can be in the form of a non-volatile electronic memory unit, optical memory disk (such as a DVD or CD ROM); a magnetically encoded hard disk, floppy disk, tape, or cartridge media; or a combination of these or other removable memory types.
Network 106 can include the Internet, one or more other wide area
networks (WAN), a local area network (LAN), a proprietary network such as
provided by America Online, Inc., an institutional network, a cable television
network, a public switched telephone network (PSTN), a combination of these,
and/or other types of networks generally known to those skilled in the art. In one
form of the present invention, the network 106 includes the Internet. In the
illustrated embodiment, the network 106 further includes an institutional network
115. As should be appreciated that the network 106 can include more than one
institutional network 115. The institutional network 115 is maintained by
institutions, such as colleges, universities, high schools, technical schools, other
types of learning institutions, and/or charitable organizations. As shown, client
devices 108 are operatively coupled to the network 106. Users access the dynamic
pricing system 102 through the client devices 108. The clients 108 and the
dynamic pricing system 102 communicate with one another by sending signals
across the network 106. In one form, these signals can include HyperText Mark
Up Language (HTML) pages, Extensible Mark Up Language
Users of the dynamic pricing system 102 can be further categorized into
two types of users, mainly : content suppliers (or artists) and content consumers (or
customers). For example, content suppliers can include, but are not limited to,
artists, authors, directors, programmers, producers, actors, performers, publishers,
movie/television studios, music labels, copyright holding organizations such as the
Recording Industry Association of America (RIAA), and their agents. As should
be appreciated, the same user of the dynamic pricing system 102 can be a
combination of both types, such that they can take the role of being both a content
supplier and consumer. As shown, the clients 108 can include one or more content
supplier computers/devices 116. The content supplier computer 116 can include,
but is not limited to, any of the devices that were described above for the clients
108. With content supplier computer
The clients 108 further include customer devices 124. It should be
understood that customer devices 124 can include, but are limited to, the devices as
described above for the clients 108. As shown, the customer devices 124 can
further include institutional member devices 125. Institutional members, such as
students and teachers, are operatively coupled to the dynamic pricing system 102
through the institutional network 115. With customer devices 124, consumers can
purchase and download content from the dynamic pricing system 102. Consumers
can view, listen to and/or interact with the content they purchased with customer
devices 124. For example, when the customer device 124 is a personal computer,
the personal computer can be used to store compressed digital media musical
content, such as MP3 files. The personal computer then can be used to play, store,
and/or"bum"CDs with music from the
Alternatively or additionally, the consumer can download the purchased content to
one or more portable devices 126. These portable devices 126 can include, but are
not limited to, portable music players (such as MP3 players),
A detailed illustration of one of many embodiments of the dynamic pricing system 102 is illustrated in FIG. 2. As shown, system 200 includes the dynamic pricing system 102 and one or more clients 108. Although not illustrated in FIG.
2, the client computer 108 in the FIG. 2 embodiment is operatively coupled to the
dynamic pricing system 108 through the network 106 in the same manner as
illustrated in FIG. 1. In one form, the network 106 for the FIG. 2 dynamic pricing
system 102 includes the Internet. The dynamic pricing system 102 in the FIG. 2
embodiment includes one or more connection servers 202, one or more navigation
servers 204, one or more heartbeat (load balancing) servers 206, one or more
database servers 208, one or more file servers 210, one or more master database
servers 212, and one or more master file servers 214. Although servers 202,204,
206,208,210,212 and 214 are illustrated as separate units, it should be understood
that selected servers or all of the servers can be combined to form a single unit. In
one form, the dynamic pricing system 102 utilizes the Linux operating system with
As illustrated, the heartbeat server 206 is operatively coupled to the connection server 202, the navigation servers 204, the database servers 208, and the file servers 210 in order to monitor their load. The connection server 202 is operatively coupled to the navigation servers 204. The navigation servers 204, the database servers 208 and file servers 210 are operatively coupled to with one another. The heartbeat server 206 monitors the performance of the other servers and load balances the dynamic pricing system 102. Periodically, servers 202,204, 208 and 210 individually send their load status information to the heartbeat server 206. With the collected status information, the heartbeat server 206 is able to load balance servers 202,204,208 and 210. If the heartbeat server 206 does not receive a status signal from one of the servers 202,204,208 or 210, the heartbeat server 206 concludes that the server is offline, or otherwise unavailable, and directs the requests to the remaining servers. For example, when one of the database servers 208 goes offline, the heartbeat server 206 can route requests to the remaining database servers 208. Each server receives load information about the other servers from the heartbeat server 206. Based on this load information, a server can send processing requests to a server with the lowest load in order to improve the operational efficiency of the dynamic pricing system 102.
The connection server 202 is operatively coupled to the clients 108 over the
network 106. The connection server 202 receives and processes all requests from
the clients 108. When a request is received, the connection server 202 queries the
heartbeat server 206 to find an available navigation server 204 with the lowest
load. The connection server 202 then forwards the request to the navigation server
204 with the lowest load. Based on the request and the load information from the
heartbeat server 206, the navigation server 204 determines the appropriate database
server 208 and/or file server 210 to contact in order to process the request.
The file servers 210 store the media content that is for sale on the dynamic
pricing system 102. As illustrated, the file servers 210 can maintain different
media types on separate servers. For example, the file servers 210 can include one
or more movie servers 216, one or more
As shown in the illustrated embodiment, there are three movie servers, first 216a,
second 216b and 216c third movie servers. Books, poems, short stories, manuals,
news articles and other types of text are stored on the books server 218. The music
servers 220 store music, songs, lyrics, sound recordings and the like. In the
illustrated embodiment, the music servers 220 include a first music server 220a and
a second music server 220b. Software and pictures are respectively stored in the
software server 222 and the photograph server 224. The master file server 214
maintains masters of the files stored on the file servers 210 and periodically
updates the files stored on the file servers 210. In one form, so as to minimize the
risk of corruption, the master file server 214 is offline with respect to the file server
210 and only connects to the file servers 210 when updating the files on the file
servers
Depending on popularity, multiple copies of the same work (file) can be
stored on multiple file servers 210. Initially, a file containing the work (content) is
loaded onto one of the files servers 210, which becomes the"home"file server 210
for the work. For example, during initialization of the dynamic pricing system
102, a song is loaded from the master file server 214 onto the second music server
220b, which becomes the"home"music server 220 for this particular song. As the
song becomes popular, the second music server 220b can place a copy of the file
containing the song onto the first music server 220a so as to optimize performance
of the dynamic pricing system 102. All requests for the song are initially placed
with the"home"music server 220, which is the second music server 220b in this
example, and if the second, home music server 220b is unable to process a request
for the song, the second music server 220b redirects the request to one of the other
In another embodiment, all of the works for a particular type of work (music, books, movies, etc.) can have one file server 210 designated as the home file server 210. For example, in this embodiment, all of the songs loaded into the dynamic pricing system 102 can have the first music file server 220a as their"home"file sever 210.
The database servers 208 store information about the content stored on the
file servers 210 and information about users of the dynamic pricing system 102,
both customers and artists. This information is stored in one or more databases
225 on the database servers 208, and this information can include, but is not
limited to, the name/address of the"home"file server 210 for the works; the names
of the artists, authors, directors, actors and/or owners of the works; titles;
publishers; producers; type of work, such as music, text or video; work category
(drama, humor, rock, jazz...); subject; pricing information and size/length of the
work. The databases 225 on the database servers 208 can be a standard file, a
combination of files, a standard database program, a relational database, a SQL
(Structured Query Language) database,
In the illustrated embodiment, the database servers 208 in FIG. 2 have three
movie databases 226 stored on separate database servers 208 that contain the same
information. The movies databases 226 contain information about the movies,
videos and/or shows stored in the movie file servers 216. For instance, the movies
databases 226 can store the file name along with the name/address of the home
movie file server 216; file size; title; writer; director; actors; producers; writers;
distributors; movie category, such as drama or action; description; comments;
reviews; pricing and demand information;
Information about the particular users of the dynamic pricing system 102, both
customers and artist, is maintained in the users databases 236. The information in
the users databases 236 can be used control access to the dynamic pricing system
102 and maintain billing information. Examples of such information include the
username and password; first and last names; home and business addresses; email
addresses; telephone numbers; session identifiers
Biographical and other types of artist information is maintained one the artists
databases 238. It should be understood that the above-described databases 225 can
include additional information
The master database server 212 maintains masters of the databases 225 stored on the database servers 208 and periodically updates the databases 225 stored on the database servers 208. In one form, so as to minimize the risk of corruption, the master database server 212 is offline with respect to the database servers 208 and only periodically connects to the database servers 208 when updating the databases 225.
All requests, such as a web page requests, from the client 108 (as indicated
by arrow 250 in FIG. 2) are routed to the connection server 202. Based on load
information from the heartbeat server 206, the connection server 202 routes the
request, as indicated by arrows 252 and 254, to the navigation server 204 with the
lowest load. In one embodiment, for each subsequent action by the user, the
heartbeat server 206 remembers which server was previously used and routes the
user to the same server. The navigation server 204 processes the requests. For
instance, the navigation server 204 can query one of the databases 225, as shown
by arrow 256, in order to process the request. The navigation server 204 selects
the particular database server 208 based on the information required (i. e.
information about music, books etc.) and the load information from the heartbeat
server 206. As depicted by arrow 258, the results from the query are returned to
the navigation server 204 that sent the query. Based on the results, the navigation
server 204 generates a web page and sends the page to the client 108, which is
depicted by arrow 260. In another example, the navigation server 204 processes a
As depicted by arrow 264, the file server 210 transfers the file to the client 108.
A table structure 300 of database tables 302 in the databases 225 according
to one embodiment of the present invention is illustrated in FIGS. 3. As should be
appreciated, the databases 225 can have different tables 302
Pricing algorithm parameters field 352 can store information such as the historical pricing and quantity ordered information for the item. In one form, field 352 stores the price and corresponding demand for the item over the last seven periods. It should be appreciated that depending on the dynamic pricing technique used, field 352 can store other parameters, such as the time between purchases.
The pricing table 306 stores information related to the price of particular
media content items. The pricing table 306 includes media
As illustrated in FIG. 3, account information for the users of the dynamic
pricing system 102, both customers and suppliers, is maintained in account table
312. In one form, the account information table 312 is maintained in each user
database 236. It should be appreciated that the user information in table 312 can
be encrypted in order to ensure privacy. In table 312, the username and password
for accessing the dynamic pricing system are maintained in fields 362 and 368,
respectively. As shown, the first name and last name of the user is stored in fields
370 and 372, respectively. The street address of the user is stored in fields 374 and
376. The city, state, zip code, country, email address, and telephone number of the
In another embodiment of the present invention, the dynamic pricing
system 102 is configured to dynamically price P2P transactions. In this
embodiment, as shown in FIG. 1, the content is stored across multiple content
supplier computers 116. The content supplier registers their content for sale on the
dynamic pricing system 102, and the dynamic pricing system 102 dynamically
prices the content. When an item is purchased, the content supplier
computer/device 116 that has the item transfers the file containing the item directly
over the network 106 to the customer device 124. For example, in one form of this
embodiment, the content supplier computers 116, which are remotely distributed
across the network 106, act like the file servers 210 of FIG. 2; while the database
servers 208 remain centrally located in the manner as illustrated in FIG 2. Like the
other embodiments, the database servers 208 track the purchases made and
administer user accounts. Moreover, the databases 225 store the file names of the
content items for sale along with the corresponding addresses (paths) of the content
supplier computers 116 that store the file. For example, the file server field 334 in
the media information table 304 of FIG. 3 can store the file name and IP address of
the content supplier computer 116. As should be appreciated, the dynamic pricing
system 102 according to this embodiment provides a centralized access point for
conducting and administering searches. In a further form, the dynamic pricing
A technique for dynamically pricing and providing content, according to one embodiment of the present invention, is illustrated with flow diagram 400 in FIG. 4. In stage 402, the customer with customer device 124 registers with the dynamic pricing system 102. Alternatively, if the customer has already registered with the dynamic pricing system 102, the customer can directly login to the dynamic pricing system 102. In one form, the client 108 has proprietary client software for interacting with the dynamic pricing system 102. In another form of the present invention, which is described below, the client 108 includes a web browser for interacting with the dynamic pricing system 102. The web browser allows the customer and/or artist to view web pages from the dynamic pricing system 102 and to submit forms to the dynamic pricing system 102. As should be appreciated, the customer first accesses the dynamic pricing system 102 by entering and/or selecting the domain name or the IP address of the dynamic pricing system 102 with the web browser. After accessing the dynamic pricing system, one of the navigation servers 204 sends a main web page to the client 108.
An example of a main web page 500 is illustrated in FIG. 5. It should be
appreciated that the web pages described below can omit certain information
and/or include information. Furthermore, although the interface describe below
uses web pages, it should be appreciated that other types interfaces can be used to
interact with users of the dynamic pricing system 102. For instance, a proprietary
interface, a menu type interface, a voice command interface, and/or other types of
interfaces as generally known by those skilled in the art can also be used. Page
500 includes a navigation toolbar 502, an advertisement portion 504, a general
information portion 506, a new user button 508, a login portion
Alternatively, the user can directly access the music, videos/movies, photographs, text/book and software category screens, which list the content available, by selecting the music button 528, the video button 530, the photograph button 532, the book button 534 and the program button 536, respectively. The user can search for content on the dynamic pricing system 102 by selecting the advanced search button 538, and the user can retrieve general information about the dynamic pricing system, such as contact information, by selecting the about button 540.
Content suppliers on the dynamic pricing system 102 can advertise their
work in the advertisement portion 504 of the main web page 500. It should be
appreciated that other types of advertisements can be displayed in the
advertisement portion 504. General information portion 506 displays general
information about the dynamic pricing system 102, such as operational status
information and how to use the dynamic pricing system 102. As mentioned above,
a new user of the dynamic pricing system 102 can register with the system 102 by
either selecting the new account button 508 or the new user button 516. After
After the registration form 600 is submitted, the dynamic pricing system 102 sends a user agreement form 700 to the client 108. As shown in FIG. 7, the user agreement form 700 includes an agreement text portion 702 in which the text of the agreement is displayed and an assent button 704. The user agrees to the terms of the user agreement by selecting the assent button 704. The user information is then stored in the user database 236, and a registration completion form 800, which is illustrated in FIG. 8, is displayed on the client 108.
Subsequently, a user can access the dynamic pricing system 102 by manually
logging onto the dynamic pricing system 102. The user can also be automatically
logged onto the dynamic pricing system 102 with a user identifier, such as a
"cookie", that is stored on the client 108. Referring again to FIG. 5, the user can
enter their username and password in fields 542 and 544, respectively, and select
sign in button 546 to log into the dynamic pricing system 102. Alternatively, the
user can select the sign in button 520 on the navigation tool bar 502 in order to be
shown a sign in form 900, which is illustrated in FIG. 9. The user can then enter
After logging into the dynamic pricing system 102, the user is shown a registered user main page 1000, which is depicted in FIG. 10. As shown, the registered user main page 1000 contains similar portions and buttons as shown in the main page 500 of FIG. 5, with the exception that the registered user main page 1000 does not have the login portion 510 and the account information portion 511 lists the particular account information of the current user. In the illustrated embodiment, the account information portion 511 includes a username identifier 1002, which identifies the current user, and an account balance 1004, which indicates the amount of money the current user has in their the dynamic pricing system account.
Initially, when the user registers with the dynamic pricing system 102 their account balance 1004, which is stored in field 390 of the account table 312, is zero- dollars ($0.00). Although dollars are used when describing the account balance 1004 of the user in one embodiment, it should be appreciated that different currencies can be used in the account balance 1004, such as the Euro and the yen.
With a zero ($0.00) account balance 1004, the user can still use the dynamic
pricing system 102. For example, an artist does not need money in order to supply
content to the dynamic pricing system 102. In another example, even with a zero
account balance, a customer can download free content from the dynamic pricing
system 102. In the illustrated embodiment, a customer pre-deposits money into an
account from which their purchases are deducted. By pre-depositing money into
an account, purchases on system 102 occur quickly and the purchasing experience
for the user is similar to the"free"systems, such as the Gnutella. The customer
can add money to their account in a number of ways including, but not limited to:
payments through credit or debit cards; wire transfers; being billed; sending cash,
checks or money orders to administrator of the dynamic pricing system 102;
A flow diagram 1100 for illustrating one technique for adding money to an account in the dynamic pricing system 102 according to one embodiment of the present invention is shown in FIG. 11. In stage 1102, the dynamic pricing system 102 sends to the client 108 one or more forms for crediting the account of the customer. To add money, the customer selects the my account button 518 on the navigation tool bar 502. In response, the dynamic pricing system 102 sends to the client 108 a billing form 1200 (FIG. 12). Form 1200 includes a my account tool bar 1202 and an add new card button 1204. The my account tool bar 1202 allows the user to navigate through a number of forms related to their account. The my account tool bar 1202 includes a profile form link 1206, a purchases form link 1208, and a billing form link 1210. With the profile link form 1206, the user can edit their account profile information. As illustrated in FIG. 13, the account profile form 1300 contains many of the fields shown in form 600 (FIG. 6) for entering user information, including fields 610,612,614,616,618,620,622,624 and 626.
The account profile form 1300 further includes the my account tool bar 1202, a save button 1302 for saving any changes to the user database 236 and a cancel button 1304 for not saving the changes. With the purchases form link 1208, the user can view their past purchases on purchase history form 1400 (FIG. 14). The purchase history form 1400 includes a list 1402 of past purchases. This list 1402 can include date of purchase 1404, title of content 1406 and price paid for the content 1408.
The billing form 1200 (FIG. 12) is shown on the client 108 when the billing
form link 1210 is selected on the my account tool bar 1202. On the billing form
1200, the user can add money to their account by selecting the add new card button
1204. In response, the dynamic pricing system 102 sends to the client 108 a charge
form 1500 (FIG. 15) in which the user can add money to their account by charging
a credit card. As should be appreciated, a secure socket layer (SSL) can be used on
the client 108 for authentication purposes and to encrypt the credit card
information sent over the network 106. As shown, the charge form 1500 contains
fields 1502 for charging money to a credit card. To charge the credit card, the user
enters their first name, last name, street address, city, state, zip code, country,
credit card type, credit card number, expiration date, amount to charge, email
In the embodiment illustrated in FIG. 1, the dynamic pricing system 102 incorporates client software from the third party payment system 136 that handles the transactions for crediting money to the account of the user. In one form, the third party payment system 136 is VeriSign's PayFlow system and the third party client software is VeriSign's PayFlow client software. As should be appreciated, other types of third party payment systems 136 can be used.
In stage 1104 (FIG. 11), the dynamic pricing system 102 receives the credit
card billing information from the client 108, and in stage 1106, the dynamic
pricing system 102 through the third party client software forwards the billing
information to the third party payment system 136, which administers the
transaction. The third party payment system 136 collects the transaction
information from the dynamic pricing system 102 and then securely routes the
transaction via a gateway through a financial network to the appropriate bank,
ensuring that user is authorized to make the purchase. The third party client
software in the dynamic pricing system 102 also sends an acknowledgement back
to the third party payment service 136 after returning the payment results to the
dynamic pricing system 102, in order to protect the user against double billing due
to latency or broken communication sessions. It should be understood that the
dynamic pricing system 102 can send an error message to the client 108, when the
dynamic pricing system cannot charge the credit card (i. e., not authorized to charge
the credit card or insufficient funds on the card). When the transaction is
authorized, the dynamic pricing system 102 in stage 1108 updates the account
balance information stored in the user database 236 by adding the amount from the
charge field 1524 to the account balance field 390 of table 312 (FIG. 3). On the
third party payment system 136, the funds for the transaction are transferred to an
account for the dynamic pricing system 102. In another embodiment, the dynamic
In stage 404 (FIG. 4), the user can search for content of interest in the dynamic pricing system 102. To perform an advance search for content, the user can select the advance search button 538 on the navigation toolbar 502. As shown in FIG. 16, in response to the selection of the advanced search button 538, the dynamic pricing system 102 sends an advanced search form 1600 to the client 108.
The advanced search form 1600 includes the simple search portion 512 in which the user can perform simple searches for content. The simple search portion 512 includes a simple term entry field 1602, a media type drop-down list 1604, and a simple search button 1606. The user enters one or more search terms into the simple term entry field 1602 and selects the media type to search (i. e., movies, books, and music) with the media type drop-down list 1604. To submit the search to the dynamic pricing system 102, the user selects search button 1606. Advanced search form 1600 further includes an advanced search portion 1608 in which advanced searches can be created. The advanced search portion 1608 includes a search all field 1610, a media type field 1612, a genre field 1614,"specific field" search field (s) 1616, a maximum results drop-down list 1618, a maximum amount field 1620, released after date drop-down lists 1622, released before date drop- down lists 1624, a sort drop-down list 1626, and an advanced search button 1628.
It should be understood that form 1600 can omit certain search criteria fields and/or include additional search criteria fields. In field 1610, the user can enter one or more search terms that are searched throughout every field of the database 225. The user can specify the media type and genre in drop-down lists 1612 and 1614, respectively. The user can search for terms in specified fields, such as by title, with portion 1616. The maximum number of search results can be specified in drop-down list 1618, and the maximum price for the content can be specified in field 1620. The content can be searched by release dates of the content with drop down lists 1622 and 1624. The user can specify how the search results are sorted.
The user submits the advanced search to the dynamic pricing system 102 by
selecting search button 1628. Based on the search criteria specified, the dynamic
pricing system 102 queries the databases 225 stored in memory 112.
An example of a search results page 1700 is illustrated in FIG. 17. As illustrated, the search results page 1700 includes a modify search portion 1702 and a results portion 1704. With the modify search portion 1702, the user can submit another search to the dynamic pricing system 102. Portion 1702 has a search term field 1706 in which search terms are entered, a media type drop down list 1708 in which the type of media to be searched is entered, and a search button 1710 for submitting the search. The results portion 1704 of the search results page 1700 displays the results from the submitted search. Each row/record 1712 of the results portion 1704 contains information about an item, in this example a book, that matched the search criteria. As shown, each record 1704 in the results portion 1704 can display an image 1714, a title 1716, author 1718, file size 1720, and length 1722 of the work. In the illustrated example, image 1714 contains a image of the cover of the book, and length 1722 lists the number of pages the book contains. The results portion 1704 further contains a title header 1724 that allows the user to sort the records 1712 by title when selected and an author header 1726 that allows the user to sort the records 1712 by author when selected. The user can view additional details about the work by selecting a details link 1728 for the record 1712, and the user can preview the work by selecting a preview link 1730 for the record 1712. The content listed in the record 1720 can be bought by selecting buy link 1732. As shown, buy link 1732 lists a current dynamic price of the content. By selecting link 1732, the user can purchase and download the work.
In addition, customers of the dynamic pricing system 102 can browse through hierarchical categories by selecting the view media button 526. In response to the selection of the view media button 526, the dynamic pricing system 102 sends to the client 108 a media types page 1800, which is shown in FIG. 18.
As illustrated, the media types page 1800 includes a music page link 1802, a text
page link 1804, a videos page link 1806, a photograph page link 1808 and a
software page link 1810 that respectively link to a music page, a text page, a
video/movie page, a photograph page and a software page. Alternatively, the user
can directly access the music page, the video/movie page, the photograph page, the
text page and the software page by selecting the music button 528, the videos
button 530, the photographs button 532, the books button 534 and the programs
For example, when either the music page link 1802 or the music button 528 is selected, the client 108 displays music page 1900. As shown in FIG. 19, the music page 1900 includes links 1902 that are organized by musical genre, such as "jazz","funk"and"rock", to name a few. Selecting one of the links 1902 will cause the client 108 to display a page organized specifically for the selected musical genre. For instance, if jazz link 1904 is selected, the dynamic pricing system 102 will query the music databases 230 in order to generate a genre page 2000 on the client 108. In FIG. 20, the genre page 2000 contains musical artist links 2002 that allow the user to browse the musical works that are available for sale from the listed artists. When one of the musical artist links 2002 is selected, the dynamic pricing system 102 sends to the client 108 a musical artist page 2100, which is shown in FIG. 21. In the illustrated embodiment, the artist page 2100 contains a name 2102 of the artist and album links 2104 that list the albums available from that artist. When the customer selects one of the album links 2104, the client 108 displays to the customer an album page 2200 (FIG. 22) that includes album (or CD) name 2202 and song links 2204 for songs on that album.
As depicted in FIG. 23, a details page 2300 for a song is displayed on the client 108 when the link 2204 for the song is selected. The details page 2300 can also be accessed by selecting the details link 1728 in the search results page 1700 (FIG. 17). As illustrated in FIG. 23, the details page 2300 includes: a type portion 2304 in which the type of content, in this case"music", is displayed; a title portion 2304 in which the title of the media content is listed, which in this example is the song title; and an artist name portion 2306 in which the name of the artist is listed.
The genre, such as jazz, for the content (song) is displayed in genre portion 2308,
and any comments concerning the content are displayed in comments portion
To receive a dynamic price for the content listed in the details page 2300,
the customer selects buy link 2320. In the illustrated embodiment, the customer
receives a dynamic price for the song by selecting buy link 2320, which sends a
signal to the dynamic pricing system 102 that indicates that the customer wants the
current dynamic price for the song. In response to receipt of this signal, the
dynamic pricing system 102 in stage 406 (FIG. 4) supplies a dynamic price for the
song and generates a purchase window 2400 on the client 108 that lists the current,
dynamic price for the song. Purchase window 2400 is also generated when the
user selects the buy link 1732 in the search results page 1700 (FIG. 17). As
illustrated in FIG. 24A, the purchase window 2400 includes a message portion
2402 with a dynamic price 2404 for the song, a purchase button 2406 in order to
purchase the song, and a cancel button 2408 to not purchase the song. In the
illustrated embodiment, the customer is given a specified time window to purchase
the song. After the period elapses, the purchase window 2400 automatically
closes. The purchase window 2400 can also be closed by selecting the cancel
button 2408. In another embodiment, the dynamic pricing system 102 periodically
refreshes the price 2404 in the purchase window 2400. The price 2404 for a
particular item, such as the song shown,
When the purchase button 2406 is selected, the dynamic pricing system 102
deducts the purchase price 2404 from the account of the user (see field 390) and
the purchased item is transferred from the dynamic pricing system 102 to the
customer device 124 over the network 106. When the user does not have enough
As should be appreciated, customers can access and purchase items on the dynamic pricing system 102 using other types of interfaces. For example, when the client 108 is a telephone, the customer can access and purchase items on the dynamic pricing system 102 through an automated voice menu system (i. e.,"The prices is 33 cents. You have 1 minute to press 1 to confirm your order or press 0 to cancel."). When for example customers use portable devices 126, a wireless protocol, such as Wireless Application Protocol (WAP), can be used to interface with system 102.
Below a number of techniques for dynamically pricing items on the dynamic pricing system 102 will be described. The dynamic pricing system 102 tries to optimize profit; this typically involves some estimation of the demand curve (s) for the items. The dynamic pricing system 102 in dynamically pricing the media content actually never knows the demand curve for an item for sale.
Generally, the dynamic pricing system 102 continues to raise the price for an item
With Equation 1 above, parameters a and p are unknown. In order to solve
these parameters, the technique according to the present invention uses data
observed through sales of items to estimate these parameters. Another factor in
determining the optimal price for an item is that the demand curve for an item will
change over time. Therefore, in one embodiment, the dynamic pricing system 102
does not base its price upon very old data. Still yet another obstacle the dynamic
pricing system 102 faces in determining pricing for a particular item is that
customer demand at the time periods in which a particular item is demanded varies
depending on the nature of a particular item. For example, a hit song may have
may sell a thousand copies a day. However, an obscure or old song to reach that
level of sales may take a week, months, and/or even years. The profit
It should be noted that for this embodiment the fixed costs such as cost of the servers, employees and other resources are ignored in Equation 2. Equation 2 only considers the marginal cost (c) caused by changes in sales volumes for a particular item. However, it should be understood that in other embodiments fixed costs can be a factor for dynamically pricing an item. Other factors may be incorporated into Equation 2 in order to determine the optimal profit. For example, if the time period (t) was twelve-hours (12 hours), one would expect that more sales would occur during the day as opposed during the middle of the night. This situation could result in undesirable, dramatic price fluctuations. To compensate for the difference between the periods, Equation 2 can factor in one or more additional variables in order to stabilize prices. Alternatively or additionally, the length of the time periods can vary in order to compensate for the differences between the periods. In another form, the price fluctuations between day and night are left alone so that users are given an incentive to download content when system activity is lower.
With the above background, an example will now be used to describe how
prices are dynamically adjusted according to one embodiment of the present
invention. In an initial time period
Flow diagram 2500 in FIG. 25 illustrates this technique according to one
embodiment of the present invention. The technique described below will be for a
song, but as should be understood this technique can be applied to the other types
of media content items on the dynamic pricing system 102. In stage 2502, the
initial price
Equations 6 and 7 can be combined in order to determine parameter which is shown below in Equation 8.
Over a long period of time, the expected sampling error terms would be zero. This
yields equation 9 below.
Set
pt = pt-1-L if pt-1,opt <pt-1-L
pt =
Limit bounds (L) in Equation Set 11 is used to limit how much the price
will be adjusted between two periods. For example, if the optimal price for the
previous time period is greater than the limit bounds (L) from the actual price, then
For example, at time period one, the dynamic pricing system 102 priced the
song at $1. 00
Set
Equation 14 below is a generic form for another technique of dynamically pricing an item according another embodiment of the present invention.
New Dynamic price = Price Basis x Dynamic Price Modifier (Equation 14) In Equation 14, the price basis is modified by the dynamic price modifier so as to result in a new dynamic price for an item. In one form, the dynamic price modifier is some measure of change in demand for one or more items being priced.
In another form, the dynamic price modifier can take into account profitability of
In one form, the dynamic pricing modifier is based on the differences between the quantity ordered at specific intervals. For instance, these intervals can be by second, by minute, hourly, daily, monthly, or yearly. In another form, the dynamic pricing modifier is based on the time between successive purchases. For example, if the time delay between successive purchases decreases, the dynamic pricing system 102 can infer that demand is increasing and thus increase the price for the item.
FIG. 26 is a flow diagram 2600 that illustrates a technique for dynamically pricing content items according to another embodiment of the present invention.
In the technique illustrated in FIG. 26, the price of an item is changed based on the time delay between orders for the item. An initial price for the item for sale on the dynamic pricing system 102 is set in stage 2602. The content supplier and/or the system administrator can set the initial price initial price for the item.
Alternatively or additionally, the dynamic pricing system 102 in this and other
embodiments can automatically set the initial price based on default prices and/or
historical prices for similar content stored in memory 112. In one form, the
administrator through administrative computer 104 sets the initial price for content
on the dynamic pricing system 102. In another form, the content supplier sets the
initial price in stage 2602. In stage 2604, the processor 110 of the dynamic pricing
system 102 receives a customer order over the network 106. From the clock 111,
the processor 110 in stage 2606 stores in memory 112 the time the order was
received, and the dynamic pricing system 102 processes the order. It should be
appreciated that the time recorded from the clock 111 can be based on other events
In stage 2610, the processor 110 determines the average time delay
AVE
In Equation 16, the price basis is the price of the item for the latest period,
and the dynamic price is the new price for the item. For example, if the price of
the item was currently $1.20, the average time between purchases was 20 seconds
and the current delay between purchases was 15 seconds, the new price for the
item would be $1.60 (1.20 x
When a customer decides to purchase the item at the increased price (after stage 2614), the processor 110 then proceeds to stage 2604 so as to process the next customer order.
If the current time delay (t) between purchases is not less than the average
time delay between purchases in stage 2612, then the processor 110 in stage 2616
determines whether the current time delay (t) between purchases is greater than the
average time delay between purchases. If so, then it can be inferred that demand
for the item has lowered, and the processor 110 in stage 2618 decreases the price
After stages 2614,2618 or 2620, customers can review the new price and place orders in stage 2604.
A technique for dynamically pricing items according to another
embodiment of the present invention will now be described with reference to flow
chart 2700 in FIG. 27. In this technique, the databases 225 record the number
purchases of each item in the dynamic pricing system 102. In one form of this
embodiment, a dynamic pricing system 102 periodically updates the prices of each
item for sale. The periodic update can be for every second, every minute, hourly,
monthly,
As mentioned above, a number of different people can set the initial price
of an item. For instance, the artist, content supplier, owner of the item, and/or the
system administrator can set the initial price for an item. In stage 2702, the
dynamic pricing system 102 stores in memory 112 the initial price as the current
best price for the item. The processor 110 in stage 2704 stores in memory 112 the
number of sales of the item at the initial price for a specified time interval and the
profit generated (best profit). In one form, the pricing and quantity information is
updated daily in the tables 302 of the database 225. After the specified time
interval, the processor 110 randomly changes the price within a range around the
best price in stage 2706. In one form, the dynamic pricing system 102 randomly
adjusts the current price within-5% to +5% of the best price. As should be
understood, the price can be randomly adjusted within different ranges. In another
form, the price is randomly adjusted without having specified upper and/or lower
range limits. In stage 2708, the processor 110 records in memory 112 the quantity
order (Qa) at the adjusted current price for the same time interval as in stage 2704
(for example, daily or every minute). The processor 110 in stage
When in stage 2710 the quantity ordered at the adjusted price is greater
than zero (0), the processor 110 determines whether the profit at the current price is
When an upper limit in price is defined, the price of the item will only be increased to the upper limit price. After the price is increased in stage 2708, the processor 110 proceeds to stage 2708 and records the quantity ordered (Qa) at the new adjusted price. By changing the best price in stage 2716 even when the current profit is equal to the best profit in stage 2714, removes old best prices that may be based on a different demand curve.
In another alternative, the processor 110 in stage 2714 determines whether the profit at the current price is better than the profit at the recorded best price. If so, the processor 110 proceeds to stage 2716. If the current profit is equal to the best profit, then the best price remains the same, the current price is not adjusted, and the processor 110 proceeds to stage 2708.
When in stage 2714 the current profit is less than the best profit, the
processor 110 in stage 2720 determines whether there is a small price difference
between the current price and the best price. The small difference can be based on
a percentage basis between the prices
In another form, the small price difference is two-cents ($0.02). It should be understood that other values can be used for the price differential. If there is a small price difference between the current price and the best price, the processor 110 proceeds to stage 2706 and randomly adjusts the prices within a range around the best price. Stage 2720 reduces the likelihood that the best price will be stuck at a local maximum in profit. When this problem is not a concern, stage 2720 can be omitted. If there is not a small difference in price between the best and current prices in stage 2720, the processor 110 in stage 2722 reduces the current price to halfway between the current price and the best price. For instance, if the current price is $1.00 and the best price is $0.90, the new adjusted price would be $0.95.
As should be appreciated, the price in stage 2722 could be reduced by some other fraction of the price differential between the current price and the best price, besides one-half. In one form, if the reduced price is lower than the lower price limit for the item, then the new adjusted price in stage 2722 is set to the lower price limit for the item. After reducing the price in stage 2722, the dynamic pricing system 102 proceeds to stage 2708 and tracks the quantity ordered at the new adjusted price. As shown in FIG. 27, the dynamic pricing system 102 using the technique illustrated in flowchart 2700 continues to periodically adjust the price of items.
In another technique, the period of time between recording the quantity order is variable. This technique can be used in the applicable, above-described techniques for dynamically pricing items, but instead"quantity"in this technique is replaced with"quantity/length of time period". For example, in stage 2708 of flow chart 2700, the"quantity ordered/length of time period"is recorded when the time period is variable. The dynamic pricing system 102 for instance would record one-hundred songs per hour (100 songs/hour) when one-hundred and fifty (150) songs are ordered in a one and a half hour (1.5) time period. By recording the"quantity/length of time period"improves sampling during slow order periods, such as at night.
As should be appreciated, different items for sale on the dynamic pricing
system 102 may use different techniques for dynamically pricing the items. For
example, popular music may be dynamically priced according to the technique
In one embodiment of the dynamic pricing system 102, servlets perform the above-described functions in order to operate the dynamic pricing system 102. In one form, Java servlets are used. As should be appreciated the dynamic pricing system 102 can use other types of systems in order to operate. A block diagram 2800 showing the relationship of servlets 2801 loaded on each of the navigation servers 204 is illustrated in FIG. 28. In diagram 2800, dashed arrows 2802 represent links between pages and solid arrows 2803 represent data flow. Main page servlet 2804 generates the anonymous main page 500 when the user is not logged into the dynamic pricing system 102 and the registered user main page 1000 when the user has logged onto the dynamic pricing system 102. Registration servlet 2805 handles user registration with the dynamic pricing system 102. As depicted, the registration servlet 2805 creates the registration form (s) 600. Once the user submits form 600, the registration servlet 2805 adds the new user to the user database 236 and logs in the new user automatically. Login servlet 2806 is responsible for logging in registered users into the dynamic pricing system 102.
As shown, the login servlet 2806 includes an add session servlet 2808 which adds a new sessions to the session table 314 in the user database 236. For example, after the registration servlet 2805 registers a new user, the registration servlet 2805 automatically logs in the new user by calling the add new session servlet 2808.
The login servlet 2806 generates the login form 900, and once the user submits a
filled-out login form 900 to the navigation server 204, the login servlet 2806
checks to see if the username and password are valid by comparing the entered
username and password with the user database 236. If the username and password
are valid, the add new session servlet 2808 adds a new session to the session table
314 in the user database 236. After the user is logged into the dynamic pricing
system 102, the login servlet 2806 returns control back to the servlet 2801 that
originally called the login servlet 2806. Any page that requires the user to have a
session will query the session table 314 in the user database 236 before the user is
In FIG. 28, account information servlet 2810 is responsible for maintaining the user account tables 312 in the user database 236. The account information servlet 2810 generates the forms, such as forms 1200 and 1500, that are used to update the account tables 312 in the user database 236. Navigation heartbeat servlet 2811 monitors the operational load of the servlets 2801 on the navigation server 204 and transmits the load information to the heartbeat server 206.
Moreover, the navigation heartbeat servlet 2811 retrieves load information about the other components of the dynamic pricing system 102 from the heartbeat server 206 and communicates the load information of the other components to the individual servlets on the navigation server 204.
Search servlet 2812 processes search requests from the users. As illustrated, the search servlet processes the search forms, such as simple search form 512, media form 1800 and advanced search form 1600. For example, the search servlet 2812 can transmit the advanced search form 1600 to the client 108.
After the user through client 108 submits a filled-out advance search form 1600 to
the navigation server 204, the search servlet queries one or more of the databases
225, and the databases 225 return results from the query to the search servlet 2812,
which in turn sends search results page 1700 to the client 108. An alternate view
of the same process is illustrated in FIG. 2. In this example, the client 108 submits
a search request form, as shown by arrow 250, to the connection server 202. The
connection server 202 based on the load information from the navigation heartbeat
servlet 2811, which was supplied by the heartbeat server 206, directs the submitted
form, as shown by request arrow 252, to one of the navigation servers 204. As
shown by query arrow 256, the search servlet 2812 on the navigation server 204
queries one or more of the databases 225. The results from the query, as shown by
results arrow 258, are returned to the search servlet 2812. Based on the results, the
search servlet 2812 generates the search results pages 1700 or 2300, for example,
and as indicated by arrow 260, the navigation server 204 transmits the search
results page 1700 to the client 108.
Although not loaded on the navigation server 204, file servlet 2814 is shown in FIG. 28 in order to show how the file servlet 2814 relates to the other servlets 2801 on the navigation server 204 in FIG. 28. As shown in FIGS. 28 and 29, the file servlet 2814 runs on the file servers 210 and is responsible for generating the download form 2400. The file servlet 2814 further verifies if the user has a valid, current session identification. If not, then the user is requested by the login servlet 2806 to login to the dynamic pricing system 102. After logging into the system, control is returned to the file servlet 2814. The download form 2400 is generated based on the media ID 318 and the home server location 328 that is stored in the media information tables 304. For example, the file servlet 2814 sends the download form 2400 to the customer device 124, and when the customer selects buy link 1732 in page 1700 or buy link 2320 in page 2300, the file servlet 2814 gets the pricing information from the pricing tables 306 in the databases 225 and debits the user account 390 in the user database 236. The file servlet 2814 further updates the quantity demand in the pricing 306 and media information 304 tables. As shown by arrow 264 in FIG. 2, the file servlet 2814 transfers a file containing the purchased content to the client 108.
As depicted in FIG. 29, each file server 210 incorporates a number of
servlets 2801 that are used to control the operation of the file server 210. The
servlets 2801 on the file server 210 include the file servlet 2814, a file heart beat
servlet 2902, a resume download servlet 2904 and a populate servlet 2906. The
file heartbeat servlet 2902 collects the load information from the servlets 2801 on
the file server 210 and sends beat information to the heartbeat server 206. The file
heartbeat servlet 2902 further retrieves the load information for the other file
servers 210 and the database servers 208 from the heartbeat server 206. The
heartbeat servlet 2902 communicates the load information to the other servlets
2801 on the file server 210. As mentioned above, the file servlet 2814 downloads
purchased items to the clients 108. If while downloading an item, the user
becomes disconnected from the network 106 or the download is interrupted in
some other manner, the resume servlet 2904 allows the customer to download the
content again for a specified period without being charged. For example, if a
customer device 124 is disconnected from the dynamic pricing system 102 while
In order to service high demand for a particular item, the populate servlet 2906 on each of the file servers 210 collects the number of current downloads of an item and determines which files need to be copied across multiple file servers 210.
For example, when a song becomes popular, the populate servlet 2906 places copies of the song on multiple file servers 210, as indicated by arrow 2908. The home file server 210 for the particular song maintains a table that identifies the file servers 210 that have copies of the song. If the home file server 210 for the song is busy when a request to download the song is received, the home file server 210 forwards the request to one of the file servers 210 that has a copy of the song file, which processes the download request. Since the file servlet 2814 of the home file server 210 is always contacted first, the home file server 210 is always able to track the demand of the item and increment the demand in the pricing 306 and media information 304 tables.
As shown in FIG. 30, each database server 208 includes a number of
servlets 2801 that perform specific tasks on the database server 208. Perform
query servlet 3002 can be called by any other part the dynamic pricing system 102,
as shown by arrow 3004. As shown by arrow 3006, servlet 3002 can query, insert
As indicated by arrow 3010, search servlets 2812 on the navigation servers 204 call execute search servlet 3012 on the database servers 208 in order to search for particular keywords in the media information tables 304. To improve response time for queries, the database servers 210 each maintain a keyword cache 3014 along with a media and pricing information cache 3016. The keyword cache 3014 is structured like the keyword table 308 and maintains a temporary list of popular keyword searches. The media and pricing information cache 3016 temporarily stores information about individual media items along with their current price.
Like the keyword tables 308 and the media information tables 304, keyword cache
3014 and media cache 3016 are linked to one another via the media ID 318. When
the execute search servlet 3012 receives a simple, or default search request, the
As illustrated in FIG. 30, get media file information servlet 3028 is used to retrieve media and pricing information that is used by the file servers 210. As shown by arrow 3030, the file servers 210 can call servlet 3208. The media information servlet 3028 first sends all requests (arrow 3032) to the media cache 3016. If cache 3016 is able to process the request, the search results (arrow 3034) are returned to servlet 3028. When cache 3016 is unable to process the request, the search request is then processed by the media 304 and pricing 306 tables (arrow 3036). In response to the request, tables 304 and 306 insert a new entry corresponding to the search results into the media cache (arrow 3036) and return the search results to the media information servlet 3028 (arrow 3040). Afterwards, the search results from servlet 3028 are then returned to the calling file server 210.
As depicted with arrow 3042 in FIG. 30, the file servers 210 call increment
demand servlet 3044 to increase the quantity demand for an item in the media
cache 3016. Servlet 3044 can either insert a new demand entry or update a
demand entry for an item in cache 3016 (arrow 3046). For instance, when an item
is purchased and downloaded the file server 210 will call the increment demand
servlet 3044 in order record an order of the item. If a record for the item is not in
In each of the database servers 208, dynamic pricing servlet 3048 is used to dynamically price items in system 102. Servlet 3048 includes an initialization thread 3050, one or more pricing threads 3052, and one or more cleaning threads 3054. On startup of the database server 208, the initialization servlet 3050 retrieves the names of all of the pricing algorithms in field 336 for each item (arrow 3056) and starts a pricing thread 3052 for each pricing technique. As previously discussed, the dynamic pricing system 102 can use different techniques to price individual items and/or groups of items. For instance, country songs can be dynamically priced by a first pricing thread 3052 that uses the technique illustrated in FIG. 26; while jazz songs and mystery books can be dynamically priced by a second pricing thread 3052 that uses the technique illustrated in FIG.
27. In one form, as shown by arrow 3058, the pricing thread 3502 periodically
updates at specified intervals the prices of items in fields 346 and 356 of the media
table 304 and pricing table 306, respectively. After updating the pricing
information in tables 304 and 306, the pricing thread 3502 then updates the pricing
information in media cache 3016, as shown by arrow 3060. In one embodiment,
the pricing thread 3052 updates the pricing information in tables 304 and 306 for
all items that use the pricing thread 3052, and then updates the prices in cache
3016 for the items. In another embodiment, the pricing thread 3052 updates the
pricing information in the media 304 and pricing 306 tables along with media
cache 3016 individually for each item. The pricing threads 3052 can dynamically
price items at different intervals, such as by minute, hourly, or daily. In one form,
the pricing threads 3052 dynamically price items daily. When pricing thread 3052
uses the technique of dynamically pricing items based on time between purchases
(FIG. 26), the pricing thread 3052 does not necessarily have to update the price at a
fixed interval. For example, the pricing thread can update the price of the item
In FIG. 30, the cleaning thread 3054 periodically removes items with low
demand from the media cache 3016, as shown by arrow 3062, and commits these
items removed from cache 3016 to the media 304 and pricing 306 tables, as
indicated by arrow 3064. For instance, when the demand for an item in the last
dynamic pricing period was zero (0), the cleaning thread 3054 removes the
information about the item, such as the media
A technique for receiving content and paying content suppliers will now be
described below with reference to flow chart 3100 in FIG. 31. In stage 3102, a
content supplier registers to supply content for sale on the dynamic pricing system
102. As mentioned above, the content suppliers can be for example artists,
authors, agents, publishers, content owners, programmers, record labels,
publishers, licensing organizations, producers, and the like. Referring to FIG.
After button 522 is selected, the dynamic pricing system 102 sends to the content
supplier computer 116 an artist agreement and release form 3200. As illustrated in
FIG. 32, form 3200 includes an agreement portion 3202 in which the terms of the
artist agreement and release are listed. The name and address of the content
supplier can be entered into fields 3204 and 3206, respectively. As should be
appreciated, form 3200 can contain other fields in which additional information
can be entered. The content supplier agrees with the terms of the agreement by
In response to the submission of form 3200, the dynamic pricing system 102 sends to the content supplier computer 116 a content pricing and download form 3300. In later sessions, once the content supplier has accepted the agreement in form 3200, the dynamic pricing system 102 will send the pricing form 3300 when artist button 522 is selected. With form 3300, the content supplier is able automatically submit content for sale on the dynamic pricing system 102. As depicted in FIG. 33, form 3300 includes a title field 3302, a length field 3304, a file location field 3306, an initial price field 3308, a minimum price field 3310 and a maximum price field 3312. The content supplier can enter the title of the work in field 3302 and the length of the work in field 3304. The filename and path on the content supplier computer 116 for the file that contains the work for sale is entered into field 3306. In another embodiment, the content supplier can enter the path and/or IP address of another client 108 that contains the work in field 3306. The content supplier enters the initial offering price of the work into field 3308.
Alternatively, the content supplier can leave field 3308 blank such that the
administrator sets the initial price or a default initial price value is used. The
content supplier can enter the minimum and maximum price of the work in fields
3310 and 3312, respectively. Alternatively, the content supplier can leave fields
To submit the work, the content supplier 3314 selects submit button 3314, and in response, the content provider computer 116 transfers over the network 106 the file specified in the file location field 3306 along with the other information from form 3300 to the dynamic pricing system 102. As should be appreciated, with the P2P embodiment of the dynamic pricing system 102, the client 108 only needs to transfers the information from form 3300 to system 102 and does not need to transfer the file. However, in another form of the P2P embodiment, the file is transferred. In stage 3104, the dynamic pricing system 102 receives the file containing the downloaded content and the other information from form 3300. The dynamic pricing system 102 stores the downloaded file in at least one of the file servers 210 and submits the information about the work to the database servers 208. In another embodiment, the dynamic pricing system 102 adds the work to the master database server 212 and the master file server 214, which in turn update the database 208 and file 210 servers so as to incorporate the new work. In the pricing form 3300, the content provider can cancel a submission by selecting cancel button 3316.
In another embodiment, stages 3102 and 3104 can be performed manually.
For example, the artist can manually execute the required paperwork and mail the paperwork along with copies of the content, such as a CD containing the work, to the administrator of the dynamic pricing system 102. Once the paperwork and content is received, the administrator with the administrative computer 104 can add the work and pricing information to master servers 212 and 214. During their periodic update of the database 208 and file 210 servers, the master database server 212 and master file server 214 add the new work to servers 208 and 210.
In stage 3106, the dynamic pricing system 102 tracks the purchases of the
work, and the dynamic pricing system 102 stores the price and quantity demand for
the item in the database servers 208. In stage 3108, the content supplier of the
work is compensated for the work. The owner of the dynamic pricing system 102
As discussed above, institutions such as colleges and universities have blocked file swapping services from their networks 115 because the large volumes of downloads from such systems clog their networks 115. With the high loads created by the file swapping services, institutions bear significant costs and yet receive no benefit from the file swapping services. A technique for providing institutions incentives to allow their members access the dynamic pricing system 102 will now be described with reference to flowchart 3400 in FIG. 34. With this technique, since institutions benefit when their members to use the dynamic pricing system 102, the institutions will be more inclined to not block access to the dynamic pricing system 102. In stage 3402, a representative of the institution, which operates network 115, registers with the dynamic pricing system. During the registration stage 3402, the representative provides the name of the institution along with other information about the institution to the dynamic pricing system 102. The representative can register the institution directly with the dynamic pricing system 102 by filling out an online form. Alternatively, the representative can contact and supply the information to the system administrator, and the system administrator can then enter the information into the dynamic pricing system 102.
In another embodiment, institutional registration is optional such that an institution
In stage 3404, the dynamic pricing system 102 receives a purchase request
from a customer, and in stage 3406, the processor 110 of the dynamic pricing
system 102 determines whether the customer is a member of one of the registered
institutions. In one embodiment, system 102 compares the domain name in the
email address field 386 of the customer in account table 312 with the domain name
supplied by the institution in order to determine if the customer is a member of the
institution. For example, if a college specified that its students have the
"college.
The money accumulated in the institution account can be disbursed at set intervals, at variable intervals, when a specific amount is accumulated, after every purchase by a member, when a specified traffic level is reached and/or in other manners as specified by the institution. As should be appreciated, the payments can be made in the same manners as described above for the content suppliers. For instance, one or more scholarships, which were designated by the university, can receive a monthly check from the dynamic pricing system 102 for the last month's account balance. By directly and/or indirectly receiving compensation from the dynamic pricing system 102, institutions that run institutional networks 115 are provided with an incentive to allow their members to access the dynamic pricing system 102. In one form, five-percent (5%) of sales are rewarded to the institution, and in another form, the institution is rewarded $0.005 (1/2 cent) from each sale.
As should be understood other types of compensation packages and/or amounts can be used. It should be appreciated that the above technique can be applied to other types of institutions, besides learning institutions, that experience problems with high network traffic, such as charitable organizations and corporations.
As should be appreciated the above-discussed dynamic pricing system 102
can be used to dynamically price other types of items. These items can include,
but are not limited to, movie tickets; concert tickets; CD's containing selected
Likewise, a CD containing selected songs and/or albums can be mailed to the customer or a coupon for the CD can be redeemed at a local store.
While the invention has been illustrated and described in detail in the drawings and foregoing description, the same is to be considered as illustrative and not restrictive in character, it being understood that only the preferred embodiment has been shown and described and that all changes and modifications that come within the spirit of the invention are desired to be protected.