Automatic detection of per-unit location constraints
First Claim
1. A method for detecting a location constraint on the placement of a unit of an application program by an automatic distributed partitioning system, wherein the application program comprises plural application binaries, wherein an application binary comprises code of one or more units and an area for holding one or more references to a function of an external library, the method comprising:
- receiving a list of references to one or more location-constrained functions, wherein a reference to a location-constrained function is associated with a location;
receiving a list of the plural units of the application program;
for a unit of the application program, finding the application binary comprising the code of the unit;
for the application binary, scanning the area for holding one or more references to a function of an external library;
if a reference is found in the area, comparing the found reference to the list of location-constrained functions;
if the found reference matches a reference on the list of location-constrained functions, noting the application binary as location-constrained to the location that is associated with the matched reference; and
executing the application program, wherein an application binary noted as location constrained resides at the noted location.
2 Assignments
0 Petitions
Accused Products
Abstract
An automatic distributed partitioning system (“ADPS”) automatically detects location constraints on the placement of units of an application program in a distributed computing environment. From a programmer, the ADPS receives a list of operating system functions that access location-dependent resources. The ADPS analyzes the application program to detect units that call the listed operating system functions. If an application unit calls a listed operating system function, the ADPS notes a location constraint on that application unit. The ADPS insures that the location-constrained application unit resides on a computer with access to the location-dependent resource needed by the application unit.
221 Citations
36 Claims
-
1. A method for detecting a location constraint on the placement of a unit of an application program by an automatic distributed partitioning system, wherein the application program comprises plural application binaries, wherein an application binary comprises code of one or more units and an area for holding one or more references to a function of an external library, the method comprising:
-
receiving a list of references to one or more location-constrained functions, wherein a reference to a location-constrained function is associated with a location;
receiving a list of the plural units of the application program;
for a unit of the application program, finding the application binary comprising the code of the unit;
for the application binary, scanning the area for holding one or more references to a function of an external library;
if a reference is found in the area, comparing the found reference to the list of location-constrained functions;
if the found reference matches a reference on the list of location-constrained functions, noting the application binary as location-constrained to the location that is associated with the matched reference; and
executing the application program, wherein an application binary noted as location constrained resides at the noted location. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
assembling a list of functions that must be performed at particular locations in a distributed computing environment;
determining for each function on the list of functions a location in the distributed computing environment; and
creating a list of references to one or more location-constrained functions, wherein a reference to a location-constrained function is associated with a location.
-
-
5. The method of claim 4 wherein a programmer manually accomplishes the step of assembling.
-
6. The method of claim 4 wherein the location-constrained functions are functions of an operating system.
-
7. The method of claim 6 further comprising:
when the operating system changes, repeating the steps of assembling, determining, and creating.
-
8. The method of claim 1 wherein the application binary comprising the code of the unit is a dynamic link library, and wherein the area for holding references to a function of an external library is an import table.
-
9. The method of claim 1 wherein the list of the plural units further comprises, for each unit on the list, a reference to an application binary comprising the code for the unit.
-
10. A method for detecting a location constraint on the placement of a unit of an application program by an automatic distributed partitioning system, wherein an application program comprises plural units, and wherein a unit of the plural units comprises a reference to a function of an external library, the method comprising:
-
receiving a list of references to one or more location-constrained functions, wherein a reference to a location-constrained function is associated with a location;
executing the application program;
during execution, intercepting a call to a function of an external library from a unit;
comparing the function call to the list of references to location-constrained functions;
if the function call matches a reference on the list of location-constrained functions, noting the unit as location-constrained to the location that is associated with the matched reference; and
re-executing the application, wherein a unit noted as location constrained resides at the noted location. - View Dependent Claims (11, 12, 13, 14, 15, 16)
assembling a list of functions that must be performed at particular locations in a distributed computing environment;
determining for each function on the list of functions a location in the distributed computing environment; and
creating a list of references to one or more location-constrained functions, wherein a reference to a location-constrained function is associated with a location.
-
-
14. The method of claim 13 wherein a programmer manually accomplishes the step of assembling.
-
15. The method of claim 13 wherein the location-constrained functions are functions of an operating system.
-
16. The method of claim 15 further comprising:
when the operating system changes, repeating the steps of assembling, determining, and creating.
-
17. A method for detecting a location constraint on the placement of a unit of an application program by an automatic distributed partitioning system, wherein the application program comprises plural units, wherein each unit of the plural units comprises code, and wherein a unit of the plural units further comprises a reference to a function of an external library, the method comprising:
-
receiving a list of references to one or more location-constrained functions, wherein a reference to a location-constrained function is associated with a location;
for a unit of the application program, scanning the code of the unit for a reference to a function of an external library;
if a reference to a function of an external library is found, comparing the found reference to the list of references to location-constrained functions;
if the found reference matches a reference on the list of location-constrained functions, noting the unit as location-constrained to the location that is associated with the matched reference; and
executing the application program, wherein a unit noted as location constrained resides at the noted location. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
assembling a list of functions that must be performed at particular locations in a distributed computing environment;
determining for each function on the list of functions a location in the distributed computing environment; and
creating a list of references to one or more location-constrained functions, wherein a reference to a location-constrained function is associated with a location.
-
-
21. The method of claim 20 wherein a programmer manually accomplishes the step of assembling.
-
22. The method of claim 20 wherein the location-constrained functions are functions of an operating system.
-
23. The method of claim 22 further comprising:
when the operating system changes, repeating the steps of assembling, determining, and creating.
-
24. The method of claim 17 wherein step of scanning the code comprises applying static code coverage analysis to the code.
-
25. The method of claim 17 wherein a unit of the plural units comprises code for installing the unit on a computer and code for executing the unit, the method further comprising:
-
before the step of scanning, separating the code of the unit that is used for installing the unit on a computer from the code of the unit that is used for executing the unit; and
during the step of scanning, scanning only the code of the unit that is used for executing the unit.
-
-
26. The method of claim 17 wherein the steps of scanning, comparing, and noting are carried out during profiling of the application program.
-
27. The method of claim 17 wherein the code of each unit of the plural units is object code.
-
28. The method of claim 17 wherein the code of each unit of the plural units is source code.
-
29. A method for detecting a location constraint on the placement of an application unit of an application program by an automatic distributed partitioning system, the method comprising:
-
receiving a set of references to one or more location-constraining features for a distributed computing environment, wherein a reference to a location-constraining feature is associated with a location;
profiling the application program, wherein profiling comprises;
detecting a location-constraining feature of one or more application units using the set of references;
noting said one or more application units as location-constrained;
for each location-constrained application unit, noting the location associated with the location-constraining feature of the unit; and
executing the application program, whereby a location-constrained application unit resides at the location noted for the application unit. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
assembling a set of features that indicate an application unit must reside at a particular location in a distributed computing environment;
determining for each feature in the set of features a location in the distributed computing environment; and
creating a set of references to one or more location-constraining features, wherein a reference to a location-constraining feature is associated with a location.
-
-
34. The method of claim 33 wherein a programmer manually accomplishes the step of assembling.
-
35. The method of claim 33 wherein the location-constraining features are functions of an operating system.
-
36. The method of claim 35 further comprising:
when the operating system changes, repeating the steps of assembling, determining, and creating.
Specification