IP Library › Granted Patent US 11,095,743
Granted Patent B2
US 11,095,743 · App. 16/332,005 · Granted Aug 17, 2021

Optimized content-delivery network (CDN) for the wireless last mile

Inventors: Daniel Yellin (Raanana, IL); Roee Peled (Givatayim, IL); David Ben Eli (Modiin, IL); Shimon Moshavi (Beit Shemesh, IL); Ehud Weinstein (Tel Aviv, IL); Navot Goren (Kibbutz Ramot Menashe, IL); Eilon Regev (Givatayim, IL); Amit Wix (Petach-Tikva, IL)
Assignee: TENSERA NETWORKS LTD.
H04L67/2847G06F9/44505G06F9/547H04L67/10H04L67/2857
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,095,743
App. No.
16/332,005
Granted
Aug 17, 2021
Kind
B2
Abstract

A system ( 20 ) includes one or more interfaces and multiple processors. The one or more interfaces are configured to communicate over a communication network ( 40 ). At least a first processor from among the processors is included in a user device ( 24 ) and at least a second processor from among the processors is included in a server ( 52 ) external to the user device. The processors are configured to track content items that are provided by one or more content sources ( 36 ) and to deliver the content items to one or more applications ( 32 ) installed in the user device.

Claims (59)

1. A system, comprising:

one or more interfaces, configured to communicate over a communication network; and

multiple processors, wherein at least a first processor from among the processors is comprised in a user device and at least a second processor from among the processors is comprised in a server external to the user device, the processors configured to track content items that are provided by one or more content sources and to deliver at least some of the content items to one or more applications installed in the user device,

wherein the first processor is configured to:

receive, from an application, via an Application Programming Interface (API), executable code for performing one or both of (i) prefetching content for the application and (ii) refreshing the application while the application is running in a background mode; and

prefetch one or more content items or refresh the application by executing the executable code.

2. The system according to claim 1 , wherein the second processor is comprised in a cloud-based infrastructure system.

3. The system according to claim 1 , wherein the processors are configured to prefetch one or more of the content items over the communication network, from the content sources to a cache of the user device.

4. The system according to claim 1 , wherein the processors are configured to preload an application installed in the user device, before a user requests to activate the application.

5. The system according to claim 1 , wherein the first processor is configured to run an Operating System (OS) of the user device, including running within the OS a software component that prefetches the one or more of the content items from the content sources over the communication network to a cache of the user device.

6. The system according to claim 5 , wherein the first processor is configured to run the API within the OS.

7. The system according to claim 5 , wherein the first processor is configured to choose, using the software component running within the OS, depending on resource availability in the user device, which content items are to be prefetched.

8. The system according to claim 1 , wherein the second processor is configured to send over the communication network to the first processor a prefetch policy, which assists the user device in prefetching the one or more of the content items.

9. The system according to claim 1 , wherein, in tracking the content items, the processors are configured to estimate, for at least a given content item, a property of the given content item indicative of an impact of prefetching the given content item on user experience.

10. The system according to claim 1 , wherein the first processor is configured to run an Operating System (OS) of the user device, including running within the OS a software component that preloads an application installed in the user device before the application is activated by a user.

11. The system according to claim 1 , wherein the first processor is configured to run an Operating System (OS) of the user device, including running within the OS a software component that performs, in response to an update of one or more of the content items, refreshing of the application.

12. The system according to claim 1 , wherein the second processor is configured to track one or more of the content items by crawling one or more of the content sources.

13. The system according to claim 1 , wherein the second processor is configured to track one or more of the content items by receiving indications of updates to one or more of the content items from one or more other user devices.

14. The system according to claim 1 , wherein the second processor is configured to receive, directly from one or more of the content sources, information relating to tracking one or more of the content items.

15. The system according to claim 14 , wherein the second processor is configured to receive from one or more of the content sources indication that one or more of the content items have changed.

16. The system according to claim 1 , wherein the second processor is configured to receive, from an advertisement source, one or more advertisement items to be presented in association with one or more of the content items, or to receive information relating to the one or more advertisement items.

17. The system according to claim 1 , wherein the second processor is configured to send over the communication network to the first processor a policy, which assists the user device in deciding one or more of (i) which of the content items are to be delivered to the applications, and (ii) which of the applications are to be provided with the content items.

18. The system according to claim 1 , wherein the second processor is configured to apply a machine-learning process, for deriving a model that predicts one or more of (i) which of the content items are to be used by the applications, and (ii) which of the applications are to be invoked by a user of the user device.

19. The system according to claim 18 , wherein the machine-learning process is based at least partially on information reported to the second processor over the communication network by the first processor.

20. The system according to claim 18 , wherein the first processor is configured to receive the model from the second processor over the communication network, and to predict using the model one or more of (i) which of the content items are to be used by the applications, and (ii) which of the applications are to be invoked by a user of the user device.

21. The system according to claim 18 , wherein the first processor is configured to preload the applications that are predicted by the model.

22. The system according to claim 21 , wherein, in preloading the applications, the first processor is configured to prefetch one or more of the content items to be provided to the applications.

23. The system according to claim 21 , wherein, in preloading the applications, the first processor is configured to pre-render one or more of the content items provided to the applications.

24. The system according to claim 1 , wherein the processors are configured to receive differential prefetch updates from one or more of the content sources.

25. The system according to claim 1 , wherein the processors are configured to deliver differential prefetch updates.

26. A method, comprising:

using multiple processors, wherein at least a first processor from among the processors is comprised in a user device and at least a second processor from among the processors is comprised in a server external to the user device, tracking content items that are provided by one or more content sources; and

delivering, using the processors, at least some of the content items to one or more applications installed in the user device, including, using the first processor:

receiving, from an application, via an Application Programming Interface (API), executable code for performing one or both of (i) prefetching content for the application and (ii) refreshing the application while the application is running in a background mode; and

prefetching one or more content items or refreshing the application by executing the executable code.

27. The method according to claim 26 , wherein the second processor is comprised in a cloud-based infrastructure system.

28. The method according to claim 26 , wherein delivering the content items comprises prefetching one or more of the content items over the communication network, from the content sources to a cache of the user device.

29. The method according to claim 26 , wherein delivering the content items comprises preloading an application installed in the user device, before a user requests to activate the application.

30. The method according to claim 26 , wherein delivering the content items comprises running in the first processor an Operating System (OS) of the user device, including running within the OS a software component that prefetches one or more of the content items from the content sources over the communication network to a cache of the user device.

31. The method according to claim 30 , wherein delivering the content items comprises running the API in the first processor, within the OS.

32. The method according to claim 30 , wherein delivering the content items comprises choosing in the first processor, using the software component running within the OS, depending on resource availability in the user device, which content items are to be prefetched.

33. The method according to claim 26 , wherein delivering the content items comprises sending by the second processor, over the communication network to the first processor, a prefetch policy that assists the user device in prefetching the one or more of the content items.

34. The method according to claim 26 , wherein tracking the content items comprises estimating, for at least a given content item, a property of the given content item indicative of an impact of prefetching the given content item on user experience.

35. The method according to claim 26 , wherein delivering the content items comprises running in the first processor an Operating System (OS) of the user device, including running within the OS a software component that preloads an application installed in the user device before the application is activated by a user.

36. The method according to claim 26 , wherein delivering the content items comprises running in the first processor an Operating System (OS) of the user device, including running within the OS a software component that performs, in response to an update of one or more of the content items, refreshing of the application.

37. The method according to claim 26 , wherein tracking the content items comprises crawling one or more of the content sources.

38. The method according to claim 26 , wherein tracking the content items comprises receiving indications of updates to one or more of the content items from one or more other user devices.

39. The method according to claim 26 , wherein tracking the content items comprises receiving, directly from one or more of the content sources, information relating to tracking one or more of the content items.

40. The method according to claim 39 , wherein tracking the content items comprises receiving from one or more of the content sources indication that one or more of the content items have changed.

41. The method according to claim 26 , wherein delivering the content items comprises receiving in the second processor, from an advertisement source, one or more advertisement items to be presented in association with one or more of the content items, or receiving information relating to the one or more advertisement items.

42. The method according to claim 26 , wherein delivering the content items comprises sending from the second processor over the communication network to the first processor a policy, which assists the user device in deciding one or more of (i) which of the content items are to be delivered to the applications, and (ii) which of the applications are to be provided with the content items.

43. The method according to claim 26 , wherein delivering the content items comprises applying by the second processor a machine-learning process, for deriving a model that predicts one or more of (i) which of the content items are to be used by the applications, and (ii) which of the applications are to be invoked by a user of the user device.

44. The method according to claim 43 , wherein the machine-learning process is based at least partially on information reported to the second processor over the communication network by the first processor.

45. The method according to claim 43 , and comprising receiving the model by the first processor from the second processor over the communication network, and predicting using the model one or more of (i) which of the content items are to be used by the applications, and (ii) which of the applications are to be invoked by a user of the user device.

46. The method according to claim 43 , and comprising, using the first processor, preloading the applications that are predicted by the model.

47. The method according to claim 46 , wherein preloading the applications comprises prefetching one or more of the content items to be provided to the applications.

48. The method according to claim 46 , wherein preloading the applications comprises pre-rendering one or more of the content items provided to the applications.

49. The method according to claim 26 , wherein tracking the content items comprises receiving differential prefetch updates from one or more of the content sources.

50. The method according to claim 26 , wherein delivering the content items comprises delivering differential prefetch updates.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2019
From: YELLIN, DANIEL; PELED, ROEE; BEN ELI, DAVID; MOSHAVI, SHIMON; WEINSTEIN, EHUD; GOREN, NAVOT; REGEV, EILON; WIX, AMIT
To: TENSERA NETWORKS LTD.
Reel/Frame 048558/0832 →
Continuity (40)
Continuation In Part 14691597 · Apr 21, 2015
Provisional Application 62397927 · Sep 22, 2016
Provisional Application 62399572 · Sep 26, 2016
Provisional Application 62401251 · Sep 29, 2016
Provisional Application 62404820 · Oct 6, 2016
Provisional Application 62415598 · Nov 1, 2016
Provisional Application 62418803 · Nov 8, 2016
Provisional Application 62419483 · Nov 9, 2016
Provisional Application 62419484 · Nov 9, 2016
Provisional Application 62419485 · Nov 9, 2016
Provisional Application 62419486 · Nov 9, 2016
Provisional Application 62419487 · Nov 9, 2016
Provisional Application 62419488 · Nov 9, 2016
Provisional Application 62419490 · Nov 9, 2016
Provisional Application 62422096 · Nov 15, 2016
Provisional Application 62422163 · Nov 15, 2016
Provisional Application 62424630 · Nov 21, 2016
Provisional Application 62426256 · Nov 24, 2016
Provisional Application 62426260 · Nov 24, 2016
Provisional Application 62426262 · Nov 24, 2016
Provisional Application 62427158 · Nov 29, 2016
Provisional Application 62427928 · Nov 30, 2016
Provisional Application 62459675 · Feb 16, 2017
Provisional Application 62459686 · Feb 16, 2017
Provisional Application 62476973 · Mar 27, 2017
Provisional Application 62515551 · Jun 6, 2017
Provisional Application 62515552 · Jun 6, 2017
Provisional Application 62151554 · Jun 6, 2017
Provisional Application 62515555 · Jun 6, 2017
Provisional Application 62515556 · Jun 6, 2017
Provisional Application 62515557 · Jun 6, 2017
Provisional Application 62515558 · Jun 6, 2017
Provisional Application 62515560 · Jun 6, 2017
Provisional Application 62521552 · Jun 19, 2017
Provisional Application 62534791 · Jul 20, 2017
Provisional Application 62544961 · Aug 14, 2017
Provisional Application 62559587 · Sep 17, 2017
Provisional Application 62025021 · Jul 16, 2014
Provisional Application 62100933 · Jan 8, 2015
Related Publication 20190230186A1 · Jul 25, 2019