IP Library Granted Patent US 10,382,306
Granted Patent B2
US 10,382,306 · App. 14/792,562 · Granted Aug 13, 2019

Application network usage management

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 10,382,306
App. No.
14/792,562
Granted
Aug 13, 2019
Kind
B2
Abstract

Disclosed are examples that relate to monitoring network usage by client devices and enforcing compliance rules related thereto. In various examples, a system can intercept a network call in transit from a client application to an operating system of a client device, wherein the network call is configured to cause a content provider to transmit content to the operating system over a carrier network, and wherein the network call is further configured to cause the operating system to transmit the content to the client application; can modify the configuration of the network call such that the network call causes the operating system to transmit the content to the management component; can receive the content from the operating system; can analyze the content for network usage; can create a network usage analysis; and, can provide the content to the client application.

Claims (69)

1. A system, comprising:

a computing device comprising memory;

a client application stored in the memory and being configured to communicate over a network by invoking a network call to an operating system of the computing device, the client application not comprising a mechanism to detect or share network usage; and

a management component included in the client application before compilation as a software development kit (SDK) comprising executable instructions that, when executed by the computing device, cause the computing device to at least:

identify the network call to the operating system of the computing device prior to the network call being invoked by the client application, wherein the network call is a method call in source code of the client application configured to:

establish a communication channel with a content provider over a carrier network;

cause the content provider to transmit content to the operating system over the carrier network; and

cause the operating system to transmit the content to the client application;

modify the network call to cause the management component to receive the content instead of the client application, wherein the management component is configured to:

receive the content from the operating system as at least one data packet;

determine that the content is one of personal network usage or enterprise network usage based at least in part on an application identifier of the client application;

analyze a header of the at least one data packet to determine an amount of network usage;

maintain a network usage analysis for the client application and a plurality of other client applications using the amount of network usage, wherein the network usage analysis comprises the personal network usage and the enterprise network usage; and

execute the network call to provide the content to the client application.

2. The system of claim 1 , wherein:

the management component has at least one administrator privilege on the client device when the client device is enrolled with a remote management service over the carrier network; and

the management component is further configured to cause the computing device to at least transmit the network usage analysis to the remote management service over the carrier network.

3. The system of claim 2 , wherein the remote management service is configured to:

determine that a compliance rule is violated based at least in part on the network usage analysis; and

perform a remedial action specified by the compliance rule.

4. The system of claim 3 , wherein the remedial action comprises causing the carrier network to be inaccessible to the computing device.

5. The system of claim 1 , wherein the management component is further configured to cause the computing device to at least:

transmit a request to a network carrier to replenish a data allotment associated with a carrier account corresponding to the computing device, wherein the carrier account is associated with a carrier network provided by the network carrier.

6. The system of claim 1 , wherein the network call comprises a method call within at least one of the NSURLSession or NSURLConnection Objective C classes.

7. A non-transitory computer-readable medium storing a plurality of computer instructions for a management component included in a client application before compilation as a software development kit (SDK) executable by a computing device, the plurality of computer instructions being configured to cause the computing device to at least:

identify a network call to an operating system of the computing device prior to the network call being invoked by the client application, wherein the network call is a method call in source code of the client application configured to:

establish a communication channel with a content provider over a carrier network;

cause the content provider to transmit content to the operating system over a carrier network; and

cause the operating system to transmit the content to the client application;

modify the network call to cause the management component of the computing device to receive the content instead of the client application, wherein the management component is configured to:

receive the content from the operating system as at least one data packet;

determine that the content is one of personal network usage or enterprise network usage based at least in part on an application identifier of the client application;

analyze a header of the at least one data packet to determine an amount of network usage;

update a network usage analysis maintained for the client application and a plurality of other client applications using the amount of network usage, wherein the network usage analysis comprises the personal network usage and the enterprise network usage; and

execute the network call to provide the content to the client application.

8. The non-transitory computer-readable medium of claim 7 , wherein:

the management component has at least one administrator privilege on the client device when the client device is enrolled with a remote management service over the carrier network; and

the plurality of computer instructions are further configured to cause the computing device to at least transmit the network usage analysis to the remote management service over the carrier network.

9. The non-transitory computer-readable medium of claim 8 , wherein the remote management service is configured to:

determine that a compliance rule is violated based at least in part on the network usage analysis; and

perform a remedial action specified by the compliance rule.

10. The non-transitory computer-readable medium of claim 9 , wherein the remedial action comprises causing the carrier network to be inaccessible to the computing device.

11. The non-transitory computer-readable medium of claim 7 , wherein the plurality of computer instructions are further configured to cause the computing device to at least:

transmit a request to a network carrier to replenish a data allotment associated with a carrier account corresponding to the computing device, wherein the carrier account is associated with a carrier network provided by the network carrier.

12. The non-transitory computer-readable medium of claim 7 , wherein the network call comprises a method call within at least one of the NSURLSession or NSURLConnection Objective C classes.

13. A method, comprising:

including a management component in a client application before compilation as a software development kit (SDK) comprising executable instructions for execution of the client application on a client device;

identifying, by the management component, a network call to an operating system of the client device prior to the network call being invoked by the client application, the network call being invoked as a method in source code of the client application to the operating system of the client device, wherein the network call is configured to:

establish a communication channel with a content provider over a carrier network;

cause a content provider to transmit content to the operating system over a carrier network; and

cause the operating system to transmit the content to the client application;

modifying the network call to cause the management component to receive the content instead of the client application, wherein the management component is configured to:

receive the content from a network interface as at least one data packet;

determine that the content is one of personal network usage or enterprise network usage based at least in part on an application identifier of the client application;

analyze a header of the at least one data packet to determine an amount of network usage;

generate a network usage analysis for the client application and a plurality of other client applications using the amount of network usage, wherein the network usage analysis comprises the personal network usage and the enterprise network usage; and

execute the network call to provide the content to the client application.

14. The method of claim 13 , wherein:

the management component has at least one administrator privilege on the client device when the client device is enrolled with a remote management service over the carrier network; and

the method further comprises transmitting the network usage analysis to the remote management service over the carrier network.

15. The method of claim 14 , further comprising:

determining, by the remote management service, that a compliance rule is violated based at least in part on the network usage analysis; and

performing, by the remote management service, a remedial action specified by the compliance rule.

16. The method of claim 15 , wherein the remedial action comprises causing the carrier network to be inaccessible to the client device.

17. The method of claim 13 , further comprising:

transmit a request to a network carrier to replenish a data allotment associated with a carrier account, wherein the carrier account is associated with a carrier network provided by the network carrier.

18. The method of claim 13 , wherein the network call comprises a method call within at least one of the NSURLSession or NSURLConnection Objective C classes.

19. The method of claim 15 , wherein the remedial action comprises disabling the client application.

20. The method of claim 15 , wherein the compliance rule requires that a data allotment associated with a carrier account be greater than a size of the content.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: AIRWATCH LLC
To: OMNISSA, LLC
Reel/Frame 068327/0670 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2019
From: CHEN, LUCAS; SINGH, DEEP; SINGH, RAJIV; RAJAN, RAGHURAM; BESSA, IURY
To: AIRWATCH LLC
Reel/Frame 049595/0933 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2018
From: BESSA, IURY
To: AIRWATCH LLC
Reel/Frame 047657/0907 →