KR101657196B1 - 캐시를 이용한 효율적인 미디어 배송 시스템 및 방법 - Google Patents
캐시를 이용한 효율적인 미디어 배송 시스템 및 방법 Download PDFInfo
- Publication number
- KR101657196B1 KR101657196B1 KR1020127014078A KR20127014078A KR101657196B1 KR 101657196 B1 KR101657196 B1 KR 101657196B1 KR 1020127014078 A KR1020127014078 A KR 1020127014078A KR 20127014078 A KR20127014078 A KR 20127014078A KR 101657196 B1 KR101657196 B1 KR 101657196B1
- Authority
- KR
- South Korea
- Prior art keywords
- media file
- media
- cache
- file
- bytes
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
인터넷 상에서 미디어 배송의 효율성을 향상시키기 위해, 원격 미디어 파이를 캐시화하고, 캐시화된 미디어 파일을 검색하는 시스템 및 방법으로서, 하드웨어 및 소프트웨어 모듈뿐만 아니라, 원격 미디어 파일을 캐시에 저장하고, 미디어 파일의 개별 부분만을 해쉬하여 생성된 서명에 기초하여 캐시화된 미디어 파일을 검색하는 단계를 포함한다. 여기서의 서명은 다른 인터넷 위치로부터 수신되어도, 동일 미디어 파일에 대한 다음의 연속 요청에 따라서 캐시에서 캐시화된 미디어 파일을 발견하기 위한 키이다. 미디어 파일은 다른 미디어 클라이언트의 특성에 적응될 수도 있으며, 적응된 미디어 파일은 동일하게 캐시화될 수도 있다.
Description
본 발명은 "캐시를 이용한 효율적인 미디어 배송 시스템 및 방법"이라는 명칭으로 2009년 12월 1일자 출원된 미국 가특허출원 제61/265,676호를 기초로 하며, 그 모든 내용은 여기에 참조로 포함된다.
본 발명은 미디어 파일의 배송에 관한 것으로, 보다 구체적으로는, 전자 파일을 비교하는 것을 포함하는, 캐시를 이용한 미디어 파일의 효율적인 배송 시스템 및 방법에 관한 것이다.
소위 사용자 생성 콘텐츠(UGC: User Generated Content)를 포함하는 미디어 파일은 휴대폰과 같은 사용자 장치를 포함하는 매우 다양한 타입의 터미널에서 생성될 수 있다. 미디어 파일은 또한 네트웍 서버상에 상주할 수도 있으며, UGC는 이러한 서버에 업로드될 수도 있다. UGC를 저장하는 네트웍 서버의 일예를 인터넷 상의 www.youtube.com에서 발견할 수 있다. 세계 거의 모든 장소로부터 휴대폰 또는 개인용 컴퓨터와 같은 최종 사용자 장치로 이러한 콘텐츠를 액세스할 수 있다. 이러한 콘텐츠를 유지하는 대중적 사이트에 액세스하는 것은 다량의 네트웍 및 서버 트래픽을 야기할 수 있다. 따라서, 서버 트래픽을 효율적으로 운반 또는 감소시킬 수 있는 방법 및 시스템의 개발이 필요하다.
본 발명의 목적은 캐시를 이용한 원격 미디어 파일의 효율적인 배송을 위한 시스템 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 전자 파일의 존재 여부를 판정하는 것을 포함하는 전자 파일 비교 방법 및 시스템을 제공하는 것이다.
상기 목적을 실현하기 위한 본 발명의 일 양태는, 캐시에 미디어 파일이 존재하는가의 여부를 판정하는 캐시 서비스 모듈로서, 상기 미디어 파일은 원격 미디어 소스에 저장된 원격 미디어 파일의 사본이며, 상기 캐시 서비스 모듈은:
프로세서에 의해 실행되는 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 구비하는 파일 분석 모듈을, 포함하고, 상기 컴퓨터 판독가능 명령은:
(i) 바이트의 각 범위가 원격 미디어 파일의 파일 사이즈 보다 짧은 조건하에서, 상기 원격 미디어 소스로부터, 상기 원격 미디어 파일의 파일 사이즈 및 상기 원격 미디어 파일의 시작과 연관된 각 옵셋에 있는 바이트들의 M(M > = 2)개 범위들을 획득하고;
(ii) 상기 M개 범위내의 상기 바이트들을 연결하여 바이트 스트링으로 형성하고;
(iii) 상기 바이트 스트링을 이용하여 상기 미디어 파일에 대한 서명을 생성하고;
(iv) 상기 미디어 파일에 대한 서명으로 상기 캐시에게 질의(interrogate)하며, 상기 캐시에서 상기 미디어 파일의 존재를 판정하도록 하는 명령이다.
캐시 서비스 모듈은 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 가지는 구성 테이블(configuration table)을 더 포함하고, 상기 구성 테이블은: M 값과, 각 범위마다 획득될 바이트들의 개수를 각각 규정하는 사전 결정된 파라메터를 저장한다. 상기 구성 테이블은 또한 상기 원격 미디어 파일의 파일 사이즈의 함수로서 각 옵셋들을 계산하는 사전 결정된 파라메터를 더 포함한다.
상기한 캐시 서비스 모듈에 있어서, 하기 조건들 중 하나 이상을 만족하는 것이 바람직하다: 바이트의 상기 범위들이 서로 중첩되지 않을 것; 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 작을 것: 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 상당히 작을 것; 또는 상기 옵셋들 중 하나가 0과 동등할 것.
본 발명의 실시예에 있어서, 상기 구성 테이블은 상기 미디어 파일을 위한 사전 결정된 임계치를 더 포함하고, 상기 캐시 서비스 모듈은: 미디어 클라이언트 장치로부터 미디어 파일에 대한 미디어 요청을 기록하기 위한 요청 로그 모듈과; 상기 요청 로그 모듈에 저장된 미디어 파일에 대한 요청들의 횟수를 상기 사전 결정된 임계치와 비교하는 비교기와; 상기 캐시에 미디어 파일이 존재하지 않고, 상기 사전 결정된 임계치를 초과하면, 상기 미디어 파일을 상기 캐시로 전송하는 캐시 인터페이스 모듈을 더 포함한다.
바람직하게, 서명을 생성하기 위한 컴퓨터 판독가능 명령은 상기 바이트 스트링을 미디어 키로 해쉬(hash)하기 위한 컴퓨터 판독가능 명령을 포함하며, 이때, 상기 미디어 키는 상기 미디어 파일에 대한 서명이다.
본 발명의 또 다른 양태에 따르면, 미디어 파일을 캐시화하기 위한 시스템이 제공되며, 이 시스템은:
(a)컴퓨터 판독 가능 저장 매체를 포함하고, 원격 미디어 소스에 저장된 원격 미디어 파일의 사본인 미디어 파일을 저장하기 위한 캐시와;
(b)프로세서와, 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 포함하며, 미디어 클라이언트 장치로부터 상기 미디어 파일에 대한 요청을 수신하기 위한 대역폭 최적화 서버와;
(c) 프로세서와, 상기 프로세서가 실행할 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 매체를 포함하는 캐시 서버를 포함하고,
상기 캐시 서버는: 상기 캐시에 미디어 파일이 존재하는가의 여부를 판정하는 캐시 서비스 모듈을 포함하고, 상기 캐시 서비스 모듈은 파일 분석 모듈을 포함하며,
상기 파일 분석 모듈은:
(i) 바이트의 각 범위가 원격 미디어 파일의 파일 사이즈보다 짧는 조건하에서, 상기 원격 미디어 소스로부터 상기 원격 미디어 파일의 파일 사이즈 및 상기 원격 미디어 파일의 시작과 연관된 각 옵셋에 있는 바이트들의 M(M>=2)개 범위들을 획득하고;
(ii) 상기 M개 범위내의 바이트들을 연결하여 바이트 스트링으로 형성하고;
(iii) 상기 바이트 스트링을 이용하여, 상기 미디어 파일에 대한 서명을 생성하고;
(iv) 상기 미디어 파일에 대한 서명으로 상기 캐시에게 질의(interrogating) 하며, 상기 캐시에서 상기 미디어 파일이 존재하는가의 여부를 판정하고;
(v) 상기 캐시에 상기 미디어 파일이 없으면, 상기 원격 미디어 소스로부터 통째로 상기 미디어 파일을 획득하고, 상기 서명과 함께 상기 캐시에 상기 미디어 파일을 저장한다.
본 발명의 시스템은 상기 원격 미디어 소스와 통신하기 위한 네트웍 인터페이스 모듈과; 상기 캐시로부터 상기 미디어 파일을 검색하며, 상기 대역폭 최적화 서버를 통해 상기 미디어 파일을 상기 미디어 클라이언트 장치로 전달하는 캐시 인터페이스 모듈을 더 포함한다. 상기 대역폭 최적화 서버는 상기 미디어 파일의 적응 버전(adapted version)을 생성하여, 그 적응 버전을 미디어 클라이언트 장치의 미디어 구조와 매칭시키는 미디어 트랜스코더(TRX) 모듈을 포함한다. 바람직하게, 미디어 클라이언트 장치로부터의 요청은 미디어 클라이언트 장치의 미디어 구조에 대한 정보를 포함한다.
상기 설명한 시스템에 있어서, 상기 캐시 서비스 모듈은 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 가진 구성 테이블을 더 포함하고, 상기 구성 테이블은 M 값과; 각 범위마다 획득될 바이트들의 개수를 각각 규정하는 사전 결정된 파라메터를 저장한다. 상기 구성 테이블은 원격 미디어 파일의 파일 사이즈에 기초하여 각 옵셋을 산출하는 사전 결정된 파라메터를 더 포함한다.
상기한 본 발명의 실시예에 따른 시스템에 있어서는, 다음 중 적어도 하나를 만족한다: 바이트들의 범위들이 서로 중첩하지 않을 것; 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 작을 것; 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 상당히 작을 것; 또는 상기 옵셋들 중 하나가 0과 같을 것.
상술한 시스템에 있어서, 상기 구성 테이블은 상기 미디어 파일에 대한 사전 결정된 임계치를 더 포함하고; 상기 캐시 서비스 모듈은: 미디어 클라이언트 장치로부터 미디어 파일에 대한 미디어 요청을 기록하기 위한 요청 로그 모듈과; 상기 요청 로그 모듈에 저장된 상기 미디어 파일에 대한 요청들의 횟수를 상기 사전 결정된 임계치와 비교하는 비교기와; 상기 캐시내에 상기 미디어 파일이 존재하지 않고, 상기 사전 결정된 임계치를 초과하면, 상기 미디어 파일을 상기 캐시에 전송하는 캐시 인터페이스 모듈을 더 포함한다.
상술한 시스템에 있어서, 상기 파일 분석 모듈은 상기 바이트 스트링을 상기 미디어 파일에 대한 서명인 미디어 키로 해쉬함에 의해 미디어 파일에 대한 서명을 판정하도록 구성된다.
본 발명의 또 다른 양태는 원격 미디어 소스에 저장된 원격 미디어 파일의 사본인 미디어 파일을 캐시화하기 위한 방법으로서, 그 방법은,
(a) 바이트의 각 범위는 상기 원격 미디어 파일의 파일 사이즈 보다 짧다는 조건에서, 상기 원격 미디어 소스로부터 상기 원격 미디어 파일의 파일 사이즈와, 원격 미디어 파일의 시작과 연관된 각 옵셋에 있는 바이트들의 M(M>=2)개 범위들을 획득하는 단계와;
(b) 상기 M개 범위내의 바이트들을 연결하여 바이트 스트링으로 형성하는 단계와;
(c) 상기 바이트 스트링을 이용하여, 상기 미디어 파일에 대한 서명을 생성하는 단계와;
(d) 상기 미디어 파일에 대한 서명으로 캐시에게 질의(interrogating) 하는 것을 포함하며, 상기 캐시에 미디어 파일이 존재하는가의 여부를 판정하는 단계와;
(e) 상기 캐시에 미디어 파일이 없으면, 원격 미디어 소스로부터 통째로 상기 미디어 파일을 획득하고, 상기 서명과 함께 상기 캐시에 상기 미디어 파일을 저장하는 단계를 포함한다.
상기 방법은 미디어 파일의 적응 버전을 생성하여, 상기 미디어 파일을 요청했던 미디어 클라이언트 장치의 미디어 구조와 상기 적응 버전을 매칭시키는 단계를 더 포함한다.
상기 방법은 상기 캐시로부터 미디어 파일을 검색하여, 미디어 파일을 미디어 클라이언트 장치에 전달하는 단계를 더 포함한다.
상기 방법에 있어서, 획득 단계는 M 값과; 구성 테이블로부터 각 범위마다 획득할 바이트들의 개수를 각각 규정하는 사전 결정된 파라메터를 획득하는 단계를 더 포함한다. 상기 획득 단계는 상기 구성 테이블로부터, 상기 원격 미디어 파일의 상기 파일 사이즈에 기초하여 각 옵셋을 산출하는 사전 결정된 파라메터를 획득하는 단계를 더 포함한다.
상기 본 발명의 실시예에 따른 방법에 있어서는, 다음 조건 중 최소한 하나를 만족한다: 상기 바이트의 범위들이 서로 중첩하지 않을 것; 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 작을 것; 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 상당히 작을 것; 또는 상기 옵셋들 중 하나가 0과 같을 것.
상술한 방법에 있어서, 상기 단계(e)는:
상기 요청 로그에 저장된 상기 미디어 파일에 대한 요청들의 횟수를 구성 테이블에 저장된 사전 결정된 임계치와 비교하는 단계와;
상기 사전 결정된 임계치를 초과하면, 상기 서명과 함께 상기 캐시에 상기 미디어 파일을 저장하는 단계를 포함한다.
그 방법은
(f)상기 미디어 파일의 적응 버전을 생성하여, 상기 미디어 파일을 요청했던 미디어 클라이언트 장치의 미디어 구조와 상기 적응 버전을 매칭시키는 단계와;
(g)요청 로그에 저장된, 상기 미디어 파일에 대한 요청들의 횟수를 구성 테이블에 저장된 사전 결정된 임계치와 비교하는 단계와;
(h)상기 사전 결정된 임계치를 초과하면, 상기 서명과 함께 상기 캐시에 미디어 파일의 적응 버전을 저장하는 단계를 더 포함한다.
상기 단계(f)는:
(i) 상기 요청 로그에서 요청 미디어 클라이언트 장치의 타입을 기록하는 단계와;
(j) 상기 요청 로그에 저장된 요청 미디어 클라이언트 장치로부터의 요청들의 횟수를 상기 구성 테이블에 저장된 사전 결정된 임계치와 비교하는 단계와;
(k) 상기 사전 결정된 임계치를 초과하면, 상기 미디어 파일의 적응 버전을 생성하는 단계를 더 포함한다.
상술한 방법에 있어서, 상기 적응 버전은 레이트 변환 버전(trans-rated version) 또는 코드 변환 버전(trans-coded version)이다.
상술한 방법에 있어서, 단계(c)는 상기 미디어 파일에 대한 서명인 미디어 키로 상기 바이트 스트링을 해쉬하는 단계를 더 포함한다.
따라서, 본 발명은 캐시를 사용하는 미디어 파일의 효율적인 배송 방법 및 시스템을 제공한다.
다음에, 본 발명의 실시예에 대하여 첨부도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일실시예로서, 대역폭 최적화 수단(106)을 포함하는 미디어 배송 시스템(100)의 블록도;
도 2은 도 1의 대역폭 최적화 수단(106)의 단순 확대 블록도;
도 3은 도 1의 미디어 배송 시스템의 부품들에서 실행되는 기능을 도시하는 기능 계통도(300);
도 4는 도 3의 "요청 최적화 처리"라는 기능 모듈(314)의 확대도;
도 5는 도 3의 "요청 최적화 처리"라는 기능 모듈(314)의 기능을 도시하는 플로우 차트(500);
도 6은 도 5에 있어서 "원격 미디어의 일 부분 페치"라는 스텝 502과 "일 부분들을 연결하여 스트링 'S'으로 형성"이라는 스텝 504, "서명 생성"이라는 스텝 506의 예시적인 세목을 설명한 플로우챠트(600).
도 1은 본 발명의 일실시예로서, 대역폭 최적화 수단(106)을 포함하는 미디어 배송 시스템(100)의 블록도;
도 2은 도 1의 대역폭 최적화 수단(106)의 단순 확대 블록도;
도 3은 도 1의 미디어 배송 시스템의 부품들에서 실행되는 기능을 도시하는 기능 계통도(300);
도 4는 도 3의 "요청 최적화 처리"라는 기능 모듈(314)의 확대도;
도 5는 도 3의 "요청 최적화 처리"라는 기능 모듈(314)의 기능을 도시하는 플로우 차트(500);
도 6은 도 5에 있어서 "원격 미디어의 일 부분 페치"라는 스텝 502과 "일 부분들을 연결하여 스트링 'S'으로 형성"이라는 스텝 504, "서명 생성"이라는 스텝 506의 예시적인 세목을 설명한 플로우챠트(600).
본 발명의 실시예는 미디어 배송 시스템 및 방법을 제공하는 것에 그 목적이있으며, 보다 구체적으로는 원격 서버로부터 미디어 콘텐츠를 다운로드 받기 원하는 최종 사용자 근처에 배치될 수 있는 효율적인 캐시 기구를 제공하는 것에 의해, 인터넷을 포함하는 네트웍을 통해 운송될 필요가 있는 트래픽의 양을 줄인다는데 그 초점을 두고 있다.
도 1은 본 발명의 일실시예에 따른 미디어 배송 시스템(100)의 블록도이다. 미디어 배송 시스템(100)은 미디어 클라이언트 장치(102); 하이퍼텍스트 전송 프로토콜 (HTTP : Hypertext Transfer Protocol) 프록시(104); 대역폭 최적화 (BWO:BandWidth Optimizing) 서버 컴퓨터(108), 캐시 서버 컴퓨터(110) 및 캐시 메모리(112)를 가지는 대역폭 최적화 수단(106); 인터넷(116)을 통해 캐시 서버(110)에 접속되는 미디어 소스(114)를 포함한다. 미디어 소스(114)는 전형적으로 원격으로 위치할 수 있으며, "원격 미디어 소스(114)"라고도 칭한다.
BWO 서버(108)는 예를들면, 컴퓨터 하드웨어 및 소프트웨어로 구성되는 장치로서, 예를들면, 프로세서 및 컴퓨터 판독가능 저장 매체를 갖는 범용 또는 전용 컴퓨터이며, 여기서, 컴퓨터 판독가능 저장매체는, 예를 들어, 컴퓨터 메모리, DVD, CD-ROM, 기타 다른 저장 매체로서, BWO 서버(108)의 동작과 관련된 기능을 수행하기 위해 프로세서에 의해 실행되는 컴퓨터 판독가능 명령이 저장된다.
캐시 서버(110)는 예를들면, 컴퓨터 하드웨어 및 소프트웨어로 구성되는 장치로서, 예를들면, 프로세서 및 컴퓨터 판독가능 저장 매체를 갖는 범용 또는 전용 컴퓨터이며, 여기서, 컴퓨터 판독가능 저장매체는, 예를 들어, 컴퓨터 메모리, DVD, CD-ROM, 기타 다른 저장 매체로서, 캐시 서버(110)의 동작과 관련된 기능들을 수행하기 위해 프로세서에 의해 실행되는 컴퓨터 판독가능 명령이 저장된다.
도 1에는 한 개의 미디어 클라이언트 장치(102) 만이 도시되어 있지만, 미디어 배송 시스템(100)이 다수의 인터넷 인에이블형 미디어 클라이언트 장치를 포함하거나, 그 장치에 서비스를 제공할 수 있으며, 이들 각각의 인터넷 인에이블형 미디어 클라이언트 장치는 논리적으로 미디어 클라이언트 장치(102)와 등가가 된다. 용어 " 미디어 클라이언트"는 예를들면, 개인용 컴퓨터 (PC: Personal Computer), PDA(Personal Digital Assistant), 스마트 폰, 휴대전화 등과 같은, 미디어 파일을 수신할 수 있는 임의 유형의 인터넷 인에이블형 클라이언트 장치를 대표하는 일반적인 용어를 의미한다.
유사하게, 인터넷(116)은 도 1에 단지 한 개의 원격 미디어 소스(114)만이 도시되어 있지만, 다수의 미디어 소스로는 여러 가지 사용자 생성 콘텐츠(UGC: User Generated Content) 서버를 포함하는 개인용 또는 공용 콘텐츠 서버 컴퓨터와 같은, 무수히 많은 미디어 소스(114)에 대해 액세스를 제공할 수 있다.
미디어 클라이언트 장치(102)는, 미디어 클라이언트 장치(102)와 HTTP 프록시(104) 사이의 링크(120); HTTP 프록시(104) 자체; HTTP 프록시(104)와 BWO 서버(108) 사이의 링크(122); 캐시 서버(110)와 통신하는 BWO 서버(108) 자체; 캐시 서버(110) 자체; 및 캐시 서버(110)와 미디어 소스(114) 사이의 링크(118)에 의해 미디어 소스(114)에 간접적으로 접속된다. 대역폭 최적화 수단(106)의 목적은 캐시 서버(110)에 연결된 캐시(112)에서 미디어 파일을 캐시화함에 의해 시간적으로 비용적으로 많은 손실이 발생할 수 있는, 링크(118) 상의 대역폭 사용을 절약하기 위한 것이다.
대역폭 최적화 수단(106)이 제공하는 또 다른 기능은 링크(122)에서와 같이 대역폭 제한을 가질 수 있는 링크(120)상의 미디어 전송 속도를 제어하고, 미디어 클라이언트 장치(102)의 기능을 매칭시키는 것이다. 바람직하게, 대역폭 최적화 수단(106)은 미디어 파일을 미디어 클라이언트 장치(102)의 장치 특성에 선택적으로 적응시킬 수도 있다.
대역폭 최적화 또는 대역폭 적응이 필요하지 않을 때, HTTP 프록시(104)는 대역폭 최적화 수단(106)을 바이패스하여, 링크(124)를 통해 인터넷(116)을 직접 액세스할 수도 있다.
도 2는 BWO 서버(108)를 포함하는 대역폭 최적화 수단(106)의 단순 확대 블록도로서, BWO 서버(108)는 URL(Universal Resource Locator) 리-라이터(Re-Writer) 모듈(206) 및 URL 포워더(Forwarder) 모듈(208)을 갖춘 BWO 게이트 웨이(204); 미디어 버퍼 모듈(210); 및 미디어 트랜스코더(TRX) 모듈(212)을 포함한다. 대역폭 최적화 수단(106)은 또한 캐시(112)를 포함하며, 이 캐시(112)에는 캐시 서버(110)가 연결되고, 캐시 서버(110)는 캐시 서비스 모듈(214)을 포함한다. 캐시 서비스 모듈(214)은 프로세서가 실행할 수 있는 컴퓨터 판독가능 명령을 저장한 컴퓨터 판독가능 매체를 포함하며, 미디어 소스(114)로부터 미디어 파일을 획득하는 프로세싱 작업을 수행하고, 미디어 파일을 저장 및 검색하는 캐시(112)와 통신하며, BWO 서버(108)로부터 미디어 요청을 수신하고, 캐시(112)로부터 검색된 미디어 파일을 BWO 서버(108)로 전송한다.
BWO 서버(108) 및 캐시 서버(110)는, 예를 들면, 하나 이상의 메모리 유니트(MEM)와 같은 컴퓨터 판독가능 저장매체와, 하나 이상의 중앙처리장치(CPU)를 포함하는 컴퓨터 하드웨어로 구현되며, 모듈(206-214)은 각각의 MEM과 같은 컴퓨터 판독가능 매체에 저장되고 각각의 CPU에서 실행되는 컴퓨터 판독가능 명령을 가진 소프트웨어 모듈이다. BWO 서버(108)와 캐시 서버(110)의 기능적 소프트웨어 모듈은 각 컴퓨터 판독가능 저장매체에 저장되고 각 CUP에서 실행되는 컴퓨터 판독가능 명령을 포함한다. 범용성을 상실하지 않으면서도, BWO 서버(108)와 캐시 서버(110)는 개별적인 컴퓨터, 또는 단일 컴퓨터로서 실현 가능하다. 캐시(112)는 하드웨어 부품들로서, 통상적으로 하드 디스크로 구현되거나, 또는 편리에 따라서, 캐시 메모리 부품 계층, 파일과 그 관련 파일 키를 저장하는데 유용한 종래 데이터 베이스 소프트웨어를 포함하는 기타 다른 저장 기법으로 구현될 수도 있다.
캐시 서비스 모듈(214)은 소프트웨어 모듈로서, 캐시 서버(110)의 컴퓨터 메모리, DVD, CD-ROM, 또는 기타 다른 저장매체와 같은 컴퓨터 판독가능 저장매체에 저장되는 컴퓨터 판독가능 명령을 가진다. 캐시 서비스 모듈(214)은 미디어 소스(114)와 BWO 서버(108)와 통신하는데 적합하며, 미디어 파일을 송수신하고, 캐시(112)에 미디어 파일을 저장할 뿐만 아니라 캐시(112)로부터 미디어 파일을 검색한다. 캐시 서비스 모듈(214)에는 또한 구성 테이블(216) 및 요청 로그 모듈(218)이 설치되며, 구성 테이블(216)은 소정의 프로그램 가능 파라메터를 구성하여(configurate) 캐싱(caching)을 제어하고, 요청 로그 모듈(218)에서는 미디어 요청의 세목(detail) 로그 된다. 또한, 캐시 서비스 모듈(214)은 파일 분석 모듈(220)을 포함하며, 이 파일 분석 모듈(220)은 원격 미디어 파일의 선택된 부분(바이트의 범위)을 수집하고, 원격 미디어 파일의 파일 서명(file signature)("미디어 키(222)"라고도 칭함)을 생성한다. 캐시 서비스 모듈(214)은 또한 비교기(224)를 더 포함하며, 이 비교기(224)는 요청 로그 모듈(218)에서 로그된 특정 미디어 파일에 대한 요청의 수와 구성 테이블(216)에 저장된 캐싱 임계치를 비교한다. 캐시 서비스 모듈(214)은 또한 캐시(112)와 통신하기 위한 캐시 인터페이스 모듈(226)과, 미디어 소스(114)와 통신하기 위한 네트웍 인터페이스 모듈(NW I/F)(228)도 포함한다.
미디어 배송 시스템(100)의 콘텍스트(context)를 제공하기 위해, 예시적인 시스템 동작을 먼저 전반적으로 설명한다.
미디어 클라이언트(102) 장치(도 1)가 미디어 소스(114)의 원격 미디어 파일을 요청할 경우, 그 요청 신호를 링크(120)를 통해 HTTP 프록시(104)에 송신하는데, 이 요청 신호에는 미디어 소스(114)를 타겟으로 하는 타겟 URL가 포함된다. 타겟 URL을 평가한 이후 HTTP 프록시(104)는 통상적으로 링크(124)를 통해 원격 미디어 파일을 직접 얻을 수 있다. 그러나, 원격 미디어가 최적화를 요구하는 것이 HTTP 프록시(104)에서 표시되면, 타겟 URL은 HTTP 프록시(104)에 의해 BWO 서버(108)내의 URL 리-라이트 모듈(206)로 전송될 수 있으며, URL 리-라이트 모듈(108)은 상징적 또는 그룹 URL일 수도 있는 타겟 URL을 리-라이트(re-write)하여 대역폭 최적화된 URL(BWO URL)로 변경한다. BWO URL은 대역폭 최적화 수단(106)의 어드레스를 포함하는 동시에, 미디어 소스(114)의 실질 URL과 미디어 소스(114) 상의 요청된 원격 미디어 파일의 완전한 통로를 파라메터 형태로 포함한다. BWO URL은 HTTP 프록시(104)를 통해 미디어 클라이어트(102)로 복귀하며, 미디어 클라이어트(102)는 이후 BWO URL을 이용하여 요청 신호를 재형성하고, 그것을 다시 전송한다.
도 1에 도시한 바와 같이, HTTP 프록시(104) 및 대역폭 최적화 수단(106)은 일반적으로 링크(122)에 의해 연결되는 2개의 개별적인 서브시스템으로서, 그러한 2개의 서브시스템은 서로 다른 물리적 장소에 위치하거나 또는 다른 상업적 엔티티에 의해 운영될 수 있다. 필요에 따라서, HTTP 프록시(104)의 기능이 BWO 서버(108)에 포함될 수도 있으며, 이 경우 상당히 단순화될 것이다.
BWO URL은 미디어 클라이언트(102)로부터 HTTP 프록시(104)로 전송되며, HTTP 프록시(104)로부터 다시 BWO 서버(108)의 URL 포워더 모듈(208)을 경유하여 캐시 서비스 모듈(214)로 전달된다. 하기 설명하는 본 발명의 진보적 방법에 의해 캐시 서비스 모듈(214)은 원격 미디어 파일의 사본이 캐시(112)에 이미 존재하는가의 여부를 판정하며, 판정결과 존재한다면, 캐시 서비스 모듈(214)은 캐시화된 원격 미디어 파일을 BWO 서버(108)의 미디어 버퍼 모듈(210), 링크(122), HTTP 프록시(104)를 경유하여 미디어 클라이언트(102)로 전송한다.
원격 미디어 파일 또는 그의 캐시화된 사본은 미디어 클라이언트(102)의 요건을 충족하도록 적합화 될 필요가 있으며, 이 경우 미디어 TRX 모듈(212)에게 필요한 적응 기능을 제공하도록 촉구하게 된다. 원격 미디어 파일의 적응 버전이 캐시에 이미 존재할 수도 있으며, 이 경우에는 미디어 TRX 모듈(212)이 바이패스된다. 적응 버전은 미디어 클라이언트(102)의 특정 장치 타입의 미디어 구조에 매칭시키기 위한 코드 변환 버전일 수도 있고, 또는 미디어 구조의 변경없이 비트 레이트를 감소시키도록 미디어가 단지 재암호화되었던, 단순한 레이트 변환 버전일 수도 있다.
예를들면, 공통 장치 타입에 대하여 미디어 구조를 열거하는 구성 테이블(216)에 포함된 소정 테이블을 통해, 미디어 클라이언트(102)로부터의 요청에 포함된 정보로부터 코드 변환(trans-coding)에 대한 미디어 구조를 추산할 수도 있다. 적응 버전 및 레이트 변환 버전에 대한 요청을 요청 로그(218)에서 로그 할 수도 있으며, 이 경우 요청에는 그 요청의 타겟 미디어 파일에 관한 정보 뿐만 아니라 요청한 미디어 클라이언트의 장치 타입에 관한 정보도 포함된다. 레이트 변환 버전 또는 코드 변환 버전이 소정 요청에 응답하여 생성되어야할 때를 판정하기 위해, 구성 테이블(216)에 저장된 임계치를 이용할 수 있다. 요청하는 장치 타입의 미디어 구조에 관한 완전한 정보를 이용할 수 없고, 그 장치에 대한 비트 레이트에 관한 한계만이 이용 가능할 경우, 레이트 변환 버전을 생성할 수 있다. 또한, 특정장치로부터의 특정 미디어 파일에 대한 요청과 관련된 임계치를 초과할 때에만 코드 변환 버전을 생성할 수 있다.
코드 변환 버전에서, 예를들면, 미디어의 프레임 레이트 또는 미디어의 X 및 Y 차원을 변화시켜 수신장치(미디어 클라이언트(102))를 수용하였다. "디지털 이미지의 트랜스코팅에서 파라메터의 퀄러티-어웨어 선택을 위한 시스템 및 방법"이이라는 명칭으로, 2008년 6월 30일 출원된, 스테판 코울롬브의 미국특허출원 제12/164,836호에는 미디어 파일을 트랜스코딩하는 한 실용적인 방법이 기재되어 있으며, 그 모든 내용을 본 명세서에 참조로 포함한다.
도 3은 미디어 클라이언트(102)에 의해 미디어 요청의 결과로서, 미디어 배송 시스템(100)의 부품들에서 실행된 예시적 기능 시퀀스를 도시하는 기능도(300)이다. 그 기능부들은 전형적인 경우의 실행 시퀀스를 나타내는 화살표로 연결되어 있다.
미디어 배송 시스템(100)의 부품들의 명칭은 도 3의 상부에 이탤릭체로 열거되어 있으며, 각 명칭들은 수직 대쉬 라인으로 구별되어 있다.
미디어 클라이언트(102)에서는 "클라이언트가 요청 생성" 이라는 기능(302)에서 먼저 시퀀스가 시작된다. HTTP 프록시(104)에서는 "초기 요청 처리"라는 기능(304)에서 초기 타겟 URL을 포함하는 요청이 수신되고 처리된다.
이 요청이 최적화되어야 한다고 결정하면, HTTP 프록시(104)는 이 요청을 BWO 서버(108)로 전달하며, BWO 서버(108)에서는 URL 리-라이터 모듈(206)에 의해 "초기 요청 재지향"이라는 기능(306)에서 초기 타겟 URL이 리-라이트된다. 여기서 초기 타겟 URL은 BWO URL로 변환된다.
그러면, BWO URL와 함께 "재지향(REDIRECT)"을 표시하는 리턴 코드"303"이 HTTP 프록시(104)로 복귀하며, HTTP 프록시(104)에서는 리턴 코드 "303"와 함께 BWO URL이 "리턴 303, URL"이라는 프로토콜 기능(308)에서 프로토콜 데이터로 재 패키지화되어 미디어 클라이언트(102)로 되 전송된다.
HTTP 프록시(104)와 BWO 서버(108) 간의 트래픽은 도 3에 도시한 바와같이, BWO 서버(108)에 있어서 URL 재기입을 포함할 수도 있다. 이와는 달리, 미디어 클라이언트(102)로부터 초기 요청은 또한 HTTP 프록시(104)에 의해 BWO 서버(108)로 투명하게 프록시될 수도 있으며(즉, BWO URL로 대체하여), 이 경우, BWO 서버(108)의 URL 리-라이터 모듈(206)은 관여하지 않는다.
미디어 클라이언트(102)는 타겟 URL을 포함하는 초기 요청(클라이언트 생성 요청)을 전송하며, 여기서 타겟 URL은 인터넷내의 미디어 파일을 타겟화한다. 도메인 URL을 URL 리-라이터 모듈(206)로 전송해야 만 하거나, 직접적으로 투명하게 BWO 서버(108)로 전달할 것인가를 결정하기 위한 규칙을 HTTP 프록시(104)가 제공받는다. HTTP 프록시 함수는 또한 본 발명의 범위를 넘는 다른 기능을 포함할 수도 있다. 미디어 클라이언트(102)와의 통신은 통상적으로는 HTTP와 함께 이루어지지만, HTTP 프록시(104)와 BWO 서버(108) 간의 통신은 또한 ICAP(Internet Content Adaptation Protocol)에 기초할 수 있으며, 여기서 ICAP는 프록시/서버 대화(Proxy/Server Interaction)을 위해 고안되고, IETE(Internet Engineering Task Force)의 코멘트를 위한 권고(RFC: Recommendation For Comment)3507에 명시된 경향 HTTP 기반 프로토콜이다.
따라서, 도 3에 도시한 바와 같이, BWO 서버(108)는 기능(306)(초기 요청 재지향)에서, 직접 전달된 요청을 처리하거나 BWO URL을 생성하기 위한 ICAP 서버를 구현할 수도 있다. BWO 서버(108)에서, 초기 타겟 URL을 포함하는 ICAP 캡슐형 초기 요청을 분석한다. 공개된 URL 또는 그룹 URL과 같은 초기 타겟 URL을 또한 해석하여 요청된 미디어를 제공할 수 있는 서비스 또는 장치의 실질 URL을 검색할 수도 있다. 이 실질 URL은 BWO URL로 변환되고, HTTP 재지향 명령은 HTTP 프록시(104)로 복귀되며, 이 HTTP 프록시(104)는 프로토콜 기능(308)(리턴 303, URL)을 사용하여 BWO URL을 미디어 클라이언트(102)로 복귀시킨다.
여기서 간략하게 설명하는 ICAP를 이용하는 방법은 단지 HTTP 프록시(104)와 BWO 서버(108) 간의 통신을 위한 예시일 뿐이며, 단순한 투명 프록싱(transparent proxying)과 같은 다른 방법을 사용할 수도 있다.
"신규 URL 전달"이라는 재-요청 기능(310)에서 미디어 클라이언트(102)는 재지향 명령을 인식하고, BWO URL을 사용하여, "최적화된" 요청을 BWO 서버(108)로 전송하는데, 최적화된 요청은 미디어 소스(114) 상에서 미디어 파일을 가리키는 실질 URL을 파라메타로서 포함한다.
도 4에는 미디어 클라이언트(102), HTTP 프록시(104), BWO 서버(108) 사이의 예시적인 대화(400)의 스텝들을 설명한 요약 플로우차트가 도시되며, 다음 스텝을 포함한다:
402 "클라이언트가 초기 요청을 전송";
404 "프록시가 초기 요청을 수신";
406 "요청 분석";
408 "최적화 필요?";
410 "초기 요청에 규칙 세트를 적용";
412 "초기 URL을 BWO URL로 변경";
414 "코드 303과 BWO URL을 클라이언트로 전송";
416 "클라이언트가 BWO 요청 전송";
418 "프록시가 BWO 요청 수신";
420 "BWO 요청을 캐시 서버로 통과시킴";
422 "인터넷 목적지에 요청 전달".
"클라이언트가 초기 요청을 전송"이라는 스텝 402에서, 미디어 클라이언트(102)는 미디어 파일에 대한 초기 요청을 HTTP 프록시(104)로 전송한다.
"프록시가 초기 요청을 수신" 이라는 스텝 404에서, HTTP 프록시(104)는 미디어 클라이언트(102)로부터 초기 요청을 수신한다.
"요청 분석" 이라는 스텝 406에서, HTTP 프록시(104)는 그 요청에 포함된 URL을 분석하여 미디어 소스(114)의 올바른 URL과, 요청된 원격 미디어 파일에 대한 통로를 판정한다.
"최적화 필요?" 라는 스텝 408에서, HTTP 프록시(104)는 그 요청의 URL이 최적화가 필요할 수 있는 미디어 파일을 지칭하는가를 판정한다.
최적화가 필요하지 않으면(스텝 408에서 "N"), "인터넷 목적지에 요청 전달" 이라는 스텝 422로 진행하고, 그렇지 않을 경우(스텝 48에서 "Y), "초기 요청에 규칙 세트를 적용"이라는 스텝 410으로 진행한다.
"최적화 필요?" 라는 스텝 408은 다른 타입의 트래픽을 위한 요청을 여과하며, 여기의 다른 타입의 요청은 BW 최적화수단(106)에 의해 최적화할 수 없는 미디어 요청을 포함한다. 이러한 요청은 "인터넷 목적지에 요청 전달" 이라는 스텝 422에서 링크(124)(도 1)를 통해 요청된 인터넷 목적지로 직접 전달되며, 그에 의해 BW 최적화수단(106)을 바이패스한다.
"초기 요청에 규칙 세트를 적용" 이라는 스텝 410에서, 구성된 규칙 세트를 초기 요청의 URL에 대해 적용한다. 이 프로세스는 앞에서 설명한 BWO URL을 생성한다.
"초기 URL을 BWO URL로 변경"이라는 스텝 412에서, 재지향 메시지를 생성하며, 여기서 초기 타겟 URL은 BWO URL로 교체된다.
도 3에 도시한 바와 같이, 스텝 410 및 412는 BWO 서버(108)의 기능(306)(초기 요청의 재지향)에서 수행되는 것이 바람직하다. 이와는 달리, 기능(306)은 HTTP 프록시(104)에 위치할 수도 있다.
"코드 303과 BWO URL을 클라이언트로 전송"이라는 스텝 414에서, URL 재지향 코드 (303)와 BWO URL을 포함하는 재지향 메시지가 미디어 클라이언트(102)로 전송된다.
"클라이언트가 BWO 요청 전송"이라는 스텝 416에서, 미디어 클라이언트(102)는 초기 요청의 URL을 BWO URL로 교체하여 대역폭 최적화된(BWO: BandWidth Optimized) 요청인, 변경 요청을 생성하고, 이 BWO 요청을 HTTP 프록시(104)로 전송한다.
"프록시가 BWO 요청 수신" 이라는 스텝 418에서, HTTP 프록시(104)는 BWO 요청을 수신하여, 그것을 BWO 서버(108)로 직접 통과시킨다.
"BWO 요청을 캐시 서버로 전달" 이라는 스텝 420에서, BWO 서버(108)는 BWO 요청을 직접 캐시 서버(110)로 전달하며, 이 캐시 서버에서 실질적 최적화가 발생한다(도 5 및 하기 참조).
일예로서, 단순 플로우는 다음과 같다:
-미디어 클라이언트(102)가 HTTP GET 요청을 URL http://lscache6.youtube.com/videoplayback 로 전송한다 (스텝 402);
- HTTP 프록시(104)는 요청을 수신하고, 구성된 규칙 세트를 요청 URL에 대해 적용한다(스텝 410);
- 유튜브 비디오 요청을 위한 규칙 세트가 요청 URL과 매칭(match)되는 *youtube.com/videoplayback* 형식의 정규 표현으로서 표시된다.
-HTTP 프록시(104)는 미디어 클라이언트(102)로 HTTP 303 재지향 응답을 전송하며(스텝 414), 이 경우 대역폭 최적화 수단 (BWO서버 108) 을 지적하는 위치 헤더(location header)와 이어서 초기 URL, 예를들면 http://optmizer.vatrix.com/?url=ls6ache.youtube.com%2Fvideoplayback. 을 포함하는 파라메터가 뒤따라 온다.
기능이라는 견지에서, BWO 서버(108)의 URL 포워더(208)는 "패스" 라는 기능(312)에서 최적화되고 재지향된 요청을 수신하여, "요청 최적화 처리"라는 기능 모듈(314)에서의 처리를 위해 캐시 서버(110)의 캐시 서비스 모듈(214)로 수신된 요청을 전달한다.
도 3은 추가의 기능 모듈을 도시한다:
316 "부분적 미디어 리턴"
318 "완전한 미디어 리턴"
320 "캐시로 미디어 전송"
322 "캐시화된 미디어 플레이"
324 "미디어 버퍼링"
326 "미디어 적응"
328 "클라이언트가 미디어 소비"
이들 기능 모듈들은 다음과 같이 도 5를 이용하여 "요청 최적화 처리"라는 기능 모듈(314)을 설명하면, 더욱 이해가 쉬어진다.
도 5는 "요청 최적화 처리"라는 기능 모듈(314)의 기능을 도시하는 플로우 차트로서, 요청된 미디어의 캐시화된 버전이 존재할 경우 그 버전을 얻기 위한 하이 레벨 스텝과, 이와는 다른 경우 원격 파일을 얻어 캐시화하는 스텝을 나타내며, 이들 스텝은 다음과 같다:
502 "원격 미디어의 일부분들을 페치";
504 "그 부분들을 연결하여 스트링 'S'으로 형성";
506 "서명을 생성";
508 "미디어가 캐시에 존재?";
510 "완전한 미디어 파일을 페치";
512 "적응 버전이 캐시에 존재?";
514 "버전 선택";
516 "캐시화될 미디어 존재?";
518 "미디어를 캐시화";
520 "미디어를 적응화";
522 "캐시화될 적응 버전 존재?";
524 "적응 버전을 캐시화".
"원격 미디어의 일부분들을 페치"라는 스텝 502에서, 캐시 서비스 모듈(214)은 BWO 요청(라벨 "A")을 수신하고, 미디어 소스(114)와 통신하여(라벨 "B) BWO 요청에서 식별된 원격 미디어 파일의 선택된 부분을 얻는다. 선택된 부분은 미디어 소스(114)의 "부분적 미디어 리턴" 이라는 기능(316)에 의해 원격 미디어 파일로부터 추출되고, "요청 최적화 처리"라는 기능 모듈(314)로 전송되며 "일부분들을 연결하여 스트링 'S'으로 형성" 이라는 스텝 504에서 수신되어 처리된다.
"원격 미디어의 일부분들을 페치" 라는 스텝 502의 검색 프로세스는 HTTP 클라이언트(즉 캐시 서버 110)가 원격 파일의 사이즈(콘텐츠 길이 CL)를 판정할 수 있게 하는 범위 헤더를 포함하는 일련의 HTTP GET 요청을 사용하며, HTTP 서버(미디어 소스 114)로부터 특정 범위의 바이트들을 요청한다. 응답은 요청된 바이트만을 포함하는 동시에, 원격 미디어 파일의 전체 길이를 표시하는 콘텐츠 길이 헤더를 포함한다.
"원격 미디어의 일부분들을 페치"라는 스텝 502는 다음과 같이 단순한 플로우로서 요약될 수도 있다:
- 미디어 파일의 시작에서 초기 범위의 바이트들에 대한 제1 요청을 전송:
- 바이트를 검색하고 응답 헤더를 처리하여 콘텐츠 길이 헤더를 획득;
- 구성 및 콘텐츠 길이 "CL"에 기초하여 요청에 대한 바이트의 후속 범위를 범위를 판정;
- 선택된 파일 부분의 모든 필요한 바이트가 검색될 때까지 후속하는 바이트 범위 요청을 수행.
도 6은 "원격 미디어의 일부분들을 페치"라는 스텝 502, "일부분들을 연결하여 스트링 'S'으로 형성"이라는 스텝 504, "서명을 생성"이라는 스텝 506의 상세를 일예로서 예시하는 플로우 차트(600)를 도시하며, 그 스텝들은 다음과 같다:
602: "제1 요청 전송";
604: "응답분석: 콘텐츠 길이 획득";
606: 'M'개의 후속 요청을 위한 범위 및 옵셋을 판정";
608: " 'i':= 1 설정; N 0 바이트와 함께 'S' 로딩";
610: "다음 요청 전송(범위 Ri)";
612: 수신된 Ni 바이트를 연결하여 'S'로 형성";
614: "'i'가 'M'보다 작은가";
616: "'i'를 증가"
618: "미디어 키: = 해쉬('S')"
라벨 (A)로 진입하여 "제1 요청 전송"이라는 스텝 602(도 3 및 도 5 참조)에서, 제1 HTTP GET 요청이 미디어 소스(114)로 전송되고, 콘텐츠 길이(전체 원격 미디어 파일의 사이즈)와, 선택적으로 원격 미디어 파일의 시작으로부터 (범위=0 내지 N0-1) 제1범위의 NO 바이트를 요청한다. N0의 값은 고정된 값일 수 있고, 구성 테이블(216)로부터 얻어질 수도 있다. 제1 GET 요청과 다음 GET 요청은 (B) 라벨로 표시된다(역시, 도 3 및 도 5 참조).
"응답분석: 콘텐츠 길이 획득" 이라는 스텝 604에서, 제1 HTTP GET 요청에 대한 응답, 즉 부분 응답 메시지를 수신하여 분석한다. 여기에는 파일의 사이즈를 표시하는 콘텐츠 길이가 포함되며, 요청에 따라서 제 1 범위의 N0 바이트들도 포함될 수 있다. 이번 응답 메시지와 다음 응답 메시지는 (C)로 라벨이 되어 있다(역시 도 3 및 도 5 참조).
"'M'개의 후속 요청을 위한 범위 및 옵셋을 판정" 이라는 스텝 606에서, 구성된 사전 결정된 파라메터를 기초로 다음 요청의 수와 그들의 바이트 범위가 판정된다. 범위들의 개수, 각 범위의 사이즈, 원격 파일 내의 각 범위의 위치를 판정하기 위한 규칙을 결정하는 사전 결정된 파라메타는 구성 테이블(216)내에 규정되는 것이 바람직하다. 예를들면, (스텝 602에서 제1 요청의) 옵셋 0에 있는 N0 바이트의 제1범위에 추가하여, 사전 결정된 후속 범위의 수 "M"이 규정될 수도 있으며, 그러한 후속 범위 각각은 "Ni" 바이트의 길이를 가지며, 그 파일에 있어서 소정의 옵셋에서 시작한다. 이와는 달리 바이트의 제1범위와 (후속하는) 바이트 범위의 수"M"을 함께 조합하여 범위의 단일 수 "M"으로 될 수도 있다. 즉, "M"이 옵셋 0 에서의 제1범위도 포함하는 전체 범위를 포함할 수도 있다. N0 바이트의 제1범위가 별도로 규정된 이유는 최소한 콘텐츠 길이를 얻기 위해서는 제1 요청(스텝 602)이 필요하기 때문이며, 그러나, 동시에 파일의 시작으로부터 소정 범위의 바이트를 선택적으로 획득할 수 있다(이하 내용 참조).
옵셋은 원격 미디어 파일의 콘텐츠 길이(CL)의 비율 "Fi"(i = 1 내지 M)로서 규정될 수도 있다. 따라서, 후속 범위의 위치는 Ri = [CL*Fi...CL*Fi + Ni - 1]로서 연산될 수도 있다. 후속 요청의 파일 위치를 판정하는 다른 방법도 또한 가능하며, 예를들면, 보다 작거나 큰 횟수의 후속 요청이 실질 콘텐츠의 길이에 의존하여 역동적으로 정의될 수 있다. 개별적인 후속 범위를 위해 선택된 사이즈는 가변적일 수 있으며, 즉, 연속하는 범위에서 바이트의 변수 "Ni"가 규정될 수도 있고, 고정된 수의 N바이트가 각각의 범위에 대해 규정될 수도 있다. 범위를 판정하기 위한 다른 규칙을 본 발명의 범위 내에서 쉽게 생각해낼 수 있음을 이해할 수 있을 것이다.
그 바이트의 범위들은 사실상 완전한 원격 미디어 파일의 바이트로부터의 이산 표본(discrete sample)으로 구성된다. 원격 미디어 소스(114)에 대한 네트웍 트래픽을 상당히 줄이기 위해서는 모든 "M"범위의 바이트"Ni"들의 개수와 제1범위의 N0 바이트의 합이 전체적으로 완전한 원격 미디어 파일의 바이트의 수 보다 작은 것이 바람직하며, 더욱 바람직게는, 예를들면 1% 미만과 같이 상당히 작아야 한다. 그럼에도 불구하고, 원격 미디어 파일이 짧으면, 선택된 범위가 실질적으로 중첩될 수 있다. 그러나, 정상적으로는 원격 미디어 파일의 사이즈는 모든 선택 범위내의 바이트 수 보다 훨씬 크며, 옵셋 요소에 의해 그 범위들이 파일의 길이에 걸쳐 고르게 분산되게 하며, 바람직하게는 중첩이 발생하지 않게 한다.
다음은 구성 테이블(216)에 저장된 구성 파라메터 세트를 나타내는 매우 단순한 일예이다: N0 = 256, M =3, N(고정) = 1024, 및 Fi = 1/4, 1/2 및 3/4, 단 i = 1 내지 3. 이러한 배열과 함께, 최소한 4096 바이트 길이로 된 임의 미디어 파일은 후속하는 연결(스텝 612)과 해싱(스텝 618)에 대한 중첩 없이 전체적으로 256 + 3 * 1024 = 3328 바이트가 되는 4개의 대표적인 범위를 생성한다. 동일한 파라메터로, 1메가 바이트의 전형적인 미디어 파일은 그 미디어 파일의 사이즈의 0.33% 가 되는 범위의 세트를 생성하며, 이 경우 전체 파일을 다운로드 하는 것에 비해, 네트웍 트래픽이 300배 감소하게 된다.
범위의 수 "M", 이들의 개별 길이 "Ni"(i= 0 내지 M) 및 비율 "Fi"로 주어진 원격 미디어 파일내의 위치에 관한 실질적인 예시가 제공되었지만, 이들 값은 구성 테이블 216을 통해 프로그램될 수 있고, 다른 값이 선택될 수도 있음을 이해할 수 있을 것이다.
" 'i':= 1 설정; N 0 바이트와 함께 'S' 로딩"이라는 스텝 608에서 스트링 "S"는 제1 요청에 응답하여 수신된 선택적 N0 바이트와 함께 로딩되고, 인텍스 변수 "i"가 1로 설정된다.
스텝 610 내지 616은 "M"개 후속 요청 전송 및 응답 처리를 위한 루프를 구성한다. 여기서 루프 구축을 이용하면 "M"이 쉽게 역동적으로 또는 구성에 의해 변형되는 것을 가능하게 한다.
"다음 요청 전송(범위 Ri)" 이라는 스텝 610에서, Ni 바이트를 포함하는 범위 Ri를 요청하는 HTTP GET 요청이 미디어 소스(114)로 전송된다.
"수신된 Ni 바이트를 연결하여 'S'로 형성" 이라는 스텝 612에서, 미디어 소스(114)로부터의 응답에서 수신된 Ni 바이트가 스트링 "S"와 연결된다.
" 'i'가 'M'보다 작은가" 라는 스텝 614에서, 인덱스 변수" i" 를 후속 요청의 이전에 판정된 수 "M"과 비교한다. 모든 "M"개의 후속 범위가 수신되었으면(스텝 614로부터 출구 "N"), 루프를 빠져나와, 다음에 "미디어 키: = 해쉬('S')" 라는 스텝 618으로 진행한다. 그렇지 않을 경우에는 "'i'를 증가" 라는 스텝 616 으로 진행하여 루프를 계속한다. 스텝 616에서는 인덱스 변수 "i"가 증가되고, 그 루프는 "다음 요청 전송(범위 Ri)" 이라는 스텝 610에 재진입한다.
"미디어 키: = 해쉬('S')" 라는 스텝 618에서, 지금 제1요청으로부터의 N0 바이트와 모든 "M" 영역들로부터의 축적된 바이트를 현재까지 포함하는 스트링 "S"는 미디어 키(222)로 해쉬된다.
전체 파일로부터 도출된 서명(signature) 대신에 단지 작은 세그멘트들, 즉, 미디어 파일의 한정된 범위 또는 하위범위의 바이트들로부터 해쉬화된 파일 서명(미디어 키)를 획득하고자 하는 이유는 다음과 같다.
BWO URL은 원격 미디어 파일을 식별한다. 미디어 소스(114)에 대한 트래픽을 감소시키는데 2가지 요소가 중요하다. 원격 미디어 파일은 대용량 일 수 있고, 미디어 소스(114)는 대역폭 최적화 수단(106) 및 미디어 클라이언트(102)로부터 특정하고도, 가능성으로 볼 때 상당한 기하학적 거리를 두고 위치할 수도 있다. 본 발명의 전반적인 목적은 완전한 파일이 캐시(112)에 이미 존재한다면, 미디어 소스(14)로부터 그 완전한 파일을 검색하는 것을 피하고자 하는 것이다. 파일이 이미 다운로드 되었거나, 캐시화 되었을 경우, BWO URL이 URL로부터 변경되었을 수도 있으며, 또는 원격 미디어 파일의 다수의 사본이 다른 URL 하에서 존재할 수도 있기 때문에, 캐시 서버(110)는 원격 미디어 파일의 캐시화된 버전이 캐시에 이미 존재하는 가의 여부를 판정하기 위해 BWO URL과 캐시화된 URL을 비교하는 것에 의존할 수 없다.
본 발명의 실시예에 따르면, 이러한 문제를 해소하기 위해, 미디어 소스(114)로부터 원격 미디어 파일의 정의된 개수의 작은 부분들로부터 오로지 바이트의 대표 스트링 "S"만을 캐시 서버(110)가 초기에 획득하며, 이에 대한 것은 앞에 이미 설명한 바 있다.
다시 도 5를 참조하여 설명한다.
앞에 설명한 바와 같이, "서명을 생성" 이라는 스텝 506에서, 캐시에 이미 존재하는 파일 서명과의 비교를 위해, 캐시 서버(110)는 스트링 "S"를 "미디어 키"라고 하는 파일 서명으로 해쉬화한다. 그 서명은 캐시내로의 파일 키로도 사용되며, 이것은 종래의 데이터베이스의 원리에 따라서 구축될 수도 있다. 캐시에서 파일 키가 발견되면, 이것은 원격 미디어 파일(의 사본)이 캐시에 저장된 것을 암시한다.
스텝 502 내지 524는 BWO 서버(108)와 캐시 서버(110)의 모듈에서 수행된다. 즉, 스텝 502, 504, 506, 524는 캐시 서비스 모듈(214)의 파일 분석 모듈(220)에서 수행되어, 그에 따라서 미디어 키(222)를 생성한다. 스텝 508, 510, 518, 524는 캐시 인터페이스 모듈(226)과 연관된다. 스텝 520은 BWO 서버(108)의 미디어 TRX 모듈(212)에서 수행된다. 스텝 516, 522는 캐시 서비스 모듈(214)의 비교기(224)에서 수행되고, 스텝 502, 504, 510은 네트웍 인터페이스 모듈(228)의 사용을 수반한다.
콘텐츠의 해쉬에 기초한 캐시화 방법이 100% 완벽한 것이 아니며, 다른 콘텐츠가 동일 서명으로 해쉬화되어 캐시로부터 잘못된 파일을 검색하는 결과를 초래할 수 있는 작은 가능성이 존재한다는 사실은 이미 공지되어 있다. 이러한 위정(false positive)의 가능성은 해쉬 함수의 선택 및 해쉬화된 서명의 비트 사이즈에 의해 극히 사라질 정도로 줄어들 수 있다. 본 경우에 있어서, 서명으로 해쉬화하기 위해 선택되는 미디어 파일의 일부의 특성과 사이즈와 같은 추가의 변수가 존재한다. 그 서명이 다른 파일과 매칭(match)되기 때문에, 캐시로부터 잘못된 파일을 검색하게 되는 오류확률을 극히 소멸할 정도로 작게 하기 위해, 본 발명자들은, 예를 들면, 파일의 시작으로부터의 세그먼트만을 이용하는 대신에 파일내의 사전 정의된 별개의 바이트 범위인 다수의 위치로부터 바이트 세그먼트의 검색을 사용할 것을 제안한다. 시작 세그먼트만을 사용하는 것은 예를들면 영화 파일에서는 높은 레벨의 위정(false positive)을 초래할 수 있는데, 그 이유는 동일 영화 제작자로부터의 모든 영화들은 동일 도입부로 시작할 수 있기 때문이다. 본 발명의 실시예에 따른 프로토타입 시스템은 파일의 25% 위치, 50% 위치, 75% 위치에 있는 3개의 검색 포인트를 이용하여 성공적으로 평가되었다.
"서명을 생성" 이라는 스텝 506에서 원격 미디어 파일의 일부분을 해쉬화함에 의해 서명을 생성하는, 여기서 원격 미디어 파일의 일부분은 미디어 소스(114)에 의해 전송된 것으로서, 스텝 502에서 검색된 개별 범위의 바이트들로부터 연결되고, 캐시 서버(110)의 메모리에 저장된 스트링 "S"의 바이트 시퀀스이다. 메시지 다이제스트 알고리즘 번호 5(MD5)는 128비트 해쉬 값을 생성하기 위해 널리 사용되는 암호화 해쉬 함수로서, 128 비트 해쉬 값은 본 발명의 실시예에서 미디어 파일에 대한 서명이라고 지칭한 파일 서명으로서 사용된 것이다. MD5는 IETF(Internet Engineering Task Force)의 RFC(Recommendation For Comment) 1321에 규정되어 있다. MD5는 스텝 506을 구현하기 위한 유효 암호화 해쉬 함수이다. 이와는 달리, 충분히 필요한 기능을 한다면 다른 암호화 해쉬 함수를 사용할 수도 있다. 다양한 복합성과 효율을 갖는 적절한 암호화 해쉬 함수의 리스트는 사이트 <http://en.wikipedia.org/wiki/Cryptographic_hash_function> 에서 테이블로 제공되고 있으며, 그 테이블에는, 통상적으로 "GOST", "HAVAL", "PANAMA", "SHA-0" 등으로 알려진 해쉬 함수가 포함되어 있다.
"미디어가 캐시에 존재?" 라는 스텝 508에서, 캐시(112)가 액세스 되고 서명 또는 미디어 키로 질의(interrogate)를 받아 요청된 원격 미디어 파일이 캐시(112)에 존재하는가의 여부를 판정한다.
캐시(112)에서 미디어가 발견되지 않으면(스텝 508에서 "N"로 빠져나옴), "발견안됨"의 리턴 코드가 캐시(112)로부터 캐시 서버(108)로 되돌아가며, 캐시 서버(108)는 이 경우 "완전한 미디어 파일을 페치"라는 스텝 510으로 진행하여 미디어 소스(114)로부터 완전한 원격 미디어 파일을 페치한다(라벨 "E"). 미디어 소스(114)의 "완전한 미디어 리턴"이라는 기능(318)에 의해 완전한 원격 미디어 파일이 전송되어(라벨"F"), 캐시 서버(108)에서 수신한 이후, 이 완전한 원격 미디어 파일은 BWO 서버(108)로 전달된다.
"캐시화될 미디어 존재?" 라는 스텝 516에서, 캐시 서버(108)의 구성 테이블(216)을 참조하여 미디어가 캐시화되어야 하는지를 판정한다. 구성 테이블(216)은 검색된 완전한 원격 미디어 파일이 캐시화되어야 하는지를 판정하기 위해 프로그램 가능 규칙을 포함한다. 예를 들면, 캐시화를 위한 규칙은 캐시 서버(108)의 요청 로그(218)에서 모든 미디어 요청을 로그하고, 그 요청 레이트가 충분히 높을 때에만, 즉 특정 임계치에 도달할 때에만 원격 미디어 파일을 캐시화하는 것일 수 있다.
"미디어를 캐시화"라는 스텝 518은 캐시 서비스 모듈(214)의 "캐시로 미디어 전송"이라는 기능 (320)에서 수행되며, 완전한 미디어는 캐시(112)로 전송되어, "서명을 생성"이라는 스텝 506에서 보다 먼저 판정된 미디어 키(서명)에 대해 저장된다.
미디어 파일이 캐시화 되든 또는 그렇지 않든간에, 즉 "미디어를 캐시화"라는 스텝 518 이후 또는 "캐시화될 미디어 존재?"라는 스텝 516로부터의 출구 "N" 이후에, "미디어를 적응화"라는 스텝 520으로 실행이 계속되는데, 이 부분에 대해서는 하기에 설명한다.
캐시(112)에서 원격 미디어 파일이 이미 발견되면(스텝 508로부터의 출구 "Y"), 특정 적응 버전, 즉 미디어 클라이언트(102)와 같은 요청 장치의 특성을 위해 적절한 적응 버전이 캐시(112)에 이미 존재할 가능성이 있다. 앞에 설명한 바와 같이, 적응 버전은 레이트 변환 버전 또는 코드 변환 버전일 수 있다.
"적응 버전이 캐시에 존재?"라는 스텝 512에서, 캐시(112)에 적절한 적응 버전이 존재하는가의 여부를 판정한다. 그러한 적응 버전이 존재하거나, 또는 원래의(풀:full) 미디어 파일이 미디어 클라이언트(102)로 전송될 수 있기 때문에 적응 버전이 불필요한 경우(스텝 512으로부터 출구 "Y"), 캐시(112)에 있어서 적절한 버전에 대한 포인터가 "버전 선택"이라는 스텝 514에서 선택되어 BWO 서버(108)의 "캐시화된 미디어 플레이"라는 기능(322)로(라벨 "D) 전달된다.
캐시(112)에서 적절한 적응 버전이 존재하지 않으면(스텝 512로부터 출구 "N"), 도 2의 TRX 모듈(212)에서 실행되는 "미디어 적응화"라는 기능(326)(도 3, 라벨 "G")에서 수행되는 "미디어 적응화"라는 스텝 520에서 미디어 파일이 적응화된다. 즉, 레이트 변환되거나 코드 변환된다.
요청 레이트가 충분히 높을 때, 즉, 특정 임계치에 도달하면, 원래의 캐시화된 버전으로부터 적응 버전이 생성된다. 임계치는 구성 테이블(216)에 구성될 수 있다. 요청은 모든 타입의 미디어 클라이언트 장치 또는 이러한 장치의 특정 서브세트에 대해서 전역적으로 추적될 수 있다. 미디어 클라이언트(102)로부터의 BWO 요청에서의 헤더로부터 장치의 타입이 식별된다. 글로벌 임계치가 레이트 변환을 트리거하는 반면, 장치-특정 임계치는 코드 변환을 트리거할 수 있다.
"미디어를 적응화"라는 스텝 520에서, 생성되는 레이트 변환 버전 및 코드 변환 버전은 "캐시화될 적응 버전 존재?"라는 스텝 522에서 판정된 대로 캐시내에 유지될 수 있으며, 스텝 522에서는 요청 로그(218) 및 구성 테이블(216)이 참조된다.
"적응 버전을 캐시화"라는 스텝 524에서, 적응 버전은 이전에 연산된 미디어 키를 이용하여 캐시(112)로 전송된다.
캐시(112)내에서 이미 발견된 미디어 파일의 버전은 "버전 선택" 이라는 스텝 514에서 포인터로 표시되고, BWO 서버(108)로 "재지향" 리턴 코드(라벨 "D")와 함께 전송되며, BWO 서버(108)는 이후 "캐시화된 미디어 플레이"라는 기능(322)에서 식별된 캐시화된 미디어 파일을 미디어 버퍼(210)를 통해 미디어 클라이언트(102)로 전송하며, 여기서 미디어 버퍼(210)는 "미디어 버퍼링" 라는 버퍼링 기능(324)를 수행한다.
미디어 파일의 적응 버전이 캐시화되든 그렇지 않든간에, 즉, "적응 버전을 캐시화"라는 스텝 524에 이어서, 또는 "캐시화될 적응 버전 존재?"이라는 스텝 522로부터의 출구 "N"에 이어서 식별된 미디어 파일이 이후 미디어 버퍼(210)로 전달되며(라벨 "G"), 미디어 버퍼(210)는 "미디어 버퍼링"이라는 버퍼링 기능(324)을 수행하여 미디어 클라이언트(102)로 식별된 미디어 파일을 전달한다.
미디어 클라이언트(102)는 이제 최종적으로 요청된 미디어 파일을 "클라이언트가 미디어 소비"라는 기능(328)에서 수신하고 소비(디스플레이 또는 사용)한다.
BWO 서버에서의 미디어 버퍼 모듈(210)의 목적은 구성된 정책에 따라서, 또는 미디어 자체의 특성(예를 들면, 비트 레이트)에 기초하여 미디어 배송 레이트를 조절하기 위해, BWO 서버(108)로부터 미디어 클라이언트(102)로 미디어 파일의 전송을 조정하는 것이다.
미디어 파일의 연결된 부분들, 즉 격리된 바이트 범위의 검색 및 단일 미디어 키로의 그들의 해쉬화를 실시예로서 설명하였다. 본 발명의 실시예는 대역폭 최적화 수단(106)에서 파일의 캐시 사본이 이미 존재하는가의 여부를 효율적으로 판정하기 위해, 이러한 대역폭 효율화 방법을 제안한다. 파일을 캐시화하는가의 여부를 판정하는 규칙은 다양하게 규정 및 구성할 수 있으며, 그 예들을 제공하였다. 예를들면, 제1 인카운터(encounter)에 대한 서명만을 캐시화하고, 특정 시간 내에서 제2 인카운터에 대한 완전한 파일을 캐시화할 수도 있다. 동일 또는 다른 규칙이 비변형(완전환) 파일을 캐시화 하거나 적응 버전을 캐시화하는데 적용될 수도 있다.
본 발명의 방법 및 시스템을 이용하여, 미디어 파일이건 아니건 간에, 원격이던지 그렇지 않든 간에, 다양한 전자 파일을 비교할 수 있음을 알 수 있을 것이다. 예를 들면, 2개의 전자 파일을 다음과 같은 스텝에 따라서 비교할 수도 있다.
각 전자 파일에 대하여:
바이트의 각 범위가 상기 원격 미디어 파일의 파일 사이즈 보다 짧다는 조건하에서, 원격 미디어 파일의 시작과 연관된 각 옵셋에 있는 바이트들의 M(M>=2)개 범위들을 획득하는 단계와;
상기 M개 범위내의 바이트들을 연결하여 바이트 스트링으로 형성하는 단계와;
상기 바이트 스트링을 이용하여, 상기 미디어 파일에 대한 서명을 생성하는 단계와;
상기 2개 파일을 비교하여 상기 전자 파일이 동일한지를 판정하는 단계.
편리에 따라서, 전자 파일의 서명을 생성하는 단계는 바이트 스트링을 파일 키로 해쉬화하는 단계를 포함하고, 서명을 비교하는 단계는 2개의 파일키를 비교하는 단계를 포함한다.
2개의 전자 파일을 비교하기 위한 대응 컴퓨터 시스템을 범용 또는 전용 컴퓨터로 구현할 수 있으며, 이 경우 컴퓨터는 상술한 방법의 단계들을 수행하기 위해, 프로세서와, 이 프로세서에 의해 실행되는 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 매체를 가진다.
이상과 같이 본 발명의 실시예에 대하여 상세히 설명하였지만, 다음의 특허청구범위 내에서 당분야의 통상의 기술자에 의해 상기 실시예에 대한 여러 가지 변경 및 변형이 가능함은 자명한 것이다.
100. 배송 시스템, 102. 클라이언트 장치, 104. HTTP 프록시, 106. 대역폭 최적화 수단, 108. BWO 서버, 110. 캐시 서버 (컴퓨터). 112. 캐시 (메모리), 114. 미디어 소스, 116. 인터넷, 118. 링크, 120. 링크, 122. 링크, 124. 링크, 204. BWO 게이트 웨이, 206. URL 리-라이터 모듈, 208. URL 포워더 모듈, 210. 미디어 버퍼 모듈, 212. 트랜스코더(TRX) 모듈, 214. 캐시 서비스 모듈, 216.구성 테이블, 218. 요청 로그 모듈, 220. 파일 분석 모듈, 222. 미디어 키, 224. 비교기, 226. 캐시 인터페이스 모듈, 228. 네트웍 인터페이스 모듈(NW I/F).
Claims (17)
- 캐시에 미디어 파일이 존재하는가의 여부를 판정하는 캐시 서비스 모듈로서,
상기 미디어 파일은 원격 미디어 소스에 저장된 원격 미디어 파일의 사본이며, 상기 캐시 서비스 모듈은, 프로세서에 의해 실행되는 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 가지는 파일 분석 모듈을 포함하고,
상기 컴퓨터 판독 가능 명령은,
상기 프로세서가,
(i) 상기 원격 미디어 소스로 부터 원격 미디어 파일의 파일 사이즈 및 바이트들의 M(M>=2)개 범위들을 획득하고 - 상기 바이트들의 M개 범위들은 상기 원격 미디어 파일의 시작과 연관된 각 옵셋에서 획득되고, 상기 바이트들의 M개 범위들의 각각의 범위는 원격 미디어 파일의 파일 사이즈보다 짧음 -;
(ii) 상기 M개의 범위들내의 바이트들을 연결하여 바이트 스트링으로 형성하고;
(iii) 상기 바이트 스트링을 이용하여 상기 미디어 파일에 대한 서명을 생성하고;
(iv) 상기 미디어 파일에 대한 서명으로 캐시에게 질의(interrogate)하는 것을 포함하며, 상기 캐시에서 상기 미디어 파일의 존재를 판정하도록 하는 명령인,
캐시 서비스 모듈.
- 청구항 1에 있어서,
상기 캐시 서비스 모듈은 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 가지는 구성 테이블을 더 포함하고,
상기 구성 테이블은:
M 값과;
상기 바이트들의 M개 범위들의 각 범위마다 획득될 바이트들의 개수를 각각 규정하기 위한 사전 결정된 파라메터와;
상기 원격 미디어 파일의 파일 사이즈의 함수로서, 원격 미디어 파일의 시작과 연관된, 상기 바이트들의 M개 범위들에 대한 각 옵셋들을 계산하기 위한 사전 결정된 파라메터를 저장하는
캐시 서비스 모듈.
- 청구항 1 또는 청구항 2에 있어서,
상기 바이트들의 M개 범위들이 서로 중첩되지 않을 것이라는 조건;
상기 바이트들의 M개 범위들에 있는 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 작을 것이라는 조건; 또는
상기 바이트들의 M개 범위들에 대한 상기 각 옵셋들 중 하나가 0과 동일할 것 이라는 조건 중
하나 이상의 조건을 만족하는 캐시 서비스 모듈.
- 청구항 2에 있어서,
상기 구성 테이블은 클라이언트 장치로부터의 상기 미디어 파일에 대한 요청들의 횟수에 대한 사전 결정된 임계치를 더 포함하고,
상기 캐시 서비스 모듈은:
상기 클라이언트 장치로부터의 미디어 파일에 대한 요청들을 기록하기 위한 요청 로그 모듈과;
상기 요청 로그 모듈에 저장된 미디어 파일에 대한 요청들의 횟수를 상기 사전 결정된 임계치와 비교하는 비교기와;
상기 캐시에 미디어 파일이 존재하지 않고, 상기 사전 결정된 임계치를 초과하면, 상기 미디어 파일을 상기 캐시로 전송하는 캐시 인터페이스 모듈을 더 포함하는,
캐시 서비스 모듈.
- 청구항 1, 청구항 2 및 청구항 4 중 어느 한 항에 있어서,
상기 컴퓨터 판독가능 명령은 상기 바이트 스트링을 미디어 키로 해쉬하기 위한 컴퓨터 판독가능 명령을 포함하며, 상기 미디어 키는 상기 미디어 파일에 대한 서명인,
캐시 서비스 모듈.
- 미디어 파일을 캐시화하기 위한 시스템으로서,
상기 시스템은:
(a) 컴퓨터 판독 가능 저장 매체를 포함하고, 원격 미디어 소스에 저장된 원격 미디어 파일의 사본인 미디어 파일을 저장하기 위한 캐시와;
(b) 프로세서와, 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 포함하며, 클라이언트 장치로부터 상기 미디어 파일에 대한 요청을 수신하는 대역폭 최적화 서버와;
(c) 프로세서와, 상기 프로세서에 의해 실행되는 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 매체를 포함하는 캐시 서버를 포함하고,
상기 캐시 서버는:
상기 캐시에 미디어 파일이 존재하는가의 여부를 판정하는 캐시 서비스 모듈을 포함하고,
상기 캐시 서비스 모듈은:
파일 분석 모듈을 포함하며,
상기 파일 분석 모듈은:
(ⅰ) 상기 원격 미디어 소스로 부터 원격 미디어 파일의 파일 사이즈 및 바이트들의 M(M>=2)개 범위들을 획득하고 - 상기 바이트들의 M개 범위들은 상기 원격 미디어 파일의 시작과 연관된 각 옵셋에서 획득되고, 상기 M개 범위들의 각각의 범위는 원격 미디어 파일의 파일 사이즈보다 짧음 -;
(ii) 상기 M개 범위내의 바이트들을 연결하여 바이트 스트링으로 형성하고;
(iii) 상기 바이트 스트링을 이용하여, 상기 미디어 파일에 대한 서명을 생성하고;
(iv) 상기 미디어 파일에 대한 서명으로 상기 캐시에게 질의(interrogating) 하는 것을 포함하며, 상기 캐시에서 상기 미디어 파일이 존재하는가의 여부를 판정하는
미디어 파일 캐시화 시스템.
- 청구항 6에 있어서,
상기 미디어 파일 캐시화 시스템은:
상기 원격 미디어 소스와 통신하기 위한 네트웍 인터페이스 모듈과;
상기 캐시로부터 상기 미디어 파일을 검색하고, 상기 대역폭 최적화 서버를 통해 상기 미디어 파일을 상기 클라이언트 장치로 전달하는 캐시 인터페이스 모듈을 더 포함하고,
상기 대역폭 최적화 서버는:
상기 미디어 파일의 적응 버전(adapted version)을 생성하여, 상기 적응 버전을 상기 클라이언트 장치의 미디어 구조와 매칭시키는 미디어 트랜스코더 모듈을 포함하는,
미디어 파일 캐시화 시스템.
- 청구항 6 또는 청구항 7에 있어서,
상기 캐시 서비스 모듈은 구성 테이블을 더 포함하고, 상기 구성 테이블은 컴퓨터 판독가능 명령이 저장된 컴퓨터 판독가능 저장 매체를 포함하며;
상기 구성 테이블은:
M 값과;
상기 바이트들의 M개 범위들의 각 범위마다 획득될 바이트들의 개수를 각각 규정하는 사전 결정된 파라메터와;
상기 원격 미디어 파일의 상기 파일 사이즈에 기초하여, 원격 미디어 파일의 시작과 연관된, 상기 바이트들의 M개 범위들에 대한 각 옵셋들을 계산하기 위한 사전 결정된 파라메터를 저장하는,
미디어 파일 캐시화 시스템.
- 청구항 6 또는 청구항 7에 있어서,
상기 바이트들의 M개 범위들이 서로 중첩하지 않을 것이라는 조건;
상기 바이트들의 M개 범위들에 있는 모든 범위의 바이트들의 합이 상기 원격 미디어 파일의 상기 파일 사이즈 보다 작을 것이라는 조건; 또는
상기 바이트들의 M개 범위들에 대한 상기 각 옵셋들 중 하나가 0과 동일할 것이라는 조건 중
하나 이상의 조건을 만족하는 미디어 파일 캐시화 시스템.
- 청구항 8에 있어서,
상기 구성 테이블은 클라이언트 장치로부터의 상기 미디어 파일에 대한 요청들의 횟수에 대한 사전 결정된 임계치를 더 포함하고;
상기 캐시 서비스 모듈은:
미디어 클라이언트 장치로부터의 상기 미디어 파일에 대한 미디어 요청들을 기록하기 위한 요청 로그 모듈과;
상기 요청 로그 모듈에 저장된 상기 미디어 파일에 대한 요청들의 횟수를 상기 사전 결정된 임계치와 비교하는 비교기와;
상기 캐시에 상기 미디어 파일이 존재하지 않고, 상기 사전 결정된 임계치를 초과하면, 상기 미디어 파일을 상기 캐시에 전송하는 캐시 인터페이스 모듈을 더 포함하는,
미디어 파일 캐시화 시스템.
- 청구항 6 또는 청구항 7에 있어서,
상기 파일 분석 모듈은 상기 바이트 스트링을 상기 미디어 파일에 대한 서명인 미디어 키로 해쉬하도록 구성되는,
미디어 파일 캐시화 시스템.
- 원격 미디어 소스에 저장된 원격 미디어 파일의 사본인 미디어 파일을 캐시화하기 위한 방법으로서,
(a) 상기 원격 미디어 소스로 부터 원격 미디어 파일의 파일 사이즈 및 바이트들의 M(M>=2)개 범위들을 획득하는 단계 - 상기 바이트들의 M개 범위들은 상기 원격 미디어 파일의 시작과 연관된 각 옵셋에서 획득되고, 상기 바이트들의 M개 범위들의 각각의 범위는 원격 미디어 파일의 파일 사이즈보다 짧음 - 와;
(b) 상기 M개 범위내의 바이트들을 연결하여 바이트 스트링으로 형성하는 단계와;
(c) 상기 바이트 스트링을 이용하여, 상기 미디어 파일에 대한 서명을 생성하는 단계와;
(d) 상기 미디어 파일에 대한 서명으로 캐시에게 질의(interrogating) 하는 것을 포함하며, 상기 캐시에 미디어 파일이 존재하는가의 여부를 판정하는 단계를 포함하는,
미디어 파일을 캐시화하기 위한 방법.
- 청구항 12에 있어서,
상기 단계(a)는,
M 값과;
구성 테이블로부터 상기 바이트들의 M개 범위들의 각 범위마다 획득할 바이트들의 개수를 각각 규정하는 사전 결정된 파라메터와;
상기 구성 테이블로부터, 상기 원격 미디어 파일의 상기 파일 사이즈에 기초하여, 원격 미디어 파일의 시작과 연관된, 상기 바이트들의 M개 범위들에 대한 각 옵셋을 계산하기 위한 사전 결정된 파라메터를 획득하는 단계를 포함하는,
미디어 파일을 캐시화하기 위한 방법.
- 청구항 12항 또는 청구항 13에 있어서,
상기 바이트들의 M개 범위들은 서로 중첩하지 않거나;
상기 바이트들의 M개 범위들에 있는 모든 범위의 바이트들의 합은 상기 원격 미디어 파일의 상기 파일 사이즈 보다 작거나; 또는
상기 바이트들의 M개 범위들에 대한 상기 각 옵셋들 중 하나는 0과 동일한
미디어 파일을 캐시화하기 위한 방법.
- 청구항 12 또는 청구항 13에 있어서,
요청 로그에 저장된 상기 미디어 파일에 대한 요청들의 횟수를 구성 테이블에 저장된 사전 결정된 임계치와 비교하는 단계와;
상기 사전 결정된 임계치를 초과하면, 상기 서명과 함께 상기 캐시에 상기 미디어 파일을 저장하는 단계를 더 포함하는,
미디어 파일을 캐시화하기 위한 방법.
- 청구항 12 또는 청구항 13에 있어서,
상기 미디어 파일의 적응 버전을 생성하여, 상기 미디어 파일을 요청했던 클라이언트 장치의 미디어 구조와 상기 적응 버전을 매칭시키는 단계와;
요청 로그에 저장된, 상기 미디어 파일에 대한 요청들의 횟수를 구성 테이블에 저장된 사전 결정된 임계치와 비교하는 단계와;
상기 사전 결정된 임계치를 초과하고 상기 캐시에 적응 버전이 없으면, 상기 서명과 함께 상기 캐시에 상기 적응 버전을 저장하는 단계를 더 포함하는,
미디어 파일을 캐시화하기 위한 방법.
- 청구항 12 또는 청구항 13에 있어서,
상기 단계 (c)은,
상기 바이트 스트링을 상기 미디어 파일에 대한 서명인 미디어 키로 해쉬하는 단계를 포함하는,
미디어 파일을 캐시화하기 위한 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26567609P | 2009-12-01 | 2009-12-01 | |
US61/265,676 | 2009-12-01 | ||
PCT/CA2010/001903 WO2011066644A1 (en) | 2009-12-01 | 2010-11-30 | System and methods for efficient media delivery using cache |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120106948A KR20120106948A (ko) | 2012-09-27 |
KR101657196B1 true KR101657196B1 (ko) | 2016-09-19 |
Family
ID=44069672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127014078A KR101657196B1 (ko) | 2009-12-01 | 2010-11-30 | 캐시를 이용한 효율적인 미디어 배송 시스템 및 방법 |
Country Status (8)
Country | Link |
---|---|
US (3) | US8516074B2 (ko) |
EP (1) | EP2507938B1 (ko) |
JP (1) | JP5487457B2 (ko) |
KR (1) | KR101657196B1 (ko) |
CN (1) | CN102771080B (ko) |
CA (1) | CA2778215C (ko) |
IL (1) | IL219208A (ko) |
WO (1) | WO2011066644A1 (ko) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8145908B1 (en) * | 2004-10-29 | 2012-03-27 | Akamai Technologies, Inc. | Web content defacement protection system |
US8868463B2 (en) * | 2007-06-08 | 2014-10-21 | At&T Intellectual Property I, L.P. | System and method of managing digital rights |
US8311058B2 (en) * | 2008-05-10 | 2012-11-13 | Vantrix Corporation | Modular transcoding pipeline |
US8677241B2 (en) * | 2007-09-10 | 2014-03-18 | Vantrix Corporation | Method and system for multimedia messaging service (MMS) to video adaptation |
US8220051B2 (en) | 2007-09-28 | 2012-07-10 | Vantrix Corporation | Generation and delivery of multimedia content-adaptation notifications |
US8171167B2 (en) * | 2007-11-13 | 2012-05-01 | Vantrix Corporation | Intelligent caching of media files |
US8516074B2 (en) | 2009-12-01 | 2013-08-20 | Vantrix Corporation | System and methods for efficient media delivery using cache |
US9253548B2 (en) * | 2010-05-27 | 2016-02-02 | Adobe Systems Incorporated | Optimizing caches for media streaming |
US8539041B2 (en) * | 2011-12-23 | 2013-09-17 | Huawei Technologies Co., Ltd. | Method, apparatus, and network system for acquiring content |
US8977704B2 (en) | 2011-12-29 | 2015-03-10 | Nokia Corporation | Method and apparatus for flexible caching of delivered media |
US9401968B2 (en) * | 2012-01-20 | 2016-07-26 | Nokia Techologies Oy | Method and apparatus for enabling pre-fetching of media |
US8856445B2 (en) * | 2012-05-24 | 2014-10-07 | International Business Machines Corporation | Byte caching with chunk sizes based on data type |
US8832375B2 (en) * | 2012-05-24 | 2014-09-09 | International Business Machines Corporation | Object type aware byte caching |
US8812623B2 (en) | 2012-07-17 | 2014-08-19 | Nokia Siemens Networks Oy | Techniques to support selective mobile content optimization |
KR101629338B1 (ko) * | 2012-07-18 | 2016-06-13 | 오페라 소프트웨어 아일랜드 리미티드 | 저스트-인-타임 분산 비디오 캐시 |
US9112922B2 (en) | 2012-08-28 | 2015-08-18 | Vantrix Corporation | Method and system for self-tuning cache management |
CN102932435B (zh) * | 2012-10-18 | 2016-06-15 | 北京奇虎科技有限公司 | 网络检测系统 |
CN103024001B (zh) * | 2012-11-30 | 2018-07-31 | 中兴通讯股份有限公司 | 一种业务调度方法与装置及融合设备 |
US10438634B2 (en) * | 2013-04-05 | 2019-10-08 | Avid Technology, Inc. | Content-based unique material identifiers |
CN103209222A (zh) * | 2013-04-24 | 2013-07-17 | 网宿科技股份有限公司 | 内容分发网络中对重叠乱序的范围请求的处理方法及装置 |
GB201309249D0 (en) * | 2013-05-22 | 2013-07-03 | Vodafone Ip Licensing Ltd | Content optimisation using 3G measurements |
US9026693B2 (en) * | 2013-08-05 | 2015-05-05 | Samsung Electronics Co., Ltd. | Method for filtering cached input/output data based on data generation/consumption |
US9118976B1 (en) * | 2013-08-08 | 2015-08-25 | Time Warner Cable Enterprises Llc | Tuning efficiency and delivery of content |
US10506282B2 (en) * | 2013-10-21 | 2019-12-10 | Synamedia Limited | Generating media signature for content delivery |
US9813465B2 (en) * | 2014-12-19 | 2017-11-07 | Intel Corporation | Network proxy for energy efficient video streaming on mobile devices |
US10659507B2 (en) | 2015-03-02 | 2020-05-19 | Qualcomm Incorporated | Indication for partial segment |
US10749930B2 (en) | 2015-03-02 | 2020-08-18 | Qualcomm Incorporated | Indication for partial segment |
CN106294452B (zh) * | 2015-05-28 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 数据获取方法和装置 |
CN104954894B (zh) * | 2015-06-26 | 2019-03-26 | 网宿科技股份有限公司 | 一种视频流量引导方法、装置及一种电子设备 |
CN105959362A (zh) * | 2016-04-25 | 2016-09-21 | 乐视控股(北京)有限公司 | Cdn服务器及其缓存数据的方法 |
US10567508B2 (en) * | 2017-04-28 | 2020-02-18 | Facebook, Inc. | Media file upload awareness for online systems |
US20220321623A1 (en) * | 2021-04-05 | 2022-10-06 | Ademco Inc. | Establishing a producer / consumer session in the cloud |
WO2022217361A1 (en) * | 2021-04-16 | 2022-10-20 | Podcrunch Inc. | System and method for searching and playing a predetermined start and end time of a clip within a larger audio or video file |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103972A1 (en) | 2001-01-26 | 2002-08-01 | International Business Machines Corporation | Distributed multicast caching technique |
US6813690B1 (en) | 2001-06-12 | 2004-11-02 | Network Appliance, Inc. | Caching media data using content-sensitive identifiers |
Family Cites Families (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7190617B1 (en) | 1989-04-13 | 2007-03-13 | Sandisk Corporation | Flash EEprom system |
JP3000929B2 (ja) | 1996-06-07 | 2000-01-17 | 日本電気株式会社 | メモリカードを用いた画像表示方法及びシステム |
US5978370A (en) * | 1997-01-13 | 1999-11-02 | At&Tcorp | Circuit-switched switching system |
US6289358B1 (en) | 1998-04-15 | 2001-09-11 | Inktomi Corporation | Delivering alternate versions of objects from an object cache |
US6563517B1 (en) | 1998-10-02 | 2003-05-13 | International Business Machines Corp. | Automatic data quality adjustment to reduce response time in browsing |
US6970602B1 (en) | 1998-10-06 | 2005-11-29 | International Business Machines Corporation | Method and apparatus for transcoding multimedia using content analysis |
US6483851B1 (en) | 1998-11-13 | 2002-11-19 | Tektronix, Inc. | System for network transcoding of multimedia data flow |
US6470378B1 (en) | 1999-03-31 | 2002-10-22 | Intel Corporation | Dynamic content customization in a clientserver environment |
JP3670169B2 (ja) | 1999-06-23 | 2005-07-13 | 三菱電機株式会社 | チャネル内多重交換方式 |
JP2001117809A (ja) | 1999-10-14 | 2001-04-27 | Fujitsu Ltd | メディア変換方法及び記憶媒体 |
US6792575B1 (en) | 1999-10-21 | 2004-09-14 | Equilibrium Technologies | Automated processing and delivery of media to web servers |
US7363361B2 (en) | 2000-08-18 | 2008-04-22 | Akamai Technologies, Inc. | Secure content delivery system |
US7398312B1 (en) * | 2000-03-29 | 2008-07-08 | Lucent Technologies Inc. | Method and system for caching streaming multimedia on the internet |
US7725812B1 (en) | 2000-03-31 | 2010-05-25 | Avid Technology, Inc. | Authoring system for combining temporal and nontemporal digital media |
EP1154356A1 (en) * | 2000-05-09 | 2001-11-14 | Alcatel | Caching of files during loading from a distributed file system |
US6785732B1 (en) | 2000-09-11 | 2004-08-31 | International Business Machines Corporation | Web server apparatus and method for virus checking |
JP2002108870A (ja) | 2000-09-27 | 2002-04-12 | Oki Electric Ind Co Ltd | 情報処理システムおよび情報処理方法 |
JP2002108570A (ja) | 2000-10-02 | 2002-04-12 | Nippon Columbia Co Ltd | データ記憶装置及びデータ記憶方法 |
US7660902B2 (en) * | 2000-11-20 | 2010-02-09 | Rsa Security, Inc. | Dynamic file access control and management |
US6407680B1 (en) | 2000-12-22 | 2002-06-18 | Generic Media, Inc. | Distributed on-demand media transcoding system and method |
ATE405101T1 (de) | 2001-02-12 | 2008-08-15 | Gracenote Inc | Verfahren zum erzeugen einer identifikations hash vom inhalt einer multimedia datei |
US7684553B2 (en) | 2001-03-23 | 2010-03-23 | Nokia Corporation | Method for transmitting data in a communication network |
US7315884B2 (en) * | 2001-04-03 | 2008-01-01 | Hewlett-Packard Development Company, L.P. | Reduction of network retrieval latency using cache and digest |
US7010581B2 (en) | 2001-09-24 | 2006-03-07 | International Business Machines Corporation | Method and system for providing browser functions on a web page for client-specific accessibility |
JP2003143575A (ja) | 2001-11-02 | 2003-05-16 | Toshiba Corp | マルチメディア再生方法及び装置 |
US20030110234A1 (en) | 2001-11-08 | 2003-06-12 | Lightsurf Technologies, Inc. | System and methodology for delivering media to multiple disparate client devices based on their capabilities |
US7155475B2 (en) | 2002-02-15 | 2006-12-26 | Sony Corporation | System, method, and computer program product for media publishing request processing |
JP3713491B2 (ja) | 2002-02-28 | 2005-11-09 | 株式会社エヌ・ティ・ティ・ドコモ | サーバ装置、及び情報処理方法 |
JP2003337739A (ja) | 2002-03-15 | 2003-11-28 | Neosoft:Kk | Webページ情報保存処理プログラム、Webページ変換用プログラム、及び、コンテンツ提供システム |
US7076544B2 (en) * | 2002-04-08 | 2006-07-11 | Microsoft Corporation | Caching techniques for streaming media |
JP4352653B2 (ja) | 2002-04-12 | 2009-10-28 | 三菱電機株式会社 | 映像コンテンツ管理運用システム |
US20040001106A1 (en) | 2002-06-26 | 2004-01-01 | John Deutscher | System and process for creating an interactive presentation employing multi-media components |
US7127520B2 (en) | 2002-06-28 | 2006-10-24 | Streamserve | Method and system for transforming input data streams |
JP2004078354A (ja) | 2002-08-12 | 2004-03-11 | Fujitsu Ten Ltd | データ変換サービス方法およびデータ変換用サーバ装置 |
US8645470B2 (en) | 2002-12-06 | 2014-02-04 | Core Wireless Licensing S.A.R.L. | System, method and computer program product for the delivery of media content |
US7188216B1 (en) * | 2002-12-13 | 2007-03-06 | Vignette Corporation | Method and system for an extensible caching framework |
US20040181550A1 (en) | 2003-03-13 | 2004-09-16 | Ville Warsta | System and method for efficient adaptation of multimedia message content |
JP4430882B2 (ja) | 2003-03-19 | 2010-03-10 | 富士通株式会社 | 複合メディアコンテンツの変換装置及び変換方法並びに複合メディアコンテンツ変換プログラム |
US20040258063A1 (en) | 2003-03-25 | 2004-12-23 | Raith Alex Krister | Multimedia message processing |
CA2426619A1 (en) * | 2003-04-25 | 2004-10-25 | Ibm Canada Limited - Ibm Canada Limitee | Defensive heap memory management |
WO2004097600A2 (en) | 2003-04-28 | 2004-11-11 | Sony Pictures Entertainment Inc. | Content management for rich media publishing system |
US20050187756A1 (en) | 2004-02-25 | 2005-08-25 | Nokia Corporation | System and apparatus for handling presentation language messages |
US7692666B1 (en) | 2004-04-07 | 2010-04-06 | Adobe Systems Incorporated | Constructing color profile for parameterized image color space |
FI20040944A0 (fi) * | 2004-07-07 | 2004-07-07 | Nokia Corp | Sisältöviestinnän hallinta viestintäjärjestelmässä |
CN101027668B (zh) | 2004-07-21 | 2012-01-04 | 海滩无极限有限公司 | 基于块映射表缓冲存储和虚拟文件系统的可堆叠文件系统模块的分布式存储结构 |
US7430284B2 (en) | 2004-08-19 | 2008-09-30 | Sybase 365, Inc. | Architecture and methods for inter-carrier Multi-Media Messaging |
US20060161153A1 (en) * | 2004-10-25 | 2006-07-20 | Alphaspine, Inc. | Pedicle screw systems and methods of assembling/installing the same |
JP4234709B2 (ja) | 2004-10-26 | 2009-03-04 | エルジー エレクトロニクス インコーポレイティド | 移動通信端末機 |
US7409464B2 (en) | 2004-10-29 | 2008-08-05 | Nokia Corporation | System and method for converting compact media format files to synchronized multimedia integration language |
WO2006052904A2 (en) * | 2004-11-08 | 2006-05-18 | Innopath Software, Inc. | Updating compressed read-only memory file system (cramfs) images |
US7876766B1 (en) | 2004-11-22 | 2011-01-25 | Syniverse Icx Corporation | Method and apparatus to enable interoperation between multi-media messaging service centers |
US20100195538A1 (en) * | 2009-02-04 | 2010-08-05 | Merkey Jeffrey V | Method and apparatus for network packet capture distributed storage system |
US7577848B2 (en) | 2005-01-18 | 2009-08-18 | Microsoft Corporation | Systems and methods for validating executable file integrity using partial image hashes |
US7669121B2 (en) | 2005-01-19 | 2010-02-23 | Microsoft Corporation | Transcode matrix |
US8073275B2 (en) | 2005-02-09 | 2011-12-06 | Mobixell Networks Ltd. | Image adaptation with target size, quality and resolution constraints |
US20060210027A1 (en) | 2005-03-16 | 2006-09-21 | Oded Kafri | Method and system for storing and sending multimedia messaging service (MMS) messages |
US7313755B2 (en) | 2005-04-20 | 2007-12-25 | Microsoft Corporation | Media timeline sorting |
US8819143B2 (en) | 2005-05-31 | 2014-08-26 | Flash Networks Ltd. | Presentation layer adaptation in multimedia messaging |
CN1859610A (zh) | 2005-06-13 | 2006-11-08 | 华为技术有限公司 | 一种传送多媒体消息内容适配通知的方法 |
US7620991B2 (en) * | 2005-08-12 | 2009-11-17 | Netapp, Inc. | Optimized network cache for virus scanning by examining the magic bytes of a file |
JP2007053699A (ja) | 2005-08-19 | 2007-03-01 | Brother Ind Ltd | メール受信システム及びインターネットファクシミリ |
KR100680034B1 (ko) | 2005-09-15 | 2007-02-07 | (주)폴리다임 | 문맥 인식이 강화된 메시지 변환 시스템 및 방법 |
EP1932358A4 (en) | 2005-09-28 | 2011-04-13 | Ericsson Telefon Ab L M | MEDIA CONTENTS MANAGEMENT |
US7779034B2 (en) * | 2005-10-07 | 2010-08-17 | Citrix Systems, Inc. | Method and system for accessing a remote file in a directory structure associated with an application program executing locally |
US20070239820A1 (en) | 2005-11-23 | 2007-10-11 | Nokia Corporation | System and method for providing quality feedback metrics for data transmission in rich media services |
JP4622832B2 (ja) | 2005-12-05 | 2011-02-02 | 日本電気株式会社 | キャッシュ管理システム、キャッシュ管理方法、キャッシュ管理プログラムおよびキャッシュ管理サーバ |
US9081609B2 (en) | 2005-12-21 | 2015-07-14 | Xerox Corporation | Image processing system and method employing a threaded scheduler |
US20070157072A1 (en) | 2005-12-29 | 2007-07-05 | Sony Ericsson Mobile Communications Ab | Portable content sharing |
US7929599B2 (en) | 2006-02-24 | 2011-04-19 | Microsoft Corporation | Accelerated video encoding |
US7813724B2 (en) | 2006-03-17 | 2010-10-12 | Comverse Ltd. | System and method for multimedia-to-video conversion to enhance real-time mobile video services |
US8266182B2 (en) | 2006-06-30 | 2012-09-11 | Harmonic Inc. | Transcoding for a distributed file system |
US7411531B2 (en) * | 2006-06-30 | 2008-08-12 | Agere Systems Inc. | Methods and apparatus for asynchronous sampling of a received signal at a downsampled rate |
US20110047618A1 (en) * | 2006-10-18 | 2011-02-24 | University Of Virginia Patent Foundation | Method, System, and Computer Program Product for Malware Detection, Analysis, and Response |
WO2008058259A2 (en) | 2006-11-08 | 2008-05-15 | Mywaves, Inc. | An apparatus and method for dynamically providing web-based multimedia to a mobile phone |
CA2672735A1 (en) | 2006-12-13 | 2008-06-19 | Quickplay Media Inc. | Mobile media platform |
US7783757B2 (en) * | 2007-03-12 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods of revalidating cached objects in parallel with request for object |
US20080226173A1 (en) | 2007-03-13 | 2008-09-18 | Motorola, Inc. | Method and apparatus for video clip searching and mining |
US8095976B2 (en) | 2007-03-15 | 2012-01-10 | Broadcom Corporation | Data excess protection |
US20080270436A1 (en) * | 2007-04-27 | 2008-10-30 | Fineberg Samuel A | Storing chunks within a file system |
US8677241B2 (en) | 2007-09-10 | 2014-03-18 | Vantrix Corporation | Method and system for multimedia messaging service (MMS) to video adaptation |
US8311058B2 (en) | 2008-05-10 | 2012-11-13 | Vantrix Corporation | Modular transcoding pipeline |
US8561116B2 (en) | 2007-09-26 | 2013-10-15 | Charles A. Hasek | Methods and apparatus for content caching in a video network |
US8220051B2 (en) | 2007-09-28 | 2012-07-10 | Vantrix Corporation | Generation and delivery of multimedia content-adaptation notifications |
CN101184091B (zh) * | 2007-11-05 | 2012-03-07 | 深圳市迅雷网络技术有限公司 | 一种确定相似文件的方法及装置 |
US8171167B2 (en) | 2007-11-13 | 2012-05-01 | Vantrix Corporation | Intelligent caching of media files |
US9060208B2 (en) * | 2008-01-30 | 2015-06-16 | Time Warner Cable Enterprises Llc | Methods and apparatus for predictive delivery of content over a network |
WO2009149063A1 (en) | 2008-06-02 | 2009-12-10 | Azuki Systems, Inc. | Media mashup system |
US8537835B2 (en) | 2008-06-20 | 2013-09-17 | Alcatel Lucent | Methods and apparatus for self-organized caching in a content delivery network |
US7904464B2 (en) * | 2008-08-27 | 2011-03-08 | International Business Machines Corporation | Virtual list view support in a distributed directory |
US8213924B2 (en) * | 2008-10-06 | 2012-07-03 | Facebook, Inc. | Providing distributed online services for mobile devices |
WO2010045262A1 (en) * | 2008-10-14 | 2010-04-22 | Wanova Technologies, Ltd. | Storage-network de-duplication |
US8204915B2 (en) * | 2009-02-13 | 2012-06-19 | Alcatel Lucent | Apparatus and method for generating a database that maps metadata to P2P content |
US9807468B2 (en) * | 2009-06-16 | 2017-10-31 | Microsoft Technology Licensing, Llc | Byte range caching |
US8516074B2 (en) | 2009-12-01 | 2013-08-20 | Vantrix Corporation | System and methods for efficient media delivery using cache |
US8209491B2 (en) | 2010-04-27 | 2012-06-26 | Symantec Corporation | Techniques for directory server integration |
WO2012088023A2 (en) | 2010-12-20 | 2012-06-28 | Akamai Technologies, Inc. | Methods and systems for delivering content to differentiated client devices |
US10684989B2 (en) | 2011-06-15 | 2020-06-16 | Microsoft Technology Licensing, Llc | Two-phase eviction process for file handle caches |
US9264508B2 (en) | 2011-08-19 | 2016-02-16 | Time Warner Cable Enterprises Llc | Apparatus and methods for reduced switching delays in a content distribution network |
US8984311B2 (en) | 2011-12-30 | 2015-03-17 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic C0-state cache resizing |
US9167049B2 (en) | 2012-02-02 | 2015-10-20 | Comcast Cable Communications, Llc | Content distribution network supporting popularity-based caching |
-
2010
- 2010-11-30 US US12/956,114 patent/US8516074B2/en active Active
- 2010-11-30 CA CA2778215A patent/CA2778215C/en active Active
- 2010-11-30 CN CN201080054556.9A patent/CN102771080B/zh not_active Expired - Fee Related
- 2010-11-30 KR KR1020127014078A patent/KR101657196B1/ko active IP Right Grant
- 2010-11-30 JP JP2012541288A patent/JP5487457B2/ja not_active Expired - Fee Related
- 2010-11-30 WO PCT/CA2010/001903 patent/WO2011066644A1/en active Application Filing
- 2010-11-30 EP EP10834118.1A patent/EP2507938B1/en active Active
-
2012
- 2012-04-15 IL IL219208A patent/IL219208A/en active IP Right Grant
-
2013
- 2013-07-25 US US13/950,562 patent/US10097463B2/en active Active
-
2018
- 2018-10-05 US US16/153,117 patent/US10567287B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103972A1 (en) | 2001-01-26 | 2002-08-01 | International Business Machines Corporation | Distributed multicast caching technique |
US6813690B1 (en) | 2001-06-12 | 2004-11-02 | Network Appliance, Inc. | Caching media data using content-sensitive identifiers |
Also Published As
Publication number | Publication date |
---|---|
US10567287B2 (en) | 2020-02-18 |
US10097463B2 (en) | 2018-10-09 |
US20190044862A1 (en) | 2019-02-07 |
WO2011066644A1 (en) | 2011-06-09 |
EP2507938A1 (en) | 2012-10-10 |
IL219208A (en) | 2015-07-30 |
IL219208A0 (en) | 2012-06-28 |
EP2507938A4 (en) | 2017-06-28 |
US20110131298A1 (en) | 2011-06-02 |
CA2778215A1 (en) | 2011-06-09 |
CA2778215C (en) | 2017-07-04 |
CN102771080B (zh) | 2016-03-16 |
CN102771080A (zh) | 2012-11-07 |
US20130311596A1 (en) | 2013-11-21 |
JP5487457B2 (ja) | 2014-05-07 |
US8516074B2 (en) | 2013-08-20 |
JP2013512514A (ja) | 2013-04-11 |
EP2507938B1 (en) | 2019-07-03 |
KR20120106948A (ko) | 2012-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101657196B1 (ko) | 캐시를 이용한 효율적인 미디어 배송 시스템 및 방법 | |
US11194719B2 (en) | Cache optimization | |
US10326853B2 (en) | Method and apparatus for reducing network resource transmission size using delta compression | |
US11044335B2 (en) | Method and apparatus for reducing network resource transmission size using delta compression | |
US9015269B2 (en) | Methods and systems for notifying a server with cache information and for serving resources based on it | |
US9727574B2 (en) | System and method for applying an efficient data compression scheme to URL parameters | |
US8990357B2 (en) | Method and apparatus for reducing loading time of web pages | |
US20180302489A1 (en) | Architecture for proactively providing bundled content items to client devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |