# US 9,438,491 B1 · Service monitor for monitoring a network connection to track the performance of an application running on different mobile devices

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

- Number: US 9,438,491 B1
- Document ID: US9438491B1
- Status: Granted
- Kind: B1
- Application number: 14/207,505
- Filed: 2014-03-12
- Granted: 2016-09-06
- Earliest claimed: 2014-03-11
- Assignees: Apteligent, Inc.
- Applicants: Apteligent, Inc.
- Inventors: Robert Kwok; Sean Hermany; Andrew Yousef; David Shirley; Andrew Levy
- Web page: https://patentgrep.com/patent/US9438491B1

## CPC

- G06Q 30/0282: Rating or review of business operators or products
- G06F 11/0778: {Dumping, i.e. gathering error/state information after a fault for later diagnosis}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06Q 10/06395: {Quality analysis or management}
- G06Q 30/0201: Market modelling; Market analysis; Collecting market data
- H04L 41/046: comprising network management agents or mobile agents therefor
- H04L 43/022: by sampling
- H04L 43/04: Processing captured monitoring data, e.g. for logfile generation
- H04L 43/065: related to network devices
- H04L 43/12: Network monitoring probes
- G06F 8/70: Software maintenance or management
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Some embodiments provide a network service monitor that operates on a number of different mobile devices to track and monitor network services that an application is using. The network service monitor of some embodiments includes a monitored connection object to capture data relating to the network service from a network connection each time the application uses the network connection to access the network service. The network service monitor then sends captured data to a performance monitoring server in order to present, based on the captured data and other captured data from other mobile devices, at least one performance report relating to the performance of the network service as used by the same application across a number of mobile devices. In some embodiments, the network connection is a socket connection.

## Claims

### Claim 1

A method for an application running on a mobile device, the method comprising:
providing a network service monitor to monitor and track a network service that the application is using on the mobile device, the network service monitor comprising a monitored socket object to capture data relating to the network service from a network socket each time the application uses the network socket to access the network service; and
providing an output agent to send the captured data to a performance monitoring server in order to present, based on the captured data and other captured data from other mobile devices, at least one performance report relating to the performance of the network service as used by the same application across a number of mobile devices.

### Claim 2 (depends on 1)

The method of claim 1, wherein providing the network service monitor comprises providing a socket handler that is called by the application each time the application requires the network socket to access the network service.

### Claim 3 (depends on 1)

The method of claim 1, wherein the network service is accessed through a network service request, wherein the monitored socket object captures data relating to the network service request by reading an output stream from the network socket.

### Claim 4 (depends on 3)

The method of claim 3, wherein the network service request includes a number of request headers, wherein the network service monitor comprises a parser to parse the output stream to identify one or more pieces of data from the request headers.

### Claim 5 (depends on 3)

The method of claim 3, wherein the monitored socket object captures data relating to a response to the network service request by reading an input stream from the network socket.

### Claim 6 (depends on 5)

The method of claim 5, wherein the response to the network service request includes a number of response headers, wherein the monitored socket object comprises a parser to parse the input stream to identify one or more pieces of data from the response headers.

### Claim 7 (depends on 1)

The method of claim 1, wherein the network service monitor further comprises a monitored connection object to capture data relating to a different network connection.

### Claim 8 (depends on 1)

The method of claim 1 further comprising providing a storage for storing the captured data.

### Claim 9 (depends on 8)

The method of claim 8, wherein the network service monitor further comprises at least one mobile state data collector to associate the captured data with mobile state data that indicates the state of the mobile device at the time the data relating to the network service was captured, wherein the storage is a data queue to process one network service request at a time in the order that the network service request was received and to ensure that the captured data relating to the network service request is synchronized with the mobile state data.

### Claim 10

A non-transitory machine readable medium storing an application for execution by at least one processing unit of a mobile device, the application comprising:
a network service monitor to monitor and track a network service that the application is using on the mobile device, the network service monitor comprising a monitored connection object to capture data relating to the network service from a network connection each time the application uses the network connection to access the network service; and
an output agent to send the captured data to a performance monitoring server in order to present, based on the captured data and other captured data from other mobile devices, at least one performance report relating to the performance of the network service as used by the same application across a number of mobile devices.

### Claim 11 (depends on 10)

The non-transitory machine readable medium of claim 10, wherein the network service monitor further comprises a connection handler that is called by the application each time the application requires the network connection to access the network service.

### Claim 12 (depends on 10)

The non-transitory machine readable medium of claim 10, wherein the network service monitor further comprises at least one mobile state data collector to associate the captured data with mobile state data that indicates the state of mobile device at the time the data relating to the network service was captured.

### Claim 13

A non-transitory machine readable medium storing an application for execution by at least one processing unit of a mobile device, the application comprising sets of instructions for:
monitoring and tracking a network service that the application is using on the mobile device by capturing data relating to the network service from a network connection each time the application uses the network connection to access the network service; and
sending the captured data to a performance monitoring server in order to present, based on the captured data and other captured data from other mobile devices, at least one performance report relating to the performance of the network service as used by the same application across a number of mobile devices.

### Claim 14 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the network service is accessed through a network service request, wherein the set of instructions for capturing the data comprises a set of instructions for reading an output stream from the network connection to identify one or more pieces of data from the network service request.

### Claim 15 (depends on 14)

The non-transitory machine readable medium of claim 14, wherein the network service request includes a number of request headers, wherein the set of instructions for capturing the data further comprises a set of instructions for parsing the output stream to identify the one or more pieces of data from the request headers.

### Claim 16 (depends on 14)

The non-transitory machine readable medium of claim 14, wherein the network service request is associated with a response, wherein the set of instructions for capturing the data further comprises a set of instructions for reading an input stream from the network connection to identify one or more pieces of data from the response.

### Claim 17 (depends on 16)

The non-transitory machine readable medium of claim 16, wherein the response includes a number of response headers, wherein the set of instructions for capturing the data further comprises a set of instructions for parsing the input stream to identify the one or more pieces of data from the response headers.

### Claim 18 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the application further comprises a set of instructions for associating the captured data with mobile state data that indicates the state of mobile device at the time the service request data was captured.

### Claim 19 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the application further comprises a set of instructions for associating the captured data with additional contextual data, including at least one of an application ID, the version number of the application, a device ID of the mobile device, the model of the mobile device, the version number of the mobile operating system (OS) running on the mobile device, and a user ID associated with the application.

### Claim 20 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the network connection is a socket connection.
