Server-Side Weaving for Crosscutting Code Instrumentation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If manual insertion of instrumentation routines is used, then code can be instrumented, but the process is time-consuming and error-prone
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.
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.
3Reliability
If crosscutting functionalities are inserted across compartmentalized code modules, then comprehensive instrumentation is achieved, but it violates hierarchical organization principles
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.
Data Source
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.


