IP Library › Granted Patent US 10,277,488
Granted Patent B2
US 10,277,488 · App. 15/260,941 · Granted Apr 30, 2019

System and method for management and recovery of multi-service web transactions

Inventors: Avraham Leff (Yorktown Heights, NY); James T Rayfield (Yorktown Heights, NY)
Assignee: International Business Machines Corporation
H04L43/0823H04L67/142H04L41/0654H04L67/02
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,277,488
App. No.
15/260,941
Granted
Apr 30, 2019
Kind
B2
Abstract

A method is provided, the method including initiating execution of a macro-transaction comprising a set of micro-transactions, wherein execution of a given micro-transaction is based at least on a set of prerequisites associated with the given micro-transaction; causing a pending state of a first micro-transaction to be stored on a database; executing the first micro-transaction; and updating the state of the first micro-transaction in the database based at least on a result returned in response to executing of the first micro-transaction. An apparatus and computer program product are also provided.

Claims (53)

1. A method comprising:

initiating execution of a macro-transaction comprising a set of micro-transactions, wherein each micro-transaction comprises a set of prerequisites, and wherein execution of a given micro-transaction is based at least on each prerequisite in the set of prerequisites associated with the given micro-transaction being satisfied;

causing a state of a first micro-transaction of the set of micro-transaction to be stored on a database to indicate that the first micro-transaction is waiting to be executed in response to at least one prerequisite in the set of prerequisites associated with the first micro-transaction not being satisfied;

causing a state of a second micro-transaction to be stored on the database to indicate the second micro-transaction is executing in response to determining that each prerequisite in the set of prerequisites associated with the second micro-transaction is satisfied;

updating the state of the second micro-transaction in the database based at least on a result returned in response to executing the second micro-transaction; and

determining whether the at least one prerequisite in the set of prerequisites associated with the first micro-transaction is satisfied based on the updated state of the second micro-transaction.

2. The method of claim 1 , wherein the set of prerequisites comprises at least one of:

an empty set; and

at least one prerequisite comprising a test corresponding to a state of at least one other micro-transaction in the set of micro-transactions such that execution of the given micro-transaction is executed in response to fulfillment of the test.

3. The method of claim 1 , wherein the result returned from executing the second micro-transaction comprises a promise indicating success, failure, or timeout.

4. The method of claim 3 , wherein updating the state of the second micro-transaction comprises:

in response to the returned result indicating success, causing the stored state of the second micro-transaction to be updated to indicate that the second micro-transaction was successfully executed.

5. The method of claim 3 , further comprising:

in response to the returned result indicating failure:

causing the stored state of the second micro-transaction to be updated to indicate that execution of the second micro-transaction failed; and

executing a respective compensating function for each micro-transaction in the set that has previously stored a success state in the database.

6. The method of claim 3 , further comprising:

in response to the returned result indicating timeout:

executing a probe function associated with the second micro-transaction to determine if the execution of the second micro-transaction either failed or succeeded, and wherein the updating the state of the second micro-transaction comprises updating the state based on the result of the probe function.

7. The method of claim 1 , wherein each micro-transaction corresponds to at least one of: a web-service call and a local call.

8. The method of claim 7 , wherein execution of at least one of the micro-transactions in the set invokes another macro-transaction.

9. The method of claim 1 , wherein each micro-transaction is a triple comprising: a do function for executing the micro-transaction; an undo function for compensating for execution of the micro-transaction; and a probe function for testing whether the micro-transaction was successfully executed after a timeout.

10. An apparatus comprising:

at least one processor; and

at least one non-transitory memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to:

initiate execution of a macro-transaction comprising a set of micro-transactions, wherein each micro-transaction comprises a set of prerequisites, and wherein execution of a given micro-transaction is based at least on each prerequisite in the set of prerequisites associated with the given micro-transaction being satisfied;

cause a state of a first micro-transaction of the set of micro-transaction to be stored on a database to indicate that the first micro-transaction is waiting to be executed in response to at least one prerequisite in the set of prerequisites associated with the first micro-transaction not being satisfied;

cause a state of a second micro-transaction to be stored the database to indicate the second micro-transaction is executing in response to determining that each prerequisite in the set of prerequisites associated with the second micro-transaction is satisfied;

cause the state of the second micro-transaction to be updated in the database based at least on a result returned in response to execution of the second micro-transaction; and

determine whether the at least one prerequisite in the set of prerequisites associated with the first micro-transaction is satisfied based on the updated state of the second micro-transaction.

11. The apparatus of claim 10 , wherein the set of prerequisites comprises at least one of:

an empty set; and

at least one prerequisite comprising a test corresponding to a state of at least one other micro-transaction in the set of micro-transactions such that execution of the given micro-transaction is executed in response to fulfillment of the test.

12. The apparatus of claim 10 , wherein the result returned from execution of the second micro-transaction comprises a promise indicating success, failure, or timeout.

13. The apparatus of claim 12 , wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus at least to:

cause the stored state of the second micro-transaction to be updated to indicate that the second micro-transaction was successfully executed in response to the returned result indicating success.

14. The apparatus of claim 12 , wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to:

in response to the returned result indicating failure:

cause the stored state of the second micro-transaction to be updated to indicate that execution of the second micro-transaction failed; and

execute a respective compensating function for each micro-transaction in the set that has a state previously stored in the database indicating successful execution of the micro-transaction.

15. The apparatus of claim 12 , wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus at least to:

in response to the returned result indicating timeout:

execute a probe function associated with the second micro-transaction to determine if the execution of the second micro-transaction failed or succeeded, and

cause the state of the second micro-transaction to be updated based on the result of the probe function.

16. The apparatus of claim 10 , wherein each micro-transaction corresponds to at least one of: a web-service call and a local call.

17. The apparatus of claim 16 , wherein execution of at least one of the micro-transactions in the set invokes another macro-transaction.

18. The apparatus of claim 16 , wherein each micro-transaction is a triple comprising: a do function for executing the micro-transaction; an undo function for compensating for execution of the micro-transaction; and a probe function for testing whether the micro-transaction was successfully executed after a timeout.

19. The apparatus of claim 16 , wherein the execution of the micro-transactions is performed according to a directed acyclic graph that is formed based on the set of prerequisites associated with each of the micro-transactions.

20. A computer program product for managing a macro-transaction, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a device to cause the device to:

initiate execution of the macro-transaction having a set of micro-transactions, wherein execution of a given micro-transaction is based at least on a set of prerequisites associated with the given micro-transaction;

cause a pending state of a second micro-transaction to be stored on a database;

execute the second micro-transaction; and

update the state of the second micro-transaction in the database based at least on a result returned in response to executing of the second micro-transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2016
From: LEFF, AVRAHAM; RAYFIELD, JAMES T
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039688/0415 →
Continuity (1)
Related Publication 20180077038A1 · Mar 15, 2018