Tools and techniques for instrumenting interfaces of units of a software program
1 Assignment
0 Petitions
Accused Products
Abstract
An automatic distributed partitioning system (ADPS) determines which unit exposes an interface in a framework in which units lack reliable identities. The ADPS detects a reference to an interface. For the interface, the ADPS assures that the unit that exposes the interface is identified. Using unit identities, the ADPS performs operations such as profiling of an application or classifying units of an application. An interface wrapper for the interface stores the identity of the unit that exposes the interface, as well as information about the interface and a reference to instrumentation. When a client unit calls a member function of an interface, the interface wrapper intercepts the call and invokes the instrumentation. The instrumentation performs an operation such as profiling the application or classifying a unit. The ADPS detects when an interface is undocumented, and handles undocumented interfaces without invoking the full instrumentation capabilities of the ADPS. When the ADPS detects an undocumented interface, the ADPS notes a pair-wise location constraint for the units that communicate across the undocumented interface.
91 Citations
86 Claims
-
1-66. -66. (canceled)
-
67. A computer-readable medium having stored thereon a data structure, comprising:
-
a first data field containing data representing a reference to instrumentation;
a second data field containing data representing a reference to an interface as a whole of a unit of a software program wherein the software program comprises plural units and wherein if the interface reference is present, then the interface has been wrapped;
a third data field containing data representing an identity of the unit of the software program; and
a fourth data field containing data for use by the instrumentation. - View Dependent Claims (68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81)
-
-
82. A method of processing data stored in a data structure in computer memory, the method comprising:
in response to input to a software program, processing data in the data structure, the data structure comprising;
a first data field containing data representing a reference to instrumentation;
a second data field containing data representing a reference to an interface as a whole of a unit of the software program wherein the software program comprises plural units and wherein if the interface reference is present, then the interface has been wrapped;
a third data field containing data representing an identity of the unit of the software program; and
a fourth data field containing data for use by the instrumentation. - View Dependent Claims (83, 84, 85)
-
86. A system comprising:
-
means for storing data in a data structure, the data structure comprising;
a first data field containing data representing a reference to instrumentation, a second data field containing data representing a reference to an interface as a whole of a unit of a software program wherein the software program comprises plural units and wherein if the interface reference is present, then the interface has been wrapped, a third data field containing data representing an identity of the unit of the software program, and a fourth data field containing data for use by the instrumentation; and
means for processing the data in the data structure.
-
Specification