KR101373650B1 - 스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체 - Google Patents

스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체 Download PDF

Info

Publication number
KR101373650B1
KR101373650B1 KR1020120042089A KR20120042089A KR101373650B1 KR 101373650 B1 KR101373650 B1 KR 101373650B1 KR 1020120042089 A KR1020120042089 A KR 1020120042089A KR 20120042089 A KR20120042089 A KR 20120042089A KR 101373650 B1 KR101373650 B1 KR 101373650B1
Authority
KR
South Korea
Prior art keywords
streaming
content
playlist
cache
terminal
Prior art date
Application number
KR1020120042089A
Other languages
English (en)
Other versions
KR20130119153A (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 KR1020120042089A priority Critical patent/KR101373650B1/ko
Publication of KR20130119153A publication Critical patent/KR20130119153A/ko
Application granted granted Critical
Publication of KR101373650B1 publication Critical patent/KR101373650B1/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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 스트리밍 서비스를 제공하는 기술에 관한 것으로서, 특히, 네트워크 상태 변화에 강인한 스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체에 관한 것이다.

Description

스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체{METHOD, TERMINAL, SERVER, AND RECORDING MEDIUM FOR PROVIDING STREAMING SERVCIE}
본 발명은 스트리밍 서비스를 제공하는 기술에 관한 것이다.
종래의 스트리밍 기술은, 서버에서 단말기로의 콘텐츠 전송과 함께 단말기에서의 콘텐츠 재생이 동시에 진행되는 실시간 재생 기술이다.
따라서, 종래의 스트리밍 기술을 이용하여, 플레이리스트에서의 복수의 콘텐츠를 연속적으로 스트리밍하는 스트리밍 서비스를 제공하게 되면, 서버에서 단말기로 콘텐츠의 전송이 시작되어 이와 거의 동시에 단말기에서 콘텐츠의 재생이 실시간으로 진행되게 되고, 콘텐츠의 재생이 완료되면, 다음 콘텐츠의 전송이 다시 시작되어 다음의 콘텐츠의 재생이 실시간으로 이루어진다.
이와 같이, 종래의 스트리밍 기술에서는 콘텐츠 전송과 콘텐츠 재생이 동시에 이루어지기 때문에, 플레이리스트에서의 하나 이상의 콘텐츠가 단말기로 다운로드 되지 않은 상황에서, 단말기와 서버 간의 네트워크 상태가 나빠지거나 단말기 또는 서버의 통신 모듈에 문제가 발생하게 되면, 이후, 콘텐츠 재생이 정상적으로 이루어지지 못하는 문제점, 즉 스트리밍 서비스를 정상적으로 제공하지 못하는 문제점이 발생할 수 있다. 특히, 이러한 문제점은, 단말기가 스마트폰, 이동통신단말기 등과 같은 모바일 단말기이고, 사용자가 이러한 모바일 단말기를 들고 이동하면서 스트리밍 서비스를 이용하는 경우, 매우 흔하게 발생할 수 있는 문제점이다.
이러한 배경에서, 본 발명의 목적은, 네트워크 상태 변화에 강인한 스트리밍 서비스 기술을 제공하는 데 있다.
전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 단말기가 스트리밍 서비스를 제공하는 방법에 있어서, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 스트리밍 요청 입력 단계; 상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버로 송신하여, 상기 특정 콘텐츠를 상기 서버로부터 수신함과 동시에 재생하고, 상기 특정 콘텐츠가 상기 서버로부터 수신되는 동안에, 상기 특정 콘텐츠를 캐시에 캐싱하는 스트리밍 제공 단계; 및 상기 특정 콘텐츠가 상기 캐시에 캐싱되는 것이 완료되면, 상기 특정 콘텐츠가 재생되고 있더라도, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 상기 서버로부터 수신하여 상기 캐시에 미리 캐싱해두는 프리-캐싱 단계를 포함하는 스트리밍 서비스를 제공하는 방법을 제공한다.
다른 측면에서, 본 발명은, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 스트리밍 요청 입력부; 상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버로 송신하여, 상기 특정 콘텐츠를 상기 서버로부터 수신함과 동시에 재생하는 스트리밍 제공부; 및 상기 특정 콘텐츠가 상기 서버로부터 수신되는 동안에 상기 특정 콘텐츠를 캐시에 캐싱하고, 상기 특정 콘텐츠가 상기 캐시에 캐싱되는 것이 완료되면, 상기 특정 콘텐츠가 재생되고 있더라도, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 상기 서버로부터 수신하여 상기 캐시에 미리 캐싱해두는 캐싱 관리부를 포함하는 스트리밍 서비스를 제공하는 단말기를 제공한다.
또 다른 측면에서, 본 발명은, 스트리밍 서비스를 제공하는 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 기능과, 상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버로 송신하여, 상기 특정 콘텐츠를 상기 서버로부터 수신함과 동시에 재생하는 기능과, 상기 특정 콘텐츠가 상기 서버로부터 수신되는 동안에, 상기 특정 콘텐츠를 캐시에 캐싱하는 기능과, 상기 특정 콘텐츠가 상기 캐시에 캐싱되는 것이 완료되면, 상기 특정 콘텐츠가 재생되고 있더라도, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 상기 서버로부터 수신하여 상기 캐시에 미리 캐싱해두는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또 다른 측면에서, 본 발명은, 서버가 스트리밍 서비스를 제공하는 방법에 있어서, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 단말기로부터 수신하는 스트리밍 요청 수신 단계; 상기 스트리밍 요청 정보에 따라 상기 특정 콘텐츠를 상기 단말기로 송신함으로써, 상기 특정 콘텐츠에 대한 스트리밍을 제공하는 스트리밍 제공 단계; 및 상기 특정 콘텐츠의 재생이 상기 단말기에서 완료되지 않았더라도, 상기 단말기의 캐시에 상기 특정 콘텐츠의 캐싱이 완료되면, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠가 상기 단말기의 캐시에 미리 캐싱되도록 상기 하나 이상의 나머지 콘텐츠를 순차적으로 송신하는 캐싱 제공 단계를 포함하는 스트리밍 서비스를 제공하는 방법을 제공한다.
또 다른 측면에서, 본 발명은, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 단말기로부터 수신하는 스트리밍 요청 수신부; 상기 스트리밍 요청 정보에 따라 상기 특정 콘텐츠를 상기 단말기로 송신함으로써, 상기 특정 콘텐츠에 대한 스트리밍을 제공하는 스트리밍 제공부; 및 상기 특정 콘텐츠의 재생이 상기 단말기에서 완료되지 않았더라도, 상기 단말기의 캐시에 상기 특정 콘텐츠의 캐싱이 완료되면, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠가 상기 단말기의 캐시에 미리 캐싱되도록 상기 하나 이상의 나머지 콘텐츠를 순차적으로 송신하는 프리-캐싱 지원부를 포함하는 스트리밍 서비스를 제공하는 서버를 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 네트워크 상태 변화에 강인한 스트리밍 서비스 기술을 제공하는 효과가 있다.
본 발명에 의하면, 네트워크 상태가 좋지 못한 경우에도, 원하는 플레이리스트 상의 콘텐츠가 단말기에서 정상적으로 재생될 수 있도록 해주는 스트리밍 서비스를 제공하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 시스템에 대한 도면이다.
도 2는 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 단말기에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 스트리밍 서비스의 유형과 그와 관련된 단말기 내부 스트리밍 제공부의 상세 블록도이다.
도 4는 본 발명의 일 실시예에 따른 단말기가 스트리밍 서비스를 제공하는 방법에 대한 흐름도이다.
도 5은 본 발명의 일 실시예에 따른 단말기가 스트리밍 서비스를 제공하는 방법에서, 페이크-스트리밍 처리를 통한 추가 스트리밍 제공 단계에 대한 상세 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 서버에 대한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 서버가 스트리밍 서비스를 제공하는 방법에 대한 흐름도이다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 스트리밍 서비스와 종래의 스트리밍 서비스 간의 재생 차이점을 예시적으로 설명하기 위한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 스트리밍 서비스(Streaming Service)를 제공하는 시스템에 대한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 스트리밍 서비스(Streaming Service)를 제공하는 시스템은, 콘텐츠를 저장하고 단말기(100)로 송신하는 서버(110)와, 서버(110)로부터 콘텐츠를 수신하고, 수신되고 있는 콘텐츠를 캐싱하며, 수신되는 콘텐츠 또는 캐싱된 콘텐츠를 재생하는 단말기(100) 등을 포함한다.
본 발명의 일 실시예에 따른 "스트리밍"은, 음악이나 동영상 등의 콘텐츠가 단말기(100)에서 재생되도록 하는 것을 의미하는 것으로서, 종래의 통상적인 스트리밍과는 차이가 있다.
본 발명의 일 실시예에 따른 스트리밍(Streaming)은, 캐시에 미리 캐싱되어 있는 콘텐츠를 재생할 수도 있다는 점에서, 해당 콘텐츠를 수신하면서 동시에 실시간으로 재생하는 통상적인 스트리밍과는 다르다.
즉, 통상의 스트리밍은 하나의 콘텐츠에 대한 수신과 재생이 동시에 이루어지는 반면, 본 발명의 일 실시예에 따른 스트리밍은 하나의 콘텐츠에 대한 수신과 재생이 전혀 무관하게도 이루어질 수도 있다는 점에서 다르다.
물론, 본 발명의 일 실시예에 따른 스트리밍은, 해당 콘텐츠를 수신하면서 동시에 실시간으로 재생하는 통상적인 스트리밍도 포함한다.
또한, 본 발명의 일 실시예에 따른 스트리밍은, 해당 콘텐츠가 영구적으로 저장되지 않는다는 점에서, 단말기(100)에 영구적으로 저장된 콘텐츠를 재생하는 로컬 재생과는 다르다.
본 발명의 일 실시예에 따른 스트리밍 처리 유형은, 기본적으로, 수신과 재생이 동시에 이루어지는 통상의 스트리밍과 동일한 "리얼-스트리밍(Real-Streaming, RS) 처리"와, 네트워크 상태와는 무관하게 캐시에 미리 캐싱된 콘텐츠를 재생하는 "넌-스트리밍(Non-Streaming, NS) 처리"와, 네트워크 상태에 따라 가능한 경우에만 캐시에 미리 캐싱된 콘텐츠를 재생하는 "페이크-스트리밍(Fake-Streaming, FS) 처리" 중 하나 이상을 더 포함할 수 있다.
본 발명의 일 실시예에서, 전술한 3가지 스트리밍 처리 유형 모두에 대하여, 사용자는 통상의 스트리밍(리얼-스트리밍)을 제공받는 것으로 인지하고, 서비스 요금 또한 통상의 스트리밍 서비스 요금으로 지급 처리된다.
전술한 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하기 위한 단말기(100)는, 일반적인 데스크 탑이나 노트북 등의 일반 PC를 포함하고, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기 등을 포함할 수 있으며, 이에 제한되지 않고, 서버(110)와 통신 가능한 어떠한 전자 기기로 폭넓게 해석되어야 할 것이다.
전술한 서버(110)는 하드웨어적으로는 통상적인 웹 서버(Web Server) 또는 웹 어플리케이션 서버(Web Application Server) 또는 왑 서버(WAP Server)와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는, 도 2와 관련하여 아래에서 상세하게 설명할 바와 같이, C, C++, Java, PHP, .Net, Python, Ruby 등 여하한 언어를 통하여 구현되어 여러 가지 기능을 하는 프로그램 모듈(Module)을 포함할 수 있다.
또한, 서버(110)는, 네트워크(120)를 통하여 불특정 다수 클라이언트(단말기(100)를 포함) 및/또는 다른 서버와 연결될 수 있는데, 이에 따라, 서버(110)는 클라이언트 또는 다른 서버의 작업수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 또는 이러한 컴퓨터 시스템을 위하여 설치되어 있는 컴퓨터 소프트웨어(서버 프로그램)를 뜻하는 것일 수도 있다.
또한, 서버(110)는, 전술한 서버 프로그램 이외에도, 서버(110) 상에서 동작하는 일련의 응용 프로그램(Application Program)과, 경우에 따라서는 내부 또는 외부에 구축되어 있는 각종 데이터베이스를 포함하는 넓은 개념으로 이해되어야 할 것이다.
여기서, 데이터베이스는, 서버 또는 다른 장치 등에 의해 사용될 목적으로 정보나 자료 등의 데이터가 구조화되어 관리되는 데이터의 집합체를 의미할 수 있으며, 이러한 데이터의 집합체를 저장하는 저장매체를 의미할 수도 있다.
또한, 이러한 데이터베이스는 데이터의 구조화 방식, 관리 방식, 종류 등에 따라 분류된 복수의 데이터베이스를 포함하는 것일 수도 있다.
경우에 따라서, 데이터베이스는 정보나 자료 등을 추가, 수정, 삭제 등을 할 수 있도록 해주는 소프트웨어인 데이터베이스 관리시스템(Database Management System, DBMS)을 포함할 수도 있다.
또한, 서버(110)는 콘텐츠, 각종 정보 및 데이터를 데이터베이스에 저장시키고 관리할 수 있다. 여기서, 데이터베이스는 서버(110)의 내부 또는 외부에 구현될 수 있다.
또한, 서버(110)는 일반적인 서버용 하드웨어에 도스(DOS), 윈도우(windows), 리눅스(Linux), 유닉스(UNIX), 매킨토시(Macintosh) 등의 운영체제에 따라 다양하게 제공되고 있는 서버 프로그램을 이용하여 구현될 수 있으며, 대표적인 것으로는 윈도우 환경에서 사용되는 웹 사이트(Website), IIS(Internet Information Server)와 유닉스환경에서 사용되는 Apache, Nginx, Light HTTP 등이 이용될 수 있다.
한편, 네트워크(120)는 서버(110)와 단말기(100)를 연결해주는 망(Network)으로서, LAN(Local Area Network), WAN(Wide Area Network)등의 폐쇄형 네트워크일 수도 있으나, 인터넷(Internet)과 같은 개방형 네트워크일 수도 있다. 여기서, 인터넷은 TCP/IP 프로토콜 및 그 상위계층에 존재하는 여러 서비스, 즉 HTTP(HyperText Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol), SNMP(Simple Network Management Protocol), NFS(Network File Service), NIS(Network Information Service)를 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미한다.
또한, 단말기(100)가 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함하는 경우, 네트워크(120)는 이동 통신망이나 와이파이(WiFi) 망 등의 무선 액세스 망을 더 포함할 수도 있다.
이상에서 간략하게 전술한 본 발명의 일 실시예에 따른 스트리밍 서비스에 대하여, 아래에서 더욱 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 단말기(100)에 대한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 단말기(100)는, 플레이리스트(Playlist)에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 스트리밍 요청 입력부(220)와, 특정 콘텐츠에 대한 스트리밍 요청 정보를 통신부(230)를 통해 서버(110)로 송신하여, 특정 콘텐츠를 통신부(230)를 통해 서버(110)로부터 수신함과 동시에 재생하는 스트리밍 제공부(240)와, 특정 콘텐츠가 서버(110)로부터 수신되는 동안에 특정 콘텐츠를 캐시(Cache, 260)에 캐싱(Caching)하고, 특정 콘텐츠에 대한 캐싱이 완료되면, 특정 콘텐츠가 재생되고 있더라도, 플레이리스트에서 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠(예: 다음 재생 순서의 콘텐츠)를 서버(110)로부터 수신하여 캐시(260)에 미리 캐싱해두는 캐싱 관리부(250) 등을 포함한다.
한편, 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 단말기(100)는, 자동 또는 사용자 입력에 의한 리스트 선택 정보에 따라 미리 설정된 리스트 중에서 선택된 하나를 플레이리스트로서 설정하거나, 자동 또는 사용자 입력에 의한 콘텐츠 선택 정보에 따라 선택된 콘텐츠가 포함된 플레이리스트를 설정하는 플레이리스트 설정부(210)를 더 포함할 수도 있다.
전술한 스트리밍 제공부(240)는, 동일한 플레이리스트에 포함되고 캐시(260)에 캐싱되어 있는 임의의 콘텐츠(동일한 플레이리스트에 포함된 콘텐츠 중에서 최초의 스트리밍 요청에 따라 캐싱된 특정 콘텐츠, 또는 특정 콘텐츠의 캐싱 완료 이후 캐시(260)에 캐싱된 콘텐츠)에 대한 스트리밍 요청 정보가 스트리밍 요청 입력부(220)에 의해 입력되면, 서버(110)와의 스트리밍 요청 절차 없이, 캐시(260)에 캐싱된 해당 콘텐츠를 바로 재생할 수 있다.
스트리밍 제공부(240)는, 플레이리스트에 포함된 콘텐츠 중에서 최초의 스트리밍 요청 정보에 해당하는 특정 콘텐츠에 대해서는, 서버(110)로부터 수신하면서 동시에 재생함으로써, 스트리밍을 제공할 수 있다. 이때 제공되는 스트리밍은, 통상의 스트리밍과 동일한 것으로서, 본 명세서에서는 "리얼-스트리밍(Real-Streaming, RS)"이라고 한다.
또한, 스트리밍 제공부(240)는, 특정 콘텐츠에 대한 리얼-스트리밍이 제공되는 동안(즉, 최초의 스트리밍 요청 정보에 따라 특정 콘텐츠가 재생되고 있는 동안)에, 캐시(260)에 캐싱이 완료된 특정 콘텐츠에 대한 스트리밍 요청 정보가 다시 입력되거나, 또는 특정 콘텐츠에 대한 리얼-스트리밍이 제공되는 동안(즉, 최초의 스트리밍 요청 정보에 따라 특정 콘텐츠가 재생되고 있는 동안)에, 특정 콘텐츠의 캐싱 완료 이후 캐시(260)에 미리 캐싱된 콘텐츠에 대하여 스트리밍 요청 정보가 추가로 입력되면, 서버(110)로 스트리밍 요청 정보를 송신하지 않고, 즉, 서버(110)로부터 해당 콘텐츠를 수신하지 않고도, 캐시(260)에 캐싱된 해당 콘텐츠를 재생함으로써, 스트리밍을 제공할 수 있다.
이때, 제공되는 스트리밍은, 서버(100)로부터 콘텐츠 수신 없이 재생이 된다는 점에서, 서버(110)로부터의 수신과 재생이 동시에 이루어지는 통상의 스트리밍(즉, 본 발명의 리얼-스트리밍)과는 다르다. 또한, 스트리밍 요청 정보에 따라 제공되고 사용자는 통상의 스트리밍(리얼-스트리밍)으로 인지한다는 점에서, 단말기(100)의 메모리에 영구적으로 저장된 콘텐츠를 로컬에서 재생하는 것과도 구별된다.
이와 같이, 통상의 스트리밍(본 발명의 리얼-스트리밍) 및 로컬 재생과 모두 구별되는 본 발명의 스트리밍은, 네트워크 상태와는 관계없이 캐시(260)에 캐싱된 해당 콘텐츠를 재생하는 "넌-스트리밍(Non-Streaming, NS)" 및/또는 네트워크 상태에 따라 캐시(260)에 캐싱된 해당 콘텐츠를 재생하는 "페이크-스트리밍(Fake-Streaming, FS)"일 수 있다.
다시 말해, 스트리밍 제공부(240)는, 리얼-스트리밍(RS)을 기본적으로 제공하고, 넌-스트리밍(NS) 및/또는 페이크-스트리밍(FS)을 추가로 더 제공할 수 있다.
위에서 언급한 바 있는 스트리밍의 유형(RS, NS, FS)과 관련하여, 단말기(100) 내부 스트리밍 제공부(240)에 대하여, 도 3을 참조하여 더욱 상세하게 설명한다.
도 3은 본 발명의 일 실시예에 따른 스트리밍 서비스의 유형과 그와 관련된 단말기(100) 내부 스트리밍 제공부(240)의 상세 블록도이다.
도 3을 참조하면, 스트리밍 제공부(240)는, 스트리밍 요청 정보(플레이리스트에서의 최초의 스트리밍 요청 정보)에 따라 서버(110)로부터 해당 콘텐츠를 수신함과 동시에 재생하는 "리얼-스트리밍 처리부(310)"를 기본적으로 포함한다. 도 3에서, 굵은 실선 화살표가 리얼-스트리밍 데이터 플로우이다.
또한, 스트리밍 제공부(240)는, 스트리밍 요청 정보에 따라, 네트워크 상태와는 무관하게, 캐시(260)에 캐싱해둔 해당 콘텐츠를 재생하는 "넌-스트리밍 처리부(320)"와, 스트리밍 요청 정보에 따라 네트워크 상태가 미리 정의된 불안정한 연결 상태 또는 스트리밍 적합 상태인 경우에 캐시(260)에 캐싱해둔 해당 콘텐츠를 재생하고, 네트워크 상태가 네트워크 단절 상태인 경우에는 캐시(260)에 해당 콘텐츠가 캐싱되어 있더라도 해당 콘텐츠를 재생하는 것을 제한하는 "페이크-스트리밍 처리부(330)" 중 하나 이상을 더 포함할 수 있다. 도 3에서, 굵은 점선 화살표가 캐시(260)에서 캐싱된 콘텐츠가 재생되는 넌-스트리밍 또는 페이크-스트리밍 데이터 플로우이다. 가는 점선 화살표는 통신부(230)를 통해 서버(110)로부터 수신된 콘텐츠가 캐시(260)에 캐싱되는 플로우이다.
위에서 언급한 "네트워크 단절 상태"는, 단말기(100)와 서버(110) 간에 통신이 전혀 불가능한 상태로서, 확인 방법으로서는, 일 예로, 단말기(100)의 통신 모듈이 동작하지 않거나 비정상적으로 동작하는 것을 확인하거나, 단말기(100)와 서버(110) 간에 세션 설정이 안 되거나, 단말기(100)와 서버(110) 간에 전송 시간(예: RTT(Round Trip Time) 등)이 미리 정의된 제1 임계 시간 이상으로 측정되거나, 단말기(100)와 서버(110) 간에 패킷 손실율(Packet Loss Rate)가 미리 정의된 제1 임계 비율 이상으로 측정될 때, 네트워크 상태를 네트워크 단절 상태(오프라인 상태를 포함하는 의미)로 확인할 수 있다.
또한, "불안정한 연결 상태"는, 단말기(100)와 서버(110) 간에 통신이 가능하나, 즉, 네트워크 단절 상태는 아니나, 단말기(100)와 서버(110) 간에 연결이 불안정하여 전송 지연이 너무 길거나 패킷 손실이 빈번히 발생하게 되어 콘텐츠 재생이 매끄럽지 못하고 뚝뚝 끊어지는 상태를 의미하는 것으로서, 확인 방법으로서는, 일 예로, 단말기(100)와 서버(110) 간에 전송 시간(예: RTT(Round Trip Time) 등)이 미리 정의된 제2 임계 시간 이상 제1 임계 시간 미만으로 측정되거나, 단말기(100)와 서버(110) 간에 패킷 손실율(Packet Loss Rate)가 미리 정의된 제2 임계 비율 이상 제1 임계 비율 미만으로 측정될 때, 네트워크 상태를 불안정한 연결 상태로 확인할 수 있다.
위에서 언급한 네트워크 단절 상태와 불안정한 연결 상태는, 콘텐츠 전송/재생이 전혀 안 되거나 상당히 문제가 있는 상태로서, "스트리밍 부적합 상태"에 포함된다.
이에 비해, "스트리밍 적합 상태"는 전술한 스트리밍 부적합 상태가 아닌 상태, 즉, 네트워크 단절 상태와 불안정한 연결 상태가 아닌 상태를 의미한다.
다시 말해, 페이크-스트리밍 처리부(330)는, 네트워크 상태가 네트워크 단절 상태일 때에는 캐시(260)에 해당 콘텐츠가 캐싱되어 있더라도 해당 콘텐츠를 재생하는 것을 제한하고, 네트워크 상태가 불안정한 연결 상태 또는 스트리밍 적합 상태일 때에는 캐시(260)에 캐싱해둔 해당 콘텐츠를 재생한다.
넌-스트리밍 처리부(320)는, 네트워크 상태와 무관하게, 스트리밍 요청 정보에 따라, 캐시(260)에 캐싱해둔 해당 콘텐츠를 재생한다.
한편, 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 단말기(100)는, 플레이리스트 변경 요청 정보 또는 애플리케이션 종료 요청 정보가 입력되면, 캐시(260)에 캐싱해둔 콘텐츠의 전부 또는 일부에 대한 삭제를 제어하는 캐시 관리부(260)를 더 포함할 수 있다.
이러한 캐시 관리부(260)에 의해, 캐시(260)에 캐싱해둔 콘텐츠가 삭제됨으로써, 캐시(260)의 콘텐츠 저장 공간을 확보할 수 있다.
본 발명의 일 실시예에 따른 스트리밍 서비스에 따라 단말기(100)에 재생되는 모든 콘텐츠는, 단말기(100)에 영구적인 저장과 무한 반복 재생 가능한 형태의 다운로드 서비스를 통해 제공되는 콘텐츠가 아니기 때문에, 이러한 캐시 관리부(260)에 의해, 캐시(260)에 캐싱해둔 콘텐츠가 삭제됨으로써, 캐시(260)에 캐싱해둔 콘텐츠가 로컬 재생으로 영구적으로 이용되지 않도록 할 수 있다. 또한, 이를 통해, 악의적인 사용자에 의한 콘텐츠 어뷰징(Content Abusing)을 방지할 수 있다.
다만, 캐시 관리부(260)는, 플레이리스트 변경시, 전송 효율과 캐싱 효율을 고려하여, 변경 전후의 플레이리스트에 공통적으로 포함된 공통 콘텐츠가 있는 경우에는, 플레이리스트 변경에 따라, 캐시(260)에 이미 캐싱되어 있는 공통 콘텐츠를 삭제하지 않고 보존한다.
이하에서는, 전술한 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법에 대하여, 도 4 및 도 5를 참조하여, 더욱 상세하게 설명한다.
도 4는 본 발명의 일 실시예에 따른 단말기(100)가 스트리밍 서비스를 제공하는 방법에 대한 흐름도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 단말기(100)가 스트리밍 서비스를 제공하는 방법은, 스트리밍 요청 입력부(220)가 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 스트리밍 요청 입력 단계(S402)와, 스트리밍 제공부(240)가, 특정 콘텐츠에 대한 스트리밍 요청 정보를 통신부(230)를 통해 서버(110)로 송신하여, 특정 콘텐츠를 통신부(230)를 통해 서버(110)로부터 수신함과 동시에 재생하고, 이때, 특정 콘텐츠가 서버(110)로부터 수신되는 동안에, 캐시 관리부(250)가 특정 콘텐츠를 캐시(260)에 캐싱하는 스트리밍 제공 단계(S404)와, 특정 콘텐츠가 재생되고 있는 동안에, 특정 콘텐츠가 캐시(260)에 캐싱되는 것이 완료되면, 캐시 관리부(250)가 콘텐츠 재생 상태와는 무관하게(즉, 특정 콘텐츠의 재생이 완료되지 않았더라도), 플레이리스트에서 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 서버(110)로부터 수신하여 캐시(260)에 미리 캐싱해두는 프리-캐싱(Pre-Caching) 단계(S406) 등을 포함한다.
도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 단말기(100)가 스트리밍 서비스를 제공하는 방법은, 스트리밍 요청 입력 단계(S402) 이전에, 플레이리스트 설정부(210)가 미리 설정된 리스트 중에서 자동 선택 방식 또는 사용자 선택 방식에 의한 리스트 선택 정보에 따라 선택된 리스트를 플레이리스트로 설정하거나, 콘텐츠 선택 정보에 따라 선택된 콘텐츠를 포함하는 플레이리스트를 설정하는 플레이리스트 설정 단계(S400)를 더 포함할 수 있다.
위에서 언급한 미리 설정된 리스트는, 일 예로, 미리 설정된 콘텐츠 선택 기준 정보에 따라 서버(110)에서 추천 리스트 또는 사용자 맞춤형 리스트로서 설정된 것일 수 있다.
여기서, 미리 설정된 콘텐츠 선택 기준 정보는, 콘텐츠별 인기 순위 정보, 신작 정보 및 테마 정보 등 중에서 하나 이상에 의해 설정된 콘텐츠 추천 정보와, 단말기(100)의 사용자와 관련된 서비스 이용 이력 정보를 토대로 분석된 개인화 정보로서의 사용자 콘텐츠 취향 정보 등 중에서 하나 이상을 포함할 수 있다.
스트리밍 제공 단계(S404)에서, 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버(110)로 송신할 때, 플레이리스트 설정 단계(S400)에서 설정된 플레이리스트에 대한 리스트 정보도 송신할 수 있다. 여기서, 리스트 정보는 특정 콘텐츠가 포함된 플레이리스트에 대한 정보, 플레이리스트에 포함된 다른 콘텐츠에 대한 정보(예: 식별정보, 재생순서정보 등) 등을 포함할 수 있다.
도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 단말기(100)가 스트리밍 서비스를 제공하는 방법은, 프리-캐싱 단계(S406) 이후에, 플레이리스트에 포함되고 캐시(260)에 캐싱되어 있는 임의의 콘텐츠(동일한 플레이리스트에 포함된 콘텐츠 중에서 최초의 스트리밍 요청에 따라 캐싱된 특정 콘텐츠, 또는 특정 콘텐츠의 캐싱 완료 이후 캐시(260)에 캐싱된 콘텐츠)에 대한 스트리밍 요청 정보가 수동 또는 자동으로 추가 입력되면, 서버(110)와의 스트리밍 요청 절차 없이, 스트리밍 제공부(240)가 캐시(260)에 캐싱된 해당 콘텐츠를 재생하는 추가 스트리밍 제공 단계(S408)를 더 포함할 수 있다.
전술한 바와 같이, 스트리밍 제공 단계(S404)에서, 스트리밍 제공부(240)는, 플레이리스트에 포함된 콘텐츠 중에서 최초의 스트리밍 요청 정보에 해당하는 특정 콘텐츠에 대해서는, 서버(110)로부터 수신하면서 동시에 재생함으로써, 스트리밍을 제공할 수 있다. 이때 스트리밍 제공 단계(S404)에서 제공되는 스트리밍은, 통상의 스트리밍과 동일한 것으로서, 본 명세서에서는 "리얼-스트리밍(Real-Streaming, RS)"이라고 한다.
또한, 스트리밍 제공 단계(S404) 또는 프리-캐싱 단계(S406) 이후에 수행될 수 있는 추가 스트리밍 제공 단계(S408)에서, 스트리밍 제공부(240)는, 스트리밍 제공 단계(S404)에서 특정 콘텐츠에 대한 리얼-스트리밍이 제공되는 동안(즉, 최초의 스트리밍 요청 정보에 따라 특정 콘텐츠가 재생되고 있는 동안)에, 캐시(260)에 캐싱이 완료된 특정 콘텐츠에 대한 스트리밍 요청 정보가 다시 입력되거나, 또는 특정 콘텐츠에 대한 리얼-스트리밍이 제공되는 동안(즉, 최초의 스트리밍 요청 정보에 따라 특정 콘텐츠가 재생되고 있는 동안)에, 특정 콘텐츠의 캐싱 완료 이후 캐시(260)에 미리 캐싱된 콘텐츠에 대하여 스트리밍 요청 정보가 추가로 입력되면, 서버(110)로 스트리밍 요청 정보를 송신하지 않고, 즉, 서버(110)로부터 해당 콘텐츠를 수신하지 않고도, 캐시(260)에 캐싱된 해당 콘텐츠를 재생함으로써, 스트리밍을 제공할 수 있다.
이때, 제공되는 스트리밍은, 서버(100)로부터 콘텐츠 수신 없이 재생이 된다는 점에서, 서버(110)로부터의 수신과 재생이 동시에 이루어지는 통상의 스트리밍(즉, 본 발명의 리얼-스트리밍)과는 다르고, 또한, 스트리밍 요청 정보에 따라 제공되고 사용자는 통상의 스트리밍(리얼-스트리밍)으로 인지한다는 점에서, 단말기(100)의 메모리에 영구적으로 저장된 콘텐츠를 로컬에서 재생(로컬 재생)하는 것과도 구별된다.
이와 같이, 추가 스트리밍 제공 단계(S408)에서 제공되는 스트리밍(통상의 스트리밍(본 발명의 리얼-스트리밍) 및 로컬 재생과 모두 구별됨)은, 네트워크 상태와는 관계없이 캐시(260)에 캐싱된 해당 콘텐츠를 재생하는 "넌-스트리밍(Non-Streaming, NS)"일 수도 있고, 네트워크 상태에 따라 캐시(260)에 캐싱된 해당 콘텐츠를 재생하는 "페이크-스트리밍(Fake-Streaming, FS)"일 수도 있다.
만약, 추가 스트리밍 제공 단계(S408)에서 제공되는 스트리밍이 넌-스트리밍(NS)인 경우, 추가 스트리밍 제공 단계(S408)에서, 스트리밍 제공부(240) 내 넌-스트리밍 처리부(320)는, 단말기(100) 및 서버(110) 간의 네트워크 상태와는 무관하게, 캐시(260)에 캐싱되어 있는 해당 콘텐츠를 재생할 수도 있다.
만약, 추가 스트리밍 제공 단계(S408)에서 제공되는 스트리밍이 페이크-스트리밍(FS)인 경우, 도 5를 참조하면, 추가 스트리밍 제공 단계(S408)에서, 스트리밍 제공부(240) 내 페이크-스트리밍 처리부(330)는, 단말기(100) 및 서버(110) 간의 네트워크 상태를 확인하고(S500), 확인된 네트워크 상태가 미리 정의된 네트워크 단절 상태인지를 판단하여(S502), 확인된 네트워크 상태가 미리 정의된 네트워크 단절 상태이면 캐시(260)에 해당 콘텐츠가 캐싱되어 있더라도 캐시(260)에 캐싱된 해당 콘텐츠를 재생하는 것을 제한하고(S504), 확인된 네트워크 상태가 미리 정의된 불안정한 연결 상태 또는 스트리밍 적합 상태이면 캐시(260)에 캐싱되어 있는 해당 콘텐츠를 재생할 수 있다(S506).
여기서, 네트워크 단절 상태가 아닌 네트워크 상태는, 불안정한 연결 상태 또는 스트리밍 적합 상태일 수 있다.
위에서 언급한 "네트워크 단절 상태"는, 단말기(100)와 서버(110) 간에 통신이 전혀 불가능한 상태로서, 확인 방법으로서는, 일 예로, 단말기(100)의 통신 모듈이 동작하지 않거나 비정상적으로 동작하는 것을 확인하거나, 단말기(100)와 서버(110) 간에 세션 설정이 안 되거나, 단말기(100)와 서버(110) 간에 전송 시간(예: RTT(Round Trip Time) 등)이 미리 정의된 제1 임계 시간 이상으로 측정되거나, 단말기(100)와 서버(110) 간에 패킷 손실율(Packet Loss Rate)가 미리 정의된 제1 임계 비율 이상으로 측정될 때, 네트워크 상태를 네트워크 단절 상태(오프라인 상태를 포함하는 의미)로 확인할 수 있다.
또한, "불안정한 연결 상태"는, 단말기(100)와 서버(110) 간에 통신이 가능하나, 즉, 네트워크 단절 상태는 아니나, 단말기(100)와 서버(110) 간에 연결이 불안정하여 전송 지연이 너무 길거나 패킷 손실이 빈번히 발생하게 되어 콘텐츠 재생이 매끄럽지 못하고 뚝뚝 끊어지는 상태를 의미하는 것으로서, 확인 방법으로서는, 일 예로, 단말기(100)와 서버(110) 간에 전송 시간(예: RTT(Round Trip Time) 등)이 미리 정의된 제2 임계 시간 이상 제1 임계 시간 미만으로 측정되거나, 단말기(100)와 서버(110) 간에 패킷 손실율(Packet Loss Rate)가 미리 정의된 제2 임계 비율 이상 제1 임계 비율 미만으로 측정될 때, 네트워크 상태를 불안정한 연결 상태로 확인할 수 있다.
위에서 언급한 네트워크 단절 상태와 불안정한 연결 상태는, 콘텐츠 전송/재생이 전혀 안 되거나 상당히 문제가 있는 상태로서, "스트리밍 부적합 상태"에 포함된다.
이에 비해, "스트리밍 적합 상태"는 전술한 스트리밍 부적합 상태가 아닌 상태, 즉, 네트워크 단절 상태와 불안정한 연결 상태가 아닌 상태를 의미한다.
전술한 페이크-스트리밍은 해당 콘텐츠가 저장되어 있음에도, 네트워크 상태에 따라 재생이 불가능할 수도 있다는 점에서, 단말기(100)의 메모리에 저장된 콘텐츠를 네트워크 상태와는 무관하게 로컬에서 언제든지 재생할 수 있는 로컬 재생과 차이가 있다.
한편, 스트리밍 제공부(240)는, 스트리밍 제공 단계(S404)에서, 특정 콘텐츠의 재생 시간이 미리 정해진 무료 재생 시간을 초과하면, 스트리밍 서비스 이용 요금 처리를 위해 재생 로그 정보를 서버(110)로 송신하고, 추가 스트리밍 제공 단계(S408)에서, 캐시(260)에 캐싱해둔 해당 콘텐츠의 재생 시간이 무료 재생 시간을 초과하면, 스트리밍 서비스 이용 요금 처리를 위해 재생 로그 정보를 서버(110)로 송신할 수 있다.
스트리밍 제공 단계(S404) 또는 추가 스트리밍 제공 단계(S408)에서 재생 로그 정보 송신이 실패하면, 재생 로그 정보를 저장해두었다가 다음 순서의 콘텐츠 재생 시 다시 송신하거나, 다음 순서의 콘텐츠에 대한 재생 로그 정보를 송신할 때 함께 송신할 수 있다.
여기서, 재생 로그 정보는, 콘텐츠의 재생 시간이 무료 재생 시간을 초과하였다는 정보, 해당 콘텐츠의 식별정보 등을 포함할 수 있고, 이외에도, 사용자 정보, 단말기 정보, 애플리케이션 정보 등 중 하나 이상을 더 포함할 수 있다.
스트리밍 요청 입력부(220)가 스트리밍 요청 정보를 입력받으면, 스트리밍 제공 단계(S404) 또는 추가 스트리밍 제공 단계(S408) 이전에, 서버(110)를 통해 스트리밍 가능 콘텐츠 개수 정보를 확인하고, 확인된 스트리밍 가능 콘텐츠 개수 정보가 1개 이상인 것으로 확인된 경우에만 스트리밍 제공 단계(S404) 또는 추가 스트리밍 제공 단계(S408)가 수행되도록 제어하는 단계를 더 포함할 수 있다.
스트리밍 제공 단계(S404) 또는 프리-캐싱 단계(S406) 이후에, 플레이리스트 변경 요청 정보 또는 애플리케이션 종료 요청 정보가 입력되면, 캐시 관리부(250)가, 캐시(260)에 캐싱해둔 콘텐츠의 전부 또는 일부에 대한 삭제를 제어하는 캐싱 콘텐츠 삭제 제어 단계(S410)가 수행될 수 있다.
이러한 캐싱 콘텐츠 삭제 제어 단계(S410)에서, 캐시(260)에 캐싱해둔 콘텐츠를 삭제함으로써, 캐시(260)의 콘텐츠 저장 공간을 확보하고, 캐시(260)에 캐싱해둔 콘텐츠가 로컬 재생으로 영구적으로 이용되지 않도록 할 수 있다.
다만, 캐싱 콘텐츠 삭제 제어 단계(S410)에서는, 플레이리스트 변경시, 전송 효율과 캐싱 효율을 고려하여, 변경 전후의 플레이리스트에 공통적으로 포함된 공통 콘텐츠가 있는 경우에는, 플레이리스트 변경에 따라, 캐시(260)에 이미 캐싱되어 있는 공통 콘텐츠를 삭제하지 않고 보존한다.
다시 말해, 캐싱 콘텐츠 삭제 제어 단계(S410)에서, 캐시 관리부(250)는, 플레이리스트에서 다른 플레이리스트로 변경하기 위한 플레이리스트 변경 요청 정보가 입력되면, 플레이리스트와 다른 플레이리스트에 공통으로 포함되는 공통 콘텐츠의 존재 여부를 확인하고, 캐시(260)에 캐싱해둔 콘텐츠 중에서 공통 콘텐츠를 보존하고 나머지 콘텐츠를 캐시(260)에서 삭제한다.
또한, 캐싱 콘텐츠 삭제 제어 단계(S410)에서, 캐시 관리부(250)는, 애플리케이션 종료 요청 정보가 입력되면, 캐시(260)에 캐싱해둔 모든 콘텐츠를 삭제할 수 있다. 여기서, 애플리케이션은, 단말기(100)가 스트리밍 서비스를 제공하기 위해 필요한 프로그램이다.
이상에서는 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법이 도 4 및 도 5에서와 같은 절차로 수행되는 것으로 설명되었으나, 이는 설명의 편의를 위한 것일 뿐, 본 발명의 본질적인 개념을 벗어나지 않는 범위 내에서, 구현 방식에 따라 각 단계의 수행 절차가 바뀌거나 둘 이상의 단계가 통합되거나 하나의 단계가 둘 이상의 단계로 분리되어 수행될 수도 있다.
이상에서 전술한 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법은, 단말기(100)에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼에 포함되거나 운영체제 등에 포함되거나 호환되는 프로그램일 수 있음)에 의해 실행될 수 있고, 또한, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 단말기(100)의 운영체제와 호환 가능하고 단말기(100)에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 여기서, 단말기(100)의 운영체제는, 데스크 탑 등의 일반 PC에 설치되는 윈도우(Window), 매킨토시(Macintosh) 등의 운영체제이거나, 스마트폰, 태블릿 PC 등의 모바일 단말기에 설치되는 iOS, 안드로이드(Android) 등의 모바일 전용 운영체제 등일 수도 있다.
이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법은 단말기(100)에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고, 단말기(100) 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 구현한 프로그램은, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 기능과, 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버(110)로 송신하여, 특정 콘텐츠를 서버(110)로부터 수신함과 동시에 재생하는 기능과, 특정 콘텐츠가 서버(110)로부터 수신되는 동안에, 특정 콘텐츠를 캐시(260)에 캐싱하는 기능과, 특정 콘텐츠가 캐시(260)에 캐싱되는 것이 완료되면, 특정 콘텐츠가 재생되고 있더라도, 플레이리스트에서 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 서버(110)로부터 수신하여 캐시(260)에 미리 캐싱해두는 기능 등을 실행한다. 이뿐만 아니라, 도 2 내지 도 5를 참조하여 전술한 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법에 대응되는 모든 기능을 실행할 수 있다.
이러한 프로그램은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
이와 같이, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다.
또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈(예: 유선 및/또는 무선 통신 모듈)을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 하나 이상의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 하나 이상에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.
이상에서 전술한 바와 같은, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
또한, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 컴퓨터로 읽을 수 있는 기록매체는, 애플리케이션 스토어 서버(Application Store Server), 애플리케이션 또는 해당 서비스와 관련된 웹 서버(Web Server) 등을 포함하는 애플리케이션 제공 서버(Application Provider Server)에 포함된 저장매체(예: 하드디스크 등)이거나, 애플리케이션 제공 서버 그 자체일 수도 있으며, 프로그램을 기록한 다른 컴퓨터 또는 그 저장매체일 수도 있다.
본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC 뿐만 아니라, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함할 수 있으며, 이뿐만 아니라, 컴퓨팅(Computing) 가능한 모든 기기로 해석되어야 할 것이다.
만약, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터가 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기인 경우, 모바일 단말기는 애플리케이션 스토어 서버, 웹 서버 등을 포함하는 애플리케이션 제공 서버로부터 해당 애플리케이션을 다운로드 받아 설치할 수 있고, 경우에 따라서는, 애플리케이션 제공 서버에서 일반 PC로 다운로드 된 이후, 동기화 프로그램을 통해 모바일 단말기에 설치될 수도 있다.
이상에서는, 단말기(100) 측면에서, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 설명하였으나, 이하에서는, 단말기(100)와 페어(Pair)로 동작하는 서버(110) 측면에서, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 방법을 도 6 및 도 7을 참조하여 설명한다.
도 6은 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 서버(110)에 대한 블록도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 서버(110)는, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 단말기(100)로부터 수신하는 스트리밍 요청 수신부(610)와, 스트리밍 요청 정보에 따라 특정 콘텐츠를 단말기(100)로 송신함으로써, 특정 콘텐츠에 대한 스트리밍을 제공하는 스트리밍 제공부(620)와, 단말기(100)에서 특정 콘텐츠의 재생이 완료되지 않았더라도, 단말기(100)의 캐시(260)에 특정 콘텐츠의 캐싱이 완료되면, 추가적인 스트리밍 요청 정보 수신 없이, 플레이리스트에서 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠가 단말기(100)의 캐시(260)에 미리 캐싱되도록 하나 이상의 나머지 콘텐츠를 순차적으로 송신하는 프리-캐싱 지원부(630) 등을 포함한다.
도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 서버(110)는, 단말기(100)에서 스트리밍 처리되는 콘텐츠가 포함된 플레이리스트를 관리하는 플레이리스트 관리부(640)를 더 포함할 수 있다.
이러한 플레이리스트 관리부(640)는, 단말기(100)로 미리 제공된 리스트 중에서 단말기(100)에서 입력된 리스트 선택 정보에 따라 선택된 리스트를 플레이리스트로서 관리할 수 있다. 이때, 플레이리스트는, 단말기(100)에 의해 설정되고 서버(110)에 제공된 플레이리스트이다.
또는, 플레이리스트 관리부(640)는, 단말기(100)로부터 수신한 콘텐츠 선택 정보에 따라 선택된 콘텐츠를 포함하도록 플레이리스트를 설정하여 관리할 수 있다. 이때, 플레이리스트는 설정 이후 단말기(100)로 제공된다.
도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 스트리밍 서비스를 제공하는 서버(110)는, 스트리밍 요청 정보의 수신에 따라 단말기(100)로 송신된 특정 콘텐츠 또는 프리-캐싱 지원부(630)에 의해 단말기(100)로 송신된 콘텐츠의 재생 시간이 미리 정해진 무료 재생 시간을 초과하였다는 정보 등을 포함하는 재생 로그 정보를 단말기(100)로부터 수신하고, 수신된 재생 로그 정보에 근거하여, 스트리밍 요청 정보의 수신에 따라 단말기(100)로 송신된 특정 콘텐츠 또는 프리-캐싱 지원부(630)에 의해 단말기(100)로 송신된 콘텐츠에 대한 스트리밍 서비스 이용 요금 처리를 수행하는 서비스 요금 처리부(650)를 더 포함할 수 있다.
이하에서는, 전술한 본 발명의 일 실시예에 따른 서버(110)가 스트리밍 서비스를 제공하는 방법에 대하여, 도 7을 참조하여 더욱 상세하게 설명한다.
도 7은 본 발명의 일 실시예에 따른 서버(110)가 스트리밍 서비스를 제공하는 방법에 대한 흐름도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 서버(110)가 스트리밍 서비스를 제공하는 방법은, 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 단말기(100)로부터 수신하는 스트리밍 요청 수신 단계(S702)와, 스트리밍 요청 정보에 따라 특정 콘텐츠를 단말기(100)로 송신함으로써, 특정 콘텐츠에 대한 스트리밍(리얼-스트리밍)을 제공하는 스트리밍 제공 단계(S704)와, 특정 콘텐츠의 재생이 단말기(100)에서 완료되지 않았더라도, 단말기(100)의 캐시(260)에 특정 콘텐츠의 캐싱이 완료되면, 플레이리스트에서 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠가 단말기(100)의 캐시(260)에 미리 캐싱되도록 하나 이상의 나머지 콘텐츠를 순차적으로 송신하는 프리-캐싱(Pre-Caching) 지원 단계(S706) 등을 포함한다.
전술한 스트리밍 제공 단계(S704)에 의해 단말기(100)의 캐시(260)에 캐싱된 특정 콘텐츠와, 프리-캐싱 지원 단계(S704)에 의해 단말기(100)의 캐시(260)에 캐싱된 콘텐츠는, 넌-스트리밍(NS) 또는 페이크-스트리밍(FS)에 이용된다.
스트리밍 요청 수신 단계(S702)에서, 특정 콘텐츠에 대한 스트리밍 요청 정보를 단말기(100)로부터 수신할 때, 플레이리스트에 대한 리스트 정보도 수신할 수 있다.
도 7에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서버(110)가 스트리밍 서비스를 제공하는 방법은, 스트리밍 요청 수신 단계(S702) 이전에, 단말기(100)에 의해 플레이리스트로서 선택 가능한 리스트를 관리하거나, 단말기(100)로부터 수신한 콘텐츠 선택 정보에 따라 선택된 콘텐츠를 포함하도록 플레이리스트를 설정하여 관리하는 플레이리스트 관리 단계(S700)를 더 포함할 수 있다.
위에서 언급한 플레이리스트로서 선택 가능한 리스트는, 일 예로, 미리 설정된 콘텐츠 선택 기준 정보에 따라 선택된 콘텐츠를 포함하는 추천 리스트 또는 사용자 맞춤형 리스트일 수 있다.
여기서, 미리 설정된 콘텐츠 선택 기준 정보는, 인기 순위 정보, 신작 정보 및 테마 정보 등 중 하나 이상에 의해 설정된 콘텐츠 추천 정보와, 단말기(100)의 사용자와 관련된 서비스 이용 이력 정보를 토대로 분석된 개인화 정보로서의 사용자 콘텐츠 취향 정보 등 중 하나 이상을 포함할 수 있다.
도 7에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서버(110)가 스트리밍 서비스를 제공하는 방법은, 스트리밍 제공 단계(S704) 또는 프리-캐싱 지원 단계(S706) 이후, 스트리밍 요청 정보의 수신에 따라 스트리밍 제공 단계(S704)에서 단말기(100)로 송신된 특정 콘텐츠, 또는 프리-캐싱 지원 단계(S706)에서 단말기(100)로 송신된 콘텐츠의 재생 시간이 미리 정해진 무료 재생 시간을 초과하였다는 정보 등을 포함하는 재생 로그 정보를 단말기(100)로부터 수신하고, 수신된 재생 로그 정보에 근거하여, 스트리밍 요청 정보의 수신에 따라 단말기(100)로 송신된 특정 콘텐츠 또는 프리-캐싱 지원부(630)에 의해 단말기(100)로 송신된 콘텐츠에 대한 스트리밍 서비스 이용 요금 처리를 수행하는 서비스 요금 처리 단계(S708)를 더 포함할 수 있다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 스트리밍 서비스와 종래의 스트리밍 서비스 간의 재생 차이점을 예시적으로 설명하기 위한 도면이다. 아래에서, 콘텐츠는 음악인 것으로 가정한다.
도 8은 본 발명의 일 실시예에 따른 스트리밍 서비스와 종래의 스트리밍 서비스 간의 재생 차이점을 설명하기 위한 플레이리스트와 재생 환경을 예시적으로 나타낸 도면이다.
도 8의 예시를 참조하면, 플레이리스트는 음악 1, 음악 2, 음악 3 및 음악 4를 포함한다. 각 음악의 음원 파일 크기와 재생 시간은 모두 동일하다고 가정한다.
도 8의 (a)는 사용자가 3시에 음악 1에 대한 스트리밍 요청을 하여, 단말기(100)는 음악 1에 대한 음원 파일을 서버(110)로부터 수신하면서 동시에 재생하기 시작하는 것을 나타낸 도면으로서, 이때 네트워크 상태는 스트리밍 적합 상태이다.
도 8의 (b)는 음악 1의 재생 완료 이후, 자동으로 다음 재생 곡인 음악 2가 재생되기 시작하여, 음악 2가 재생되고 있는 동안, 3시 7분 경에 네트워크 상태가 불안정한 연결 상태가 된 경우를 나타낸 도면이다.
도 9의 (a)는, 도 8의 플레이리스트와 재생 환경의 예를 참조하여, 종래의 스트리밍 서비스에서, 단말기가 플레이리스트에 포함된 각 음악의 음원 파일을 수신하는 수신 시간 그래프와 플레이리스트에 포함된 각 음악을 재생하는 재생 시간 그래프를 나타낸 도면이다. 도 9의 (b)는, 도 8의 플레이리스트와 재생 환경의 예를 참조하여, 본 발명의 일 실시예에 따른 스트리밍 서비스에서, 단말기(100)가 플레이리스트에 포함된 각 음악의 음원 파일을 수신하는 수신 시간 그래프와 플레이리스트에 포함된 각 음악을 재생하는 재생 시간 그래프를 나타낸 도면이다.
도 9의 (a)를 참조하면, 종래의 스트리밍의 경우, 음악 1에 스트리밍 요청이 발생하면, 음악 1의 음원 파일이 서버(110)에서 단말기(100)로 전송되기 시작한다. 단말기(100)는, 음악 1의 음원 파일을 수신하면서 동시에 재생을 한다.
즉, 단말기(100)는, T1 시점에 음악 1의 음원 파일을 수신하기 시작하고, T1' 시점에 음악 1을 재생하기 시작한다. 종래의 스트리밍의 경우, 수신과 재생이 거의 동시에 시작하기 때문에, 음악 1의 수신 시작 시점 T1과 재생 시작 시점 T1'은 거의 동일하다.
그리고, 종래의 스트리밍의 경우, 단말기(100)는, 음악 1의 재생이 완료되어야만, 음악 2의 음원 파일을 서버(110)로부터 수신하여, 이와 동시에 재생을 시작한다. 따라서, 음악 2의 수신 시작 시점 T2과 재생 시작 시점 T2'은 거의 동일하다. 즉, 각 음악에서의 수신 시작 시점과 재생 시작 시점은 거의 동일하다.
도 8의 (b)의 예시와 같이, 음악 2를 재생하고 있는 도중에, 음악 2의 음원 파일을 모두 수신하기 이전에, 네트워크 상태가 네트워크 단절 상태는 아니지만 불안정한 연결 상태로 된 경우, 음악 2의 음원 파일이 매우 느리게 수신된다.
도 9의 (a)의 수신 시간 그래프를 보면, 각 음악의 음원 파일 크기와 재생 시간은 모두 동일하다고 가정 하에, 음악 2의 음원 파일을 수신하는 데 걸리는 전체 수신 시간이 음악 1의 음원 파일을 수신하는 데 걸리는 전체 수신 시간에 비해 상당히 길어진 것을 확인할 수 있다.
이러한 수신 상태일 때, 종래의 스트리밍 시에는, 도 9의 (a)에 도시된 재생 시간 그래프를 보면, 음악 2의 음원 파일 전송 지연으로 인해, 재생이 끊어지거나 버퍼링이 발생하는 등 비정상적인 재생 상태가 되는 문제점이 있다.
도 9의 (b)를 참조하면, 본 발명의 일 실시예에 따른 스트리밍 서비스의 경우, 음악 1에 스트리밍 요청이 발생하면, 음악 1의 음원 파일이 서버(110)에서 단말기(100)로 전송되기 시작한다. 단말기(100)는, 음악 1의 음원 파일을 수신하면서 동시에 재생함으로써, 리얼-스트리밍(RS)을 제공한다. 수신 시간 그래프를 참조하면, 리얼-스트리밍(RS) 시, 음악 1의 수신 시작 시점 T1과 재생 시작 시점 T1'은 거의 동일하다.
리얼-스트리밍(RS) 동안, 음악 1의 음원 파일은 캐시(260)에 캐싱되고, 음악 1의 음원 파일이 캐시(260)에 캐싱 되는 것이 완료되면, 음악 1의 재생이 완료되지 않았더라도, 플레이리스트를 참조하여, 다음 재생 곡인 음악 2의 음원 파일의 수신이 시작하여 캐시(260)에 캐싱되고, 음악 2의 음악 파일의 캐싱이 완료되면, 음악 3, 음악 4의 순서로 캐싱이 수행된다. 수신 시간 그래프를 참조하면, 음악 2, 음악 3 및 음악 4 각각에 대한 음원 파일의 수신 시작 시점은, T2, T3 및 T4이다.
그러는 동안, 음악 1의 재생이 완료되고, 다음 재생 곡인 음악 2에 대한 스트리밍을 시작하려고 할 때, 네트워크 상태가 스트리밍 적합 상태이므로, 캐시(260)에 캐싱된 음악 2의 음원 파일을 이용하여 재생함으로써 스트리밍을 제공할 수 있다. 이때, 스트리밍은, 사용자는 리얼-스트리밍(RS)로 인지하지만, 실제로는, 캐싱된 음원 파일을 재생하는 페이크-스트리밍(FS)이다.
도 9의 (b)의 재생 시간 그래프를 참조하면, 음악 2의 재생 시작 시점은 T2'이고, 음악 2의 시작 시점은 T2인데, 종래의 스트리밍(리얼-스트리밍)과는 다르게, 두 개의 시점이 전혀 무관한 것을 알 수 있다.
도 9의 (b)의 재생 시간 그래프를 참조하면, 음악 2가 재생되고 있는 동안, 네트워크 상태가 스트리밍 적합 상태에서 불안정한 연결 상태로 바뀌게 되면, 네트워크 단절 상태가 아니므로, 캐시(260)에 프리-캐싱된(Pre-Cached) 음원 파일을 이용하여, 음원 2, 음원 3 및 음원 3을 차례대로 재생함으로써, 스트리밍을 제공할 수 있다. 이때, 스트리밍은, 사용자는 리얼-스트리밍(RS)로 인지하지만, 실제로는, 캐싱된 음원 파일을 재생하는 페이크-스트리밍(FS)이다.
도 9의 (b)의 재생 시간 그래프를 참조하면, 네트워크 상태가 스트리밍 적합 상태에서 불안정한 연결 상태로 바뀌기 전에, 음악 2, 음악 3 및 음악 4 각각의 음원 파일을 캐시(260)에 프리-캐싱해두었기 때문에, 네트워크 상태가 스트리밍 적합 상태에서 불안정한 연결 상태로 바뀐 이후에도, 종래의 스트리밍과는 다르게, 아무 문제없이, 정상적인 재생이 가능하다.
이상에서 설명한 바와 같이 본 발명에 의하면, 네트워크 상태 변화에 강인한 스트리밍 서비스 기술을 제공하는 효과가 있다.
본 발명에 의하면, 네트워크 상태가 좋지 못한 경우에도, 원하는 플레이리스트 상의 콘텐츠가 단말기에서 정상적으로 재생될 수 있도록 해주는 스트리밍 서비스를 제공하는 효과가 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (23)

  1. 단말기가 스트리밍 서비스를 제공하는 방법에 있어서,
    플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 스트리밍 요청 입력 단계;
    상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버로 송신하여, 상기 특정 콘텐츠를 상기 서버로부터 수신함과 동시에 재생하고, 상기 특정 콘텐츠가 상기 서버로부터 수신되는 동안에, 상기 특정 콘텐츠를 캐시에 캐싱하는 스트리밍 제공 단계; 및
    상기 특정 콘텐츠가 상기 캐시에 캐싱되는 것이 완료되면, 상기 특정 콘텐츠가 재생되고 있더라도, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 상기 서버로부터 수신하여 상기 캐시에 미리 캐싱해두는 프리-캐싱 단계를 포함하되,
    상기 프리-캐싱 단계 이후에,
    상기 플레이리스트에 포함되고 상기 캐시에 캐싱되어 있는 임의의 콘텐츠에 대한 스트리밍 요청 정보가 수동 또는 자동으로 추가 입력되면, 상기 캐시에서 캐싱되어 있는 해당 콘텐츠를 재생하는 추가 스트리밍 제공 단계를 더 포함하는 스트리밍 서비스를 제공하는 방법.
  2. 청구항 2은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 스트리밍 요청 입력 단계 이전에,
    미리 설정된 리스트 중에서 리스트 선택 정보에 따라 선택된 리스트를 상기 플레이리스트로 설정하거나, 콘텐츠 선택 정보에 따라 선택된 콘텐츠를 포함하는 상기 플레이리스트를 설정하는 플레이리스트 설정 단계를 더 포함하는 스트리밍 서비스를 제공하는 방법.
  3. 청구항 3은(는) 설정등록료 납부시 포기되었습니다.
    제2항에 있어서,
    상기 미리 설정된 리스트는,
    미리 설정된 콘텐츠 선택 기준 정보에 따라 상기 서버에서 추천 리스트 또는 사용자 맞춤형 리스트로서 설정된 것을 특징으로 하는 스트리밍 서비스를 제공하는 방법.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제3항에 있어서,
    상기 미리 설정된 콘텐츠 선택 기준 정보는,
    인기 순위 정보, 신작 정보 및 테마 정보 중 하나 이상에 의해 설정된 콘텐츠 추천 정보와,
    서비스 이용 이력 정보를 토대로 분석된 개인화 정보로서의 사용자 콘텐츠 취향 정보 중 하나 이상을 포함하는 것을 특징으로 하는 스트리밍 서비스를 제공하는 방법.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제2항에 있어서,
    상기 스트리밍 제공 단계에서, 상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 상기 서버로 송신할 때, 상기 플레이리스트에 대한 리스트 정보도 송신하는 것을 특징으로 하는 스트리밍 서비스를 제공하는 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 스트리밍 제공 단계에서,
    상기 특정 콘텐츠의 재생 시간이 무료 재생 시간을 초과하면, 스트리밍 서비스 이용 요금 처리를 위해 재생 로그 정보를 상기 서버로 송신하고,
    상기 추가 스트리밍 제공 단계에서,
    상기 캐시에 캐싱해둔 해당 콘텐츠의 재생 시간이 상기 무료 재생 시간을 초과하면, 스트리밍 서비스 이용 요금 처리를 위해 재생 로그 정보를 상기 서버로 송신하는 것을 특징으로 하는 스트리밍을 제공하는 방법.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 스트리밍 요청 정보가 입력 또는 추가 입력되면, 상기 서버를 통해 스트리밍 가능 콘텐츠 개수 정보를 확인하고, 상기 확인된 스트리밍 가능 콘텐츠 개수 정보가 1개 이상인 것으로 확인된 경우에만 상기 스트리밍 제공 단계 또는 상기 추가 스트리밍 제공 단계가 수행되도록 제어하는 단계를 더 포함하는 스트리밍 서비스를 제공하는 방법.
  9. 제1항에 있어서,
    상기 스트리밍 제공 단계 또는 상기 프리-캐싱 단계 이후에,
    플레이리스트 변경 요청 정보 또는 애플리케이션 종료 요청 정보가 입력되면, 상기 캐시에 캐싱해둔 콘텐츠의 전부 또는 일부에 대한 삭제를 제어하는 캐싱 콘텐츠 삭제 제어 단계를 더 포함하는 스트리밍 서비스를 제공하는 방법.
  10. 제9항에 있어서,
    상기 캐싱 콘텐츠 삭제 제어 단계는,
    상기 플레이리스트에서 다른 플레이리스트로 변경하기 위한 상기 플레이리스트 변경 요청 정보가 입력되면,
    상기 플레이리스트와 상기 다른 플레이리스트에 공통으로 포함되는 공통 콘텐츠의 존재 여부를 확인하고,
    상기 캐시에 캐싱해둔 콘텐츠 중에서 상기 공통 콘텐츠를 보존하고 나머지 콘텐츠를 상기 캐시에서 삭제하는 것을 특징으로 하는 스트리밍 서비스를 제공하는 방법.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서,
    상기 캐싱 콘텐츠 삭제 제어 단계는,
    상기 애플리케이션 종료 요청 정보가 입력되면, 상기 캐시에 캐싱해둔 모든 콘텐츠를 삭제하는 것을 특징으로 하는 스트리밍 서비스를 제공하는 방법.
  12. 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 스트리밍 요청 입력부;
    상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버로 송신하여, 상기 특정 콘텐츠를 상기 서버로부터 수신함과 동시에 재생하는 스트리밍 제공부; 및
    상기 특정 콘텐츠가 상기 서버로부터 수신되는 동안에 상기 특정 콘텐츠를 캐시에 캐싱하고, 상기 특정 콘텐츠가 상기 캐시에 캐싱되는 것이 완료되면, 상기 특정 콘텐츠가 재생되고 있더라도, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 상기 서버로부터 수신하여 상기 캐시에 미리 캐싱해두는 프리-캐싱 처리를 수행하는 캐싱 관리부를 포함하되,
    상기 스트리밍 제공부는,
    상기 프리-캐싱 처리 이후, 상기 플레이리스트에 포함되고 상기 캐싱 관리부에 의해 상기 캐시에 캐싱되어 있는 임의의 콘텐츠에 대한 스트리밍 요청 정보가 수동 또는 자동으로 추가 입력되면,
    상기 캐싱 관리부에 의해 상기 캐시에서 캐싱되어 있는 해당 콘텐츠를 재생함으로써 추가 스트리밍을 수행하는 것을 특징으로 하는 스트리밍 서비스를 제공하는 단말기.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서,
    리스트 선택 정보에 따라 미리 설정된 리스트 중에서 하나를 상기 플레이리스트로서 설정하거나, 콘텐츠 선택 정보에 따라 선택된 콘텐츠가 포함된 상기 플레이리스트를 설정하는 플레이리스트 설정부를 더 포함하는 스트리밍 서비스를 제공하는 단말기.
  14. 삭제
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서,
    플레이리스트 변경 요청 정보 또는 애플리케이션 종료 요청 정보가 입력되면, 상기 캐시에 캐싱해둔 콘텐츠의 전부 또는 일부에 대한 삭제를 제어하는 캐시 관리부를 더 포함하는 스트리밍 서비스를 제공하는 단말기.
  16. 스트리밍 서비스를 제공하는 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 입력받는 기능과,
    상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 서버로 송신하여, 상기 특정 콘텐츠를 상기 서버로부터 수신함과 동시에 재생하는 기능과,
    상기 특정 콘텐츠가 상기 서버로부터 수신되는 동안에, 상기 특정 콘텐츠를 캐시에 캐싱하는 기능과,
    상기 특정 콘텐츠가 상기 캐시에 캐싱되는 것이 완료되면, 상기 특정 콘텐츠가 재생되고 있더라도, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠를 상기 서버로부터 수신하여 상기 캐시에 미리 캐싱해두는 프리-캐싱 기능과,
    상기 프리-캐싱 기능이 실행된 이후에, 상기 플레이리스트에 포함되고 상기 캐시에 캐싱되어 있는 임의의 콘텐츠에 대한 스트리밍 요청 정보가 수동 또는 자동으로 추가 입력되면, 상기 캐시에서 캐싱되어 있는 해당 콘텐츠를 재생하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  17. 서버가 스트리밍 서비스를 제공하는 방법에 있어서,
    플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 단말기로부터 수신하는 스트리밍 요청 수신 단계;
    상기 스트리밍 요청 정보에 따라 상기 특정 콘텐츠를 상기 단말기로 송신함으로써, 상기 특정 콘텐츠에 대한 스트리밍을 제공하는 스트리밍 제공 단계; 및
    상기 특정 콘텐츠의 재생이 상기 단말기에서 완료되지 않았더라도, 상기 단말기의 캐시에 상기 특정 콘텐츠의 캐싱이 완료되면, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠가 상기 단말기의 캐시에 미리 캐싱되도록 상기 하나 이상의 나머지 콘텐츠를 순차적으로 송신하는 캐싱 제공 단계를 포함하되,
    상기 스트리밍 요청 수신 단계에서, 상기 서버는,
    상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 상기 단말기로부터 수신할 때, 상기 플레이리스트에 대한 리스트 정보도 수신하는 것을 특징으로 하는 스트리밍 서비스를 제공하는 방법.
  18. 삭제
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제17항에 있어서,
    상기 스트리밍 요청 수신 단계 이전에,
    상기 단말기에 의해 상기 플레이리스트로서 선택 가능한 리스트를 관리하거나, 상기 단말기로부터 수신한 콘텐츠 선택 정보에 따라 선택된 콘텐츠를 포함하도록 상기 플레이리스트를 설정하여 관리하는 플레이리스트 관리 단계를 더 포함하는 스트리밍 서비스를 제공하는 방법.
  20. 청구항 20은(는) 설정등록료 납부시 포기되었습니다.
    제17항에 있어서,
    상기 스트리밍 제공 단계 이후 또는 상기 캐싱 단계 이후,
    상기 특정 콘텐츠 또는 상기 단말기의 캐시에 캐싱해둔 콘텐츠가 상기 단말기에서 재생이 시작되기 시작한 재생 시작 시점으로부터 무료 재생 시간이 지났을 때, 상기 단말기에서 발생하는 재생 로그 정보를 수신하고, 상기 수신된 재생 로그 정보에 근거하여, 스트리밍 서비스 이용 요금 처리를 수행하는 스트리밍 서비스 이용 요금 처리 단계를 더 포함하는 스트리밍을 제공하는 방법.
  21. 플레이리스트에 포함된 특정 콘텐츠에 대한 스트리밍 요청 정보를 단말기로부터 수신하는 스트리밍 요청 수신부;
    상기 스트리밍 요청 정보에 따라 상기 특정 콘텐츠를 상기 단말기로 송신함으로써, 상기 특정 콘텐츠에 대한 스트리밍을 제공하는 스트리밍 제공부; 및
    상기 특정 콘텐츠의 재생이 상기 단말기에서 완료되지 않았더라도, 상기 단말기의 캐시에 상기 특정 콘텐츠의 캐싱이 완료되면, 상기 플레이리스트에서 상기 특정 콘텐츠를 제외한 하나 이상의 나머지 콘텐츠가 상기 단말기의 캐시에 미리 캐싱되도록 상기 하나 이상의 나머지 콘텐츠를 순차적으로 송신하는 프리-캐싱 지원부를 포함하되,
    상기 스트리밍 요청 수신부는,
    상기 특정 콘텐츠에 대한 스트리밍 요청 정보를 상기 단말기로부터 수신할 때, 상기 플레이리스트에 대한 리스트 정보도 수신하는 것을 특징으로 하는 스트리밍 서비스를 제공하는 서버.
  22. 청구항 22은(는) 설정등록료 납부시 포기되었습니다.
    제21항에 있어서,
    상기 단말기로 미리 제공된 리스트 중에서 상기 단말기에서 입력된 리스트 선택 정보에 따라 선택된 리스트를 상기 플레이리스트로서 관리하거나, 상기 단말기로부터 수신한 콘텐츠 선택 정보에 따라 선택된 콘텐츠를 포함하도록 상기 플레이리스트를 설정하여 관리하는 플레이리스트 관리부를 더 포함하는 스트리밍 서비스를 제공하는 서버.
  23. 청구항 23은(는) 설정등록료 납부시 포기되었습니다.
    제21항에 있어서,
    상기 스트리밍 요청 정보의 수신에 따라 상기 단말기로 송신된 상기 특정 콘텐츠, 또는 상기 프리-캐싱 지원 단계에서 상기 단말기로 송신된 콘텐츠의 재생 시간이 미리 정해진 무료 재생 시간을 초과하였다는 정보 등을 포함하는 재생 로그 정보를 상기 단말기로부터 수신하고, 상기 수신된 재생 로그 정보에 근거하여, 스트리밍 서비스 이용 요금 처리를 수행하는 서비스 요금 처리부를 더 포함하는 스트리밍 서비스를 제공하는 서버.
KR1020120042089A 2012-04-23 2012-04-23 스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체 KR101373650B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120042089A KR101373650B1 (ko) 2012-04-23 2012-04-23 스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120042089A KR101373650B1 (ko) 2012-04-23 2012-04-23 스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체

Publications (2)

Publication Number Publication Date
KR20130119153A KR20130119153A (ko) 2013-10-31
KR101373650B1 true KR101373650B1 (ko) 2014-03-14

Family

ID=49637103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120042089A KR101373650B1 (ko) 2012-04-23 2012-04-23 스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체

Country Status (1)

Country Link
KR (1) KR101373650B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102210409B1 (ko) * 2015-01-02 2021-01-29 에스케이텔레콤 주식회사 라이브 스트리밍 컨텐츠 제공 방법, 이를 위한 라이브 스트리밍 캐시 장치 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010008155A (ko) * 2000-11-13 2001-02-05 손영철 데이터 프리 캐싱을 이용한 인터넷방송 광고방법
JP2011145973A (ja) * 2010-01-18 2011-07-28 Pioneer Electronic Corp プレイリスト表示装置、制御方法、プログラム、及び記憶媒体
KR20120015037A (ko) * 2010-08-11 2012-02-21 브로드밴드미디어주식회사 실시간 스트리밍 프로토콜을 기반으로 한 동영상 재생 서비스에서 동영상 재생 지연 보상 시스템 및 방법
JP2012039436A (ja) * 2010-08-09 2012-02-23 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010008155A (ko) * 2000-11-13 2001-02-05 손영철 데이터 프리 캐싱을 이용한 인터넷방송 광고방법
JP2011145973A (ja) * 2010-01-18 2011-07-28 Pioneer Electronic Corp プレイリスト表示装置、制御方法、プログラム、及び記憶媒体
JP2012039436A (ja) * 2010-08-09 2012-02-23 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
KR20120015037A (ko) * 2010-08-11 2012-02-21 브로드밴드미디어주식회사 실시간 스트리밍 프로토콜을 기반으로 한 동영상 재생 서비스에서 동영상 재생 지연 보상 시스템 및 방법

Also Published As

Publication number Publication date
KR20130119153A (ko) 2013-10-31

Similar Documents

Publication Publication Date Title
US11677853B2 (en) Managing preloading of data on client systems
KR101196080B1 (ko) 콘텐츠 관리 장치, 방법 및 컴퓨터 판독가능한 저장 매체
US8654684B1 (en) Multi-platform video delivery configuration
CN1331076C (zh) 实时搜索引擎
US8849899B1 (en) Accelerated delivery of media content via peer caching
EP1429517B1 (en) Access relaying apparatus
US20170353405A1 (en) System and method for providing digital media content with a conversational messaging environment
US8824676B2 (en) Streaming video to cellular phones
US8918497B2 (en) Email system latencies and bandwidths
US7987243B2 (en) Method for media discovery
CN105187523B (zh) 一种目录访问方法及装置
US8601546B2 (en) Apparatus, methods, and computer program products for providing portable communication identity services
CN104410660A (zh) 多媒体资源的下载方法、装置、路由器及服务器
FR2979509A1 (fr) Procede et serveur pour le suivi des utilisateurs au cours de leur navigation dans un reseau de communication
CN103595808B (zh) 一种文件更新信息推送方法及装置
CN103905516A (zh) 分享数据的方法及相应服务器和终端
KR100929031B1 (ko) 파일 병렬 다운로드에서의 블록 선택 방법, 이를 이용한파일 병렬 다운로드 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
CN103338263A (zh) 基于播放器的共享音视频文件的方法及系统
KR101373650B1 (ko) 스트리밍 서비스를 제공하는 방법, 단말기, 서버 및 기록매체
KR101531284B1 (ko) 클라우드 스트리밍 서비스를 제공하기 위한 장치, 이를 위한 방법 및 이를 위한 시스템
CN102904935A (zh) 基于家庭网关的下载方法、设备和系统
US8615548B1 (en) System and method for deferred data downloading
KR101369459B1 (ko) 게임 기록을 관리하는 방법, 서버, 단말기 및 기록매체
US8086562B2 (en) Arrangement for anonymous API downloaded resources for advanced content
US8527885B2 (en) Method for managing memory in a client terminal, corresponding signal, computer program and terminal

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
FPAY Annual fee payment

Payment date: 20170307

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 6