System and method for sharing objects between applications in a virtual runtime environment
First Claim
1. A method comprising:
- compiling a central processing unit (cpu)-independent file to create executable instructions associated with an application, the application being executable in a virtual runtime environment;
executing a constructor during creation of the executable instructions, the constructor being associated with a shareable class defined within the cpu-independent file and being configured to create a plurality of shareable objects associated with the shareable class;
creating a dynamic entry structure for the plurality of shareable objects associated with the shareable class, the dynamic entry structure including a storage that contains non-garbage collectable static members and a garbage collection handle that references an object array data structure that contains garbage collectable static members; and
persisting, based at least in part on the dynamic entry structure and the object array data structure, shareable object information associated with the plurality of shareable objects by populating the storage with the non-garbage collectable static members and populating the garbage collection handle with references to the object array data structure for the garbage collectable static members, the persisted shareable object information being associated with the plurality of shareable objects available to each application to execute in a common virtual runtime environment.
2 Assignments
0 Petitions
Accused Products
Abstract
The techniques and mechanisms described herein are directed at sharing objects between applications executing in a virtual runtime environment. The techniques include compiling a cpu-independent file to create executable instructions that are associated with an application that is executable in a virtual runtime environment. A constructor associated with a shareable class defined within the cpu-independent file is executed to create an instance of a shareable object. The shareable object is then persisted in a manner such that other applications executing in the virtual runtime environment may access the shareable object. The technique may be performed during pre-JIT compilation or just-in-time compilation of the cpu-independent file. The execution of the constructor is performed at a restricted security level that prevents access to changeable information when generating static data for the static members of the shareable object.
32 Citations
20 Claims
-
1. A method comprising:
-
compiling a central processing unit (cpu)-independent file to create executable instructions associated with an application, the application being executable in a virtual runtime environment; executing a constructor during creation of the executable instructions, the constructor being associated with a shareable class defined within the cpu-independent file and being configured to create a plurality of shareable objects associated with the shareable class; creating a dynamic entry structure for the plurality of shareable objects associated with the shareable class, the dynamic entry structure including a storage that contains non-garbage collectable static members and a garbage collection handle that references an object array data structure that contains garbage collectable static members; and persisting, based at least in part on the dynamic entry structure and the object array data structure, shareable object information associated with the plurality of shareable objects by populating the storage with the non-garbage collectable static members and populating the garbage collection handle with references to the object array data structure for the garbage collectable static members, the persisted shareable object information being associated with the plurality of shareable objects available to each application to execute in a common virtual runtime environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-readable storage medium having stored computer-executable instructions for performing operations comprising:
-
compiling a central processing unit (cpu)-independent file to create executable instructions associated with an application, the application being executable in a virtual runtime environment; executing a constructor during creation of the executable instructions, the constructor being associated with a shareable class defined within the cpu-independent file and being configured to create a plurality of shareable objects associated with the shareable class; creating a dynamic entry structure associated with the shareable class, the dynamic entry structure including a storage that contains non-garbage collectable static members and a garbage collection handle that references an object array data structure that contains garbage collectable static members; creating respective entries within the object array data structure for the garbage collectable static members, each entry identifying a location for the respective garbage collectable static member within a heap; and sharing, based at least in part on the dynamic entry structure and the object array data structure, the plurality of shareable objects with other applications executing in the virtual runtime environment, the virtual runtime environment being common to the application and the other applications. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A system comprising:
-
one or more processors; and a memory into which a plurality of instructions are loaded, the plurality of instructions, when executed by the one or more processors, performing operations comprising; compiling a central processing unit (cpu)-independent file to create executable instructions associated with an application, the application being executable in a virtual runtime environment; executing a constructor during creation of the executable instructions, the constructor being associated with a shareable class defined within the cpu-independent file and being configured to create a plurality of shareable objects associated with the shareable class; creating a dynamic entry structure and an object array data structure for the plurality of shareable objects associated with the shareable class, wherein the constructor stores non-garbage collectible members in a storage of the dynamic entry structure and stores garbage collectible members in the object array data structure; and persisting, based at least in part on the dynamic entry structure and the object array data structure, shareable object information associated with the plurality of shareable objects by populating the storage with the non-garbage collectable members and populating a garbage collection handle with references to the object array data structure for the garbage collectable members in a manner that allows other applications, executing in a virtual runtime environment common to the virtual runtime environment that the application is executable in, to access the plurality of shareable objects. - View Dependent Claims (18, 19, 20)
-
Specification