IP Library Granted Patent US 11,899,686
Granted Patent B2
US 11,899,686 · App. 17/649,260 · Granted Feb 13, 2024

Method and system for managing bi-temporal data

Inventor: Eugene Eltsufin (Jersey City, NJ)
Assignee: JPMORGAN CHASE BANK, N.A.
G06F16/27G06F9/54G06F16/2358
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 11,899,686
App. No.
17/649,260
Granted
Feb 13, 2024
Kind
B2
Abstract

A method for facilitating usage and storage of bi-temporal data is disclosed. The method includes receiving, via an application programming interface, an update request, the update request relating to an update of a data object with a new data object; identifying a builder pattern that corresponds to the data object based on a data type of the data object; automatically generating, by using the identified builder pattern, a delta object based on the request, the delta object relating to a difference between the data object and the new data object; associating the delta object with an axial value, the axial value including a reported time and an effective time; and persisting the delta object and the corresponding association as an event that represents the difference between the data object and the new data object.

Claims (65)

1. A method for facilitating usage and storage of bi-temporal data, the method being implemented by at least one processor, the method comprising:

receiving, by the at least one processor via an application programming interface, at least one update request, the at least one update request relating to an update of at least one data object with a new data object;

identifying, by the at least one processor, at least one builder pattern that corresponds to the at least one data object based on a data type of the at least one data object,

wherein the at least one builder pattern relates to a design pattern that separates construction of the at least one data object from representation of the at least one data object;

automatically generating, by the at least one processor using the identified at least one builder pattern, at least one delta object based on the at least one request, the at least one delta object relating to a difference between the at least one data object and the new data object;

associating, by the at least one processor, the at least one delta object with at least one axial value, the at least one axial value including a reported time and an effective time; and

persisting, by the at least one processor, the at least one delta object and the corresponding association as an event that represents the difference between the at least one data object and the new data object.

2. The method of claim 1 , wherein the data type of the at least one data object includes at least one from among a list data type, a set data type, and a dictionary data type.

3. The method of claim 1 , wherein the reported time relates to a first time when a change of state is known in a database, and wherein the effective time relates to a second time when the change of state occurred.

4. The method of claim 1 , further comprising:

receiving, by the at least one processor via the application programming interface, at least one state request, the at least one state request relating to a past state of the at least one data object for a requested time;

identifying, by the at least one processor using the at least one axial value, at least one past event that is proximate in time to the requested time, the at least one past event corresponding to the at least one data object; and

reconstructing, by the at least one processor, the past state of the at least one data object by using the identified at least one past event and the at least one axial value.

5. The method of claim 4 , further comprising:

generating, by the at least one processor, the past state of the at least one data object based on a result of the reconstructing; and

transmitting, by the at least one processor via the application programming interface, the generated past state in response to the at least one state request.

6. The method of claim 1 , further comprising:

determining, by the at least one processor, whether at least one syncing criterion is met, the at least one syncing criterion relating to a predetermined sync schedule;

automatically generating, by the at least one processor, at least one sync on an object write operation when the at least one syncing criterion is met; and

initiating, by the at least one processor, the object write operation.

7. The method of claim 6 , wherein the at least one sync relates to a full state event that acts as a checkpoint in reconstructing a past state.

8. The method of claim 6 , wherein the at least one syncing criterion includes at least one from among a time-based syncing criterion and an event-based syncing criterion.

9. The method of claim 6 , further comprising:

receiving, by the at least one processor via a graphical user interface, at least one new syncing criterion; and

updating, by the at least one processor, the predetermined sync schedule based on the at least one new syncing criterion.

10. A computing device configured to implement an execution of a method for facilitating usage and storage of bi-temporal data, the computing device comprising:

a processor;

a memory; and

a communication interface coupled to each of the processor and the memory,

wherein the processor is configured to:

receive, via an application programming interface, at least one update request, the at least one update request relating to an update of at least one data object with a new data object;

identify at least one builder pattern that corresponds to the at least one data object based on a data type of the at least one data object,

wherein the at least one builder pattern relates to a design pattern that separates construction of the at least one data object from representation of the at least one data object;

automatically generate, by using the identified at least one builder pattern, at least one delta object based on the at least one request, the at least one delta object relating to a difference between the at least one data object and the new data object;

associate the at least one delta object with at least one axial value, the at least one axial value including a reported time and an effective time; and

persist the at least one delta object and the corresponding association as an event that represents the difference between the at least one data object and the new data object.

11. The computing device of claim 10 , wherein the data type of the at least one data object includes at least one from among a list data type, a set data type, and a dictionary data type.

12. The computing device of claim 10 , wherein the reported time relates to a first time when a change of state is known in a database, and wherein the effective time relates to a second time when the change of state occurred.

13. The computing device of claim 10 , wherein the processor is further configured to:

receive, via the application programming interface, at least one state request, the at least one state request relating to a past state of the at least one data object for a requested time;

identify, by using the at least one axial value, at least one past event that is proximate in time to the requested time, the at least one past event corresponding to the at least one data object; and

reconstruct the past state of the at least one data object by using the identified at least one past event and the at least one axial value.

14. The computing device of claim 13 , wherein the processor is further configured to:

generate the past state of the at least one data object based on a result of the reconstructing; and

transmit, via the application programming interface, the generated past state in response to the at least one state request.

15. The computing device of claim 10 , wherein the processor is further configured to:

determine whether at least one syncing criterion is met, the at least one syncing criterion relating to a predetermined sync schedule;

automatically generate at least one sync on an object write operation when the at least one syncing criterion is met; and

initiate the object write operation.

16. The computing device of claim 15 , wherein the at least one sync relates to a full state event that acts as a checkpoint in reconstructing a past state.

17. The computing device of claim 15 , wherein the at least one syncing criterion includes at least one from among a time-based syncing criterion and an event-based syncing criterion.

18. The computing device of claim 15 , wherein the processor is further configured to:

receive, via a graphical user interface, at least one new syncing criterion; and

update the predetermined sync schedule based on the at least one new syncing criterion.

19. A non-transitory computer readable storage medium storing instructions for facilitating usage and storage of bi-temporal data, the storage medium comprising executable code which, when executed by a processor, causes the processor to:

receive, via an application programming interface, at least one update request, the at least one update request relating to an update of at least one data object with a new data object;

identify at least one builder pattern that corresponds to the at least one data object based on a data type of the at least one data object,

wherein the at least one builder pattern relates to a design pattern that separates construction of the at least one data object from representation of the at least one data object;

automatically generate, by using the identified at least one builder pattern, at least one delta object based on the at least one request, the at least one delta object relating to a difference between the at least one data object and the new data object;

associate the at least one delta object with at least one axial value, the at least one axial value including a reported time and an effective time; and

persist the at least one delta object and the corresponding association as an event that represents the difference between the at least one data object and the new data object.

20. The storage medium of claim 19 , wherein the executable code further causes the processor to:

receive, via the application programming interface, at least one state request, the at least one state request relating to a past state of the at least one data object for a requested time;

identify, by using the at least one axial value, at least one past event that is proximate in time to the requested time, the at least one past event corresponding to the at least one data object; and

reconstruct the past state of the at least one data object by using the identified at least one past event and the at least one axial value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2022
From: ELTSUFIN, EUGENE
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058813/0244 →
Continuity (1)
Related Publication 20230244692A1 · Aug 3, 2023