# US 12,113,691 B2 · Determining an end user experience score based on client device, network, server device, and application metrics

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,113,691 B2
- Document ID: US12113691B2
- Status: Granted
- Kind: B2
- Application number: 17/303,157
- Filed: 2021-05-21
- Published: 2021-10-21
- Granted: 2024-10-08
- Earliest claimed: 2018-03-29
- Assignees: Viavi Solutions Inc.
- Applicants: VIAVI Solutions Inc.
- Inventors: Steven Cohen; Kallingal Sebas Jayanth Kishoor; Todd Lange
- Web page: https://patentgrep.com/patent/US12113691B2

## CPC

- H04L 41/5067: Customer-centric QoS measurements
- H04L 43/0864: Round trip delays
- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 43/04: Processing captured monitoring data, e.g. for logfile generation
- H04L 43/065: related to network devices
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 41/16: using machine learning or artificial intelligence
- H04L 41/22: comprising specially adapted graphical user interfaces [GUI]
- H04L 43/0811: by checking connectivity
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A device receives client delay metrics associated with a client device, network delay metrics associated with a network, server delay metrics associated with a server device, and application delay metrics associated with an application provided by the server device, wherein the client device and the server device communicate via the network. The device calculates client delay scores based on the client delay metrics, and calculates network delay scores based on the network delay metrics. The device calculates server delay scores based on the server delay metrics, and calculates application delay scores based on the application delay metrics. The device calculates an end user experience score based on the client delay scores, the network delay scores, the server delay scores, and the application delay scores, and performs an action based on the end user experience score.

## Claims

### Claim 1

A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising:
one or more instructions that, when executed by one or more processors of a device, cause the device to:
calculate one or more client delay scores associated with providing first indications of delays caused by a client device;
calculate one or more network delay scores associated with providing second indications of delays caused by a network;
calculate one or more server delay scores associated with providing third indications of delays caused by a server device;
calculate one or more application delay scores associated with providing fourth indications of delays caused by an application;
identify a particular value;
generate an end user experience score by deducting, from the particular value, at least one of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores; and
selectively perform one or more actions based on the end user experience score, a largest source of delay, the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores,
wherein the largest source of delay is one of the client device, the network, the server device, or the application, and
wherein the one or more actions include one or more of:
restart at least one of the client device, the server device, one or more network devices associated with the network, or the application,
provide updated software to at least one of the client device, the server device, or the one or more network devices,
provide updated software for the application,
remove software from at least one of the client device, the server device, or the one or more network devices,
remove the application from the server device,
replace at least one of the server device, the one or more network devices, or the application,
add hardware to at least one of the client device, the server device, or the one or more network devices,
increase network bandwidth, or
add one or more other network devices to the network.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the one or more instructions further cause the device to:
bias, based on received metrics and/or auxiliary information, at least one of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the one or more instructions further cause the device to:
train one or more machine learning models by providing historical metrics and historical final scores to the one or more machine learning models; and
process, using the one or more machine learning models, one or more of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the one or more instructions further cause the device to:
provide historical metrics and historical final scores to one or more machine learning models;
receive predictions of rules based on providing the historical metrics and the historical final scores to the one or more machine learning models;
update the one or more machine learning models based on the predictions of rules; and
process, the one or more updated machine learning models, one or more of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the one or more instructions further cause the device to:
detect potential security threats associated with at least one of the client device, the server device, the network, or the application; and
wherein the one or more instructions, that cause the device to calculate the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores, cause the device to:
calculate the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores based on detecting the potential security threats.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the one or more instructions further cause the device to:
receive, via a user interface, one or more user-defined metrics; and
wherein the one or more instructions, that cause the device to calculate the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores, cause the device to:
calculate the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores based on the one or more user-defined metrics.

### Claim 7

A method, comprising:
calculating, by a device, one or more client delay scores associated with providing first indications of delays caused by a client device;
calculating, by the device, one or more network delay scores associated with providing second indications of delays caused by a network;
calculating, by the device, one or more server delay scores associated with providing third indications of delays caused by a server device;
calculating, by the device, one or more application delay scores associated with providing fourth indications of delays caused by an application;
identifying, by the device, a particular value;
generating, by the device, an end user experience score by deducting, from the particular value, at least one of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores; and
selectively performing, by the device, one or more actions based on the end user experience score, a largest source of delay, the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores,
wherein the largest source of delay is one of the network or the application, and
wherein the one or more actions include one or more of:
restart at least one of the client device, the server device, one or more network devices associated with the network, or the application,
provide updated software to at least one of the client device, the server device, or the one or more network devices,
provide updated software for the application,
remove software from at least one of the client device, the server device, or the one or more network devices,
remove the application from the server device,
replace at least one of the server device, the one or more network devices, or the application,
add hardware to at least one of the client device, the server device, or the one or more network devices,
increase network bandwidth, or
add one or more other network devices to the network.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
biasing, based on received metrics and/or auxiliary information, at least one of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores.

### Claim 9 (depends on 7)

The method of claim 7, further comprising:
training one or more machine learning models by providing historical metrics and historical final scores to the one or more machine learning models; and
processing, using the one or more machine learning models, one or more of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores.

### Claim 10 (depends on 7)

The method of claim 7, further comprising:
providing historical metrics and historical final scores to one or more machine learning models;
receiving predictions of rules based on providing the historical metrics and the historical final scores to the one or more machine learning models;
updating the one or more machine learning models based on the predictions of rules; and
processing, using the one or more updated machine learning models, one or more of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores.

### Claim 11 (depends on 7)

The method of claim 7, further comprising:
detecting potential security threats associated with at least one of the client device, the server device, the network, or the application; and
wherein calculating the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores comprises:
calculating the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores based on detecting the potential security threats.

### Claim 12 (depends on 7)

The method of claim 7, further comprising:
receiving, via a user interface, one or more user-defined metrics; and
wherein calculating the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores:
calculating the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores based on the one or more user-defined metrics.

### Claim 13

A device, comprising:
one or more memories; and
one or more processors, communicatively coupled to the one or more memories, configured to:
calculate one or more client delay scores associated with providing first indications of delays caused by a client device;
calculate one or more network delay scores associated with providing second indications of delays caused by a network;
calculate one or more server delay scores associated with providing third indications of delays caused by a server device;
calculate one or more application delay scores associated with providing fourth indications of delays caused by an application;
identify a particular value;
generate an end user experience score by deducting, from the particular value, at least one of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores; and
selectively perform one or more actions based on the end user experience score, a largest source of delay, the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores,
wherein the largest source of delay is one of the network or the application, and
wherein the one or more actions include one or more of:
restart at least one of the client device, the server device, one or more network devices associated with the network, or the application,
provide updated software to at least one of the client device, the server device, or the one or more network devices,
provide updated software for the application,
remove software from at least one of the client device, the server device, or the one or more network devices,
remove the application from the server device,
replace at least one of the server device, the one or more network devices, or the application,
add hardware to at least one of the client device, the server device, or the one or more network devices,
increase network bandwidth, or
add one or more other network devices to the network.

### Claim 14 (depends on 13)

The device of claim 13, wherein the one or more processors are configured to:
bias, based on received metrics and/or auxiliary information, at least one of the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, or the one or more application delay scores.

### Claim 15 (depends on 13)

The device of claim 13, wherein the one or more processors are configured to:
train one or more machine learning models by providing historical metrics and historical final scores to the one or more machine learning models; and
wherein the one or more processors, to calculate the end user experience score, are configured to:
calculate the end user experience score based on training the one or more machine learning models.

### Claim 16 (depends on 13)

The device of claim 13, wherein the one or more processors are configured to:
provide historical metrics and historical final scores to one or more machine learning models;
receive predictions of rules based on providing the historical metrics and the historical final scores to the one or more machine learning models;
update the one or more machine learning models based on the predictions of rules; and
using the one or more updated machine learning models.

### Claim 17 (depends on 13)

The device of claim 13, wherein the one or more processors are configured to:
detect potential security threats associated with at least one of the client device, the server device, the network, or the application; and
calculate the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores based on detecting the potential security threats.

### Claim 18 (depends on 13)

The device of claim 13, wherein the one or more processors are configured to:
receive, via a user interface, one or more user-defined metrics; and
wherein the one or more processors, to calculate the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores, are configured to:
calculate the one or more client delay scores, the one or more network delay scores, the one or more server delay scores, and/or the one or more application delay scores based on the one or more user-defined metrics.

### Claim 19 (depends on 7)

The method of claim 7, further comprising:
generating a user interface that includes first information indicating the end user experience score and second information indicating the largest source of delay.

### Claim 20 (depends on 13)

The device of claim 13, wherein the one or more processors are configured to:
generate a user interface that includes first information indicating the end user experience score and second information indicating the largest source of delay.
