KR100797389B1 - The cluster based streaming system and method using multiple description coding - Google Patents

The cluster based streaming system and method using multiple description coding Download PDF

Info

Publication number
KR100797389B1
KR100797389B1 KR1020060036280A KR20060036280A KR100797389B1 KR 100797389 B1 KR100797389 B1 KR 100797389B1 KR 1020060036280 A KR1020060036280 A KR 1020060036280A KR 20060036280 A KR20060036280 A KR 20060036280A KR 100797389 B1 KR100797389 B1 KR 100797389B1
Authority
KR
South Korea
Prior art keywords
streaming
server
description
information
client
Prior art date
Application number
KR1020060036280A
Other languages
Korean (ko)
Other versions
KR20070104102A (en
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 KR1020060036280A priority Critical patent/KR100797389B1/en
Publication of KR20070104102A publication Critical patent/KR20070104102A/en
Application granted granted Critical
Publication of KR100797389B1 publication Critical patent/KR100797389B1/en

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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load

Landscapes

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

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

본 발명은 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템 및 그 방법에 관한 것임.The present invention relates to a cluster-based streaming system and method using multiple description coding.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

본 발명은 스트리밍 서비스를 위한 멀티미디어 데이터를 다중 디스크립션 코딩(Multiple Description Coding)을 이용하여 각각 인코딩 및 저장하고, 인터넷을 통해 클라이언트로 상기 멀티미디어 데이터를 전송할 때 디스패처 및 다수의 스트리밍 서버를 통해 각 디스크립션을 스트리밍 함으로써, 클러스터 내 서버 간의 부하를 균등하게 함과 동시에 클라이언트/네트워크 상태에 적응 가능한 서비스를 제공할 뿐만 아니라 일부 서버의 고장 시에도 지속적으로 서비스를 제공하기 위한, 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템 및 그 방법을 제공하는데 그 목적이 있음.The present invention encodes and stores multimedia data for a streaming service using multiple description coding, respectively, and streams each description through a dispatcher and a plurality of streaming servers when transmitting the multimedia data to a client through the Internet. This provides a cluster-based streaming system using multiple description coding to equally load between servers in a cluster and to provide services that are adaptable to client / network conditions as well as to provide continuous service in the event of some server failure. And to provide a method thereof.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

본 발명은, 클러스터 기반의 스트리밍 시스템에 있어서, 각 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보와 같은 메타데이터를 저장하고 있는 메타데이터 데이터베이스; 클라이언트로부터의 스트리밍 서비스 요청에 따라 해당되는 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보와 같은 메타데이터를 상기 메타데이터 데이터베이스로부터 전달받고, 상기 전달받은 정보(메타데이터)를 기반으로 결정한 스트리밍 서버 정보를 상기 클라이언트로 회신하기 위한 디스패처; 및 콘텐츠의 디스크립션을 저장하고 있고, 상기 디스패처로부터 클라이언트 정보 및 디스크립션 파일명을 전달받음에 따라 해당되는 디스크립션을 상기 클라이언트 정보를 이용하여 전송하기 위한 스트리밍 서버를 포함함.The present invention provides a cluster-based streaming system comprising: a metadata database storing metadata such as description information of each content, streaming server information storing the description, server load information, and stream information currently being serviced; In response to a streaming service request from a client, metadata, such as description information of a corresponding content, streaming server information storing the description, server load information, and stream information currently being serviced, is received from the metadata database. A dispatcher for returning streaming server information determined based on the information (metadata) to the client; And a streaming server that stores a description of content and transmits the corresponding description by using the client information as the client information and the description file name are received from the dispatcher.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 스트리밍 시스템 등에 이용됨.The invention is used in streaming systems and the like.

멀티미디어 데이터 스트리밍, 클러스터, 다중 디스크립션 코딩 Multimedia data streaming, clusters, multiple description coding

Description

다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템 및 그 방법{The cluster based streaming system and method using multiple description coding}The cluster based streaming system and method using multiple description coding}

도 1 은 공지의 다중 디스크립션 코딩에 대한 일실시예 설명도,1 is a diagram illustrating an embodiment of known multiple description coding;

도 2 는 종래 기술에 따른 클러스터 기반 스트리밍 서버에 대한 일실시예 설명도,2 is a diagram illustrating an embodiment of a cluster-based streaming server according to the prior art;

도 3 은 종래 기술에 따른 클러스터 기반 스트리밍 서버에서의 서비스 흐름에 대한 일실시예 설명도,3 is a diagram illustrating a service flow in a cluster-based streaming server according to the prior art;

도 4 는 본 발명에 따른 클러스터 기반의 스트리밍 시스템과 상기 스트리밍 시스템에서의 서비스 흐름에 대한 일실시예 설명도,4 is a diagram illustrating an embodiment of a cluster-based streaming system and a service flow in the streaming system according to the present invention;

도 5 는 본 발명에 따른 클러스터 기반의 스트리밍 시스템에서 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법에 대한 일실시예 흐름도,5 is a flowchart illustrating a method for providing a streaming service using multiple description coding in a cluster-based streaming system according to the present invention;

도 6 은 본 발명에 따른 디스패처 노드의 일실시예 구성도이다.6 is a diagram illustrating an embodiment of a dispatcher node according to the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

100 : 디스패처 노드 110 : 콘텐츠 분배 모듈100: dispatcher node 110: content distribution module

111 : 서버 상태 검사기 112 : 노드 에이전트111: Server Health Checker 112: Node Agent

113 : 작업관리자 114 : 콘텐츠 전송기113: task manager 114: content transmitter

120 : 메타데이터 관리기 130 : 콘텐츠 스트리밍 모듈120: metadata manager 130: content streaming module

131 : 스케줄러 132 : 클라이언트 상태 검사기131: Scheduler 132: Client Status Checker

133 : 콘텐츠 스트리밍 엔진 200 : 메타데이터 데이터베이스133: content streaming engine 200: metadata database

300 : 스트리밍 서버 400 : 클라이언트300: streaming server 400: client

본 발명은 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 스트리밍 서비스를 위한 멀티미디어 데이터를 다중 디스크립션 코딩(Multiple Description Coding)을 이용하여 각각 인코딩 및 저장하고, 인터넷을 통해 클라이언트로 상기 멀티미디어 데이터를 전송할 때 디스패처 및 다수의 스트리밍 서버를 통해 각 디스크립션을 스트리밍 함으로써, 클러스터 내 서버 간의 부하를 균등하게 함과 동시에 클라이언트/네트워크 상태에 적응 가능한 서비스를 제공할 뿐만 아니라 일부 서버의 고장 시에도 지속적으로 서비스를 제공하기 위한, 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템 및 그 방법에 관한 것이다.The present invention relates to a cluster-based streaming system using multiple description coding and a method thereof. More particularly, the present invention relates to encoding and storing multimedia data for a streaming service using multiple description coding. Streaming each description through the dispatcher and multiple streaming servers when sending the multimedia data to the client via the server not only provides loads between servers in the cluster, but also provides services adaptable to client / network conditions, The present invention relates to a cluster-based streaming system using multiple description coding and a method for continuously providing a service even when a failure occurs.

본 발명에서 클라이언트란 무선통신 단말기, 퍼스널 컴퓨터, 노트북, 휴대용 멀티미디어 플레이어(PMP) 등과 같이 데이터 통신이 가능한 각종 단말기를 말한다.In the present invention, the client refers to various terminals capable of data communication such as a wireless communication terminal, a personal computer, a notebook computer, a portable multimedia player (PMP), and the like.

그리고 본 발명에서 무선통신 단말기란 이동통신 단말기, 개인휴대통신 단말기(PCS), 개인용디지털 단말기(PDA), 스마트폰, 차세대이동통신 단말기(IMT-2000), 무선랜 단말기 등과 같이 개인이 휴대하면서 무선통신이 가능한 단말기를 말한다.In the present invention, a wireless communication terminal is a mobile communication terminal, a personal mobile communication terminal (PCS), a personal digital terminal (PDA), a smart phone, a next generation mobile communication terminal (IMT-2000), a wireless LAN terminal and the like while being carried by an individual A terminal that can communicate.

최근 인터넷 기술의 발달로 멀티미디어 데이터의 스트리밍 서비스(예 : 주문형 비디오)에 대한 사용자 욕구가 점점 증대하고 있다. Recently, with the development of internet technology, user desire for streaming data of multimedia data (eg, video on demand) is increasing.

스트리밍은 대용량의 비디오, 오디오와 같은 멀티미디어 데이터를 실시간으로 송/수신 및 디코딩하여 네트워크와 중앙처리장치(CPU)의 자원을 최적으로 이용하는 기술로서, 전체 콘텐츠를 수신한 후에 서비스를 시작하는 다운로드 방식(긴 대기시간이 요구됨)에 비해 사용자가 콘텐츠를 선택하는 즉시 서비스를 받을 수 있도록 하는 장점이 있다.Streaming is a technology that optimally uses the resources of the network and the CPU by transmitting / receiving and decoding multimedia data such as video and audio in real time in real time. Long waiting time is required), so that the user can receive the service immediately upon selecting the content.

한편, 다중 디스크립션 코딩(Multiple Description Coding)은 다중-경로 간섭 및 도플러 다중성이 행해지는 무선 네트워크와 같은 네트워크를 통해 강인한 통신을 위한 효율적인 기술로 공지된 상태이다. 상기 다중 디스크립션 코딩에 관한 공지의 기술을 도 1을 참조하여 살펴보면 다음과 같다.On the other hand, Multiple Description Coding is a state known as an efficient technique for robust communication over a network such as a wireless network in which multi-path interference and Doppler multiplication is performed. A known technique related to the multiple description coding will be described with reference to FIG. 1.

도 1 은 공지의 다중 디스크립션 코딩에 대한 일실시예 설명도이다. 1 is a diagram illustrating an embodiment of known multiple description coding.

여기서는, "Reliable Video Communication Over Lossy Packet Networks using Multiple State Encoding and Path Diversity(Visual communications and Image Processing, pp.392-409, Jan.2001, J,G. Apostolopoulos)"에 대하여 설명하기로 한다.Herein, "Reliable Video Communication Over Lossy Packet Networks using Multiple State Encoding and Path Diversity (Visual communications and Image Processing, pp. 392-409, Jan. 2001, J, G. Apostolopoulos)" will be described.

"110a, 110b, 110c"로 표시된, 복수의 이미지 프레임들을 포함하는 비디오 데이터는 정보의 홀수 프레임들(121, 123, 125) 및 정보의 짝수 프레임들(122, 124, 126)로 분리된다. 그리고 각 홀/짝수 프레임 내의 비디오 정보는 엠펙(MPEG) 등과 같은 공지의 인코딩 기술에 의해 각각 독립적으로 인코딩되고, 상기 홀/짝수 프레임 내의 인코딩된 비디오 정보는 동일한, 혹은 서로 다른 채널을 사용하는 네트워크를 통해 전송될 수 있다. 이때, 상기 홀수 프레임과 짝수 프레임으로 지칭된 각 프레임 내의 정보는, 예를 들면 비디오 이미지 내 비디오 데이터의 홀수, 짝수 행들과 연관된 정보일 수도 있다.Video data comprising a plurality of image frames, denoted as " 110a, 110b, 110c ", is separated into odd frames 121, 123, 125 of information and even frames 122, 124, 126 of information. The video information in each odd / even frame is independently encoded by a known encoding technique such as MPEG, and the encoded video information in the odd / even frame is used for a network using the same or different channels. Can be sent through. In this case, the information in each frame referred to as the odd frame and the even frame may be, for example, information associated with odd and even rows of video data in the video image.

여기서, 종래 기술에 따른 클러스터 기반의 스트리밍 서버에 대해 도 2 및 도 3을 참조하여 설명하기로 한다.Here, the cluster-based streaming server according to the prior art will be described with reference to FIGS. 2 and 3.

도 2 는 종래 기술에 따른 클러스터 기반 스트리밍 서버에 대한 일실시예 설명도이다.2 is a diagram illustrating an embodiment of a cluster-based streaming server according to the prior art.

한 대의 서버로는 각 사용자의 스트리밍 서비스 요청을 모두 수용할 수 없으므로, 다수의 서버를 묶어 하나의 가상 서버로 구성하여 서비스를 제공하는 것이 일반적이다.Since one server cannot accommodate all the streaming service requests of each user, it is common to provide a service by combining multiple servers into one virtual server.

이때, 각 서버는 여러 개의 디스크를 포함하여 구성되고, 클러스터를 구성하는 서버 중 하나가 디스패처가 된다. 상기 디스패처는 사용자의 스트리밍 서비스 요청에 따라 클러스터 내의 각 서버에 분배하는 역할을 수행한다.At this time, each server includes a plurality of disks, one of the servers constituting the cluster is a dispatcher. The dispatcher distributes to each server in the cluster according to a streaming service request of the user.

그런데, 다수의 서버에 서로 다른 콘텐츠를 저장하면 많은 종류의 콘텐츠를 제공할 수 있는 장점이 있는 반면, 특정 콘텐츠에 대한 요청이 집중될 경우에는 해 당 콘텐츠를 가지지 않은 서버의 용량이 충분히 남아 있더라도 해당 콘텐츠를 가진 서버의 용량을 초과하는 요청에 대해 서비스를 제공할 수 없는 단점이 있었다.However, storing different content on multiple servers has the advantage of providing many kinds of content, whereas when requests for specific content are concentrated, even if there is enough capacity of the server that does not have the corresponding content, There is a drawback in that the service cannot be provided for a request exceeding the capacity of the server with the content.

상기의 단점을 해결하기 위해, 동일한 콘텐츠를 다수의 서버에 복제(replication)해서 저장하는 방안이 사용되고는 있으나 저장 공간이 낭비되고 복제로 인한 오버헤드가 발생하는 문제점이 있었다.In order to solve the above disadvantage, a method of replicating and storing the same content on a plurality of servers has been used, but there is a problem in that storage space is wasted and overhead due to duplication occurs.

도 3 은 종래 기술에 따른 클러스터 기반 스트리밍 서버에서의 서비스 흐름에 대한 일실시예 설명도이다.3 is a diagram illustrating a service flow in a cluster-based streaming server according to the prior art.

도 3에 도시된 바와 같이, 종래 기술에 따른 클러스터 시스템은 하나의 디스패처와 다수의 스트리밍 서버를 포함하고, 콘텐츠의 설치 및 초기 저장을 위한 파일 서버가 존재한다. 사용자가 디스패처로 스트리밍을 원하는 콘텐츠의 내용을 전송하면(스트리밍 요청)(1), 상기 디스패처가 가장 적절한 서버를 선택하여 해당 서버의 정보를 사용자에게 회신한다(2). 그러면, 사용자가 상기 서버로 접속하여(접속 요청)(3) 스트리밍 서비스를 받게 된다(4).As shown in FIG. 3, the cluster system according to the related art includes one dispatcher and a plurality of streaming servers, and a file server exists for installation and initial storage of content. When the user transmits the content of the content to be streamed to the dispatcher (streaming request) (1), the dispatcher selects the most appropriate server and returns the server information to the user (2). Then, the user connects to the server (access request) (3) and receives the streaming service (4).

한편, 스트리밍 서비스 분야에서 성능 효율성 향상과 관련된 종래의 기술을 구체적으로 살펴보면 다음과 같다.On the other hand, the conventional technology related to improving the performance efficiency in the streaming service field will be described in detail.

제1 선행기술로서 대한민국 등록특허 "다중-디스크립션 계층 인코딩을 사용하여 전송 효율을 개선하기 위한 방법 및 시스템(등록번호 10-2005-7005827)"에 대하여 살펴보면, 다중 디스크립션 코딩 및 미세 입상 공간 코딩(Fine Granular Spatial coding)을 사용하여 네트워크 전송 효율을 개선하기 위한 기술로서 비디오 이미지는 복수의 정보 항목 프레임들로 분할되고, 각각의 프레임은 베이스 계층 및 개선 계층으로 인코딩된 독립적인 계층이다. 그리고 적어도 하나의 통신 채널이 선택되고 베이스 계층 각각은 선택된 통신 채널들 중 하나와 연관되어 이를 통해 전송된다. 또한, 잔여 대역폭은 각각의 연관된 채널 상에서 결정되고, 잔여 대역폭에 상응하는 개선 계층의 레벨이 연관된 채널을 통해 전송된다. As a first prior art, a Korean patent "method and system for improving transmission efficiency using multi-description layer encoding (Registration No. 10-2005-7005827)" will be described. Multiple description coding and fine granular spatial coding (Fine) As a technique for improving network transmission efficiency using Granular Spatial coding, a video image is divided into a plurality of information item frames, each frame being an independent layer encoded with a base layer and an enhancement layer. At least one communication channel is selected and each of the base layers is associated with and transmitted over one of the selected communication channels. In addition, the remaining bandwidth is determined on each associated channel, and the level of the enhancement layer corresponding to the remaining bandwidth is transmitted over the associated channel.

그런데, 상기 제1 선행기술은 네트워크 전송 효율에 관한 기술로서 클러스터 시스템의 신뢰성 및 부하 균등, 적응형 서비스를 위한 방안을 제공하지 못하는 한계가 있었다.However, the first prior art is a technology related to network transmission efficiency, and there is a limit in that it cannot provide a scheme for reliability, load balancing, and adaptive service of a cluster system.

한편, 제2 선행기술로서 "P2P 네트워크에서 멀티소스 스트리밍을 이용한 콘텐츠 분배(정보처리학회논문지 A 제11-A권 제5호 pp.325-332, 2004.10 발표)"에 대하여 살펴보면, 콘텐츠를 제공하는 주체가 고정되어 있지 않아 콘텐츠 분배가 매우 중요한 P2P 네트워크에서 기존의 콘텐츠 공유 모델의 경우 미디어 데이터를 모두 다운로드한 후에 재생하므로 응답 시간이 길고 P2P 멀티소스 미디어 스트리밍에서 콘텐츠 분배가 어려운 점을 해결하기 위하여 수신 피어가 데이터 스트리밍과 동시에 소스 피어의 역할을 수행하도록 함으로써, 사용자 응답 시간이 단축되고 미디어 스트리밍에 참여하는 소스 피어의 수가 늘어나면 비트 전송률이 증가되어 동시 수요자 수도 증가되는 효과가 있다. 또한, 피어가 가지는 미디어 파일의 일부분을 전송하는 메커니즘을 제공하여 콘텐츠 분배가 빨라지도록 하는 효과가 있다. 즉, 콘텐츠를 여러 구간으로 나누고 특정 구간을 특정 송신 피어가 담당하여 전송하며 빨리 전송된 구간을 담당한 피어가 아직 전송이 완료되지 않은 구간의 전송을 도울 수 있도록 함으로써, P2P 멀티소스 미디어 스트리밍에서 콘텐츠 분배를 효율적으로 할 수 있도록 한다.On the other hand, as a second prior art, "distributing content using multi-source streaming in a P2P network (published by Korea Information Processing Society Journal No. 11-A No. 5 pp.325-332, 2004.10)", In the P2P network where content distribution is very important because the subject is not fixed, the existing content sharing model plays back after downloading all the media data, so that the response time is long and the content distribution is difficult to solve in P2P multisource media streaming. By allowing the peer to play the role of the source peer at the same time as the data streaming, the user response time is shortened, and as the number of source peers participating in the media streaming increases, the bit rate is increased to increase the number of concurrent users. In addition, there is an effect that the content distribution is faster by providing a mechanism for transmitting a portion of the media file owned by the peer. In other words, by dividing the content into multiple sections, allowing a specific sending peer to transmit a specific section, and allowing a peer in charge of a quickly transmitted section to assist in the transmission of a section that has not been completed yet, content in P2P multi-source media streaming Make distribution more efficient.

그런데, 상기 제2 선행기술은 P2P 네트워크상에서 스트리밍과 동시에 콘텐츠를 분배할 수 있도록 하는 기술이나, 클러스터 기반의 스트리밍 서비스를 제공함에 있어서는 서버의 안정성, 신뢰성 및 적응형 서비스를 보장할 수 없는 문제점이 있었다.By the way, the second prior art is a technology for distributing content simultaneously with streaming on a P2P network, but there is a problem that can not guarantee the stability, reliability and adaptive services of the server in providing a cluster-based streaming service .

본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 스트리밍 서비스를 위한 멀티미디어 데이터를 다중 디스크립션 코딩(Multiple Description Coding)을 이용하여 각각 인코딩 및 저장하고, 인터넷을 통해 클라이언트로 상기 멀티미디어 데이터를 전송할 때 디스패처 및 다수의 스트리밍 서버를 통해 각 디스크립션을 스트리밍 함으로써, 클러스터 내 서버 간의 부하를 균등하게 함과 동시에 클라이언트/네트워크 상태에 적응 가능한 서비스를 제공할 뿐만 아니라 일부 서버의 고장 시에도 지속적으로 서비스를 제공하기 위한, 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템 및 그 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, and when encoding and storing multimedia data for a streaming service using multiple description coding, respectively, and transmitting the multimedia data to a client through the Internet. By streaming each description through the dispatcher and multiple streaming servers, it not only balances the load among the servers in the cluster, but also provides services that are adaptable to client / network conditions, and provides continuous service in the event of some server failure. An object of the present invention is to provide a cluster-based streaming system and method using multiple description coding.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. Also, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기 목적을 달성하기 위한 본 발명의 시스템은, 클러스터 기반의 스트리밍 시스템에 있어서, 각 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보와 같은 메타데이터를 저장하고 있는 메타데이터 데이터베이스; 클라이언트로부터의 스트리밍 서비스 요청에 따라 해당되는 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보와 같은 메타데이터를 상기 메타데이터 데이터베이스로부터 전달받고, 상기 전달받은 정보(메타데이터)를 기반으로 결정한 스트리밍 서버 정보를 상기 클라이언트로 회신하기 위한 디스패처; 및 콘텐츠의 디스크립션을 저장하고 있고, 상기 디스패처로부터 클라이언트 정보 및 디스크립션 파일명을 전달받음에 따라 해당되는 디스크립션을 상기 클라이언트 정보를 이용하여 전송하기 위한 스트리밍 서버를 포함한다.The system of the present invention for achieving the above object, in a cluster-based streaming system, metadata such as description information of each content, streaming server information storing the description, server load information, stream information currently in service A metadata database stored therein; In response to a streaming service request from a client, metadata, such as description information of a corresponding content, streaming server information storing the description, server load information, and stream information currently being serviced, is received from the metadata database. A dispatcher for returning streaming server information determined based on the information (metadata) to the client; And a streaming server that stores a description of the content and transmits the corresponding description using the client information as the client information and the description file name are received from the dispatcher.

한편, 상기 목적을 달성하기 위한 본 발명의 방법은, 클러스터 기반의 스트리밍 시스템에서의 스트리밍 서비스 제공 방법에 있어서, 원본 콘텐츠의 디스크립션에 대한 정보 및 각 스트리밍 서버의 정보를 저장하고 있는 저장 단계; 클라이언트로부터 콘텐츠에 대한 스트리밍 서비스를 요청받는 요청 수신 단계; 상기 요청받은 스트리밍 서비스를 제공하기 위한 스트리밍 서버의 정보를 상기 클라이언트로 회신하는 회신 단계; 및 상기 스트리밍 서비스를 제공하기 위한 스트리밍 서버가 상기 클라이언트로 디스크립션을 전송하여 스트리밍 서비스를 제공하는 서비스 단계를 포함한다.On the other hand, the method of the present invention for achieving the above object, the streaming service providing method in a cluster-based streaming system, the storage step of storing information about the description of the original content and information of each streaming server; Receiving a request for requesting a streaming service for content from a client; A reply step of returning information of the streaming server for providing the requested streaming service to the client; And a service step of providing a streaming service by transmitting a description to the client by a streaming server for providing the streaming service.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명은 클러스터 기반의 스트리밍 시스템에서 멀티미디어 스트리밍 서비스를 제공함에 있어 다중 디스크립션 코딩을 이용하여 클러스터 내의 공유하지 않는 다수의 저장장치로부터 스트리밍 서비스를 제공할 때 전체 클러스터의 부하를 균일하게 유지할 수 있도록 하는 방안을 제시한다. The present invention provides a method for maintaining the load of the entire cluster uniformly when providing a streaming service from a plurality of unshared storage devices in a cluster by using multiple description coding in providing a multimedia streaming service in a cluster-based streaming system. To present.

그에 따라, 특정 서버에 문제가 발생한 경우에도 끊김 없는 스트리밍 서비스를 제공할 수 있고(낮은 품질의 서비스로 계속 스트리밍 서비스를 제공함), 클라이언트에게 제공하는 디스크립션의 수를 달리하여 클라이언트 및 네트워크 상태에 적응적인 서비스를 제공할 수 있다.This allows you to provide seamless streaming services in the event of a problem with a particular server (continuously providing streaming services with low quality services) and to adapt to client and network conditions by varying the number of descriptions provided to clients. Can provide services.

이때, 본 발명에 따른 클러스터 기반의 스트리밍 시스템은 원본 콘텐츠(별도의 파일서버 내 저장)가 다중 디스크립션 코딩에 따라 인코딩된 n 개(n은 자연수)의 디스크립션을 n 개의 스트리밍 서버에 저장시켜 멀티미디어 스트리밍 서비스를 제공한다.In this case, the cluster-based streaming system according to the present invention is a multimedia streaming service by storing n descriptions (n is a natural number) in which the original content (stored in a separate file server) is encoded according to multiple description coding. To provide.

도 4 는 본 발명에 따른 클러스터 기반의 스트리밍 시스템과 상기 스트리밍 시스템에서의 서비스 흐름에 대한 일실시예 설명도이다.4 is a diagram illustrating an embodiment of a cluster-based streaming system and a service flow in the streaming system according to the present invention.

도 4에 도시된 바와 같이, 본 발명에 따른 클러스터 기반의 스트리밍 시스템은, 각 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보 등과 같은 메타데이터를 저장하고 있는 메타데이터 데이터베이스(200), 클라이언트(400)로부터의 스트리밍 서비스 요청에 따라 해당되는 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보 등과 같은 메타데이터를 상기 메타데이터 데이터베이스(200)로부터 전달받고, 상기 전달받은 정보(메타데이터)를 기반으로 결정한 스트리밍 서버 정보를 상기 클라이언트(400)로 회신하기 위한 디스패처 노드(100), 및 콘텐츠의 디스크립션을 저장하고 있고, 상기 디스패처 노드(100)로부터 클라이언트 정보 및 디스크립션 파일명을 전달받음에 따라 해당되는 디스크립션을 상기 클라이언트 정보를 이용하여 전송하기 위한 스트리밍 서버(300)를 포함한다.As shown in FIG. 4, the cluster-based streaming system according to the present invention stores metadata such as description information of each content, streaming server information storing the description, server load information, stream information currently being serviced, and the like. Metadata such as the metadata database 200 and the streaming service request from the client 400, the description information of the corresponding content, the streaming server information storing the description, the server load information, the stream information currently being serviced, and the like. Receive from the metadata database 200 and store the dispatcher node 100 for returning the streaming server information determined based on the received information (metadata) to the client 400, and a description of the content. The dispatcher node In response to receiving the client information and the description file name from the server 100, the streaming server 300 transmits the corresponding description using the client information.

다음으로, 도 4를 참조하여 스트리밍 시스템에서의 서비스 흐름에 대하여 살펴보면, 먼저 클라이언트(400)가 외부 입력에 따라(1) 디스패처 노드(100)로 스트리밍 서비스를 원하는 콘텐츠의 정보(예 : rtsp://123.456.789.1/스파이더맨.mpg)를 전송하면(2), 상기 디스패처 노드(100)가 메타데이터를 이용하여(3) 해당되는 콘텐츠의 디스크립션을 저장하고 있는 스트리밍 서버(300)의 아이피(IP) 주소(예 : 123.456.789.20, 123.456.789.21, 123.456.789.22, 123.456.789.23)를 알아낸 후 이를 회신한다.Next, referring to FIG. 4, the service flow in the streaming system will be described. First, information of content (eg, rtsp: /) that the client 400 wants to provide a streaming service to the dispatcher node 100 according to an external input (1) is described. /123.456.789.1/Spider-Man.mpg (2), the dispatcher node 100 uses metadata (3) IP of the streaming server 300 that stores the description of the corresponding content (IP) ) Find the address (e.g. 123.456.789.20, 123.456.789.21, 123.456.789.22, 123.456.789.23) and reply.

여기서, 디스패처 노드(100)는 메타데이터를 이용하여 상기 요청받은 콘텐츠의 디스크립션 파일명(예 : 스파이더맨) 및 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보를 알아낸다. 그리고 각 스트리밍 서버(300)로 클라이언트(400)의 정보(아이피 주소)와 디스크립션 파일명(예 : 스파이더맨)을 전송한다(4). 그러면, 각 스트리밍 서버(300)는 상기 전송받은 클라이언트(400)의 정보(아이피 주소)를 이용하여 해당되는 디스크립션 파일을 전송한다.Here, the dispatcher node 100 finds a description file name (eg, spider man) of the requested content and streaming server information storing the description using metadata. Then, the streaming server 300 transmits information (IP address) and description file name (eg, Spider-Man) of the client 400 (4). Then, each streaming server 300 transmits the corresponding description file by using the information (IP address) of the received client 400.

이때, 각 스트리밍 서버(300)는 콘텐츠의 디스크립션을 저장하고 있다. 그리고 상기 메타데이터는 별도의 메타데이터 데이터베이스(200)에 저장되어 있다.At this time, each streaming server 300 stores a description of the content. The metadata is stored in a separate metadata database 200.

또한, 클라이언트(400)는 각 스트리밍 서버(300)로부터 각 스트리밍 세션을 통해 각각 전송받는(5) 스트리밍 데이터(디스크립션)를 별도로 준비한 각 버퍼들에 저장하고, 디코딩한 후 재생한다. 이때, 각 버퍼들은 스트리밍 서버(300)에 대응되도록 준비된다.In addition, the client 400 stores (5) streaming data (description) each received through each streaming session from each streaming server 300 in each of the separately prepared buffers, decodes and plays them. At this time, each buffer is prepared to correspond to the streaming server 300.

한편, 상기 디스패처 노드(100)의 내부 구성요소 및 각 동작 사항에 대해서는 도 6을 참조하여 후술하기로 한다.Meanwhile, internal components of the dispatcher node 100 and operations of the dispatcher node 100 will be described later with reference to FIG. 6.

도 5 는 본 발명에 따른 클러스터 기반의 스트리밍 시스템에서 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법에 대한 일실시예 흐름도이다.5 is a flowchart illustrating a method of providing a streaming service using multiple description coding in a cluster-based streaming system according to the present invention.

여기서, 메타데이터 데이터베이스(200)가 원본 콘텐츠의 디스크립션에 대한 정보(디스크립션 파일명 등), 각 스트리밍 서버(300)의 정보(아이피 주소, 서버 부하 등)를 저장하고 있는 상태이다. 이때, 각 스트리밍 서버의 성능 가중치에 따라 디스크립션을 저장하고 있다.Here, the metadata database 200 stores information on the description of the original content (description file name, etc.) and information of each streaming server 300 (IP address, server load, etc.). At this time, the description is stored according to the performance weight of each streaming server.

먼저, 각 스트리밍 서버(300)가 사전에 자신의 서버 상태 정보를 메타데이터 데이터베이스(200)에 알려준다(등록한다)(501 내지 503). First, each streaming server 300 notifies (registers) its server state information to the metadata database 200 in advance (501 to 503).

이후, 디스패처 노드(100)가 클라이언트(400)로부터 사용자 입력에 따른 일정한 콘텐츠 정보를 전송받는다(504). 이때, 콘텐츠 정보는 멀티미디어 데이터의 스트리밍 서비스를 요청하기 위한 것으로, 예를 들어 사용자가 웹페이지의 "스파이더맨" 하이퍼링크가 선택된 경우 "rtsp://123.456.789.1/스파이더맨.mpg"가 될 수 있다.Thereafter, the dispatcher node 100 receives certain content information according to a user input from the client 400 (504). In this case, the content information is for requesting a streaming service of the multimedia data, for example, when the user selects the "Spider-Man" hyperlink on the web page, it may be "rtsp: //123.456.789.1/Spider-Man.mpg". have.

그러면, 디스패처 노드(100)가 메타데이터 데이터베이스(200)에 저장된 메타데이터를 이용하여, 상기 서비스 요청받은 해당 콘텐츠의 디스크립션을 저장하고 있는 각 스트리밍 서버 정보(예 : 아이피 주소)를 알아내고(505, 506) 이를 클라이언트(400)로 회신한다(507).Then, the dispatcher node 100 uses the metadata stored in the metadata database 200 to find out each streaming server information (eg, IP address) storing the description of the corresponding content requested for the service (505, 506. Return it to client 400 (507).

이에 대하여 보다 상세하게 살펴보면, 디스패처 노드(100)는 상기 서비스 요청에 대한 적절한 디스크립션 수 및 스트리밍 서버의 결정을 위하여, 메타데이터 데이터베이스(200)에 저장되어 있는 디스크립션 수 및 서버 상태 정보 등을 요청하고(505) 그 결과로 디스크립션 수, 해당 디스크립션 파일명, 및 스트리밍 서버(300)의 아이피 주소 등을 제공받아 적절한 디스크립션 수 및 스트리밍 서버를 결정한다(506). 이때, 서버 이름 등이 추가될 수도 있다. 그리고 상기 결정된 각 스트리밍 서버(300)의 아이피 주소 및 세션 수 등을 클라이언트(400)로 회신한다(507).In more detail, the dispatcher node 100 requests the number of descriptions and server state information stored in the metadata database 200 in order to determine an appropriate description of the service request and the streaming server ( As a result, the number of descriptions, the description file name, the IP address of the streaming server 300, and the like are provided to determine an appropriate description number and the streaming server (506). In this case, a server name may be added. The IP address and the number of sessions of the determined streaming server 300 are returned to the client 400 (507).

또한, 상기 디스패처 노드(100)는 상기 알아낸 각 스트리밍 서버(300)로 클라이언트(400)의 아이피 주소 및 디스크립션 파일명을 각각 전송한다(508 내지 510). 이때, 상기 디스크립션 파일 수는 스트리밍 세션 수와 동일하다.In addition, the dispatcher node 100 transmits the IP address and description file name of the client 400 to the respective streaming servers 300 (508 to 510). In this case, the number of description files is equal to the number of streaming sessions.

이후, 각 스트리밍 서버(300)가 서비스 요청받은 콘텐츠의 각 디스크립션들(디스크립션 파일)을 각각의 스트리밍 세션을 통하여 클라이언트(400)로 전송한다(511 내지 513). 즉, 스트리밍 데이터를 제공한다.Thereafter, each streaming server 300 transmits each description (description file) of the service-requested content to the client 400 through each streaming session (511 to 513). That is, it provides streaming data.

그러면, 클라이언트(400)가 별도로 준비한 각 버퍼에 상기 각 스트리밍 서버(300)로부터 전송받는 디스크립션 파일을 저장하고, 디코딩한 후 재생한다. 이때, 각 버퍼는 스트리밍 서버(300)에 일대일로 매칭되도록 존재할 수 있다.Then, the client 400 stores the description file received from each streaming server 300 in each buffer prepared separately, decodes, and plays the description file. In this case, each buffer may exist to match one-to-one with the streaming server 300.

도 6 은 본 발명에 따른 디스패처 노드의 일실시예 구성도이다.6 is a diagram illustrating an embodiment of a dispatcher node according to the present invention.

도 6에 도시된 바와 같이, 본 발명에 따른 디스패처 노드(100)는 크게 콘텐츠 분배 모듈(110), 콘텐츠 스트리밍 모듈(130), 및 메타데이터 관리기(120)를 포함한다. 여기서, 콘텐츠 분배 모듈(110)은 스트리밍 서비스를 제공하기 위하여 파일서버(콘텐츠의 원본/디스크립션 저장 서버, 도시되지 않음)로부터 스트리밍 서버로, 혹은 스트리밍 서버로부터 스트리밍 서버로 디스크립션 파일을 전송하기 위해 사용된다. 또한, 콘텐츠 스트리밍 모듈(130)은 실제 클라이언트(400)로 스트리밍 서비스를 제공하기 위한 모듈이고, 메타데이터 관리기(120)는 전체 클러스터에 포함되어 있는 각 스트리밍 서버(300)의 정보(아이피 주소, 상태 정보, 여유 디스크 크기 등), 각 스트리밍 서버(300)에 저장되어 있는 디스크립션 파일의 정보 및 기타 정보를 관리하는 기능을 수행한다.As shown in FIG. 6, the dispatcher node 100 according to the present invention largely includes a content distribution module 110, a content streaming module 130, and a metadata manager 120. Here, the content distribution module 110 is used to transmit a description file from a file server (original / description storage server of content, not shown) to a streaming server, or from a streaming server to a streaming server to provide a streaming service. . In addition, the content streaming module 130 is a module for providing a streaming service to the actual client 400, the metadata manager 120 is the information (IP address, status of each streaming server 300 included in the entire cluster) Information, free disk size, etc.), and information of a description file stored in each streaming server 300 and other information.

각 구성요소에 대하여 보다 상세히 살펴보면, 콘텐츠 분배 모듈(110)의 서버 상태 검사기(111)는 각 스트리밍 서버(300)의 상태를 주기적으로 검사하여 정상/고장 상태를 파악한다. 이때, 상기 서버 상태 검사기(111)는 각 스트리밍 서버의 상태를 주기적으로 검사하여 서버의 현재 성능 및 정상 동작 여부를 저장하고 고장 상태임을 파악함에 따라 해당되는 스트리밍 서버의 정보를 클라이언트로 알려준다. 그리고 노드 에이전트(112)는 각 스트리밍 서버(300)와의 통신을 담당하며, 작업관리자(113)는 파일서버로부터 스트리밍 서버 혹은 스트리밍 서버 간의 디스크립션 파일의 전송을 관리하고, 콘텐츠 전송기(114)가 실제 파일 전송을 담당한다. 여기서, 상기 작업관리자(113)는 사람이 아니라, 파일서버로부터 스트리밍 서버 혹은 스트리밍 서버 간의 디스크립션 파일의 전송 작업을 관리하는 기기로서, 작업관리기를 의미한다.Looking at each component in more detail, the server status checker 111 of the content distribution module 110 checks the status of each streaming server 300 periodically to determine the normal / failure status. At this time, the server state checker 111 periodically checks the state of each streaming server, stores the current performance and normal operation of the server, and informs the client of the corresponding streaming server according to the failure state. The node agent 112 is responsible for communication with each streaming server 300, and the task manager 113 manages the transfer of the description file between the streaming server or the streaming server from the file server, and the content transmitter 114 stores the actual file. It is in charge of the transmission. Here, the job manager 113 is not a person, but a device for managing a job of transferring a description file from a file server to a streaming server or a streaming server, and refers to a job manager.

그리고 콘텐츠 스트리밍 모듈(130)의 스케줄러(131)는 클라이언트(400)의 콘텐츠에 대한 스트리밍 서비스 요청에 따라 서비스를 수행할 서버를 결정하는 역할을 수행하고, 클라이언트 상태 검사기(132)는 스트리밍 서비스 중 각 스트리밍 서버(300)와 클라이언트 간의 네트워크 및 클라이언트(400)의 부하 정보를 모니터링하며, 콘텐츠 스트리밍 엔진(133)은 실제 스트리밍 서비스를 담당한다.The scheduler 131 of the content streaming module 130 determines a server to perform a service according to a streaming service request for the content of the client 400, and the client status checker 132 performs each of the streaming services. Monitoring the load information of the network and the client 400 between the streaming server 300 and the client, the content streaming engine 133 is responsible for the actual streaming service.

한편, 스트리밍 서비스 중에 스트리밍 서비스를 제공하고 있는 n개의 서버 중에서 일부가 고장이 나면 디스패처 노드(100)의 서버 상태 검사기(111)가 이를 감지하고 클라이언트(400)로 고장이 난 서버의 아이피 주소를 알려준다. 그러면, 클라이언트(400)는 상기 고장이 난 서버로부터 전송받는 데이터를 저장하기 위한 버퍼를 해제하고, 그 외의 정상적인 서버로부터 전송받는 스트리밍 데이터를 디코딩한 후 재생한다. 이에 따라, 일부의 스트리밍 서버가 고장이 나더라도 끊김 없는 스트리밍 서비스를 제공할 수 있게 된다. 이때, 사용자가 인지하는 데이터의 품질 이 저하될 수도 있다.Meanwhile, if some of the n servers providing the streaming service fail during the streaming service, the server status checker 111 of the dispatcher node 100 detects this and informs the client 400 of the failed IP address. . Then, the client 400 releases the buffer for storing the data received from the failed server, and decodes and reproduces the streaming data received from another normal server. Accordingly, even if some streaming servers fail, it is possible to provide a seamless streaming service. At this time, the quality of data recognized by the user may be degraded.

그리고 상기 디스패처 노드(100)는 정상적인 서버 중에서 사용 대역폭, 서버의 성능을 고려하여 상기 고장이 난 서버에 저장되어 있었던 디스크립션 파일을 대신 저장할 서버들을 선택하고, 파일서버로부터 이를 전송받도록 한다. 상기 전송 과정이 완료됨에 따라 디스패처 노드(100)는 클라이언트(400)로 상기 새로이 추가된 스트리밍 서버의 아이피 주소를 전송하고, 상기 클라이언트(400)는 새로운 버퍼를 할당한다. 이때, 고장이 난 원래의 스트리밍 서버가 복구되면 임시로 저장되었던 디스크립션 파일은 삭제되고, 상기 복구된 원래의 스트리밍 서버를 통해 서비스가 제공되도록 한다. 또한, 고장이 난 서버를 대신할 새로운 서버를 별도로 선택하는 것이 아니라, 대역폭이 동일한 경우 상기 고장이 난 서버의 각 디스크립션을 스트라이핑으로 모든 정상적인 스트리밍 서버들이 분담하여 저장하도록 할 수도 있다. 여기서, 상기 고장이 난 서버에 저장되어 있던 디스크립션 중, 현재 서비스가 제공되고 있던 해당 디스크립션이 우선적으로 제공되도록 하는 것이 바람직하다.The dispatcher node 100 selects servers to store the description file stored in the failed server in consideration of the use bandwidth and the performance of the server among the normal servers, and receives the file from the file server. As the transmission process is completed, the dispatcher node 100 transmits the IP address of the newly added streaming server to the client 400, and the client 400 allocates a new buffer. At this time, when the original streaming server that has failed is restored, the description file that was temporarily stored is deleted, and a service is provided through the restored original streaming server. In addition, instead of separately selecting a new server to replace the failed server, all the normal streaming servers may be shared and stored by striping each description of the failed server when the bandwidth is the same. Here, it is preferable that among the descriptions stored in the failed server, a corresponding description that is currently provided with a service is provided first.

한편, 클라이언트(400)의 콘텐츠에 대한 스트리밍 서비스 요청시 단말의 종류에 대한 정보를 제공받는 경우, 디스패처 노드(100)는 단말의 종류에 따라 디스크립션의 수를 결정할 수도 있다. 즉, 무선통신 단말기와 같은 저해상도 단말을 위해서는 제공되는 디스크립션의 수를 적게 하고 퍼스널 컴퓨터와 같은 고해상도 단말을 위해서는 제공되는 디스크립션의 수를 많이 함으로써, 사용자의 단말기 종류에 적응적인 스트리밍 서비스를 제공할 수 있다.On the other hand, when the client 400 receives the information on the type of the terminal when the streaming service request for the content, the dispatcher node 100 may determine the number of descriptions according to the type of the terminal. That is, by reducing the number of descriptions provided for a low resolution terminal such as a wireless communication terminal and the number of descriptions provided for a high resolution terminal such as a personal computer, it is possible to provide a streaming service adaptive to the user's terminal type. .

또한, 디스패처 노드(100) 내 콘텐츠 스트리밍 모듈(130)의 클라이언트 상태 검사기(132)를 이용하여 스트리밍 서비스 중에 네트워크 상태의 변화, 클라이언트(400)의 부하 정보를 체크하여 그에 따라 실시간으로 적응적인 스트리밍 서비스를 제공할 수 있다.In addition, the client status checker 132 of the content streaming module 130 in the dispatcher node 100 checks the network status change and the load information of the client 400 during the streaming service, and accordingly adaptive streaming service in real time. Can be provided.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

상기와 같은 본 발명은, 클러스터 기반의 스트리밍 시스템에서 다중 디스크립션 디코딩을 이용하여 각 스트리밍 서버의 부하를 균등하게 유지할 수 있는 효과가 있다.The present invention as described above has the effect of maintaining the load of each streaming server evenly by using multiple description decoding in a cluster-based streaming system.

또한, 본 발명은 다수 스트리밍 서버 중 일부가 고장이 난 경우에도 전송하는 디스크립션의 수를 조절하여 낮은 품질로 스트리밍 서비스를 지속적으로 제공할 수 있는 효과가 있다.In addition, the present invention has the effect of continuously providing a streaming service with a low quality by adjusting the number of descriptions to be transmitted even if some of the streaming server is a failure.

또한, 본 발명은 단말기의 종류 및 부하 정도, 네트워크 상태의 변화에 따라 그에 적응적인 스트리밍 서비스를 제공할 수 있는 효과가 있다.In addition, the present invention has the effect of providing an adaptive streaming service according to the type and load degree of the terminal, the network state changes.

Claims (17)

클러스터 기반의 스트리밍 시스템에 있어서,In the cluster-based streaming system, 각 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보와 같은 메타데이터를 저장하고 있는 메타데이터 데이터베이스;A metadata database that stores metadata such as description information of each content, streaming server information storing the description, server load information, and stream information currently being serviced; 클라이언트로부터의 스트리밍 서비스 요청에 따라 해당되는 콘텐츠의 디스크립션 정보, 해당 디스크립션을 저장하고 있는 스트리밍 서버 정보, 서버 부하 정보, 현재 서비스 중인 스트림 정보와 같은 메타데이터를 상기 메타데이터 데이터베이스로부터 전달받고, 상기 전달받은 정보(메타데이터)를 기반으로 결정한 스트리밍 서버 정보를 상기 클라이언트로 회신하기 위한 디스패처; 및In response to a streaming service request from a client, metadata, such as description information of a corresponding content, streaming server information storing the description, server load information, and stream information currently being serviced, is received from the metadata database. A dispatcher for returning streaming server information determined based on the information (metadata) to the client; And 콘텐츠의 디스크립션을 저장하고 있고, 상기 디스패처로부터 클라이언트 정보 및 디스크립션 파일명을 전달받음에 따라 해당되는 디스크립션을 상기 클라이언트 정보를 이용하여 전송하기 위한 스트리밍 서버A streaming server that stores a description of content and transmits a corresponding description using the client information as client information and a description file name are received from the dispatcher. 를 포함하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.Cluster-based streaming system using multiple description coding comprising a. 제 1 항에 있어서,The method of claim 1, 상기 스트리밍 서버는,The streaming server, 상기 클라이언트로부터 요청받은 콘텐츠의 디스크립션들을 하나 이상의 스트리밍 세션을 통해 전송하여 스트리밍 서비스를 제공하는 것을 특징으로 하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.The cluster-based streaming system using multiple description coding, characterized in that to provide a streaming service by transmitting the description of the content requested from the client through one or more streaming sessions. 제 2 항에 있어서,The method of claim 2, 상기 스트리밍 서버는,The streaming server, 콘텐츠의 각 디스크립션을 저장한, 하나 이상의 스트리밍 서버로 이루어진 것을 특징으로 하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.Cluster-based streaming system using multiple description coding, characterized in that composed of one or more streaming server, each description of the content stored. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 디스패처는,The dispatcher, 상기 클라이언트로 스트리밍 서비스를 제공하기 위한 콘텐츠 스트리밍 모듈;A content streaming module for providing a streaming service to the client; 파일서버와 상기 각 스트리밍 서버, 그리고 상기 각 스트리밍 서버 간의 디스크립션 전송을 수행하기 위한 콘텐츠 분배 모듈; 및A content distribution module for performing description transmission between a file server, each streaming server, and each streaming server; And 전체 클러스터에 포함되어 있는 상기 각 스트리밍 서버의 정보와 상기 각 스트리밍 서버에 저장되어 있는 디스크립션 파일의 정보 및 기타 정보를 관리하기 위한 메타데이터 관리기Metadata manager for managing the information of each streaming server included in the entire cluster, the description file information and other information stored in each streaming server 를 포함하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.Cluster-based streaming system using multiple description coding comprising a. 제 4 항에 있어서,The method of claim 4, wherein 상기 콘텐츠 스트리밍 모듈은,The content streaming module, 상기 클라이언트로부터의 스트리밍 서비스 요청에 따라 서비스를 수행할 스트리밍 서버를 결정하기 위한 스케줄러;A scheduler for determining a streaming server to perform a service according to the streaming service request from the client; 상기 스트리밍 서비스를 제공하기 위한 콘텐츠 스트리밍 엔진; 및A content streaming engine for providing the streaming service; And 상기 스트리밍 서비스 중, 상기 각 스트리밍 서버와 상기 클라이언트 간의 부하 정보를 모니터링하여 상기 모니터링한 부하 정보에 따른 스트리밍 서비스가 제공되도록 하기 위한 클라이언트 상태 검사기Client status checker for monitoring the load information between the streaming server and the client of the streaming service to provide a streaming service according to the monitored load information 를 포함하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.Cluster-based streaming system using multiple description coding comprising a. 제 4 항에 있어서,The method of claim 4, wherein 상기 콘텐츠 분배 모듈은,The content distribution module, 상기 각 스트리밍 서버의 상태를 주기적으로 검사하여 파악하기 위한 서버 상태 검사기;A server state checker for periodically checking and checking the state of each streaming server; 상기 각 스트리밍 서버와의 통신을 수행하기 위한 노드 에이전트;A node agent for performing communication with each streaming server; 상기 파일서버와 상기 각 스트리밍 서버, 그리고 상기 각 스트리밍 서버 간의 디스크립션 전송을 관리하기 위한 작업관리기; 및A job manager for managing description transmission between the file server, each streaming server, and each streaming server; And 실제 전송 기능을 수행하기 위한 콘텐츠 전송기Content transmitter to perform the actual delivery function 를 포함하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.Cluster-based streaming system using multiple description coding comprising a. 제 6 항에 있어서,The method of claim 6, 상기 서버 상태 검사기는,The server status checker, 상기 각 스트리밍 서버의 상태를 주기적으로 검사하여 서버의 현재 성능 및 정상 동작 여부를 저장하고 고장 상태임을 파악함에 따라 해당되는 스트리밍 서버의 정보를 상기 클라이언트로 알리는 것을 특징으로 하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.Periodically inspect the state of each streaming server to store the current performance and normal operation of the server and to determine the failure state to inform the client of the information of the corresponding streaming server cluster-based using multiple description coding, characterized in that Streaming system. 제 4 항에 있어서,The method of claim 4, wherein 상기 디스패처는,The dispatcher is, 상기 각 스트리밍 서버 중에서 임의의 스트리밍 서버가 고장임을 파악함에 따라 해당 스트리밍 서버에 의해 전송되던 디스크립션을 새로운 스트리밍 서버를 통해 전송되도록 하는 것을 특징으로 하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.The cluster-based streaming system using multiple description coding, characterized in that to determine that any streaming server of the streaming server is broken, so that the description transmitted by the streaming server through the new streaming server. 제 8 항에 있어서,The method of claim 8, 상기 디스패처는,The dispatcher, 상기 고장이 난 스트리밍 서버에 의해 전송되던 디스크립션이 상기 클라이언트로 전송되도록 하기 위하여 상기 새로운 스트리밍 서버의 아이피 주소를 상기 클라이언트로 전송하는 것을 특징으로 하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.And the IP address of the new streaming server is transmitted to the client so that the description transmitted by the failed streaming server is transmitted to the client. 제 8 항에 있어서,The method of claim 8, 상기 디스패처는,The dispatcher is, 정상적인 스트리밍 서버 중에서 사용 대역폭 및 서버의 성능을 고려하여 상기 고장이 난 스트리밍 서버에 저장된 각 디스크립션 파일을 저장할 서버들을 선택하는 것을 특징으로 하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.A cluster-based streaming system using multiple description coding, characterized in that servers are selected to store each description file stored in the failed streaming server in consideration of the bandwidth used and the performance of the server. 제 4 항에 있어서,The method of claim 4, wherein 상기 디스패처는,The dispatcher is, 상기 클라이언트로부터의 스트리밍 서비스 요청에 따라, 상기 메타데이터 데이터베이스에 저장되어 있는 디스크립션 수, 해당 디스크립션 파일명, 스트리밍 서버의 아이피 주소를 이용하여 디스크립션 수 및 스트리밍 서버를 결정하는 것을 특징으로 하는 다중 디스크립션 코딩을 이용한 클러스터 기반의 스트리밍 시스템.According to the streaming service request from the client, the description number and the streaming server are determined using the description number stored in the metadata database, the description file name, and the IP address of the streaming server. Cluster-based streaming system. 클러스터 기반의 스트리밍 시스템에서의 스트리밍 서비스 제공 방법에 있어서,In the streaming service providing method in a cluster-based streaming system, 원본 콘텐츠의 디스크립션에 대한 정보 및 각 스트리밍 서버의 정보를 저장하고 있는 저장 단계;A storage step of storing information about the description of the original content and information of each streaming server; 클라이언트로부터 콘텐츠에 대한 스트리밍 서비스를 요청받는 요청 수신 단계;Receiving a request for requesting a streaming service for content from a client; 상기 요청받은 스트리밍 서비스를 제공하기 위한 스트리밍 서버의 정보를 상기 클라이언트로 회신하는 회신 단계; 및A reply step of returning information of the streaming server for providing the requested streaming service to the client; And 상기 스트리밍 서비스를 제공하기 위한 스트리밍 서버가 상기 클라이언트로 디스크립션을 전송하여 스트리밍 서비스를 제공하는 서비스 단계A service step of providing a streaming service by transmitting a description to the client by a streaming server for providing the streaming service; 를 포함하는 클러스터 기반의 스트리밍 시스템에서의 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법.Streaming service providing method using multiple description coding in a cluster-based streaming system comprising a. 제 12 항에 있어서,The method of claim 12, 상기 저장 단계는,The storing step, 상기 각 스트리밍 서버의 성능 가중치에 따라 디스크립션을 저장하고 있고,The description is stored according to the performance weight of each streaming server. 상기 서비스 단계는,The service step, 상기 스트리밍 서비스를 제공하기 위한 각 스트리밍 서버가 각자 저장하고 있는 디스크립션을 상기 클라이언트로 각각 전송하는 것을 특징으로 하는 클러스터 기반의 스트리밍 시스템에서의 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법.A streaming service providing method using multiple description coding in a cluster-based streaming system, characterized in that each streaming server for providing the streaming service transmits a description stored in each of the respective streaming server. 제 12 항에 있어서,The method of claim 12, 상기 서비스 단계는,The service step, 상기 스트리밍 서비스 중에 임의의 스트리밍 서버가 고장임을 파악함에 따라 해당 스트리밍 서버에 의해 전송되던 디스크립션을 새로운 스트리밍 서버를 통해 전송되도록 하는 것을 특징으로 하는 클러스터 기반의 스트리밍 시스템에서의 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법.As the streaming service detects a failure of any streaming server, the streaming service provided by the multi-description coding in the cluster-based streaming system, characterized in that the description transmitted by the streaming server to be transmitted through a new streaming server. Way. 제 14 항에 있어서,The method of claim 14, 상기 서비스 단계는,The service step, 정상적인 스트리밍 서버 중에서 사용 대역폭 및 서버의 성능에 따라 상기 새로운 스트리밍 서버를 선택하는 것을 특징으로 하는 클러스터 기반의 스트리밍 시스템에서의 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법.A method of providing a streaming service using multiple description coding in a cluster-based streaming system, wherein the new streaming server is selected according to a bandwidth used and a server performance among normal streaming servers. 제 12 항 내지 제 15 항 중 어느 한 항에 있어서,The method according to any one of claims 12 to 15, 상기 저장 단계는,The storing step, 상기 각 스트리밍 서버의 정보로서 아이피 주소, 상태 정보, 여유 디스크 크기를 저장하는 것을 특징으로 하는 클러스터 기반의 스트리밍 시스템에서의 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법.The streaming service providing method using multiple description coding in the cluster-based streaming system, characterized in that for storing the IP address, status information, the free disk size as the information of each streaming server. 제 16 항에 있어서,The method of claim 16, 상기 서비스 단계는,The service step, 네트워크 상태의 변화, 상기 클라이언트의 부하 정보를 체크하여 상기 체크한 정보에 따라 실시간으로 적응적인 스트리밍 서비스를 제공하는 것을 특징으로 하는 클러스터 기반의 스트리밍 시스템에서의 다중 디스크립션 코딩을 이용한 스트리밍 서비스 제공 방법.A method of providing a streaming service using multiple description coding in a cluster-based streaming system, characterized in that a change in network state and load information of the client are checked to provide an adaptive streaming service in real time according to the checked information.
KR1020060036280A 2006-04-21 2006-04-21 The cluster based streaming system and method using multiple description coding KR100797389B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060036280A KR100797389B1 (en) 2006-04-21 2006-04-21 The cluster based streaming system and method using multiple description coding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060036280A KR100797389B1 (en) 2006-04-21 2006-04-21 The cluster based streaming system and method using multiple description coding

Publications (2)

Publication Number Publication Date
KR20070104102A KR20070104102A (en) 2007-10-25
KR100797389B1 true KR100797389B1 (en) 2008-01-28

Family

ID=38818284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060036280A KR100797389B1 (en) 2006-04-21 2006-04-21 The cluster based streaming system and method using multiple description coding

Country Status (1)

Country Link
KR (1) KR100797389B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190075677A (en) * 2017-12-21 2019-07-01 국방과학연구소 Reliable Network Services of Partially Distributed Mobility Management architecture in case of Network Entity Failure

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9172643B2 (en) * 2012-10-25 2015-10-27 Opanga Networks, Inc. Method and system for cooperative congestion detection in cellular networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004214902A (en) * 2002-12-27 2004-07-29 Matsushita Electric Ind Co Ltd Streaming reproduction mobile terminal, streaming reproduction method, computer program, and computer-readable recording medium
KR100636173B1 (en) * 2004-09-13 2006-10-19 삼성전자주식회사 Method and Apparatus for multi-streaming using temporary storing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004214902A (en) * 2002-12-27 2004-07-29 Matsushita Electric Ind Co Ltd Streaming reproduction mobile terminal, streaming reproduction method, computer program, and computer-readable recording medium
KR100636173B1 (en) * 2004-09-13 2006-10-19 삼성전자주식회사 Method and Apparatus for multi-streaming using temporary storing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190075677A (en) * 2017-12-21 2019-07-01 국방과학연구소 Reliable Network Services of Partially Distributed Mobility Management architecture in case of Network Entity Failure
KR101997559B1 (en) * 2017-12-21 2019-10-01 국방과학연구소 Reliable Network Services of Partially Distributed Mobility Management architecture in case of Network Entity Failure

Also Published As

Publication number Publication date
KR20070104102A (en) 2007-10-25

Similar Documents

Publication Publication Date Title
US9979771B2 (en) Adaptive variable fidelity media distribution system and method
JP4177757B2 (en) System and method for receiving multiple description media streams in fixed and mobile streaming media systems
JP4808925B2 (en) Method for distributing multiple description encoded media streams to servers in fixed and mobile systems
JP4713831B2 (en) Method for handing off a streaming media session between wireless base stations in a mobile streaming media system
Tewari et al. Analytical model for BitTorrent-based live video streaming
US9578288B2 (en) Peer-to-peer distributed storage for internet protocol television
JP5529177B2 (en) System and method for buffering with P2P-based streaming service, and system for distributing an application that processes buffering on a client
KR101104729B1 (en) System and Method for Multimedia Streaming of Distributed Contents Using Optimal Way of Acquiring Segments
Nair et al. A rank based replacement policy for multimedia server cache using zipf-like law
US9330429B2 (en) Scalable watermark insertion for fragmented media stream delivery
Lin Enhancing P2P live streaming performance by balancing description distribution and available forwarding bandwidth in P2P streaming network
KR100797389B1 (en) The cluster based streaming system and method using multiple description coding
US9386056B1 (en) System, method and computer readable medium for providing media stream fragments
Barlas et al. Optimized distributed delivery of continuous-media documents over unreliable communication links
Tian et al. A novel caching mechanism for peer-to-peer based media-on-demand streaming
KR101128293B1 (en) System and Method for Multimedia Streaming of Distributed Contents Using Node Switching Based on Cache Segment Acquisition Time
KR20060135565A (en) Distributed streaming server
Zhang et al. Topology-aware peer-to-peer on-demand streaming
Kao et al. I2CC: Interleaving two-level cache with network coding in peer-to-peer VoD system
Ho et al. Cluster-based replication for P2P-based video-on-demand service
Qiang et al. A Hyper-converged video management system based on object storage
KR20130134911A (en) Method for providing content caching service in adapted streaming service and local caching device thereof
Lin et al. A fine-grained balancing scheme for improved scalability in P2P streaming
Chiang et al. Kernel support for fine-grained load balancing in a web cluster providing streaming service
Kumar et al. A reliable replication strategy for VoD system using markov chain

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: 20110104

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20111208

Year of fee payment: 20