System and method for dynamic proxy generation

US9606846B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9606846-B2
Application numberUS-19316705-A
CountryUS
Kind codeB2
Filing dateJul 29, 2005
Priority dateJul 29, 2005
Publication dateMar 28, 2017
Grant dateMar 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system and method are described in which skeletons and/or stubs are manipulated based on deployment information. For example, a method according to one embodiment of the invention comprises: compiling source code to generate program code executable on an application server comprised of a plurality of different virtual machines, the program code containing stubs and/or skeletons; analyzing the program code to identify stubs and/or skeletons generated for objects which are located within the same virtual machine and/or the same physical machine; removing the stubs and/or skeletons for those objects which are located in the same virtual machine and/or same physical machine to generate modified program code; and deploying the modified program code.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: identifying whether a method call made by a first object and directed to a second object is a local method call or a remote method call; responsive to an identification that the method call is the local method call: binding the first object directly to the second object; and making the method call directly to the second object; and responsive to an identification that the method call is the remote method call: detecting whether a stub capable of handling the remote method call exists; responsive to an identification that the stub exists, using the stub to handle the remote method call; responsive to an identification that the stub does not exist: generating a dynamic proxy; and using a remote invocation handler of the dynamic proxy to manage the remote method call, the using of the remote invocation handler comprising: receiving the remote method call at the dynamic proxy; finding a reference object that corresponds to the remote method call; and wrapping a remote method in an invocation handler object; detecting whether a skeleton capable of handling the remote method call exists; responsive to a detection that the skeleton exists, using a parameter of the remote method to make the remote method call via the skeleton; and responsive to a detection that the skeleton does not exist, generating a dynamic skeleton, and using a parameter of the remote method to make the remote method call via the dynamic skeleton. 2. The method of claim 1 , wherein the finding of the reference object includes employing a class loader to find the reference object from within a plurality of method reference objects, each one of the plurality of method reference objects encapsulating respective one of a plurality of references to methods of the second object. 3. The method of claim 2 , wherein each of the plurality of method reference objects is a Java reference class. 4. The method of claim 1 , wherein the identifying is accomplished by analyzing the method call at run time. 5. A system comprising: one or more microprocessors; one or more memories coupled to the one or more microprocessors, the one or more memories configuring the one or more microprocessors to perform operations, the operations comprising: identifying whether a method call made by a first object and directed to a second object is a local method call or a remote method call; responsive to an identification that the method call is the local method call: binding the first object directly to the second object; and making the method call directly to the second object; and responsive to an identification that the method call is the remote method call: detecting whether a stub capable of handling the remote method call exists; responsive to an identification that the stub exists, using the stub to handle the remote method call; responsive to an identification that the stub does not exist: generating a dynamic proxy; and using a remote invocation handler of the dynamic proxy to manage the remote method call, the using of the remote invocation handler comprising: receiving the remote method call at the dynamic proxy; finding a reference object that corresponds to the remote method call; and wrapping a remote method in an invocation handler object; detecting whether a skeleton capable of handling the remote method call exists; responsive to a detection that the skeleton exists, using a parameter of the remote method to make the remote method call via the skeleton; and responsive to a detection that the skeleton does not exist, generating a dynamic skeleton, and using a parameter of the remote method to make the remote method call via the dynamic skeleton. 6. The system of claim 5 , wherein the finding of the reference object includes employing a class loader to find the reference object from within a plurality of method reference objects, each one of the plurality of method reference objects encapsulating respective one of a plurality of references to methods of the second object. 7. The system of claim 6 , wherein each of the plurality of reference objects is a Java reference class. 8. The system of claim 5 , wherein the identifying is accomplished by analyzing the method call at run time. 9. A non-transitory machine readable medium embodying a set of instructions that, when executed by a processor, causes the processor to perform a method, the method comprising: identifying whether a method call made by a first object and directed to a second object is a local method call or a remote method call; responsive to an identification that the method call is the local method call: binding the first object directly to the second object; and making the method call directly to the second object; and responsive to an identification that the method call is the remote method call: detecting whether a stub capable of handling the remote method call exists; responsive to an identification that the stub exists, using the stub to handle the remote method call; responsive to an identification that the stub does not exist: generating a dynamic proxy; and using a remote invocation handler of the dynamic proxy to manage the remote method call, the using of the remote invocation handler comprising: receiving the remote method call at the dynamic proxy; finding a reference object that corresponds to the remote method call; and wrapping a remote method in an invocation handler object; detecting whether a skeleton capable of handling the remote method call exists; responsive to a detection that the skeleton exists, using a parameter of the remote method to make the remote method call via the skeleton; and responsive to a detection that the skeleton does not exist, generating a dynamic skeleton, and using a parameter of the remote method to make the remote method call via the dynamic skeleton. 10. The non-transitory machine readable medium of claim 9 , wherein the finding of the reference object includes employing a class loader to find the reference object from within a plurality of method reference objects, each one of the plurality of method reference objects encapsulating respective one of a plurality of references to methods of the second object. 11. The system of claim 10 , wherein each of the plurality of reference objects is a Java reference class.

Assignees

Inventors

Classifications

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

  • G06F9/548Primary

    Object oriented; Remote method invocation [RMI] (non-remote method invocation G06F9/449) · CPC title

  • Remote procedure calls [RPC]; Web services · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9606846B2 cover?
A system and method are described in which skeletons and/or stubs are manipulated based on deployment information. For example, a method according to one embodiment of the invention comprises: compiling source code to generate program code executable on an application server comprised of a plurality of different virtual machines, the program code containing stubs and/or skeletons; analyzing the…
Who is the assignee on this patent?
Droshev Mladen I, Atanassov Ivan T, Neichev Nikolai W, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/548. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).