IP Library Granted Patent US 7,627,655
Granted Patent B2
US 7,627,655 · App. 11/010,882 · Granted Dec 1, 2009

Increased performance of grid applications

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 7,627,655
App. No.
11/010,882
Granted
Dec 1, 2009
Kind
B2
Abstract

A method includes identifying a component within a non-distributed grid-enabled software application that can be isolated and independently executed during an execution of the software application on a first compute resource within a grid network, replacing the isolatable component in the software application with a proxy, and executing the software application on the first compute resource with the isolated component executing on a second compute resource.

Claims (62)

1. A method comprising:

identifying, by a first grid compute resource on a grid network, an application component within a non-distributed grid-enabled software application that can be isolated and executed independently of the software application on a second grid compute resource on the grid network during execution of the software application on the first grid compute resource;

replacing, by the first grid compute resource, the isolatable component in the software application with a proxy component having the same class signature as the isolatable component;

executing the software application including the proxy component on the first grid compute resource;

generating, by the first grid compute resource, a stub including the isolatable component that was replaced with the proxy component; and

distributing, by the first grid compute resource, the stub including the isolatable component to the second grid compute resource for execution by the second grid compute resource.

2. The method of claim 1 wherein the software application comprises a Java application having a plurality of classes, the isolated component representing a first class within the Java application.

3. The method of claim 2 wherein the proxy component communicates between the Java application on the first grid compute resource and a Java Virtual Machine (JVM) on the second grid compute resource.

4. The method of claim 2 wherein identifying comprises:

receiving a list of components;

executing a byte code analyzer to inspect byte code representing components in the list; and

determining which of the components contained in the list can be separated from the software application.

5. The method of claim 4 wherein determining comprises selecting a critical component.

6. The method of claim 1 wherein replacing comprises distributing the isolated component to the second grid compute resource prior to the execution of the application.

7. The method of claim 1 wherein executing comprises invoking the isolatable component on the second grid compute resource.

8. The method of claim 1 wherein executing further comprises executing the isolatable component on the grid first compute resource if a network connection between the first grid compute resource and the second grid compute resource is lost.

9. The method of claim 1 wherein executing comprises executing the isolatable component on the first grid compute resource if an error occurs during execution of the isolatable component on the second grid compute resource.

10. A method for executing a non-distributed grid-enabled software application on a grid network, the method comprising:

identifying, by a first grid compute resource on the grid network, an application component within the software application that can be isolated and executed independently of the software application on a second grid compute resource on the grid network while the software application is being executed on the first grid compute resource;

distributing, by the first grid compute resource, a stub including the isolatable component of the non-distributed grid-enabled software application to the second grid compute resource for execution on the second grid compute resource;

replacing, by the first grid compute resource, the isolatable component in the non-distributed software application with a proxy component having the same class signature as the isolatable component that communicates with the isolatable component being executed on the second grid compute resource; and

executing, by the first grid compute resource, the software application including the proxy component.

11. The method of claim 10 further comprising executing the non-distributed software application on the first grid compute resource.

12. The method of claim 11 wherein executing comprises executing the isolatable component on the second grid compute resource as directed by the proxy.

13. The method of claim 10 wherein distributing comprises sending the isolatable component to the second grid compute resource prior to an execution of the non-distributed software application on the first grid compute resource.

14. The method of claim 10 wherein distributing comprises sending the isolatable component to the second grid compute resource during an execution of the non-distributed software application on the first grid compute resource.

15. The method of claim 10 wherein the non-distributed software application is a Java application and the isolatable component is a Java class.

16. A computer-readable storage medium storing a computer program which, when executed by a first grid compute resource on a grid network, causes the first grid compute resource to execute a method for increasing performance of a non-distributed grid-enabled software application, the method comprising:

identifying, by the first grid compute resource, a component within the non-distributed software application that can be isolated and executed independently of the software application on a second grid compute resource on the grid network during execution of the software application on the first grid compute resource;

replacing, by the first grid compute resource, the isolatable component in the software application with a proxy component having the same class signature as the isolatable component;

executing the software application including the proxy component on the first grid compute resource;

generating, by the first grid compute resource, a stub including the isolatable component that was replaced by the proxy component;

distributing, by the first grid compute resource, the stub including the isolatable component to the second grid compute resource for execution by the second grid compute resource.

17. The computer-readable storage medium of claim 16 wherein the software application comprises a Java application having a plurality of classes, the isolated component representing a first class with the Java application.

18. The computer-readable storage medium of claim 17 wherein the proxy component communicates between the Java application on the first grid compute resource and a Java Virtual Machine (JVM) on the second grid compute resource.

19. The computer-readable storage medium of claim 17 wherein identifying comprises:

receiving a list of components;

executing a byte code analyzer to inspect byte code representing components in the list; and

determining which of the components contained in the list can be separated from the software application.

20. The computer-readable storage medium of claim 19 wherein determining comprises selecting a critical component.

21. The computer-readable storage medium of claim 16 wherein replacing comprises distributing the isolated component to the second grid compute resource prior to the execution of the application.

22. The computer-readable storage medium of claim 16 wherein executing comprises invoking the isolatable component on the second grid compute resource.

23. The computer-readable storage medium of claim 16 wherein executing further comprises executing the isolatable component on the first grid compute resource if a network connection between the first grid compute resource and the second grid compute resource is lost.

24. The computer-readable storage medium of claim 16 wherein executing comprises executing the isolatable component on the first grid compute resource if an error occurs during execution of the isolatable component on the second grid compute resource.

25. A first grid compute resource on a grid network, comprising:

a processor configured to:

identify a component within a non-distributed grid-enabled software application that can be isolated and executed independently of the software application on a second grid compute resource on the grid network during execution of the software application on the first grid compute resource;

replace the isolatable component in the software application with a proxy component having the same class signature as the isolatable component;

replace the software application including the proxy component on the first grid compute resource;

generate a stub including the isolatable component that was replaced with the proxy component; and

distribute the stub including the isolatable component to the second grid compute resource for execution by the second grid compute resource.

26. The system of claim 25 wherein the software application comprises a Java application having a plurality of classes, the isolated component representing a first class with the Java application.

27. The system of claim 26 wherein the proxy communicates between the Java application on the first grid compute resource and a Java Virtual Machine (JVM) on the second grid compute resource.

28. The system of claim 26 wherein the identifying comprises:

receiving a list of components;

executing a byte code analyzer to inspect byte code representing components in the list; and

determining which of the components contained in the list can be separated from the software application.

29. The system of claim 28 wherein determining comprises selecting a critical component.

30. The system of claim 25 wherein replacing comprises distributing the isolated component to the second grid compute resource prior to the execution of the application.

31. The system of claim 25 wherein executing comprises invoking the isolatable component on the second grid compute resource.

32. The system of claim 25 wherein executing further comprises executing the isolatable component on the first grid compute resource if a network connection between the first grid compute resource and the second grid compute resource is lost.

33. The system of claim 25 wherein executing comprises executing the isolatable component on the first grid compute resource if an error occurs during execution of the isolatable component on the second grid compute resource.

Assignments (3)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
CHANGE OF NAME Recorded Dec 21, 2005
From: SAP AKTIENGESELLSCHAFT
To: SAP AG
Reel/Frame 017364/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2004
From: BOZAK, EROL; GEBHART, ALEXANDER
To: SAP AKTIENGESELLSCHAFT
Reel/Frame 016091/0126 →