US20140011538A1 - Predictive Caching of IP Data - Google Patents

Predictive Caching of IP Data Download PDF

Info

Publication number
US20140011538A1
US20140011538A1 US14/024,780 US201314024780A US2014011538A1 US 20140011538 A1 US20140011538 A1 US 20140011538A1 US 201314024780 A US201314024780 A US 201314024780A US 2014011538 A1 US2014011538 A1 US 2014011538A1
Authority
US
United States
Prior art keywords
mobile device
cellular
data
content
access point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US14/024,780
Other versions
US8825881B2 (en
Inventor
James Mulcahy
Sai Rathnam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Relay Inc
Original Assignee
Bandwidth com Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US14/024,780 priority Critical patent/US8825881B2/en
Assigned to BANDWIDTH.COM, INC. reassignment BANDWIDTH.COM, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MULCAHY, JAMES, RATHNAM, SAI
Application filed by Bandwidth com Inc filed Critical Bandwidth com Inc
Publication of US20140011538A1 publication Critical patent/US20140011538A1/en
Priority to US14/336,661 priority patent/US8948042B2/en
Priority to US14/336,696 priority patent/US20140328202A1/en
Priority to US14/337,335 priority patent/US20140329559A1/en
Priority to US14/338,903 priority patent/US20140335911A1/en
Priority to US14/447,739 priority patent/US20140342772A1/en
Priority to US14/447,750 priority patent/US20140342730A1/en
Publication of US8825881B2 publication Critical patent/US8825881B2/en
Application granted granted Critical
Priority to PCT/US2014/054514 priority patent/WO2015038464A1/en
Priority to PCT/US2014/054507 priority patent/WO2015038462A1/en
Assigned to REPUBLIC WIRELESS, INC. reassignment REPUBLIC WIRELESS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BANDWIDTH.COM, INC.
Assigned to REPUBLIC WIRELESS, INC. reassignment REPUBLIC WIRELESS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BANDWIDTH.COM, INC.
Assigned to REPUBLIC WIRELESS, INC. reassignment REPUBLIC WIRELESS, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NO. 9,014,138 SHOULD BE PATENT NO. 9,014,038 PREVIOUSLY RECORDED ON REEL 041030 FRAME 0123. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: BANDWIDTH.COM, INC.
Assigned to RELAY, INC. reassignment RELAY, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: REPUBLIC WIRELESS, INC.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2885Hierarchically arranged intermediate devices, e.g. for hierarchical caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/06Testing, supervising or monitoring using simulated traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/04Network layer protocols, e.g. mobile IP [Internet Protocol]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals

Definitions

  • a mobile device may employ a cellular transceiver to allow a user to make and receive telephone calls, send text messages, and exchange Internet Protocol (IP) data over a cellular access network.
  • IP Internet Protocol
  • That same mobile device may also employ a second RF transceiver that operates on a non-cellular network such as, for instance, one that operates over the 802.11 family of protocols that are commonly known as WiFi.
  • the mobile device may also employ another RF transceiver such as, for instance, one that operates over the 802.16 family of protocols that are commonly known as WiMax.
  • the WiFi or WiMax transceiver(s) may be used for IP network access (e.g., Internet access) anytime the mobile device is within range of a WiFi or WiMax IP network access point.
  • Non-cellular network transceiver such as the WiFi or WiMax transceivers over the cellular transceiver whenever possible.
  • Non-cellular (e.g., WiFi or WiMax) access is generally free whereas cellular access to IP networks comes at a price.
  • the cost can escalate the more IP data is consumed.
  • IP network access points As mobile devices such as smartphones become ubiquitous, the demand for ‘mobile’ IP data access continues to grow. Limiting such IP network access to cellular network access points only drives costs up for consumers and tax or stress the cellular carrier's IP data network. The end result may lead to higher costs and less than expected quality of service in terms of network access speeds or even the ability to establish and maintain an IP network connection in areas of high congestion.
  • non-cellular (e.g. WiFi or WiMax) IP connectivity greatly alleviates the aforementioned problems.
  • a mobile device is its mobility. This means that the user will often find herself without non-cellular connectivity at times but with a need or desire to consume IP data from sources external to the mobile device.
  • the mobile device may do so utilizing the cellular access network for IP data services. Doing so, however, invokes the costs of using the network as previously mentioned.
  • the user may desire to minimize to the greatest extent possible any dependence on the cellular network for IP data consumption.
  • FIG. 1 illustrates an exemplary networked environment for implementing certain exemplary embodiments described herein.
  • FIG. 2 is a block diagram illustrating some of the functions of a mobile device according to one or more embodiments described herein.
  • FIG. 3 is a logic flow diagram according to one or more embodiments described herein.
  • FIG. 4 is a logic flow diagram according to one or more embodiments described herein.
  • FIG. 5 illustrates an exemplary networked environment for implementing certain exemplary embodiments described herein.
  • FIG. 6 is a logic flow diagram according to one or more embodiments described herein.
  • FIG. 7 is a logic flow diagram according to one or more embodiments described herein.
  • Embodiments described herein disclose methods and techniques to cache IP data locally on the mobile device while the device has non-cellular (e.g., WiFi or WiMax) IP network connectivity.
  • the IP data that is cached may be pre-determined ahead of time based on user usage patterns and/or user instruction.
  • IP data, content, or IP content data may be used interchangeably throughout this disclosure and refer to data of interest to a user of a mobile device wherein the data is remotely stored but is accessible to the mobile device over an IP network connection.
  • the IP network connection may be facilitated by a WiFi transceiver, a cellular transceiver, or an alternate transceiver (e.g., WiMax) housed within the mobile device.
  • the IP data may be representative in whole or in part of textual data, graphical data, audio data, video data, or combinations thereof.
  • the underlying data may be stored or represented in a variety of file formats or protocols and may or may not be encrypted.
  • text data may be stored in a file such as a MicrosoftTM Word file, a pdf file, or http text data.
  • Graphical data may be in the form of images stored as bitmap, JPEG, GIF, or other image file formats.
  • Audio data may be stored in an MP3 or .wav format while video data may be stored as MPEG, .avi, etc.
  • the underlying data regardless of its actual format, is considered IP data when it is packaged and transported to the mobile device over an IP connection. The embodiments are not limited to these examples.
  • the mobile device may be instructed to fetch and cache the IP content from the specific web-site while the mobile device has non-cellular (e.g., WiFi or WiMax) IP network connectivity.
  • the mobile device may even include wired IP network connectivity such as, for instance, an Ethernet connection.
  • the user may access the web site IP data at a later time through cache memory without having to access a cellular network.
  • the mobile device may also acquire intelligent data as to non-cellular IP network connectivity patterns such that the background caching may be performed at certain times. The caching may also be performed or updated anytime the mobile device has non-cellular IP network connectivity to keep the mobile device as up to date as possible for content that may be refreshed periodically.
  • the caching may be performed in such a manner that allows the user to access the IP data from the native mobile device application that they normally would. For instance, web browsing data may be accessed using a mobile browser while content specific applications (e.g., Fox NewsTM, CNNTM, USA TodayTM, etc.) that operate on the mobile device in their own applications may be accessed using the native application. In this manner, the user experience does not change when accessing cached IP data. The user may still access the data from the native application she would normally use.
  • content specific applications e.g., Fox NewsTM, CNNTM, USA TodayTM, etc.
  • the mobile device may monitor usage and behavior patterns to create items of content (e.g., IP data) to download and locally store on the mobile device.
  • the mobile device may then pull the content from the content providers over the Internet at a time when the mobile device is typically connected to the Internet via WiFi, WiMax, or another non-cellular IP network access point.
  • the mobile device may collect IP data consumption and usage information associated with a mobile device.
  • the mobile device may predict, based on the collected IP data consumption usage information, IP data the mobile device can be expected to consume at a future time.
  • the mobile device may then automatically download the predicted IP data to the mobile device over a non-cellular connection and store the downloaded predicted IP data in cache memory on the mobile device.
  • the mobile device may also collect non-cellular network connectivity information associated with the mobile device and predict, based on the collected non-cellular network connectivity information, when the mobile device can be expected to be connected to a non-cellular network. The mobile device may then attempt to perform the automatic downloading of the predicted IP data at a time when the mobile device can be expected to be connected to a non-cellular network. If the mobile device is not connected to a non-cellular network it may wait until the mobile device is connected to a non-cellular network before automatically downloading the predicted IP data.
  • the mobile device may also store the downloaded predicted IP data in cache memory on the mobile device that is associated with the application on the mobile device that would have downloaded the predicted IP data if the download had been manually initiated by a user. This ensures that the user experience when accessing the cached IP data is the same in so far as the same user interface(s) and/or native applications are used as when the user is using a real-time IP network connection to consume IP data. Thus, when there is no non-cellular connection available to the mobile device, the user may still consume the cached IP data by bypassing a cellular network connection and accessing the stored predicted IP data from cache memory using an application on the mobile device associated with the stored predicted IP data in response to a request for the IP data.
  • the mobile device may register with a content service provider directly to indicate a desire to receive content (e.g., IP data) from that content provider.
  • the content service provider may then initiate a download to the mobile device in accordance with the request previously made by the user.
  • the content server would push the requested content to the mobile device over the Internet at a time when the mobile device is typically connected to the Internet via WiFi, WiMax, or another non-cellular IP network access point.
  • the mobile device may send a content request to a content server over an IP network in which the content request is indicative of recurring IP data of interest to the user of the mobile device.
  • the content server may queue the requested IP content data in a buffer associated with the mobile device and send a notification message to the mobile device indicating that the requested IP content data is queued.
  • the mobile device may determine whether it is connected to a non-cellular network and automatically download the queued IP content data from the content server when it is connected to a non-cellular network.
  • the mobile device may then store the downloaded IP content data in cache memory.
  • the mobile device may also collect non-cellular network connectivity information associated with the mobile device and predict, based on the collected non-cellular network connectivity information, when the mobile device can be expected to be connected to a non-cellular network. The mobile device may then attempt to perform the automatic downloading of the queued IP content data at a time when the mobile device can be expected to be connected to a non-cellular network. If the mobile device is not connected to a non-cellular network it may wait until the mobile device is connected to a non-cellular network before automatically downloading the queued IP content data.
  • the mobile device may also store the downloaded queued IP content data in cache memory on the mobile device that is associated with the application on the mobile device that would have downloaded the queued IP content data if the download had been manually initiated by a user. This ensures that the user experience when accessing the cached IP data is the same in so far as the same user interface(s) and/or native applications are used as when the user is using a real-time IP network connection to consume IP content data. Thus, when there is no non-cellular connection available to the mobile device, the user may still consume the cached IP content data by bypassing a cellular network connection and accessing the stored queued IP content data from cache memory using an application on the mobile device associated with the stored queued IP content data in response to a request for the IP content data.
  • the mobile device may monitor usage and behavior patterns to create items of content (e.g., IP data) to download and locally store on the mobile device.
  • the mobile device may then forward the items of content to be stored on the mobile device to an intelligent cache server resident within the Internet.
  • the intelligent cache server may then pull the IP content data from the content providers and push it to the mobile device over the Internet at a time when the mobile device is typically connected to the Internet via WiFi, WiMax, or another non-cellular IP network access point.
  • the mobile device may send a content request to an intelligent cache server over an IP network in which the content request is indicative of recurring IP data of interest to the user of the mobile device.
  • the intelligent cache server may retrieve the requested IP content data from content servers and queue the requested IP content data in a buffer associated with the mobile device and send a notification message to the mobile device indicating that the requested IP content data is queued.
  • the mobile device may determine whether it is connected to a non-cellular network and automatically download or receive the queued IP content data from the intelligent cache server when it is connected to a non-cellular network. The mobile device may then store the downloaded or received IP content data in cache memory.
  • the mobile device may also collect non-cellular network connectivity information associated with the mobile device and predict, based on the collected non-cellular network connectivity information, when the mobile device can be expected to be connected to a non-cellular network. The mobile device may then attempt to perform the automatic downloading of the queued IP content data at a time when the mobile device can be expected to be connected to a non-cellular network. If the mobile device is not connected to a non-cellular network it may wait until the mobile device is connected to a non-cellular network before automatically downloading or receiving the queued IP content data.
  • the mobile device may also store the downloaded queued IP content data in cache memory on the mobile device that is associated with the application on the mobile device that would have downloaded the queued IP content data if the download had been manually initiated by a user. This ensures that the user experience when accessing the cached IP data is the same in so far as the same user interface(s) and/or native applications are used as when the user is using a real-time IP network connection to consume IP content data. Thus, when there is no non-cellular connection available to the mobile device, the user may still consume the cached IP content data by bypassing a cellular network connection and accessing the stored queued IP content data from cache memory using an application on the mobile device associated with the stored queued IP content data in response to a request for the IP content data.
  • the content may then be stored by the mobile device in cache memory such that when the user went to access the content, no Internet connection would be required. Moreover, the user may consume desired content without having to utilize a cellular data connection.
  • the content download (pull or push) may be timed to repeat at specified intervals or whenever a non-cellular IP network connection is available.
  • the content caching scheme may run as a background process to keep the content as fresh and updated as possible.
  • a content server 105 is representative of an entity that creates and/or distributes content over an IP based network such as, for instance, the Internet 115 .
  • the content server 105 may represent a web site or a streaming audio or video service.
  • the content itself may be textual, graphical, audio, video, or some combination thereof.
  • the networked environment 100 also illustrates a mobile device 110 , an IP based local area network (LAN) 120 , a cellular network 125 , and an alternative network 130 .
  • LAN local area network
  • the mobile device may connect to the Internet using any of the aforementioned networks 120 , 125 , 130 via an appropriate access point (not shown).
  • the user of the mobile device may prefer to use one network rather than another given the opportunity.
  • the user may prefer to connect the mobile device to the Internet 115 using an 802.11 WiFi connection over an IP network like LAN 120 .
  • WiFi connectivity may represent the highest quality and lowest cost means of Internet 115 access.
  • WiFi connectivity may not always be available to the mobile device.
  • one of the other networks may be used to gain Internet 115 access.
  • Internet 115 access via a cellular network 125 is another common means of connectivity. Using the cellular network 125 for IP data services, however, can be costly.
  • Cellular service providers typically charge for the use of the cellular network 125 based on the amount of IP data that is consumed (e.g., uploaded or downloaded). Moreover, the costs increase the more IP data is consumed. Thus, it is often desirable to minimize the use of the cellular network 125 for IP data services.
  • One such non-cellular alternative network 130 may be characterized as a WiMax network operable over the 802.16 wireless protocol standard.
  • Another such alternative network 130 may be characterized as a whitespace network.
  • a whitespace network may utilize RF spectrum that is shared with television broadcasters. The television broadcasters do not necessarily need to utilize all the spectrum allocated to them to broadcast their video signals. The unused spectrum may be tapped into to provide an alternative RF access point to a network that can interface with the Internet 115 .
  • FIG. 2 is a block diagram illustrating some of the functions of a mobile device 110 according to one or more embodiments described herein.
  • a mobile device may include, for instance, a smartphone, a personal digital assistant (PDA) device, a tablet style computer, a laptop or notebook style computer, etc.
  • the mobile device 110 may include a processor or processors 205 for controlling the various components and functions of the mobile device 110 .
  • the mobile device 110 may also include multiple RF transceivers such as, for instance, a WiFi transceiver 210 , a cellular transceiver 215 , and an alternate transceiver 220 .
  • the alternate transceiver 220 may also be characterized as a non-cellular transceiver in that it may connect with a network access point to provide access to the Internet 115 without the use or assistance of a cellular network 125 .
  • the WiFi transceiver 210 may be operable to communicate with an IP network access point using one or more of the 802.11 wireless transmission protocols. Upon connection with an IP network access point, the mobile device 110 may exchange IP data with servers or other computers that are connected with or communicable with the Internet 115 . This may include content servers 105 shown in FIG. 1 .
  • the cellular transceiver 215 may be operable to communicate with a cellular network 125 for both voice and IP data communications.
  • the cellular network 125 may be based on GSM, CDMA, or other communications protocols while on the IP data side, the cellular network 125 may be based on, for example, GPRS, EDGE, EV-DO, HSPA-D, HSPA-U, LTE, UMTS-WCDMA, UMTS-TDD, etc.
  • GSM Global System for Mobile communications
  • CDMA Code Division Multiple Access
  • cellular network 125 may be based on, for example, GPRS, EDGE, EV-DO, HSPA-D, HSPA-U, LTE, UMTS-WCDMA, UMTS-TDD, etc.
  • use of the cellular network for IP data services can be costly and therefore to be avoided whenever a viable alternative is available to the mobile device 110 .
  • the alternate transceiver 220 may be a WiMax transceiver that is operable to communicate with an IP network access point using one or more of the 802.16 wireless transmission protocols.
  • the mobile device 110 may exchange IP data with servers or other computers that are connected with or communicable with the Internet 115 .
  • This may include content servers 105 shown in FIG. 1 .
  • the alternate transceiver 220 may be a whitespace transceiver that is operable to communicate with a whitespace network access point.
  • the whitespace network in turn, may be communicable with the Internet 115 to allow IP data communications between the mobile device 110 and servers or other computers that are connected with or communicable with the Internet 115 .
  • This may include content servers 105 shown in FIG. 1 .
  • the mobile device 110 may further include data storage 225 , software applications 230 , various user interface(s) 235 a predictive caching application 240 .
  • the data storage 225 may include, for example, one or more types of memory devices including, but not limited to, flash memory usable for ROM, RAM, PROM, EEPROM, and cache.
  • the software applications 230 may include, for example, one or more software applications executable on or by the processor(s) 205 including, but not limited to, web browsers, email applications, application specific data and/or audio/video applications, etc. For instance, examples of application specific software video applications could be YouTubeTM or NetflixTM while an examples of application specific software audio applications could be SpotifyTM or PandoraTM.
  • Examples of application specific graphical/text/multimedia software applications may include those for news delivery services like Fox NewsTM, CNNTM, The New York TimesTM, USA TodayTM, etc.
  • the user interface(s) 235 may include, for example, a display, a touchscreen for soft-key input, speaker(s), microphone(s), a keyboard for hard-key input, and one or more buttons.
  • the predictive caching application 240 may be operable to determine content of interest to the user of the mobile device 110 .
  • the content of interest may then be scheduled for download (e.g., pulled) or forwarded to a web based server for management such that the content of interest may be pushed to the mobile device 110 at appropriate times over a WiFi or WiMax connection and stored in cache memory.
  • the predictive caching application 240 is described further below.
  • FIG. 3 illustrates one embodiment of a logic flow 300 .
  • the logic flow 300 may be representative of some or all of the operations executed by one or more embodiments described herein.
  • steps are disclosed that allow a mobile device 110 to gather browsing and usage data of the mobile device 110 along with WiFi connectivity patterns to determine content of interest to a user of the mobile device 110 .
  • this content may be downloaded or pulled from content servers using a WiFi or WiMax connection and stored in cache memory for subsequent consumption by the user.
  • the logic flow 300 may observe the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 305 .
  • the user of the mobile device 110 may regularly visit one or more web sites which may be reflected by the browsing history or some other means of tracking.
  • the user may browse the USA TodayTM sports section on a regular basis as well as the NY TimesTM web site.
  • the user may access locally stored software applications 230 that are used to access the Internet for IP data consumption purposes.
  • Many news outlets have created custom applications that may run on the mobile device 110 and access the IP data stored on their own content servers. This model does not need a standard we browser but rather uses the native application interface designed by the content provider and executing on the mobile device.
  • the user may consume IP data from the USA TodayTM using a USA TodayTM app on the mobile device.
  • This native application has its own user interface and data presentation construct that the user may prefer. Collecting this browsing and application interaction data over a period of time may yield activity that the user of the mobile device regularly engages. The patterns may then yield a predictable model of future IP data consumption.
  • the logic flow 300 may observe WiFi and/or alternative network connectivity patterns at block 310 .
  • the mobile device 110 may typically have a WiFi connection or an alternative network (e.g., WiMax) connection everyday between the hours of midnight-7:00 AM, 8:00 AM-12:00 PM, 1:00 PM-5:00 PM, and again from 9:00 PM-midnight.
  • This schedule is more or less reflective of a typical workday in which the mobile device 110 has access to WiFi or WiMax at home from 9:00 PM-7:00 AM, loses access while commuting to a workplace, regains access while at work, and loses access again while commuting home. Similar patterns could be established for students or others.
  • the predictive caching application 240 can, over time, determine a fairly reliable time frame for expected WiFi or WiMax connectivity.
  • the logic flow 300 may update the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 315 .
  • the user of the mobile device 110 may collect and forward additional browsing history or software application interaction history data to the predictive caching application 240 . This helps keep the predictive caching application 240 current with respect to the user's most recent usage patterns.
  • the logic flow 300 may determine IP data content to download based on IP data content usage observations or explicit user instruction at block 320 .
  • the predictive caching application 240 may analyze the observed browsing history and application interaction history to determine that the mobile device regularly visits the same web site(s) and typically accesses the same software applications that retrieve IP data content from a content provider over the Internet 115 . Using this data, the predictive caching application 240 may create a script, background process, or other mechanism that identifies the content provider and the content that the mobile device will most likely want to access throughout the day.
  • the logic flow 300 may determine whether the mobile device 110 has a current WiFi connection at block 325 .
  • the predictive caching application 240 may query the WiFi transceiver 210 to determine whether the WiFi transceiver 210 is active and connected to an IP network access point and therefore capable of exchanging IP data over the Internet 115 . If the WiFi transceiver 210 does not currently have a connection with an IP network access point, the logic flow 300 may wait until the mobile device 110 has established a WiFi connection at block 330 .
  • the predictive caching application 240 may attempt to invoke the WiFi transceiver and its associated intelligence to scan for and connect with an available WiFi network.
  • the predictive caching application 240 may continuously or periodically monitor the WiFi connection status of the WiFi transceiver 240 and only pull IP content data it has determined to be of interest to the user or that the user has specifically requested when a WiFi connection exists. By running the predictive caching application 240 in the background, it can be ready to download as soon as a WiFi connection is established.
  • the logic flow 300 may download and cache IP content data over WiFi or an alternative network at block 335 .
  • the predictive caching application 240 determines that the mobile device 110 does have WiFi connectivity, the predictive caching application 240 can download IP content data it has determined to be of interest to the user or that the user has specifically requested. The downloaded IP content data may then be stored in local cache memory.
  • the downloading and caching step of block 335 may be optimized using the WiFi connectivity pattern data observed in block 310 . Using this information, the predictive caching application 240 may attempt to download IP content data during time frames that the mobile device 110 is typically connected to a WiFi network. For example, the mobile device may typically be coupled with a WiFi network at 5:00 AM each morning.
  • the predictive caching application 240 may attempt to download desired IP data at 5:00 AM each day so that the mobile device 110 can cache the IP data for later access by the user even if no WiFi connection exists.
  • the predictive caching application 240 may run in the background and periodically re-fresh the cached data with new IP content data anytime a WiFi connection exists. Each successful refresh helps keep the cached data as up to date as possible.
  • FIG. 4 illustrates one embodiment of a logic flow 400 .
  • the logic flow 400 may be representative of some or all of the operations executed by one or more embodiments described herein.
  • steps are disclosed that allow a mobile device 110 to establish a service relationship with a content provider.
  • the service relationship represents IP content desired by the user that is to be pushed or pulled from the content service provider to the mobile device 110 using a WiFi or WiMax connection.
  • the IP content may then be stored in cache memory for subsequent consumption by the user.
  • the logic flow 400 may send a content request to a content service provider at block 405 .
  • the predictive caching application 240 may initiate a communication session with a content service provider over the Internet 115 .
  • a communication session may be established between the content service provider and the mobile device 110 using a mobile web browser application.
  • a communication session may be established between the content service provider and a computer device that is not the mobile device 110 using a browser application.
  • the other computer device may be a computer, a tablet computer, an IP network enabled television, or other IP network connectable device.
  • the separate computer device may interact with the content service provider for purposes of registering the mobile device 110 with the content service provider.
  • the registration process may include creating an account that uniquely identifies the mobile device 110 as the intended recipient of IP content data.
  • the user may specify what IP content it desires during registration. For example, the user may register with a web site such as MLB.comTM and indicate that all top stories, or all stories pertaining to a favorite team be queued for download. The user may further specify that recent scores, standings, and schedules also be queued for download. In another example, the user may register with a web site such as CNN.comTM and indicate that all top stories, all stories mentioning the word “President”, the weather section of the web site, and various stock quotes be queued for download. There may also be a catch-all default that would queue the entire web site for download.
  • the user may register with a web site such as NetflixTM and indicate that certain movies or television shows be queued for download.
  • the user may also specify that it would like NetflixTM to choose 2 movies and 3 television shows on its own based on prior viewing history to be queued for download.
  • content selection options can be a wide variety of content selection options between the user and the content service provider. The examples above are illustrative and not limiting to the embodiments described herein.
  • the logic flow 400 may queue the requested content in a buffer associated with the mobile device 110 at block 410 .
  • the content service provider may aggregate the requested content and place it within a buffer uniquely associated with the mobile device 110 as per the registration process.
  • the logic flow 400 may then notify the mobile device 110 that the requested content has been queued for download at block 415 . This may be accomplished, for example, via text message, a pushed alert, email, etc. In an automated system, the notification does not necessarily need to be made known to the user as described above. Rather, the predictive caching application 240 may receive the notification and act on its own to retrieve the desired content.
  • the predictive caching application 240 may determine if the mobile device 110 is currently connected to a WiFi network at block 420 . If not, the predictive caching application 240 will not attempt to retrieve the content from the content service provider. Rather, the predictive caching application 240 will wait until a WiFi connection exists before downloading the queued content from the content service provider at block 430 . If the mobile device 110 happens to lose the WiFi connection during the download process, the predictive caching application 240 can automatically terminate the download until a WiFi connection for the mobile device 110 is reestablished. This ensures that a cellular network 125 is not utilized to download any content and therefore avoids incurring any wireless cellular data usage fees.
  • the logic flow 400 may store the requested content in cache memory on the mobile device 110 at block 435 .
  • the content downloaded from the content service provider over a WiFi connection may be locally stored in data storage component 225 on the mobile device 110 .
  • the user may then access the stored data without needing any type of network connection whatsoever.
  • FIG. 5 illustrates an exemplary networked environment for implementing certain exemplary embodiments described herein.
  • FIG. 5 is a duplication of FIG. 1 with an additional component added.
  • FIG. 5 duplicates FIG. 1
  • the disclosure of FIG. 1 applies equally to FIG. 5 and is not repeated here.
  • the additional component in FIG. 5 may be characterized as an intelligent caching server 135 .
  • the intelligent caching server 135 resides in the cloud (e.g., accessible via the Internet 115 ).
  • the intelligent caching server 135 my have a relationship with the mobile device 110 such that data is communicated and exchanged between the mobile device 110 and the intelligent caching server 135 .
  • the mobile device 110 may provide historical browsing data as well as software application interaction data to the intelligent caching server 135 .
  • the intelligent caching server 135 may then analyze this data to determine or predict the type of IP content data the user of mobile device 110 will likely attempt to access at a later time.
  • the intelligent caching server 135 may then go out and aggregate the IP content data and store it on behalf of the mobile device 110 .
  • the intelligent caching server 135 may then notify the mobile device 110 of the stored IP content data so that the mobile device 110 may, at a time when it is connected to a WiFi network, download and locally store the IP content data.
  • FIG. 6 illustrates one embodiment of a logic flow 600 .
  • the logic flow 600 may be representative of some or all of the operations executed by one or more embodiments described herein.
  • steps are disclosed that allow a mobile device 110 to gather browsing and usage data of the mobile device 110 along with WiFi connectivity patterns to determine content of interest to a user of the mobile device 110 .
  • This information may then be sent to an intelligent caching server 135 that will pull the content from the various content service providers and store it so that the mobile device 110 may, at specified times using a WiFi or WiMax connection, download it.
  • the incoming content to the mobile device 110 may then be stored in cache memory for subsequent consumption by the user.
  • the logic flow 600 may observe the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 605 .
  • the user of the mobile device 110 may regularly visit one or more web sites which may be reflected by the browsing history or some other means of tracking.
  • the user may browse the USA TodayTM sports section on a regular basis as well as the NY TimesTM web site.
  • the logic flow 600 may then upload the browsing and software application interaction history of the mobile device 110 with respect to IP data consumption history to an intelligent caching server 135 at block 610 .
  • the logic flow 600 may update the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 615 .
  • the user of the mobile device 110 may periodically collect and forward additional browsing history or software application interaction history data to the predictive caching application 240 .
  • the updated history may then be uploaded to the intelligent caching server 135 as described in block 610 . This helps keep the predictive caching application 240 current with respect to the user's most recent usage patterns.
  • the logic flow 600 may determine and obtain IP data content based on IP data content usage observations or explicit user instruction at block 620 .
  • the intelligent caching server 135 may analyze the uploaded browsing history and application interaction history to determine that the mobile device regularly visits the same web site(s) and typically accesses the same software applications that retrieve IP data content from a content provider over the Internet 115 . Using this data, the intelligent caching server 135 may then connect to the content provider(s) and download the content deemed to be of interest to the mobile device 110 .
  • the logic flow 600 may queue the content obtained from content providers at block 625 .
  • the intelligent caching server 135 may store the downloaded content deemed to be of interest to the mobile device 110 in a local buffer that is associated or linked with the mobile device 110 .
  • the intelligent caching server 135 may then push a notification to the mobile device 110 informing the mobile device 110 of the queued content waiting on the intelligent caching server 135 at block 630 .
  • the logic flow may determine if the mobile device 110 currently has a WiFi connection at block 635 .
  • the predictive caching application 240 may query the WiFi transceiver 210 to determine whether the WiFi transceiver 210 is active and connected to an IP network access point and therefore capable of exchanging IP data over the Internet 115 . If the WiFi transceiver 210 does not currently have a connection with an IP network access point, the logic flow 600 may wait until the mobile device 110 has established a WiFi connection at block 640 .
  • the predictive caching application 240 may attempt to invoke the WiFi transceiver and its associated intelligence to scan for and connect with an available WiFi network.
  • the predictive caching application 240 may continuously or periodically monitor the WiFi connection status of the WiFi transceiver 240 and notify the intelligent caching server 135 of WiFi connectivity when it exists at block 645 . By running the predictive caching application 240 in the background, it can be ready to notify the intelligent caching server 135 as soon as a WiFi connection is established.
  • the logic flow 600 may push IP content data over WiFi or an alternative network to the mobile device 110 at block 650 .
  • the intelligent caching server 135 can push IP content data it has determined to be of interest to the user or that the user has specifically requested to the mobile device.
  • the downloading and caching step of block 335 may be optimized using observed WiFi connectivity pattern data. Using this information, the intelligent caching server 135 may attempt to push IP content data during time frames that the mobile device 110 is typically connected to a WiFi network. For example, the mobile device may typically be coupled with a WiFi network at 5:00 AM each morning.
  • the intelligent caching server 135 may attempt to push desired IP data at 5:00 AM each day so that the mobile device 110 can cache the IP data for later access by the user even if no WiFi connection exists.
  • the logic flow 600 may download and cache IP content data over WiFi or an alternative network.
  • the predictive caching application 240 determines that the mobile device 110 does have WiFi connectivity
  • the predictive caching application 240 can download IP content data it has determined to be of interest to the user or that the user has specifically requested from the intelligent caching server 135 .
  • the downloading and caching step may be optimized using the WiFi connectivity pattern data observed in block 310 .
  • the predictive caching application 240 may attempt to download IP content data during time frames that the mobile device 110 is typically connected to a WiFi network.
  • the predictive caching application 240 may run in the background and periodically re-fresh the cached data with new IP content data anytime a WiFi connection exists and new content data is available on the intelligent caching server. Each successful refresh helps keep the cached data as up to date as possible.
  • the logic flow 600 may store pushed or pulled IP content data in cache memory of the mobile device 110 at block 655 .
  • the predictive caching application 240 may analyze the received pushed IP content data and store it appropriately in local mobile device cache memory. For instance, IP content data associated with a web site may be stored in web browser cache memory. If the IP content data is associated with a particular software application 230 rather than a generic web browser, the predictive caching application 240 may store the data in a cache buffer associated with that software application 230 .
  • This storage mechanism allows the user to access the IP content data using the same user interface(s) and/or native application (e.g, web browser, Weather ChannelTM app, ESPNTM app, CNNTM app, etc.) as always.
  • the end result is a data consumption experience for the user that is no different than if the user had just requested and downloaded the IP content data.
  • FIG. 7 illustrates one embodiment of a logic flow 700 .
  • the logic flow 700 may be representative of some or all of the operations executed by one or more embodiments described herein. In this embodiment, steps are disclosed that allow a mobile device 110 to consume, on the mobile device 110 , cached IP content data.
  • the logic flow 700 may receive a request to fetch IP data at block 705 .
  • the user of the mobile device 110 may be executing a web browser and request access to a particular URL.
  • the user may be running a particular software application 230 on the mobile device 110 .
  • the software application 230 may receive input from the user that causes it to fetch IP data from a content provider outside the mobile device 110 .
  • the content provider may be accessible via the Internet 115 .
  • the logic flow 700 may then determine if the mobile device 110 has a Wifi or alternate network connection at block 710 .
  • Alternate network connection excludes a cellular network connection since an object is to minimize access to and use of a cellular network for non-voice (e.g., IP data) purposes.
  • the predictive caching application 240 may run in the background to receive and/or refresh cached IP data at block 715 .
  • Block 715 may be implemented using one or more of the embodiments described in FIG. 3 , 4 , or 6 .
  • the mobile device 110 may execute any requests or instructions to fetch IP data via a connection with the Internet over WiFi or an alternate network.
  • the downloaded IP data may then be presented to the user from within the native application used to make the request over one or more of the user interface(s) 235 of the mobile device 110 at block 730 .
  • the logic flow 700 determines if the request for IP data is for data already stored in local cache memory at block 735 . If the IP data is not already stored in local cache memory, the mobile device may use the cellular data network 125 to download the requested IP data. Use of the cellular data network 125 may be automatic or allowed only upon an affirmative user response to a prompt. If the IP data is already stored in local cache memory, the mobile device may prompt the user to use the cached data at block 740 . If the user responds negatively, the request may be processed live using a connection to the cellular network 125 .
  • the cellular network 125 may be bypassed at block 745 and the IP data may be accessed via the cache memory at block 750 .
  • the IP data may then be presented to the user from within the native application used to make the request over one or more of the user interface(s) 235 of the mobile device 110 at block 730 .
  • WiFi may be substituted with an alternative non-cellular IP network protocol or standard such as, but not limited to, WiMax or a whitespace network.
  • a wired IP network connection such as Ethernet, if available to the mobile device 110 , may be considered an alternative network 130 .

Abstract

Disclosed is a method of predictively caching IP content data for a mobile device. In the mobile device, a content request is sent to an intelligent cache server over an IP network, the content request indicative of recurring IP content data of interest to the mobile device. The intelligent cache server retrieves the requested IP content data from content servers and queues the requested IP content data in a buffer associated with the mobile device. A notification message is sent to the mobile device indicating that the requested IP content is queued. The mobile device determines whether it is connected to a non-cellular IP network access point and automatically downloads the queued IP content data from the intelligent cache server when connected to a non-cellular IP network. The IP content data is stored in a cache memory in the mobile device. Other embodiments are disclosed.

Description

    BACKGROUND
  • Mobile devices such as smartphones and some tablet style computers are often equipped with multiple RF transceivers that are capable of wirelessly connecting with different networks. For example, a mobile device may employ a cellular transceiver to allow a user to make and receive telephone calls, send text messages, and exchange Internet Protocol (IP) data over a cellular access network. That same mobile device may also employ a second RF transceiver that operates on a non-cellular network such as, for instance, one that operates over the 802.11 family of protocols that are commonly known as WiFi. In addition, the mobile device may also employ another RF transceiver such as, for instance, one that operates over the 802.16 family of protocols that are commonly known as WiMax. The WiFi or WiMax transceiver(s) may be used for IP network access (e.g., Internet access) anytime the mobile device is within range of a WiFi or WiMax IP network access point.
  • In terms of user convenience and cost, it is preferable to utilize a non-cellular network transceiver such as the WiFi or WiMax transceivers over the cellular transceiver whenever possible. Non-cellular (e.g., WiFi or WiMax) access is generally free whereas cellular access to IP networks comes at a price. Moreover, the cost can escalate the more IP data is consumed.
  • As mobile devices such as smartphones become ubiquitous, the demand for ‘mobile’ IP data access continues to grow. Limiting such IP network access to cellular network access points only drives costs up for consumers and tax or stress the cellular carrier's IP data network. The end result may lead to higher costs and less than expected quality of service in terms of network access speeds or even the ability to establish and maintain an IP network connection in areas of high congestion. The ability to use non-cellular (e.g. WiFi or WiMax) IP connectivity greatly alleviates the aforementioned problems.
  • However, one of the greatest attributes of a mobile device is its mobility. This means that the user will often find herself without non-cellular connectivity at times but with a need or desire to consume IP data from sources external to the mobile device. The mobile device may do so utilizing the cellular access network for IP data services. Doing so, however, invokes the costs of using the network as previously mentioned. Thus, the user may desire to minimize to the greatest extent possible any dependence on the cellular network for IP data consumption.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates an exemplary networked environment for implementing certain exemplary embodiments described herein.
  • FIG. 2 is a block diagram illustrating some of the functions of a mobile device according to one or more embodiments described herein.
  • FIG. 3 is a logic flow diagram according to one or more embodiments described herein.
  • FIG. 4 is a logic flow diagram according to one or more embodiments described herein.
  • FIG. 5 illustrates an exemplary networked environment for implementing certain exemplary embodiments described herein.
  • FIG. 6 is a logic flow diagram according to one or more embodiments described herein.
  • FIG. 7 is a logic flow diagram according to one or more embodiments described herein.
  • DETAILED DESCRIPTION
  • Embodiments described herein disclose methods and techniques to cache IP data locally on the mobile device while the device has non-cellular (e.g., WiFi or WiMax) IP network connectivity. The IP data that is cached may be pre-determined ahead of time based on user usage patterns and/or user instruction. The terms IP data, content, or IP content data may be used interchangeably throughout this disclosure and refer to data of interest to a user of a mobile device wherein the data is remotely stored but is accessible to the mobile device over an IP network connection. The IP network connection may be facilitated by a WiFi transceiver, a cellular transceiver, or an alternate transceiver (e.g., WiMax) housed within the mobile device. The IP data may be representative in whole or in part of textual data, graphical data, audio data, video data, or combinations thereof. The underlying data may be stored or represented in a variety of file formats or protocols and may or may not be encrypted. For example, text data may be stored in a file such as a Microsoft™ Word file, a pdf file, or http text data. Graphical data may be in the form of images stored as bitmap, JPEG, GIF, or other image file formats. Audio data may be stored in an MP3 or .wav format while video data may be stored as MPEG, .avi, etc. The underlying data, regardless of its actual format, is considered IP data when it is packaged and transported to the mobile device over an IP connection. The embodiments are not limited to these examples.
  • For example, if the user typically accesses the same specific web-sites from the mobile browser most days, the mobile device may be instructed to fetch and cache the IP content from the specific web-site while the mobile device has non-cellular (e.g., WiFi or WiMax) IP network connectivity. In some cases, the mobile device may even include wired IP network connectivity such as, for instance, an Ethernet connection. In this manner, the user may access the web site IP data at a later time through cache memory without having to access a cellular network. The mobile device may also acquire intelligent data as to non-cellular IP network connectivity patterns such that the background caching may be performed at certain times. The caching may also be performed or updated anytime the mobile device has non-cellular IP network connectivity to keep the mobile device as up to date as possible for content that may be refreshed periodically. In addition, the caching may be performed in such a manner that allows the user to access the IP data from the native mobile device application that they normally would. For instance, web browsing data may be accessed using a mobile browser while content specific applications (e.g., Fox News™, CNN™, USA Today™, etc.) that operate on the mobile device in their own applications may be accessed using the native application. In this manner, the user experience does not change when accessing cached IP data. The user may still access the data from the native application she would normally use.
  • In one embodiment, the mobile device may monitor usage and behavior patterns to create items of content (e.g., IP data) to download and locally store on the mobile device. The mobile device may then pull the content from the content providers over the Internet at a time when the mobile device is typically connected to the Internet via WiFi, WiMax, or another non-cellular IP network access point. The mobile device may collect IP data consumption and usage information associated with a mobile device. The mobile device may predict, based on the collected IP data consumption usage information, IP data the mobile device can be expected to consume at a future time. The mobile device may then automatically download the predicted IP data to the mobile device over a non-cellular connection and store the downloaded predicted IP data in cache memory on the mobile device.
  • To facilitate the process and help ensure that the cellular data network is not used, the mobile device may also collect non-cellular network connectivity information associated with the mobile device and predict, based on the collected non-cellular network connectivity information, when the mobile device can be expected to be connected to a non-cellular network. The mobile device may then attempt to perform the automatic downloading of the predicted IP data at a time when the mobile device can be expected to be connected to a non-cellular network. If the mobile device is not connected to a non-cellular network it may wait until the mobile device is connected to a non-cellular network before automatically downloading the predicted IP data.
  • The mobile device may also store the downloaded predicted IP data in cache memory on the mobile device that is associated with the application on the mobile device that would have downloaded the predicted IP data if the download had been manually initiated by a user. This ensures that the user experience when accessing the cached IP data is the same in so far as the same user interface(s) and/or native applications are used as when the user is using a real-time IP network connection to consume IP data. Thus, when there is no non-cellular connection available to the mobile device, the user may still consume the cached IP data by bypassing a cellular network connection and accessing the stored predicted IP data from cache memory using an application on the mobile device associated with the stored predicted IP data in response to a request for the IP data.
  • In another embodiment, the mobile device may register with a content service provider directly to indicate a desire to receive content (e.g., IP data) from that content provider. The content service provider may then initiate a download to the mobile device in accordance with the request previously made by the user. The content server would push the requested content to the mobile device over the Internet at a time when the mobile device is typically connected to the Internet via WiFi, WiMax, or another non-cellular IP network access point.
  • For example, the mobile device may send a content request to a content server over an IP network in which the content request is indicative of recurring IP data of interest to the user of the mobile device. The content server may queue the requested IP content data in a buffer associated with the mobile device and send a notification message to the mobile device indicating that the requested IP content data is queued. The mobile device may determine whether it is connected to a non-cellular network and automatically download the queued IP content data from the content server when it is connected to a non-cellular network. The mobile device may then store the downloaded IP content data in cache memory.
  • The mobile device may also collect non-cellular network connectivity information associated with the mobile device and predict, based on the collected non-cellular network connectivity information, when the mobile device can be expected to be connected to a non-cellular network. The mobile device may then attempt to perform the automatic downloading of the queued IP content data at a time when the mobile device can be expected to be connected to a non-cellular network. If the mobile device is not connected to a non-cellular network it may wait until the mobile device is connected to a non-cellular network before automatically downloading the queued IP content data.
  • The mobile device may also store the downloaded queued IP content data in cache memory on the mobile device that is associated with the application on the mobile device that would have downloaded the queued IP content data if the download had been manually initiated by a user. This ensures that the user experience when accessing the cached IP data is the same in so far as the same user interface(s) and/or native applications are used as when the user is using a real-time IP network connection to consume IP content data. Thus, when there is no non-cellular connection available to the mobile device, the user may still consume the cached IP content data by bypassing a cellular network connection and accessing the stored queued IP content data from cache memory using an application on the mobile device associated with the stored queued IP content data in response to a request for the IP content data.
  • In yet another embodiment, the mobile device may monitor usage and behavior patterns to create items of content (e.g., IP data) to download and locally store on the mobile device. The mobile device may then forward the items of content to be stored on the mobile device to an intelligent cache server resident within the Internet. The intelligent cache server may then pull the IP content data from the content providers and push it to the mobile device over the Internet at a time when the mobile device is typically connected to the Internet via WiFi, WiMax, or another non-cellular IP network access point.
  • For example, the mobile device may send a content request to an intelligent cache server over an IP network in which the content request is indicative of recurring IP data of interest to the user of the mobile device. The intelligent cache server may retrieve the requested IP content data from content servers and queue the requested IP content data in a buffer associated with the mobile device and send a notification message to the mobile device indicating that the requested IP content data is queued. The mobile device may determine whether it is connected to a non-cellular network and automatically download or receive the queued IP content data from the intelligent cache server when it is connected to a non-cellular network. The mobile device may then store the downloaded or received IP content data in cache memory.
  • The mobile device may also collect non-cellular network connectivity information associated with the mobile device and predict, based on the collected non-cellular network connectivity information, when the mobile device can be expected to be connected to a non-cellular network. The mobile device may then attempt to perform the automatic downloading of the queued IP content data at a time when the mobile device can be expected to be connected to a non-cellular network. If the mobile device is not connected to a non-cellular network it may wait until the mobile device is connected to a non-cellular network before automatically downloading or receiving the queued IP content data.
  • The mobile device may also store the downloaded queued IP content data in cache memory on the mobile device that is associated with the application on the mobile device that would have downloaded the queued IP content data if the download had been manually initiated by a user. This ensures that the user experience when accessing the cached IP data is the same in so far as the same user interface(s) and/or native applications are used as when the user is using a real-time IP network connection to consume IP content data. Thus, when there is no non-cellular connection available to the mobile device, the user may still consume the cached IP content data by bypassing a cellular network connection and accessing the stored queued IP content data from cache memory using an application on the mobile device associated with the stored queued IP content data in response to a request for the IP content data.
  • In each of the aforementioned embodiments, the content may then be stored by the mobile device in cache memory such that when the user went to access the content, no Internet connection would be required. Moreover, the user may consume desired content without having to utilize a cellular data connection. In addition, the content download (pull or push) may be timed to repeat at specified intervals or whenever a non-cellular IP network connection is available. The content caching scheme may run as a background process to keep the content as fresh and updated as possible.
  • Referring now to FIG. 1, an exemplary networked environment 100 for implementing certain exemplary embodiments is described. A content server 105 is representative of an entity that creates and/or distributes content over an IP based network such as, for instance, the Internet 115. The content server 105 may represent a web site or a streaming audio or video service. The content itself may be textual, graphical, audio, video, or some combination thereof. The networked environment 100 also illustrates a mobile device 110, an IP based local area network (LAN) 120, a cellular network 125, and an alternative network 130.
  • In a typical scenario, the mobile device may connect to the Internet using any of the aforementioned networks 120, 125, 130 via an appropriate access point (not shown). The user of the mobile device may prefer to use one network rather than another given the opportunity. For instance, the user may prefer to connect the mobile device to the Internet 115 using an 802.11 WiFi connection over an IP network like LAN 120. WiFi connectivity may represent the highest quality and lowest cost means of Internet 115 access. However, WiFi connectivity may not always be available to the mobile device. In such cases, one of the other networks may be used to gain Internet 115 access. Internet 115 access via a cellular network 125 is another common means of connectivity. Using the cellular network 125 for IP data services, however, can be costly. Cellular service providers typically charge for the use of the cellular network 125 based on the amount of IP data that is consumed (e.g., uploaded or downloaded). Moreover, the costs increase the more IP data is consumed. Thus, it is often desirable to minimize the use of the cellular network 125 for IP data services.
  • There may also be one or more alternative networks 130 that may provide access to the Internet 115 for a mobile device 110. One such non-cellular alternative network 130 may be characterized as a WiMax network operable over the 802.16 wireless protocol standard. Another such alternative network 130 may be characterized as a whitespace network. A whitespace network may utilize RF spectrum that is shared with television broadcasters. The television broadcasters do not necessarily need to utilize all the spectrum allocated to them to broadcast their video signals. The unused spectrum may be tapped into to provide an alternative RF access point to a network that can interface with the Internet 115.
  • FIG. 2 is a block diagram illustrating some of the functions of a mobile device 110 according to one or more embodiments described herein. A mobile device may include, for instance, a smartphone, a personal digital assistant (PDA) device, a tablet style computer, a laptop or notebook style computer, etc. The mobile device 110 may include a processor or processors 205 for controlling the various components and functions of the mobile device 110. The mobile device 110 may also include multiple RF transceivers such as, for instance, a WiFi transceiver 210, a cellular transceiver 215, and an alternate transceiver 220. The alternate transceiver 220 may also be characterized as a non-cellular transceiver in that it may connect with a network access point to provide access to the Internet 115 without the use or assistance of a cellular network 125.
  • The WiFi transceiver 210 may be operable to communicate with an IP network access point using one or more of the 802.11 wireless transmission protocols. Upon connection with an IP network access point, the mobile device 110 may exchange IP data with servers or other computers that are connected with or communicable with the Internet 115. This may include content servers 105 shown in FIG. 1.
  • The cellular transceiver 215 may be operable to communicate with a cellular network 125 for both voice and IP data communications. On the voice side, the cellular network 125 may be based on GSM, CDMA, or other communications protocols while on the IP data side, the cellular network 125 may be based on, for example, GPRS, EDGE, EV-DO, HSPA-D, HSPA-U, LTE, UMTS-WCDMA, UMTS-TDD, etc. As pointed out above, use of the cellular network for IP data services can be costly and therefore to be avoided whenever a viable alternative is available to the mobile device 110.
  • In one embodiment, the alternate transceiver 220 may be a WiMax transceiver that is operable to communicate with an IP network access point using one or more of the 802.16 wireless transmission protocols. Upon connection with an IP network access point, the mobile device 110 may exchange IP data with servers or other computers that are connected with or communicable with the Internet 115. This may include content servers 105 shown in FIG. 1. In another embodiment, the alternate transceiver 220 may be a whitespace transceiver that is operable to communicate with a whitespace network access point. The whitespace network, in turn, may be communicable with the Internet 115 to allow IP data communications between the mobile device 110 and servers or other computers that are connected with or communicable with the Internet 115. This may include content servers 105 shown in FIG. 1.
  • The mobile device 110 may further include data storage 225, software applications 230, various user interface(s) 235 a predictive caching application 240. The data storage 225 may include, for example, one or more types of memory devices including, but not limited to, flash memory usable for ROM, RAM, PROM, EEPROM, and cache. The software applications 230 may include, for example, one or more software applications executable on or by the processor(s) 205 including, but not limited to, web browsers, email applications, application specific data and/or audio/video applications, etc. For instance, examples of application specific software video applications could be YouTube™ or Netflix™ while an examples of application specific software audio applications could be Spotify™ or Pandora™. Examples of application specific graphical/text/multimedia software applications may include those for news delivery services like Fox News™, CNN™, The New York Times™, USA Today™, etc. The user interface(s) 235 may include, for example, a display, a touchscreen for soft-key input, speaker(s), microphone(s), a keyboard for hard-key input, and one or more buttons.
  • The predictive caching application 240 may be operable to determine content of interest to the user of the mobile device 110. The content of interest may then be scheduled for download (e.g., pulled) or forwarded to a web based server for management such that the content of interest may be pushed to the mobile device 110 at appropriate times over a WiFi or WiMax connection and stored in cache memory. The predictive caching application 240 is described further below.
  • Included herein is a set of flow charts representative of exemplary methodologies for performing novel aspects of the disclosed architecture. While, for purposes of simplicity of explanation, the one or more methodologies shown herein, for example, in the form of a flow chart or flow diagram, are shown and described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation.
  • FIG. 3 illustrates one embodiment of a logic flow 300. The logic flow 300 may be representative of some or all of the operations executed by one or more embodiments described herein. In this embodiment, steps are disclosed that allow a mobile device 110 to gather browsing and usage data of the mobile device 110 along with WiFi connectivity patterns to determine content of interest to a user of the mobile device 110. At specified times, this content may be downloaded or pulled from content servers using a WiFi or WiMax connection and stored in cache memory for subsequent consumption by the user.
  • In the illustrated embodiment shown in FIG. 3, the logic flow 300 may observe the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 305. For example, the user of the mobile device 110 may regularly visit one or more web sites which may be reflected by the browsing history or some other means of tracking. The user may browse the USA Today™ sports section on a regular basis as well as the NY Times™ web site. Similarly, the user may access locally stored software applications 230 that are used to access the Internet for IP data consumption purposes. Many news outlets have created custom applications that may run on the mobile device 110 and access the IP data stored on their own content servers. This model does not need a standard we browser but rather uses the native application interface designed by the content provider and executing on the mobile device. Thus, the user may consume IP data from the USA Today™ using a USA Today™ app on the mobile device. This native application has its own user interface and data presentation construct that the user may prefer. Collecting this browsing and application interaction data over a period of time may yield activity that the user of the mobile device regularly engages. The patterns may then yield a predictable model of future IP data consumption.
  • The logic flow 300 may observe WiFi and/or alternative network connectivity patterns at block 310. For example, the mobile device 110 may typically have a WiFi connection or an alternative network (e.g., WiMax) connection everyday between the hours of midnight-7:00 AM, 8:00 AM-12:00 PM, 1:00 PM-5:00 PM, and again from 9:00 PM-midnight. This schedule is more or less reflective of a typical workday in which the mobile device 110 has access to WiFi or WiMax at home from 9:00 PM-7:00 AM, loses access while commuting to a workplace, regains access while at work, and loses access again while commuting home. Similar patterns could be established for students or others. The predictive caching application 240 can, over time, determine a fairly reliable time frame for expected WiFi or WiMax connectivity.
  • In the illustrated embodiment shown in FIG. 3, the logic flow 300 may update the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 315. For example, the user of the mobile device 110 may collect and forward additional browsing history or software application interaction history data to the predictive caching application 240. This helps keep the predictive caching application 240 current with respect to the user's most recent usage patterns.
  • The logic flow 300 may determine IP data content to download based on IP data content usage observations or explicit user instruction at block 320. For example, the predictive caching application 240 may analyze the observed browsing history and application interaction history to determine that the mobile device regularly visits the same web site(s) and typically accesses the same software applications that retrieve IP data content from a content provider over the Internet 115. Using this data, the predictive caching application 240 may create a script, background process, or other mechanism that identifies the content provider and the content that the mobile device will most likely want to access throughout the day.
  • The logic flow 300 may determine whether the mobile device 110 has a current WiFi connection at block 325. For example, the predictive caching application 240 may query the WiFi transceiver 210 to determine whether the WiFi transceiver 210 is active and connected to an IP network access point and therefore capable of exchanging IP data over the Internet 115. If the WiFi transceiver 210 does not currently have a connection with an IP network access point, the logic flow 300 may wait until the mobile device 110 has established a WiFi connection at block 330. For example, the predictive caching application 240 may attempt to invoke the WiFi transceiver and its associated intelligence to scan for and connect with an available WiFi network. The predictive caching application 240 may continuously or periodically monitor the WiFi connection status of the WiFi transceiver 240 and only pull IP content data it has determined to be of interest to the user or that the user has specifically requested when a WiFi connection exists. By running the predictive caching application 240 in the background, it can be ready to download as soon as a WiFi connection is established.
  • The logic flow 300 may download and cache IP content data over WiFi or an alternative network at block 335. For example, if the predictive caching application 240 determines that the mobile device 110 does have WiFi connectivity, the predictive caching application 240 can download IP content data it has determined to be of interest to the user or that the user has specifically requested. The downloaded IP content data may then be stored in local cache memory. The downloading and caching step of block 335 may be optimized using the WiFi connectivity pattern data observed in block 310. Using this information, the predictive caching application 240 may attempt to download IP content data during time frames that the mobile device 110 is typically connected to a WiFi network. For example, the mobile device may typically be coupled with a WiFi network at 5:00 AM each morning. This may be because the user of the mobile device 110 is either at home in a WiFi environment or perhaps at a hotel that also includes a WiFi environment. The predictive caching application 240 may attempt to download desired IP data at 5:00 AM each day so that the mobile device 110 can cache the IP data for later access by the user even if no WiFi connection exists. In addition, the predictive caching application 240 may run in the background and periodically re-fresh the cached data with new IP content data anytime a WiFi connection exists. Each successful refresh helps keep the cached data as up to date as possible.
  • FIG. 4 illustrates one embodiment of a logic flow 400. The logic flow 400 may be representative of some or all of the operations executed by one or more embodiments described herein. In this embodiment, steps are disclosed that allow a mobile device 110 to establish a service relationship with a content provider. The service relationship represents IP content desired by the user that is to be pushed or pulled from the content service provider to the mobile device 110 using a WiFi or WiMax connection. The IP content may then be stored in cache memory for subsequent consumption by the user.
  • In the illustrated embodiment shown in FIG. 4, the logic flow 400 may send a content request to a content service provider at block 405. For example, the predictive caching application 240 may initiate a communication session with a content service provider over the Internet 115. Alternatively, a communication session may be established between the content service provider and the mobile device 110 using a mobile web browser application. In another embodiment, a communication session may be established between the content service provider and a computer device that is not the mobile device 110 using a browser application. The other computer device may be a computer, a tablet computer, an IP network enabled television, or other IP network connectable device. In this embodiment, the separate computer device may interact with the content service provider for purposes of registering the mobile device 110 with the content service provider.
  • The registration process may include creating an account that uniquely identifies the mobile device 110 as the intended recipient of IP content data. The user may specify what IP content it desires during registration. For example, the user may register with a web site such as MLB.com™ and indicate that all top stories, or all stories pertaining to a favorite team be queued for download. The user may further specify that recent scores, standings, and schedules also be queued for download. In another example, the user may register with a web site such as CNN.com™ and indicate that all top stories, all stories mentioning the word “President”, the weather section of the web site, and various stock quotes be queued for download. There may also be a catch-all default that would queue the entire web site for download. In still another example, the user may register with a web site such as Netflix™ and indicate that certain movies or television shows be queued for download. The user may also specify that it would like Netflix™ to choose 2 movies and 3 television shows on its own based on prior viewing history to be queued for download. As is evident, there can be a wide variety of content selection options between the user and the content service provider. The examples above are illustrative and not limiting to the embodiments described herein.
  • The logic flow 400 may queue the requested content in a buffer associated with the mobile device 110 at block 410. For example, the content service provider may aggregate the requested content and place it within a buffer uniquely associated with the mobile device 110 as per the registration process. The logic flow 400 may then notify the mobile device 110 that the requested content has been queued for download at block 415. This may be accomplished, for example, via text message, a pushed alert, email, etc. In an automated system, the notification does not necessarily need to be made known to the user as described above. Rather, the predictive caching application 240 may receive the notification and act on its own to retrieve the desired content. When the notification is received by the mobile device 110, the predictive caching application 240 may determine if the mobile device 110 is currently connected to a WiFi network at block 420. If not, the predictive caching application 240 will not attempt to retrieve the content from the content service provider. Rather, the predictive caching application 240 will wait until a WiFi connection exists before downloading the queued content from the content service provider at block 430. If the mobile device 110 happens to lose the WiFi connection during the download process, the predictive caching application 240 can automatically terminate the download until a WiFi connection for the mobile device 110 is reestablished. This ensures that a cellular network 125 is not utilized to download any content and therefore avoids incurring any wireless cellular data usage fees.
  • The logic flow 400 may store the requested content in cache memory on the mobile device 110 at block 435. For example, the content downloaded from the content service provider over a WiFi connection may be locally stored in data storage component 225 on the mobile device 110. The user may then access the stored data without needing any type of network connection whatsoever.
  • FIG. 5 illustrates an exemplary networked environment for implementing certain exemplary embodiments described herein. FIG. 5 is a duplication of FIG. 1 with an additional component added. Thus, to the extent that FIG. 5 duplicates FIG. 1, the disclosure of FIG. 1 applies equally to FIG. 5 and is not repeated here.
  • The additional component in FIG. 5 may be characterized as an intelligent caching server 135. The intelligent caching server 135 resides in the cloud (e.g., accessible via the Internet 115). The intelligent caching server 135 my have a relationship with the mobile device 110 such that data is communicated and exchanged between the mobile device 110 and the intelligent caching server 135. For example, the mobile device 110 may provide historical browsing data as well as software application interaction data to the intelligent caching server 135. The intelligent caching server 135 may then analyze this data to determine or predict the type of IP content data the user of mobile device 110 will likely attempt to access at a later time. The intelligent caching server 135 may then go out and aggregate the IP content data and store it on behalf of the mobile device 110. The intelligent caching server 135 may then notify the mobile device 110 of the stored IP content data so that the mobile device 110 may, at a time when it is connected to a WiFi network, download and locally store the IP content data.
  • FIG. 6 illustrates one embodiment of a logic flow 600. The logic flow 600 may be representative of some or all of the operations executed by one or more embodiments described herein. In this embodiment, steps are disclosed that allow a mobile device 110 to gather browsing and usage data of the mobile device 110 along with WiFi connectivity patterns to determine content of interest to a user of the mobile device 110. This information may then be sent to an intelligent caching server 135 that will pull the content from the various content service providers and store it so that the mobile device 110 may, at specified times using a WiFi or WiMax connection, download it. The incoming content to the mobile device 110 may then be stored in cache memory for subsequent consumption by the user.
  • In the illustrated embodiment shown in FIG. 6, the logic flow 600 may observe the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 605. For example, the user of the mobile device 110 may regularly visit one or more web sites which may be reflected by the browsing history or some other means of tracking. The user may browse the USA Today™ sports section on a regular basis as well as the NY Times™ web site. The logic flow 600 may then upload the browsing and software application interaction history of the mobile device 110 with respect to IP data consumption history to an intelligent caching server 135 at block 610.
  • The logic flow 600 may update the browsing history and software application interaction history of the mobile device 110 with respect to IP data consumption at block 615. For example, the user of the mobile device 110 may periodically collect and forward additional browsing history or software application interaction history data to the predictive caching application 240. The updated history may then be uploaded to the intelligent caching server 135 as described in block 610. This helps keep the predictive caching application 240 current with respect to the user's most recent usage patterns.
  • The logic flow 600 may determine and obtain IP data content based on IP data content usage observations or explicit user instruction at block 620. For example, the intelligent caching server 135 may analyze the uploaded browsing history and application interaction history to determine that the mobile device regularly visits the same web site(s) and typically accesses the same software applications that retrieve IP data content from a content provider over the Internet 115. Using this data, the intelligent caching server 135 may then connect to the content provider(s) and download the content deemed to be of interest to the mobile device 110.
  • The logic flow 600 may queue the content obtained from content providers at block 625. For example, the intelligent caching server 135 may store the downloaded content deemed to be of interest to the mobile device 110 in a local buffer that is associated or linked with the mobile device 110. The intelligent caching server 135 may then push a notification to the mobile device 110 informing the mobile device 110 of the queued content waiting on the intelligent caching server 135 at block 630.
  • Upon receipt of the content notification from the intelligent caching server 135, the logic flow may determine if the mobile device 110 currently has a WiFi connection at block 635. For example, the predictive caching application 240 may query the WiFi transceiver 210 to determine whether the WiFi transceiver 210 is active and connected to an IP network access point and therefore capable of exchanging IP data over the Internet 115. If the WiFi transceiver 210 does not currently have a connection with an IP network access point, the logic flow 600 may wait until the mobile device 110 has established a WiFi connection at block 640. For example, the predictive caching application 240 may attempt to invoke the WiFi transceiver and its associated intelligence to scan for and connect with an available WiFi network. The predictive caching application 240 may continuously or periodically monitor the WiFi connection status of the WiFi transceiver 240 and notify the intelligent caching server 135 of WiFi connectivity when it exists at block 645. By running the predictive caching application 240 in the background, it can be ready to notify the intelligent caching server 135 as soon as a WiFi connection is established.
  • The logic flow 600 may push IP content data over WiFi or an alternative network to the mobile device 110 at block 650. For example, when the pre intelligent caching server 135 receives notification that the mobile device 110 does have WiFi connectivity, the intelligent caching server 135 can push IP content data it has determined to be of interest to the user or that the user has specifically requested to the mobile device. The downloading and caching step of block 335 may be optimized using observed WiFi connectivity pattern data. Using this information, the intelligent caching server 135 may attempt to push IP content data during time frames that the mobile device 110 is typically connected to a WiFi network. For example, the mobile device may typically be coupled with a WiFi network at 5:00 AM each morning. This may be because the user of the mobile device 110 is either at home in a WiFi environment or perhaps at a hotel that also includes a WiFi environment. The intelligent caching server 135 may attempt to push desired IP data at 5:00 AM each day so that the mobile device 110 can cache the IP data for later access by the user even if no WiFi connection exists.
  • Alternatively, the logic flow 600 may download and cache IP content data over WiFi or an alternative network. For example, if the predictive caching application 240 determines that the mobile device 110 does have WiFi connectivity, the predictive caching application 240 can download IP content data it has determined to be of interest to the user or that the user has specifically requested from the intelligent caching server 135. The downloading and caching step may be optimized using the WiFi connectivity pattern data observed in block 310. Using this information, the predictive caching application 240 may attempt to download IP content data during time frames that the mobile device 110 is typically connected to a WiFi network. In addition, the predictive caching application 240 may run in the background and periodically re-fresh the cached data with new IP content data anytime a WiFi connection exists and new content data is available on the intelligent caching server. Each successful refresh helps keep the cached data as up to date as possible.
  • The logic flow 600 may store pushed or pulled IP content data in cache memory of the mobile device 110 at block 655. For example, the predictive caching application 240 may analyze the received pushed IP content data and store it appropriately in local mobile device cache memory. For instance, IP content data associated with a web site may be stored in web browser cache memory. If the IP content data is associated with a particular software application 230 rather than a generic web browser, the predictive caching application 240 may store the data in a cache buffer associated with that software application 230. This storage mechanism allows the user to access the IP content data using the same user interface(s) and/or native application (e.g, web browser, Weather Channel™ app, ESPN™ app, CNN™ app, etc.) as always. The end result is a data consumption experience for the user that is no different than if the user had just requested and downloaded the IP content data.
  • FIG. 7 illustrates one embodiment of a logic flow 700. The logic flow 700 may be representative of some or all of the operations executed by one or more embodiments described herein. In this embodiment, steps are disclosed that allow a mobile device 110 to consume, on the mobile device 110, cached IP content data.
  • In the illustrated embodiment shown in FIG. 7, the logic flow 700 may receive a request to fetch IP data at block 705. For example, the user of the mobile device 110 may be executing a web browser and request access to a particular URL. In another example, the user may be running a particular software application 230 on the mobile device 110. The software application 230 may receive input from the user that causes it to fetch IP data from a content provider outside the mobile device 110. The content provider may be accessible via the Internet 115.
  • The logic flow 700 may then determine if the mobile device 110 has a Wifi or alternate network connection at block 710. Alternate network connection excludes a cellular network connection since an object is to minimize access to and use of a cellular network for non-voice (e.g., IP data) purposes. When the mobile device 110 does have a WiFi or alternate network connection as determined at block 710, the predictive caching application 240 may run in the background to receive and/or refresh cached IP data at block 715. Block 715 may be implemented using one or more of the embodiments described in FIG. 3, 4, or 6. In addition, when the mobile device 110 does have a WiFi or alternate network connection, the mobile device 110 may execute any requests or instructions to fetch IP data via a connection with the Internet over WiFi or an alternate network. The downloaded IP data may then be presented to the user from within the native application used to make the request over one or more of the user interface(s) 235 of the mobile device 110 at block 730.
  • When the mobile device 110 does not have a WiFi or alternate network connection as determined at block 710, the logic flow 700 determines if the request for IP data is for data already stored in local cache memory at block 735. If the IP data is not already stored in local cache memory, the mobile device may use the cellular data network 125 to download the requested IP data. Use of the cellular data network 125 may be automatic or allowed only upon an affirmative user response to a prompt. If the IP data is already stored in local cache memory, the mobile device may prompt the user to use the cached data at block 740. If the user responds negatively, the request may be processed live using a connection to the cellular network 125. Otherwise, the cellular network 125 may be bypassed at block 745 and the IP data may be accessed via the cache memory at block 750. The IP data may then be presented to the user from within the native application used to make the request over one or more of the user interface(s) 235 of the mobile device 110 at block 730.
  • It should be noted that the use of WiFi with respect to the description of FIGS. 3-7 may be substituted with an alternative non-cellular IP network protocol or standard such as, but not limited to, WiMax or a whitespace network. In addition, a wired IP network connection such as Ethernet, if available to the mobile device 110, may be considered an alternative network 130.

Claims (18)

1. A method comprising:
in a mobile device having both a cellular transceiver and at least one other RF transceiver communicable with a non-cellular IP network access point:
collecting Internet Protocol (IP) data consumption information associated with the mobile device;
predicting, based on the collected IP data consumption information, IP data the mobile device is expected to consume at a future time;
automatically downloading the predicted IP data to the mobile device using the at least one other RF transceiver over the non-cellular IP network access point; and
storing the downloaded predicted IP data in cache memory on the mobile device such that the stored IP data is not transported over a cellular network.
2. The method of claim 1 further comprising:
collecting non-cellular IP network connectivity information associated with the mobile device;
predicting, based on the collected non-cellular IP network connectivity information, when the mobile device can be expected to be connected to the non-cellular IP network access point; and
attempting to perform the automatically downloading the predicted IP data step at a time when the mobile device is predicted to be connected to the non-cellular IP network access point.
3. The method of claim 1 further comprising waiting until the mobile device is connected to the non-cellular IP network access point before automatically downloading the predicted IP data.
4. The method of claim 1 further comprising storing the downloaded predicted IP data in cache memory on the mobile device wherein the cache memory is associated with an application on the mobile device that would have downloaded the predicted IP data if the download had been manually initiated by a user.
5. The method of claim 1 further comprising:
in response to a request for the predicted IP data and when no non-cellular IP network access point connection is available to the mobile device:
bypassing a cellular network connection; and
accessing the stored predicted IP data from cache memory using an application on the mobile device associated with the stored predicted IP data.
6. The method of claim 1 wherein the non-cellular IP network access point is one of a WiFi IP network access point, a WiMax IP network access point, and a whitespace IP network access point.
7. A method comprising:
in a mobile device having both a cellular transceiver and a non-cellular RF transceiver, sending a content request to a content server over an IP network, the content request indicative of recurring IP content data of interest to the mobile device;
in the content server, queuing the requested IP content data in a buffer associated with the mobile device and sending a notification message to the mobile device indicating that the requested IP content data is queued;
in the mobile device, determining whether the mobile device is connected to a non-cellular IP network access point and automatically downloading the queued IP content data from the content server only when the mobile device is connected to a non-cellular IP network access point; and
in the mobile device, storing the downloaded IP content data in a cache memory such that the stored IP data is not transported over a cellular network.
8. The method of claim 7 further comprising:
collecting non-cellular IP network connectivity information associated with the mobile device;
predicting, based on the collected non-cellular IP network connectivity information, when the mobile device can be expected to be connected to a non-cellular IP network access point; and
attempting to perform the automatically downloading the queued IP content data step at a time when the mobile device is predicted to be connected to a non-cellular IP network access point.
9. The method of claim 7 further comprising waiting until the mobile device is connected to a non-cellular IP network access point before automatically downloading the queued IP content data.
10. The method of claim 7 further comprising storing the downloaded IP content data in cache memory on the mobile device wherein the cache memory is associated with an application on the mobile device that would have downloaded the IP content data if the download had been manually initiated by a user.
11. The method of claim 7 further comprising:
in response to a request for the IP content data and when no non-cellular IP connection is available to the mobile device:
bypassing a cellular network connection; and
accessing the stored IP content data from cache memory using an application on the mobile device associated with the stored IP content data.
12. The method of claim 7 wherein the non-cellular IP network access point is one of a WiFi IP network access point, a WiMax IP network access point, and a whitespace IP network access point.
13. A method comprising:
in a mobile device having both a cellular transceiver and a non-cellular RF transceiver, sending a content request to an intelligent cache server over an IP network, the content request indicative of recurring IP content data of interest to the mobile device;
in the intelligent cache server, retrieving the requested IP content data from one or more content servers, queuing the requested IP content data in a buffer associated with the mobile device and sending a notification message to the mobile device indicating that the requested IP content is queued;
in the mobile device, determining whether the mobile device is connected to a non-cellular IP network access point and automatically downloading or receiving the queued IP content data from the intelligent cache server only when the mobile device is connected to a non-cellular IP network access point; and
in the mobile device, storing the downloaded or received IP content data in a cache memory such that the stored IP content data is not transported over a cellular network.
14. The method of claim 13 further comprising:
collecting non-cellular IP network connectivity information associated with the mobile device;
predicting, based on the collected non-cellular IP network connectivity information, when the mobile device can be expected to be connected to a non-cellular IP network access point; and
attempting to perform the automatically downloading or receiving the queued IP content data step at a time when the mobile device is predicted to be connected to a non-cellular IP network access point.
15. The method of claim 13 further comprising waiting until the mobile device is connected to a non-cellular IP network access point before automatically downloading or receiving the queued IP content data.
16. The method of claim 13 further comprising storing the downloaded or received IP content data in cache memory on the mobile device that is associated with an application on the mobile device wherein the cache memory would have downloaded the IP content data if the download had been manually initiated by a user.
17. The method of claim 13 further comprising:
in response to a request for the IP content data and when no non-cellular IP connection is available to the mobile device:
bypassing a cellular network connection; and
accessing the stored IP content data from cache memory using an application on the mobile device associated with the stored IP content data.
18. The method of claim 13 wherein the non-cellular IP network access point is one of a WiFi IP network access point, a WiMax IP network access point, and a whitespace IP network access point.
US14/024,780 2013-09-12 2013-09-12 Predictive caching of IP data Active US8825881B2 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
US14/024,780 US8825881B2 (en) 2013-09-12 2013-09-12 Predictive caching of IP data
US14/336,661 US8948042B2 (en) 2013-09-12 2014-07-21 Predictive caching of IP data
US14/336,696 US20140328202A1 (en) 2013-09-12 2014-07-21 Predictive Caching of IP Data
US14/337,335 US20140329559A1 (en) 2013-09-12 2014-07-22 Predictive Caching of IP Data
US14/338,903 US20140335911A1 (en) 2013-09-12 2014-07-23 Predictive Caching of IP Data on Mobile Device
US14/447,739 US20140342772A1 (en) 2013-09-12 2014-07-31 Predictive Caching of IP Data
US14/447,750 US20140342730A1 (en) 2013-09-12 2014-07-31 Predictive Caching of IP Data
PCT/US2014/054507 WO2015038462A1 (en) 2013-09-12 2014-09-08 Caching of ip data on mobile device
PCT/US2014/054514 WO2015038464A1 (en) 2013-09-12 2014-09-08 Caching of ip data on mobile device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/024,780 US8825881B2 (en) 2013-09-12 2013-09-12 Predictive caching of IP data

Related Child Applications (6)

Application Number Title Priority Date Filing Date
US14/336,696 Continuation US20140328202A1 (en) 2013-09-12 2014-07-21 Predictive Caching of IP Data
US14/336,661 Continuation US8948042B2 (en) 2013-09-12 2014-07-21 Predictive caching of IP data
US14/337,335 Continuation US20140329559A1 (en) 2013-09-12 2014-07-22 Predictive Caching of IP Data
US14/338,903 Continuation US20140335911A1 (en) 2013-09-12 2014-07-23 Predictive Caching of IP Data on Mobile Device
US14/447,739 Continuation-In-Part US20140342772A1 (en) 2013-09-12 2014-07-31 Predictive Caching of IP Data
US14/447,750 Continuation-In-Part US20140342730A1 (en) 2013-09-12 2014-07-31 Predictive Caching of IP Data

Publications (2)

Publication Number Publication Date
US20140011538A1 true US20140011538A1 (en) 2014-01-09
US8825881B2 US8825881B2 (en) 2014-09-02

Family

ID=49878904

Family Applications (5)

Application Number Title Priority Date Filing Date
US14/024,780 Active US8825881B2 (en) 2013-09-12 2013-09-12 Predictive caching of IP data
US14/336,696 Abandoned US20140328202A1 (en) 2013-09-12 2014-07-21 Predictive Caching of IP Data
US14/336,661 Active US8948042B2 (en) 2013-09-12 2014-07-21 Predictive caching of IP data
US14/337,335 Abandoned US20140329559A1 (en) 2013-09-12 2014-07-22 Predictive Caching of IP Data
US14/338,903 Abandoned US20140335911A1 (en) 2013-09-12 2014-07-23 Predictive Caching of IP Data on Mobile Device

Family Applications After (4)

Application Number Title Priority Date Filing Date
US14/336,696 Abandoned US20140328202A1 (en) 2013-09-12 2014-07-21 Predictive Caching of IP Data
US14/336,661 Active US8948042B2 (en) 2013-09-12 2014-07-21 Predictive caching of IP data
US14/337,335 Abandoned US20140329559A1 (en) 2013-09-12 2014-07-22 Predictive Caching of IP Data
US14/338,903 Abandoned US20140335911A1 (en) 2013-09-12 2014-07-23 Predictive Caching of IP Data on Mobile Device

Country Status (2)

Country Link
US (5) US8825881B2 (en)
WO (1) WO2015038462A1 (en)

Cited By (154)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8909725B1 (en) * 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
US20150085194A1 (en) * 2013-08-13 2015-03-26 Nec Corporation Still image provision device
US9083770B1 (en) 2013-11-26 2015-07-14 Snapchat, Inc. Method and system for integrating real time communication features in applications
US9094137B1 (en) 2014-06-13 2015-07-28 Snapchat, Inc. Priority based placement of messages in a geo-location based event gallery
WO2015148406A1 (en) * 2014-03-23 2015-10-01 Opanga Networks, Inc. Controlling the pre-delivery of content to a mobile device
WO2015176851A1 (en) * 2014-05-23 2015-11-26 Sony Corporation A method, apparatus and system for delivering content
US20150341830A1 (en) * 2014-05-23 2015-11-26 Samsung Electronics Co., Ltd. Method and apparatus for improving quality of service that a user experiences when media is transmitted through wlan
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US20160269988A1 (en) * 2013-11-21 2016-09-15 Huawei Technologies Co., Ltd. Network access selection method and terminal
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US9705831B2 (en) 2013-05-30 2017-07-11 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9721394B2 (en) 2012-08-22 2017-08-01 Snaps Media, Inc. Augmented reality virtual content platform apparatuses, methods and systems
CN107079371A (en) * 2014-05-23 2017-08-18 三星电子株式会社 The method and apparatus for improving the service quality of Consumer's Experience when by WLAN transmission media
US9742713B2 (en) 2013-05-30 2017-08-22 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US20170315917A1 (en) * 2016-04-29 2017-11-02 Ncr Corporation Predictive memory caching
US9843720B1 (en) 2014-11-12 2017-12-12 Snap Inc. User interface for accessing media at a geographic location
US9854219B2 (en) 2014-12-19 2017-12-26 Snap Inc. Gallery of videos set to an audio time line
US9866999B1 (en) 2014-01-12 2018-01-09 Investment Asset Holdings Llc Location-based messaging
US9882907B1 (en) 2012-11-08 2018-01-30 Snap Inc. Apparatus and method for single action control of social network profile access
US9936030B2 (en) 2014-01-03 2018-04-03 Investel Capital Corporation User content sharing system and method with location-based external content integration
US9933990B1 (en) 2013-03-15 2018-04-03 Sonitum Inc. Topological mapping of control parameters
US9948494B2 (en) 2015-09-29 2018-04-17 International Business Machines Corporation Method to save data usage in mobile devices based on prior history
US10033784B2 (en) 2014-07-14 2018-07-24 International Business Machines Corporation Predictive management of offline storage content for mobile applications and optimized network usage for mobile devices
US10055717B1 (en) 2014-08-22 2018-08-21 Snap Inc. Message processor with application prompts
US10084735B1 (en) 2014-02-21 2018-09-25 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US10123166B2 (en) 2015-01-26 2018-11-06 Snap Inc. Content request by location
US10135949B1 (en) 2015-05-05 2018-11-20 Snap Inc. Systems and methods for story and sub-story navigation
US10133705B1 (en) 2015-01-19 2018-11-20 Snap Inc. Multichannel system
US10157449B1 (en) 2015-01-09 2018-12-18 Snap Inc. Geo-location-based image filters
US10165402B1 (en) 2016-06-28 2018-12-25 Snap Inc. System to track engagement of media items
US10203855B2 (en) 2016-12-09 2019-02-12 Snap Inc. Customized user-controlled media overlays
US10219111B1 (en) 2018-04-18 2019-02-26 Snap Inc. Visitation tracking system
US10223397B1 (en) 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
US10284508B1 (en) 2014-10-02 2019-05-07 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US10327096B1 (en) 2018-03-06 2019-06-18 Snap Inc. Geo-fence selection system
US10334307B2 (en) 2011-07-12 2019-06-25 Snap Inc. Methods and systems of providing visual content editing functions
US10348662B2 (en) 2016-07-19 2019-07-09 Snap Inc. Generating customized electronic messaging graphics
US20190213241A1 (en) * 2016-11-14 2019-07-11 Tencent Technology (Shenzhen) Company Limited Web page display method and apparatus, mobile terminal, and storage medium
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US10366543B1 (en) 2015-10-30 2019-07-30 Snap Inc. Image based tracking in augmented reality systems
US10387514B1 (en) 2016-06-30 2019-08-20 Snap Inc. Automated content curation and communication
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
US10389842B2 (en) 2015-09-18 2019-08-20 International Business Machines Corporation Mobile device cache updating
US10423983B2 (en) 2014-09-16 2019-09-24 Snap Inc. Determining targeting information based on a predictive targeting model
US10430838B1 (en) 2016-06-28 2019-10-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections with automated advertising
US10439972B1 (en) 2013-05-30 2019-10-08 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10474321B2 (en) 2015-11-30 2019-11-12 Snap Inc. Network resource location linking and visual content sharing
US10499191B1 (en) 2017-10-09 2019-12-03 Snap Inc. Context sensitive presentation of content
US10506067B2 (en) 2013-03-15 2019-12-10 Sonitum Inc. Dynamic personalization of a communication session in heterogeneous environments
US10523625B1 (en) 2017-03-09 2019-12-31 Snap Inc. Restricted group content collection
US10581782B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10582277B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10592574B2 (en) 2015-05-05 2020-03-17 Snap Inc. Systems and methods for automated local story generation and curation
US10616239B2 (en) 2015-03-18 2020-04-07 Snap Inc. Geo-fence authorization provisioning
US10623666B2 (en) 2016-11-07 2020-04-14 Snap Inc. Selective identification and order of image modifiers
US10638256B1 (en) 2016-06-20 2020-04-28 Pipbin, Inc. System for distribution and display of mobile targeted augmented reality content
US10679393B2 (en) 2018-07-24 2020-06-09 Snap Inc. Conditional modification of augmented reality object
US10679389B2 (en) 2016-02-26 2020-06-09 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10678818B2 (en) 2018-01-03 2020-06-09 Snap Inc. Tag distribution visualization system
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
US10805696B1 (en) 2016-06-20 2020-10-13 Pipbin, Inc. System for recording and targeting tagged content of user interest
CN111800656A (en) * 2014-08-29 2020-10-20 尼尔森(美国)有限公司 Method, device and equipment for predicting end of streaming media by using prediction model
US10817898B2 (en) 2015-08-13 2020-10-27 Placed, Llc Determining exposures to content presented by physical objects
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US10834525B2 (en) 2016-02-26 2020-11-10 Snap Inc. Generation, curation, and presentation of media collections
US10839219B1 (en) 2016-06-20 2020-11-17 Pipbin, Inc. System for curation, distribution and display of location-dependent augmented reality content
US10862951B1 (en) 2007-01-05 2020-12-08 Snap Inc. Real-time display of multiple images
US10885136B1 (en) 2018-02-28 2021-01-05 Snap Inc. Audience filtering system
US10915911B2 (en) 2017-02-03 2021-02-09 Snap Inc. System to determine a price-schedule to distribute media content
US10933311B2 (en) 2018-03-14 2021-03-02 Snap Inc. Generating collectible items based on location information
US10952013B1 (en) 2017-04-27 2021-03-16 Snap Inc. Selective location-based identity communication
US10948717B1 (en) 2015-03-23 2021-03-16 Snap Inc. Reducing boot time and power consumption in wearable display systems
US10963529B1 (en) 2017-04-27 2021-03-30 Snap Inc. Location-based search mechanism in a graphical user interface
US10979752B1 (en) 2018-02-28 2021-04-13 Snap Inc. Generating media content items based on location information
US10993069B2 (en) 2015-07-16 2021-04-27 Snap Inc. Dynamically adaptive media content delivery
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US10997783B2 (en) 2015-11-30 2021-05-04 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US11017173B1 (en) 2017-12-22 2021-05-25 Snap Inc. Named entity recognition visual context and caption data
US11023514B2 (en) 2016-02-26 2021-06-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US11030787B2 (en) 2017-10-30 2021-06-08 Snap Inc. Mobile-based cartographic control of display content
US11037372B2 (en) 2017-03-06 2021-06-15 Snap Inc. Virtual vision system
US11044393B1 (en) 2016-06-20 2021-06-22 Pipbin, Inc. System for curation and display of location-dependent augmented reality content in an augmented estate system
US11128715B1 (en) 2019-12-30 2021-09-21 Snap Inc. Physical friend proximity in chat
US11163941B1 (en) 2018-03-30 2021-11-02 Snap Inc. Annotating a collection of media content items
US11170393B1 (en) 2017-04-11 2021-11-09 Snap Inc. System to calculate an engagement score of location based media content
US11182383B1 (en) 2012-02-24 2021-11-23 Placed, Llc System and method for data collection to validate location data
US11189299B1 (en) 2017-02-20 2021-11-30 Snap Inc. Augmented reality speech balloon system
US11199957B1 (en) 2018-11-30 2021-12-14 Snap Inc. Generating customized avatars based on location information
US11201981B1 (en) 2016-06-20 2021-12-14 Pipbin, Inc. System for notification of user accessibility of curated location-dependent content in an augmented estate
US11206615B2 (en) 2019-05-30 2021-12-21 Snap Inc. Wearable device location systems
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US11218838B2 (en) 2019-10-31 2022-01-04 Snap Inc. Focused map-based context information surfacing
US11228551B1 (en) 2020-02-12 2022-01-18 Snap Inc. Multiple gateway message exchange
US11232040B1 (en) 2017-04-28 2022-01-25 Snap Inc. Precaching unlockable data elements
US11249614B2 (en) 2019-03-28 2022-02-15 Snap Inc. Generating personalized map interface with enhanced icons
US11250075B1 (en) 2017-02-17 2022-02-15 Snap Inc. Searching social media content
US11265273B1 (en) 2017-12-01 2022-03-01 Snap, Inc. Dynamic media overlay with smart widget
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11294936B1 (en) 2019-01-30 2022-04-05 Snap Inc. Adaptive spatial density based clustering
US11301117B2 (en) 2019-03-08 2022-04-12 Snap Inc. Contextual information in chat
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11343323B2 (en) 2019-12-31 2022-05-24 Snap Inc. Augmented reality objects registry
US11361493B2 (en) 2019-04-01 2022-06-14 Snap Inc. Semantic texture mapping system
US11388226B1 (en) 2015-01-13 2022-07-12 Snap Inc. Guided personal identity based actions
US11429618B2 (en) 2019-12-30 2022-08-30 Snap Inc. Surfacing augmented reality objects
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US11455082B2 (en) 2018-09-28 2022-09-27 Snap Inc. Collaborative achievement interface
US11475254B1 (en) 2017-09-08 2022-10-18 Snap Inc. Multimodal entity identification
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11500525B2 (en) 2019-02-25 2022-11-15 Snap Inc. Custom media overlay system
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11507614B1 (en) 2018-02-13 2022-11-22 Snap Inc. Icon based tagging
US11516167B2 (en) 2020-03-05 2022-11-29 Snap Inc. Storing data based on device location
US11558709B2 (en) 2018-11-30 2023-01-17 Snap Inc. Position service to determine relative position to map features
US11574431B2 (en) 2019-02-26 2023-02-07 Snap Inc. Avatar based on weather
US11601888B2 (en) 2021-03-29 2023-03-07 Snap Inc. Determining location using multi-source geolocation data
US11601783B2 (en) 2019-06-07 2023-03-07 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11606755B2 (en) 2019-05-30 2023-03-14 Snap Inc. Wearable device location systems architecture
US11616745B2 (en) 2017-01-09 2023-03-28 Snap Inc. Contextual generation and selection of customized media content
US11619501B2 (en) 2020-03-11 2023-04-04 Snap Inc. Avatar based on trip
US11625443B2 (en) 2014-06-05 2023-04-11 Snap Inc. Web document enhancement
US11631276B2 (en) 2016-03-31 2023-04-18 Snap Inc. Automated avatar generation
US11645324B2 (en) 2021-03-31 2023-05-09 Snap Inc. Location-based timeline media content system
US11675831B2 (en) 2017-05-31 2023-06-13 Snap Inc. Geolocation based playlists
US11676378B2 (en) 2020-06-29 2023-06-13 Snap Inc. Providing travel-based augmented reality content with a captured image
US11714535B2 (en) 2019-07-11 2023-08-01 Snap Inc. Edge gesture interface with smart interactions
US11729343B2 (en) 2019-12-30 2023-08-15 Snap Inc. Including video feed in message thread
US11734712B2 (en) 2012-02-24 2023-08-22 Foursquare Labs, Inc. Attributing in-store visits to media consumption based on data collected from user devices
US11751015B2 (en) 2019-01-16 2023-09-05 Snap Inc. Location-based context information sharing in a messaging system
US11776256B2 (en) 2020-03-27 2023-10-03 Snap Inc. Shared augmented reality system
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
US11799811B2 (en) 2018-10-31 2023-10-24 Snap Inc. Messaging and gaming applications communication platform
US11809624B2 (en) 2019-02-13 2023-11-07 Snap Inc. Sleep detection in a location sharing system
US11816853B2 (en) 2016-08-30 2023-11-14 Snap Inc. Systems and methods for simultaneous localization and mapping
US11821742B2 (en) 2019-09-26 2023-11-21 Snap Inc. Travel based notifications
US11829834B2 (en) 2021-10-29 2023-11-28 Snap Inc. Extended QR code
US11843456B2 (en) 2016-10-24 2023-12-12 Snap Inc. Generating and displaying customized avatars in media overlays
US11842411B2 (en) 2017-04-27 2023-12-12 Snap Inc. Location-based virtual avatars
US11852554B1 (en) 2019-03-21 2023-12-26 Snap Inc. Barometer calibration in a location sharing system
US11860888B2 (en) 2018-05-22 2024-01-02 Snap Inc. Event detection system
US11870743B1 (en) 2017-01-23 2024-01-09 Snap Inc. Customized digital avatar accessories
US11868414B1 (en) 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
US11877211B2 (en) 2019-01-14 2024-01-16 Snap Inc. Destination sharing in location sharing system
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
US11893208B2 (en) 2019-12-31 2024-02-06 Snap Inc. Combined map icon with action indicator
US11900418B2 (en) 2016-04-04 2024-02-13 Snap Inc. Mutable geo-fencing system
US11925869B2 (en) 2012-05-08 2024-03-12 Snap Inc. System and method for generating and displaying avatars
US11943192B2 (en) 2020-08-31 2024-03-26 Snap Inc. Co-location connection service
US11954314B2 (en) 2022-09-09 2024-04-09 Snap Inc. Custom media overlay system

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140342730A1 (en) * 2013-09-12 2014-11-20 Bandwidth.Com, Inc. Predictive Caching of IP Data
US20160198014A1 (en) * 2015-01-05 2016-07-07 Onavo Mobile Ltd. Techniques for predictive network resource caching
US9264944B1 (en) 2015-07-06 2016-02-16 Peerless Network, Inc. SBC-localized handoff
US10084884B2 (en) 2015-07-31 2018-09-25 At&T Intellectual Property I, L.P. Facilitation of efficient web site page loading
US9497606B1 (en) 2016-03-24 2016-11-15 Peerless Network, Inc. Native dialer fall-back
US9706351B1 (en) 2016-04-29 2017-07-11 Peerless Network, Inc. Emergency call over a data network
CN107508985A (en) * 2017-08-22 2017-12-22 山东大学 A kind of method that application program is downloaded in Android mobile phone
US10932118B1 (en) * 2018-05-25 2021-02-23 El Toro.Com, Llc Systems, methods, and apparatuses for providing content according to geolocation
CN109327850B (en) * 2018-11-16 2021-06-25 安徽大学 Multi-user detection method of non-orthogonal multiple access system based on gradient tracking and multi-step quasi-Newton method technology

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050254451A1 (en) * 2004-05-14 2005-11-17 Grosbach Roy G Internet micro cell
US20100161831A1 (en) * 2008-12-19 2010-06-24 David Haas Optimizing content and communication in multiaccess mobile device exhibiting communication functionalities responsive of tempo spatial parameters
US20100281118A1 (en) * 2009-04-29 2010-11-04 Brett Donahue Maintaining Connections Between Mobile Devices and Servers
US20110057790A1 (en) * 2009-09-10 2011-03-10 John Jeffrey Martin System and method for location-based reminders on a mobile device
US20120023226A1 (en) * 2010-07-26 2012-01-26 Steve Petersen Prediction of activity session for mobile network use optimization and user experience enhancement
US20130054729A1 (en) * 2009-11-06 2013-02-28 Sharad Jaiswal System and method for pre-fetching and caching content
US20130151652A1 (en) * 2011-12-07 2013-06-13 International Business Machines Corporation Data services using location patterns and intelligent caching
US20130166690A1 (en) * 2011-12-22 2013-06-27 Cisco Technology, Inc. Out-of-band signaling and device-based content control

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8032409B1 (en) * 1999-11-22 2011-10-04 Accenture Global Services Limited Enhanced visibility during installation management in a network-based supply chain environment
US8886742B2 (en) * 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US9674328B2 (en) * 2011-02-22 2017-06-06 Speak With Me, Inc. Hybridized client-server speech recognition
US9690563B2 (en) * 2012-05-17 2017-06-27 International Business Machines Corporation Updating web resources

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050254451A1 (en) * 2004-05-14 2005-11-17 Grosbach Roy G Internet micro cell
US20100161831A1 (en) * 2008-12-19 2010-06-24 David Haas Optimizing content and communication in multiaccess mobile device exhibiting communication functionalities responsive of tempo spatial parameters
US20100281118A1 (en) * 2009-04-29 2010-11-04 Brett Donahue Maintaining Connections Between Mobile Devices and Servers
US20110057790A1 (en) * 2009-09-10 2011-03-10 John Jeffrey Martin System and method for location-based reminders on a mobile device
US20130054729A1 (en) * 2009-11-06 2013-02-28 Sharad Jaiswal System and method for pre-fetching and caching content
US20120023226A1 (en) * 2010-07-26 2012-01-26 Steve Petersen Prediction of activity session for mobile network use optimization and user experience enhancement
US20130151652A1 (en) * 2011-12-07 2013-06-13 International Business Machines Corporation Data services using location patterns and intelligent caching
US20130151654A1 (en) * 2011-12-07 2013-06-13 International Business Machines Corporation Data services using location patterns and intelligent caching
US20130166690A1 (en) * 2011-12-22 2013-06-27 Cisco Technology, Inc. Out-of-band signaling and device-based content control

Cited By (353)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10862951B1 (en) 2007-01-05 2020-12-08 Snap Inc. Real-time display of multiple images
US11588770B2 (en) 2007-01-05 2023-02-21 Snap Inc. Real-time display of multiple images
US11451856B2 (en) 2011-07-12 2022-09-20 Snap Inc. Providing visual content editing functions
US11750875B2 (en) 2011-07-12 2023-09-05 Snap Inc. Providing visual content editing functions
US10999623B2 (en) 2011-07-12 2021-05-04 Snap Inc. Providing visual content editing functions
US10334307B2 (en) 2011-07-12 2019-06-25 Snap Inc. Methods and systems of providing visual content editing functions
US11734712B2 (en) 2012-02-24 2023-08-22 Foursquare Labs, Inc. Attributing in-store visits to media consumption based on data collected from user devices
US11182383B1 (en) 2012-02-24 2021-11-23 Placed, Llc System and method for data collection to validate location data
US11925869B2 (en) 2012-05-08 2024-03-12 Snap Inc. System and method for generating and displaying avatars
US9792733B2 (en) 2012-08-22 2017-10-17 Snaps Media, Inc. Augmented reality virtual content platform apparatuses, methods and systems
US9721394B2 (en) 2012-08-22 2017-08-01 Snaps Media, Inc. Augmented reality virtual content platform apparatuses, methods and systems
US10169924B2 (en) 2012-08-22 2019-01-01 Snaps Media Inc. Augmented reality virtual content platform apparatuses, methods and systems
US11252158B2 (en) 2012-11-08 2022-02-15 Snap Inc. Interactive user-interface to adjust access privileges
US9882907B1 (en) 2012-11-08 2018-01-30 Snap Inc. Apparatus and method for single action control of social network profile access
US10887308B1 (en) 2012-11-08 2021-01-05 Snap Inc. Interactive user-interface to adjust access privileges
US10506067B2 (en) 2013-03-15 2019-12-10 Sonitum Inc. Dynamic personalization of a communication session in heterogeneous environments
US9933990B1 (en) 2013-03-15 2018-04-03 Sonitum Inc. Topological mapping of control parameters
US11134046B2 (en) 2013-05-30 2021-09-28 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US11115361B2 (en) 2013-05-30 2021-09-07 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US11509618B2 (en) 2013-05-30 2022-11-22 Snap Inc. Maintaining a message thread with opt-in permanence for entries
US9705831B2 (en) 2013-05-30 2017-07-11 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10587552B1 (en) 2013-05-30 2020-03-10 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10439972B1 (en) 2013-05-30 2019-10-08 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9742713B2 (en) 2013-05-30 2017-08-22 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9894291B2 (en) * 2013-08-13 2018-02-13 Nec Corporation Still image provision device
US20150085194A1 (en) * 2013-08-13 2015-03-26 Nec Corporation Still image provision device
US20160269988A1 (en) * 2013-11-21 2016-09-15 Huawei Technologies Co., Ltd. Network access selection method and terminal
US11546388B2 (en) 2013-11-26 2023-01-03 Snap Inc. Method and system for integrating real time communication features in applications
US9794303B1 (en) 2013-11-26 2017-10-17 Snap Inc. Method and system for integrating real time communication features in applications
US10681092B1 (en) 2013-11-26 2020-06-09 Snap Inc. Method and system for integrating real time communication features in applications
US10069876B1 (en) 2013-11-26 2018-09-04 Snap Inc. Method and system for integrating real time communication features in applications
US11102253B2 (en) 2013-11-26 2021-08-24 Snap Inc. Method and system for integrating real time communication features in applications
US9083770B1 (en) 2013-11-26 2015-07-14 Snapchat, Inc. Method and system for integrating real time communication features in applications
US9936030B2 (en) 2014-01-03 2018-04-03 Investel Capital Corporation User content sharing system and method with location-based external content integration
US9866999B1 (en) 2014-01-12 2018-01-09 Investment Asset Holdings Llc Location-based messaging
US10349209B1 (en) 2014-01-12 2019-07-09 Investment Asset Holdings Llc Location-based messaging
US10080102B1 (en) 2014-01-12 2018-09-18 Investment Asset Holdings Llc Location-based messaging
US11463394B2 (en) 2014-02-21 2022-10-04 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US10949049B1 (en) 2014-02-21 2021-03-16 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US10958605B1 (en) 2014-02-21 2021-03-23 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US11463393B2 (en) 2014-02-21 2022-10-04 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US11902235B2 (en) 2014-02-21 2024-02-13 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US10084735B1 (en) 2014-02-21 2018-09-25 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US10082926B1 (en) 2014-02-21 2018-09-25 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US9407712B1 (en) 2014-03-07 2016-08-02 Snapchat, Inc. Content delivery network for ephemeral objects
US9237202B1 (en) 2014-03-07 2016-01-12 Snapchat, Inc. Content delivery network for ephemeral objects
US8909725B1 (en) * 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
US9769279B2 (en) 2014-03-23 2017-09-19 Opanga Networks, Inc. Controlling the pre-delivery of content to a mobile device
WO2015148406A1 (en) * 2014-03-23 2015-10-01 Opanga Networks, Inc. Controlling the pre-delivery of content to a mobile device
US10817156B1 (en) 2014-05-09 2020-10-27 Snap Inc. Dynamic configuration of application component tiles
US11743219B2 (en) 2014-05-09 2023-08-29 Snap Inc. Dynamic configuration of application component tiles
US11310183B2 (en) 2014-05-09 2022-04-19 Snap Inc. Dynamic configuration of application component tiles
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
CN107079371A (en) * 2014-05-23 2017-08-18 三星电子株式会社 The method and apparatus for improving the service quality of Consumer's Experience when by WLAN transmission media
US20150341830A1 (en) * 2014-05-23 2015-11-26 Samsung Electronics Co., Ltd. Method and apparatus for improving quality of service that a user experiences when media is transmitted through wlan
US10177928B2 (en) * 2014-05-23 2019-01-08 Sony Corporation Method, apparatus and system for delivering content
WO2015176851A1 (en) * 2014-05-23 2015-11-26 Sony Corporation A method, apparatus and system for delivering content
US10536881B2 (en) * 2014-05-23 2020-01-14 Samsung Electronics Co., Ltd. Method and apparatus for improving quality of service that a user experiences when media is transmitted through WLAN
US10572681B1 (en) 2014-05-28 2020-02-25 Snap Inc. Apparatus and method for automated privacy protection in distributed images
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9785796B1 (en) 2014-05-28 2017-10-10 Snap Inc. Apparatus and method for automated privacy protection in distributed images
US10990697B2 (en) 2014-05-28 2021-04-27 Snap Inc. Apparatus and method for automated privacy protection in distributed images
US11625443B2 (en) 2014-06-05 2023-04-11 Snap Inc. Web document enhancement
US11921805B2 (en) 2014-06-05 2024-03-05 Snap Inc. Web document enhancement
US11317240B2 (en) 2014-06-13 2022-04-26 Snap Inc. Geo-location based event gallery
US10200813B1 (en) 2014-06-13 2019-02-05 Snap Inc. Geo-location based event gallery
US10524087B1 (en) 2014-06-13 2019-12-31 Snap Inc. Message destination list mechanism
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US9430783B1 (en) 2014-06-13 2016-08-30 Snapchat, Inc. Prioritization of messages within gallery
US9693191B2 (en) 2014-06-13 2017-06-27 Snap Inc. Prioritization of messages within gallery
US10182311B2 (en) 2014-06-13 2019-01-15 Snap Inc. Prioritization of messages within a message collection
US9825898B2 (en) 2014-06-13 2017-11-21 Snap Inc. Prioritization of messages within a message collection
US10623891B2 (en) 2014-06-13 2020-04-14 Snap Inc. Prioritization of messages within a message collection
US10779113B2 (en) 2014-06-13 2020-09-15 Snap Inc. Prioritization of messages within a message collection
US10448201B1 (en) 2014-06-13 2019-10-15 Snap Inc. Prioritization of messages within a message collection
US9532171B2 (en) 2014-06-13 2016-12-27 Snap Inc. Geo-location based event gallery
US9094137B1 (en) 2014-06-13 2015-07-28 Snapchat, Inc. Priority based placement of messages in a geo-location based event gallery
US10659914B1 (en) 2014-06-13 2020-05-19 Snap Inc. Geo-location based event gallery
US11166121B2 (en) 2014-06-13 2021-11-02 Snap Inc. Prioritization of messages within a message collection
US11122200B2 (en) 2014-07-07 2021-09-14 Snap Inc. Supplying content aware photo filters
US10602057B1 (en) 2014-07-07 2020-03-24 Snap Inc. Supplying content aware photo filters
US11595569B2 (en) 2014-07-07 2023-02-28 Snap Inc. Supplying content aware photo filters
US11496673B1 (en) 2014-07-07 2022-11-08 Snap Inc. Apparatus and method for supplying content aware photo filters
US10154192B1 (en) 2014-07-07 2018-12-11 Snap Inc. Apparatus and method for supplying content aware photo filters
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US9407816B1 (en) 2014-07-07 2016-08-02 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US10348960B1 (en) 2014-07-07 2019-07-09 Snap Inc. Apparatus and method for supplying content aware photo filters
US10701262B1 (en) 2014-07-07 2020-06-30 Snap Inc. Apparatus and method for supplying content aware photo filters
US10432850B1 (en) 2014-07-07 2019-10-01 Snap Inc. Apparatus and method for supplying content aware photo filters
US11849214B2 (en) 2014-07-07 2023-12-19 Snap Inc. Apparatus and method for supplying content aware photo filters
US10244023B2 (en) 2014-07-14 2019-03-26 International Business Machines Corporation Active offline storage management for streaming media application used by multiple client devices
US10681101B2 (en) * 2014-07-14 2020-06-09 International Business Machines Corporation Predictive management of offline storage content for mobile applications and optimized network usage for mobile devices
US10033784B2 (en) 2014-07-14 2018-07-24 International Business Machines Corporation Predictive management of offline storage content for mobile applications and optimized network usage for mobile devices
US10055717B1 (en) 2014-08-22 2018-08-21 Snap Inc. Message processor with application prompts
US11017363B1 (en) 2014-08-22 2021-05-25 Snap Inc. Message processor with application prompts
CN111800656A (en) * 2014-08-29 2020-10-20 尼尔森(美国)有限公司 Method, device and equipment for predicting end of streaming media by using prediction model
US10423983B2 (en) 2014-09-16 2019-09-24 Snap Inc. Determining targeting information based on a predictive targeting model
US11625755B1 (en) 2014-09-16 2023-04-11 Foursquare Labs, Inc. Determining targeting information based on a predictive targeting model
US11741136B2 (en) 2014-09-18 2023-08-29 Snap Inc. Geolocation-based pictographs
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11281701B2 (en) 2014-09-18 2022-03-22 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US11522822B1 (en) 2014-10-02 2022-12-06 Snap Inc. Ephemeral gallery elimination based on gallery and message timers
US10476830B2 (en) 2014-10-02 2019-11-12 Snap Inc. Ephemeral gallery of ephemeral messages
US11855947B1 (en) 2014-10-02 2023-12-26 Snap Inc. Gallery of ephemeral messages
US10944710B1 (en) 2014-10-02 2021-03-09 Snap Inc. Ephemeral gallery user interface with remaining gallery time indication
US11012398B1 (en) 2014-10-02 2021-05-18 Snap Inc. Ephemeral message gallery user interface with screenshot messages
US10958608B1 (en) 2014-10-02 2021-03-23 Snap Inc. Ephemeral gallery of visual media messages
US10284508B1 (en) 2014-10-02 2019-05-07 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
US20170374003A1 (en) 2014-10-02 2017-12-28 Snapchat, Inc. Ephemeral gallery of ephemeral messages
US11038829B1 (en) 2014-10-02 2021-06-15 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
US10708210B1 (en) 2014-10-02 2020-07-07 Snap Inc. Multi-user ephemeral message gallery
US11411908B1 (en) 2014-10-02 2022-08-09 Snap Inc. Ephemeral message gallery user interface with online viewing history indicia
US11190679B2 (en) 2014-11-12 2021-11-30 Snap Inc. Accessing media at a geographic location
US9843720B1 (en) 2014-11-12 2017-12-12 Snap Inc. User interface for accessing media at a geographic location
US10616476B1 (en) 2014-11-12 2020-04-07 Snap Inc. User interface for accessing media at a geographic location
US10514876B2 (en) 2014-12-19 2019-12-24 Snap Inc. Gallery of messages from individuals with a shared interest
US11803345B2 (en) 2014-12-19 2023-10-31 Snap Inc. Gallery of messages from individuals with a shared interest
US11783862B2 (en) 2014-12-19 2023-10-10 Snap Inc. Routing messages by message parameter
US9854219B2 (en) 2014-12-19 2017-12-26 Snap Inc. Gallery of videos set to an audio time line
US11250887B2 (en) 2014-12-19 2022-02-15 Snap Inc. Routing messages by message parameter
US11372608B2 (en) 2014-12-19 2022-06-28 Snap Inc. Gallery of messages from individuals with a shared interest
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US10811053B2 (en) 2014-12-19 2020-10-20 Snap Inc. Routing messages by message parameter
US10580458B2 (en) 2014-12-19 2020-03-03 Snap Inc. Gallery of videos set to an audio time line
US10380720B1 (en) 2015-01-09 2019-08-13 Snap Inc. Location-based image filters
US10157449B1 (en) 2015-01-09 2018-12-18 Snap Inc. Geo-location-based image filters
US11734342B2 (en) 2015-01-09 2023-08-22 Snap Inc. Object recognition based image overlays
US11301960B2 (en) 2015-01-09 2022-04-12 Snap Inc. Object recognition based image filters
US11388226B1 (en) 2015-01-13 2022-07-12 Snap Inc. Guided personal identity based actions
US11249617B1 (en) 2015-01-19 2022-02-15 Snap Inc. Multichannel system
US10133705B1 (en) 2015-01-19 2018-11-20 Snap Inc. Multichannel system
US10416845B1 (en) 2015-01-19 2019-09-17 Snap Inc. Multichannel system
US11528579B2 (en) 2015-01-26 2022-12-13 Snap Inc. Content request by location
US10536800B1 (en) 2015-01-26 2020-01-14 Snap Inc. Content request by location
US10123166B2 (en) 2015-01-26 2018-11-06 Snap Inc. Content request by location
US10932085B1 (en) 2015-01-26 2021-02-23 Snap Inc. Content request by location
US11910267B2 (en) 2015-01-26 2024-02-20 Snap Inc. Content request by location
US10223397B1 (en) 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
US10616239B2 (en) 2015-03-18 2020-04-07 Snap Inc. Geo-fence authorization provisioning
US11902287B2 (en) 2015-03-18 2024-02-13 Snap Inc. Geo-fence authorization provisioning
US10893055B2 (en) 2015-03-18 2021-01-12 Snap Inc. Geo-fence authorization provisioning
US10948717B1 (en) 2015-03-23 2021-03-16 Snap Inc. Reducing boot time and power consumption in wearable display systems
US11662576B2 (en) 2015-03-23 2023-05-30 Snap Inc. Reducing boot time and power consumption in displaying data content
US11320651B2 (en) 2015-03-23 2022-05-03 Snap Inc. Reducing boot time and power consumption in displaying data content
US11496544B2 (en) 2015-05-05 2022-11-08 Snap Inc. Story and sub-story navigation
US11449539B2 (en) 2015-05-05 2022-09-20 Snap Inc. Automated local story generation and curation
US10135949B1 (en) 2015-05-05 2018-11-20 Snap Inc. Systems and methods for story and sub-story navigation
US11392633B2 (en) 2015-05-05 2022-07-19 Snap Inc. Systems and methods for automated local story generation and curation
US10911575B1 (en) 2015-05-05 2021-02-02 Snap Inc. Systems and methods for story and sub-story navigation
US10592574B2 (en) 2015-05-05 2020-03-17 Snap Inc. Systems and methods for automated local story generation and curation
US10993069B2 (en) 2015-07-16 2021-04-27 Snap Inc. Dynamically adaptive media content delivery
US10817898B2 (en) 2015-08-13 2020-10-27 Placed, Llc Determining exposures to content presented by physical objects
US10389842B2 (en) 2015-09-18 2019-08-20 International Business Machines Corporation Mobile device cache updating
US10931781B2 (en) 2015-09-18 2021-02-23 International Business Machines Corporation Mobile device cache updating
US9948494B2 (en) 2015-09-29 2018-04-17 International Business Machines Corporation Method to save data usage in mobile devices based on prior history
US11769307B2 (en) 2015-10-30 2023-09-26 Snap Inc. Image based tracking in augmented reality systems
US11315331B2 (en) 2015-10-30 2022-04-26 Snap Inc. Image based tracking in augmented reality systems
US10366543B1 (en) 2015-10-30 2019-07-30 Snap Inc. Image based tracking in augmented reality systems
US10733802B2 (en) 2015-10-30 2020-08-04 Snap Inc. Image based tracking in augmented reality systems
US10997783B2 (en) 2015-11-30 2021-05-04 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US11599241B2 (en) 2015-11-30 2023-03-07 Snap Inc. Network resource location linking and visual content sharing
US11380051B2 (en) 2015-11-30 2022-07-05 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US10474321B2 (en) 2015-11-30 2019-11-12 Snap Inc. Network resource location linking and visual content sharing
US11830117B2 (en) 2015-12-18 2023-11-28 Snap Inc Media overlay publication system
US11468615B2 (en) 2015-12-18 2022-10-11 Snap Inc. Media overlay publication system
US10997758B1 (en) 2015-12-18 2021-05-04 Snap Inc. Media overlay publication system
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US11889381B2 (en) 2016-02-26 2024-01-30 Snap Inc. Generation, curation, and presentation of media collections
US11023514B2 (en) 2016-02-26 2021-06-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10679389B2 (en) 2016-02-26 2020-06-09 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US11197123B2 (en) 2016-02-26 2021-12-07 Snap Inc. Generation, curation, and presentation of media collections
US10834525B2 (en) 2016-02-26 2020-11-10 Snap Inc. Generation, curation, and presentation of media collections
US11611846B2 (en) 2016-02-26 2023-03-21 Snap Inc. Generation, curation, and presentation of media collections
US11631276B2 (en) 2016-03-31 2023-04-18 Snap Inc. Automated avatar generation
US11900418B2 (en) 2016-04-04 2024-02-13 Snap Inc. Mutable geo-fencing system
US9946653B2 (en) * 2016-04-29 2018-04-17 Ncr Corporation Predictive memory caching
US20170315917A1 (en) * 2016-04-29 2017-11-02 Ncr Corporation Predictive memory caching
US11044393B1 (en) 2016-06-20 2021-06-22 Pipbin, Inc. System for curation and display of location-dependent augmented reality content in an augmented estate system
US10638256B1 (en) 2016-06-20 2020-04-28 Pipbin, Inc. System for distribution and display of mobile targeted augmented reality content
US10992836B2 (en) 2016-06-20 2021-04-27 Pipbin, Inc. Augmented property system of curated augmented reality media elements
US10839219B1 (en) 2016-06-20 2020-11-17 Pipbin, Inc. System for curation, distribution and display of location-dependent augmented reality content
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
US11201981B1 (en) 2016-06-20 2021-12-14 Pipbin, Inc. System for notification of user accessibility of curated location-dependent content in an augmented estate
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
US10805696B1 (en) 2016-06-20 2020-10-13 Pipbin, Inc. System for recording and targeting tagged content of user interest
US11445326B2 (en) 2016-06-28 2022-09-13 Snap Inc. Track engagement of media items
US10885559B1 (en) 2016-06-28 2021-01-05 Snap Inc. Generation, curation, and presentation of media collections with automated advertising
US11640625B2 (en) 2016-06-28 2023-05-02 Snap Inc. Generation, curation, and presentation of media collections with automated advertising
US10430838B1 (en) 2016-06-28 2019-10-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections with automated advertising
US10219110B2 (en) 2016-06-28 2019-02-26 Snap Inc. System to track engagement of media items
US10735892B2 (en) 2016-06-28 2020-08-04 Snap Inc. System to track engagement of media items
US10506371B2 (en) 2016-06-28 2019-12-10 Snap Inc. System to track engagement of media items
US10785597B2 (en) 2016-06-28 2020-09-22 Snap Inc. System to track engagement of media items
US10165402B1 (en) 2016-06-28 2018-12-25 Snap Inc. System to track engagement of media items
US10327100B1 (en) 2016-06-28 2019-06-18 Snap Inc. System to track engagement of media items
US11895068B2 (en) 2016-06-30 2024-02-06 Snap Inc. Automated content curation and communication
US11080351B1 (en) 2016-06-30 2021-08-03 Snap Inc. Automated content curation and communication
US10387514B1 (en) 2016-06-30 2019-08-20 Snap Inc. Automated content curation and communication
US10348662B2 (en) 2016-07-19 2019-07-09 Snap Inc. Generating customized electronic messaging graphics
US11509615B2 (en) 2016-07-19 2022-11-22 Snap Inc. Generating customized electronic messaging graphics
US11816853B2 (en) 2016-08-30 2023-11-14 Snap Inc. Systems and methods for simultaneous localization and mapping
US11843456B2 (en) 2016-10-24 2023-12-12 Snap Inc. Generating and displaying customized avatars in media overlays
US11876762B1 (en) 2016-10-24 2024-01-16 Snap Inc. Generating and displaying customized avatars in media overlays
US11750767B2 (en) 2016-11-07 2023-09-05 Snap Inc. Selective identification and order of image modifiers
US10623666B2 (en) 2016-11-07 2020-04-14 Snap Inc. Selective identification and order of image modifiers
US11233952B2 (en) 2016-11-07 2022-01-25 Snap Inc. Selective identification and order of image modifiers
US20190213241A1 (en) * 2016-11-14 2019-07-11 Tencent Technology (Shenzhen) Company Limited Web page display method and apparatus, mobile terminal, and storage medium
US10754525B1 (en) 2016-12-09 2020-08-25 Snap Inc. Customized media overlays
US11397517B2 (en) 2016-12-09 2022-07-26 Snap Inc. Customized media overlays
US10203855B2 (en) 2016-12-09 2019-02-12 Snap Inc. Customized user-controlled media overlays
US11616745B2 (en) 2017-01-09 2023-03-28 Snap Inc. Contextual generation and selection of customized media content
US11870743B1 (en) 2017-01-23 2024-01-09 Snap Inc. Customized digital avatar accessories
US10915911B2 (en) 2017-02-03 2021-02-09 Snap Inc. System to determine a price-schedule to distribute media content
US11250075B1 (en) 2017-02-17 2022-02-15 Snap Inc. Searching social media content
US11720640B2 (en) 2017-02-17 2023-08-08 Snap Inc. Searching social media content
US11861795B1 (en) 2017-02-17 2024-01-02 Snap Inc. Augmented reality anamorphosis system
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US11748579B2 (en) 2017-02-20 2023-09-05 Snap Inc. Augmented reality speech balloon system
US11189299B1 (en) 2017-02-20 2021-11-30 Snap Inc. Augmented reality speech balloon system
US11670057B2 (en) 2017-03-06 2023-06-06 Snap Inc. Virtual vision system
US11037372B2 (en) 2017-03-06 2021-06-15 Snap Inc. Virtual vision system
US10887269B1 (en) 2017-03-09 2021-01-05 Snap Inc. Restricted group content collection
US10523625B1 (en) 2017-03-09 2019-12-31 Snap Inc. Restricted group content collection
US11258749B2 (en) 2017-03-09 2022-02-22 Snap Inc. Restricted group content collection
US10581782B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10582277B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US11349796B2 (en) 2017-03-27 2022-05-31 Snap Inc. Generating a stitched data stream
US11558678B2 (en) 2017-03-27 2023-01-17 Snap Inc. Generating a stitched data stream
US11297399B1 (en) 2017-03-27 2022-04-05 Snap Inc. Generating a stitched data stream
US11170393B1 (en) 2017-04-11 2021-11-09 Snap Inc. System to calculate an engagement score of location based media content
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
US11195018B1 (en) 2017-04-20 2021-12-07 Snap Inc. Augmented reality typography personalization system
US11782574B2 (en) 2017-04-27 2023-10-10 Snap Inc. Map-based graphical user interface indicating geospatial activity metrics
US10963529B1 (en) 2017-04-27 2021-03-30 Snap Inc. Location-based search mechanism in a graphical user interface
US11474663B2 (en) 2017-04-27 2022-10-18 Snap Inc. Location-based search mechanism in a graphical user interface
US11556221B2 (en) 2017-04-27 2023-01-17 Snap Inc. Friend location sharing mechanism for social media platforms
US11385763B2 (en) 2017-04-27 2022-07-12 Snap Inc. Map-based graphical user interface indicating geospatial activity metrics
US11842411B2 (en) 2017-04-27 2023-12-12 Snap Inc. Location-based virtual avatars
US11418906B2 (en) 2017-04-27 2022-08-16 Snap Inc. Selective location-based identity communication
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US11409407B2 (en) 2017-04-27 2022-08-09 Snap Inc. Map-based graphical user interface indicating geospatial activity metrics
US10952013B1 (en) 2017-04-27 2021-03-16 Snap Inc. Selective location-based identity communication
US11451956B1 (en) 2017-04-27 2022-09-20 Snap Inc. Location privacy management on map-based social media platforms
US11392264B1 (en) 2017-04-27 2022-07-19 Snap Inc. Map-based graphical user interface for multi-type social media galleries
US11232040B1 (en) 2017-04-28 2022-01-25 Snap Inc. Precaching unlockable data elements
US11675831B2 (en) 2017-05-31 2023-06-13 Snap Inc. Geolocation based playlists
US11475254B1 (en) 2017-09-08 2022-10-18 Snap Inc. Multimodal entity identification
US11335067B2 (en) 2017-09-15 2022-05-17 Snap Inc. Augmented reality system
US11721080B2 (en) 2017-09-15 2023-08-08 Snap Inc. Augmented reality system
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
US11006242B1 (en) 2017-10-09 2021-05-11 Snap Inc. Context sensitive presentation of content
US11617056B2 (en) 2017-10-09 2023-03-28 Snap Inc. Context sensitive presentation of content
US10499191B1 (en) 2017-10-09 2019-12-03 Snap Inc. Context sensitive presentation of content
US11030787B2 (en) 2017-10-30 2021-06-08 Snap Inc. Mobile-based cartographic control of display content
US11670025B2 (en) 2017-10-30 2023-06-06 Snap Inc. Mobile-based cartographic control of display content
US11558327B2 (en) 2017-12-01 2023-01-17 Snap Inc. Dynamic media overlay with smart widget
US11265273B1 (en) 2017-12-01 2022-03-01 Snap, Inc. Dynamic media overlay with smart widget
US11943185B2 (en) 2017-12-01 2024-03-26 Snap Inc. Dynamic media overlay with smart widget
US11017173B1 (en) 2017-12-22 2021-05-25 Snap Inc. Named entity recognition visual context and caption data
US11687720B2 (en) 2017-12-22 2023-06-27 Snap Inc. Named entity recognition visual context and caption data
US11487794B2 (en) 2018-01-03 2022-11-01 Snap Inc. Tag distribution visualization system
US10678818B2 (en) 2018-01-03 2020-06-09 Snap Inc. Tag distribution visualization system
US11841896B2 (en) 2018-02-13 2023-12-12 Snap Inc. Icon based tagging
US11507614B1 (en) 2018-02-13 2022-11-22 Snap Inc. Icon based tagging
US10885136B1 (en) 2018-02-28 2021-01-05 Snap Inc. Audience filtering system
US10979752B1 (en) 2018-02-28 2021-04-13 Snap Inc. Generating media content items based on location information
US11523159B2 (en) 2018-02-28 2022-12-06 Snap Inc. Generating media content items based on location information
US10327096B1 (en) 2018-03-06 2019-06-18 Snap Inc. Geo-fence selection system
US11044574B2 (en) 2018-03-06 2021-06-22 Snap Inc. Geo-fence selection system
US10524088B2 (en) 2018-03-06 2019-12-31 Snap Inc. Geo-fence selection system
US11722837B2 (en) 2018-03-06 2023-08-08 Snap Inc. Geo-fence selection system
US11570572B2 (en) 2018-03-06 2023-01-31 Snap Inc. Geo-fence selection system
US10933311B2 (en) 2018-03-14 2021-03-02 Snap Inc. Generating collectible items based on location information
US11491393B2 (en) 2018-03-14 2022-11-08 Snap Inc. Generating collectible items based on location information
US11163941B1 (en) 2018-03-30 2021-11-02 Snap Inc. Annotating a collection of media content items
US10448199B1 (en) 2018-04-18 2019-10-15 Snap Inc. Visitation tracking system
US10924886B2 (en) 2018-04-18 2021-02-16 Snap Inc. Visitation tracking system
US10219111B1 (en) 2018-04-18 2019-02-26 Snap Inc. Visitation tracking system
US11297463B2 (en) 2018-04-18 2022-04-05 Snap Inc. Visitation tracking system
US10779114B2 (en) 2018-04-18 2020-09-15 Snap Inc. Visitation tracking system
US11683657B2 (en) 2018-04-18 2023-06-20 Snap Inc. Visitation tracking system
US10681491B1 (en) 2018-04-18 2020-06-09 Snap Inc. Visitation tracking system
US11860888B2 (en) 2018-05-22 2024-01-02 Snap Inc. Event detection system
US10943381B2 (en) 2018-07-24 2021-03-09 Snap Inc. Conditional modification of augmented reality object
US11367234B2 (en) 2018-07-24 2022-06-21 Snap Inc. Conditional modification of augmented reality object
US10679393B2 (en) 2018-07-24 2020-06-09 Snap Inc. Conditional modification of augmented reality object
US10789749B2 (en) 2018-07-24 2020-09-29 Snap Inc. Conditional modification of augmented reality object
US11670026B2 (en) 2018-07-24 2023-06-06 Snap Inc. Conditional modification of augmented reality object
US11676319B2 (en) 2018-08-31 2023-06-13 Snap Inc. Augmented reality anthropomorphtzation system
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US11450050B2 (en) 2018-08-31 2022-09-20 Snap Inc. Augmented reality anthropomorphization system
US11455082B2 (en) 2018-09-28 2022-09-27 Snap Inc. Collaborative achievement interface
US11704005B2 (en) 2018-09-28 2023-07-18 Snap Inc. Collaborative achievement interface
US11799811B2 (en) 2018-10-31 2023-10-24 Snap Inc. Messaging and gaming applications communication platform
US11558709B2 (en) 2018-11-30 2023-01-17 Snap Inc. Position service to determine relative position to map features
US11812335B2 (en) 2018-11-30 2023-11-07 Snap Inc. Position service to determine relative position to map features
US11199957B1 (en) 2018-11-30 2021-12-14 Snap Inc. Generating customized avatars based on location information
US11698722B2 (en) 2018-11-30 2023-07-11 Snap Inc. Generating customized avatars based on location information
US11877211B2 (en) 2019-01-14 2024-01-16 Snap Inc. Destination sharing in location sharing system
US11751015B2 (en) 2019-01-16 2023-09-05 Snap Inc. Location-based context information sharing in a messaging system
US11294936B1 (en) 2019-01-30 2022-04-05 Snap Inc. Adaptive spatial density based clustering
US11693887B2 (en) 2019-01-30 2023-07-04 Snap Inc. Adaptive spatial density based clustering
US11809624B2 (en) 2019-02-13 2023-11-07 Snap Inc. Sleep detection in a location sharing system
US11500525B2 (en) 2019-02-25 2022-11-15 Snap Inc. Custom media overlay system
US11574431B2 (en) 2019-02-26 2023-02-07 Snap Inc. Avatar based on weather
US11301117B2 (en) 2019-03-08 2022-04-12 Snap Inc. Contextual information in chat
US11868414B1 (en) 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
US11852554B1 (en) 2019-03-21 2023-12-26 Snap Inc. Barometer calibration in a location sharing system
US11249614B2 (en) 2019-03-28 2022-02-15 Snap Inc. Generating personalized map interface with enhanced icons
US11740760B2 (en) 2019-03-28 2023-08-29 Snap Inc. Generating personalized map interface with enhanced icons
US11361493B2 (en) 2019-04-01 2022-06-14 Snap Inc. Semantic texture mapping system
US11606755B2 (en) 2019-05-30 2023-03-14 Snap Inc. Wearable device location systems architecture
US11206615B2 (en) 2019-05-30 2021-12-21 Snap Inc. Wearable device location systems
US11785549B2 (en) 2019-05-30 2023-10-10 Snap Inc. Wearable device location systems
US11601783B2 (en) 2019-06-07 2023-03-07 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11917495B2 (en) 2019-06-07 2024-02-27 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11714535B2 (en) 2019-07-11 2023-08-01 Snap Inc. Edge gesture interface with smart interactions
US11821742B2 (en) 2019-09-26 2023-11-21 Snap Inc. Travel based notifications
US11218838B2 (en) 2019-10-31 2022-01-04 Snap Inc. Focused map-based context information surfacing
US11729343B2 (en) 2019-12-30 2023-08-15 Snap Inc. Including video feed in message thread
US11429618B2 (en) 2019-12-30 2022-08-30 Snap Inc. Surfacing augmented reality objects
US11128715B1 (en) 2019-12-30 2021-09-21 Snap Inc. Physical friend proximity in chat
US11343323B2 (en) 2019-12-31 2022-05-24 Snap Inc. Augmented reality objects registry
US11943303B2 (en) 2019-12-31 2024-03-26 Snap Inc. Augmented reality objects registry
US11893208B2 (en) 2019-12-31 2024-02-06 Snap Inc. Combined map icon with action indicator
US11888803B2 (en) 2020-02-12 2024-01-30 Snap Inc. Multiple gateway message exchange
US11228551B1 (en) 2020-02-12 2022-01-18 Snap Inc. Multiple gateway message exchange
US11765117B2 (en) 2020-03-05 2023-09-19 Snap Inc. Storing data based on device location
US11516167B2 (en) 2020-03-05 2022-11-29 Snap Inc. Storing data based on device location
US11619501B2 (en) 2020-03-11 2023-04-04 Snap Inc. Avatar based on trip
US11915400B2 (en) 2020-03-27 2024-02-27 Snap Inc. Location mapping for large scale augmented-reality
US11776256B2 (en) 2020-03-27 2023-10-03 Snap Inc. Shared augmented reality system
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11676378B2 (en) 2020-06-29 2023-06-13 Snap Inc. Providing travel-based augmented reality content with a captured image
US11943192B2 (en) 2020-08-31 2024-03-26 Snap Inc. Co-location connection service
US11961116B2 (en) 2020-10-26 2024-04-16 Foursquare Labs, Inc. Determining exposures to content presented by physical objects
US11606756B2 (en) 2021-03-29 2023-03-14 Snap Inc. Scheduling requests for location data
US11902902B2 (en) 2021-03-29 2024-02-13 Snap Inc. Scheduling requests for location data
US11601888B2 (en) 2021-03-29 2023-03-07 Snap Inc. Determining location using multi-source geolocation data
US11645324B2 (en) 2021-03-31 2023-05-09 Snap Inc. Location-based timeline media content system
US11829834B2 (en) 2021-10-29 2023-11-28 Snap Inc. Extended QR code
US11956533B2 (en) 2021-11-29 2024-04-09 Snap Inc. Accessing media at a geographic location
US11962645B2 (en) 2022-06-02 2024-04-16 Snap Inc. Guided personal identity based actions
US11954314B2 (en) 2022-09-09 2024-04-09 Snap Inc. Custom media overlay system
US11963105B2 (en) 2023-02-10 2024-04-16 Snap Inc. Wearable device location systems architecture
US11961196B2 (en) 2023-03-17 2024-04-16 Snap Inc. Virtual vision system

Also Published As

Publication number Publication date
US20140335911A1 (en) 2014-11-13
US20140329559A1 (en) 2014-11-06
US8948042B2 (en) 2015-02-03
US20140328201A1 (en) 2014-11-06
WO2015038462A1 (en) 2015-03-19
US20140328202A1 (en) 2014-11-06
US8825881B2 (en) 2014-09-02

Similar Documents

Publication Publication Date Title
US8825881B2 (en) Predictive caching of IP data
US20140342772A1 (en) Predictive Caching of IP Data
US11184857B2 (en) Optimizing mobile network traffic coordination across multiple applications running on a mobile device
US9325796B2 (en) System and method of device capability signaling
US20210329090A1 (en) Scheduling of Application Preloading in User Devices
CN107251525B (en) Distributed server architecture for supporting predictive content pre-fetching services for mobile device users
US9553816B2 (en) Optimizing mobile network traffic coordination across multiple applications running on a mobile device
US9094481B2 (en) Adaptive downloading or streaming to conserve mobile device or network resources
KR101509871B1 (en) Method and apparatus for loading a photo
CN103209407B (en) The downloading management method of application program, system and mobile terminal in mobile terminal
US20140342730A1 (en) Predictive Caching of IP Data
US20160306895A1 (en) Web application acceleration with personalized cache or prerendering
US11489941B2 (en) Pre-loading of user applications including skipping of selected launch actions
US8355384B2 (en) System and method of handover in wireless network
US20150220556A1 (en) Methods, apparatuses and computer program products for providing a protocol to resolve synchronization conflicts when synchronizing between multiple devices
KR101580023B1 (en) Method and system for intermediating content provider website and mobile device
WO2012151980A1 (en) Service processing server, system, and method
Zhang et al. Optimizing power consumption of mobile devices for video streaming over 4G LTE networks
TW201336336A (en) Method and system for connecting mobile device to server
WO2015038464A1 (en) Caching of ip data on mobile device
US20160063412A1 (en) Method for distributed goal-driven programming

Legal Events

Date Code Title Description
AS Assignment

Owner name: BANDWIDTH.COM, INC., NORTH CAROLINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MULCAHY, JAMES;RATHNAM, SAI;SIGNING DATES FROM 20130910 TO 20130912;REEL/FRAME:031191/0019

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: REPUBLIC WIRELESS, INC., UNITED STATES

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BANDWIDTH.COM, INC.;REEL/FRAME:040821/0231

Effective date: 20161128

AS Assignment

Owner name: REPUBLIC WIRELESS, INC., NORTH CAROLINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BANDWIDTH.COM, INC.;REEL/FRAME:041030/0123

Effective date: 20161128

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551)

Year of fee payment: 4

AS Assignment

Owner name: REPUBLIC WIRELESS, INC., NORTH CAROLINA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NO. 9,014,138 SHOULD BE PATENT NO. 9,014,038 PREVIOUSLY RECORDED ON REEL 041030 FRAME 0123. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:BANDWIDTH.COM, INC.;REEL/FRAME:053583/0771

Effective date: 20161128

AS Assignment

Owner name: RELAY, INC., NORTH CAROLINA

Free format text: CHANGE OF NAME;ASSIGNOR:REPUBLIC WIRELESS, INC.;REEL/FRAME:056753/0703

Effective date: 20210511

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 8