A communication system may include a set of devices that communicate via a communication network. Examples of the types of devices that may communicate via a communication network are too numerous to mention but include computer systems, retail sales terminals, appliances, instruments, display systems, information servers, service providers of various types, security systems, etc.
A communication transaction in a communication system may be a low latency communication transaction. A low latency communication transaction may be defined as a communication transaction in which a device transmits a request on a communication network and receives a response to the request via the communication network within a relatively short period of time after transmitting the request. A low latency communication transaction may be a communication transaction in which a response is generated by automated means, e.g. by a server or other automated system.
On the other hand, a communication transaction in a communication system may be a high latency communication transaction. A high latency communication transaction may be defined as a communication transaction in which a device transmits a request on a communication network and receives a response to the request via the communication network after a relatively long delay. A high latency communication transaction may be a communication transaction in which, for example, a response depends on the actions of a human being or requires communication via a network that is subject to a relatively long delays.
A communication system may be adapted to yield low latency communication transactions. One example of a communication system that is adapted to yield low latency communication transactions is a credit card authorization system that provides approval or disapproval of retail purchases. A provider of a credit card authorization system may expend large amounts of resources aimed at providing mechanisms that minimize the latency in approving credit card purchases.
A communication system that is adapted to yield low latency communication transactions may not readily accommodate high latency communication transactions. For example, a communication system that is adapted to provide low latency communication transactions may include a timeout error mechanism that limits an amount of time between a request and a corresponding response. A communication system that is adapted to provide low latency communication transactions may be modified to accommodate high latency communication transactions by making basic changes to its communication infrastructure, e.g. its timeout error mechanism. Unfortunately, such changes to a communication infrastructure may be expensive implement and may be prone to errors or may not be feasible in a communication system that is maintained by a number of different organizational entities.
Techniques for communication are disclosed that enable a low latency communication system to accommodate high latency communication transactions without substantial changes to its communication infrastructure. Communication according to the present teachings includes obtaining a set of information using a high latency communication transaction in response to a first attempt at a low latency communication transaction and completing a second attempt at the low latency communication transaction using the information.
Other features and advantages of the present invention will be apparent from the detailed description that follows.
The present invention is described with respect to particular exemplary embodiments thereof and reference is accordingly made to the drawings in which:
The device 22 records a set of parameters associated with the request 32a in a pending transaction log 60. The parameters recorded in the pending transaction log 60 include a set of parameters that identify the request 32a and a time-stamp associated with the request 32a. The parameters recorded in the pending transaction log 60 may include parameters contained in the request 32a. For example, if the request 32a is a credit card authorization request then the parameters contained in the request 32a and recorded in the pending transaction log 60 may include a merchant identifier and a credit card number and a dollar amount.
The device 22 responds to the request 32b by transferring a response 34b back to the device 20. The device 22 uses the information 50 that was not available in the device 22 at the time of the request 32a but that is now available in the pending transaction log 60 at the time of the request 32b in constructing the response 34b. The response 34b completes the second attempt at the low latency communication transaction 30.
Other examples of the low latency communication transaction 30 and the high latency communication transaction 40 are numerous. For example, the low latency communication transaction 30 may be an issuance of a boarding pass at a boarding pass machine in an airport and the high latency communication transaction 40 may be a purchase of travel insurance for the flight. The purchase of travel insurance may be prompted by the device 22. For example, the high latency communication transaction 40 may be an automated telephone call by the device 22 to the traveler obtaining the boarding pass. The telephone call may prompt the traveler to make an entry via their telephone keypad in order to purchase travel insurance.
In another example, the low latency communication transaction 30 may be an approval of a purchase of an expensive item from a merchant and the high latency communication transaction 40 may be a purchase of property insurance for that item. In yet another example, the low latency communication transaction 30 may be an approval of a retail purchase a merchant and the high latency communication transaction 40 may be an issuance of coupons or discounts or membership bonuses from another entity, e.g. a club or other organization.
The high latency communication transaction 40 may be associated with a security measure. For example, the high latency communication transaction 40 may be an identity theft or fraud check. Similarly, the high latency communication transaction 40 may be a background check for entry onto public transportation or purchase of a firearm. The high latency communication transaction 40 may be a risk analysis that involves a risk-management algorithm, cross-data checks, purchase history profile, etc.
The following sets forth an example embodiment in which the low latency communication transaction 30 is a credit card authorization. The pending transaction log 60 includes a set of entries each for logging a transaction that is pending in the device 22 while awaiting completion of a high latency communication transaction. The contents of an entry in the pending transaction log 60 may include the following fields.
TIMESTAMP
PURCHASER_ID
TRANSACTION_PARAMETERS
STATUS
The TIMESTAMP field contains a recorded timestamp for the first attempt at the corresponding pending transaction. For example, the TIMESTAMP field of the entry in the pending transaction log 60 that corresponds to the request 32a contains the recorded timestamp for the request 32a. The timestamp for the request 32a may be generated by the device 20 and included in the request 32a or may be generated by the device 22 when it receives the request 32a.
The PURCHASER_ID field contains a recorded identifier of a purchaser associated with the corresponding pending transaction. For example, the PURCHASER_ID field of the entry in the pending transaction log 60 that corresponds to the request 32a contains a credit card number carried in the request 32a.
The TRANSACTION_PARAMETERS field contains a recorded set of parameters associated with the corresponding pending transaction. For example, the TRANSACTION_PARAMETERS field of the entry in the pending transaction log 60 that corresponds to the request 32a contains the dollar amount and seller identification carried in the request 32a.
The STATUS field contains a recorded status associated with the corresponding pending transaction. For example, the STATUS field of the entry in the pending transaction log 60 that corresponds to the request 32a contains a “first attempt” indicator before the response 44 is received from the device 24 and contains the information 50 after the response 44 is received from the device 24.
At step 100, the device 22 searches the pending transaction log 60 for an entry that matches the authorization request. An entry in the pending transaction log 60 matches the authorization request if its PURCHASER_ID and TRANSACTION_PARAMETERS fields match the credit card number and dollar amount and seller identification carried in the authorization request and if its TIMESTAMP field is within T0 of the timestamp associated with the authorization request. For example, T0 may be 1 minute or 2 minutes.
If a match is not found at step 100, then at step 102 the device 22 logs the authorization request. The device 22 logs the authorization request by creating a new entry in the pending transaction log 60 and recording the credit card number and dollar amount and seller identification carried in the authorization request into the PURCHASER_ID and TRANSACTION_PARAMETERS fields of the new entry and writing the TIMESTAMP field of the new entry with a timestamp for the authorization request and writing the STATUS field of the new entry with the “first attempt” indicator. At step 104, the device 22 initiates a high latency communication transaction to obtain the information needed for proper completion of the of the authorization request.
At step 106, the device 22 completes the first attempt at the authorization request by transferring a response to the requester, e.g. the device 20. The response to the requester includes an indicator that the first attempt at the authorization request has not committed. For example, the response may include an “authorization pending” indicator, a “wait” indicator, or a “try again in 1 minute” indicator.
If a match is found at step 100, then at step 108 the device 22 completes the second attempt of the authorization request by reading the information needed to properly complete the authorization request from the STATUS field of the entry found at step 100.
The second attempt at an authorization request may be prompted by the device 22. For example, the high latency communication transaction at step 104 may be a telephone call to the credit card holder who caused the authorization request by presenting their credit card to a merchant. The telephone call may request that the credit card holder approve the purchase and may also advise the credit card holder to retry the authorization, e.g. by re-swiping their credit card. A credit card authorization may be regarded a low latency and a telephone call may be regarded as high latency because a credit card authorization request/response delay is normally a few seconds whereas obtaining an input from a credit card holder via a telephone call may take up to a minute or more.
The devices 20-24 may be embodied as computer systems, retail sales terminals, appliances, instruments, display systems, information servers, service providers of various types, security systems, communication devices including telephones, handheld devices, etc. The devices 20-22 each include a communication mechanism that enables communication via the communication infrastructure 100. The devices 22 and 24 each include a communication mechanism that enables communication with one another, e.g. via the communication infrastructure 100 or via some other communication infrastructure, e.g. a telephone network.
The foregoing detailed description of the present invention is provided for the purposes of illustration and is not intended to be exhaustive or to limit the invention to the precise embodiment disclosed. Accordingly, the scope of the present invention is defined by the appended claims.