← Back to Patent Explorer
US6983463B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-11-20
•
Granted: 2006-01-03
•
Expires: 2018-11-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An instrumentation system profiles an application using structural metadata description of the application. Units (such as COM objects) of the application have strongly-typed, binary-standard interfaces, and are profiled, for example, using an executable file and DLLs for the application. A structural metadata description of the application includes compiled, interface-level type information used to identify and measure interaction between units of the application. For example, the type information is produced by analyzing IDL information. Profiling results in an application profile that includes description of the static relationships and/or dynamic interactions between units of the application. The application profile is combined with a network profile that describes a distributed computing environment. Analysis of the result yields a distribution plan, which, for example, reduces costs associated with communication between the units. During execution, units of the application are distributed through the distributed computing environment according to the distribution plan.

Inventors

  • 👤 Galen C. Hunt

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 12:02
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5061; G06F9/5066; H; H04; H04L; H04L67/00; H04L67/01; H04L67/10; H04L67/2866; H04L67/30; H04L67/50; H04L67/535

Claims Analysis

Total Claims: 45
Claim 1
Independent Claim 127 words
A method to profile an application having plural units, wherein the plural units communicate across strongly-typed, binary-standard interfaces, and wherein a type file describes the interfaces of the plural units, the method comprising: generating a structural metadata description of the application from the type file, wherein the structure metadata description comprises compiled interface-level type description; profiling the application using the structural metadata description, resulting in an application profile; and reconfiguring the application based on the application profile, wherein the step of reconfiguring comprises: combining the application profile with a network profile; analyzing the combination of the application and network profiles; generating a distribution plan; and during execution of the application, distributing the plural units of the application in a distributed computing environment according to the distribution plan.
Claim 2
Independent Claim 127 words
A method to profile an application having plural units, wherein the plural units communicate across strongly-typed, binary-standard interfaces, and wherein a type file describes the interfaces of the plural units, the method comprising: generating a structural metadata description of the application from the type file, wherein the structure metadata description comprises compiled interface-level type description; profiling the application using the structural metadata description, resulting in an application profile; and reconfiguring the application based on the application profile, wherein the step of reconfiguring comprises: combining the application profile with a network profile; analyzing the combination of the application and network profiles; generating a distribution plan; and during execution of the application, distributing the plural units of the application in a distributed computing environment according to the distribution plan.
Claim 3
Dependent Claim 39 words
The method of claim 1 wherein the step of generating a structural metadata description comprises: receiving a source code type description of the interfaces; statically analyzing the source code description; and producing the structural metadata description of the application.
Claim 4
Dependent Claim 35 words
The method of claim 1 wherein the step of generating a structural metadata description comprises: receiving a compiled type file comprising information descriptive of the interfaces; and producing the structural metadata description of the application.
Claim 5
Dependent Claim 34 words
The method of claim 1 wherein the step of profiling comprises: determining static relationships between the plural units of the application; and generating the application profile, wherein the application profile models the static relationships.
Claim 6
Dependent Claim 42 words
The method of claim 1 wherein the step of profiling comprises: determining dynamic interaction between the plural units of the application through interfaces described in the interface-level type description; and generating the application profile, wherein the application profile models the dynamic interaction.
Claim 7
Dependent Claim 52 words
The method of claim 1 wherein the step of profiling comprises: measuring the number and size of communications through the interfaces of the plural units using the structural metadata description of the application; and generating the application profile, wherein the application profile is a log of the communications between the plural units.
Claim 8
Dependent Claim 50 words
The method of claim 1 wherein the step of profiling comprises: measuring the size of communications through the interfaces of the plural units using the structural metadata description of the application; and generating the application profile, wherein the application profile is a log of the communications between the plural units.
Claim 9
Dependent Claim 26 words
The method of claim 7 wherein for a communication, the log stores data representing a sending unit, a receiving unit, and the size of the communication.
Claim 10
Dependent Claim 55 words
The method of claim 1 wherein the plural units of the application reside on plural computers in the distributed computing environment, and wherein the step of profiling comprises: timing communications sent between the plural units; and generating the application profile, wherein the application profile is a log of the communications sent between the plural units.
Claim 11
Dependent Claim 34 words
The method of claim 1 wherein the step of profiling comprises: timing the execution of the plural units; and generating the application profile, wherein the application profile describes the behavior of the plural units.
Claim 12
Dependent Claim 17 words
The method of claim 1 wherein the application is available for profiling only as an application binary.
Claim 13
Dependent Claim 13 words
The method of claim 11 wherein the application binary comprises an executable file.
Claim 14
Dependent Claim 17 words
The method of claim 12 wherein the application binary further comprises one or more dynamic link libraries.
Claim 15
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions to perform the method of claim 1 .
Claim 16
Dependent Claim 24 words
The method of claim 1 wherein the network profile comprises a description of an idealized network of plural identical computers with no communication costs.
Claim 17
Dependent Claim 22 words
The method of claim 1 wherein the network profile comprises a description of the capabilities of plural computers in a physical network.
Claim 18
Independent Claim 148 words
A method to profile an application for partitioning and distributing plural units of the application in a distributed computing environment, wherein the plural units communicate across strongly-typed, binary-standard interfaces, wherein a type file describes the interfaces of the plural units, and wherein the application is available for profiling only as an application binary, the method comprising: generating a static interface metadata description of the application from the type file, wherein the static interface metadata description comprises type information about the interfaces of the plural units of the application; profiling the application by using the static interface metadata description on the application binary, resulting in an application profile; combining the application profile with a network profile; analyzing the combination of the application and network profiles; generating a distribution plan; and during execution of the application, distributing the plural units in the distributed computing environment according to the distribution plan.
Claim 19
Independent Claim 148 words
A method to profile an application for partitioning and distributing plural units of the application in a distributed computing environment, wherein the plural units communicate across strongly-typed, binary-standard interfaces, wherein a type file describes the interfaces of the plural units, and wherein the application is available for profiling only as an application binary, the method comprising: generating a static interface metadata description of the application from the type file, wherein the static interface metadata description comprises type information about the interfaces of the plural units of the application; profiling the application by using the static interface metadata description on the application binary, resulting in an application profile; combining the application profile with a network profile; analyzing the combination of the application and network profiles; generating a distribution plan; and during execution of the application, distributing the plural units in the distributed computing environment according to the distribution plan.
Claim 20
Dependent Claim 43 words
The method of claim 17 wherein the step of generating a static interface metadata description comprises: receiving a source code type description of the interfaces; analyzing the source code description with static analysis; and producing the static interface metadata description of the interfaces.
Claim 21
Dependent Claim 37 words
The method of claim 17 wherein the step of generating a static interface metadata description comprises: receiving a compiled type file comprising information descriptive of the interfaces; and producing the static interface metadata description of the interfaces.
Claim 22
Dependent Claim 43 words
The method of claim 17 wherein the step of profiling comprises: determining dynamic interaction between the plural units of the application through interfaces described in the static interface metadata description; and generating the application profile, wherein the application profile models the dynamic interaction.
Claim 23
Dependent Claim 53 words
The method of claim 17 wherein the step of profiling comprises: measuring the number and size of communications through the interfaces of the plural units using the static interface metadata description of the application; and generating the application profile, wherein the application profile is a log of the communications between the plural units.
Claim 24
Dependent Claim 51 words
The method of claim 17 wherein the step of profiling comprises: measuring the size of communications through the interfaces of the plural units using the static interface metadata description of the application; and generating the application profile, wherein the application profile is a log of the communications between the plural units.
Claim 25
Dependent Claim 26 words
The method of claim 22 wherein for a communication, the log stores data representing a sending unit, a receiving unit, and the size of the communication.
Claim 26
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions to perform the method of claim 17 .
Claim 27
Independent Claim 98 words
A method to partition and distribute plural units of an application in a distributed computing environment, the method comprising: reading a first set of descriptors describing the application; reading a second set of descriptors including measurements of the distributed computing environment; analyzing the first and second sets of descriptors; generating a distribution plan for the application, the distribution plan comprising information specifying a partitioning of the plural units for distribution in the distributed computing environment; executing the application; and during execution of the application, distributing the plural units in the distributed computing environment according to the distribution plan.
Claim 28
Independent Claim 98 words
A method to partition and distribute plural units of an application in a distributed computing environment, the method comprising: reading a first set of descriptors describing the application; reading a second set of descriptors including measurements of the distributed computing environment; analyzing the first and second sets of descriptors; generating a distribution plan for the application, the distribution plan comprising information specifying a partitioning of the plural units for distribution in the distributed computing environment; executing the application; and during execution of the application, distributing the plural units in the distributed computing environment according to the distribution plan.
Claim 29
Dependent Claim 19 words
The method of claim 25 wherein the first set of descriptors comprises metadata describing the structure of the application.
Claim 30
Dependent Claim 34 words
The method of claim 25 wherein the first set of descriptors comprises information describing one or more location constraints on the placement of the plural units of the application in the distributed computing environment.
Claim 31
Dependent Claim 19 words
The method of claim 25 wherein the first set of descriptors comprises metadata describing the behavior of the application.
Claim 32
Dependent Claim 34 words
The method of claim 25 wherein the plural units have strongly-typed, binary-standard interfaces, and wherein the first set of descriptors describes communications through these interfaces in a set of one or more profiling scenarios.
Claim 33
Dependent Claim 25 words
The method of claim 25 wherein the second set of descriptors comprises measurements of current capabilities of plural computers of a physical network of computers.
Claim 34
Dependent Claim 23 words
The method of claim 25 wherein the second set of descriptors comprises estimates of average latency and average bandwidth for a physical network.
Claim 35
Dependent Claim 29 words
The method of claim 25 wherein the step of analyzing comprises: grouping the plural units based on the first and second sets of descriptors according to a grouping scheme.
Claim 36
Dependent Claim 35 words
The method of claim 25 wherein the step of analyzing comprises: representing the first and second sets of descriptors as a commodity flow model; and finding a minimum cut/maximum flow for the commodity flow model.
Claim 37
Dependent Claim 54 words
The method of claim 25 wherein the step of generating a distribution plan comprises: associating the plural units with one or more locations in the distributed computing environment; and producing the distribution plan, wherein the distribution plan comprises a mapping of the plural units of the application to locations in the distributed computing environment.
Claim 38
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions to perform the method of claim 25 .
Claim 39
Dependent Claim 66 words
The method of claim 25 wherein the second set of descriptors describes a physical network of computers; wherein the step of analyzing comprises finding a minimum cut/maximum flow for a commodity flow model based on the first and second sets of descriptors, and wherein the distribution plan comprises a mapping of the plural units of the application to one or more computers in the physical network.
Claim 40
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions to perform the method of claim 36 .
Claim 41
Dependent Claim 18 words
The method of claim 25 wherein system services of the distributed computing environment support distributing the plural units.
Claim 42
Dependent Claim 25 words
The method of claim 25 wherein a combination of system services from a dedicated system and the distributed computing environment supports distributing the plural units.
Claim 43
Dependent Claim 95 words
The method of claim 25 further comprising: defining a threshold for execution of the application in the distributed computing environment, the threshold describing an accepted deviation from the expected performance of the application; during execution of the application, if the threshold is exceeded: noting the recent behavior of the application in the distributed computing environment; generating a second distribution plan for the application, the second distribution plan assimilating the recent behavior; executing the application; and during execution of the application, distributing the plural units in the distributed computing environment according to the second distribution plan.
Claim 44
Dependent Claim 30 words
The method of claim 40 wherein the step of noting the recent behavior comprises: generating a new first set of descriptors; and re-analyzing the first and second sets of descriptors.
Claim 45
Dependent Claim 30 words
The method of claim 40 wherein the step of noting the recent behavior comprises: generating a new second set of descriptors; and re-analyzing the first and second sets of descriptors.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2009-01-02 2009-07-04 2010-01-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2013-01-02 2013-07-04 2014-01-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2017-01-02 2017-07-04 2018-01-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag