Runtime Aspect Switching for Crosscutting Code Instrumentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current code-development strategies and programming paradigms are inflexible and inefficient for implementing crosscutting functionalities like code instrumentation and error logging, as they require extensive recompilation and are prone to errors, contradicting the hierarchical organization of modern code structures.

Innovation Solution

The implementation of a flexible and run-time-modifiable system using aspect-oriented programming (AOP) with an intelligent switch that allows for dynamic alteration of crosscutting functionality implementations, such as data collection and error logging, through advice switches and aspect-strategy parameters, enabling conditional execution of advice code during program execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Stability of the object's composition

If traditional code-development strategies and programming paradigms are used to implement crosscutting functionalities, then code is organized into hierarchical modules with clear structure, but extensive recompilation is required and the system is inflexible to modifications

Engineering Contradiction:
Improvecode structure organizationVSAvoidflexibility of crosscutting functionality
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent segments crosscutting functionalities into separate aspect modules that can be independently defined, compiled, and activated. Aspects are divided into pointcut definitions (identifying joinpoints) and advice code (specifying crosscutting behavior), allowing modular organization that maintains code structure while enabling flexible activation and deactivation of specific functionalities at runtime.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic aspect strategy parameters that can be modified at runtime to control which aspects are active and how they behave. The system transitions from static compilation-time decisions to dynamic runtime adjustments, allowing crosscutting functionalities to be enabled, disabled, or reconfigured without recompilation, thus resolving the contradiction between structural stability and adaptability.

Inventive Principle:
Principle #15Dynamics

2Reliability

If crosscutting functionalities are inserted across objects and modules, then comprehensive instrumentation and error logging are achieved, but the implementation becomes complex and error-prone

Engineering Contradiction:
Improvecomprehensiveness of instrumentationVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an aspect-oriented programming intermediary layer that mediates between traditional modular code and crosscutting functionalities. The aspect mechanism serves as an intermediary that automatically weaves instrumentation and error logging code into appropriate joinpoints across modules, eliminating the need for manual insertion and reducing implementation complexity while maintaining comprehensive coverage.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal aspect mechanism that can handle multiple crosscutting concerns (instrumentation, error logging, transaction management, etc.) through a single unified framework. This universal approach reduces implementation complexity by providing consistent syntax and semantics for all crosscutting functionalities, rather than requiring separate mechanisms for each type of crosscutting concern.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of operation

If aspect-oriented programming tools are used to facilitate code instrumentation, then crosscutting functionalities can be implemented within object-oriented paradigm, but certain challenges to implementing cross-cutting functionalities remain

Engineering Contradiction:
Improveease of code instrumentationVSAvoidimplementation of crosscutting functionality
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent incorporates feedback mechanisms through aspect strategy parameters that allow runtime monitoring and adjustment of aspect behavior. The system provides feedback about which aspects are active, what joinpoints are being intercepted, and allows dynamic modification of aspect strategies based on runtime conditions, thereby improving the reliability of crosscutting functionality implementation while maintaining ease of operation.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8997042B2Flexible and run-time-modifiable inclusion of functionality in computer code
Publication Date: 2015.03.31 VMWARE INC
  • US8997042B2 patent drawing
  • US8997042B2 patent drawing
  • US8997042B2 patent drawing

AI summary

The current application is directed to flexible and run-time-modifiable implementation of crosscutting functionalities, including code instrumentation, error logging, and other such crosscutting functionalities. These crosscutting functionalities generally violate, or run counter to, modern code-development strategies and programming-language features that seek to partition logic into hierarchically organized compartments and modules with related functionalities, attribute values, and other common features. One feature of the methods and systems for implementing crosscutting functionalities to which the current application is directed is an intelligent switch that can be controlled, at run time, to alter invocation and behavior of crosscutting-functionality implementations, including data-collection instrumentation, error logging, and other crosscutting-functionality implementations.