KR102195516B1 - 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템 - Google Patents

방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템 Download PDF

Info

Publication number
KR102195516B1
KR102195516B1 KR1020180132970A KR20180132970A KR102195516B1 KR 102195516 B1 KR102195516 B1 KR 102195516B1 KR 1020180132970 A KR1020180132970 A KR 1020180132970A KR 20180132970 A KR20180132970 A KR 20180132970A KR 102195516 B1 KR102195516 B1 KR 102195516B1
Authority
KR
South Korea
Prior art keywords
streaming
broadcast content
broadcast
server
load balancer
Prior art date
Application number
KR1020180132970A
Other languages
English (en)
Other versions
KR20200050220A (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 KR1020180132970A priority Critical patent/KR102195516B1/ko
Publication of KR20200050220A publication Critical patent/KR20200050220A/ko
Application granted granted Critical
Publication of KR102195516B1 publication Critical patent/KR102195516B1/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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols

Abstract

일 실시 예에 의한 동적 자원 할당이 가능한 방송 서비스 제공 장치는, 방송 콘텐츠를 송출하는 방송자 단말; 상기 방송자 단말과 제1 통신 프로토콜에 의해 연동되어, 상기 방송 콘텐츠를 수신하는 복수의 스트리밍 서버; 및 상기 복수의 스트리밍 서버 내 상기 방송 콘텐츠를 수용하기 위한 가용 공간을 탐색하고, 기 설정된 관리 정보에 기초하여 상기 가용 공간에 대응하는 IP(Internet Protocol) 주소를 상기 방송자 단말로 리턴하는 제1 로드 밸런서;를 포함하고, 상기 방송자 단말은, 상기 복수의 스트리밍 서버 중 상기 IP 주소에 대응하는 스트리밍 서버에 접속하여 상기 방송 콘텐츠를 송출하고, 상기 제1 로드 밸런서는, 상기 방송 콘텐츠를 상기 복수의 스트리밍 서버 각각에 균등하게 할당하거나 우선순위가 높은 순으로 할당할 수 있다.

Description

방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템{APPARATUS FOR TRANSMITTING A BROADCASTING SERVICE, APPARATUS FOR RECEIVING A BROADCASTING SERVICE, AND BROADCASTING SERVICE TRANSMITTING AND RECEIVING SYSTEM USING THE SAME}
본 발명은 방송 서비스 제공장치, 방송 서비스 수신장치 및 이를 이용한 방송 서비스 송수신 시스템에 관한 것이다.
네트워크 기술이 발달하고 스마트폰, 태블릿 PC와 같은 모바일 기기의 보급으로 인터넷을 통해서 멀티미디어 스트리밍(streaming) 서비스를 이용하는 사용자가 증가하고 있다. 스트리밍(streaming) 기술은 대용량의 비디오, 오디오 등과 같은 컨텐츠를 실시간으로 송신/수신하여 네트워크와 CPU 자원을 최적으로 사용하는 기술을 의미한다.
도 1은 일반적인 스트리밍 서비스를 이용한 방송 콘텐츠 송수신 시스템을 나타내는 블록도이다.
도 1에 도시된 바와 같이, 일반적인 스트리밍 서비스를 이용한 방송 콘텐츠 송수신 시스템(10)은 스트리머(1), 스트리밍 서버(2), 에지 서버(3), 및 플레이어(4)를 포함한다.
방송 콘텐츠 송수신 시스템(10)의 송신단 측에서, 스트리머(1)는 스트리밍 서버(2)로 방송 콘텐츠를 송출하고, 스트리밍 서버(2)는 수신한 방송 콘텐츠를 에지 서버로 재송출한다. 이때, 스트리머(1)는 스트리밍 서버(2) 내에 상기 방송 콘텐츠를 수용하기 위한 가용 공간을 수동적으로 탐색하므로 방송 콘텐츠의 송출 시간이 지연되고, 신규로 스트리밍 서버(2)를 추가하거나 기존의 스트리밍 서버(2)에 장애가 발생할 경우 운영 자원(resource)이 많이 소요되는 문제가 있다.
또한, 방송 콘텐츠 송수신 시스템(10)의 수신단 측에서, 플레이어(4)가 에지 서버(3)에 방송 콘텐츠에 대한 스트리밍 서비스를 요청하면, 스트리밍 서버(4)는 에지 서버(3)를 경유하여 플레이어(4)에 해당 방송 콘텐츠를 전송한다. 그러나 에지 서버(3)는 스트리밍 서버(2)를 오리진 서버(Origin server)로 일대일로 매핑하여 방송 콘텐츠의 전송을 중계하므로 스트리밍 서버(2)의 수만큼 에지 서버(3)가 필요하며, 에지 서버(3)의 사용 효율성이 낮아지는 한계점이 있다.
이에, 방송 콘텐츠의 송출 시간 지연 내지 에지 서버의 사용 효율성이 낮아지는 문제점을 해소하고, 동적으로 운영 자원을 할당할 수 있는 방송 서비스의 송수신 시스템이 요구되고 있다.
이에, 실시 예는 스트리밍 서버의 부하를 적절하게 분산시키고, 가용 공간을 미리 탐색함으로써 방송 콘텐츠의 송출 시간 내지 탐색 지연(seeking delay) 시간을 단축할 수 있는 방송 서비스 송수신 시스템을 제공하기 위한 것이다.
실시 예에서 해결하고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제는 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
실시 예는, 방송 콘텐츠를 송출하는 방송자 단말; 상기 방송자 단말과 제1 통신 프로토콜에 의해 연동되어, 상기 방송 콘텐츠를 수신하는 복수의 스트리밍 서버; 및 상기 복수의 스트리밍 서버 내 상기 방송 콘텐츠를 수용하기 위한 가용 공간을 탐색하고, 기 설정된 관리 정보에 기초하여 상기 가용 공간에 대응하는 IP(Internet Protocol) 주소를 상기 방송자 단말로 리턴하는 제1 로드 밸런서;를 포함하고, 상기 방송자 단말은, 상기 복수의 스트리밍 서버 중 상기 IP 주소에 대응하는 스트리밍 서버에 접속하여 상기 방송 콘텐츠를 송출하고, 상기 제1 로드 밸런서는, 상기 방송 콘텐츠를 상기 복수의 스트리밍 서버 각각에 균등하게 할당하거나 우선순위가 높은 순으로 할당하는, 방송 서비스 제공 장치를 제공한다.
상기 기 설정된 관리 정보는, 상기 복수의 스트리밍 서버 별로 동시에 스트리밍 가능한 방송 콘텐츠의 최대값을 포함할 수 있다.
상기 제1 로드 밸런서는, 기 설정된 주기 마다 상기 복수의 스트리밍 서버 각각에 존재하는 방송 콘텐츠의 스트리밍 상태 정보를 수신하고, 상기 스트리밍 상태 정보를 토대로 현재 스트리밍 중인 방송 콘텐츠의 수를 산출할 수 있다.
또한, 상기 제1 로드 밸런서는, 상기 복수의 스트리밍 서버 중 제1 스트리밍 서버의 상기 현재 스트리밍 중인 방송 콘텐츠의 수가 상기 최대값에 도달하면, 상기 제1 스트리밍 서버와 다른 제2 스트리밍 서버에 대응하는 IP 주소를 상기 방송자 단말로 리턴할 수 있다.
여기서, 상기 제1 통신 프로토콜은, RTMP(Real Time Messaging Protocol)일 수 있다.
다른 실시 예는, 복수의 방송 콘텐츠 별로 메타정보를 생성하고, 상기 메타정보에 대응되는 방송 콘텐츠를 다수 개의 청크 파일로 분할하는 복수의 스트리밍 서버; 상기 복수의 방송 콘텐츠 중 특정 방송 콘텐츠의 수신을 요청하는 수신자 단말; 상기 복수의 스트리밍 서버 및 상기 수신자 단말 각각과 제2 통신 프로토콜에 의해 연동되어, 상기 복수의 스트리밍 서버 중 어느 하나로부터 상기 수신자 단말로 상기 특정 방송 콘텐츠에 대한 메타정보 및 다수 개의 청크 파일을 전송하는 에지 서버; 및 상기 복수의 스트리밍 서버 각각으로부터 상기 메타정보 및 상기 분할된 청크 파일의 목록정보를 기 설정된 주기마다 수신하고, 기 설정된 테이블에 기초하여 상기 특정 컨텐츠가 위치하는 스트리밍 서버의 IP(Internet Protocol) 주소를 상기 에지 서버로 송신하는 제2 로드 밸런서;를 포함하고, 상기 에지 서버는, 상기 제2 로드 밸런서로부터 수신한 IP 주소에 대응하는 스트리밍 서버에 접속하여 상기 특정 방송 콘텐츠에 대한 메타정보 및 다수 개의 청크 파일을 상기 수신자 단말로 전송하는, 방송 서비스 수신 장치를 제공한다.
상기 기 설정된 테이블은, 상기 복수의 스트리밍 서버 각각의 IP 주소, 상기 IP 주소에 할당된 상기 복수의 방송 콘텐츠 각각의 상기 메타정보 및 상기 분할된 청크 파일의 목록정보를 포함할 수 있다.
여기서, 상기 제2 통신 프로토콜은, HLS(HTTP Live Streaming)일 수 있다.
또 다른 실시 예는, 복수의 방송 콘텐츠를 수신하고, 상기 복수의 방송 콘텐츠 별로 메타정보를 생성하며 상기 메타정보에 대응되는 방송 콘텐츠를 다수 개의 청크 파일로 분할하는 복수의 스트리밍 서버를 포함하는, 방송 서비스 송수신 시스템에 있어서, 상기 복수의 방송 콘텐츠 중 특정 방송 콘텐츠를 송출하는 방송자 단말; 상기 복수의 스트리밍 서버 내 상기 특정 방송 콘텐츠를 수용하기 위한 가용 공간을 탐색하고, 기 설정된 관리 정보에 기초하여 상기 가용 공간에 대응하는 IP(Internet Protocol) 주소를 상기 방송자 단말로 리턴하는 제1 로드 밸런서; 상기 특정 방송 콘텐츠의 수신을 요청하는 수신자 단말; 상기 복수의 스트리밍 서버 중 어느 하나로부터 상기 수신자 단말로 상기 특정 방송 콘텐츠에 대한 메타정보 및 다수 개의 청크 파일을 전송하는 에지 서버; 및 상기 복수의 스트리밍 서버 각각으로부터 상기 메타정보 및 상기 분할된 청크 파일의 목록정보를 기 설정된 주기마다 수신하고, 기 설정된 테이블에 기초하여 상기 특정 컨텐츠가 위치하는 스트리밍 서버의 상기 IP 주소를 상기 에지 서버로 송신하는 제2 로드 밸런서;를 포함하고, 상기 방송자 단말은, 상기 복수의 스트리밍 서버 중 상기 IP 주소에 대응하는 스트리밍 서버에 접속하여 상기 방송 콘텐츠를 송출하고, 상기 제1 로드 밸런서는, 상기 방송 콘텐츠를 상기 복수의 스트리밍 서버 각각에 균등하게 할당하거나 우선순위가 높은 순으로 할당하고, 상기 에지 서버는, 상기 제2 로드 밸런서로부터 수신한 상기 IP 주소에 대응하는 스트리밍 서버에 접속하여 상기 특정 방송 콘텐츠에 대한 메타정보 및 다수 개의 청크 파일을 전송하는, 방송 서비스 송수신 시스템을 제공한다.
본 발명의 적어도 일 실시 예에 의하면, 방송자 단말 및 스트리밍 서버와 연동되는 제1 로드 밸런서를 배치하여 방송 콘텐츠를 스트리밍 서버의 부하를 적절하게 분산시키고, 가용 공간을 미리 탐색함으로써 방송 콘텐츠의 송출 시간 내지 탐색 지연(seeking delay) 시간을 단축할 수 있다.
다른 실시 예에 따르면, 에지 서버 및 스트리밍 서버와 연동되는 제2 로드 밸런서를 배치하여 수신자 단말이 요청한 특정 방송 콘텐츠의 위치 정보를 미리 탐색함으로써 특정 방송 콘텐츠를 탐색하기 위하여 소요되는 대기시간(seeking latency)을 단축시킬 수 있다.
본 실시 예에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며 언급하지 않은 또 다른 효과는 아래의 기재로부터 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 일반적인 스트리밍 서비스를 이용한 방송 콘텐츠 송수신 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시 예에 따른, 방송 서비스 송수신 시스템의 개략도이다.
도 3은 본 발명의 일 실시 예에 따른 제1 로드 밸런서가 방송자 단말로 리턴하기 위한 IP 주소를 결정하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 메타정보 관리부, 청크 할당부에 따라 생성된 데이터 구조도이다.
도 5는 본 발명의 일 실시 예에 따른 방송 서비스 제공 장치에서 방송 콘텐츠를 송출하는 방법을 나타내는 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 방송 서비스 수신 장치에서 방송 콘텐츠를 수신하는 방법을 나타내는 순서도이다.
이하, 첨부된 도면들을 참조하여 실시 예를 상세히 설명한다. 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 실시 예의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
"제1", "제2" 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 이러한 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용된다. 또한, 실시 예의 구성 및 작용을 고려하여 특별히 정의된 용어들은 실시 예를 설명하기 위한 것일 뿐이고, 실시 예의 범위를 한정하는 것이 아니다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석될 수 있으며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시 예에 의한 방송 서비스 제공장치, 방송 서비스 수신장치 및 이를 이용한 방송 서비스 송수신 시스템에 대하여 첨부된 도면을 참조하여 다음과 같이 설명한다.
도 2는 본 발명의 일 실시 예에 따른, 방송 서비스 송수신 시스템의 개략도이다.
도 2을 참조하면, 본 발명에 따른 방송 서비스 송수신 시스템(1000)은 방송자 단말(100), 스트리밍 서버(200), 제1 로드 밸런서(300), 수신자 단말(400), 에지 서버(500), 및 제2 로드 밸런서(600)를 포함할 수 있다.
방송자 단말(100)은 제1 통신 프로토콜(700)을 통하여 라이브 스트리밍 되는 적어도 하나의 방송 콘텐츠를 송출할 수 있다. 여기서, 제1 통신 프로토콜(700)은 RTMP(Real-Time Messaging Protocol) 및 RTSP(Real-Time Streaming Protocol)/RTP(Real-time Transport Protocol) 중 적어도 하나의 스트리밍 프로토콜을 포함할 수 있다.
스트리밍 서버(200)는 방송자 단말(100)과 제1 통신 프로토콜(700)에 의해 연동되어 적어도 하나의 방송 콘텐츠를 수신하고, 에지 서버(500)와 제2 통신 프로토콜(800)에 의해 연동되어 상기 수신한 적어도 하나의 방송 콘텐츠를 에지 서버(500)로 재송출할 수 있다. 여기서, 제2 통신 프로토콜(800)은 제1 통신 프로토콜(700)과 서로 다를 수 있으며, 예시적으로 HLS(HTTP Live Streaming)일 수 있다.
스트리밍 서버(200)는 동일한 도메인(domain)에 속하는 복수의 스트리밍 서버(200)를 포함할 수 있다. 여기서, 복수의 스트리밍 서버(200) 각각은, 서로 다른 IP(Internet Protocol) 주소 및/또는 포트(Port)가 할당될 수 있으며, 상기 적어도 하나의 방송 콘텐츠를 수용하기 위한 가용 공간인 복수 개의 슬롯(210; slot_1, slot_2, slot_n)을 포함할 수 있다.
제1 로드 밸런서(300)는 복수의 스트리밍 서버(200) 내 적어도 하나의 방송 콘텐츠를 수용하기 위한 가용 공간을 탐색하고, 기 설정된 관리 정보에 기초하여 상기 가용 공간에 대응하는 IP(Internet Protocol) 주소를 방송자 단말(100)로 리턴할 수 있다. 여기서, 제1 로드 밸런서(300)가 방송자 단말(100)로 리턴하는 IP 주소는 적어도 하나의 방송 콘텐츠를 복수의 스트리밍 서버(200) 각각에 균등하게 할당하거나 우선순위가 높은 순으로 할당하기 위한 '최적의 방송 콘텐츠 송출 경로'로 정의할 수도 있다.
방송자 단말(100)은 제1 로드 밸런서(300)가 리턴한 상기 IP 주소에 대응하는 스트리밍 서버(200)에 접속하여 적어도 하나의 방송 콘텐츠를 송출할 수 있으며, 제1 로드 밸런서(300)는 적어도 하나의 방송 콘텐츠를 복수의 스트리밍 서버(200) 마다 균등하게 분배함으로써 스트리밍 서버(200)의 부하를 적절하게 분산하고, 가용 공간을 미리 탐색함으로써 방송 콘텐츠의 송출 시간 내지 탐색 지연(seeking delay) 시간을 단축할 수 있다.
또한, 제1 로드 밸런서(300)는 복수 개의 스트리밍 서버(200) 각각의 장애를 감지하기 위하여 기 설정된 주기 마다 헬스 체크(health-check)를 수행할 수도 있다. 예를 들어, 제1 로드 밸런서(300)는 소정의 통신망을 통하여 복수의 스트리밍 서버(200) 각각으로 기 설정된 주기 마다 헬스 체크 메시지를 송신하고, 상기 헬스 체크 메시지에 대한 응답 여부를 통하여 헬스 체크를 수행할 수 있다.
상기 헬스 체크 수행 결과 적어도 하나의 스트리밍 서버(200)에서 장애가 감지되면, 제1 로드 밸런서(300)는 장애가 감지된 적어도 하나의 스트리밍 서버(200)를 '최적의 방송 콘텐츠 송출 경로' 대상에서 배제시킬 수 있다. 다시 말해서, 특정 스트리밍 서버(200)에 적어도 하나의 방송 콘텐츠를 수용하기 위한 가용 공간이 존재하더라도 소정의 장애가 감지되면, 제1 로드 밸런서(300)는 방송자 단말(100)로 리턴하는 IP 주소를 우회시킬 수 있다. 이처럼, 헬스 체크 수행 결과에 따라 방송자 단말(100)로 리턴하는 IP 주소를 우회시킴으로써, 스트리밍 서버(200)로 송출될 적어도 하나의 방송 콘텐츠에 대한 높은 안정성을 확보할 수 있다.
한편, 제1 로드 밸런서(300)가 방송자 단말(100)로 리턴하기 위한 IP 주소를 결정하는 보다 상세한 방법을 도 3을 참조하여 먼저 설명하기로 한다.
도 3은 본 발명의 일 실시 예에 따른 제1 로드 밸런서가 방송자 단말로 리턴하기 위한 IP 주소를 결정하는 방법을 설명하기 위한 도면이다.
도 3에 도시된 스트리밍 서버(200)는, 이해의 편의를 돕기 위하여 도 2에 도시된 스트리밍 서버(200)의 일 구성 요소만을 도시한 것으로, 스트리밍 서버(200)의 개수 내지 적어도 하나의 방송 콘텐츠를 수용하기 위한 가용 공간인 슬롯(210)의 개수는 이에 한정되지 아니함은 통상의 기술자에게 자명하다.
도 3을 참조하면, 제1 로드 밸런서(300)는 저장부(310), 통신부(320) 및 제어부(330)를 포함할 수 있다.
저장부(310)는 '최적의 방송 콘텐츠 송출 경로'를 결정하기 위한 기 설정된 관리 정보를 저장할 수 있다. 여기서, 기 설정된 관리 정보는 복수의 스트리밍 서버(200A, 200B, 200C) 별로 동시에 스트리밍 가능한 방송 콘텐츠의 최대값 내지 임계치를 포함할 수 있다.
이때, 동시에 스트리밍 가능한 방송 콘텐츠의 최대값은 복수의 스트리밍 서버(200A, 200B, 200C) 각각의 로드율, 부하량 및/또는 처리용량의 한계치에 따라 가변될 수 있다.
통신부(320)는 소정의 통신망을 통하여 복수의 스트리밍 서버(200A, 200B, 200C)와 소정의 상태 정보 내지 헬스 체크 메시지를 송수신할 수 있다. 여기서, 소정의 상태 정보는 복수의 스트리밍 서버(200A, 200B, 200C) 각각에 존재하는 적어도 하나의 방송 콘텐츠의 스트리밍 상태 정보를 포함할 수 있다.
통신부(320)는 기 설정된 제1 주기 마다 복수의 스트리밍 서버(200A, 200B, 200C)로부터 스트리밍 상태 정보를 수신하고, 수신한 스트리밍 상태 정보를 제어부(330)에 전달할 수 있다. 여기서, 스트리밍 상태 정보는 방송 콘텐츠의 스트리밍 시작, 일시 정지, 및/또는 종료에 관한 이벤트 발생 통지로부터 수집될 수 있다.
또한, 통신부(320)는 복수의 스트리밍 서버(200A, 200B, 200C)로 기 설정된 제2 주기 마다 상기 헬스 체크 메시지를 송신하고, 복수의 스트리밍 서버(200A, 200B, 200C)로부터 상기 헬스 체크 메시지에 대한 응답 여부를 수신할 수 있다. 여기서, 제1 및 제2 주기는 서로 동일하거나 상이할 수 있다.
제어부(330)는 방송자 단말(100)에 리턴하기 위한 IP 주소를 할당하기 위하여 가용 공간이 존재하는 스트리밍 서버를 탐색하고, 탐색된 스트리밍 서버의 장애 여부를 검출할 수 있다.
제어부(330)는 복수의 스트리밍 서버(200A, 200B, 200C) 내 적어도 하나의 방송 콘텐츠를 수용하기 위한 가용 공간을 탐색하기 위하여, 통신부(320)로부터 전달받은 스트리밍 상태 정보를 토대로 복수의 스트리밍 서버(200A, 200B, 200C) 각각에서 현재 스트리밍 중인 방송 콘텐츠의 수를 산출할 수 있다.
그리고 제어부(330)는 통신부(320)로부터 수신된 스트리밍 상태 정보와 저장부(310)로부터 수신된 기 설정된 관리 정보와의 비교를 통하여 '최적의 방송 콘텐츠 송출 경로'를 획득할 수 있다.
구체적으로, 제어부(330)는 복수의 스트리밍 서버(200A, 200B, 200C) 별로, 동시에 스트리밍 가능한 방송 콘텐츠의 최대값과 현재 스트리밍 중인 방송 콘텐츠의 수를 비교 판단하여 방송자 단말(100)에 IP 주소를 할당할 수 있다. 만일 비교 판단 결과, 복수의 스트리밍 서버(200A, 200B, 200C) 중 적어도 하나의 스트리밍 서버 내에서 현재 스트리밍 중인 방송 콘텐츠의 수가 동시에 스트리밍 가능한 방송 콘텐츠의 최대값을 초과하면, 상기 적어도 하나의 스트리밍 서버를 '최적의 방송 콘텐츠 송출 경로' 대상에서 배제시킬 수 있다.
예를 들어, 도 3에 도시된 복수의 스트리밍 서버(200A, 200B, 200C) 각각은 적어도 하나의 방송 콘텐츠를 수용하기 위하여 6개의 슬롯(slot_1, slot_2, slot_3, slot_4, slot_5, slot_6)을 보유하고, 각각의 슬롯은 1개의 방송 콘텐츠를 수신하며, 각각의 스트리밍 서버(200A, 200B, 200C)가 동시에 스트리밍 처리할 수 있는 방송 콘텐츠의 최대값은 4개라고 가정하고 상술한 내용을 설명하기로 한다.
도 3을 참조하면, 제1 스트리밍 서버(200A) 내에서 현재 스트리밍 중인 방송 콘텐츠의 수는 3개(slot_1, slot_4, slot_5), 제2 스트리밍 서버(200B) 내에서 현재 스트리밍 중인 방송 콘텐츠의 수는 2개(slot_2, slot_3), 제3 스트리밍 서버(200C) 내에서 현재 스트리밍 중인 방송 콘텐츠의 수는 5개(slot_1, slot_2, slot_3, slot_5, slot_6)이다.
제어부(330)는 각각의 스트리밍 서버(200A, 200B, 200C) 중 동시에 스트리밍 처리할 수 있는 방송 콘텐츠의 최대값인 4개를 초과하는 제3 스트리밍 서버(200C)에 대하여는 방송자 단말(1000)로 리턴할 '최적의 방송 콘텐츠 송출 경로' 대상에서 배제시킬 수 있다.
그리고, 제어부(330)는 헬스 체크 동작을 수행할 수 있다. 제어부(330)는 복수의 스트리밍 서버(200A, 200B, 200C) 중 적어도 하나의 스트리밍 서버로부터 헬스 체크 메시지에 대한 응답을 수신하지 못한 경우, 상기 적어도 하나의 스트리밍 서버를 '최적의 방송 콘텐츠 송출 경로' 대상에서 배제시킬 수 있다.
도 3을 참조하면, 통신부(320)가 복수의 스트리밍 서버(200A, 200B, 200C) 중 제1 스트리밍 서버(200A) 내 슬롯(slot_2)의 장애로 인하여 헬스 체크 메시지에 대한 응답을 수신하지 못하면, 제어부(330)는 장애가 검출된 제1 스트리밍 서버(200A)에 대하여는 방송자 단말(1000)로 리턴할 '최적의 방송 콘텐츠 송출 경로' 대상에서 배제시킬 수 있다.
결국, 제어부(330)는 복수의 스트리밍 서버(200A, 200B, 200C) 중 가용 공간이 존재하는 제1 및 제2 스트리밍 서버(200A, 200B)를 탐색하고, 탐색된 스트리밍 서버의 장애 여부를 검출하여 제2 스트리밍 서버(200B)에 대응하는 IP 주소를 방송자 단말(100)에 리턴할 수 있다.
만일, 도 3에 도시된 바와 달리 '최적의 방송 콘텐츠 송출 경로'가 복수 개인 경우, 제어부(330)는 방송자 단말(100)로 리턴하는 IP 주소를 라운드 로빈(Round Robin) 방식에 의해 균등하게 할당하거나, 또는 기 설정된 우선순위에 따라 할당할 수 있다. 여기서, 우선순위는 로드율 내지 부하량이 낮은 스트리밍 서버 및/또는 처리용량의 한계치가 상대적으로 큰 스트리밍 서버 순 등으로 설정될 수 있으나, 이는 예시적인 것에 불과하다.
이처럼, 제1 로드 밸런서(300)는 적어도 하나의 방송 콘텐츠를 복수의 스트리밍 서버(200) 마다 균등하게 분배함으로써 스트리밍 서버(200)의 부하를 적절하게 분산하고, 가용 공간을 미리 탐색함으로써 방송 콘텐츠의 송출 시간 내지 탐색 지연(seeking delay) 시간을 단축할 수 있다. 또한, 헬스 체크 수행 결과에 따라 방송자 단말(100)로 리턴하는 IP 주소를 우회시킴으로써, 스트리밍 서버(200)로 송출될 적어도 하나의 방송 콘텐츠에 대한 높은 안정성을 확보할 수 있다.
다시 도 2로 돌아와서, 스트리밍 서버(200)는 메타정보 관리부(220), 청크 할당부(230) 및 통신부(240)를 더 포함할 수 있다.
메타정보 관리부(220)는 스트리밍 서버(200)가 보유하는 복수 개의 슬롯(210) 내에 저장된 복수 개의 방송 콘텐츠 별로 메타 정보를 생성할 수 있다. 여기서, 메타 정보는 복수 개의 방송 콘텐츠를 식별하기 위한 정보를 의미할 수 있다.
청크 할당부(230)는 메타 정보에 대응되는 방송 콘텐츠를 다수 개의 청크 파일로 분할하고, 분할된 다수 개의 청크 파일을 순차적으로 저장 및 유지할 수 있다. 여기서, 청크 파일이란 방송 컨텐츠를 다수 개의 조각으로 잘라 놓은 세그먼트(segment)를 의미하며, 수신자 단말(600)이 방송 컨텐츠를 스트리밍하기 위하여 필요한 최소한의 단위를 말한다. 이에, 스트리밍 서버(200)는 오리진 서버(Origin server)의 역할을 수행할 수 있으며, 수신자 단말(600)은 스트리밍 대상이 되는 방송 콘텐츠를 청크 파일 단위로 요청하고 내려 받을 수 있다.
통신부(240)는 에지 서버(400)의 요청을 수신하고, 특정 방송 콘텐츠에 대한 메타 정보 및 다수 개의 청크 파일을 에지 서버(400)로 송신할 수 있다.
또한, 통신부(240)는 제2 로드 밸런서(500)의 요청에 따라, 상기 메타 정보 및 청크 파일의 목록정보를 송신할 수도 있다.
상술한 메타 정보, 다수 개의 청크 파일 및 청크 파일의 목록정보에 대하여 도 4를 참조하여 먼저 설명하기로 한다.
도 4는 본 발명의 일 실시 예에 따른 메타정보 관리부, 청크 할당부에 따라 생성된 데이터 구조도이다.
도 4를 참조하면, 방송 콘텐츠는 메타정보 관리부(220)에 의해 생성된 메타 정보(410)와 청크 할당부(230)에 의해 분할된 M개(여기서, M은 1 이상의 정수)의 청크 파일(420)로 인코딩(encoding) 될 수 있다.
메타 정보(410)는 총 프레임(TF; Total Frame), 비트레이트(BR; Bit Rate), 콘텐츠 제목(CN; Contens Name) 및 인코딩 규격(EN; Encoding)을 포함할 수 있다.
총 프레임(TF)은 다수 개의 청크 파일(420)에 포함된 총 프레임의 개수 또는 총 스트리밍 시간을 의미하고, 비트레이트(BR)는 방송 콘텐츠의 품질을 나타내는 수치인 초당 처리 비트 수(단위: Mbps)를 의미한다.
콘텐츠 제목(CN)은 방송 콘텐츠의 제목을 의미하고, 인코딩 규격(EN)은 다수 개의 청크 파일(420)이 인코딩되어 있는 규격을 의미한다.
다수 개의 청크 파일(420)은 각각 헤더(Header) 정보(422) 및 청크 인덱스(Chunk Index) 정보(424)를 포함하는 청크 파일의 목록정보(426)를 포함할 수 있다. 여기서, 청크 인덱스 정보(424)는 특정 청크 파일이 다수 개의 청크 파일(420_1~420_M)에서 몇 번째에 위치하는지를 알려주기 위해 삽입되며, 청크 인덱스 정보(424_1~424_M)를 통하여 수신자 단말(600)은 청크 파일(420_1~420_M) 단위로 방송 콘텐츠를 액세스(access)할 수 있게 되어 디코딩(decoding) 효율을 높일 수 있다.
다시 도 2로 돌아와서, 수신자 단말(400)은 제2 통신 프로토콜(800)을 통하여 에지 서버(500)로 복수의 방송 콘텐츠 중 특정 방송 콘텐츠에 대한 수신을 요청할 수 있다. 여기서, 제2 통신 프로토콜(800)은 제1 통신 프로토콜(700)과 서로 다를 수 있으며, 예시적으로 HLS(HTTP Live Streaming)일 수 있다.
에지 서버(500)는 복수의 스트리밍 서버(200) 및 수신자 단말(400) 각각과 제2 통신 프로토콜(800)에 의해 연동되어, 복수의 스트리밍 서버(200) 중 어느 하나로부터 수신자 단말(200)로 특정 방송 콘텐츠에 대한 메타정보(410) 및 다수 개의 청크 파일(420)을 전송하는 역할을 수행하며, 수신자 단말(400)과 복수의 스트리밍 서버(200) 간의 전송을 중계하는 매개체 역할을 할 수 있다.
또한, 에지 서버(500)는 제2 로드 밸런서(600)로 특정 방송 콘텐츠에 대한 메타정보(410) 및 다수 개의 청크 파일(420)의 위치 정보를 질의할 수 있다. 여기서, 위치 정보란 복수의 스트리밍 서버(200) 중 수신자 단말(400)에 의해 요청된 특정 방송 콘텐츠를 보유하는 스트리밍 서버(200)의 IP 주소를 의미할 수 있다.
제2 로드 밸런서(600)는 복수의 스트리밍 서버(200) 각각으로부터 복수의 방송 콘텐츠 별로 생성된 메타정보(410) 및 분할된 청크 파일의 목록정보(426)를 기 설정된 주기마다 수신하고, 기 설정된 테이블에 기초하여 수신자 단말(400)이 요청한 특정 방송 콘텐츠에 대한 위치 정보를 에지 서버(500)로 송신할 수 있다. 도 3에서 전술한 바와 같이, 메타 정보(410)는 복수 개의 방송 콘텐츠를 식별하기 위한 정보이고, 분할된 청크 파일의 목록정보(426)는 헤더 정보(424) 및 청크 인덱스 정보(424)를 포함할 수 있다.
기 설정된 테이블은 복수의 스트리밍 서버(200) 각각의 IP 주소, 상기 IP 주소에 할당된 복수의 방송 콘텐츠 각각의 메타정보(410) 및 분할된 청크 파일의 목록정보(426)를 포함하며, 특정 방송 콘텐츠가 위치한 스트리밍 서버(200)의 IP 주소를 빠르게 탐색할 수 있도록 내부에 룩 업 테이블(Look up table)의 형태로 미리 저장될 수 있다.
또한, 기 설정된 테이블은 스트리밍 서버(200)의 변경 상황-예컨대, 신규의 스트리밍 서버가 추가되거나, 기존의 스트리밍 서버가 삭제되는 경우 등-을 반영하여 주기적으로 갱신될 수 있다.
그리고, 제2 로드 밸런서(600)는 복수의 스트리밍 서버(200) 및 에지 서버(500) 각각에 대하여 주기적으로 헬스 체크 동작을 수행할 수도 있다.
에지 서버(500)는, 제2 로드 밸런서(600)로부터 수신한 IP 주소에 대응하는 스트리밍 서버에 접속하여 특정 방송 콘텐츠에 대한 메타정보(410) 및 다수 개의 청크 파일(420)을 수신자 단말(400)로 전송할 수 있다.
이처럼, 제2 로드 밸런서(600)는 수신자 단말(400)이 요청한 특정 방송 콘텐츠의 위치 정보를 미리 탐색하고, 상기 위치 정보를 에지 서버(500)로 알려주므로, 복수의 스트리밍 서버(200) 내에서 상기 특정 방송 콘텐츠를 탐색하기 위하여 소요되는 대기시간(seeking latency)을 현저히 단축시킬 수 있다.
한편, 전술한 본 발명의 방송 서비스 송수신 시스템(1000)은 방송 서비스 제공 장치 및 방송 서비스 수신 장치로 양분될 수 있다.
방송 서비스 제공 장치는 방송자 단말(100), 스트리밍 서버(200) 및 제1 로드 밸런서(300)를 포함하고, 방송 서비스 수신 장치는 수신자 단말(400), 에지 서버(500), 스트리밍 서버(200) 및 제2 로드 밸런서(600)를 포함할 수 있다.
스트리밍 서버(200)는 방송자 단말(100)가 송출한 방송 콘텐츠를 에지 서버(500)로 재송출하는 측면에서 송신단의 종단 서버로 이해될 수 있고, 수신자 단말(400)로부터 요청된 특정 방송 콘텐츠를 다수 개의 청크 파일로 분할 내지 인코딩하여 송출하는 측면에서 수신단의 오리진 서버로 이해될 수 있다. 이처럼, 송신단 및 수신단 각각에서 양면성을 가지므로 스트리밍 서버(200)는 방송 서비스 제공 장치 및 방송 서비스 수신 장치 각각에 포함될 수 있다.
이하에서는 도 5를 참조하여 방송 서비스 제공 장치에서 동적으로 자원을 할당하는 방법을 설명하기로 한다.
도 5는 본 발명의 일 실시 예에 따른 방송 서비스 제공 장치에서 방송 콘텐츠를 송출하는 방법을 나타내는 순서도이다.
도 5의 (a)를 참조하면, 먼저 방송자 단말(100)은 복수의 스트리밍 서버(200)가 포함된 특정 도메인에 접속할 수 있다(S510).
방송자 단말(100)이 특정 도메인에 접속하면, 제1 로드 밸런서(300)는 소정의 통신망을 통하여 기 설정된 주기 마다 복수의 스트리밍 서버(200)와 소정의 상태 정보 내지 헬스 체크 메시지를 송수신할 수 있다(S520). 여기서, 소정의 상태 정보는 복수의 스트리밍 서버(200) 각각에 존재하는 적어도 하나의 방송 콘텐츠의 스트리밍 상태 정보를 포함할 수 있다.
S520 단계 이후, 제1 로드 밸런서(300)는 방송자 단말(100)로 리턴할 소정의 IP 주소를 할당할 수 있다(A, S530). S530 단계는 도 5의 (b)를 참조하여 설명하기로 한다.
도 5의 (b)를 참조하면, 제1 로드 밸런서(300)는 기 설정된 관리 정보에 기초하여 복수의 스트리밍 서버(200) 내 적어도 하나의 방송 콘텐츠를 수용하기 위한 가용 공간이 존재하는지 여부를 탐색할 수 있다(S532). 여기서, 기 설정된 관리 정보는 복수의 스트리밍 서버(200A, 200B, 200C) 별로 동시에 스트리밍 가능한 방송 콘텐츠의 최대값 내지 임계치를 포함할 수 있다.
S532 단계에서, 제1 로드 밸런서(300)는 상기 수신한 스트리밍 상태 정보를 토대로 복수의 스트리밍 서버(200) 각각에서 현재 스트리밍 중인 방송 콘텐츠의 수를 산출하고, 동시에 스트리밍 가능한 방송 콘텐츠의 최대값과 현재 스트리밍 중인 방송 콘텐츠의 수를 비교 판단하여 방송자 단말(100)에 IP 주소를 할당할 수 있다.
비교 판단 결과, 복수의 스트리밍 서버(200) 중 적어도 하나의 스트리밍 서버 내에서 현재 스트리밍 중인 방송 콘텐츠의 수가 동시에 스트리밍 가능한 방송 콘텐츠의 최대값을 초과하면(S532의 NO 단계), 상기 적어도 하나의 스트리밍 서버를 '최적의 방송 콘텐츠 송출 경로' 대상에서 배제시키고, 다른 스트리밍 서버의 IP 주소로 우회하여 할당할 수 있다(S538).
만일, 비교 판단 결과 복수의 스트리밍 서버(200) 중 적어도 하나의 스트리밍 서버 내에서 현재 스트리밍 중인 방송 콘텐츠의 수가 동시에 스트리밍 가능한 방송 콘텐츠의 최대값 보다 작거나 동일하면(S532의 YES 단계), 헬스 체크 동작을 수행할 수 있다(S534).
S532 단계에서, 제1 로드 밸런서(300)가 상기 적어도 하나의 스트리밍 서버로부터 헬스 체크 메시지에 대한 응답을 수신하지 못한 경우(S534의 NO 단계), 상기 적어도 하나의 스트리밍 서버를 장애 상태로 판단할 수 있다. 이때, 상기 적어도 하나의 스트리밍 서버를 '최적의 방송 콘텐츠 송출 경로' 대상에서 배제시키고, 다른 스트리밍 서버의 IP 주소로 우회하여 할당할 수 있다(S538).
만일, 제1 로드 밸런서(300)가 상기 적어도 하나의 스트리밍 서버로부터 헬스 체크 메시지에 대한 응답을 수신한 경우(S534의 YES 단계), 상기 적어도 하나의 스트리밍 서버를 정상 상태로 판단하고, 해당 스트리밍 서버의 IP 주소를 할당할 수 있다(S536).
이때, 해당 스트리밍 서버의 IP 주소가 복수 개인 경우, 제1 로드 밸런서(300)는 라운드 로빈(Round Robin) 방식에 의해 균등하게 할당하거나, 또는 기 설정된 우선순위에 따라 할당할 수 있다. 여기서, 우선순위는 로드율 내지 부하량이 낮은 스트리밍 서버 및/또는 처리용량의 한계치가 상대적으로 큰 스트리밍 서버 순 등으로 설정될 수 있다.
다시 도 5의 (a)로 돌아와서, S530 단계(A) 이후 제1 로드 밸런서(300)는 방송 콘텐츠 송출을 위한 IP 주소를 방송자 단말(100)로 리턴할 수 있다(S540).
그리고, 방송자 단말(100)은 제1 로드 밸런서(300)가 리턴한 상기 IP 주소에 대응하는 스트리밍 서버(200)에 접속하여 적어도 하나의 방송 콘텐츠를 송출함으로써 종료될 수 있다(S550).
도 6은 본 발명의 일 실시 예에 따른 방송 서비스 수신 장치에서 방송 콘텐츠를 수신하는 방법을 나타내는 순서도이다.
도 6을 참조하면, 먼저 수신자 단말(400)은 에지 서버(500)로 특정 방송 콘텐츠를 요청할 수 있다(S610).
수신자 단말의 요청에 따라, 에지 서버(500)는 제2 로드 밸런서(600)로 특정 방송 콘텐츠에 대한 메타정보(410) 및 다수 개의 청크 파일(420)의 위치 정보를 질의할 수 있다. 여기서, 위치 정보란 복수의 스트리밍 서버(200) 중 수신자 단말(400)에 의해 요청된 특정 방송 콘텐츠를 보유하는 스트리밍 서버(200)의 IP 주소를 의미할 수 있다.
이후, 복수의 스트리밍 서버(200) 각각은 복수의 방송 콘텐츠 별로 생성된 메타정보(410) 및 분할된 청크 파일의 목록정보(426)를 제2 로드 밸런서(600)로 기 설정된 주기마다 송신할 수 있다(S630).
그리고, 제2 로드 밸런서(600)는 복수의 스트리밍 서버(200) 각각의 IP 주소, 상기 IP 주소에 할당된 복수의 방송 콘텐츠 각각의 메타정보(410) 및 분할된 청크 파일의 목록정보(426)를 포함한 소정의 테이블을 미리 설정하여 저장하고, 미리 설정된 테이블에 기초하여 수신자 단말(400)이 요청한 특정 방송 콘텐츠에 대한 위치 정보를 탐색할 수 있다(S640).
이후, 제2 로드 밸런서(600)는 S640 단계에서 탐색한 위치 정보를 에지 서버(500)로 송신하고(S650), 에지 서버(500)는 제2 로드 밸런서(600)로부터 수신한 IP 주소에 대응하는 스트리밍 서버(200)에 접속하여 특정 방송 콘텐츠에 대한 메타정보(410) 및 다수 개의 청크 파일(420)을 요청할 수 있다(S660).
상기 탐색된 위치정보에 대응하는 스트리밍 서버(200)는 에지 서버(500)를 경유하여 수신자 단말(400)로 해당 메타정보(410) 및 다수 개의 청크 파일(420)을 전송함으로써 종료될 수 있다(S670, S680).
전술한 본 발명은 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
실시 예와 관련하여 전술한 바와 같이 몇 가지만을 기술하였지만, 이외에도 다양한 형태의 실시가 가능하다. 앞서 설명한 실시 예들의 기술적 내용들은 서로 양립할 수 없는 기술이 아닌 이상은 다양한 형태로 조합될 수 있으며, 이를 통해 새로운 실시 형태로 구현될 수도 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 통상의 기술자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (14)

  1. 동적 자원 할당이 가능한 방송 서비스 제공 장치에 있어서,
    방송 콘텐츠를 송출하는 방송자 단말;
    상기 방송자 단말과 소정의 통신 프로토콜에 의해 연동되어, 상기 방송 콘텐츠를 수신하는 복수의 스트리밍 서버; 및
    상기 복수의 스트리밍 서버 내에 상기 방송 콘텐츠를 수용하기 위한 가용 공간을 탐색하고, 기 설정된 관리 정보에 기초하여 상기 방송 콘텐츠를 상기 복수의 스트리밍 서버에 균등하게 할당하거나 우선순위가 높은 순으로 할당하는 로드 밸런서;를 포함하고,
    상기 로드 밸런서는,
    상기 복수의 스트리밍 서버 중 어느 하나의 제1 스트리밍 서버에서 현재 스트리밍 중인 방송 콘텐츠의 수가 미리 설정된 임계치에 도달하면, 상기 제1 스트리밍 서버와 다른 제2 스트리밍 서버의 IP(Internet Protocol) 주소를 상기 방송자 단말로 리턴하고,
    상기 방송자 단말은,
    상기 IP 주소에 대응하는 상기 제2 스트리밍 서버에 접속하여 상기 방송 콘텐츠를 송출하는, 방송 서비스 제공 장치.
  2. 제1 항에 있어서,
    상기 임계치는,
    상기 복수의 스트리밍 서버 별로 동시에 스트리밍 가능한 방송 콘텐츠의 최대값으로 상기 기 설정된 관리 정보를 구성하는, 방송 서비스 제공 장치.
  3. 제2 항에 있어서,
    상기 로드 밸런서는,
    기 설정된 주기 마다 상기 복수의 스트리밍 서버 각각에 존재하는 방송 콘텐츠의 스트리밍 상태 정보를 수신하고, 상기 스트리밍 상태 정보를 토대로 상기 현재 스트리밍 중인 방송 콘텐츠의 수를 산출하는, 방송 서비스 제공 장치.
  4. 제1 항에 있어서,
    상기 로드 밸런서는,
    주기적으로 상기 제2 스트리밍 서버의 장애 여부를 판단하고, 상기 판단 결과에 따라 상기 방송자 단말로 리턴되는 상기 IP 주소를 우회하여 할당하는, 방송 서비스 제공 장치.
  5. 제1 항에 있어서,
    상기 소정의 통신 프로토콜은, RTMP(Real Time Messaging Protocol)인, 방송 서비스 제공 장치.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 방송 콘텐츠를 송출하는 방송자 단말;
    상기 방송자 단말로부터 송출된 상기 방송 콘텐츠를 수신하여 다수의 청크파일로 분할하고 메타정보를 생성하는 복수의 스트리밍 서버;
    상기 복수의 스트리밍 서버 내에 상기 방송 콘텐츠를 수용하기 위한 가용 공간을 탐색하고, 기 설정된 관리 정보에 기초하여 상기 방송 콘텐츠를 상기 복수의 스트리밍 서버에 균등하게 할당하거나 우선순위가 높은 순으로 할당하는 제1 로드 밸런서;
    수신자 단말의 요청에 응답하여, 상기 복수의 스트리밍 서버 중 어느 하나로부터 상기 수신자 단말로 상기 방송 콘텐츠를 재송출하는 에지 서버; 및
    상기 에지 서버의 질의에 응답하여, 기 설정된 테이블을 기반으로 상기 복수의 스트리밍 서버 중 상기 수신자 단말이 요청한 상기 방송 콘텐츠의 위치 정보를 탐색하는 제2 로드 밸런서;를 포함하고,
    상기 제1 로드 밸런서는, 상기 복수의 스트리밍 서버 중 어느 하나의 제1 스트리밍 서버에서 현재 스트리밍 중인 방송 콘텐츠의 수가 미리 설정된 임계치에 도달하면, 상기 제1 스트리밍 서버와 다른 제2 스트리밍 서버의 IP(Internet Protocol) 주소를 상기 방송자 단말로 리턴하고,
    상기 방송자 단말은, 상기 상기 IP 주소에 대응하는 상기 제2 스트리밍 서버에 접속하여 상기 방송 콘텐츠를 송출하고,
    상기 에지 서버는, 상기 복수의 스트리밍 서버 중 상기 위치 정보에 대응하는 스트리밍 서버에 접속하여 상기 방송 콘텐츠에 대한 메타정보 및 다수의 청크 파일을 상기 수신자 단말로 전송하는, 방송 서비스 송수신 시스템.
  10. 제9 항에 있어서,
    상기 기 설정된 테이블은,
    상기 복수의 스트리밍 서버 각각의 IP 주소 및 상기 각각의 IP 주소에 할당된 상기 메타정보와 상기 다수의 청크 파일에 대한 목록정보를 포함하는, 방송 서비스 송수신 시스템.
  11. 제10 항에 있어서,
    상기 기 설정된 테이블은,
    신규로 추가되거나 삭제되는 스트리밍 서버의 변경 상황을 반영하여 주기적으로 갱신되는, 방송 서비스 송수신 시스템.
  12. 제9 항에 있어서,
    상기 임계치는,
    상기 복수의 스트리밍 서버 별로 동시에 스트리밍 가능한 방송 콘텐츠의 최대값으로 상기 기 설정된 관리 정보를 구성하는, 방송 서비스 송수신 시스템.
  13. 제9 항에 있어서,
    상기 제1 로드 밸런서는,
    주기적으로 상기 제2 스트리밍 서버의 장애 여부를 판단하고, 상기 판단 결과에 따라 상기 방송자 단말로 리턴되는 상기 IP 주소를 우회하여 할당하는, 방송 서비스 송수신 시스템.
  14. 제9 항에 있어서,
    상기 제2 로드 밸런서는,
    주기적으로 상기 복수의 스트리밍 서버 및 상기 에지 서버 각각에 대하여 헬스 체크 동작을 수행하는, 방송 서비스 송수신 시스템.
KR1020180132970A 2018-11-01 2018-11-01 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템 KR102195516B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180132970A KR102195516B1 (ko) 2018-11-01 2018-11-01 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180132970A KR102195516B1 (ko) 2018-11-01 2018-11-01 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템

Publications (2)

Publication Number Publication Date
KR20200050220A KR20200050220A (ko) 2020-05-11
KR102195516B1 true KR102195516B1 (ko) 2020-12-29

Family

ID=70729496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180132970A KR102195516B1 (ko) 2018-11-01 2018-11-01 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템

Country Status (1)

Country Link
KR (1) KR102195516B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2608558A1 (en) * 2011-12-22 2013-06-26 Thomson Licensing System and method for adaptive streaming in a multipath environment
KR101521257B1 (ko) * 2012-11-22 2015-05-19 주식회사 미리내소프트 서버 부하 균형 관리를 통한 방송 서비스 제공 시스템
KR101780247B1 (ko) * 2016-03-04 2017-09-20 주식회사 큐버 동적 적응 버퍼링 기반의 ott 데이터 처리 방법

Also Published As

Publication number Publication date
KR20200050220A (ko) 2020-05-11

Similar Documents

Publication Publication Date Title
US10142405B2 (en) Multi-CDN digital content streaming
US10523732B2 (en) Multi-CDN digital content streaming
KR101072966B1 (ko) 파일 데이터 분배 방법, 디바이스, 및 시스템
US10637916B2 (en) Method and device for storage resource allocation for video cloud storage
US10069885B2 (en) Bandwidth management for over-the-top adaptive streaming
US8239514B2 (en) Managing content delivery network service providers
US9176779B2 (en) Data access in distributed systems
US20140165119A1 (en) Offline download method, multimedia file download method and system thereof
US20080189429A1 (en) Apparatus and method for peer-to-peer streaming
KR101959970B1 (ko) 컨텐츠 전송 서비스 방법, 이를 위한 캐시 장치
CN102143150A (zh) 一种获取媒体内容的方法、设备及系统
JP2012150809A (ja) P2p基盤のストリーミングサービスでバッファリングを行うシステムおよび方法、並びにクライアントでバッファリングを処理するアプリケーションを配布するシステム
US20110209184A1 (en) Content distribution method, system, device and media server
US9491212B2 (en) Method for streaming media and media controller
KR102195516B1 (ko) 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템
US8583819B2 (en) System and method for controlling server usage in peer-to-peer (P2P) based streaming service
US20090300182A1 (en) Computer-readable storage medium storing event control program, event control method, and event controller
Nunome et al. A distributed storage system with dynamic tiering for iSCSI environment
US9229944B2 (en) Scalable networked digital video recordings via shard-based architecture
US9288153B2 (en) Processing encoded content
KR20130134911A (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
Qiang et al. A Hyper-converged video management system based on object storage
JP4046562B2 (ja) 負荷分散方法
KR20080004826A (ko) 구간정보를 이용한 멀티미디어 콘텐츠의 스트리밍 방법 및그 스트리밍 단말기
KR20150039986A (ko) 컨텐츠 전송 제어 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant