IP Library Granted Patent US 9,647,918
Granted Patent B2
US 9,647,918 · App. 15/227,814 · Granted May 9, 2017

Mobile device and method attributing media services network usage to requesting application

Inventors: Gregory G. Raleigh (Woodside, CA); Jeffrey Green (Sunnyvale, CA); James Lavine (Corte Madera, CA); Vien-Phuong Nguyen (Newark, CA)
Assignee: Headwater Research LLC
H04L43/0876G06F9/54H04L41/0896H04L41/5041H04L47/14H04L47/2441H04W28/0268
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,647,918
App. No.
15/227,814
Granted
May 9, 2017
Kind
B2
Abstract

A wireless end-user device has a wireless modem, a network stack configurable to receive and transmit data via the modem and a wireless network, and two Application Programming Interfaces (APIs) available to device applications. The first API allows applications to open and use data flows via the network stack. The second API allows applications to make data transfer requests for media objects associated with network resource identifiers. The second API prompts a media service manager to manage network data transfers for the media object via the network stack. A service classification agent associates wireless network data usage for the media object network data transfers with the device application making the request.

Claims (51)

1. A wireless end-user device, comprising:

a wireless modem configurable to connect to a wireless network;

a network stack configurable to receive and transmit data via the wireless modem and the wireless network;

a first network stack Application Programming Interface (API), containing at least one first call accessible to each of a plurality of device applications, the first network stack API callable by each of the plurality of device applications to open and use data packet flows via the network stack, the wireless modem, and the at least one wireless network;

a second API containing at least one second call accessible to each of the plurality of device applications, the second API callable by each of the plurality of device applications to make a data transfer request for a media object associated with a network resource identifier supplied by the calling device application;

a media service manager prompted by the second call, to manage network data transfers for the media object by interfacing with the network stack to retrieve the media object associated with the network resource identifier via the wireless modem and the wireless network; and

one or more service classification and measurement agents to associate wireless network data usage for the media object network data transfers with the device application that requests the data transfer for the media object, to associate wireless network data usage for respective data packet flows opened and used via the first network stack API with the device application opening such respective data packet flow, and to reconcile wireless network data usage for each of the plurality of device applications to track an aggregate wireless network data usage attributable to each of the plurality of device applications via both the first network stack API and the second API.

2. The wireless end-user device of claim 1 , wherein to associate wireless network data usage for the media object network data transfers with the device application that makes the data transfer request for the media object comprises to identify at least one of an application name, an application identifier, or a process identifier for the application that makes the data transfer request.

3. The wireless end-user device of claim 2 , wherein the data transfer request comprises a network resource identifier that identifies a source of the data to be transferred, a proxy to the source of the data to be transferred, or the media object to be transferred, in particular, wherein the network resource identifier comprises one or more of an Internet Protocol address, a Uniform Resource Locator, a remote file name/address, a stream name, and an object name.

4. The wireless end-user device of claim 3 , wherein to associate wireless network data usage for the media object network data transfers with the device application that makes the data transfer request for the media object further comprises to store an entry comprising the at least one of the application name, the application identifier, or the process identifier for each of the device applications that makes a data transfer request, each stored entry further comprising information about the corresponding network resource identifier for the data transfer request.

5. The wireless end-user device of claim 4 , wherein the one or more service classification and measurement agents includes a requesting application storing function within the media services manager.

6. The wireless end-user device of claim 5 , wherein the media service manager is a first media service manager and the requesting application storing function is a first requesting application storing function, the device further comprising a second media service manager of a different type than the first media service manager, the service classification agent including a second requesting application storing function within the second media service manager.

7. The wireless end-user device of claim 6 , further comprising a usage and classification database, the one or more service classification and measurement agents to receive application association information stored by the first and second requesting application storing functions, and to maintain the usage and classification database based in part on the received application association information.

8. The wireless end-user device of claim 3 , wherein to manage network data transfers for the media object by interfacing with the at least one network stack comprises to map the data transfer request and network resource identifier to one or more data flow connections communicated through the device network stack.

9. The wireless end-user device of claim 1 , further comprising a media player and a user interface, wherein the media object comprises media data that is, as a result of the media service manager management of network data transfers for the media object, received by the device and played by the media player through the user interface.

10. The wireless end-user device of claim 9 , the media service manager to receive, from the application launching the data transfer request, a network resource indicator that identifies the media object,

return to the application a media object handle descriptor,

call a proxy service to perform one or more network data transfers comprising the media object,

accept, from the application, commands associated with the media object handle descriptor, and

control playback of the media data by the media player based on the commands.

11. The wireless end-user device of claim 1 , wherein the one or more service classification and measurement agents comprise:

a requesting application storage agent to, for each device application that makes a data transfer request using the second API, store application identification information and network resource identification information;

a network data flow storage agent to, for each network data flow associated with the media service manager, identify network data flow identification information; and

an association agent to match the network data flow identification information for a network data flow with application identification information for the network data transfer associated with the network data flow.

12. The wireless end-user device of claim 1 , further comprising:

a local database to store data usage, including data usage for network data transfers managed by the media service manager on behalf of a device application, the stored data usage classified by device application;

a user interface; and

a user interface display agent to display the data usage classified by application to a user.

13. The wireless end-user device of claim 1 , the one or more service classification and measurement agents to further associate one or more traffic flows, comprising the media object network data transfers, with the device application that makes the data transfer request, the device further comprising an enforcement agent to, based on the association between the one or more traffic flows and the device application, enforce an application-based usage control on network data usage by one or more of the device applications.

14. A method of operating a wireless end-user device when connected via a wireless modem to a wireless network, the method comprising:

operating a first network stack Application Programming Interface (API), containing at least one first call accessible to each of a plurality of device applications, the first network stack API callable by each of the plurality of device applications to open and use data flows via a network stack coupled to the wireless modem;

operating a second API containing at least one second call accessible to each of the plurality of device applications, the second API callable by each of the plurality of device applications to make a data transfer request for a media object associated with a network resource identifier supplied by the calling device application;

operating a media service manager prompted by the second call, the media service manager managing network data transfers for the media object by interfacing with the network stack to retrieve the media object associated with the network resource identifier via the wireless modem and the wireless network; and

associating wireless network data usage for the media object network data transfers with the device application that requests the data transfer for the media object, associating wireless network data usage for respective data packet flows opened and used via the first network stack API with the device application opening such respective data packet flow, and reconciling wireless network data usage for each of the plurality of device applications to track an aggregate wireless network data usage attributable to each of the plurality of device applications via both the first network stack API and the second API.

15. A wireless end-user device, comprising:

a wireless modem configurable to connect to a wireless network;

a network stack configurable to receive and transmit data via the wireless modem and the wireless network;

a first network stack Application Programming Interface (API), containing at least one first call to allow device applications to open and use data flows via the network stack, the wireless modem, and the at least one wireless network;

a second API containing at least one second call to allow device applications to make a data transfer request for a media object associated with a network resource identifier supplied by the device application, wherein the data transfer request comprises a network resource identifier that identifies a source of the data to be transferred, a proxy to the source of the data to be transferred, or the media object to be transferred, in particular, wherein the network resource identifier comprises one or more of an Internet Protocol address, a Uniform Resource Locator, a remote file name/address, a stream name, and an object name;

a media service manager prompted by the second call, to manage network data transfers for the media object by interfacing with the network stack to retrieve the media object associated with the network resource identifier via the wireless modem and the wireless network; and

a service classification agent to associate wireless network data usage for the media object network data transfers with the device application that requests the data transfer for the media object, wherein to associate data usage for the media object network data transfers with the device application that makes the data transfer request for the media object comprises to identify and store at least one of an application name, an application identifier, or a process identifier for the application that makes the data transfer request, each stored entry further comprising information about the corresponding network resource identifier for the data transfer request.

16. The wireless end-user device of claim 15 , wherein the service classification agent includes a requesting application storing function within the media services manager.

17. The wireless end-user device of claim 16 , wherein the media service manager is a first media service manager and the requesting application storing function is a first requesting application storing function, the device further comprising a second media service manager of a different type than the first media service manager, the service classification agent including a second requesting application storing function within the second media service manager.

18. The wireless end-user device of claim 17 , further comprising a usage and classification reconciliation agent and a usage and classification database, the usage and classification reconciliation agent to receive application association information stored by the first and second requesting application storing functions, and to maintain the usage and classification database based in part on the received application association information.

19. A wireless end-user device, comprising:

a wireless modem configurable to connect to a wireless network;

a network stack configurable to receive and transmit data via the wireless modem and the wireless network;

a first network stack Application Programming Interface (API), containing at least one first call to allow device applications to open and use data flows via the network stack, the wireless modem, and the at least one wireless network;

a second API containing at least one second call to allow device applications to make a data transfer request for a media object associated with a network resource identifier supplied by the device application, wherein the data transfer request comprises a network resource identifier that identifies a source of the data to be transferred, a proxy to the source of the data to be transferred, or the media object to be transferred, in particular, wherein the network resource identifier comprises one or more of an Internet Protocol address, a Uniform Resource Locator, a remote file name/address, a stream name, and an object name;

a media service manager prompted by the second call, to manage network data transfers for the media object by interfacing with the network stack to retrieve the media object associated with the network resource identifier via the wireless modem and the wireless network, wherein to manage network data transfers for the media object by interfacing with the at least one network stack comprises to map the data transfer request and network resource identifier to one or more data flow connections communicated through the device networking stack; and

a service classification agent to associate wireless network data usage for the media object network data transfers with the device application that requests the data transfer for the media object, wherein to associate data usage for the media object network data transfers with the device application that makes the data transfer request for the media object comprises to identify at least one of an application name, an application identifier, or a process identifier for the application that makes the data transfer request.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Jan 5, 2017
From: HEADWATER PARTNERS I LLC; HEADWATER MANAGEMENT LLC
To: HEADWATER RESEARCH LLC
Reel/Frame 041268/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2016
From: RALEIGH, GREGORY G.; GREEN, JEFFREY; LAVINE, JAMES; NGUYEN, PHUONG D.
To: HEADWATER PARTNERS I LLC
Reel/Frame 039344/0929 →
Continuity (56)
Continuation 14339110 · Jul 23, 2014
Continuation 14338807 · Jul 23, 2014
Continuation 14098527 · Dec 5, 2013
Continuation 13374959 · Jan 24, 2012
Continuation In Part 12695019 · Jan 27, 2010
Continuation In Part 12695020 · Jan 27, 2010
Continuation In Part 12694445 · Jan 27, 2010
Continuation In Part 12694451 · Jan 27, 2010
Continuation In Part 12694455 · Jan 27, 2010
Continuation In Part 12695980 · Jan 28, 2010
Continuation In Part 13229580 · Sep 9, 2011
Continuation In Part 13237827 · Sep 20, 2011
Continuation In Part 13239321 · Sep 21, 2011
Continuation In Part 13248028 · Sep 28, 2011
Continuation In Part 13247998 · Sep 28, 2011
Continuation In Part 13248025 · Sep 28, 2011
Continuation In Part 13253013 · Oct 4, 2011
Continuation In Part 13309556 · Dec 1, 2011
Continuation In Part 13309463 · Dec 1, 2011
Continuation In Part 13134028 · May 25, 2011
Continuation In Part 13134005 · May 25, 2011
Continuation In Part 12695021 · Jan 27, 2010
Continuation In Part 12380780 · Mar 2, 2009
Continuation In Part 12380780 · Mar 2, 2009
Continuation In Part 12380788 · Mar 2, 2009
Provisional Application 61435564 · Jan 24, 2011
Provisional Application 61472606 · Apr 6, 2011
Provisional Application 61550906 · Oct 24, 2011
Provisional Application 61589830 · Jan 23, 2012
Provisional Application 61264126 · Nov 24, 2009
Provisional Application 61270353 · Jul 6, 2009
Provisional Application 61275208 · Aug 25, 2009
Provisional Application 61237753 · Aug 28, 2009
Provisional Application 61264120 · Nov 24, 2009
Provisional Application 61348022 · May 25, 2010
Provisional Application 61381159 · Sep 9, 2010
Provisional Application 61381162 · Sep 9, 2010
Provisional Application 61384456 · Sep 20, 2010
Provisional Application 61389547 · Oct 4, 2010
Provisional Application 61385020 · Sep 21, 2010
Provisional Application 61387243 · Sep 28, 2010
Provisional Application 61387247 · Sep 28, 2010
Provisional Application 61407358 · Oct 27, 2010
Provisional Application 61418507 · Dec 1, 2010
Provisional Application 61418509 · Dec 1, 2010
Provisional Application 61420727 · Dec 7, 2010
Provisional Application 61422565 · Dec 13, 2010
Provisional Application 61422572 · Dec 13, 2010
Provisional Application 61422574 · Dec 13, 2010
Provisional Application 61252151 · Oct 15, 2009
Provisional Application 61252153 · Oct 15, 2009
Provisional Application 61206354 · Jan 28, 2009
Provisional Application 61206944 · Feb 4, 2009
Provisional Application 61207393 · Feb 10, 2009
Provisional Application 61207739 · Feb 13, 2009
Related Publication 20160344604A1 · Nov 24, 2016