KR101922607B1 - 네트워크 환경에서의 캐싱을 위한 방법 및 장치 - Google Patents

네트워크 환경에서의 캐싱을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101922607B1
KR101922607B1 KR1020137030799A KR20137030799A KR101922607B1 KR 101922607 B1 KR101922607 B1 KR 101922607B1 KR 1020137030799 A KR1020137030799 A KR 1020137030799A KR 20137030799 A KR20137030799 A KR 20137030799A KR 101922607 B1 KR101922607 B1 KR 101922607B1
Authority
KR
South Korea
Prior art keywords
content
cache
network
devices
delete delete
Prior art date
Application number
KR1020137030799A
Other languages
English (en)
Other versions
KR20140025480A (ko
Inventor
조나단 제이. 블랙
프라모드 비. 칼루스카
Original Assignee
이카노스 커뮤니케이션스, 인크.
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
Application filed by 이카노스 커뮤니케이션스, 인크. filed Critical 이카노스 커뮤니케이션스, 인크.
Publication of KR20140025480A publication Critical patent/KR20140025480A/ko
Application granted granted Critical
Publication of KR101922607B1 publication Critical patent/KR101922607B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • 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/535Tracking the activity of the user
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

일반적으로, 본 발명에 따름 방법들 및 장치들은 여기에서 설명된 캐싱 기술들들 구현하여 이런 그리고 다른 이슈들을 완화시킨다. 그래서, 홈 네트워크 내 한 기기가 주어진 사이트로부터 특정 콘텐트 (예를 들면, 비디오, 노래)를 다운로드하여 재생할 때에, 그 콘텐트는 네트워크 내에서 캐시되며, 그래서 인터넷으로부터 그 동일한 콘텐트를 다시 다운로드하지 않고도 그 동일한 콘텐트를 다른 기기 상에서 다시 재생하기 위해서 입수할 수 있도록 한다.

Description

네트워크 환경에서의 캐싱을 위한 방법 및 장치{Method and apparatus for caching in a networked environment}
관련된 출원에 대한 상호 참조
본원은 2011년 4월 25일에 출원된 미국 임시출원 번호 61/478,592에 대한 우선원을 주장하며, 그 출원의 내용들은 그 전체가 본원에 참조로서 편입된다.
발명의 기술분야
본 발명은 일반적으로는 로컬 영역 네트워크들에 관한 것이며, 더 상세하게는, 로컬 네트워크 또는 홈 (home) 네트워크와 같이 네트워크가 구성된 환경에서의 캐싱 기술들에 관한 것이다.
여러 해에 걸쳐서, 홈 네트워크들은 크기와 복잡도에 있어서 성장했다. 오늘날, 동일한 유형의 콘텐트를 재생하고/디스플레이할 수 있는 여러 기기들이 같은 집 내에 존재하는 것이 보통이다 (예를 들면, 어떤 사람은 컴퓨터로, 아이폰으로 또는 TV로의 어느 하나로 온라인 비디오를 볼 수 있으며, 어떤 사람은 컴퓨터로, 아이폰으로 또는 전용의 인터넷-라디오 박스로의 어느 하나로 음악을 들을 수 있다). 이런 기기들 각각은 때로는 홈 Wi-Fi 네트워크를 통해서 인터넷으로부터 콘텐트를 다운로드하고 그리고 그것을 재생할 수 있다. 상기 콘텐트는 인-홈 (in-home) 기기들 (예를 들면, DLNA 미디어-플레이어 또는 MP3 저장소)로부터 재생될 수도 있다.
일반적으로, 개인용 컴퓨터, 태블릿, 스마트 폰 (예를 들면, 아이폰)과 같은기기가 콘텐트를 재생하거나 또는 디스플레이할 때에, 그 콘텐트가 저장 매체에 로컬에서 저장되지 않은 경우들에는 인터넷으로부터 그 특정 기기로 그 콘텐트가 다운로드된다. 예를 들면, YouTube® 웹사이트 상에서의 특정 비디오 클립을 네 번 보기를 원하는 개인이 네 개의 상이한 기기들 상에서 그 비디오 클립을 보기를 원한다면 그 개인은 보통은 그 비디오 클립을 YouTube® 웹사이트로부터 네 번 다운로드해야만 할 것이다.
최종-고객의 관점에서, 서비스 제공자들이 네트워크 서비스들에 연관된 대역폭 활용에 제한들 또는 캡들을 통합하기 때문에, 고객들은 소비된 대역폭의 양에 관하여 점점 더 신경을 쓰게 된다. 그러므로, 인터넷으로부터 콘텐트를 다시 다운로드하는 것에 대한 필요성이 점점 더 증가하는 문제점이 되어 간다. 더욱이, 서비스 제공자들의 관점에서, 중복적인 네트워크 트래픽 (이는 동일한 콘텐트가 인-홈 기기들에 의해서 다운로드될 때에 일반적으로 발생한다)의 감소가 또한 바람직하다.
서비스 제공자의 관점에서, 마음껏 사용할 수 있는 (all-you-can-eat service) 서비스 모델로부터 다운로드된 바이트마다의 비용 (cost-per-downloaded-byte) 모델로 이동하려는 시도가 있다. 추가로, 중복적인 네트워크 트래픽을 억제하기 위한 시도가 존재한다. 서비스 제공자의 관점에서, 둘 모두는 데이터 다운로드들 상에 월정의 상한선을 통합하여 달성될 수 있으며, 그에 의해서 고객은 감소된 다운로드 속도들을 겪거나 또는 상한선에 도달할 때에는 어떤 추가적인 콘텐트를 전체적으로 다운로드할 수 있다. 그런 경우들에, 동일한 콘텐트/파일을 여러 차례 다운로드하는 것은 사용자의 매달의 할당량이 불필요하게 소모되었다는 것을 의미한다. 또한, 동일한 콘텐트/파일이 다시 다운로드되고 있다는 사실은 동일한 콘텐트를 여러 차례 운반하기 위해서 네트워크 대역폭이 소비되고 있으며, 그럼으로써 네트워크 로딩 및 혼잡을 불필요하게 증가시킨다는 것을 의미하며, 이는 서비스 제공자들이 회피하려고 하는 것이다.
따라서, 데이터의 중복 네트워크 액세스와 연관된 네트워크 대역폭을 줄이기 위한 기술들에 대한 필요성이 존재하며, 본 발명은 이와 같은 필요성을 해결할 수 있는, 네트워크 환경에서의 캐싱을 위한 방법 및 장치를 제공하려고 한다.
일반적으로, 본 발명에 따른 방법들 및 장치는 여기에서 설명되는 캐싱 기술들을 실행하여 이런 그리고 다른 문제들을 완화시킨다. 그래서 홈 네트워크 내의 한 기기가 주어진 사이트로부터 특정 콘텐트 (예를 들면, 비디오, 노래)를 다운로드하여 재생할 때에, 그 콘텐트는 그 인-홈 네트워크 내에서 캐시되며 그래서 인터넷으로부터 동일한 콘텐트를 다시 다운로드하지 않고도 다른 기기 상에서 다시 재생되는 것이 가능하게 한다.
다양한 실시예들에서, 집중화된 (centralized) 또는 분산된 (distributed) 캐싱 방식이 구현된다. 기기는 (온-칩, 온-보드 또는 온-디스크 중 어느 하나의) 메모리를 포함할 수 있을 것이며, 그래서 상기 기기가 그 콘텐트를 인터넷으로부터 다운로드하는지 또는 원하는 콘텐트를 필요한 시간 제한 내에 캐시로부터 읽어야하는지를 결정할 수 있도록 한다. 하나 또는 그 이상의 기기들은 캐시 내 콘텐트와 연관된 콘텐트들의 테이블을 저장한다. 본 발명에 따른 예시의 방법들은 인터넷으로부터 멀티미디어 콘텐트를 다운로드하기 위한 요청을 수신하는 단계를 포함한다. 이 요청은 현존하는 (또는 완전하게 새로운) 메커니즘 중 어느 하나를 이용하여 인-홈 기기들 중 어느 하나에서 만들어질 수 있을 것이다. 상기 요청된 콘텐트를 인터넷으로부터 다운로드하기 이전에, 그 요청된 콘텐트를 그 인-홈 네트워크 내의 캐시에서 입수할 수 있는지의 여부에 관한 판별이 내려진다. 그 요청에 응답하여, 상기 요청된 콘텐트가 상기 인-홈 내 캐시 또는 인터넷의 어느 하나로부터 제공된다. 상기 요청된 콘텐트를 인-홈 네트워크 내의 캐시에서 입수할 수 있는지의 여부를 판별하기 위해서 사용된 캐싱 알고리즘은 중앙 집중화된 캐싱 방식 또는 분산된 캐싱 방식 중 어느 하나를 기반으로 할 수 있을 것이다.
이런 그리고 다른 모습들에 따라, 본 발명의 실시예들에 따라 인-홈 네트워크에서 실행되는 방법은, 인터넷으로부터 콘텐트를 다운로드하라는 요청을 수신하는 단계, 요청된 콘텐트를 인터넷으로부터 다운로드하기 이전에, 그 요청된 콘텐트를 상기 인-홈 네트워크 내 캐시에서 입수할 수 있는가의 여부를 판별하는 단계, 그리고 상기 요청에 응답하여, 상기 인-홈 네트워크 내 캐시 또는 상기 인터넷 중의 하나로부터 상기 요청된 콘텐트를 제공하는 단계를 포함한다.
본 발명의 효과는 본 명세서의 해당되는 부분들에 개별적으로 명시되어 있다.
본 발명의 이런 그리고 다른 모습들 및 특징들은 본 발명의 특정 실시예들의 다음의 설명을 첨부된 도면들과 함께 리뷰한 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들에게는 명백하게 될 것이다.
도 1은 본 발명의 실시예들에 따른 집중화된 캐싱 기술들을 실행하는 홈 네트워크의 블록도이다.
도 2는 본 발명의 실시예에 따른 예시의 집중화된 캐싱 방식을 도시하는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 분산된 캐싱 기술들을 실행하는 예시의 홈 네트워크의 블록도이다.
도 4a 및 도 4b는 본 발명의 실시예들에 따른 두 개의 예시의 분산된 캐싱 방법들을 도시하는 흐름도들이다.
도 5는 본 발명에 따른 캐싱 기술들을 실행할 수 있는 예시의 로컬 클라우드를 도시하는 블록도이다.
본 발명은 도면들을 참조하여 이제 상세하게 설명될 것이며, 상기 도면들은 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들의 본 발명을 실행하는 것을 가능하게 하기 위한 본 발명의 예시적인 예들로서 제공된다. 주목할 것은, 상기 도면들 및 아래에서의 예들은 본 발명의 범위를 단일의 실시예로 제한하려고 의도된 것이 아니며, 설명된 또는 예시된 엘리먼트들 중의 몇몇 또는 모두를 교체하는 것에 의해서 다른 실시예들이 가능하다. 더욱이, 본 발명의 어떤 엘리먼트들이 알려진 컴포넌트들을 이용하여 부분적으로 또는 완전하게 실행될 수 있는 경우에, 본 발명을 이해하기에 필수적인 것으로 알려진 그런 컴포넌트들의 부분들만이 설명될 것이며, 그렇게 알려진 컴포넌트들의 다른 부분들에 대한 상세한 설명은 본 발명을 불명료하게 하지 않도록 생략될 것이다. 소프트웨어로 구현되는 것으로 설명된 실시예들은, 여기에서 다르게 규정되지 않는다면, 그 반대의 경우도 마찬가지이만, 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들에게 명백할 것처럼, 그 소프트웨어로 제한되어서는 안 되며, 하드웨어, 또는 소프트웨어와 하드웨어의 조합들로 구현되는 실시예들을 포함할 수 있다. 본 명세서에서, 유일한 컴포넌트를 보여주는 실시예는 한정하고 있는 것으로 여겨지면 안 된다; 오히려, 그 반대의 경우도 마찬가지이지만, 여기에서 명시적으로 다르게 선언되지 않는다면, 본 발명은 복수의 동일한 컴포넌트를 포함하는 다른 실시예들을 포함하려고 의도된 것이다. 더욱이, 출원인들은 명세서 또는 청구범위에서의, 명시적으로 그렇게 제시된 것이 아니라면 어떤 용어도 일반적이지 않고 또는 특별한 의미에 속하는 것으로 의도하지 않는다. 또한, 본 발명은 예시로 여기에서 참조된 알려진 컴포넌트들에의 현재의 그리고 미래의 알려진 등가물들을 포함한다.
본 개시의 맥락에서, "인-홈 네트워크 (in-home network)"는 홈 또는 작은 사무실과 연관된 네트워크 환경을 구성하는 임의 유형의 분산 통신들, 컴퓨팅, 및 저장 컴포넌트들을 일반적으로 언급한다. 다양한 실시예들이 인-홈 네트워크 내에 콘텐트를 캐시하기 위해서 설명되며, 이 경우에 캐시된 콘텐트는 파일들, 멀티미디어 콘텐트, 및 다른 유형의 데이터를 포함한다. 본 발명이 인-홈 네트워크 실행을 특별하게 참조하여 설명될 것이지만, 본 발명의 원칙들은 단일의 홈 또는 사무실 환경에 한정되는 것이 아니며, 아래에서의 설명에 의해서 감지될 수 있을 것처럼 다른 유형의 환경들로 확대될 수 있다.
본 발명에 따른 캐싱 방법 및 장치의 실시예들은 적어도 두 개의 일반적인 구현들을 포함한다: 집중화 (centralized) 그리고 분산 (distributed). 집중화된 구현에서, 캐시는 홈 게이트웨이 (home gateway (HGW)) 또는 유사한 기기 상에서 구현된다. 룩업 테이블 또는 인덱스는 요청된 콘텐트를 그 캐시에서 입수할 수 있는가의 여부를 HGW에게 표시하는 온-칩/온-보드 메모리에 또한 통합될 수 있을 것이다. 분산된 구현에서, 본 발명의 캐싱 방식은 다양한 인-홈 기기들 (랩톱들, 라우터들, 리피터들, iPad들 등)에 걸쳐서 실행된다. 상기 기기들의 일부 또는 전부는 캐시-동일성 (cache-coherency) 애플리케이션의 인스턴스 (instance)를 실행하며, 이는 상기 HGW에서 상기 캐시 애플리케이션에 관한 클라이언트 서버 방식을 이용하여 구현되거나, 또는 완전하게 분산된 모델을 이용하여 구현될 수 있을 것이다.
도 1은 본 발명에 따른 예시의 집중화된 캐싱 기술들이 실행될 수 있을 네트워크 환경 (100)의 실시예이다. 보이는 것처럼, 하나 또는 그 이상의 기기들 (104)은 인-홈 네트워크 (102)에서 연결되며, 이는 홈 게이트웨이 (108)를 경유하여 인터넷 (106)으로의 액세스를 제공한다. 인터넷을 통하여, 사용자들은 인터넷 상의 사양한 사이트들로부터의 텍스트 및 멀티미디어 콘텐트를 포함하는 다양한 다른 유형의 콘텐트는 물론이며 YouTube® 웹사이트 또는 다른 웹사이트와 같은 비디오 공유 포탈들 (110)로부터 콘텐트를 다운로드할 수 있다
기기들 (104)은 랩탑들, 데스크탑들 및 (도 1에서 보이는 것과 같은) 태블릿 컴퓨터들 (예를 들면, 아이패트 (iPad), 킨들 (Kindle) 등)과 같은 개인용 컴퓨터 기기들, 스마트폰들 (예를 들면, 아이폰들 및 안드로이드 폰들)과 같은 네트워크 준비된 전화 기기들을 포함하며, 그리고 네트워크-케이블 TV들, 인터넷 라디오 시스템들, 게이밍 기기들 (예를 들면, Wii, Xbox 등), DVR들 등과 같은 다양한 다른 유형의 미디어 기기들을 더 포함할 수 있다. 기기들 (104)은 라우터들, 리피터들, NAS 기기들 등과 같은 다른 홈 네트워크 기기들을 더 포함할 수 있다. 상기 기기들 (104)은 유선의 접속 (130) (예를 들면, 이더넷, 파워라인 등) 또는 무선의 접속 (132) (예를 들면, WiFi, Bluetooth 등)을 경유하여 상기 홈 네트워크 (102)에 연결될 수 있을 것이다.
홈 게이트웨이 (108)는 NetGear, Linksys, D-Link, Cisco 등과 같은 상업적인 벤더들로부터 입수할 수 있는 것들과 같은 유선의 또는 무선의 라우터 내에 통합되거나 또는 제공될 수 있다. 그런 라우터 기기들은 본 발명의 캐싱 기술들과 함께 동작하도록 적응될 수 있는 전통적인 라우팅 기능성을 보통은 포함하며, 이는 본 발명의 예들에 의해서 교시된 이후의, 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들에 의해서 인정될 것이다.
본 발명이 실행될 수 있는 홈 네트워크들은 케이블 또는 전화 네트워크와 같은 공급자 네트워크 또는 캐리어에 더 연결될 수 있는 DSL 모뎀과 같은 인터넷 액세스 기기 (도시되지 않음)를 보통 더 포함한다는 것에 유의해야만 한다. 그런 기기들이 라우터 기능성을 포함하는 몇몇의 실시예들에서, 그런 기기들에 게이트웨이 (108)가 통합될 수 있다. 다른 실시예들에서, 게이트웨이 (108) 및 인터넷 액세스 기기는 개별적인 기기들에서 구현된다. 일 예는 애플로부터의 AirportExpress와 같은 서비스일 것이며, 이는 이더넷 인터페이스를 내놓는 적합한 모뎀 (FiOS/DSL/다른 것)을 가정한다.
보이는 것처럼, 본 발명의 캐싱 실시예들에 따르면, 홈 게이트웨이 (108)는 그것이 콘텐트 검색 모듈 (112), 캐시 애플리케이션 (114), 그리고 콘텐트를 캐싱하기 위한 메모리 저장 기기 (116)를 포함한다는 점에서 전통적인 홈 게이트웨이와는 다르다. 실시예들에서, 저장 기기 (116)는 플래시/DDR (double data rate) 메모리와 같은 온-보드 메모리에서 구현된다. 추가적인 또는 대안의 실시예들에서, 저장 기기 (116)는 게이트웨이 (108) 기기에 연결된 USB2.0/USB3.0/eSATA/또는 다른 유형의 디스크 저장부와 같은 오프-보드 고속 기기에서 구현된다. 참조번호 112의 모듈 및 캐시 애플리케이션 (114)은, 예를 들면, 여기에서 설명된 것과 같은 기능성이 보충된 전통적인 또는 독점적인 라우터 기기 소프트웨어 및/또는 펌웨어를 이용하여 구현될 수 있다.
일반적으로, 콘텐트 검색 모듈 (112)은 기기들 (104)에 의해서 요청되고 있는 콘텐트가 인터넷으로부터 아니라 저장 기기 (116)로부터 공급될 수 있는가를 결정하기 위해서 저장 기기 (116) 내 캐시의 콘텐트들을 검색한다. 참조번호 112의 모듈의 추가의 예시의 구현의 상세한 내용은 전술한 기능적인 설명들로부터 수집될 수 있다.
일반적으로, 캐시 애플리케이션 (114)은 적어도 다음의 모습들을 제어한다: 1) 그 캐시에 할당될 메모리의 양; 그리고 2) 캐시 그 자체의 콘텐트 (LRU (least recently used) 캐시 알고리즘, MRU (most recently used) 캐시 알고리즘, 또는 다른 캐시 알고리즘들을 기반으로 하는가의 여부). 상기 캐시 애플리케이션 (114)은 참조번호 116의 기기에서 획득할 수 있는 콘텐트의 인덱스를 유지하도록 더 구성된다. 애플리케이션 (114)의 추가의 예시의 구현 상세한 내용들은 전술한 기능적인 설명들로부터 수집될 수 있다.
캐시 애플리케이션 (114)에서 유지될 수 있는 예시의 인덱스는 아래에서 예시된다.
설명 캐시 내 포인터 메타데이타 1 메타데이터 2
www.youtube.com/user/lady
gagaofficial
0x000010000000h 포맷 = MPEG, 유형 = music video, title = "Paparazzi" "lady gaga", 400x300 해상도
.. .. .. ..
www.espn.com 0x00002000000h 포맷 = H.271,
유형 = news video, 날자 = Jan. 21, 2012
"sports center", "Jan. 21, 2012", 500x400 해상도
... ... ... ...
상기에서 보이는 것처럼, 하나의 예시의 구현에서, 각 엔트리마다 캐시 인덱스는 4개의 상이한 엘리먼트들을 포함한다: 설명 (Description), 포인터, 그리고 두 세트의 메타데이터. 상기 설명 엘리먼트는 캐시된 콘텐트와 참조번호 104로부터 수신된 새로운 콘텐트에 대한 요청 내 정보 사이의 매치 (match)를 캐시 애플리케이션이 수행하도록 허용하도록 의도된 것이다. 이 예에서, 상기 설명은 URL (예를 들면, www.youtube.com)의 일부를 포함하는 것이 보통이다. 메타데이터 중 한 세트는 콘텐트에 대한 요청에서 나타날 수 있을 하나 또는 그 이상의 키워드들을 포함할 수 있을 것이다 (예를 들면, "Lady Gaga"). 메타데이터의 다른 세트는 요청 내에 포함될 수 있는 추가적인 아이템들 또는 태그들을 포함할 수 있을 것이다 (예를 들면, 400x300의 해상도). 상기 포인터 엘리먼트는 저장 기기 (116) 내의 주소를 포함한다. 이 예에서, 상기 포인터는 실제의 메모리 주소이다. 그러나, 디렉토리 구조 내의 파일 ID 및 경로와 같은 많은 변이들이 가능하다. 상기 메타데이터는 캐시된 콘텐트의 축어적인 (textual) 또는 다른 설명을 제공하는데 있어서 유용할 수 있을 캐시된 콘텐트에 관한 추가적인 정보를 포함한다.
도 2는 본 발명의 실시예들에 따른 예시의 집중화된 캐싱 방법을 예시하는 흐름도이다.
단계 S202에서, 기기 (104)는 콘텐트를 요청한다. 예를 들면, 기기 (104)가 인터넷 브라우저와 같은 브라우저를 실행하고 있는 컴퓨터인 경우에, 콘텐트에 대한 요청은 www.youtube.com 에 의해서 서빙되는 페이지 상의 콘텐트의 목록과 같은 웹 페이지 상의 링크를 사용자가 클릭한 것에 의해서 개시될 수 있다. 그 클릭에 응답하여, 상기 브라우저 애플리케이션은 HTTP 프로토콜 그리고 HTLM과 같은 콘텐트 내에 내장된 링크로부터의 정보를 이용하여 IP 요청을 형성하며, 그리고 그것을 게이트웨이 (108)로 송신한다. 다른 예로서, 그것은 그 캐시 내 새로운 엔트리들을 룩업/학습 (lookup / learning)하는 것을 수행하는 것을 담당하는 엔티티에 의해서 "스눕 (snoop)"될 수 있을 것이다. 이 기능은 상기 게이트웨이/라우터에서 수행될 수 있을 것이다. 단계 S204에서, 상기 요청은 상기 게이트웨이에서 전통적인 라우팅 기술들을 이용하여 프로세싱된다. 예를 들면, 게이트웨이 (108)는 상기 요청에 연관된 IP 주소를 라우팅 테이블에서 룩업 (look up)하고 그리고 상기 요청이 원격 네트워크 위치 내 콘텐트와 연관되는가의 여부를 판별할 수 있다. (단계 S204에서 판별된) 원격 소스로부터 획득될 필요가 있는 콘텐트 (예를 들면, YouTube와 같은 공개 웹사이트로부터의 비디오)에 대한 모든 요청들에 대해서, 단계 S206에서 검색 모듈 (112)은 상기 요청된 콘텐트가 기기 (116)에 저장되었는지의 여부를 판별하기 위해서 상기 캐시 디바이스 (116)를 검색한다.
상기 요청된 콘텐트가 캐시되지 않았으면, 상기 콘텐트는 단계 S208에서 상기 요청을 인터넷으로 포워딩하여 전통적인 방식으로 획득된다. 단계 S210에서, 인터넷으로부터 상기 기기 (104)로 다운될 상기 콘텐트가 게이트웨이 (108)를 경유하여 상기 기기 (104)로 스트리밍되고 있을 때에, 그 콘텐트는 애플리케이션 (114)에 의해서 기기 (116) 내 캐시에도 또한 복사된다. 그런 것이 완료될 때에, 애플리케이션 (114)은 단계 S212에서 새롭게 저장된 콘텐트를 반영하기 위해서 캐시 인덱스를 업데이트한다.
상기 요청된 콘텐트가 로컬에서 입수 가능하다고 단계 S204에서 대신 판별되면, 그것은 단계 S214에서 게이트웨이 (108)에 의해 캐시 디바이스 (116)로부터 기기 (104)로 스트리밍된다.
도 3은 본 발명에 따른 예시의 분산 캐싱 기술들이 실행될 수 있을 네트워크 환경 (300)의 실시예이다.
도 1에서 보여진 집중화된 구현에 대조적으로, 분산된 구현에서, 하나 또는 그 이상의 기기들 (104)은 캐시 애플리케이션 (320)을 실행시키고 그리고 로컬 캐시 (322)를 유지하도록 구성된다.
기기 (104)가 윈도우즈 오퍼레이팅 시스템을 운영하는 랩탑 또는 데스크탑 컴퓨터인 실시예들에서, 캐시 애플리케이션 (320)은 디바이스 드라이버 애플리케이션 또는 브라우저 플러그-인 애플리케이션에 의해서 구현될 수 있다. 예를 들면, 기기 (104)가 WiFi 트랜시버를 포함하며 그리고 기기 (104)가 게이트웨이 (308)와의 무선 접속을 설립하려고 먼저 시도할 때에, 게이트웨이 (308)는 자동적으로 기기 (104)로 하여금 캐시 애플리케이션 (320)을 포함하는 디바이스 드라이버 소프트웨어를 다운로드하고 설치하도록 할 수 있다. 다른 예로서, 상기 캐시 애플리케이션은 (그 기기와 함께 오는 초기 소프트웨어의 일부를) 제조하는 동안에 상기 기기 상에 미리 로딩될 수 있을 것이다. 또 다른 예로서, 상기 캐시 애플리케이션은 그 플랫폼용으로 인터넷으로부터 명시적으로 다운로드될 수 있을 것이다 - 수동으로 (새로운 프린터를 위해서 드라이버를 수동으로 다운로드하는 것과 유사함) 또는 네트워크 내에서 "캐싱 기술들"을 위한 자동-탐지 지원에 응답하여 (새로운 프린터가 랩탑에 연결될 때에 다운로드되는 드라이버와 유사함). 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들은 본 발명의 예에 의해서 교시된 이후에, 아마도 기기 (104)의 유형에 의존하여 애플리케이션 (320)을 구현하는 다양한 대안의 방식들을 인지할 것이다.
일반적으로, 캐시 애플리케이션 (320)은 캐시 (322)의 콘텐트들을 관리하고, 독점의 또는 다른 프로토콜들을 경유하여 다른 캐시 인스턴스들과 통신하고, 그리고 로컬로 그리고/또는 다른 캐시 인스턴스들과 공유하는 것의 어느 하나로 캐시 인덱스를 유지하기 위한 기능을 포함한다. 캐시 애플리케이션 (320)의 구현 및 다른 상세한 내용들은 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들이 본 발명에 따른 다음의 예시의 방법들에 의해 교시받은 후에 더욱 더 명백하게 될 것이다.
캐시 (322)는 기기 (104)에 관리되는 또는 관리될 수 있는 메모리에 의해서 구현된다. 예를 들면, 기기 (104)가 윈도우즈 오퍼레이팅 시스템 그리고 인터넷 익스플로러 소프트웨어를 운영하는 개인용 컴퓨터 (예를 들면, 랩탑 또는 데스크탑)인 경우에, 캐시 애플리케이션 (322)은 로컬 기기 상의 브라우저 temp 디렉토리 내 파일들에 의해서 구현될 수 있다. MP3 플레이어의 예에서, 그것은 온-칩 메모리에 저장될 수 있을 것이다 (휘발성 또는 비-휘발성의 어느 하나이며, 휘발성의 경우에 상기 기기가 스위치 온 되는 매번마다 상기 캐시가 구축되며, 비휘발성의 경우에 캐시가 일단 구축되고 그리고 그 후에 기기 부트들을 가로질러 재사용된다). 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들에 의해 인식될 것처럼 많은 대안들이 가능하다.
도 3에서 더 보이는 것처럼, 게이트웨이 (308)는 검색 모듈 (312), 캐시 애플리케이션 (314) 그리고 캐시 (316)를 포함한다. 이 엘리먼트들은 아래에서의 기능적인 설명들로부터 명백하게 될 것인 추가들 및 변경들을 구비하여, 도 1에서 도시된 집중화된 실시예에서의 비슷한 컴포넌트들과 유사하게 구현될 수 있다. 아래에서 더욱 상세하게 설명될 본 발명의 실시예들의 모습들에 따르면, 도 3은 참조번호 322의 캐시 및 참조번호 316의 캐시가 함께, 상기 분산된 캐시 인덱스 (304)에서 반영되는 것 같은 분산된 캐시 (302)를 어떻게 구현하는가를 더 예시한다.
도 4a 및 도 4b는 본 발명의 실시예들에 따른 예시의 분산된 캐시 방법들을 예시하는 흐름도들이다.
도 4a에서 예시된 예시의 방법은 본 발명의 실시예들에 따른 분산된 캐시의 클라이언트-서버 모델 구현을 반영한다.
단계 S402에서, 기기 (104)는 콘텐트를 요청하며, 이는 단계 S202에 대해 도 2에서 상기에서 설명된 것들과 유사한 동작들을 포함할 수 있다. 단계 S404에서, 상기 요청은 전통적인 라우팅 기술들을 이용하여 상기 게이트웨이에 의해서 프로세싱되며, 이 라우팅 기술들은 S204에 대해 상기에서 설명된 것들과 유사한 동작들을 포함할 수 있다. 원격 소스로부터의 (단계 S404에서 판별된) 콘텐트에 대한 요청들에 대해서 (예를 들면, YouTube와 같은 공개 웹사이트로부터의 비디오), 단계 S406에서 검색 모듈 (312)은 상기 요청된 콘텐트가 상기 분산된 캐시 (302) 내에 저장되는가의 여부를 판별하기 위해서 현재 캐시 인덱스 (304)를 검색한다.
상기 요청된 콘텐트가 캐시되지 않으면, 그 콘텐트는 단계 S408에서 상기 요청을 인터넷으로 포워딩하여 전통적인 방식으로 획득된다. 단계 S410에서, 새롭게 요청된 콘텐트가 인터넷으로부터 상기 기기 (104)로 다운로드된 이후에, 애플리케이션 (314)는 그 새롭게 저장된 콘텐트를 반영하기 위해서 캐시 인덱스 (304)를 업데이트하고 상기 분산된 캐시 (302)의 특정 기기 (104) 내에서 그 콘텐트의 위치도 업데이트한다.
상기 요청된 콘텐트를 상기 분산된 캐시 (302) 내에서 입수 가능하다고 단계 S406에서 대신에 판별되었다면, S412에서 검색 모듈 (312)은 상기 분산된 캐시 (302) 내에서 상기 요청된 콘텐트의 위치를 더 판별하며, 그리고 단계 S414에서 애플리케이션 (314)은 상기 요청된 콘텐트로 하여금 상기 분산된 캐시 (302)로부터 기기 (104)로 스트리밍되도록 한다. 예를 들면, 상기 요청된 콘텐트가 상기 게이트웨이의 캐시 디바이스 (316) 내에 위치하면, 애플리케이션 (314)은 그 콘텐트를 상기 기기 (316)로부터 직접 간단하게 포워딩할 것이다. 그러나, 그 요청된 콘텐트가 다른 기기 (104) 내에 위치하면, 애플리케이션 (314)은 상기 기기 (104) 내 캐시 애플리케이션 (320)과 통신할 것이며 그리고 그 기기 (104)로 하여금 상기 콘텐트를 기기 (104)의 캐시 (322)로부터 포워딩하도록 할 것이다. 이는 기기들 (104) 내 각각의 캐시 애플리케이션들 (320) 사이에서의 통신들에 의해서 직접 전달되도록 하여 실행될 수 있으며 또는 캐시 애플리케이션 (314)에 의해 양 애플리케이션들 (320)과의 분리된 통신들을 경유하여 실행될 수 있다.
도 4b에서 도시된 예시의 방법은 본 발명의 실시예들에 따른 분산된 캐시의 완전히 분산된 모델 구현을 반영한다.
단계 S452에서, 상기에서 설명된 단계 S202 및 S402에서처럼 기기 (104)는 콘텐트를 요청한다. 단계 S454에서, 상기 요청은 상기에서 설명된 단계들 S204 및 S404에서 설명된 것과 같은 전통적인 라우팅 기술들을 이용하여 상기 게이트웨이에 의해서 프로세싱된다. 원격 소스 (예를 들면, YouTube와 같은 공개 웹사이트로부터의 비디오)로부터 콘텐트에 대한 (단계 S404에서 결정된) 모든 요청들에 대해서, 단계 S456에서 검색 모듈 (312)은 상기 요청된 콘텐트가 상기 분산된 캐시 (302) 내에 저장되었는가의 여부를 판별하기 위해서 현재의 캐시 인덱스 (304)를 검색한다.
상기 콘텐트가 캐시되지 않았다면, 단계 S458에서 상기 콘텐트는 그 요청을 인터넷으로 포워딩함으로써 전통적인 방식으로 획득된다. 단계 S460에서, 상기 새롭게 요청된 콘텐트가 인터넷으로부터 상기 기기 (104)로 다운로드된 이후에, 상기 요청하는 기기 (104) 내의 애플리케이션 (320)은 상기 공유 캐시 인덱스 (304)로 하여금 상기 분산된 캐시 (302)의 특정 기기 (104) 내의 그 콘텐트의 위치는 물론이며 상기 새롭게 저장된 콘텐트를 반영하기 위해서 업데이트되도록 한다. 예를 들면, 애플리케이션 (320)은 현재 동작하고 있는 모든 캐시 인스턴스들을 알 수 있으며, 그리고 각 인스턴스는 상기 분산된 인덱스의 로컬 사본을 저장할 수 있다. 상기 콘텐트가 저장된 이후에, 상기 특정 기기 (104) 내의 애플리케이션 (320)은 모든 다른 인스턴스들에게 메시지를 브로드캐스트할 수 있으며, 그리고 응답으로 상기 인스턴스들은 그 새롭게 저장된 콘텐트를 반영하기 위해서 상기 인덱스의 자신들의 로컬 사본들을 업데이트할 수 있다.
상기 분산된 캐시 (302)에서 상기 요청된 콘텐트를 입수할 수 있다고 단계 S456에서 대신에 판별되면, 단계 S462에서 검색 모듈 (312)은 상기 분산된 캐시 (302) 내 상기 요청된 콘텐트의 위치를 더 판별하며, 그리고 단계 S464에서 애플리케이션 (314)은 상기 요청된 콘텐트가 상기 분산된 캐시 (302)로부터 기기 (104)로 스트리밍될 수 있다고 애플리케이션 (320)에게 통지하며, 그리고 애플리케이션 (320)에게 상기 콘텐트의 위치를 제공한다. 상기 요청하는 기기 (104) 내 애플리케이션 (320)은 그러면 상기 콘텐트를 상기 캐시 (302) 내 적절한 위치로부터 가져오기에 필요한 단계들을 취한다. 예를 들면, 상기 요청된 콘텐트가 상기 게이트웨이의 캐시 디바이스 (316) 내에 위치하면, 애플리케이션 (320)은 기기 (316)로부터 콘텐트를 획득하기 위해서 애플리케이션 (314)과 통신할 것이다. 그러나, 그 요청된 콘텐트가 다른 기기 (104) 내에 위치하면, 애플리케이션 (314)은 그 다른 기기 (104) 내의 캐시 애플리케이션 (320)과 통신할 것이며 그리고 그 다른 기기 (104)로 하여금 상기 다른 기기 (104)의 캐시 (322)로부터 그 콘텐트를 포워딩하도록 할 것이다.
다양한 실시예들에 따라, 상기 콘텐트가 더 이상 액세스 가능하지 않기 때문에 그 캐시된 콘텐트를 저장하는 기기 (예를 들면, PC 또는 랩탑)가 셧 다운될 때는 언제나 상기 공유-인덱스는 업데이트될 수 있을 것이다.
본 발명에 따른 분산된 캐시의 몇몇의 실시예들에서, 캐시 콘텐트들을 하나의 기기로부터 다른 기기로 이동시키는 것이 또한 가능하다. 몇몇의 실시예들에 대하여, "멀리 있는" 기기로부터 종종 액세스되는 콘텐트는 "가까이에 있는" 기기로 (예를 들면, 게이트웨이 내의 캐시로, 또는 근처의 리피터, 브리지, 라우터 등 내의 캐시로) 이동될 수 있을 것이다. "가까이에 있는" 기기는, 예를 들면, (예를 들면, 특정 기기에 대한 TCP 헤더 정보 내의 TTL 값에 의해 결정된) 홉 (hop)들의 개수, (예를 들면, 기기의 접속의 신호 강도에 의해서 결정된, 또는 그것이 유선인가 또는 무선인가에 따라 결정된) 그 기기로의/그 기기로부터의 대역폭, 그 접속의 레이턴시 등을 기반으로 하여 선택될 수 있을 것이다.
클라이언트-서버 모델에서, 여기에서 설명된 상기 이동시키는 기능은 캐시 애플리케이션 (314) 내에 통합될 수 있으며, 이는 캐시 콘텐트를 이동시키고 그리고 기기들 사이에서의 이동을 수행하기 위해서 그 기기들과의 필수적인 통신들을 관리하는 것에 대한 필요성 또는 바람직함을 주기적으로 판별할 수 있다. 완전히 분산된 모델에서, 각 캐시 인스턴스는 이동시키는 상황들을 모니터할 수 있고 그리고 그 자신들 사이에서의 이동시키는 행동들을 조절할 수 있다. 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들은 이 예들에 의해서 배운 이후에는 다양한 추가 구현의 상세한 내용들을 인식할 것이다.
이런 그리고 다른 이동의 실시예들에서, 한 기기의 캐시의 콘텐트들은 그 기기가 파워 다운될 때에 중앙의 또는 다른 캐시로 이동될 수 있다. 예를 들면, 완전하게 분산된 모델 구현에서, 상기 애플리케이션 (320)은 다른 캐시 인스턴스들로 메시지를 브로드캐스트할 수 있으며, 그리고 그 다른 캐시 인스턴스들은 자신들이 이용 가능한 충분한 저장용량을 구비하는가의 여부를 판별하며, 그리고 충분한 저장용량을 구비한다면, 그것들은 상기 기기들 사이에서 그 콘텐트를 이동시키는 세션을 개시할 수 있다.
다른 예로서, 클라이언트-서버 모델에서, 애플리케이션 (314)은 아래에서 더욱 상세하게 설명되는 다양한 알고리즘들로부터의 결과들을 이용하여 기기들 (104) 사이에서의 이동을 선택적으로 수행할 수 있다. 특히, 도 3에서 보이는 것처럼, 분산된 구현의 예시의 실시예들은 게이트웨이 (308)에 포함된 크롤링 (crawling) 알고리즘들 (352)을 포함한다. 이는 홈 네트워크 (302) 내에서 미디어를 검색하도록 구성될 수 있다. 예를 들면, 상기 알고리즘은 인-홈 네트워크 (102)를 통해서 "크롤 (crawl)"하고 그리고 다른 위치들에서 입수 가능한 정보로 상기 분산 인덱스를 업데이트한다. 동일한 실시예들에 대해서, 상기 크롤링 알고리즘은 선택된 콘텐트를 분산된-캐시 인스턴스들 사이에서 또한 복사하고/이동시키며, 이 경우 상기 콘텐트 그리고 상기 이동의 목적지는 애플리케이션 (314)에서의 알고리즘에 의해서 선택된다.
예를 들면, 이런 그리고 다른 실시예들에서, 애플리케이션 (314)은 사용자마다의 선호도들을 추적하도록 구성될 수 있을 것이다. 그러면, 특정 사용자가 주어진 시스템으로 로그할 때에, 애플리케이션 (314)은 그 사용자가 "좋아하는" 콘텐트를 적절한 캐시로 자동적으로 복사하도록 구성될 수 있을 것이며, 그래서 그 콘텐트는 "근처에서" 이용 가능하도록 하며, 그럼으로써 경험의 품질 (quality of experience (QoE))을 향상시킨다. 이 기술은 캐시-룩업 (cache-lookup) 알고리즘 및 캐시-실장 (cache-populating) 알고리즘 둘 모두에 적용할 수 있을 것이다. 이런 그리고 다른 실시예들에서 어떤 사용자들에 대해서는 어떤 사이트들을 방문하고/어떤 콘텐트를 다운로드하는 것은 캐시되지 않을 것이라는 것에 유의해야만 한다. 예를 들면, 특정 사용자가 자신들의 브라우저에서 (예를 들면, Google Chrome에서) "익명 모드 (incognito mode)"가 가능할 때에, 콘텐트를 캐시하는 능력은 턴 오프될 수 있다. 사용자마다의 선호도들은 절대로 캐시되지 않는 유형의 콘텐트를 또한 포함할 수 있다. 절대로 캐시되지 않는 콘텐트의 예는 은행-거래일 수 있다.
애플리케이션 (314)의 이런 그리고 다른 실시예들에 따라, 사용자들에게는 기기 (104)에 포함된 사용자 인터페이스 애플리케이션을 경유하여 자신들의 프로파일용의 사람들 또는 변경자 (modifier)들을 정의하기 위한 기회가 주어질 수 있다. 예를 들면, 사용자는 자신이 보통 영화를 (집이건 사무실이건 간에) 혼자서 또는 가족 그리고/도는 친구들과 함께 보는가의 여부를 규정할 수 있다. 더욱이, 애플리케이션 (314)은 원하는 콘텐트가 보통 언제 요청되는가를 판별할 수 있으며, 그리고 인터넷에서 콘텐트를 다운로드하는 것이 가장 쌀 때인 날/주 (day/week)의 시간대에 그 원하는 콘텐트를 캐시하고 그리고/또는 이동시킬 수 있다. 예를 들면, "Survivor"의 에피소드는 보통 그것을 매일 저녁 9:00 pm에 보는 사용자를 위해서 3:00 am에 다운로드된다.
도 3에서 더 보이는 것처럼, 게이트웨이 (308)의 예시의 실시예들은 모니터 모듈 (354)을 포함하며, 이 모니터 모듈은 각 사용자의 브라우징 습관들을 모니터하고 그리고 미세 데이터 분석 (granular data analysis)을 제공하도록 구성된다. 이 특징은 다른 것도 있지만 그 중에서도 사용자들에게로의 특정 광고들의 타겟팅을 허용한다. 예를 들면, "Survivor"의 에피소드는 보통 그것을 매일 저녁 9:00 pm에 보는 사용자를 위해서 3:00 am에 다운로드된다.
본 발명의 원칙들은 단일의 홈 네트워크를 넘어서 확대될 수 있다는 것에 유의해야만 한다. 예를 들면, 도 5는 로컬 클라우드 실시예의 예를 보여주며, 이 경우 상기 로컬 클라우드는 둘 또는 그 이상의 가구들 내의 네트워크들을 포함한다. 상기 클라우드는 단일의 IP 접속 그리고 공통의 게이트웨이를 사용하는 여러 상이한 유선 및/또는 무선의 로컬 네트워크들을 사용하는 네트워크들에 의해서 형성될 수 있다. 다른 예로서, 게이트웨이들 각각이 자기 자신의 IP 접속을 구비하며 그리고 유선 또는 무선의 접속들을 경유하여 서로 통신하는 그런 게이트웨이들에 의해서 상기 클라우드가 구현될 수 있다. 본 발명의 속한 기술 분야에서의 통상의 지식을 가진 자들은 이 예들에 의해 교육을 받을 후에 다양한 대안의 실시예들을 인식할 것이다.
다양한 클라우드 실시예들에 따라, 설명된 캐싱 기술들을 수행하기 위해서 로컬 클라우드 구성이 사용된다. 로컬 클라우드 구성을 이용하여, 하나 또는 그 이상의 "확장된" 홈들 (예를 들면, 어떤 참여한 이웃들, 조인트-페밀리) 내에서는 물론이며 단일의 홈 내에서의 서비스들 및 기기들은 서로 연결될 수 있을 것이다. 예를 들면, 네 가정들의 그룹을 위한 미디어 라이브러리는 "공유"될 수 있을 것이며 그리고 그 네 가정들로부터의 누구에게도 이용 가능할 것이다. 그러나, 각 가정은 자신만의 인터넷 접속을 가질 것이며 그리고 역시 독립적으로 서비스들/애플리케이션들에 액세스할 것이라는 것에 유의한다. 다양한 실시예들에 대해서, 캐싱 알고리즘은 (a) 정보가 보통 지나가는 "허브들"로서 사용될 수 있을 홈 (또는 확장된 홈) 내에서 전략적인 위치들을 식별하기 위해서, 그리고 (b) 그 위치에 어떤 정보가 저장되어 있는가를 식별하기 위해서 사용된다. 그 알고리즘은 어떤 콘텐트가 그리고 얼마나 많은 콘텐트가 그 중앙 허브에서 캐시될 것인가를 또한 정의할 수 있을 것이다. 이런 허브들은 홈 내의 다른 기기들 (PC들, 태블릿들, 게이밍-콘솔들 등)은 물론이며 리피터들 (유선/무선)과 같은 다양한 기기들로서 구체화될 수 있을 것이다.
본 발명과 함게 사용되기 위해서 적응될 수 있는 게이트웨이 기기 (108, 308)의 한 가지 비-한정적 예가 공동으로 계속중인 No. 13/102,623의 출원에서 설명되며, 이 출원의 내용들을 그 전체가 본원에 참조로 편입된다. 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들은 본 발명의 예시의 실시예들을 구현하기 위해서 그 출원의 개시를 본원의 개시와 어떻게 결합하는가를 이해할 수 있을 것이다.
비록 본 발명이 바람직한 실시예들을 참조하여 특히 설명되었지만, 본 발명의 사상 및 범위에서 벗어나지 않으면서도 형상 및 상세한 내용의 면에서 변경들 및 수정들이 만들어질 수 있을 것이라는 것은 본 발명이 속한 기술 분야에서의 통상의 지식을 가진 자들에게는 쉽게 명백할 것이어야 한다. 첨부된 청구항들은 그런 변경들 및 수정들을 포함하는 것으로 의도된 것이다.

Claims (36)

  1. 네트워크에서 구현되는 방법으로서,
    인터넷으로부터 콘텐트를 다운로드하라는 요청을 수신하는 단계;
    요청된 콘텐트를 인터넷으로부터 다운로드하기 이전에, 그 요청된 콘텐트를 상기 네트워크 내 캐시에서 입수할 수 있는가의 여부를 판별하는 단계로, 상기 요청된 콘텐트를 상기 네트워크 내 캐시에서 입수할 수 있는가의 여부를 판별하는 것은 상기 콘텐트가 상기 네트워크 내 복수의 상이한 위치들 내에 분산된 (distributed) 캐시에 저장되었는가를 판별하는 것을 포함하는, 판별 단계;
    상기 요청에 응답하여, 상기 네트워크 내 캐시 또는 상기 인터넷 중의 하나로부터 상기 요청된 콘텐트를 제공하는 단계;
    콘텐트의 인덱스를 상기 분산된 캐시 내에 유지하는 단계;
    상기 네트워크 내 상기 복수의 상이한 위치들에서 미디어를 찾기 위해 상기 네트워크를 크롤 (crawl)하여 상기 인덱스를 업데이트하는 단계로, 상기 복수의 상이한 위치들은 상기 네트워크 내 하나 이상의 기기들을 포함하는, 업데이트 단계; 그리고
    상기 분산된 캐시의 콘텐트들을 기기로부터 상기 하나 이상의 기기들로 이동시키는 단계를 포함하며,
    상기 콘텐트들을 이동시키는 것은 기기로부터 상기 하나 이상의 기기들로 메시지를 브로드캐스트하는 것을 포함하며, 그리고 상기 하나 이상의 기기들은, 그 하나 이상의 기기들이 상기 콘텐트들용으로 이용가능한 충분한 저장부를 구비하는가의 여부에 적어도 부분적으로 기반하여 결정되는, 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 하나 이상의 기기들은 개인용 컴퓨팅 기기들, 미디어 기기들 및 네트워크 기기들 중 하나 이상을 포함하는, 방법.
  6. 제5항에 있어서,
    상기 개인용 컴퓨팅 기기들은 랩탑 컴퓨터들, 데스크탑 컴퓨터들, 태블릿 컴퓨터들 그리고 스마트 폰들 중 하나 이상을 포함하는, 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 기기들 각각으로 하여금 캐시-일관성 (cache-coherency) 애플리케이션의 인스턴스 (instance)를 실행하도록 하는 단계를 더 포함하는, 방법.
  8. 제7항에 있어서,
    상기 캐시-일관성 애플리케이션의 인스턴스를 실행하는 것은 상기 분산된 캐시의 공유 인덱스를 유지하는 것을 포함하는, 방법.
  9. 제7항에 있어서,
    상기 캐시-일관성 애플리케이션 인스턴스를 실행하는 것은 상기 분산된 캐시의 인덱스로의 액세스를 하는 것을 포함하는, 방법.
  10. 삭제
  11. 제1항에 있어서,
    상기 분산된 캐시의 콘텐트들을 이동시키기 위해서 상기 네트워크 내에서 전략적 위치들을 식별하는 단계를 더 포함하는, 방법.
  12. 제1항에 있어서,
    상기 네트워크 내의 각각의 상이한 위치들에 저장될 상이한 유형들의 정보를 식별하는 단계를 더 포함하는, 방법.
  13. 제1항에 있어서,
    상기 요청된 콘텐트를 상기 네트워크 내 캐시에서 입수할 수 있는가의 여부를 판별하는 것은 상기 네트워크 내의 그리고 하나 이상의 추가 네트워크들을 포함하는 로컬 클라우드 내의 복수의 상이한 위치들에 상기 콘텐트가 저장되어 있는가의 여부를 판별하는 것을 포함하는, 방법.
  14. 삭제
  15. 제13항에 있어서,
    인터넷으로부터 콘텐트를 다운로드하기 이전에 상기 로컬 클라우드 내에서 미디어를 찾기 위해서 상기 네트워크를 크롤 (crawl)하는 단계를 더 포함하는, 방법.
  16. 제1항에 있어서,
    상기 캐시 내에서 유지하기 위해서 콘텐트의 유형들을 판별하기 위해 사용자마다의 선호도 (preference)들을 추적하는 단계를 더 포함하는, 방법.
  17. 제12항에 있어서,
    상기 캐시 내에서 유지하기 위해서 콘텐트의 상이한 유형들을 판별하기 위해 사용자마다의 선호도들을 추적하는 단계를 더 포함하는, 방법.
  18. 제17항에 있어서,
    상기 사용자마다의 선호도들에 따른 대응 기기로 콘텐트를 자동적으로 복사하는 단계를 더 포함하는, 방법.
  19. 제1항에 있어서,
    사용자들의 브라우징 습관들을 모니터링하고 그리고 미세 데이터 분석 (granular data analysis)을 제공하는 단계를 더 포함하는, 방법.
  20. 제1항에 있어서,
    상기 네트워크는 인-홈 (in-home) 네트워크로 구성된, 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 제1항에 있어서,
    상기 이동시키는 것은 상기 기기가 파워 다운될 때에 자동적으로 수행되는, 방법.
  35. 제1항에 있어서,
    상기 하나 이상의 기기들 각각은 요청된 콘텐트를 저장하는 다른 디바이스들과의 직접적인 통신에 의해 상기 요청된 콘텐트를 상기 캐시로부터 제공할 수 있는, 방법.
  36. 제1항에 있어서,
    상기 기기가 파워 다운될 때에 상기 인덱스를 자동적으로 업데이트하는 단계를 더 포함하는, 방법.
KR1020137030799A 2011-04-25 2012-04-25 네트워크 환경에서의 캐싱을 위한 방법 및 장치 KR101922607B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161478592P 2011-04-25 2011-04-25
US61/478,592 2011-04-25
PCT/US2012/035031 WO2012149043A2 (en) 2011-04-25 2012-04-25 Method and apparatus for caching in a networked environment

Publications (2)

Publication Number Publication Date
KR20140025480A KR20140025480A (ko) 2014-03-04
KR101922607B1 true KR101922607B1 (ko) 2018-11-27

Family

ID=47022123

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137030799A KR101922607B1 (ko) 2011-04-25 2012-04-25 네트워크 환경에서의 캐싱을 위한 방법 및 장치

Country Status (6)

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

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6234919B2 (ja) * 2011-04-25 2017-11-22 イカノス・コミュニケーションズ・インコーポレイテッドIkanos Communications,Inc. ネットワーク化環境においてキャッシュするための方法および装置
US9843603B2 (en) * 2012-10-16 2017-12-12 Dell Products, L.P. Techniques for dynamic access control of input/output devices
CN103064979A (zh) * 2013-01-15 2013-04-24 中兴通讯股份有限公司 一种路由器处理网页数据的方法以及路由器
CN103152653A (zh) * 2013-02-05 2013-06-12 东莞宇龙通信科技有限公司 流媒体文件播放的方法及其系统
JP6112894B2 (ja) * 2013-02-15 2017-04-12 三菱電機株式会社 コンテンツ配信システムおよびコンテンツ取得蓄積装置
US9929876B2 (en) * 2013-03-15 2018-03-27 Kortek Industries Pty Ltd Adaptable multi-mode wireless power, light and automation
CN105594177B (zh) 2013-06-06 2019-03-08 谷歌有限责任公司 用于呈现媒体内容的系统、方法以及介质
EP3123440B1 (en) * 2014-03-23 2018-12-26 Opanga Networks, Inc. Controlling the pre-delivery of content to a mobile device
KR101630640B1 (ko) * 2014-08-05 2016-06-15 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버
US20170041429A1 (en) * 2014-09-26 2017-02-09 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 (ja) * 2014-10-29 2018-09-05 富士通株式会社 機器管理中継装置、方法、およびプログラム
KR101888846B1 (ko) * 2015-05-07 2018-08-16 에스케이테크엑스 주식회사 클라우드 스트리밍 서비스 시스템, 리시프로컬 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN104965855A (zh) * 2015-05-29 2015-10-07 董遂武 一种提供网页服务的网页缓存管理系统
WO2017066953A1 (en) 2015-10-22 2017-04-27 Oracle International Corporation System and method for providing distributed caching in transactional processing environment
CN105516787B (zh) * 2015-12-09 2019-07-12 深圳Tcl数字技术有限公司 应用缓存数据的存储控制方法及装置
WO2017170161A1 (ja) * 2016-03-31 2017-10-05 京セラ株式会社 ネットワーク装置
US11716440B2 (en) * 2017-05-02 2023-08-01 Harman International Industries, Incorporated Portable hub with digital video recorder
JP6734830B2 (ja) * 2017-09-27 2020-08-05 Kddi株式会社 コンテンツ受信システム、通信装置及びプログラム
US10887161B1 (en) * 2017-10-16 2021-01-05 Wells Fargo Bank, N.A. Multi-device interface application
US11106756B2 (en) * 2019-06-14 2021-08-31 International Business Machines Corporation Enhanced browser tab management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004127189A (ja) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd ゲートウェイ装置、コンテンツ転送システム及びコンテンツ転送方法
JP2011511338A (ja) * 2007-12-26 2011-04-07 アルカテル−ルーセント 予測キャッシング型コンテンツ配信ネットワーク

Family Cites Families (30)

* 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
SE9700622D0 (sv) * 1997-02-21 1997-02-21 Ericsson Telefon Ab L M Anordning och metod vid datanät
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
JP2000155712A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ配送方法及び分散キャッシュ配送プログラムを記憶した媒体
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
US6807606B2 (en) * 2000-12-18 2004-10-19 International Business Machines Corp. Distributed execution coordination for web caching with dynamic content
US6961825B2 (en) * 2001-01-24 2005-11-01 Hewlett-Packard Development Company, L.P. Cache coherency mechanism using arbitration masks
US7146429B2 (en) * 2001-03-16 2006-12-05 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
JP3812727B2 (ja) * 2001-12-11 2006-08-23 日本電気株式会社 情報処理システム
US7509393B2 (en) * 2001-12-19 2009-03-24 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
KR100592654B1 (ko) * 2004-06-16 2006-06-26 주식회사 팬택 이동통신단말기의 웹페이지 제공장치 및 그 제공방법
US7937753B2 (en) * 2005-03-25 2011-05-03 Microsoft Corporation Method and apparatus for distributed information management
US7913250B2 (en) * 2005-11-16 2011-03-22 Microsoft Corporation Automated state migration while deploying an operating system
US8386744B2 (en) * 2007-10-01 2013-02-26 International Business Machines Corporation Thin provisioning migration and scrubbing
WO2009068952A2 (en) * 2007-11-30 2009-06-04 Telefonaktiebolaget L M Ericsson (Publ) Method, network, and node for distributing electronic content in a content distribution network
JP5176835B2 (ja) * 2008-09-29 2013-04-03 ブラザー工業株式会社 監視装置、情報処理装置、情報処理方法並びにプログラム
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
JP5532649B2 (ja) * 2009-03-27 2014-06-25 ブラザー工業株式会社 ノード装置、ノード処理プログラム及びコンテンツ保存方法
US20110040893A1 (en) * 2009-08-14 2011-02-17 Broadcom Corporation Distributed Internet caching via multiple node caching management
US8527647B2 (en) 2009-10-06 2013-09-03 Unwired Planet, Inc. Managing network traffic using intermediate flow control
US20110107030A1 (en) * 2009-10-29 2011-05-05 Simon Borst Self-organizing methodology for cache cooperation in video distribution networks
US8755394B2 (en) 2010-05-06 2014-06-17 Ikanos Communications, Inc. Gateway device for performing communication with various devices in home networks and wide area networks
US9384199B2 (en) * 2011-03-31 2016-07-05 Microsoft Technology Licensing, Llc Distributed file system
JP6234919B2 (ja) * 2011-04-25 2017-11-22 イカノス・コミュニケーションズ・インコーポレイテッドIkanos Communications,Inc. ネットワーク化環境においてキャッシュするための方法および装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004127189A (ja) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd ゲートウェイ装置、コンテンツ転送システム及びコンテンツ転送方法
JP2011511338A (ja) * 2007-12-26 2011-04-07 アルカテル−ルーセント 予測キャッシング型コンテンツ配信ネットワーク

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101922607B1 (ko) 네트워크 환경에서의 캐싱을 위한 방법 및 장치
US11659062B2 (en) Remote access of media items
US8037022B2 (en) Synchronizing content between content directory service and control point
US9690852B2 (en) Content management for packet-communicating devices
EP2088719B1 (en) Method and device for distributing file data
CN110336843B (zh) 一种用于众包的内容分发方法、中心节点及边缘节点
US8452775B2 (en) Accessing content items in a network based on device capability information
US20060168126A1 (en) Aggregated content listing for ad-hoc peer to peer networks
US20060041596A1 (en) Caching directory server data for controlling the disposition of multimedia data on a network
US20100031299A1 (en) Systems and methods for device dependent media content delivery in a local area network
US20150371010A1 (en) Multi-Media Authentication Infrastructure
KR20080081367A (ko) 휴대형 미디어 장치들에 대한 원격 콘텐트 갱신
CN102204192A (zh) 挂载网络附属存储nas设备的方法及数字媒体播放器dmp
KR20120112523A (ko) 전자기기 및 전자기기의 동작 방법
US10986197B2 (en) Content distribution systems and methods
JP5327032B2 (ja) 情報通信システム、ノード装置、情報通信方法及び情報通信プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant