Client-Server Performance Measurement via Browser Script Injection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for measuring end-to-end performance of client-server applications without degrading server performance and without installing agents on remote computers are inadequate, particularly in virtualization environments, as they often require modifying server applications or using measurement appliances close to end users.
Innovation Solution
A hardware-based traffic sampling and redirection approach using programmable content-addressable memory (CAM) redirects client requests to a measurement computer, where a browser-executable measurement script is embedded in server responses to record performance metrics without modifying the server application or installing software on client computers, allowing for accurate and scalable performance measurement.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If measurement appliances are deployed close to end user computers, then measurement precision is improved, but device complexity and ease of operation deteriorate
Solution Approach 1:
The system uses the client's existing web browser to execute measurement scripts, making the client device serve its own measurement needs without requiring external measurement appliances or agents. The browser's JavaScript engine performs the measurement functions locally, eliminating the need for separate measurement infrastructure at client locations.
Solution Approach 2:
The measurement computer serves multiple functions: it acts as a web server delivering measurement scripts, a data collection point receiving timing information, and a performance analysis system. This multi-functionality eliminates the need for dedicated measurement appliances at each client location, reducing overall system complexity.
2Measurement precision
If agents are installed on remote computers, then measurement precision is improved, but ease of operation and device complexity worsen
Solution Approach 1:
The client device's web browser executes the measurement scripts without requiring any installed agents or software. The browser's built-in JavaScript engine performs all measurement functions, making the system easy to deploy since no client-side installation is needed while still achieving precise client-side performance measurement.
Solution Approach 2:
The measurement functionality is extracted from the server application and embedded directly into the web content delivered to clients. This extraction allows measurement to occur at the client side without requiring client-side software installation, maintaining deployment simplicity while achieving accurate client-perceived performance measurement.
3Measurement precision
If server application code is modified for measurement, then measurement precision is improved, but ease of manufacture and adaptability worsen
Solution Approach 1:
The measurement functionality is extracted from the server application code and placed in the web content delivered to clients. The server simply delivers web pages containing embedded JavaScript measurement scripts, allowing precise measurement without modifying the server application code itself. This maintains adaptability across different server applications while achieving accurate measurement.
Solution Approach 2:
The web content acts as an intermediary between the server application and the measurement function. Instead of modifying the server application to include measurement code, the measurement scripts are embedded in the web content that the server delivers, allowing the server to remain unmodified while still enabling precise measurement of server response times.
4Measurement precision
If traditional measurement methods are used, then measurement precision is improved, but loss of time and productivity worsen
Solution Approach 1:
The client device's browser executes the measurement scripts locally using its own JavaScript engine, performing measurement functions without requiring additional network round trips to external measurement servers. This self-service approach achieves accurate end-to-end measurement while minimizing additional time consumption, as the measurement logic runs locally rather than requiring continuous communication with external measurement infrastructure.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In an embodiment, a packet data switching system comprises content-addressable memory configured to redirect, to a measurement computer, a request to access a server application program hosted at a server computer in response to receiving the request from a client computer; the measurement computer comprises request rewriting logic configured to receive the request via redirection based on the CAM, to record a first time value representing a time of receiving the request, to forward the request to the server application, to receive a response from the server computer to the request, to rewrite a payload of the response by embedding a browser-executable measurement reporting script into the payload, and to forward the rewritten response to the client; performance recording logic configured to receive a second time value from the client based on the client computer executing the measurement reporting script, and to store a performance record with the time values.