IP Library Granted Patent US 10,503,525
Granted Patent B2
US 10,503,525 · App. 15/683,330 · Granted Dec 10, 2019

Apparatuses, methods and systems for persisting values in a computing environment

Inventor: David Kohn (Hamilton, NJ)
Assignee: REFINITIV US ORGANIZATION LLC
G06F9/4493G06F8/24G06F9/44521G06F16/2365G06F16/13G06F16/1756G06F16/27
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,503,525
App. No.
15/683,330
Granted
Dec 10, 2019
Kind
B2
Abstract

The present disclosure is directed to persisting values in a computing environment, particularly using computer programs that are configured to run on a virtual machine. An illustrative method includes first launching a computer program, preferably within the environment of a virtual machine. The method further includes loading a plurality of classes associated with the computer program into memory by way of a specially configured class loader. This class loader is configured to scan at least one class of classes loaded into memory for at least one persistence-annotated field within that class. The specially configured class loader is further configured to write byte code into a class that contains the at least one persistence-annotated field. The byte code that is added to the class is configured to cause a first object that is later instantiated from the at least one class to have the persistence-annotated field.

Claims (41)

1. A method for persisting values in a computing environment, comprising:

launching a computer program;

loading a plurality of classes associated with the computer program into memory via processor by way of a class loader that is configured to:

scan at least one class of said plurality of classes loaded into memory via processor for at least one persistence-annotated field within said at least one class, said at least one persistence-annotated field having a persistence annotation indicating that a data value associated with the annotated field is to be persisted;

write byte code into said at least one class containing said at least one persistence-annotated field via processor, said byte code causing a first object instantiated from said at least one class to have said at least one persistence-annotated field therein; and

instantiating said first object including said at least one persistence-annotated field.

2. The method of claim 1 , further comprising:

observing a change in a value of said at least one persistence-annotated field in said first object; and

notifying a persistence manager object of the change of the value of said at least one persistence-annotated field in said first object; and

storing an updated value of the persistence-annotated field in a data store associated with the persistence manager object.

3. The method of claim 2 , wherein the persistence manager object is instantiated the first time that the value of said at least one persistence-annotated field changes.

4. The method of claim 2 , wherein the first object calls a function in the persistence manager object to update the value of the persistence-annotated field in the data store.

5. The method of claim 4 , wherein the persistence manager object uses the persistence annotation as a key in a key value pair storing the updated value of the persistence-annotated field in the data store, and further wherein the updated value of the persistence-annotated field is used as the value in the key value pair.

6. The method of claim 2 , wherein the data store is a map.

7. The method of claim 6 , further comprising writing out the value of the persistence-annotated field stored in the map.

8. The method of claim 7 , wherein the value is written to a database.

9. The method of claim 1 , wherein the computer program is a Java Virtual Machine compliant computer program being executed from within a first running Java Virtual Machine instance.

10. The method of claim 1 , wherein the computer program is a Visual C#® computer program or a Python® computer program being executed from within a virtual machine in memory.

11. The method of claim 1 , wherein the computer program is a Kotlin® computer program, Groovy™ computer program, or a Clojure™ computer program being executed from within a virtual machine in memory.

12. An apparatus comprising a plurality of circuit modules, computer memory, and at least one processor configured and arranged to persist values in a computing environment, the circuit modules including:

a first circuit module configured and arranged to launch a computer program;

a second circuit module configured and arranged to load a plurality of classes associated with the computer program into memory by way of a class loader for modifying the code within at least one class of said plurality of classes having a persistence annotated field by:

scanning said at least one class of said plurality of classes loaded into memory for at least one persistence-annotated field within said at least one class, said at least one persistence-annotated field having a persistence annotation indicating that a data value associated with the annotated field is to be persisted;

writing byte code into said at least one class containing said at least one persistence-annotated field, said byte code causing a first object instantiated from said at least one class to have said at least one persistence-annotated field therein; and

a third circuit module configured and arranged to instantiate said first object including said at least one persistence-annotated field.

13. The apparatus of claim 12 , wherein the first object is configured to notify a persistence manager object of a change of the value of said at least one persistence-annotated field in said first object.

14. The apparatus of claim 13 , wherein said persistence manager object stores an updated value of said at least one persistence-annotated field in a data store associated with said persistence manager object.

15. The apparatus of claim 14 , wherein said persistence manager object is instantiated in response to the first object calling a function to notify the persistence manager.

16. The apparatus of claim 15 , wherein the persistence manager object is configured to use the persistence annotation as a key in a key value pair storing the updated value of the persistence-annotated field in the data store, and further wherein the updated value of the persistence-annotated field is used as the value in the key value pair.

17. The apparatus of claim 14 , wherein the data store is a map.

18. A processor-readable tangible non-transient medium storing a computer program for operating a system for persisting values in a computing environment, wherein the computer program comprises:

instructions for launching a computer application;

instructions for loading a plurality of classes associated with the computer application into memory by way of a class loader, said class loader being configured to:

scan at least one class of said plurality of classes loaded into memory for at least one persistence-annotated field within said at least one class, said at least one persistence-annotated field having a persistence annotation indicating that a data value associated with the annotated field is to be persisted;

write byte code into said at least one class containing said at least one persistence-annotated field, said byte code causing a first object instantiated from said at least one class to have said at least one persistence-annotated field therein; and

instructions for instantiating said first object including said at least one persistence-annotated field.

19. The processor-readable tangible non-transient medium of claim 18 , wherein the first object is instructed to notify a persistence manager object of a change of the value of said at least one persistence-annotated field in said first object.

20. The processor-readable tangible non-transient medium of claim 19 , wherein said persistence manager object is instructed to store an updated value of said at least one persistence-annotated field in a data store associated with said persistence manager object.

21. The processor-readable tangible non-transient medium of claim 20 , wherein said persistence manager object is instructed to be instantiated in response to the first object calling a function to notify the persistence manager object.

22. The processor-readable tangible non-transient medium of claim 21 , wherein the persistence manager object is instructed to use the persistence annotation as a key in a key value pair storing the updated value of the persistence-annotated field in the data store, and further wherein the updated value of the persistence-annotated field is used as the value in the key value pair.

23. The processor-readable tangible non-transient medium of claim 20 , wherein the data store is a map.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2021
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS NOTES COLLATERAL AGENT
To: REFINITIV US ORGANIZATION LLC (F/K/A THOMSON REUTERS (GRC) INC.)
Reel/Frame 055174/0811 →
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2021
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: REFINITIV US ORGANIZATION LLC (F/K/A THOMSON REUTERS (GRC) INC.)
Reel/Frame 055174/0836 →
CHANGE OF NAME Recorded Mar 22, 2019
From: THOMSON REUTERS (GRC) LLC
To: REFINITIV US ORGANIZATION LLC
Reel/Frame 048676/0377 →
CHANGE OF NAME Recorded Dec 19, 2018
From: THOMSON REUTERS (GRC) INC.
To: THOMSON REUTERS (GRC) LLC
Reel/Frame 047955/0485 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2018
From: THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
To: THOMSON REUTERS (GRC) INC.
Reel/Frame 048553/0154 →
SECURITY AGREEMENT Recorded Oct 3, 2018
From: THOMSON REUTERS (GRC) INC.
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 047187/0316 →
SECURITY AGREEMENT Recorded Oct 2, 2018
From: THOMSON REUTERS (GRC) INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 047185/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2018
From: THOMSON REUTERS (MARKETS) LLC
To: THOMSON REUTERS GLOBAL RESOURCES UNLIMITED COMPANY
Reel/Frame 044557/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2018
From: KOHN, DAVID
To: THOMSON REUTERS (MARKETS) LLC
Reel/Frame 044537/0479 →
Continuity (1)
Related Publication 20190065216A1 · Feb 28, 2019