Inheritance Repository for Adaptive Bytecode Instrumentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing bytecode monitoring systems face challenges in adapting to complex and dynamic application environments with increased complexity due to features like aspect-oriented programming, requiring adaptive and flexible instrumentation placement tools that can manage run-time changes and instrument various bytecode-based applications without interfering with their behavior.

Innovation Solution

A system and method for adaptive, generic bytecode instrumentation using an inheritance repository that instruments bytecode at load-time or run-time, employing rule-based filters and an agent that intercepts class load events to dynamically adapt instrumentation, allowing for instrumentation of bytecode-based applications without source code modifications or access, and enabling instrumentation of top-level component interfaces like JDBC drivers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If bytecode instrumentation is performed at load-time or run-time to enable adaptive monitoring, then adaptability to dynamic environments is improved, but device complexity increases due to the need to manage inheritance structures and instrumentation rules

Engineering Contradiction:
Improveadaptability to dynamic environmentsVSAvoidcomplexity of instrumentation system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an inheritance repository as an intermediary data structure that stores pre-computed inheritance relationships between classes. This repository acts as a mediator between the instrumentation engine and the complex inheritance structure of monitored applications, allowing the engine to query relevant inheritance information without directly managing the full inheritance graph complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary action by pre-computing and storing inheritance relationships in the inheritance repository before actual instrumentation occurs. This allows the instrumentation engine to quickly query pre-processed inheritance information during run-time without performing complex inheritance analysis on-the-fly, thus reducing operational complexity.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If generic instrumentation rules are applied to instrument top-level component interfaces, then versatility across different applications is improved, but manufacturing precision deteriorates due to difficulty in selecting specific methods for instrumentation

Engineering Contradiction:
Improvegeneric instrumentation capabilityVSAvoidprecision of method selection
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent replaces manual or heuristic method selection mechanisms with an automated inheritance-based filtering system. The instrumentation engine uses inheritance relationships stored in the repository to automatically determine which methods should be instrumented based on generic rules, substituting complex manual selection logic with systematic inheritance traversal and filtering.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The system implements feedback by using the inheritance repository to provide information about class relationships back to the instrumentation engine. This feedback mechanism allows the engine to adjust its instrumentation decisions based on the actual inheritance structure of the monitored application, ensuring precise method selection while maintaining generic rule application.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If inheritance information is captured and stored to enable rule-based instrumentation, then adaptability to inheritance structures is improved, but loss of information increases due to the need to manage and transfer inheritance data in distributed systems

Engineering Contradiction:
Improvecapability to manage inheritance structuresVSAvoidinheritance data transfer efficiency
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent extracts only the essential inheritance information needed for instrumentation from the complete class hierarchy. The inheritance repository stores selectively extracted inheritance relationships rather than all possible class information, reducing the amount of data that needs to be transferred and managed in distributed environments while maintaining sufficient information for accurate instrumentation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system segments inheritance information into manageable units within the inheritance repository, organizing data by relevance and importance. This segmentation allows the instrumentation engine to request and transfer only specific inheritance information segments needed for particular instrumentation tasks, reducing overall information loss and improving transfer efficiency in distributed systems.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9047412B2System and method for extracting instrumentation relevant inheritance relationships for a distributed, inheritance rule based instrumentation system
Publication Date: 2015.06.02 DYNATRACE LLC
  • US9047412B2 patent drawing
  • US9047412B2 patent drawing
  • US9047412B2 patent drawing

AI summary

The presented enhancement of a rule based instrumentation system taking object oriented inheritance relationships into account is directed to the detection and extraction to inheritance relationships relevant for the instrumentation process. Relevant inheritance relationships which have an impact on the instrumentation process and typically only represent a small fraction of the complete inheritance relationships of a monitored application. The small size of the relevant inheritance relationships allows, for example to prepare it in advance and ship it as part of a monitoring application or to transmit inheritance information between different local instrumentation engines being part of a distributed instrumentation system.