Deep cloning of objects using binary format
First Claim
1. A method of deep cloning one or more objects in an object graph using a binary format performed using one or more processors of a processor-based system, the one or more objects including one or more host objects created by a host that executes on the processor-based system and that hosts a first dynamic language engine, the method comprising:
- determining how each of the one or more objects in the object graph is to be cloned based at least in part on whether that object is a host object created by the host or a dynamic language object created by the first dynamic language engine hosted by the host;
retrieving each host object that is included in the one or more host objects, which are created by the host that executes on the processor-based system and that hosts the first dynamic language engine, from the host via an intermediate representation of that host object contained in a corresponding property bag, each intermediate representation describing properties of the corresponding host object and being understandable by the first dynamic language engine; and
converting each host object that is included in the one or more host objects to a binary representation of the respective host object in accordance with the binary format, using at least one of the one or more processors, to provide a binary clone of the object graph.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described herein that are capable of deep cloning (a.k.a. deep copying) objects using a binary format. A deep clone of a designated object includes references to other objects (and potentially copies of the other objects) included in the designated object. A binary representation of each object in an object graph is generated to provide a binary clone of the object graph. Objects created by a dynamic language engine are called dynamic language objects. Objects created by a host (e.g., that hosts the dynamic language engine) are called host objects. Each host object is associated with an intermediate representation thereof via a property bag that describes properties of that host object. Each intermediate representation is understandable by the dynamic language engine. A binary representation of each dynamic language object and each host object may be generated in accordance with the binary format to provide the binary clone.
-
Citations
28 Claims
-
1. A method of deep cloning one or more objects in an object graph using a binary format performed using one or more processors of a processor-based system, the one or more objects including one or more host objects created by a host that executes on the processor-based system and that hosts a first dynamic language engine, the method comprising:
-
determining how each of the one or more objects in the object graph is to be cloned based at least in part on whether that object is a host object created by the host or a dynamic language object created by the first dynamic language engine hosted by the host; retrieving each host object that is included in the one or more host objects, which are created by the host that executes on the processor-based system and that hosts the first dynamic language engine, from the host via an intermediate representation of that host object contained in a corresponding property bag, each intermediate representation describing properties of the corresponding host object and being understandable by the first dynamic language engine; and converting each host object that is included in the one or more host objects to a binary representation of the respective host object in accordance with the binary format, using at least one of the one or more processors, to provide a binary clone of the object graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system comprising:
-
at least one element including at least one of (a) one or more processors, (b) hardware logic, or (c) electrical circuitry; and one or more hosts, implemented using the at least one element, configured to deep clone one or more objects in an object graph using a binary format, the one or more objects including one or more host objects created by at least one of the one or more hosts, the one or more hosts hosting one or more dynamic language engines, the one or more dynamic language engines comprising; an object module configured to determine how each of the one or more objects in the object graph is to be cloned based at least in part on whether that object is a host object created by at least one of the one or more hosts or a dynamic language object created by at least one of the one or more dynamic language engines hosted by the one or more hosts; a retrieval module configured to retrieve each host object that is included in the one or more host objects from at least one first host of the one or more hosts via an intermediate representation of that host object contained in a corresponding property bag, each intermediate representation describing properties of the corresponding host object and being understandable by at least one of the one or more dynamic language engines, and a binary module configured to convert each host object that is included in the one or more host objects to a binary representation of the respective host object in accordance with the binary format to provide a binary clone of the object graph. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method performed using one or more processors of a processor-based system, the method comprising:
converting a binary clone of an object graph to a reconstruction of the object graph, the binary clone including one or more binary representations of one or more respective host objects, the converting comprising; for each of the one or more binary representations of the one or more respective host objects, extracting, using at least one of the one or more processors, the binary representation of the respective host object from the binary clone into a respective property bag object that includes an intermediate representation of the host object such that the intermediate representation includes properties of the host object, the property bag object is understandable by a dynamic language engine, and initializing a placeholder for the host object with the properties, which are extracted from the intermediate representation, to provide a respective initialized host object in the reconstruction of the object graph. - View Dependent Claims (24, 25)
-
26. A system comprising:
-
at least one element including at least one of (a) one or more processors, (b) hardware logic, or (c) electrical circuitry; one or more hosts, implemented using the at least one element, configured to convert a binary clone of an object graph to a reconstruction of the object graph, the binary clone including one or more binary representations of one or more respective host objects, the one or more hosts hosting one or more dynamic language engines, the one or more dynamic language engines comprising; a creation module configured to, for each of the one or more binary representations of the one or more respective host objects, extract the binary representation of the respective host object from the binary clone into a respective property bag object that includes an intermediate representation of the host object such that the intermediate representation includes properties of the host object, the property bag object is understandable by at least one of the one or more dynamic language engines; and an intermediate representation module configured to, for each of the one or more binary representations of the one or more respective host objects, provide an instruction to at least one host of the one or more hosts that causes the at least one host to initialize a placeholder for the host object with the properties of the host object, which are extracted from the respective intermediate representation, to provide a respective initialized host object in the reconstruction of the object graph. - View Dependent Claims (27, 28)
-
Specification