Server-Side Weaving for Crosscutting Code Instrumentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current code-development strategies and programming paradigms face challenges in implementing crosscutting functionalities like code instrumentation and error logging, as they often require manual insertion of instrumentation routines, which is time-consuming, error-prone, and counter to modern hierarchical organization approaches.

Innovation Solution

Implementing server-side weaving of advice into programs before distribution to client computers, rather than client-side weaving, to efficiently integrate crosscutting functionalities such as instrumentation, error logging, and performance monitoring, aligning with modern code-development strategies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If client-side weaving is used to integrate crosscutting functionalities, then the program can be distributed in a modular form, but computational overhead and user-perceptible delays occur on client computers

Engineering Contradiction:
Improvemodular program distributionVSAvoidcomputational efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent inverts the traditional client-side weaving approach by implementing server-side weaving. Instead of having client computers perform the computationally intensive weaving operation after receiving program code, the server performs the weaving before distribution. This inversion eliminates the computational overhead and delays on client computers while still enabling modular program distribution through advice modules.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent applies preliminary action by performing the weaving operation in advance on the server before the program code is distributed to client computers. The advice modules are integrated into the program code during server-side processing, so that when the code is downloaded to clients, the crosscutting functionalities are already integrated, eliminating the need for client-side weaving operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If manual insertion of instrumentation routines is used, then code can be instrumented, but the process is time-consuming and error-prone

Engineering Contradiction:
Improvecode instrumentation capabilityVSAvoidinstrumentation implementation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements self-service through automated server-side weaving that performs the instrumentation integration without manual intervention. The system automatically identifies joinpoints in the program code and integrates advice modules at the appropriate locations, eliminating the time-consuming and error-prone manual insertion process while maintaining reliable code instrumentation capability.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary mechanism (the server-side weaving system) that mediates between the program code and the advice modules. This intermediary automatically performs the integration of crosscutting functionalities at compile time or load time, replacing manual instrumentation insertion and eliminating associated errors and time losses.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If crosscutting functionalities are inserted across compartmentalized code modules, then comprehensive instrumentation is achieved, but it violates hierarchical organization principles

Engineering Contradiction:
Improvecomprehensive instrumentation coverageVSAvoidcode organization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by separating crosscutting functionalities into distinct advice modules that can be independently defined and managed. These modular advice modules target specific joinpoints in the program code, allowing comprehensive instrumentation coverage across multiple code modules while maintaining the hierarchical organization of the original code structure. The weaving mechanism selectively integrates these segmented advice modules at appropriate locations without disrupting the overall code architecture.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10296299B2Server-side weaving of application-oriented-programming advice into computer code that preempts client-side load-time weaving
Publication Date: 2019.05.21 VMWARE INC
  • US10296299B2 patent drawing
  • US10296299B2 patent drawing
  • US10296299B2 patent drawing

AI summary

The current application is directed to implementation of crosscutting functionalities, including code instrumentation, error logging, performance monitoring and performance-data logging, and other such crosscutting functionalities. These crosscutting functionalities generally violate, or run counter to, modem 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. In current client/server environments, for certain types of programs distributed by a server to client computers, including programs embedded in files that specify web pages, cross-cutting functionality is encoded in advice included with the programs and distributed to the client computers, which weave the advice into programs prior to or during client-side interpretation of the programs. The current application is directed to methods and systems that replace client-side weaving of advice into programs by weaving of the advice into the programs by the server computer prior to distribution of the program to the client.