System and method for dynamic generation of proxies for isomorphic interfaces
First Claim
1. A system, comprising:
- one or more processors; and
a memory storing program instructions, wherein the program instructions are executable by the one or more processors to implement;
a virtual machine;
a plurality of subsystems configured to execute within the virtual machine, wherein two or more of the plurality of subsystems provide different versions of an isomorphic interface to functions of the subsystems; and
a proxy mechanism configured to generate, for one of the plurality of subsystems at runtime of the one of the plurality of subsystems, a proxy to a version of the isomorphic interface provided by a particular one of the two or more subsystems;
wherein the proxy is configured to;
receive a call to the isomorphic interface from the one of the plurality of subsystems;
convert the call in accordance with the version of the isomorphic interface provided by the particular one of the two or more subsystems; and
forward the converted call to the particular one of the two or more subsystems for execution; and
wherein the proxy mechanism is further configured to generate, for another one of the plurality of subsystems at runtime of the one of the plurality of subsystems, another proxy to a different version of the isomorphic interface provided by another one of the two or more subsystems.
2 Assignments
0 Petitions
Accused Products
Abstract
System and method for proxying isomorphic interfaces in different subsystems. Embodiments may provide a proxy mechanism that may generate proxies for isomorphic interfaces at runtime. Embodiments may allow two mutually indifferent subsystems to communicate with each other in a straightforward, transparent manner via proxies, without requiring a common shared library or complex coding. Embodiments of the proxy mechanism transparently generate proxies for isomorphic interfaces between subsystems in a virtual machine. In one embodiment, the application developer registers the interfaces that require proxying. The proxy mechanism then generates proxy instances. Methods may then be invoked, and the proxies handle the details of converting and forwarding the calls in accordance with the appropriate interface. Other subsystems, using different versions of the interface, may use the proxy mechanism to dynamically generate proxies without requiring extensive coding or shared libraries, and without interfering with other subsystems within the virtual machine.
69 Citations
57 Claims
-
1. A system, comprising:
-
one or more processors; and a memory storing program instructions, wherein the program instructions are executable by the one or more processors to implement; a virtual machine; a plurality of subsystems configured to execute within the virtual machine, wherein two or more of the plurality of subsystems provide different versions of an isomorphic interface to functions of the subsystems; and a proxy mechanism configured to generate, for one of the plurality of subsystems at runtime of the one of the plurality of subsystems, a proxy to a version of the isomorphic interface provided by a particular one of the two or more subsystems; wherein the proxy is configured to; receive a call to the isomorphic interface from the one of the plurality of subsystems; convert the call in accordance with the version of the isomorphic interface provided by the particular one of the two or more subsystems; and forward the converted call to the particular one of the two or more subsystems for execution; and wherein the proxy mechanism is further configured to generate, for another one of the plurality of subsystems at runtime of the one of the plurality of subsystems, another proxy to a different version of the isomorphic interface provided by another one of the two or more subsystems. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system, comprising:
-
one or more processors; and a memory storing program instructions, wherein the program instructions are executable by the one or more processors to implement; a virtual machine; a plurality of subsystems configured to execute within the virtual machine; and a proxy mechanism configured to; generate a proxy for a version of an interface between two of the plurality of subsystems at runtime of at least one of the two subsystems, wherein the proxy is configured to convert calls between the two subsystems in accordance with the version of the interface; and generate another proxy for another version of the interface between another two of the plurality of subsystems at runtime of at least one of the other two of the plurality of subsystems, wherein the other proxy is configured to convert calls between the other two of the plurality of subsystems in accordance with the other version of the interface. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A system, comprising:
-
a processor; and a memory comprising program instructions, wherein the program instructions are executable by the processor to implement a proxy mechanism configured to generate, for a subsystem at runtime of the subsystem, a proxy to a version of an isomorphic interface provided by a particular one of a plurality of subsystems that provide versions of the isomorphic interface; wherein the proxy is configured to; receive a call to the isomorphic interface from the subsystem; convert the call in accordance with the version of the isomorphic interface provided by the particular one of the plurality of subsystems; and forward the converted call to the particular one of the plurality of subsystems for execution; and wherein the proxy mechanism is further configured to generate, for a different subsystem at runtime of a different subsystem, another proxy to another one of the plurality of subsystems that provides a different version of the isomorphic interface. - View Dependent Claims (20, 21, 22, 23, 24)
-
-
25. A computer system, comprising:
-
means for generating a proxy to a version of an isomorphic interface provided by two or more subsystems for one or more other subsystems in a virtual machine at runtime of at least one of the one or more other subsystems; means for generating another proxy to another version of the isomorphic interface provided by the two or more subsystems for the one or more other subsystems in the virtual machine at runtime of at least one of the one or more other subsystems; means for the proxies to convert calls from the one or more other subsystems to the versions of the isomorphic interface provided by the two or more subsystems; and means for the proxies to forward the converted calls to the two or more subsystems for execution.
-
-
26. A computer-implemented method, comprising:
-
a proxy mechanism generating, for a subsystem at runtime of the subsystem, a proxy to a version of an isomorphic interface provided by a particular one of a plurality of subsystems that provide versions of the isomorphic interface; the proxy receiving a call to the isomorphic interface from the subsystem; the proxy converting the call in accordance with the version of the isomorphic interface provided by the particular one of the plurality of subsystems; the proxy forwarding the converted call to the particular one of the plurality of subsystems for execution; and the proxy mechanism generating another proxy to another one of the plurality of subsystems that provides a different version of the isomorphic interface for another subsystem at runtime of the other subsystem. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer-implemented method, comprising:
-
generating a proxy for a version of an interface between two of a plurality of subsystems in a virtual machine at runtime of at least one of the two subsystems, wherein the proxy is configured to convert calls between the two subsystems in accordance with the version of the interface; and generating another proxy for another version of the interface between another two of the plurality of subsystems at runtime of at least one of the other two of the plurality of subsystems, wherein the other proxy is configured to convert calls between the other two of the plurality of subsystems in accordance with the other version of the interface. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
-
42. A computer-readable storage media comprising program instructions, wherein the program instructions are computer-executable to implement:
-
a proxy mechanism generating, for a subsystem at runtime of the subsystem, a proxy to a version of an isomorphic interface provided by a particular one of a plurality of subsystems that provide versions of the isomorphic interface; the proxy receiving a call to the isomorphic interface from the subsystem; the proxy converting the call in accordance with the version of the isomorphic interface provided by the particular one of the plurality of subsystems; the proxy forwarding the converted call to the particular one of the plurality of subsystems for execution; and the proxy mechanism generating another proxy to another one of the plurality of subsystems that provides a different version of the isomorphic interface for another subsystem at runtime of the other subsystem. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50)
-
-
51. A computer-readable storage media comprising program instructions, wherein the program instructions are computer-executable to implement:
-
generating a proxy for a version of an interface between two of a plurality of subsystems in a virtual machine at runtime of at least one of the two subsystems, wherein the proxy is configured to convert calls between the two subsystems in accordance with the version of the interface; and generating another proxy for another version of the interface between another two of the plurality of subsystems at runtime of at least one of the other two of the plurality of subsystems, wherein the other proxy is configured to convert calls between the other two of the plurality of subsystems in accordance with the other version of the interface. - View Dependent Claims (52, 53, 54, 55, 56, 57)
-
Specification