IP Library Granted Patent US 10,567,504
Granted Patent B2
US 10,567,504 · App. 15/826,620 · Granted Feb 18, 2020

Protecting in-flight transaction requests

Inventors: Jose E. Garza (Teddington, GB); Stephen J. Hobson (Hampton, GB)
Assignee: International Business Machines Corporation
H04L67/1095H04L67/2842H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,567,504
App. No.
15/826,620
Granted
Feb 18, 2020
Kind
B2
Abstract

The subject matter described herein relates to protecting in-flight transaction requests, where a client device is connected via at least two application servers to a backend server device that is capable of processing redundant transaction requests originated by the client device. A first instance of a transaction request identified by a transaction identifier is received at the backend server device. The first instance of the transaction request is processed and a transaction response is sent to the client device. The transaction response identified by the transaction identifier is saved in a cache. If a subsequent instance of the transaction request is received, the cached transaction response is sent to the client device.

Claims (52)

1. A computer-implemented method for protecting in-flight transaction requests, the method carried out at a backend computing server, comprising:

by a processor of a backend server device capable of processing two or more identical redundant instances of a transaction request, originated by a client device, that are received via at least two application servers:

receiving a first instance of the transaction request identified by a transaction identifier;

processing the first instance of the transaction request and sending a transaction response to the client device;

saving the transaction response identified by the transaction identifier in a cache; and

if a subsequent instance of the transaction request identified by the transaction identifier that identified the first instance of the transaction request is received, sending the cached transaction response to the client device.

2. The computer-implemented method of claim 1 , further comprising identifying the first instance of the transaction request by determining that the transaction identifier for the two or more identical redundant instances of the transaction request is not already referenced in the cache.

3. The computer-implemented method of claim 1 , further comprising adding a reference comprising the transaction identifier of the first instance of the transaction request to the cache indicating that the first instance of the transaction request having the transaction identifier is currently being processed.

4. The computer-implemented method of claim 1 , further comprising identifying the subsequent instance of the transaction request by determining that the transaction identifier for the subsequent transaction request is already referenced in the cache.

5. The computer-implemented method of claim 1 , further comprising, after receiving the subsequent instance of the transaction request:

determining whether the transaction identifier for the first instance of the transaction request is referenced in the cache and whether the transaction response is saved in the cache; and

in response to determining that the transaction identifier for the first instance of the transaction request is referenced in the cache and that the transaction response is not saved in the cache, storing a reply indicator in the cache indicating that the cached transaction response is to be sent in reply to the subsequent instance of the transaction request in response to completion of processing of the first instance of the transaction request.

6. The computer-implemented method of claim 5 , further comprising, in response to the completion of the processing of the first instance of the transaction request:

determining whether the reply indicator associated with the transaction identifier of the first instance of the transaction request is stored in the cache; and

in response to determining that the reply indicator associated with the transaction identifier of the first instance of the transaction request is stored in the cache, sending the cached transaction response in reply to the subsequent instance of the transaction request.

7. The computer-implemented method of claim 1 , further comprising:

deleting the transaction response from the cache in response to determining that a predefined time period has expired; and

determining, in response to deleting the transaction response according to the expiration of the predefined time period, that the subsequent instance of the transaction request has not arrived indicating that at least one of the at least two application servers is down.

8. The computer-implemented method of claim 1 , where the first instance of the transaction request further comprises an expiration time provided as metadata in the transaction request, and where processing the first instance of the transaction request comprises processing the first instance of the transaction request if the expiration time has not expired.

9. A computer readable storage medium storing instructions which, when executed on one or more programmed processors, carry out the method according to claim 1 , where the computer readable storage medium is not a transitory signal per se.

10. A computer-implemented method for protecting in-flight transaction requests, the method carried out at a computing client comprising:

by a processor of a client device connected via at least two application servers to a backend server device:

sending two or more identical redundant instances of a transaction request, each comprising a same transaction identifier, with each instance of the transaction request being sent via a different one of the at least two application servers;

receiving a first instance of a transaction response identified by the transaction identifier;

saving the first instance of the transaction response identified by the transaction identifier or a record of the first instance of the transaction response identified by the transaction identifier in a cache; and

if a subsequent instance of the transaction response is received, deleting the received subsequent instance of the transaction response.

11. The computer-implemented method of claim 10 , further comprising, by the processor of the client device:

generating the two or more identical redundant instances of the transaction request, with each instance comprising the same transaction identifier and a same expiration time provided as metadata in the transaction request.

12. The computer-implemented method of claim 10 , further comprising, by the processor of the client device:

deleting the saved first instance of the transaction response or the saved record of the first instance of the transaction response from the cache in response to expiration of a predefined time period; and

determining, in response to deleting the transaction response or the record according to the expiration of the predefined time period, that the subsequent instance of the transaction response has not arrived indicating that at least one of the at least two application servers is down.

13. The computer-implemented method of claim 10 , where the processor of the client device sending the two or more identical redundant instances of the transaction request comprises the processor of the client device:

sending three or more redundant transaction request instances, where in the event that one of the at least two application servers fails during delivery of the three or more redundant transaction request instances to the backend server device, transaction responses are received from the backend server device for two or more of the three or more redundant transaction request instances to provide redundancy on transaction response delivery via the at least two application servers.

14. A system for protecting in-flight transaction requests at a backend computing server comprising:

a cache; and

a processor of a backend server device capable of processing two or more identical redundant instances of a transaction request, originated by a client device, that are received via at least two application servers, where the processor is programmed to:

receive a first instance of the transaction request identified by a transaction identifier;

process the first instance of the transaction request and send a transaction response to the client device;

save the transaction response identified by the transaction identifier in the cache; and

if a subsequent instance of the transaction request identified by the transaction identifier that identified the first instance of the transaction request is received, send the cached transaction response to the client device.

15. The system of claim 14 , where the processor is further programmed to identify the first instance of the transaction request by determining that the transaction identifier for the two or more identical redundant instances of the transaction request is not already referenced in the cache.

16. The system of claim 14 , where the processor is further programmed to add a reference comprising the transaction identifier of the first instance of the transaction request to the cache indicating that the first instance of the transaction request having the transaction identifier is currently being processed.

17. The system of claim 14 , where the processor is further programmed to identify the subsequent instance of the transaction request by determining that the transaction identifier for the subsequent transaction request is already referenced in the cache.

18. The system of claim 14 , where the processor is further programmed to, after receiving the subsequent instance of the transaction request:

determine whether the transaction identifier for the first instance of the transaction request is referenced in the cache and whether the transaction response is saved in the cache; and

in response to determining that the transaction identifier for the first instance of the transaction request is referenced in the cache and that the transaction response is not saved in the cache, store a reply indicator in the cache indicating that the cached transaction response is to be sent in reply to the subsequent instance of the transaction request in response to completion of processing of the first instance of the transaction request.

19. The system of claim 18 , where the processor is further programmed to, in response to the completion of the processing of the first instance of the transaction request:

determine whether the reply indicator associated with the transaction identifier of the first instance of the transaction request is stored in the cache; and

in response to determining that the reply indicator associated with the transaction identifier of the first instance of the transaction request is stored in the cache, send the cached transaction response in reply to the subsequent instance of the transaction request.

20. The system of claim 14 , where the processor is further programmed to:

delete the transaction response from the cache in response to determining that a predefined time period has expired; and

determine, in response to deleting the transaction response according to the expiration of the predefined time period, that the subsequent instance of the transaction request has not arrived indicating that at least one of the at least two application servers is down.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DOORDASH, INC.
Reel/Frame 057826/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2017
From: GARZA, JOSE E.; HOBSON, STEPHEN J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044254/0619 →
Continuity (1)
Related Publication 20190166194A1 · May 30, 2019