US20150172409A1 - Method and apparatus for caching in a networked environment - Google Patents

Method and apparatus for caching in a networked environment Download PDF

Info

Publication number
US20150172409A1
US20150172409A1 US14/634,323 US201514634323A US2015172409A1 US 20150172409 A1 US20150172409 A1 US 20150172409A1 US 201514634323 A US201514634323 A US 201514634323A US 2015172409 A1 US2015172409 A1 US 2015172409A1
Authority
US
United States
Prior art keywords
cache
content
network
method
internet
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.)
Abandoned
Application number
US14/634,323
Inventor
Jonathan J. Black
Pramod B. Kaluskar
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.)
Ikanos Communications Inc
Original Assignee
Ikanos Communications 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 US201161478592P priority Critical
Priority to US13/456,113 priority patent/US8972517B2/en
Application filed by Ikanos Communications Inc filed Critical Ikanos Communications Inc
Priority to US14/634,323 priority patent/US20150172409A1/en
Assigned to ALCATEL-LUCENT USA, INC. reassignment ALCATEL-LUCENT USA, INC. NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Assignors: IKANOS COMMUNICATIONS, INC.
Assigned to SILICON VALLEY BANK reassignment SILICON VALLEY BANK SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: IKANOS COMMUNICATIONS, INC.
Publication of US20150172409A1 publication Critical patent/US20150172409A1/en
Assigned to IKANOS COMMUNICATIONS, INC. reassignment IKANOS COMMUNICATIONS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: ALCATEL-LUCENT USA, INC.
Assigned to IKANOS COMMUNICATIONS, INC. reassignment IKANOS COMMUNICATIONS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: SILICON VALLEY BANK
Assigned to IKANOS COMMUNICATIONS, INC. reassignment IKANOS COMMUNICATIONS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BLACK, JONATHAN J., KALUSKAR, PRAMOD B.
Application status is Abandoned legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2842Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/06Network-specific arrangements or communication protocols supporting networked applications adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/22Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2866Architectural aspects
    • H04L67/289Architectural aspects where the intermediate processing is functionally located closer to the data consumer application, e.g. in same machine, in same home or in same subnetwork

Abstract

In general, methods and apparatus according to the invention mitigate these and other issues by implementing caching techniques described herein. So when one device in a home network downloads and plays a particular content (e.g., a video, song) from a given site, the content is cached within the network such that the same content is available to be re-played on another device without re-downloading the same content from the Internet.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a Divisional of U.S. patent application Ser. No. 13/456,113, filed Apr. 25, 2012, Now U.S. Pat. No. 8,972,517, which claims priority to U.S. Provisional Application No. 61/478,592 filed Apr. 25, 2011, the contents of which are incorporated herein by reference in its entirety.
  • FIELD OF THE INVENTION
  • The present invention relates generally to local area networks, and more particularly to caching techniques in a networked environment such as a local or home network.
  • BACKGROUND OF THE INVENTION
  • Over the years, home networks have grown in size and complexity. Today, there are typically multiple devices within the same home that are capable of playing/displaying the same type of content (e.g., one can watch an online video either on the computer, on an iPhone or on the TV, one can listen to music either on the computer, an iPhone or on a dedicated internet-radio box). Each of these devices is capable of downloading content from the Internet and playing it, often through a home Wi-Fi network. The content may also be played from in-home devices (e.g., a DLNA media-player or an MP3 repository).
  • Generally, when a device such as a personal computer, tablet, smart phone (e.g. iPhone), etc. plays or displays content, the content is downloaded from the Internet onto that specific device in cases where the content is not stored locally on a storage medium. For example, an individual wanting to watch a particular video clip on the YouTube® website four times will typically have to download/stream the video from the YouTube® website four times if the individual wishes to watch the video clip on four different devices.
  • From an end-customer point of view, as service providers incorporate limits or caps on bandwidth utilization associated with network services, customers are becoming increasingly cautious regarding the amount of bandwidth consumed. Therefore, the need to re-download content from the Internet is becoming an increasing problem. Furthermore, from the perspective of service providers, the reduction in redundant network traffic (which currently occurs when the same content is downloaded by different in-home devices) is also desirable.
  • From a service provider view, there is an attempt move away from an all-you-can-eat service model toward a cost-per-downloaded-byte model. Additionally, there is an attempt to discourage redundant network traffic. From a service provider perspective, both can be accomplished by incorporating a monthly ceiling on data downloads, whereby the consumer experiences reduced download speeds or is unable to download any additional content altogether when a ceiling is reached. In such cases, downloading the same content/file multiple times means that the user's monthly quota is depleted unnecessarily Furthermore, the fact that the same content/file is being re-downloaded means that network bandwidth is being consumed in order to carry the same content multiple times, thereby unnecessarily increasing network loading and congestion, which service providers seek to avoid.
  • Accordingly, there is a need for techniques to reduce network bandwidth associated with redundant network access of data.
  • SUMMARY OF THE INVENTION
  • In general, methods and apparatus according to the invention mitigate these and other issues by implementing caching techniques described herein. So when one device in a home network downloads and plays a particular content (e.g., a video, song) from a given site, the content is cached within the in-home network such that the same content is available to be re-played on another device without re-downloading the same content from the Internet.
  • In various embodiments, either a centralized or distributed caching scheme is implemented. The device may comprise a memory (either on-chip, on-board, or on-disk) such that the device can determine whether to download the content from the Internet or read the desired content from the cache within the required time limit. One or more devices stores a table of contents associated with the content in the cache. Example methods according to the invention comprise receiving a request to download multimedia content from the Internet. This request may be made by any of the in-home devices using any of the existing (or a completely new) mechanism. Prior to downloading the requested content from the Internet, a determination is made as to whether the requested content is available in a cache within the in-home network. In response to the request, the requested content is provided from either a cache in the in-home network or from the Internet. The caching algorithm used to determine whether the requested content is available within the in-home network may be based on either a centralized or distributed caching scheme.
  • In accordance with these and other aspects, a method implemented in an in-home network according to embodiments of the invention includes receiving a request to download content from the Internet, prior to downloading the requested content from the Internet, determining whether the requested content is available in a cache within the in-home network, and in response to the request, providing the requested content from one of the cache in the in-home network or from the Internet.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • These and other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures, wherein:
  • FIG. 1 is a block diagram of an example home network implementing centralized caching techniques according to embodiments of the invention;
  • FIG. 2 is a flowchart illustrating an example centralized caching methodology according to embodiments of the invention;
  • FIG. 3 is a block diagram of an example home network implementing distributed caching techniques according to embodiments of the invention;
  • FIGS. 4A and 4B are flowchart illustrating two example distributed caching methodologies according to embodiments of the invention; and
  • FIG. 5 is a block diagram illustrating an example local cloud that can implement caching techniques according to the invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The present invention will now be described in detail with reference to the drawings, which are provided as illustrative examples of the invention so as to enable those skilled in the art to practice the invention. Notably, the figures and examples below are not meant to limit the scope of the present invention to a single embodiment, but other embodiments are possible by way of interchange of some or all of the described or illustrated elements. Moreover, where certain elements of the present invention can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present invention will be described, and detailed descriptions of other portions of such known components will be omitted so as not to obscure the invention. Embodiments described as being implemented in software should not be limited thereto, but can include embodiments implemented in hardware, or combinations of software and hardware, and vice-versa, as will be apparent to those skilled in the art, unless otherwise specified herein. In the present specification, an embodiment showing a singular component should not be considered limiting; rather, the invention is intended to encompass other embodiments including a plurality of the same component, and vice-versa, unless explicitly stated otherwise herein. Moreover, applicants do not intend for any term in the specification or claims to be ascribed an uncommon or special meaning unless explicitly set forth as such. Further, the present invention encompasses present and future known equivalents to the known components referred to herein by way of illustration.
  • In the context of this disclosure, an “in-home network” generally refers to any type of distributed communications, computing, and storage components that make up a networked environment associated with a home or small office. Various embodiments are described for caching content within the in-home network, where the cached content comprises files, multimedia content, and other types of data. Although the invention will be described with particular reference to an in-home network implementation, the principles of the invention are not limited to a single home or office environment, but can be extended to other types of environments as will be appreciated by the descriptions below.
  • Embodiments of a caching method and apparatus according to the invention include at least two general implementations: centralized and distributed. In a centralized implementation, a cache is implemented on a home gateway (HGW) or similar device. A lookup table or index may also be incorporated in the on-chip/on-board memory that indicates to the HGW whether the required content is available in the cache. In a distributed implementation, the caching scheme of the invention is implemented across various in-home devices (laptops, routers, repeaters, iPads, etc.). Some or all of the devices executes an instance of a cache-coherency application, which could be implemented using a client server scheme in relation to the cache application in the HGW, or implemented using a completely distributed model.
  • FIG. 1 is an embodiment of a networked environment 100 in which example centralized caching techniques according to the invention may be implemented. As shown, one or more devices 104 are connected in an in-home network 102, which provides access to the Internet 106 via the home gateway 108. Through the Internet, the users can download content from video sharing portals 110 such as YouTube® or other websites, as well as various other types of content, including text and multimedia content from various sites on the Internet.
  • Devices 104 can include personal computer devices such as laptops, desktops and tablet computers (e.g. iPad, Kindle, etc.) (as shown in FIG. 1), network ready phone devices such as smartphones (e.g. iPhones and Android phones), and can further include various other types of media devices such as network-capable TVs, Internet radio systems, gaming devices (e.g. Wii, Xbox, etc.), DVRs, etc. Devices 104 can further include other home network devices such as routers, repeaters, NAS drives, etc. The devices 104 may be connected to the home network 102 via a wired connection 130 (e.g. Ethernet, powerline, etc.) or wireless connection 132 (e.g. WiFi, Bluetooth, etc.).
  • Home gateway 108 can be incorporated or provided in a wired or wireless router such as those available from commercial vendors such as NetGear, Linksys, D-Link, Cisco, etc. Such router devices typically include conventional routing functionality that can be adapted to operate with the caching techniques of the present invention, as will be appreciated by those skilled in the art after being taught by the present examples.
  • It should be noted that home networks in which the present invention can be implemented further typically include an Internet access device (not shown) such as a DSL modem that can be further coupled to a carrier or provider network such as a cable or telephone network. In some embodiments where such devices include router functionality, gateway 108 can be incorporated in such devices. In other embodiments, gateway 108 and the Internet access device are implemented in separate devices. An example would be a service such as AirportExpress from Apple, which assumes a suitable modem (FiOS/DSL/other) which puts out an Ethernet interface.
  • As shown, according to caching embodiments of the invention, a home gateway 108 differs from a conventional home gateway in that it further comprises a content search module 112, a cache application 114, and a memory storage device 116 for caching content. In embodiments, storage device 116 is implemented in on-board memory such as flash/double data rate (DDR) memory. In additional or alternative embodiments, storage device 116 is implemented in an off-board high-speed device such as USB2.0/USB3.0/eSATA/or other type of disk storage connected to the gateway 108 device. Module 112 and cache application 114 can be implemented, for example, using conventional or proprietary router device software and/or firmware that has been supplemented with functionality as described herein.
  • In general, content search module 112 searches the contents of the cache in storage device 116 to determine if content that is being requested by devices 104 can be supplied from storage device 116 rather from the Internet. Further example implementation details of module 112 can be gleaned from the foregoing functional descriptions.
  • In general, cache application 114 controls at least the following aspects: 1) the amount of memory to be allocated to the cache; and 2) the content of the cache itself (whether based on a least recently used (LRU) cache algorithm, a most recently used (MRU) cache algorithm, or other cache algorithms). The cache application 114 is further configured to maintain an index of the content that is available in the device 116. Further example implementation details of application 114 can be gleaned from the foregoing functional descriptions.
  • An example index that can be maintained in cache application 114 is illustrated below.
  • Description Pointer in Cache Metadata 1 Metadata 2 www.youtube.com/user/lady 0x000010000000h Format = MPEG, type = “lady gaga,” 400 × 300 gagaofficial music video, title = resolution “Paparazzi” . . . . . . . . . www.espn.com 0x00002000000h Format = H.271, type = “sports center,” “Jan. news video, date = 21, 2012,” 500 × 400 Jan. 21, 2012 resolution . . . . . .
  • As shown above, in one example implementation, each entry a cache index includes four different elements: a Description, a pointer, and two sets of metadata. The Description element is intended to allow cache application to perform a match between cached content and information in a request for new content received from device 104. In this example, Description typically includes a portion of a URL (e.g. www.youtube.com). One set of metadata may include one or more keywords that might appear in a request for content (e.g. “Lady Gaga”). Another set of metadata may include additional items or tags that can be included in a request (e.g. resolution of 400×300). The pointer element includes an address in storage device 116. In this example, the pointer is an actual memory address. However, many variations are possible, such as a file ID and path in a directory structure. The metadata includes additional information about the cached content that may be useful in providing a textual or other description of the cached content.
  • FIG. 2 is a flowchart illustrating an example centralized caching methodology according to embodiments of the invention.
  • In step S202, a device 104 requests content. For example, where device 104 is a computer running a browser such as Internet Explorer, a request for content can be initiated by a user clicking a link on a web page such as a list of content on a page served by www.youtube.com. In response to the click, the browser application forms an IP request using the HTTP protocol and information from the link embedded in content such as HTML, and sends it to gateway 108. As another example, it may be “snooped” by an entity responsible for performing a lookup/learning of new entries in the cache. This functionality may be performed in the gateway/router. In step S204, the request is processed by the gateway using conventional routing techniques. For example, gateway 108 can look up an IP address associated with the request in a routing table and determine whether the request is associated with content on a remote network location. For all requests for content (determined in step S204) that need to be obtained from a remote source (e.g. a video from a public website such as YouTube), in step S206 search module 112 searches the cache device 116 to determine whether the requested content is stored in device 116.
  • If the requested content is not cached, the content is obtained in the conventional fashion by forwarding the request to the Internet in step S208. In step S210, when the content to be downloaded to the device 104 from the Internet is being streamed to the device 104 via gateway 108, the content is also copied to the cache in device 116 by application 114. When such complete, application 114 updates the cache index to reflect the newly stored content in step S212.
  • If it was instead determined in step S204 that the requested content is locally available, it is streamed to device 104 from cache device 116 by gateway 108 in step S214.
  • FIG. 3 is an embodiment of a networked environment 300 in which example distributed caching techniques according to the invention may be implemented.
  • In contrast to the centralized implementation shown in FIG. 1, in the distributed implementation, one or more devices 104 is configured to execute a cache application 320 and maintain a local cache 322.
  • In embodiments where device 104 is a laptop or desktop computer running the Windows operating system, cache application 320 can be implemented by a device driver application or a browser plug-in application. For example, where device 104 includes a WiFi transceiver and when device 104 first attempts to establish a wireless connection with gateway 308, gateway 308 can automatically cause device 104 to download and install device driver software that includes cache application 320. As another example, the cache application may be pre-loaded on the device during manufacturing (part of the initial software that comes with the device). As yet another example, the cache application may be explicitly downloaded for that platform from the Internet—either manually (similar to manually downloading a driver for a new printer) or in response to auto-detecting support for “Caching Techniques” within the network (similar to a driver getting downloaded when a new printer is connected to a laptop). Those skilled in the art will recognize various alternative ways of implementing application 320, possibly depending on the type of device 104, after being taught by the present examples.
  • In general, cache application 320 includes functionality to manage the contents of cache 322, communicate with other cache instances via proprietary or other protocols, and maintain a cache index, either locally and/or shared with other cache instances. Implementation and other details of cache application 320 will become even more apparent to those skilled in the art after being taught by the following example methodologies according to the invention.
  • Cache 322 is implemented by memory that is or can be managed by device 104. For example, where device 104 is a personal computer (e.g. laptop or desktop) running Windows operating system and Internet Explorer software, cache 322 can be implemented by files in a browser temp directory on a local drive. In an example of an MP3 player, it might be stored in on-chip memory (either volatile, in which case the cache is built every time the device is switched on, or non-volatile, in which case the cache is built once and then re-used across device boots). Many alternatives are possible as will be appreciated by those skilled in the art.
  • As further shown in FIG. 3, gateway 308 includes search module 312, cache application 314 and cache 316. These elements can be implemented similarly as the like components in the centralized embodiment illustrated in FIG. 1, with additions and changes that will become apparent from the functional descriptions below. According aspects of the present embodiments to be described in more detail below, FIG. 3 further illustrates how cache 322 and cache 316 together implement a distributed cache 302, as reflected in the distributed cache index 304.
  • FIGS. 4A and 4B are flowcharts illustrating example distributed cache methodologies according to embodiments of the invention.
  • The example methodology illustrated in FIG. 4A reflects a client-server model implementation of a distributed cache according to embodiments of the invention.
  • In step S402, a device 104 requests content, which can include operations similar to those described above in FIG. 2 for step S202. In step S404, the request is processed by the gateway using conventional routing techniques, which can include operations similar to those described above for step S204. For all requests for content (determined in step S404) from a remote source (e.g. a video from a public website such as YouTube), in step S406 search module 312 searches the current cache index 304 to determine whether the requested content is stored in the distributed cache 302.
  • If the requested content is not cached, the content is obtained in the conventional fashion by forwarding the request to the Internet in step S408. In step S410, after the newly requested content has been downloaded to the device 104 from the Internet, application 314 updates the cache index 304 to reflect the newly stored content as well as its location in the particular device 104 of the distributed cache 302.
  • If it was instead determined in step S406 that the requested content is available in the distributed cache 302, in step S412 search module 312 further determines the location of the requested content in the distributed cache 302, and in step S414 application 314 causes the requested content to be streamed to device 104 from the distributed cache 302. For example, if the requested content is located in the gateway's cache device 316, application 314 will simply forward the content directly from the device 316. However, if the requested content is located in another device 104, application 314 will communicate with the cache application 320 in the device 104 and cause the device 104 to forward the content from device 104's cache 322. This can be done either by having the content directly transferred by communications between the respective cache applications 320 in devices 104, or via separate communications by cache application 314 with both applications 320.
  • The example methodology illustrated in FIG. 4B reflects a fully distributed model implementation of a distributed cache according to embodiments of the invention.
  • In step S452, a device 104 requests content, as in steps S202 and S402 described above. In step S454, the request is processed by the gateway using conventional routing techniques as described in steps S204 and S404 described above. For all requests for content (determined in step S404) from a remote source (e.g. a video from a public website such as YouTube), in step S456 search module 312 searches the current cache index 304 to determine whether the requested content is stored in the distributed cache 302.
  • If the content is not cached, the content is obtained in the conventional fashion by forwarding the request to the Internet in step S458. In step S460, after the newly requested content has been downloaded to the device 104 from the Internet, application 320 in the requesting device 104 causes the shared cache index 304 to be updated to reflect the newly stored content as well as its location in the particular device 104 of the distributed cache 302. For example, application 320 can be aware of all cache instances that are currently operating, and each instance can store a local copy of the distributed index. After the content is stored, application 320 in the particular device 104 can broadcast a message to all other instances, and in response the instances can update their local copies of the index to reflect the newly stored content.
  • If it was instead determined in step S456 that the requested content is available in the distributed cache 302, in step S462 search module 312 further determines the location of the requested content in the distributed cache 302, and in step S464 application 314 notifies application 320 that the requested content can be streamed to device 104 from the distributed cache 302, and provides application 320 with the content's location. Application 320 in the requesting device 104 then takes the necessary steps to get the content from the appropriate location in the cache 302. For example, if the requested content is located in the gateway's cache device 316, application 320 will communicate with application 314 to obtain the content from device 316. However, if the requested content is located in another device 104, application 314 will communicate with the cache application 320 in the other device 104 and cause the other device 104 to forward the content from the other device 104's cache 322.
  • In accordance with various embodiments, the shared-index may be updated whenever the device storing the cached content (e.g., a PC or laptop) is shut down as the content may no longer be accessible.
  • In some embodiments of a distributed cache according to the invention, it is also possible to migrate cache contents from one device to another device. For some embodiments, content that is often accessed from a “far” device may be moved to a “near” device (for example, to the cache in the gateway, or the cache in a nearby repeater, bridge, router, etc.). A “near” device could, for example, be selected based on the number of hops (e.g. determined by the TTL value in the TCP header info for a particular device), the bandwidth to/from that device (e.g. determined by the signal strength of a device's connection, or whether it is wired or wireless), the latency of the connection, etc.
  • In a client-server model, the migration functionality described herein can be incorporated in cache application 314, which can periodically determine the need or desirability for migrating cache contents and managing the necessary communications with devices to perform migration between them. In a fully distributed model, each cache instance can monitor migration conditions and coordinate migration actions between themselves. Those skilled in the art will appreciate various further implementation details after being taught by these examples.
  • In these and other migration embodiments, the contents of one device's cache can be migrated to a central or other cache when the device is powering down. For example, in a fully distributed model implementation, the application 320 can broadcast a message to other cache instances, and the other cache instances can determine whether they have enough storage available, and if so, they can initiate a session that migrates the contents between the devices.
  • As another example, in a client-server model, application 314 can selectively perform migration between devices 104 using results from various algorithms as described in more detail below. In particular, as shown in FIG. 3, example embodiments of the distributed implementation include a crawling algorithm 352 that is included in gateway 308. This can be configured to search for media within the home network 302. For example, the algorithm “crawls” through the in-home network 102 and updates the distributed index with the information that is available at other locations. For some embodiments, the crawling algorithm also copies/moves selected content between distributed-cache instances, where the content as well as the destination of the move, are selected by an algorithm in application 314.
  • For example, in these and other embodiments, application 314 may be configured to track per-user preferences. Then, when a specific user logs into a given system, application 314 may be configured to automatically copy content that the user “likes” to an appropriate cache so that the content is available “nearby,” thereby enhancing the quality of experience (QoE). This technique would be applicable to both the cache-lookup and the cache-populating mechanisms. It should be noted that in these and other embodiments, for certain users, visiting certain sites/downloading certain content—will not be cached. For example, when a particular user has enabled “incognito mode” on their browser (e.g. in Google Chrome), the ability to cache content can be turned off. Per-user preferences can also include types of content that are never cached. An example of content never cached would be a banking-transaction.
  • In accordance with these and other embodiments of application 314, users can be given the opportunity to define modifiers or personas for their profile via a user interface application included in device 104. For example, a user can specify whether he typically watches a movie alone (whether at the home office) or with family and/or friends. Moreover, application 314 can determine when desired content is typically requested, and can cache and/or migrate the desired content at times of the day/week when content is cheapest to download from the Internet. For example, an episode of “Survivor” is downloaded at 3:00 am for a user who typically views it every evening at 9:00 pm.
  • As further shown in FIG. 3, example embodiments of gateway 308 include a monitor module 354 that is configured to monitor the browsing habits of each user and provide granular data analysis. This feature allows the targeting of specific ads to users, among other things. For example, an episode of “Survivor” is downloaded at 3:00 am for a user who typically views it every evening at 9:00 pm.
  • It should be noted that the principles of the invention can be extended beyond a single home network. For example, FIG. 5 shows an example of a local cloud embodiment, where the local cloud comprises the networks in two or more households. The cloud can be formed by networks using a single IP connection and several different wired and/or wireless local networks that use a common gateway. As another example, the cloud can be implemented by gateways that each have their own IP connection and communicate with each other via wired or wireless connections. Those skilled in the art will appreciate various alternative embodiments after being taught by these examples.
  • In accordance with various cloud embodiments, a local cloud configuration is used for performing the caching techniques described. With a local cloud configuration, services and devices within a single home as well as within one or more “extended” homes (e.g., any participating neighbors, joint-family) may be coupled together. For example, the media library for a group of four homes would be “shared” and available to anyone from those four homes. Note, however, that each home would have its own internet connection and would access services/applications independently as well. For various embodiments, a caching algorithm is used to (a) identify strategic locations (where) within the home (or extended home) that may be used as “hubs” through which information typically passes, and (b) identify what information is stored at which location. The algorithm may also define what content and how much content to be cached at the central hub. These hubs may be embodied as various devices such as repeaters (wired/wireless) as well as other devices (PCs, tablets, gaming-consoles, etc.) within the home.
  • One non-limiting example of a gateway device 108 and 308 that can be adapted for use with the present invention is described in co-pending U.S. application Ser. No. 13/102,623, the contents of which are incorporated herein in their entirety. Those skilled in the art will be able to understand how to combine the present disclosure with that disclosure to implement example embodiments of the present invention.
  • Although the present invention has been particularly described with reference to the preferred embodiments thereof, it should be readily apparent to those of ordinary skill in the art that changes and modifications in the form and details may be made without departing from the spirit and scope of the invention. It is intended that the appended claims encompass such changes and modifications.

Claims (20)

What is claimed is:
1. A method implemented in a network, comprising:
receiving a request to download content from the Internet;
prior to downloading the requested content from the Internet, determining whether the requested content is available in a cache within the network, wherein determining whether the requested content is available in a cache within the network includes determining if the content is stored in a centralized cache in a single location within the network; and
in response to the request, providing the requested content from one of the cache in the network or from the Internet.
2. The method of claim 1, further comprising tracking per-user preferences to determine types of content to maintain in the cache.
3. The method of claim 1, further comprising monitoring the browsing habits of users and providing granular data analysis.
4. The method of claim 1, wherein the network consists of an in-home network.
5. A method implemented in a network, comprising:
receiving a request to download content from the Internet;
prior to downloading the requested content from the Internet, determining whether the requested content is available in a cache within the network, wherein determining whether the requested content is available in a cache within the network includes determining if the content is stored in a distributed cache in a plurality of different locations within the network, as well as within a local cloud comprising one or more additional networks; and
in response to the request, providing the requested content from one of the cache in the network or from the Internet,
6. The method of claim 5, further comprising crawling the network to search for media within the local cloud before downloading content from the Internet.
7. A method implemented within a network, comprising:
receiving a request to download content from the Internet;
determining whether the requested content is available in a cache within the network; and
if the requested content is not available within the cache, saving the content in the cache,
8. The method of claim 7, wherein the cache comprises a distributed cache implemented on a plurality of different devices in the network, the method further comprising:
executing a cache-coherency application on certain of the plurality of devices.
9. The method of claim 8, wherein executing the cache-coherency application includes maintaining a shared index of the distributed cache.
10. The method of claim 8, wherein executing the cache-coherency application includes having access to an index of the distributed cache.
11. The method of claim 8, further comprising migrating contents of the distributed cache from one of the devices to another of the devices.
12. The method of claim 11, further comprising identifying strategic locations within the network to migrate contents of the distributed cache.
13. The method of claim 11, further comprising identifying different types of information to be stored at respective different locations within the network.
14. The method of claim 11, wherein migrating includes broadcasting a message from the one of the devices to other of the devices and determining the another of the devices based on whether the another of the devices has enough storage available.
15. The method of claim 7, wherein the network consists of an in-home network.
16. A method implemented in a network, comprising:
receiving a request to download content from the Internet;
tracking per-user preferences to determine content to maintain in a cache for the network;
maintaining content in the cache based on the per-user preferences.
17. The method of claim 16, wherein per-user preferences include specifying whether or not content from certain sites should be cached.
18. The method of claim 16, wherein per-user preferences include specifying whether or not content requested by certain users should be cached.
19. The method of claim 16, wherein per-user preferences include specifying whether or not certain types of content should be cached.
20. The method of claim 16, wherein the network consists of an in-home network.
US14/634,323 2011-04-25 2015-02-27 Method and apparatus for caching in a networked environment Abandoned US20150172409A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US201161478592P true 2011-04-25 2011-04-25
US13/456,113 US8972517B2 (en) 2011-04-25 2012-04-25 Method and apparatus for maintaining and migrating a distributed cache in a networked environment
US14/634,323 US20150172409A1 (en) 2011-04-25 2015-02-27 Method and apparatus for caching in a networked environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/634,323 US20150172409A1 (en) 2011-04-25 2015-02-27 Method and apparatus for caching in a networked environment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/456,113 Division US8972517B2 (en) 2011-04-25 2012-04-25 Method and apparatus for maintaining and migrating a distributed cache in a networked environment

Publications (1)

Publication Number Publication Date
US20150172409A1 true US20150172409A1 (en) 2015-06-18

Family

ID=47022123

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/456,113 Expired - Fee Related US8972517B2 (en) 2011-04-25 2012-04-25 Method and apparatus for maintaining and migrating a distributed cache in a networked environment
US14/634,323 Abandoned US20150172409A1 (en) 2011-04-25 2015-02-27 Method and apparatus for caching in a networked environment

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/456,113 Expired - Fee Related US8972517B2 (en) 2011-04-25 2012-04-25 Method and apparatus for maintaining and migrating a distributed cache in a networked environment

Country Status (6)

Country Link
US (2) US8972517B2 (en)
EP (1) EP2702550A4 (en)
JP (1) JP6234919B2 (en)
KR (1) KR101922607B1 (en)
CN (1) CN103493086B (en)
WO (1) WO2012149043A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101922607B1 (en) * 2011-04-25 2018-11-27 이카노스 커뮤니케이션스, 인크. Method and apparatus for caching in a networked environment
US9843603B2 (en) * 2012-10-16 2017-12-12 Dell Products, L.P. Techniques for dynamic access control of input/output devices
CN103152653A (en) * 2013-02-05 2013-06-12 东莞宇龙通信科技有限公司 Method and system for playing stream media files
JP6112894B2 (en) * 2013-02-15 2017-04-12 三菱電機株式会社 Content distribution system and content acquisition and storage device
US9929876B2 (en) * 2013-03-15 2018-03-27 Kortek Industries Pty Ltd Adaptable multi-mode wireless power, light and automation
CA2914564A1 (en) * 2013-06-06 2014-12-11 Google Inc. Systems, methods, and media for presenting media content
EP3123440B1 (en) * 2014-03-23 2018-12-26 Opanga Networks, Inc. Controlling the pre-delivery of content to a mobile device
KR101630640B1 (en) * 2014-08-05 2016-06-15 엔트릭스 주식회사 System for servicing cloud streaming, method of servicing cloud streaming and server for the same
WO2016048344A1 (en) * 2014-09-26 2016-03-31 Hewlett Packard Enterprise Development Lp Caching nodes
US10171519B2 (en) * 2014-10-16 2019-01-01 Verizon Patent And Licensing Inc. Session transfer protocol between different browsers on different devices
JP6384271B2 (en) * 2014-10-29 2018-09-05 富士通株式会社 Device management relay device, method, and program
KR101888846B1 (en) * 2015-05-07 2018-08-16 에스케이테크엑스 주식회사 System for cloud streaming service, method of image cloud streaming service using reciprocal cache and apparatus for the same
CN104965855A (en) * 2015-05-29 2015-10-07 董遂武 Webpage cache management system providing webpage service
CN105516787B (en) * 2015-12-09 2019-07-12 深圳Tcl数字技术有限公司 The storage controlling method and device of application cache data
WO2017170161A1 (en) * 2016-03-31 2017-10-05 京セラ株式会社 Network device

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870552A (en) * 1995-03-28 1999-02-09 America Online, Inc. Method and apparatus for publishing hypermedia documents over wide area networks
US5878410A (en) * 1996-09-13 1999-03-02 Microsoft Corporation File system sort order indexes
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6263402B1 (en) * 1997-02-21 2001-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Data caching on the internet
US20020099833A1 (en) * 2001-01-24 2002-07-25 Steely Simon C. Cache coherency mechanism using arbitration masks
US6442601B1 (en) * 1999-03-25 2002-08-27 International Business Machines Corporation System, method and program for migrating files retrieved from over a network to secondary storage
US20020133570A1 (en) * 2001-03-16 2002-09-19 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
US20020147887A1 (en) * 2000-12-18 2002-10-10 Copeland George P. Distributed execution coordination for web caching with dynamic content
US20030191812A1 (en) * 2001-12-19 2003-10-09 International Business Machines Corporation Method and system for caching role-specific fragments
US6760756B1 (en) * 1999-06-23 2004-07-06 Mangosoft Corporation Distributed virtual web cache implemented entirely in software
US6917960B1 (en) * 2000-05-05 2005-07-12 Jibe Networks Intelligent content precaching
US7159103B2 (en) * 2003-03-24 2007-01-02 Infineon Technologies Ag Zero-overhead loop operation in microprocessor having instruction buffer
US20070113226A1 (en) * 2005-11-16 2007-05-17 Microsoft Corporation Automated state migration while deploying an operating system
US20090089534A1 (en) * 2007-10-01 2009-04-02 Ofir Zohar Thin Provisioning Migration and Scrubbing
US7814483B2 (en) * 2003-11-04 2010-10-12 Thomson Licensing Cache server at hotspots for downloading services
US20100312861A1 (en) * 2007-11-30 2010-12-09 Johan Kolhi Method, network, and node for distributing electronic content in a content distribution network
US20110040893A1 (en) * 2009-08-14 2011-02-17 Broadcom Corporation Distributed Internet caching via multiple node caching management
US20110107030A1 (en) * 2009-10-29 2011-05-05 Simon Borst Self-organizing methodology for cache cooperation in video distribution networks
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US20120254116A1 (en) * 2011-03-31 2012-10-04 Microsoft Corporation Distributed File System

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155712A (en) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> Decentralized cache distributing method and medium storing decentralized cache distributing program
JP3812727B2 (en) 2001-12-11 2006-08-23 日本電気株式会社 Information processing system
JP2004127189A (en) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd Gateway device, and system and method for transferring contents
KR100592654B1 (en) 2004-06-16 2006-06-26 주식회사 팬택 Webpage surpporting apparatus and surporing method for mobile handset
US7937753B2 (en) * 2005-03-25 2011-05-03 Microsoft Corporation Method and apparatus for distributed information management
US7697557B2 (en) * 2007-12-26 2010-04-13 Alcatel Lucent Predictive caching content distribution network
JP5176835B2 (en) * 2008-09-29 2013-04-03 ブラザー工業株式会社 Monitoring device, information processing device, information processing method, and program
JP5532649B2 (en) * 2009-03-27 2014-06-25 ブラザー工業株式会社 Node device, node processing program, and content storage method
EP2486491A4 (en) * 2009-10-06 2013-10-23 Unwired Planet Llc Managing network traffic by editing a manifest file and/or using intermediate flow control
WO2011140439A1 (en) 2010-05-06 2011-11-10 Ikanos Technology Ltd. Method and system to configure and manage broadband-enabled digital command and control systems
KR101922607B1 (en) * 2011-04-25 2018-11-27 이카노스 커뮤니케이션스, 인크. Method and apparatus for caching in a networked environment

Patent Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870552A (en) * 1995-03-28 1999-02-09 America Online, Inc. Method and apparatus for publishing hypermedia documents over wide area networks
US5878410A (en) * 1996-09-13 1999-03-02 Microsoft Corporation File system sort order indexes
US6263402B1 (en) * 1997-02-21 2001-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Data caching on the internet
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6442601B1 (en) * 1999-03-25 2002-08-27 International Business Machines Corporation System, method and program for migrating files retrieved from over a network to secondary storage
US6760756B1 (en) * 1999-06-23 2004-07-06 Mangosoft Corporation Distributed virtual web cache implemented entirely in software
US6917960B1 (en) * 2000-05-05 2005-07-12 Jibe Networks Intelligent content precaching
US20020147887A1 (en) * 2000-12-18 2002-10-10 Copeland George P. Distributed execution coordination for web caching with dynamic content
US20020099833A1 (en) * 2001-01-24 2002-07-25 Steely Simon C. Cache coherency mechanism using arbitration masks
US20020133570A1 (en) * 2001-03-16 2002-09-19 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
US7146429B2 (en) * 2001-03-16 2006-12-05 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
US20030191812A1 (en) * 2001-12-19 2003-10-09 International Business Machines Corporation Method and system for caching role-specific fragments
US7159103B2 (en) * 2003-03-24 2007-01-02 Infineon Technologies Ag Zero-overhead loop operation in microprocessor having instruction buffer
US7814483B2 (en) * 2003-11-04 2010-10-12 Thomson Licensing Cache server at hotspots for downloading services
US20070113226A1 (en) * 2005-11-16 2007-05-17 Microsoft Corporation Automated state migration while deploying an operating system
US20090089534A1 (en) * 2007-10-01 2009-04-02 Ofir Zohar Thin Provisioning Migration and Scrubbing
US20100312861A1 (en) * 2007-11-30 2010-12-09 Johan Kolhi Method, network, and node for distributing electronic content in a content distribution network
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US20110040893A1 (en) * 2009-08-14 2011-02-17 Broadcom Corporation Distributed Internet caching via multiple node caching management
US20110107030A1 (en) * 2009-10-29 2011-05-05 Simon Borst Self-organizing methodology for cache cooperation in video distribution networks
US20120254116A1 (en) * 2011-03-31 2012-10-04 Microsoft Corporation Distributed File System

Also Published As

Publication number Publication date
KR101922607B1 (en) 2018-11-27
CN103493086B (en) 2018-01-02
JP2014519636A (en) 2014-08-14
EP2702550A4 (en) 2014-10-01
WO2012149043A3 (en) 2013-01-03
CN103493086A (en) 2014-01-01
EP2702550A2 (en) 2014-03-05
KR20140025480A (en) 2014-03-04
US8972517B2 (en) 2015-03-03
WO2012149043A2 (en) 2012-11-01
US20120271904A1 (en) 2012-10-25
JP6234919B2 (en) 2017-11-22

Similar Documents

Publication Publication Date Title
JP4920863B2 (en) P2P network architecture for distributed storage
AU2010201379B2 (en) System and method for delivery of content objects
US7761900B2 (en) Distribution of content and advertisement
US8892482B2 (en) Managing multiple personal clouds and digital assets over multiple devices
JP4732667B2 (en) Selective routing
KR100765791B1 (en) A method and apparatus for managing content
CA2880711C (en) Predictive caching for content
US9338222B2 (en) Method and apparatus for aggregating user data and providing recommendations
KR100994948B1 (en) A method of distributing a digital content file and a digital content distribution system
US20120151466A1 (en) Remote content updates for portable media devices
US10235013B2 (en) Method and apparatus for providing recommendations to a user of a cloud computing service
US20060218226A1 (en) Automatic recording based on preferences
JP2011530137A (en) Device-dependent delivery in local area networks
CN100484069C (en) File data distributing method and relative device
US20080072264A1 (en) Distribution of content on a network
US8903950B2 (en) Personalized content delivery using peer-to-peer precaching
US20070226365A1 (en) Aspects of digital media content distribution
KR100915876B1 (en) Caching directory server data for controlling the disposition of multimedia data on a network
US20060168126A1 (en) Aggregated content listing for ad-hoc peer to peer networks
US8527549B2 (en) Cloud based operating and virtual file system
US20130304647A1 (en) Purchasing Transaction System &amp; Method For Multi-media objects
US20050273514A1 (en) System and method for automated and optimized file transfers among devices in a network
EP2909732B1 (en) Partitioning streaming media files on multiple content distribution networks
EP2624524B1 (en) Content distribution network supporting popularity-based caching
US8543660B2 (en) Systems and methods for bridging and managing media content associated with separate media content networks

Legal Events

Date Code Title Description
AS Assignment

Owner name: ALCATEL-LUCENT USA, INC., NEW JERSEY

Free format text: NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS;ASSIGNOR:IKANOS COMMUNICATIONS, INC.;REEL/FRAME:035581/0710

Effective date: 20150430

AS Assignment

Owner name: SILICON VALLEY BANK, CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNOR:IKANOS COMMUNICATIONS, INC.;REEL/FRAME:035874/0351

Effective date: 20150602

AS Assignment

Owner name: IKANOS COMMUNICATIONS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:ALCATEL-LUCENT USA, INC.;REEL/FRAME:036732/0876

Effective date: 20150929

Owner name: IKANOS COMMUNICATIONS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:036733/0031

Effective date: 20150930

AS Assignment

Owner name: IKANOS COMMUNICATIONS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BLACK, JONATHAN J.;KALUSKAR, PRAMOD B.;REEL/FRAME:036980/0643

Effective date: 20120711

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION