# US 10,503,525 B2 · Apparatuses, methods and systems for persisting values in a computing environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,525 B2
- Document ID: US10503525B2
- Status: Granted
- Kind: B2
- Application number: 15/683,330
- Filed: 2017-08-22
- Published: 2019-02-28
- Granted: 2019-12-10
- Earliest claimed: 2017-08-22
- Assignees: Refinitiv US Organization LLC
- Applicants: Thomson Reuters Global Resources Unlimited Company
- Inventors: David Kohn
- Web page: https://patentgrep.com/patent/US10503525B2

## CPC

- G06F 9/4493: {Object persistence}
- G06F 8/24: {Object-oriented}
- G06F 9/44521: {Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/1756: {based on delta files}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 2)

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.

### Claim 5 (depends on 4)

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.

### Claim 6 (depends on 2)

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

### Claim 7 (depends on 6)

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

### Claim 8 (depends on 7)

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

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 1)

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.

### Claim 11 (depends on 1)

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.

### Claim 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.

### Claim 13 (depends on 12)

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.

### Claim 14 (depends on 13)

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.

### Claim 15 (depends on 14)

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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 14)

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

### Claim 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.

### Claim 19 (depends on 18)

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.

### Claim 20 (depends on 19)

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.

### Claim 21 (depends on 20)

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.

### Claim 22 (depends on 21)

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.

### Claim 23 (depends on 20)

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