Distributed App Profiling via Client-Server Timestamp Correlation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Unified development approaches for distributed applications obscure performance understanding, making it difficult to track and optimize performance due to complex transformations and the separation of client and server components, leading to slower application performance compared to hand-coded applications.

Innovation Solution

Instrumenting both client-side and server-side code to generate timestamps, allowing for end-to-end visibility of performance metrics by correlating events and information flows across multiple tiers, thereby providing precise tracking and identification of performance bottlenecks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If unified development approaches are used to develop distributed applications, then development complexity is reduced and code can be written on a single platform, but performance tracking and optimization become obscured and difficult

Engineering Contradiction:
Improvedevelopment complexityVSAvoidperformance tracking difficulty
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies preliminary action by instrumenting the code during the unified development phase, before distribution. Timestamps and markers are embedded in the code at key points (method entries, exits, network operations, database operations) during the initial development stage. This preliminary instrumentation ensures that performance data collection is already in place before the code is compiled and distributed to different tiers, eliminating the need for post-distribution instrumentation and enabling effective performance tracking despite the obscured code connections.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If code is transformed and distributed across multiple tiers automatically, then unified development is enabled, but the connection between distributed components and original code is obscured

Engineering Contradiction:
Improveunified development capabilityVSAvoidcode connection information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent uses markers and timestamps as visual indicators (analogous to color changes) that are embedded in the code at specific locations. These markers maintain their identity through the compilation and distribution process, allowing traceability of code execution flow across tiers. The markers act as persistent identifiers that preserve the connection between original code and its distributed counterparts, enabling performance analysis despite the transformation and separation of code across multiple tiers.

Inventive Principle:
Principle #32Color changes

3Reliability

If complete page refreshes are used for server requests, then data consistency is maintained, but user interaction is interrupted and performance appears slower

Engineering Contradiction:
Improvedata consistencyVSAvoiduser interaction speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the page update process into multiple parts: initial HTML retrieval, subsequent incremental updates via AJAX, and selective rendering. The instrumentation tracks performance at each segment (initial load, asynchronous updates, partial refreshes). This segmentation allows the system to maintain data consistency through structured updates while improving user interaction speed by avoiding complete page refreshes, as users can continue interacting with partially updated content.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10050848B2Data-driven profiling for distributed applications
Publication Date: 2018.08.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10050848B2 patent drawing
  • US10050848B2 patent drawing
  • US10050848B2 patent drawing

AI summary

An exemplary method includes providing an application that includes client-side code and server-side code, instrumenting the client-side code and the server-side code to generate timestamps, distributing the instrumented client-side code and the instrumented server-side code and monitoring timestamps generated during execution of the application. In such a method, where timestamps generated by the client-side code and timestamps generated by the server-side code occur along a common timeline, a developer can monitor performance of the distributed application. Other exemplary methods, systems, etc., are also disclosed.