IP Library Granted Patent US 9,606,846
Granted Patent B2
US 9,606,846 · App. 11/193,167 · Granted Mar 28, 2017

System and method for dynamic proxy generation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,606,846
App. No.
11/193,167
Granted
Mar 28, 2017
Kind
B2
Abstract

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.

Claims (61)

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.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2005
From: DROSHEV, MLADEN I.; ATANASSOV, IVAN T.; NEICHEV, NIKOLAI W.; STANEV, GEORGI N.
To: SAP AKTIENGESELLSCHAFT
Reel/Frame 016830/0141 →