KR20080078172A - 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법 - Google Patents

프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법 Download PDF

Info

Publication number
KR20080078172A
KR20080078172A KR1020070017874A KR20070017874A KR20080078172A KR 20080078172 A KR20080078172 A KR 20080078172A KR 1020070017874 A KR1020070017874 A KR 1020070017874A KR 20070017874 A KR20070017874 A KR 20070017874A KR 20080078172 A KR20080078172 A KR 20080078172A
Authority
KR
South Korea
Prior art keywords
segment
buffer
streaming
proxy server
client
Prior art date
Application number
KR1020070017874A
Other languages
English (en)
Other versions
KR100860076B1 (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 한국전자통신연구원
Priority to KR1020070017874A priority Critical patent/KR100860076B1/ko
Publication of KR20080078172A publication Critical patent/KR20080078172A/ko
Application granted granted Critical
Publication of KR100860076B1 publication Critical patent/KR100860076B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 클라이언트로 스트리밍 서비스를 제공하면서, 스트리밍 대상 세그먼트에 적용된 VCR 기능(예: 플레이, 빨리감기, 빨리가기, 점프 포워드, 점프 백워드 등)을 바탕으로 계산된 가중치를 클라이언트로부터 요청된 세그먼트별로 부여한 메타데이터를 이용하여 캐시 교체대상 세그먼트를 선택하기 위한, 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은 콘텐츠의 세그먼트를 버퍼에 캐싱하는 프록시 서버의 캐시 교체 장치에 있어서, 클라이언트로부터 요청된 콘텐츠에 대한 스트리밍 대상 세그먼트 및 해당 VCR 데이터를 확인하기 위한 클라이언트 에이전트 수단; 상기 확인된 해당 스트리밍 대상 세그먼트를 저장할 버퍼의 상태에 따라 희생할 세그먼트를 요구하고, 그 응답으로 수신된 희생 세그먼트 정보에 따라 상기 확인된 해당 스트리밍 대상 세그먼트를 저장하기 위한 버퍼 관리 수단; 및 상기 클라이언트 에이전트 수단에 의해 확인된 VCR 데이터에 대응된 세그먼트 가중치 및 상기 버퍼 관리 수단에 의해 전송된 버퍼상태를 이용하여 생성한 희생 세그먼트 정보를 상기 버퍼 관리 수단으로 전송하기 위한 메타데이터 관리수단을 포함함.
4. 발명의 중요한 용도
본 발명은 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치 및 그 방법 등에 이용됨.
멀티미디어 서비스, 교체 정책, 스트리밍 서비스, 가중치, 세그먼트

Description

프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치 및 그 방법{Apparatus and method for the replacement of cache for streaming service in the proxy server}
도 1은 종래의 프록시 시스템망에 대한 일실시예 구성도,
도 2는 종래의 클라이언트 실행위치에 따른 교체방식에 대한 일실시예 설명도,
도 3은 종래의 계층형 코딩적용에 따른 교체방식에 대한 일실시예 설명도,
도 4는 본 발명이 적용되는 스트리밍 서비스를 제공하기 위해 스트리밍 대상 세그먼트에 적용된 VCR 기능을 바탕으로 계산된 가중치에 대한 일실시예 예시도,
도 5는 본 발명에 따른 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치에 대한 일실시예 구성도,
도 6은 본 발명에 따른 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 방법에 대한 일실시예 흐름도.
* 도면의 주요 부분에 대한 부호 설명
511: 클라이언트 에이전트부
512: 콘텐츠 전송부
513: 버퍼 관리부
514: 메타데이터 관리부
본 발명은 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 클라이언트로 스트리밍 서비스를 제공하면서, 스트리밍 대상 세그먼트에 적용된 VCR 기능(예: 플레이, 빨리감기, 빨리가기, 점프 포워드, 점프 백워드 등)을 바탕으로 계산된 가중치를 클라이언트로부터 요청된 세그먼트별로 부여한 메타데이터를 이용하여 캐시 교체대상 세그먼트를 선택하기 위한, 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치 및 그 방법에 관한 것이다.
도 1은 종래의 프록시 시스템망에 대한 일실시예 구성도이다.
도 1에 도시된 바와 같이, 종래의 프록시 시스템망에서 프록시 서버(proxy server, 300)는, 서버(server, 100)와 클라이언트(client, 200) 사이에 위치하는 중간 시스템이다.
상기 프록시 서버(300)는 방화벽 및 콘텐츠 필터로 기능함으로써, 인터넷 및 사용자에게 유해하다고 간주되는 특정 서버(100)에 대한 액세스를 차단하거나 콘텐츠를 필터링한다.
특히, 상기 프록시 서버(300)는 클라이언트(200)가 액세스한 데이터를 특정 시간 동안 캐싱(caching)한다. 즉, 상기 프록시 서버(300)는 클라이언트(200)에 의해 동일한 데이터가 요청될 때마다, 서버(100)로부터 해당 데이터를 가져오지 않고 버퍼(buffer)에 저장된 데이터를 대신 제공한다. 이를 통해, 상기 프록시 서버(300)는 클라이언트(200)가 해당 데이터에 더 빠르게 액세스할 수 있도록 한다.
상기와 같은 이유로 프록시 서버(300)에서 서버(100)와 클라이언트(200) 간의 속도 차이를 완충시켜주기 위한 캐싱(caching)이 널리 연구되고 있다.
상기와 같은 캐싱에 관한 연구는 주로 캐시의 교체 알고리즘에 초점을 맞춰 이루어지고 있다. 여기서, 캐시 교체 알고리즘은 데이터에 대한 과거의 접근 정보(예를 들어, 액세스의 빈도, 액세스의 최근성, 문서의 크기 등)에 따라, 가장 저장효율이 낮은 객체를 캐시에서 제거하고 저장효율이 높은 객체를 저장하여 캐시의 제한된 자원을 효과적으로 사용하는 것에 관한 것이다.
이와 같은 캐시 교체 알고리즘은 크게 키(key) 기반 방식 및 함수 기반 방식으로 구분한다.
구체적으로 설명하면, 상기 키 기반 방식은 키 값을 기준으로 캐싱될 객체와 제거될 객체를 선택한다. 상기 키 기반 방식은 대표적으로, LRU(Least Recently Used), FIFO(First In First Out), LFU(Least Frequently Used), SIZE, LOG2-SIZE 등을 예로 들 수 있다.
또한, 상기 함수 기반 방식은 액세스의 최근성, 전송시간, 객체의 소멸시간 등과 같은 다양한 인수와의 관계를 함수화하여 적절한 캐싱 대상 객체를 선택한다. 상기 함수 기반 방식은 대표적으로, GD-SIZE(Greedy Dual-SIZE), LNC-R(Least Normalized Cost Replacement), PSS(Pyramidal Selection Scheme), LRV(Lowest Relative Value) 등을 예로 들 수 있다.
상기 함수 기반 방식의 예에 대하여 구체적으로 설명하면, 상기 GD-SIZE는 단위 크기에 따른 액세스의 빈도를 교체의 척도로 사용한다. 상기 LNC-R은 참조율, 객체의 크기, 캐싱 지연(caching delay)을 인수로 사용하는 함수값을 교체의 척도로 사용한다. 상기 PSS는 객체의 크기를 기준으로 그룹을 형성하여 관리하며, 각 그룹내에서 LRU를 교체의 척도로 사용한다. 상기 LRV는 이전에 참조된 객체가 이후에 참조될 확률 밀도 함수(Probability Density Function)를 정의하고, 상기 확률값을 교체의 척도로 사용한다.
상기와 같이 전술한 캐시 교체 알고리즘(즉, 키 기반 방식 및 함수 기반 방식)은, 텍스트 또는 이미지 데이터와 같이 비교적 크기가 적은 데이터를 대상으로 연구되었으며 멀티미디어 데이터의 특성을 고려하지 않았다.
부언하면, 종래의 캐싱은 데이터를 구성하는 텍스트 및 이미지 데이터와 같은 정적 데이터를 대상으로 수행된다. 이와 같이 종래의 캐싱은 객체 단위로 수행되기 때문에 캐싱 단위의 크기가 동일하지 않다는 점에서, 동일 크기의 블록 단위 또는 페이지 단위로 수행되는 파일 시스템 캐싱과 구별된다.
따라서, 도 1의 상기 프록시 서버(300)는 일반적으로 프록시 저장용량이 부 족할 경우에, LRU 등의 방식을 사용하여 객체 단위로 교체한다.
그런데, 상기 프록시 서버(300)는 스트리밍 서비스의 경우에 콘텐츠의 세그먼트 전체를 교체하면, 삭제된 세그먼트에 대한 요청이 들어올 때마다 많은 오버헤드가 발생한다. 이와 같은 이유로 상기 프록시 서버(300)는 세그먼트 전체를 교체하는 것이 아니라 하나의 세그먼트 단위로 교체하는 것이 바람직하다.
이로써, 종래의 프록시 서버(300)에서 스트리밍 서비스의 세그먼트 기반 교체 방식은, 세그먼트 크기를 일정하게 미리 결정하는 방식, 새로 저장할 객체의 저장용량을 빨리 확보하기 위해 지수적으로 증가하는 세그먼트 크기로 결정하는 방식, 액세스 패턴에 따라 세그먼트 크기를 결정하는 방식 등이 있다.
또한, 종래에는 스트리밍 서비스에서 콘텐츠의 뒷부분보다 앞부분의 가중치가 더 높다는 가정으로 많은 캐싱 교체 알고리즘이 제안되었다. 예를 들어, 서두 캐싱(prefix caching)은 서두 부분을 미리 프록시에 캐싱하여 시작 지연시간을 줄일 수 있도록 하며, 다른 방식으로는 계층형 코딩된 데이터에서 희생될 세그먼트를 결정할 경우에 가장 인기없는 계층의 끝부분부터 삭제하는 방식도 제안되었다.
이하, 종래의 스트리밍 서비스의 캐싱 교체 알고리즘에 대하여 설명한다.
도 2는 종래의 클라이언트 실행위치에 따른 교체방식에 대한 일실시예 설명도이다.
종래의 클라이언트 실행위치에 따른 교체방식은, 멀티미디어 데이터를 서비스할 경우에 요청한 클라이언트의 실행위치를 고려한 교체방식이다.
예를 들어, "클라이언트 1", "클라이언트 2"가 특정부분에 액세스하고 해당 콘텐츠의 모든 세그먼트가 버퍼에 올라와 있을 경우에, 교체 대상 세그먼트로 선택될 세그먼트의 순서가 1부터 7까지 정해져 있다. 즉, 종래의 방식은 클라이언트의 현재 액세스 위치에서 가장 멀리 떨어져 있는 세그먼트부터 교체 대상이 된다. 이와 같은 종래의 방식은 모든 클라이언트가 순차적으로 데이터에 액세스한다는 가정하에 제안된 방식이다.
도 3은 종래의 계층형 코딩적용에 따른 교체방식에 대한 일실시예 설명도이다.
종래의 계층형 코딩적용에 따른 교체방식은 계층형 코딩으로 만들어진 콘텐츠를 위한 서비스에서 제안된 교체방식이다. 즉, 종래의 방식은 특정 콘텐츠에 대해 모든 계층이 버퍼에 올라와 있을 때 가장 상위 계층의 가장 끝부분부터 순차적으로 삭제해 나가며, 가장 상위 계층의 모든 세그먼트가 삭제된 이후에 그 다음 높은 계층의 세그먼트를 역시 끝부분부터 삭제한다. 이와 같은 종래의 방식도 모든 클라이언트가 순차적으로 데이터에 액세스한다는 가정하에 제안된 방식이다.
또 다른 방식으로, 종래의 캐시 교체 알고리즘에서는 객체의 가중치를 부여하기 위한 히트 카운트(hit count)를 이용한다. 즉, 특정 객체에 대한 요청이 있는 경우에는 히트 카운트가 "1"이 되고, 요청이 없는 경우는 "0"이 된다. 이와 같은 히트 카운트를 이용한 캐시 교체 알고리즘은, 순차적으로 데이터에 액세스하는 캐시에서 적용하기 용이하지만 VCR(Video Cassette Recorder) 기능을 이용하여 데이터에 액세스하는 스트리밍 응용에서 한계가 있다. 즉, 스트리밍 응용에서는 정지, 빨리 가기, 빨리 감기, 뒤로 가기, 점프, 재생 등과 같은 VCR 함수를 지원해야 하 기 때문이다.
더욱이, 최근 연구결과에 의하면, 교육용, 게임용, 영화용 콘텐츠에 관한 클라이언트의 액세스 패턴은, 많은 클라이언트가 단순히 순차적으로 액세스하는 것이 아니라 VCR 기능을 통한 다양한 액세스 패턴을 나타내는 것으로 보고되었다. 특히, 클라이언트들은 VCR 기능에서 점프 포워드(Jump forward) 및 점프 백워드(Jump backword)의 이용빈도가 가장 높고, 점프한 후의 위치는 이전 위치에 비해 비교적 가깝다고 제시되었다.
따라서, 콘텐츠에서 각 세그먼트의 가중치는 클라이언트의 요청패턴에 따라 달라질 수 있기 때문에, 종래의 프록시 서버(300)에서는 클라이언트의 요청패턴에 따라 다르게 부여되는 세그먼트의 가중치를 고려한 교체방식이 더욱 요구되고 있다.
본 발명은 상기와 같은 문제점을 해결하고 상기와 같은 요구에 부응하기 위하여 제안된 것으로, 클라이언트로 스트리밍 서비스를 제공하면서, 스트리밍 대상 세그먼트에 적용된 VCR 기능(예: 플레이, 빨리감기, 빨리가기, 점프 포워드, 점프 백워드 등)을 바탕으로 계산된 가중치를 클라이언트로부터 요청된 세그먼트별로 부여한 메타데이터를 이용하여 캐시 교체대상 세그먼트를 선택하기 위한, 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 더욱 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기의 목적을 달성하기 위한 본 발명은, 콘텐츠의 세그먼트를 버퍼에 캐싱하는 프록시 서버의 캐시 교체 장치에 있어서, 클라이언트로부터 요청된 콘텐츠에 대한 스트리밍 대상 세그먼트 및 해당 VCR 데이터를 확인하기 위한 클라이언트 에이전트 수단; 상기 확인된 해당 스트리밍 대상 세그먼트를 저장할 버퍼의 상태에 따라 희생할 세그먼트를 요구하고, 그 응답으로 수신된 희생 세그먼트 정보에 따라 상기 확인된 해당 스트리밍 대상 세그먼트를 저장하기 위한 버퍼 관리 수단; 및 상기 클라이언트 에이전트 수단에 의해 확인된 VCR 데이터에 대응된 세그먼트 가중치 및 상기 버퍼 관리 수단에 의해 전송된 버퍼상태를 이용하여 생성한 희생 세그먼트 정보를 상기 버퍼 관리 수단으로 전송하기 위한 메타데이터 관리수단을 포함한다.
또한, 본 발명은 상기 버퍼 관리 수단에 의해 버퍼에 저장된 해당 스트리밍 대상 세그먼트를 상기 VCR 데이터의 해당 기능에 따라 상기 클라이언트로 제공하기 위한 콘텐츠 전송수단을 더 포함한다.
또한, 본 발명은 콘텐츠의 세그먼트를 버퍼에 캐싱하는 프록시 서버에서 캐시 교체 방법에 있어서, 클라이언트로부터 콘텐츠에 대한 스트리밍 대상 세그먼트 및 해당 VCR 데이터가 요청되는 제1 단계; 상기 요청된 VCR 데이터에 따른 세그먼트 가중치를 생성하는 제2 단계; 상기 생성한 세그먼트 가중치와 상기 스트리밍 대상 세그먼트를 저장할 버퍼의 상태를 이용하여 희생 세그먼트를 결정하는 제3 단계; 및 상기 희생 세그먼트를 이용하여 버퍼의 캐시를 관리하는 제4 단계를 포함한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 4는 본 발명이 적용되는 스트리밍 서비스를 제공하기 위해 스트리밍 대상 세그먼트에 적용된 VCR 기능을 바탕으로 계산된 가중치에 대한 일실시예 예시도이다.
본 발명의 프록시 서버는 스트리밍 서비스를 제공하기 위해 플레이, 빨리가기, 빨리감기, 점프 포워드, 점프 백워드 등과 같은 VCR 기능을 고려하여 캐시 교체를 수행한다.
도 4에 도시된 바와 같이, 본 발명에서는 순서대로 VCR 기능이 요청되는 경 우에, 전체 세그먼트를 순서대로 플레이(play)하는 것과는 다르게 클라이언트로부터 요청된 해당 세그먼트에 가중치를 부여한다. 즉, 본 발명에서는 클라이언트로부터 콘텐츠에 대한 요청이 많다고 해서 콘텐츠를 구성하는 모든 세그먼트들의 가중치가 동일하지 않다.
예를 들어, 스트리밍 대상 세그먼트에 적용된 VCR 기능을 바탕으로 계산된 가중치는 기 정의된 계산함수에 따라 하기 [표 1]과 같이 정의한다.
VCR 기능 가중치
플레이(play) 1
빨리감기(fast rewind) 빨리가기(fast forward) 1/배속
점프 포워드(jump forword) 점프 백워드(jump backward) 0
상기 [표 1]과 같이, 스트리밍 대상 세그먼트에 적용된 VCR 기능을 바탕으로 계산된 가중치가 일반 플레이인 경우에 "1", 빨리감기 및 빨리가기의 경우에 배속에 따라 "1/배속", 점프 포워드 및 점프 백워드의 경우에 "0"과 같이 정의되면, 도 4에서 각각의 세그먼트들은 상기와 같이 정의된 가중치가 각각 다르게 부여된다. 즉, 세그먼트 "S0, S1, S6, S7, S8, S9"의 가중치는 "1"이고, 세그먼트 "S2, S3"의 가중치는 2배속인 경우에 "0.5"이고, 세그먼트 "S4, S5"의 가중치는 "0"이 된다.
한편, 프록시 서버는 저장공간에 한계가 있기 때문에 클라이언트로부터 스트리밍 요청이 많아지면 세그먼트 캐싱에 한계가 있다. 즉, 상기 프록시 서버는 캐싱된 세그먼트의 교체를 통해 캐싱할 저장공간을 확보해야 한다.
전술한 바와 같이, 상기 프록시 서버는 스트리밍 서비스를 제공하기 위해, 접근시간에 기반한 종래의 LRU 방식을 바로 적용하기에 어려움이 있다. 즉, 상기 프록시 서버에서는 클라이언트로부터 세그먼트가 요청되면, 전체 세그먼트의 마지막 접근시간을 수정하는 것이 적절치 않다. 왜냐하면, 다수의 클라이언트의 액세스 패턴은 하나의 콘텐츠에 대해 인기가 많은 영역에 집중되며 비인기 영역에 액세스 빈도가 매우 적기 때문이다.
이에 따라, 본 발명의 프록시 서버는 세그먼트 전체의 교체방식이 아니라 세그먼트 단위의 교체방식에 따른 클라이언트에 의한 액세스 패턴을 반영한 세그먼트 교체방식을 적용한다.
따라서, 본 발명의 프록시 서버는 상기 [표 1]과 같은 가중치를 고려하여 교체할 "희생 세그먼트"를 결정해야 한다. 즉, 상기 프록시 서버는 새로 읽어온 세그먼트를 캐싱하기 위해 희생 세그먼트를 결정해야 할 경우에, 단지 세그먼트에 대한 액세스 빈도 및 액세스 시간만을 고려하는 것이 아니라, 스트리밍 대상 세그먼트에 적용된 VCR 기능을 바탕으로 계산된 가중치를 클라이언트로부터 요청된 해당 세그먼트에 부여하여 희생 세그먼트를 결정한다.
부언하면, 본 발명의 프록시 서버는 저장공간이 부족하여 기 캐싱되어 있는 세그먼트를 희생시킬 시점이 되면, 스트리밍 대상 세그먼트에 적용된 VCR 기능을 바탕으로 계산된 가중치를 클라이언트로부터 요청된 세그먼트별로 부여하여 가장 가중치가 낮은 세그먼트를 희생 세그먼트로 선택하여 삭제한다.
도 5는 본 발명에 따른 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치에 대한 일실시예 구성도이다.
도 5에 도시된 바와 같이, 본 발명에 따른 프록시 서버에서 VCR 기능을 고려한 캐시 교체 장치(이하 "캐시 교체 장치"라 함, 500)는, 클라이언트 에이전트부(511), 콘텐츠 전송부(512), 버퍼 관리부(513), 메타데이터 관리부(514)를 포함한다. 이때, 상기 캐시 교체 장치(500)는 인터넷을 통해 클라이언트(520)와 연결되고, 프록시 서버에 있는 버퍼(530)가 연결된다.
클라이언트 에이전트(511)는 클라이언트(520)로부터 콘텐츠의 세그먼트가 요청되는 경우에, VCR 기능(또는 VCR 함수)에 대한 데이터(이하 "VCR 데이터"라 함)도 전달된다. 여기서, 상기 VCR 데이터는 플레이(play), 정지(pause), 빨리가기(fast forward), 빨기감기(fast rewind), 점프 포워드(jump forward), 점프 백워드(jump backward) 등에 관한 데이터이다.
이때, 상기 클라이언트 에이전트(511)는 클라이언트(520)로부터 전달된 VCR 데이터를 콘텐츠 전송부(512) 및 메타데이터 관리부(514)로 제공한다.
콘텐츠 전송부(512)는 클라이언트 에이전트부(511)로부터 전달된 VCR 데이터에 따라 버퍼 관리부(513)에 콘텐츠의 세그먼트를 요청한다. 이후, 상기 콘텐츠 전송부(512)는 버퍼 관리부(513)로부터 해당 세그먼트가 전송되면, 이를 클라이언트(520)로 전송한다.
버퍼 관리부(513)는 프록시 서버에 있는 버퍼(530)에 연결되며, 상기 버퍼(530)를 관리한다. 이때, 상기 버퍼 관리부(513)는 콘텐츠를 복수의 세그먼트별로 나눠 버퍼(530)에 저장한다.
또한, 상기 버퍼 관리부(513)는 콘텐츠 전송부(512)로부터 요청된 세그먼트가 버퍼(530)에 캐싱되어 있으면, 상기 콘텐츠 전송부(512)로 캐싱된 세그먼트를 제공한다.
여기서, 상기 버퍼 관리부(513)는 버퍼(530)에 콘텐츠 전송부(512)로부터 요청된 세그먼트가 없으면, 콘텐츠를 관리하는 서버로부터 해당 세그먼트를 읽어와 버퍼(530)에 저장한다. 이때, 상기 버퍼 관리부(513)는 읽어온 해당 세그먼트를 버퍼(530)에 저장할 공간이 없는 경우에, 메타데이터 관리부(514)로 버퍼(530)에 저장할 공간이 없는 상태를 통보하는데, 상기 메타데이터 관리부(514)로부터의 응답결과에 따라 버퍼(530)의 희생 세그먼트를 선택하여 삭제한 후 읽어온 세그먼트를 저장한다.
메타데이터 관리부(514)는 클라이언트 에이전트부(511)로부터 전달된 VCR 데이터를 통해 클라이언트의 요청패턴을 확인하여 각기 다른 가중치를 계산함으로써, 상기 클라이언트로부터 요청된 각각의 세그먼트에 가중치를 부여한다. 예를 들어, 상기 메타데이터 관리부(514)는 전술한 [표 1]과 같이 VCR 데이터가 "점프 포워드"인 경우에 이를 확인하여 해당 가중치를 계산한다. 이때, 상기 메타데이터 관리부(514)는 계산된 가중치가 "0"이며, 이에 따라 해당 세그먼트에 가중치 "0"을 부여한다.
또한, 상기 메타데이터 관리부(514)는 클라이언트 에이전트부(511)로부터 전달된 VCR 데이터에 따른 가중치를 콘텐츠의 해당 세그먼트별로 부여하여 테이블로 저장한 메타데이터를 관리한다.
예를 들어, 상기 메타데이터 관리부(514)는 하기 [표 2]와 같은 테이블 형태로 메타데이터를 관리한다.
콘텐츠 ID 세그먼트 번호 가중치 기타정보
드라마_id#1 1 10
드라마_id#1 2 15
드라마_id#1 3 9.3
상기 [표 2]와 같이, 버퍼(530)는 하나의 콘텐츠(즉, 드라마)를 복수 개의 세그먼트별로 나눠 관리한다. 이때, 상기 세그먼트의 가중치는 클라이언트의 요청패턴에 따라 각기 다른 가중치가 부여된다. 또한, 상기 기타정보에는 종래의 교체방식과 연동하여 이용되기 위해 필요한 최초 저장 시간 또는 마지막 액세스 시간 등의 정보가 저장된다.
한편, 상기 메타데이터 관리부(514)는 버퍼 관리부(513)로부터 버퍼(530)에 저장할 공간이 없는 상태가 통보되면, 기 관리중인 메타데이터를 이용하여 가중치가 가장 낮은 세그먼트를 선택하여 희생 세그먼트로 결정한다. 이때, 상기 메타데이터 관리부(514)는 상기와 같이 결정된 희생 세그먼트를 버퍼 관리부(513)에 알려준다.
도 6은 본 발명에 따른 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 방법에 대한 일실시예 흐름도이다.
도 6에 도시된 바와 같이, 본 발명의 캐시 교체 장치(500)는 클라이언트(520)로부터 해당 콘텐츠의 세그먼트 요청시에 VCR 데이터도 함께 전달된다(S601).
이때, 상기 캐시 교체 장치(500)는 VCR 데이터에 따른 가중치를 해당 콘텐츠의 세그먼트별로 부여하여 저장한다(S602).
이후, 상기 캐시 교체 장치(500)는 클라이언트(520)로부터 요청된 해당 콘텐츠의 세그먼트가 버퍼(530)에 저장되어 있는지를 확인한다(S603). 이때, 상기 캐시 교체 장치(500)는 버퍼(530)에 해당 콘텐츠의 세그먼트가 저장되어 있으면, 상기 해당 콘텐츠의 세그먼트를 클라이언트로 제공한다.
반면, 상기 캐시 교체 장치(500)는 버퍼(530)에 해당 콘텐츠의 세그먼트가 저장되어 있지 않으면, 콘텐츠를 관리하는 서버로부터 해당 콘텐츠의 세그먼트를 읽어온다(S604).
이후, 상기 캐시 교체 장치(500)는 버퍼(530)에 저장공간이 있는지를 확인한다(S605). 이때, 상기 캐시 교체 장치(500)는 버퍼(530)에 저장공간이 없으면, 먼저 버퍼(530)에서 가중치가 가장 작은 세그먼트를 "희생 세그먼트"로 결정하여 삭제하고, 상기 S604 단계와 같이 새로 읽어온 세그먼트를 버퍼(530)에 저장한다(S606). 여기서, 상기 캐시 교체 장치(500)는 버퍼(530)에 저장공간이 있으면, 상기 읽어온 콘텐츠의 세그먼트를 상기 버퍼(530)에 저장한다.
그런 다음, 상기 캐시 교체 장치(500)는 상기와 같이 새로 읽어온 세그먼트를 확인하여 클라이언트로 제공한다.
한편, 본 발명은 전술한 프록시 서버에 한정되어 해석되지 않고, 미디어 서버의 메인 메모리와 같은 멀티미디어 시스템에서도 적용될 수 있음을 당업자라면 쉽게 이해할 수 있을 것이다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은 멀티미디어 데이터를 사용자에게 서비스할 경우에 멀티미디어 데이터를 세그먼트별로 나눠 사용자에 의한 VCR 기능 요청에 따른 가중치를 부여함으로써, VCR 기능을 고려하여 캐시를 교체할 수 있는 효과가 있다.
또한, 본 발명은 사용자의 실제 접근 패턴을 고려함으로써, 더욱 현실적으로 캐시를 교체할 수 있어 효율적인 버퍼관리로 시스템의 성능을 높일 수 있는 효과가 있다.
또한, 본 발명은 사용자에 의해 멀티미디어 데이터가 플레이 요청 이후에 정지/빨리가기/빨리감기 등의 VCR 기능에 대해 해당 세그먼트에 각기 다른 가중치를 부여함으로써 현실적인 교체 버퍼 정책을 수행할 수 있는 효과가 있다.

Claims (8)

  1. 콘텐츠의 세그먼트를 버퍼에 캐싱하는 프록시 서버의 캐시 교체 장치에 있어서,
    클라이언트로부터 요청된 콘텐츠에 대한 스트리밍 대상 세그먼트 및 해당 VCR 데이터를 확인하기 위한 클라이언트 에이전트 수단;
    상기 확인된 해당 스트리밍 대상 세그먼트를 저장할 버퍼의 상태에 따라 희생할 세그먼트를 요구하고, 그 응답으로 수신된 희생 세그먼트 정보에 따라 상기 확인된 해당 스트리밍 대상 세그먼트를 저장하기 위한 버퍼 관리 수단; 및
    상기 클라이언트 에이전트 수단에 의해 확인된 VCR 데이터에 대응된 세그먼트 가중치 및 상기 버퍼 관리 수단에 의해 전송된 버퍼상태를 이용하여 생성한 희생 세그먼트 정보를 상기 버퍼 관리 수단으로 전송하기 위한 메타데이터 관리수단
    을 포함하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치.
  2. 제1 항에 있어서,
    상기 버퍼 관리 수단에 의해 버퍼에 저장된 해당 스트리밍 대상 세그먼트를 상기 VCR 데이터의 해당 기능에 따라 상기 클라이언트로 제공하기 위한 콘텐츠 전송수단
    을 더 포함하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치.
  3. 제1 항에 있어서,
    상기 버퍼 관리 수단은,
    상기 클라이언트로부터 요청된 스트리밍 대상 세그먼트가 미저장되어 있고 새로 읽어온 스트리밍 대상 세그먼트를 저장할 공간이 없는 버퍼상태를 확인함에 따라 상기 메타데이터 관리수단으로 희생 세그먼트 정보를 요구하는 것을 특징으로 하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치.
  4. 제1 항에 있어서,
    상기 메타데이터 관리수단은,
    상기 버퍼 관리 수단으로부터 버퍼상태가 통보됨에 따라 가장 세그먼트 가중치가 낮은 세그먼트를 희생 세그먼트로 결정하는 것을 특징으로 하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치.
  5. 제1 항 또는 제4 항에 있어서,
    상기 메타데이터 관리수단은,
    상기 클라이언트 에이전트 수단에 의해 확인된 VCR 데이터에 대응된 세그먼트 가중치와 종래의 교체방식과 연동하기 위한 최초 저장 시간 및 마지막 액세스 시간을 테이블 형태의 메타데이터로 관리하는 것을 특징으로 하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 장치.
  6. 콘텐츠의 세그먼트를 버퍼에 캐싱하는 프록시 서버에서 캐시 교체 방법에 있어서,
    클라이언트로부터 콘텐츠에 대한 스트리밍 대상 세그먼트 및 해당 VCR 데이터가 요청되는 제1 단계;
    상기 요청된 VCR 데이터에 따른 세그먼트 가중치를 생성하는 제2 단계;
    상기 생성한 세그먼트 가중치 및 상기 스트리밍 대상 세그먼트를 저장할 버퍼의 상태에 따라 희생 세그먼트를 결정하는 제3 단계; 및
    상기 희생 세그먼트를 이용하여 버퍼의 캐시를 관리하는 제4 단계
    를 포함하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 방법.
  7. 제6 항에 있어서,
    상기 제3 단계는,
    상기 스트리밍 대상 세그먼트가 미저장되어 있고 새로 읽어온 스트리밍 대상 세그먼트를 저장할 공간이 없는 버퍼상태가 확인되는 경우에, 상기 세그먼트 가중치를 이용하여 가중치가 가장 낮은 세그먼트를 희생 세그먼트로 결정하는 것을 특징으로 하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 방법.
  8. 제6 항에 있어서,
    상기 제2 단계에서,
    상기 요청된 VCR 데이터에 따른 세그먼트 가중치를 생성하여 메타데이터로 관리하는 것을 특징으로 하는 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시 교체 방법.
KR1020070017874A 2007-02-22 2007-02-22 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법 KR100860076B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070017874A KR100860076B1 (ko) 2007-02-22 2007-02-22 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070017874A KR100860076B1 (ko) 2007-02-22 2007-02-22 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20080078172A true KR20080078172A (ko) 2008-08-27
KR100860076B1 KR100860076B1 (ko) 2008-09-24

Family

ID=39880402

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070017874A KR100860076B1 (ko) 2007-02-22 2007-02-22 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100860076B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10530827B2 (en) 2015-06-25 2020-01-07 Samsung Electronics Co., Ltd. Accelerator control method and accelerator using the same
CN110858912A (zh) * 2018-08-22 2020-03-03 中国电信股份有限公司 流媒体缓存方法和系统、缓存策略服务器、流服务节点

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101150725B1 (ko) 2008-10-29 2012-06-08 에스케이플래닛 주식회사 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법, 그 컨텐츠서버 및 컨텐츠 제공시스템

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100374251B1 (ko) * 2000-05-18 2003-03-04 주식회사 스마일미디어 인터넷을 이용한 멀티미디어 제공시스템 및 그 제공방법
JP3729121B2 (ja) 2001-11-05 2005-12-21 日本電気株式会社 コンテンツ配信システムと配信方法及びそのコンピュータプログラム
KR100476781B1 (ko) * 2001-12-28 2005-03-16 삼성전자주식회사 캐싱기법을 이용한 mpeg-4 시스템 단말의 제어방법
EP1593047A4 (en) 2003-02-13 2010-06-09 Nokia Corp METHOD OF SIGNALING STREAMING QUALITY ADAPTATION AND CONTROL MCHANISMS IN MULTIMEDIA STREAMING
JP2004312413A (ja) * 2003-04-08 2004-11-04 Sony Corp コンテンツ提供サーバ、情報処理装置、および方法、並びにコンピュータ・プログラム
KR100715143B1 (ko) * 2005-10-27 2007-05-10 니트젠테크놀러지스 주식회사 스트리밍 기반의 컨텐츠 분산형 네트워크 시스템과 파일 분할, 병합 및 재생 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10530827B2 (en) 2015-06-25 2020-01-07 Samsung Electronics Co., Ltd. Accelerator control method and accelerator using the same
CN110858912A (zh) * 2018-08-22 2020-03-03 中国电信股份有限公司 流媒体缓存方法和系统、缓存策略服务器、流服务节点

Also Published As

Publication number Publication date
KR100860076B1 (ko) 2008-09-24

Similar Documents

Publication Publication Date Title
KR101228230B1 (ko) 컨텐츠 전달 네트워크 내의 노드에서 하나 이상의 컨텐츠 아이템을 캐싱하는 방법, 장치 및 제품
US8612668B2 (en) Storage optimization system based on object size
US7596664B2 (en) Collapsed distributed cooperative memory for interactive and scalable media-on-demand systems
WO2011010688A1 (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信プログラム
US20170123713A1 (en) Device and process for data storage and read/write efficiency
US20240048792A1 (en) System and method for storing multimedia files using an archive file format
KR20200101047A (ko) 실시간 캐싱 기법을 이용한 동영상 스트리밍 방법 및 그 시스템
KR100860076B1 (ko) 프록시 서버에서 스트리밍 서비스를 제공하기 위한 캐시교체 장치 및 그 방법
KR101169041B1 (ko) 캐시서버 및 멀티미디어 컨텐츠 제공 방법
KR20020057837A (ko) 스트리밍 서비스 방법 및 장치
JP2010191774A (ja) コンテンツ配信システム、コンテンツ配信装置及びコンテンツ配信方法ならびにそのプログラム、データストレージ装置とその処理方法およびプログラム
KR100479334B1 (ko) 인터넷 기반 멀티미디어 스트리밍 서비스를 위한 동적선반입 시스템 및 방법
Ponnusamy et al. Cache Optimization on Hot‐Point Proxy Caching Using Weighted‐Rank Cache Replacement Policy
US9229944B2 (en) Scalable networked digital video recordings via shard-based architecture
JP2006139398A (ja) キャッシュサーバ及びコンテンツ選定保持方法
KR100303019B1 (ko) 프록시서버를이용한주문형비디오시스템
JP2017520866A (ja) 情報指向ネットワーキング(icn)ルータ
Hsu et al. A dynamic cache scheme for multimedia streams on heterogeneous networking environments
Park et al. Efficient segment based streaming media transcoding proxy for various types of mobile devices
Jayarekha et al. An Adaptive Dynamic Replacement Approach for a Multicast based Popularity Aware Prefix Cache Memory System
EP3062210B1 (en) Method and server for the storage of multimedia content and its delivery in adaptive streaming systems
TWI513284B (zh) 反向代理系統及其方法
KR20060122250A (ko) 스트리밍 서비스 방법
Park et al. A dynamic caching algorithm based on the pheromone for content distribution networks
Su et al. Retrieve Scalable Image Contents over Image Contents Network by Efficient Caching Algorithms

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
LAPS Lapse due to unpaid annual fee