IP Library Granted Patent US 9,438,491
Granted Patent B1
US 9,438,491 · App. 14/207,505 · Granted Sep 6, 2016

Service monitor for monitoring a network connection to track the performance of an application running on different mobile devices

Inventors: Robert Kwok (San Francisco, CA); Sean Hermany (Salt Lake City, UT); Andrew Yousef (San Francisco, CA); David Shirley (Oakland, CA); Andrew Levy (San Francisco, CA)
Assignee: APTELIGENT, INC.
H04L43/065H04L43/022
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,438,491
App. No.
14/207,505
Granted
Sep 6, 2016
Kind
B1
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 (26)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

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

9. 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.

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.

11. 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.

12. 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.

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.

14. 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.

15. 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.

16. 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.

17. 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.

18. 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.

19. 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.

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

Assignments (6)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2017
From: APTELIGENT, INC.
To: VMWARE, INC.
Reel/Frame 042481/0385 →
CHANGE OF NAME Recorded Jul 25, 2016
From: CRITTERCISM, INC.
To: APTELIGENT, INC.
Reel/Frame 039461/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2014
From: KWOK, ROBERT; LEVY, ANDREW; HERMANY, SEAN; YOUSEF, ANDREW; SHIRLEY, DAVID
To: CRITTERCISM, INC.
Reel/Frame 033799/0709 →
Continuity (1)
Provisional Application 61951491 · Mar 11, 2014