System and method for distributing personal identification numbers over a computer network
10841433 ยท 2020-11-17
Assignee
Inventors
Cpc classification
H04M2215/0196
ELECTRICITY
G06Q10/087
PHYSICS
H04M17/00
ELECTRICITY
International classification
H04M17/00
ELECTRICITY
G06Q10/08
PHYSICS
Abstract
The present invention comprises a system and method for managing an inventory of PINs in a PIN distribution network. The distribution network includes a hub coupled to a one or more servers and each of the servers is coupled to at least one client terminal. The system includes a hub for dynamically allocating PINs of the inventory among the servers so as to substantially maintain a quantity of PINs at each server at a desired level for each server. Additionally, the hub acquires additional PINs in response to at least one PIN in the inventory being distributed to at least one user from at least one of the client terminals. In variations, the hub maintains centralized databases and synchronizes the centralized databases with corresponding databases at each server.
Claims
1. A method for electronic, real-time distribution of PINs in a PIN distribution network, the distribution network including a host connection manager, a client device, and a hub coupled to a plurality of servers, the method comprising: synchronizing, the plurality of servers' individual databases, wherein the plurality of servers' individual databases are synchronized via the hub without the plurality of servers communicating with each other, and wherein the amount of communication required for database synchronization is reduced by the hub; receiving, electronically by one of the plurality of servers, an inventory of PINs from the hub, wherein the plurality of servers required memory capacity for PIN inventory is reduced by the hub; receiving, electronically by the one of the plurality of servers, a client device request for a PIN from the client device, wherein the client device request has been made compatible with a communication protocol of the one of the plurality of servers by the host connection manager converting a client device legacy communication protocol to the communication protocol of the one of the plurality of servers and wherein the client device is configured to provide the PIN to a customer; determining, electronically by the one of the plurality of servers, that the PIN is not included within the inventory of PINs; transmitting, by the one of the plurality of servers, a server request for the PIN to the hub; requesting, by the hub from another one of the plurality of servers, the PIN; and receiving, electronically by the one of the plurality of servers, the PIN from the hub, wherein the hub received the PIN from the another one of the plurality of servers.
2. The method of claim 1 further including transmitting, by the one of the plurality of servers, prior to the receiving of the inventory of PINs, a request for PINs to the hub.
3. The method of claim 1 further including transmitting, by the one of the plurality of servers, the PIN to the client device.
4. A real-time PIN distribution network system comprising: a host connection manager; a plurality of servers; a client device configured to request a PIN for a customer from one of the plurality of servers and provide the PIN to the customer; a hub configured to reduce the plurality of servers' required memory capacity for PIN inventory and also configured to reduce the amount of communication required for database synchronization by synchronizing individual databases of the plurality of servers without the plurality of servers communicating with each other; a first one of the plurality of servers' processors; a first non-transitory computer readable memory for storing codes which when executed cause the first one of the plurality of servers' processors to (1) electronically receive an inventory of PINs from the hub, (2) receive a client device request for a PIN from the client device, wherein the client device request has been made compatible with a communication protocol of the first one of the plurality of servers' processors by the host connection manager converting a client device legacy communication protocol to the communication protocol of the first one of the plurality of servers' processors, (3) determine that the PIN is not included within the inventory of PINs, (4) transmit a server request for the PIN to the hub, and (5) electronically receive the PIN from the hub; a second one of the plurality of servers' processors; a second non-transitory computer readable memory for storing codes which when executed cause the second one of the plurality of servers' processors to electronically receive a hub request for a PIN from the hub and transmit the PIN to the hub.
5. The real-time PIN distribution network system of claim 4 wherein the codes further include codes which when executed cause the a first one of the plurality of servers' processors to, prior to receiving the inventory of PINs, transmit a request for PINs to the hub.
6. The real-time PIN distribution network system of claim 4 wherein the codes further include codes which when executed cause the first one of the plurality of servers' processors to transmit the PIN to the client device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
DETAILED DESCRIPTION
(32) The present invention may be best understood in light of the subject matter of co-pending U.S. application Ser. No. 10/316,603 entitled: SYSTEM AND METHOD FOR DISTRIBUTING PERSONAL IDENTIFICATION NUMBERS OVER A COMPUTER NETWORK, which is described herein with reference to
(33) This co-pending application describes a system and method which allows a customer to purchase pre-paid amounts of any good or service, such as telephone service, gasoline, electricity, dry-cleaning, bus service, subway service, magazines, newspapers, or bundled goods and services. After the customer purchases a pre-paid amount of a good or service, the customer receives a personal identification number (PIN), which is downloaded in real-time over a network such as the Internet. The PIN is provided over the network on-demand, meaning that the PIN is downloaded over the network immediately or very soon after receiving a request and payment from the customer. The PIN is downloaded over a network in response to the customer's request, not delivered to the customer hours or days after the request. The PIN is not stored locally at the client terminal used by the customer, but is downloaded over the Internet, thus eliminating any inventory tasks or costs associated with maintaining a filled inventory for the dealer. After the customer receives the PIN, the customer can then use this PIN at any convenient time to access the desired good or service.
(34) The above-identified co-pending application thus provides virtual inventory of pre-paid cards because it removes all the burdens of inventorying pre-paid cards from the dealer. Additionally, it provides virtual distribution of telephone cards, because the service providers no longer have to manufacture pre-paid cards and distribute them to the dealers. Because the PINS are delivered on-demand, there is a real-time distribution and accounting. Additionally, there is an elimination of the inventory shrinkage problem created by the loss, and theft of pre-paid cards.
(35) Moreover, the above-identified co-pending application describes a system and method for providing a personal identification number (PIN) to a client terminal over a computer network. The described system and method eliminates all costs associated with filled inventory for dealers selling PINs. For example, a server receives a request for a PIN over a network, the request originating from a user at a client terminal. The request is associated with a requested monetary unit and a requested provider. The server retrieves from a database a PIN associated with the requested monetary unit and requested provider. The server transmits the retrieved PIN to the client terminal over the network, wherein the PIN is transmitted to the client terminal on-demand in response to the customer's request. No inventory of PINs is stored at the client terminal. All transmissions between the client terminal and the server are by secure transmission to prevent an eavesdropper from stealing the PIN(s).
(36) The PIN can be used for accessing pre-paid telephone service. Alternatively, the PIN can be used for accessing other pre-paid goods and services such as gasoline, magazines, subway service, etc.
(37) The server can transmit to the client terminal a plurality of products or services available. The server then receives from a user at the client terminal a selection of one of the available products or services. The server transmits to the client terminal a plurality of provider names for the requested product or service. The server receives from a customer at the client terminal a selection of one of the available provider names. The server transmits to the client terminal a plurality of monetary denominations available for the requested provider. The server receives from the client terminal a selection of one of the available monetary denominations. The server transits to the client terminal a plurality of regions available for the requested provider. The server receives from the client terminal a selection of the one of the available regions. The server can receive a request from the client terminal to view rate information. The server then transmits rate information to the client terminal.
(38) The user is then prompted at the client terminal to enter payment for the requested PIN. The user can enter payment a) inserting cash into a receptacle at the client terminal, or b) entering credit card or debit card or smart card information or swiping a card through a receptacle, or c) paying cash to an operator associated with the client terminal. If the user pays a dealer, the dealer remits a portion of the payment to an account associated with the server by a) transferring funds from a dealer's account into the account associated with the server by an electronic funds transfer, or b) charging a portion of the payment to a dealer's credit account, or c) charging a portion of the payment to a dealer's credit card.
(39) After the user pays for one or more PINs, the client terminal prints a receipt for the customer, the receipt including the requested PIN number and instructions for using the PIN. Additionally, a purchase ordering method is described in the above-identified pending application whereby a dealer can buy PINs in bulk and receive a wholesale discount. The dealer can place multiple individual purchase orders at once, each individual purchase order associated with a requested provider, a requested monetary denomination, and a requested number of PINs.
(40) The system of the above-identified co-pending application allows a customer to purchase pre-paid amounts of any good or service, such as telephone service, gasoline, electricity, dry-cleaning, bus service, subway service, magazines, newspapers, or bundled goods and services. After the customer purchases a pre-paid amount of a good or service, the customer receives a personal identification number (PIN), which is downloaded in real-time over a network such as the Internet. The PIN is provided over the network on-demand, meaning that the PIN is downloaded over the network immediately or very soon after receiving a request and payment from the customer. The PIN is downloaded over a network in response to the customer's request, not delivered to the customer hours or days after the request. The PIN is not stored locally at the client terminal used by the customer, but is downloaded over the Internet, thus eliminating any inventory tasks or costs associated with maintaining a filled inventory for the dealer. After the customer receives the PIN, the customer can then use this PIN at any convenient time to access the desired good or service.
(41) The system of the above-identified co-pending application thus provides virtual inventory of pre-paid cards because it removes all the burdens of inventorying pre-paid cards from the dealer. Additionally, it provides virtual distribution of telephone cards, because the service providers no longer have to manufacture pre-paid cards and distribute them to the dealers. Additionally, there is an elimination of the inventory shrinkage problem created by the loss and theft of pre-paid cards.
(42)
(43) Network 104 can be any network connecting computers such as the Internet. Client terminals 106, 108, and 110 are running browser programs 128, 130 and 132, respectively. Browsers 128, 130, and 132 are any program that allows client terminals 106, 108, and 110 to access Easywireless.com server 102 over network 104.
(44) Easywireless.com server 102 contains RAM 114, ROM 116, CPU 118, and data storage device 120. CPU 188 runs the software, which is operating the method depicted in
(45) Data storage device 120 also includes client terminal records 122. Client terminal records store information concerning where client terminals are located. Client terminal records 122 can store any information specific to specific client terminals, such as previous purchase history, payment and account information, and terminal preferences.
(46) Data storage device also includes customer records 123. Customer records 123 provide information unique to individual customers. For example, as will be discussed later with respect to
(47) Data storage device 120 also contains provider records 124. These records contain information pertinent to providers who are providing PINs for PIN database 112. For example, these records can contain addresses, billing information, and telephone numbers. Data storage device 120 also contains advertising records 126. Advertising records 126 contain information about advertising banners and links that can be provided to client terminals 106, 108 and 110 as an additional source of revenue.
(48) Because the PINs are valuable and could be subject to theft and copying by electronic piracy, communications network 104 between Easywireless.com server 102 and client terminals 106, 108 and 110 is protected by the use of encrypted communications and well-known security techniques. Client. terminals 106, 108, and 110 can provide security certificates to Easywireless.com server 102 to authenticate their transmissions.
(49)
(50)
(51)
(52)
(53) Provider field 302 contains the name of the particular good or service provider associated with the record. For example,
(54) Expiration field 310 contains an expiration date beyond which the PIN for that record will no longer be valid. Other fields may also be added. Some fields may be particular to a specific good or service. For example, if gasoline is being sold then there may be a field for Octane which specifies the octane level of gasoline being purchased.
(55)
(56) In step 404, Easywireless.com server 102 receives the request from the client terminal for the chosen good or service. In this example, Easywireless.com server 102 receives a request for cellular telephone service. In step 406, the Easywireless.com server 102 transmits to the client terminal a list of providers for the requested good or service. For example, if the customer has requested cellular telephone service, Easywireless.com server 102 transmits a list of: AT&T, AIR TOUCH, and SPRINT. The customer then selects one of these offered providers by touching an option on touch-screen 204. This would send a request back to Easywireless.com server 102 for a particular requested provider. For example, the customer could select AIRTOUCH.
(57) In step 408, Easywireless.com server 102 receives the customer's request for the particular provider requested.
(58) In step 409, Easywireless.com server 102 transmits to the client terminal a list of regions for the requested good or service. For example, if the customer requested AIRTOUCH in step 408, then Easywireless.com server 102 would transmit a list of regions such as AIRTOUCH NORTHEASTERN U.S., or AIRTOUCH NEW YORK CITY METROPOLITAN REGION, OR AIRTOUCH PACIFIC REGION, etc. In step 410, Easywireless.com server 102 receives the customer's request for a particular region.
(59) In step 411, Easywireless.com server transmits a list of pre-paid monetary denominations offered. For example, if a request for AIRTOUCH is received, Easywireless.com might offer pre-paid cellular service for AIRTOUCH in the following monetary denominations: $10, $20, $50, and $100. Thus, a customer could choose to buy a $50 virtual phone card, which would provide him or her with $50 of pre-paid cellular service.
(60) The Easywireless.com server 102 can determine what monetary denominations are available by one of the following methods. As a first method, Easywireless.com server 102 checks provider records 124, and looks up the record corresponding to the chosen provider (for example, AIRTOUCH). Easywireless.com 102 then checks a field of the provider record to determine what monetary values are offered. As a second method, Easywireless.com server 102 checks PIN database 112, and determines what types of monetary denominations are available. For example, Easywireless.com server 102 can determine that it is presently out of stock of $50 AIRTOUCH PINs, but Easywireless.com server 102 has available $10 PINs, $20 PINs, and $100 PINs.
(61) As an example, the customer could choose to purchase a $50 PIN from AIRTOUCH. The customer would receive a PIN, which would allow him or her to purchase $50 of cellular telephone service. As an alternative to transmitting a list of offered monetary denominations, in step 410, the customer could alternatively be allowed to simply type in at a keypad a desired amount of service that he or she desires. For example, a message would appear on touch-screen, 204 stating TYPE IN AN AMOUNT OF PRE-PAID SERVICE YOU WISH TO PURCHASE. The customer could then type in, for example, $50. Easywireless.com server 102 could then check PIN database 112 to see if it had any $50 PIN denominations available. If there was no $50 PINs available, Easywireless.com server 102 could, for example, transmit a message stating, THERE ARE NO $50 PINS AVAILABLE. WOULD YOU LIKE TO PURCHASE A $40 PIN OR A $75 PIN? Alternatively, Easywireless.com server 102 could transmit a message stating THERE ARE NO $50 PINS AVAILABLE FOR AIRTOUCH. HOWEVER, SPRINT AND MCI OFFER $50 PINS FOR CELLULAR TELEPHONE SERVICE. WOULD YOU LIKE TO PURCHASE FROM ONE OF THESE PROVIDERS?
(62) The customer can also be given an option to View Rates. If the customer chooses this option, then a request to view rates is sent to the Easywireless.com server 102. In step 412, the request is received by Easywireless.com server 102. In step 414, Easywireless.com server 102 transmits rate information to the client terminal. For example, the rate information could specify that a $100 virtual pre-paid phone card purchased from AIRTOUCH has a cellular calling rate of $0.35 per minute, and the PIN expires in 6 months. A $5& virtual pre-paid phone card purchased from AIRTOUCH has a cellular calling rate of $0.40 per minute, and the PIN expires in 8 months. Providers may choose to offer lower rates for larger pre-paid purchases as a high volume discount. Further information can also be requested and provided to the customer depending on the particular product or service purchased. For example, if the customer is purchasing gasoline, the customer could request current price per gallons at various gas station locations for various octane levels.
(63) In step 416, Easywireless.com server 102 receives from the client terminal a request for one of the available monetary denominations. For example, the customer could select an option to purchase a $50 PIN from AIRTOUCH by touching the appropriate option on touch-screen 204.
(64) In step 418, Easywireless.com prompts the customer at the client terminal to make payment for the requested PIN. Payment can be made by the customer in a number of ways. In the embodiment shown in
(65) First method ACH WALLET: The dealer has a special account set up with Easywireless.com. The dealer stores money in the account before the PIN is purchased. Immediately before a customer purchases one or more PINs, the dealer pays a portion of the payment to Easywireless.com by transferring money from the dealer's account to Easywireless.com by ACH (automated clearing house) electronic funds transfer. This method of payment is referred to as ACH wallet.
(66) Second method CREDIT ACCOUNT: The dealer has a credit account with Easywireless.com. The dealer is allowed a predetermined amount of credit based on the creditworthiness of the dealer. When a customer pays for one or more PINs, a portion of the payment is charged to the dealer's credit account. The dealer is then billed later for the amount charged.
(67) Third method: The dealer simply provides credit card information to Easywireless.com. When customer purchases one or more PINs, a portion of the payment is charged to the dealer's credit card.
(68) Fourth method: The customer's credit card information (or debit card, or smart card) is sent directly to Easywireless.com. Easywireless.com then charges the customer's credit card and sends a portion of the payment back to the dealer.
(69) As will be understood by one skilled in the art, the above methods are by example only and there are a multitude of ways that payment can be arranged between the dealer and Easywireless.com. All of these methods do have one thing in common, however. The PIN is sent by Easywireless.com right after a payment is made (either by cash or credit). This makes the delivery of the PIN on demand and eliminates costs associated with filled inventory. Because the PIN is sent right after payment is made, the dealer has no costs associated with filled inventory. For example, the dealer does not have to contact Easywireless.com at the beginning of each month and order $10,000 worth of cards. The dealer does not have to predict which cards will be popular, and how many cards to order of each type. Payment for the PIN is charged at the time of each transaction, and thus the dealer has no filled inventory costs.
(70) In the automated kiosk embodiment shown in
(71) After payment has been received and verified in step 418, then in step 420 Easywireless.com server retrieves a PIN from the database having the appropriate characteristics selected by the customer. For example, if the customer chose to purchase a $50 virtual pre-paid phone card for pre-paid cellular telephone service from AIRTOUCH, then Easywireless.com server 102 could retrieve record 312f shown in
(72) Easywireless.com web server 102 also transmits any instructions necessary to use the PIN. For example, Easywireless.com can transmit a telephone access number, which the customer needs to dial before placing a cellular telephone call and entering the PIN. The telephone access number and other instructions will be unique for each provider. These instructions can either be stored in each individual record 312 in PIN database 112, or the instructions can be stored in provider records 124.
(73) The customer could also request to receive multiple PINs. For example, the customer could purchase 3 $50 PINs for AIRTOUCH cellular telephone service. After the customer enters $150 in payment, Easywireless.com server 102 transmits 3 $50 PINs to the customer at the client terminal.
(74) At step 424, the client terminal prints out a receipt for the customer. The receipt includes the requested PIN(s) purchased by the customer, and any instructions for using the PIN such as a telephone access number. The receipt can also contain advertisements. Advertisers pay Easywireless.com for the opportunity to have their ads displayed on receipts. The receipt is a printed piece of paper. Alternatively, the receipt could be in the form of a plastic card. Easywireless.com server 102 then returns back to the first step 400, waiting for the next customer to request to BEGIN.
(75)
(76) In step 500, a window appears which states TOUCH HERE TO BEGIN. The customer can begin by touching the touch-screen 204 or 212 in the appropriate location. If the customer has accessed the Easywireless.com web server 102 by using personal computer 222, the customer can begin by entering an appropriate URL into the browser (such as http://www.easywireless.com). This would bring the customer to the Easywireless.com web page running on Easywireless.com server 102. The customer could click on a link labeled BEGIN to begin the purchase process.
(77) In step 501, the client terminal displays list of offered goods and services, such as cellular telephone service, gasoline, electricity, dry-cleaning, etc. The customer can then choose one of these goods or services to purchase. Assume, for this example, that the customer has selects cellular telephone service. In step 502, the customer is provided with a list of providers for the chosen good or service and asked to choose a provider.
(78) In step 504, the display screen displays virtual cards of various monetary options, which are offered, for the chosen good or service provider (which in this example is AIRTOUCH).
(79) In step 506, the display screen displays rate information, if desired by the customer. The customer is given the option of viewing rates by touching the VIEW RATES option 714 shown in
(80) In
(81) If the customer changes his or her mind, and wishes to purchase a card with a different value, the customer can return to the screen shown in
(82) In step 512, payment is received from the customer. After payment has been received and verified, Easywireless.com server 102 retrieves the requested PIN(s) from PIN database 112 and transmits the requested PIN(s) to the client terminal in step 514. The PIN(s) can be displayed on the screen as shown in
(83)
(84)
(85) Easywireless.com server 102 essentially serves as a PIN warehouse. The operators of Easywireless.com server 102 can obtain PINs from various providers in two ways. A first method of obtaining PINs from providers is as follows. PINs are purchased by Easywireless.com directly from the providers. For example, a $10 pre-paid PIN could be purchased from AIRTOUCH at a wholesale price of $8 and then stored in PIN database 112. In other words, AIRTOUCH sells the PIN to Easywireless.com for $8, and Easywireless.com resells the PIN to the customer for $10. Thus, Easywireless.com would make a $2 profit on the sale of the PIN.
(86) A second method of obtaining and selling PINs is as follows. The PINs are received from various providers at no cost to Easywireless.com. Easywireless.com serves as a warehouse for the PINs. After a PIN is sold to a customer, the payment received from the customer is forwarded to the appropriate provider, minus a commission for Easywireless.com.
(87) Another feature of the system is the ability to offer discounts. Easywireless.com server 102 can send advertisements and discount offers to the client terminals. Service providers can offer discounts such as PRE-PAID CELLULAR SERVICE AT 30 CENTS PER MINUTE. 10 CENTS PER MINUTE CHEAPER THAN NORMAL RATE! Providers will be happy to provide such discounts for pre-paid purchase because there are many advantages to selling pre-paid service. The provider does not have to worry that the customer won't pay his bills, because the calls are pre-paid. The provider does not have to keep track of billing addresses and mailing bills to the customer. The provider gets the money before the call is even made, and thus earns interest on the money. Because of these advantages of pre-paid service, it is often advantageous to providers to offer a discount for pre-paid purchases.
(88)
(89)
(90) If the user's username and password is recognized as being a registered user, then the purchase order data entry screen is displayed as shown in
(91) Payment method field 1404 displays the payment method and details, such as credit card information, or ACH wallet, etc. Current balance field 1406 displays whether the user has an outstanding balance: i.e. either the dealer owes money to Easywireless.com or has a certain amount of credit remaining.
(92) Table 1407 allows the dealer to many individual purchase orders. Each row of the table represents one individual purchase order. For example, the dealer can order ten $50 cards from AT&T, and 20 $100 cards from Sprint, and 15 $75 cards from Verizon Wireless, etc.
(93) Carrier column 1408 allows the user to select a unique carrier for each purchase order of PINs. Region column 1410 allows the user to select a particular region for each separate purchase order of PINs. Card type column 1412 allows the user to select a particular card monetary denomination for each separate purchase order of PINs. Qty column 1414 allows the user to select a quantity of cards to purchase for each separate purchase order of PINs. Wholesale column 1416 displays the wholesale per-PIN price for each separate purchase order of PINs.
(94) Totals column 1418 displays the total price paid for each purchase order. Totals column 1418 field is simply the wholesale column price 1416 multiplied by the Qty column 1414. Add/Del column 1420 allows the dealer to confirm the addition of each individual purchase order, or to change his mind and delete an entered order. Grand total field 1421 displays the sum of all the individual totals from each individual purchase order.
(95) As an example of an individual purchase order, the first row shown in
(96) If the user wishes to cancel his or her order, the user can click Cancel Order button 1426. If the user wishes to update the price totals shown in column 1418 and field 1421, the user can hit the Update Order button 1422. If the user is satisfied with what he or she has entered, then the user can proceed with the order by clicking the Update Order button 1426. This brings up the Purchase Order Summary screen displayed in
(97) The Purchase Order Summary screen shown in
(98) If the user is satisfied with the purchase order summary displayed in
(99) If the user wishes to pay by an alternate credit card, he or she can click Pay With Alternate Credit Card 1504. This takes the user to the Alternate Credit Card Payment screen shown in
(100)
(101)
(102) Every PIN in PIN database 112 has its own associated record, as shown in
(103) Another alternative feature is selling PINs for bundled goods and services. Instead of buying a PIN for a specific service, such as cellular telephone service, the customer buys a PIN for general bundled account. This PIN could allow the customer to purchase magazines, newspapers, place telephone calls, or ride the subway all using the same PIN.
(104) In addition to selling individual pre-paid goods and services, Easywireless.com could sell bundled pre-paid goods and services.
(105) Referring next to
(106) The client terminals 2006.sub.a-d are configured to operate in much the same way as the client terminals 106, 108, 110 described with reference to
(107) From the perspective of the server 2002, the host connection manager 2020 appears as a client terminal (e.g., as one of the client terminals 106, 108, 110). As a consequence, the host connection manager 2020, according to some embodiments, interacts directly with the server 2002 to retrieve prepaid PIN information on demand in the same way as the client terminals 106, 108, 110 interact with the server 102. Although certainly not required, in one embodiment, the server 2002 replenishes its inventory by receiving PINs from service providers, which may be carried out in an automated manner (e.g., whenever the inventory falls below a low-watermark).
(108) The host connection manager 2020, however, does not interact with clerks or sales personnel. Instead, personnel access the client terminals 2006.sub.a-d, and the client terminals 2006.sub.a-d interact with the host connection manager 2020 in order to initiate the retrieval of PIN information.
(109) In an exemplary embodiment, the terminal network 2012 is a private network (e.g., a local area network LAN or wide area network (WAN)), which is indirectly coupled to the network 2004 via the host connection manager 2020, but this is certainly not required. In other embodiments for example, the terminal network 2012 and the network 2004 may be parts of a larger network such as the Internet.
(110) Advantageously, the system architecture of the present embodiment accommodates client terminals 2006.sub.a-d, which communicate according to legacy communication protocols that are incompatible with the communication protocols utilized by the server 2002. Specifically, the host connection manager 2020 may be configured to communicate with the client terminals 2006.sub.a-d according to the communication protocol utilized by the client terminals 2006.sub.a-d, and communicate with the server 2002 according to the communication protocol utilized by the server 2002. As a consequence, a merchant with a collection of legacy client terminals may implement a single host connection manager instead of upgrading the legacy client terminals and/or the infrastructure of the associated terminal network.
(111) As one of ordinary skill in the art will appreciate, another host connection manager may be implemented in parallel with the host connection manager 2020 to provide redundancy in the event the host connection manager 2020 fails.
(112) As shown in
(113) Specifically, if the server 2002, is unable to fulfill a request for a PIN originating from one of the client terminals 2006.sub.a-d (e.g., because it has insufficient inventory), the server 2002 acts as a client and requests the PIN from the balancing server 2008. If the balancing server has the requested PIN, it sends it to the server 2002. Similarly, if the balancing server 2008 is unable to fulfill a request for a PIN originating from the other client terminals it supports, the balancing server acts as a client and requests the PIN from the server 2002. If the server 2002 has the requested PIN, it sends it to the balancing server 2008. It should be recognized that PINs may also be sent and received in batches instead of a single PIN at a time.
(114) In an alternative embodiment, in advance of (or asynchronous with) any requests for PINs from client terminals (or host connection managers), the servers 2002, 2008 will contact each other if their respective inventory of PINs (e.g. an inventory of PINs corresponding to a particular offering of a product/service) falls below a low watermark and each respective server will send PINs to the other server in response if it has an inventory of PINs above a high watermark. The quantity of PINs that differentiates the low watermark from the high watermark may vary depending upon the profile of each server (e.g., the historical volume of PINs each server moves).
(115) The present invention additionally contemplates that there may be several merchants with legacy infrastructure, and to accommodate such an occurrence, a separate host connection manager may be implemented to communicate with such legacy devices and/or networks.
(116) As shown in
(117) Referring next to
(118) In general, the terminal communication manager 2220 is configured to communicate with (at the direction of the HCM controller 2210) client terminals (e.g., client terminals 2006.sub.a-d) according to the communication protocols utilized by the client terminals. Similarly, the server communication manager 2230 is configured to communicate with the server 2002 (at the direction of the HCM controller 2210) according to the communication protocols utilized by the server 2002.
(119) According to an exemplary embodiment, the PIN cache 2240 is configured to store PINs for retrieval upon request by a client terminal (e.g., any of the client terminals described with reference to
(120) The interoperation of the HCM controller 2210 with the terminal communication manager 2220, the PIN cache 2240 and the server communication manager 2230 is described with reference to
(121) As shown in
(122) As shown in
(123) As one of ordinary skill in the art will appreciate, PINs may be associated with offerings (e.g., product/service, region, denomination) in a variety of ways, and hence, PINs may be requested in a variety of ways. In some embodiments, each PIN is identified and requested by a stock keeping unit (SKU) and/or universal product code (UPC), and each SKU or UPC summarizes an offering of a service/product, a region (i.e., that the service/product is available or applicable), the provider (e.g., carrier) of the product/service and/or the denomination (e.g., monetary value). As a consequence, a user's selection may include a particular product/service, a provider and/or denomination, and in the exemplary embodiment, the user's client terminal 2006.sub.a-d associates an SKU or UPC with the user's selection. The client terminal 2006.sub.a-d then requests a PIN by its corresponding SKU or UPC number.
(124) Referring again to
(125) If the attempt to establish a communication link with the server 2002 is successful (Step 2322), the HCM controller 2210 sends a request (via the server communication manager 2230) to the server 2002 for the PIN corresponding to the PIN requested by the client terminal (at Step 2308). If the host connection manager 2200 is unable to receive the PIN from the server 2002 (Step 2328), an error message is sent to the client terminal indicating that the requested PIN is unavailable (Step 2324). The host communication manager 2200 then aborts the present request and receives another request for a PIN from a client terminal (Step 2308).
(126) If the host connection manager 2200 successfully receives the requested PIN from the server 2002 (Step 2328), the HCM controller 2210 optionally generates a formatted receipt in accordance with formatting limitations of the client terminal (Step 2314), and sends the PIN and optional formatted receipt (via the terminal communication manager 2220) to the client terminal (Step 2316).
(127) One of ordinary skill in the art will appreciate that the host connection manager 2200 may be readily adapted to operate without a PIN cache 2240. In such an embodiment, when a request from a client terminal for an offering of a product and/or service (e.g., of a particular monetary value) is received at the host connection manager 2200, the host connection manager 2200 requests the PIN from the server 2002, and the server 2002 provides the PIN, on demand, to the host connection manager 2200. In turn, the host connection manager 2200 provides the PIN to the client terminal.
(128) Referring next to
(129) The servers 2402.sub.a-f are configured to interoperate with client terminals 106, 108, 110, and/or the host connection managers 2110.sub.1-M (not shown in
(130) In the exemplary embodiment, any client terminal 106, 108, 110, and/or any of the host connection managers 2020, 2110.sub.1-M is able to request a PIN from any one of the servers 2402.sub.a-f. In this way, if one or more of the servers 2402.sub.a-f go off-line (e.g., for maintenance or because of an event causing a failure), another one of the servers 2402.sub.a-f is available to fulfill a request for a PIN. In one embodiment, each of the servers 2402.sub.a-f is located in a different geographic location (e.g., mutually separated by more than a hundred miles) so that if a catastrophic event (e.g., earthquake, tornado, hurricane or blizzard) occurs at one or more locations, servers remotely located from the event are available to fulfill client terminal transaction requests. Such spatial separation, however, is not required to provide an increase in reliability over other architectures.
(131) In addition to providing an increase in reliability over single-server systems, the exemplary cooperative inventory system is also configured to reduce the cost of maintaining an inventory over one or more servers. Specifically, the hub 2404 coordinates the total inventory of PINs so that each of the servers 2402.sub.a-f has a sufficient, but not an excess amount, of PINs. In this way, the total cost of maintaining an inventory to meet demands of users is reduced. For example, in a system with independently operated servers (i.e., without a hub), each server has to maintain an amount of float (i.e., an extra amount of PINs to prevent inventory depletion) to assure the server is able to effect sales (e.g., when there is an unexpected peak period). With the exemplary system, the overall amount of float, and hence, cost of goods, is reduced.
(132) In addition, the exemplary system also reduces communication costs with respect to alternative multi-server embodiments without a hub 2402. Specifically, the amount of communication required in a multi-server system without a hub 2404 to synchronize PIN databases (e.g., so the same PIN does not get distributed to more than one user) and customer databases (e.g., so a merchant does not exceed their credit limit) is substantially higher than in the exemplary system. This is because the hub 2404, as described further herein, is able to operably synchronize its databases and databases of the servers 2402.sub.a-f without each server having to communicate updates with each of the other servers.
(133) Referring next to
(134) The dealer database 2510 includes pertinent identifying information about the dealer and information about any accounts the dealer has established (e.g., debit and/or credit accounts). The server 2402 of the present embodiment includes a spoke manager server 2528 which is configured to request inventory from the hub 2404, return inventory to the hub 2404, synchronize database information between the server 2402 and the hub 2404 and inform the hub 2404 about transactions.
(135) Also shown is a network communication manager 2530, which is configured to communicate with client terminals 106, 108, 110 and/or host connection managers 2020, 2110.sub.1-M in order to provide PINs in response to PIN requests and receive other information including, for example, dealer information, client terminal information and advertising information as previously described.
(136) Referring next to
(137) Also shown is a server communication manager 2630 which is configured to request inventory from the servers 2402.sub.a-f, send inventory to the servers, substantially synchronize databases of the hub 2404 and the servers 2402.sub.a-f and send and receive other information as described further herein.
(138) In the exemplary embodiment, the centralized databases 2608 in the hub 2404 are updated on an ongoing basis as the hub 2404 receives new information from each of the servers 2402.sub.a-f. For example, each of the servers 2402.sub.a-f provides updates to the hub 2404 about any new sales to particular dealers, the particular PINs sold, client sales information, customer record information, provider records and advertising record information.
(139) In addition, the hub 2404 periodically propagates at least a portion of the information it receives out to each of the servers 2402.sub.a-f In this way, the databases at each of the servers 2402.sub.a-f and the hub 2404 are at least loosely synchronized. It should be recognized that the databases at each of the servers 2402.sub.a-f and the hub 2404 need not be perfectly synchronized for the system to operate, but it is beneficial to maintain a sufficient amount of synchronization to prevent system abuses (e.g., dealers exceeding purchasing limits by interacting with multiple servers in a short period of time).
(140) One of ordinary skill in the art will appreciate that the server communication manager 2630 may be realized by a combination of hardware and software to carry out the operations described herein (e.g., the memory 2614 may contain executable code which is carried out by the CPU. 2618 in connection with well-known hardware to provide input/output functionality).
(141) Referring next to
(142) Once the server 2402 is online, the server is able to receive a request for a PIN from a client terminal (or a host connection manager) (Step 2708). If the server's 2402 inventory of PINs includes the requested PIN (Step 2710), the PIN is retrieved from inventory and sent to the client terminal (Steps 2712, 2726). If the server 2402 does not have the requested PIN in its inventory (Step 2710), and the server 2402 has a communication link with the hub 2404 (Step 2714), the server 2402 sends a request to the hub 2404 for the requested PIN (Step 2722). If the server 2402 does not have a communication link with the hub 2404, the server 2402 attempts to make a connection with the hub 2404 (Step 2716).
(143) If the server 2402 successfully establishes a communication link with the hub 2404 (Step 2718), then the server 2402 sends a request for the PIN to the hub 2404 (Step 2722). If the server 2402 is unable to establish a communication link with the hub 2404 (Step 2718), the server 2402 returns an error message to the client terminal to inform the user of the failed attempt to fulfill the user's request (Step 2720). If the server 2402 receives a PIN from the hub 2404 in response to its request (Step 2724), the server sends the PIN to the client terminal (Step 2726).
(144) In the exemplary embodiment, the server 2402 periodically sends database information to the hub 2404 to update the hub's central databases 2608 (Step 2728). In this way, the hub 2404 is able to update its central databases 2608 and propagate the updated information to other servers.
(145) As shown in
(146) In the exemplary embodiment, if the server 2402 is going offline (e.g., for maintenance)(Step 2738), the server 2402 may send its inventory of PINs to the hub 2404 (Step 2740). As discussed, while the server 2402 is offline, client terminals are able to contact other servers that are online to receive PINs. When the server 2402 is brought back online (Step 2702), the server 2402 requests and receives PINs from the hub 2404 (Steps 2704, 2705) so that the server 2402 is again ready to receive requests for PINs from client terminals.
(147) If the server's 2402 inventory is low (e.g., one more SKUs or UPC codes drops to a low-watermark)(Step 2742), the server 2402 requests additional PINs from the hub 2404 (Step 2704), and if the hub 2404 fulfills the request, the server 2402 receives and stores the PINs (Step 2706).
(148) Referring next to
(149) As previously discussed, when one of the servers' 2402.sub.a-f inventory of a particular variety of PIN is low (e.g., below a low-watermark), the server sends a request for a PIN (e.g., a request for one or more PINs with a SKU or UPC matching the variety sought), which is received by the hub 2404 (Step 2804). If the hub 2404 has an inventory of PINs matching the requested variety in the central PIN database 2612 (Step 2806), the hub 2404 retrieves a quantity of the requested PINs from the central PIN database 2612 (Step 2808) and sends the quantity of PINs to the requesting server (Step 2822). If the hub 2404 has an insufficient inventory of PINs to fulfill the requesting server's request (Step 2806), and the hub 2404 does not have a communication link established with another server (Step 2810), the hub 2404 attempts to make a connection with another server (Step 2814). If the hub 2404 is unable to make a connection with one or more of the other servers (Step 2814), the hub 2404 sends a message back informing the requesting server that its request cannot be fulfilled (Step 2816).
(150) If the hub 2404 successfully makes a connection with one or more other servers (Step 2814), the hub 2404 sends a request to the other server(s) for one or more PINs of the variety sought by the requesting server (Step 2818) (e.g., by requesting one or more PINs with the SKU number corresponding to the variety sought). If the hub 2404 does not receive PINs of the variety sought (e.g., because the other server(s) do not have available inventory of the variety of PIN sought or because communications fail), hub 2404 sends a message back informing the requesting server that its request cannot be fulfilled (Step 2816). When the hub 2404 receives PINs of the variety sought from one or more of the other servers (Step 2820), the hub 2404 provides at least a portion of the PINs it received to the requesting server (Step 2822).
(151) It should be recognized that the hub 2404 may attempt to connect with just one server or any number of the servers 2402.sub.a-f in parallel when it does not have an inventory of PINs matching the variety requested by another server. If several servers 2402.sub.a-f are contacted in parallel, the hub 2404 may request that each of the servers 2402.sub.a-f contribute a particular number of PINs (e.g., an excess number of PINs above their high-watermark) or a percentage of their inventory of the requested variety.
(152) In the exemplary embodiment, the hub 2404 receives information on an ongoing basis from each the servers 2402.sub.a-f (Step 2824). This information received from each of the servers 2402 is used by the hub 2404 to update its central databases 2608 (Step 2826). This information may include, without limitation, one or more of the following: the particular PINs distributed, number of PINs by variety (e.g., by SKU, UPC, provider and/or denomination) that each server has distributed, the number and type of advertisements presented (if any), as well as a summary and detail of transactions made with each dealer, each client terminal and each customer. It should be recognized that such information may be received from the each of the servers 2402.sub.a-f asynchronously (i.e., each of the servers 2402.sub.a-f may send batches of updates periodically based on a time or activity basis).
(153) As the hub 2404 receives information and updates its central databases (Steps 2824, 2826), it periodically sends update information to the servers 2402.sub.a-f (Step 2828). In the exemplary embodiment, the update information sent from the hub 2404 substantially synchronizes the central databases 2608 with the corresponding server databases 2508. As previously discussed, the server databases 2508 at each of the servers 2402.sub.a-f and the central databases 2608 at the hub 2404 need not be perfectly synchronized for the system to operate, but it is beneficial to maintain a sufficient amount of synchronization to prevent system abuses.
(154) If the hub 2404 is going offline (Step 2830) (e.g., for maintenance), in the exemplary embodiment, the hub 2404 distributes its inventory of PINs to one or more of the servers 2402.sub.a-f
(155) (Step 2832). In one embodiment, when the hub is back online (Step 2834), the hub reclaims from the servers 2402.sub.a-f at least a portion of the inventory it previously dispersed (Step 2836). For example, the hub 2404 may reclaim only the inventory from the servers 2402.sub.a-f that is above each server's respective high-watermark. In other embodiments, however, the hub 2404 does not resynchronize the inventory of PINs when it is back online.
(156) While the invention herein disclosed has been described by means of specific embodiments and applications thereof, numerous modifications and variations could be made thereto by those skilled in the art without departing from the scope of the invention set forth in the claims. For example, one of ordinary skill in the art will readily appreciate that the host connection manager 2200 and hub 2402 depicted in