KR20160063182A - Hadoop-based system for providing distributed multimedia streaming service and method thereof - Google Patents

Hadoop-based system for providing distributed multimedia streaming service and method thereof Download PDF

Info

Publication number
KR20160063182A
KR20160063182A KR1020140166888A KR20140166888A KR20160063182A KR 20160063182 A KR20160063182 A KR 20160063182A KR 1020140166888 A KR1020140166888 A KR 1020140166888A KR 20140166888 A KR20140166888 A KR 20140166888A KR 20160063182 A KR20160063182 A KR 20160063182A
Authority
KR
South Korea
Prior art keywords
streaming
content data
server
transmission throughput
servers
Prior art date
Application number
KR1020140166888A
Other languages
Korean (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 KR1020140166888A priority Critical patent/KR20160063182A/en
Publication of KR20160063182A publication Critical patent/KR20160063182A/en

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed are a system for providing a distributed multimedia streaming service and a method for providing a streaming service which can select a streaming server having an optimal condition for a streaming service. According to an embodiment of the present invention, the method for providing a content data streaming service comprises: a step of selecting an optimal streaming server among streaming servers based on at least one among a use rate of a physical resource and a streaming transmission processing amount; and a step of using the optimal streaming server to stream content data.

Description

분산 멀티미디어 스트리밍 서비스 제공 시스템 및 스트리밍 서비스의 제공 방법{HADOOP-BASED SYSTEM FOR PROVIDING DISTRIBUTED MULTIMEDIA STREAMING SERVICE AND METHOD THEREOF}TECHNICAL FIELD [0001] The present invention relates to a distributed multimedia streaming service providing system and a streaming service providing method,

아래 실시예들은 분산 멀티미디어 스트리밍 서비스 제공 시스템 및 스트리밍 서비스 제공 방법에 관한 것이다.The following embodiments are directed to a system for providing a distributed multimedia streaming service and a method for providing a streaming service.

고성능(high-performance) 이기종 스마트 장치들의 출현과 페이스북과 트위터와 같은 소셜 네트워킹 서비스(social networking service(SNS))의 확산은 유선 및 무선 환경에서 공유되고, 다양한 형태도 생성되는 많은 양의 소셜 미디어 컨텐츠를 초래했다. 최근, 가장 주목할만한 영향력있는 새로운 기술은 QoS(quality of service)를 보장하는 멀티비디어 서비스를 제공하는 클라우드기반 미디어 스트리밍, 트랜스코딩, 및 콘텐츠 분배(content distribution)을 포함한다.The emergence of high-performance heterogeneous smart devices and the proliferation of social networking services (SNS), such as Facebook and Twitter, have resulted in a large number of social media being shared in wired and wireless environments, Content. Recently, the most noteworthy and influential new technologies include cloud-based media streaming, transcoding, and content distribution that provide multi-media services that ensure quality of service (QoS).

이전에, 기존의 분산 및 클러스터 기반 컴퓨팅 접근(cluster-based computing approach)은 미디어 트랜스코딩 및 스트리밍 처리(streaming processing)에 사용되었다. 그러나, 전통적인 접근법을 사용하여 멀티비디오 트래픽과 모바일 서비스를 통합하여 다양한 미디어 서비스를 제공하는 것은 어렵다.Previously, traditional distributed and cluster-based computing approaches were used for media transcoding and streaming processing. However, it is difficult to provide a variety of media services by integrating multi-video traffic and mobile services using a traditional approach.

또한, 스트리밍 서비스들에 대한 수많은 요청들이 사용자들에 의해 생성될 때 분산 시스템 환경에서 효율적으로 스트리밍 태스크들을 분산하기 위한 다양한 접근법들을 있다. 특히, 두 개의 알고리즘에 기초한 두 개의 스트리밍 태스크 분산 방법들(streaming task distribution methods)이 있다. 두 개의 알고리즘은 Round Robin(RR)과 Least Connection(LC)이다. 그러나, RR과 LC가 적용된 시스템들은 물리적 자원 사용량과 스트리밍 네트워크 트래픽을 고려하지 않는다. 결과적으로, 그들은 제한되고, 스트리밍 서버들과 현재의 인터넷 인프라스트럭처에 큰 부담을 부과한다.There are also various approaches for efficiently distributing streaming tasks in a distributed system environment when a large number of requests for streaming services are generated by users. In particular, there are two streaming task distribution methods based on two algorithms. The two algorithms are Round Robin (RR) and Least Connection (LC). However, systems with RR and LC do not consider physical resource usage and streaming network traffic. As a result, they are limited and put a heavy burden on streaming servers and the current Internet infrastructure.

실시예들은 스트리밍 네트워크 트래픽과 물리적 자원의 사용률의 요인을 고려함으로써, 스트리밍 서비스를 위한 최적의 조건을 갖는 스트리밍 서버를 선택하는 기술을 제공할 수 있다.Embodiments can provide a technique of selecting a streaming server having an optimum condition for a streaming service by considering factors of streaming network traffic and usage rate of physical resources.

이에, 실시예들은 예측할 수 없는 네트워크 트래픽을 갖는 클라우드 컴퓨팅 환경에서 최적의 조건을 갖는 스트리밍 서버를 통해 원할하고, 풍부한 미디어 스트리밍 서비스를 제공할 수 있다.Accordingly, embodiments can provide a rich and rich media streaming service through a streaming server having optimal conditions in a cloud computing environment having unpredictable network traffic.

즉, 실시예들은 스트리밍 태스크 분배 능력(streaming task distribution capacity)을 향상시킬 수 있다.That is, embodiments can improve the streaming task distribution capacity.

일 실시예에 따른 콘텐츠 데이터 스트리밍 방법은 물리적 자원의 사용률 및 스트리밍 전송 처리량 중에서 적어도 하나에 기초하여 스트리밍 서버들 중에서 최적의 스트리밍 서버를 선택하는 단계와, 상기 최적의 스트리밍 서버를 이용하여 콘텐츠 데이터를 스트리밍하는 단계를 포함할 수 있다.According to an embodiment of the present invention, there is provided a content data streaming method comprising: selecting an optimal streaming server among streaming servers based on at least one of a usage rate of physical resources and a streaming transmission throughput; .

상기 선택하는 단계는 상기 스트리밍 서버들 각각의 물리적 자원의 사용률을 계산하는 단계와, 상기 스트리밍 서버들 각각의 스트리밍 전송 처리량을 계산하는 단계를 포함할 수 있다.The selecting may include calculating a usage rate of physical resources of each of the streaming servers, and calculating a streaming transmission throughput of each of the streaming servers.

상기 선택하는 단계는 상기 스트리밍 서버들 중에서 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 단계를 포함할 수 있다.The selecting may include selecting a streaming server having the lowest usage rate of the physical resources among the streaming servers as the optimal streaming server.

상기 선택하는 단계는 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버가 둘 이상일 때, 상기 스트리밍 서버들 중에서 상기 스트리밍 전송 처리량이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 단계를 더 포함할 수 있다.The selecting may further include selecting a streaming server having the lowest streaming transmission throughput among the streaming servers as the optimal streaming server when the number of streaming servers having the lowest usage rate of the physical resources is two or more .

상기 물리적 자원은 CPU와 RAM을 포함할 수 있다.The physical resources may include a CPU and a RAM.

상기 물리적 자원의 사용률을 계산하는 단계는 CPU 사용률과 RAM 사용률에 기초하여 상기 물리적 자원의 사용률을 계산하는 단계를 포함할 수 있다.The step of calculating the usage rate of the physical resources may include calculating the usage rate of the physical resources based on the CPU usage rate and the RAM usage rate.

상기 CPU 사용률은 리룩스 명령 mpstat에 의해 계산될 수 있다.The CPU utilization can be calculated by the lux command mpstat.

상기 RAM 사용률은 자유 명령에 의해 계산될 수 있다.The RAM utilization rate can be calculated by a free command.

상기 스트리밍 전송 처리량을 계산하는 단계는 현재 스트리밍 전송 처리량과 이전 스트리밍 전송 처리량에 기초하여 상기 스트리밍 전송 처리량을 계산하는 단계를 포함할 수 있다.The step of calculating the streaming transmission throughput may include calculating the streaming transmission throughput based on the current streaming transmission throughput and the previous streaming transmission throughput.

상기 현재 스트리밍 전송 처리량은 스트리밍 서비스를 시작한 이후부터 총 처리량일 수 있다.The current streaming transmission throughput may be the total throughput since the start of the streaming service.

상기 이전 스트리밍 전송 처리량은 상기 현재 스트리밍 전송 처리량을 측정하는 포인트의 1초 전까지의 총 처리량일 수 있다.The previous streaming transmission throughput may be one second before the point at which the current streaming transmission throughput is measured.

일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템은 스트리밍 서버들을 포함하는 스트리밍 모듈과, 물리적 자원의 사용률 및 스트리밍 전송 처리량 중에서 적어도 하나에 기초하여 상기 스트리밍 서버들 중에서 최적의 스트리밍 서버를 선택하는 콘텐츠 데이터 관리 서버를 포함하고, 상기 최적의 스트리밍 서버는 콘텐츠 데이터를 스트리밍할 수 있다.The system for providing a distributed multimedia streaming service according to an exemplary embodiment includes a streaming module including streaming servers and a content data management unit for selecting an optimal streaming server among the streaming servers based on at least one of a usage rate of the physical resources and a throughput of streaming transmission And the optimal streaming server may stream the content data.

상기 콘텐츠 데이터 관리 서버는 상기 스트리밍 서버들 각각의 물리적 자원의 사용률을 계산하고, 상기 스트리밍 서버들 각각의 스트리밍 전송 처리량을 계산할 수 있다.The content data management server may calculate a usage rate of physical resources of each of the streaming servers and calculate a streaming transmission throughput of each of the streaming servers.

상기 콘텐츠 데이터 관리 서버는 상기 스트리밍 서버들 중에서 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택할 수 있다.The content data management server may select a streaming server having the lowest usage rate of the physical resources among the streaming servers as the optimal streaming server.

상기 콘텐츠 데이터 관리 서버는 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버가 둘 이상일 때, 상기 스트리밍 서버들 중에서 상기 스트리밍 전송 처리량이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택할 수 있다.The content data management server may select a streaming server having the lowest streaming transmission throughput among the streaming servers as the optimal streaming server when there are two or more streaming servers having the lowest usage rate of physical resources.

상기 물리적 자원은 CPU와 RAM을 포함할 수 있다.The physical resources may include a CPU and a RAM.

상기 콘텐츠 데이터 관리 서버는 CPU 사용률과 RAM 사용률에 기초하여 상기 물리적 자원의 사용률을 계산할 수 있다.The content data management server may calculate the usage rate of the physical resource based on the CPU usage rate and the RAM usage rate.

상기 CPU 사용률은 리룩스 명령 mpstat에 의해 계산될 수 있다.The CPU utilization can be calculated by the lux command mpstat.

상기 RAM 사용률은 자유 명령에 의해 계산될 수 있다.The RAM utilization rate can be calculated by a free command.

상기 콘텐츠 데이터 관리 서버는 현재 스트리밍 전송 처리량과 이전 스트리밍 전송 처리량에 기초하여 상기 스트리밍 전송 처리량을 계산할 수 있다.The content data management server may calculate the streaming transmission throughput based on the current streaming transmission throughput and the previous streaming transmission throughput.

상기 현재 스트리밍 전송 처리량은 스트리밍 서비스를 시작한 이후부터 총 처리량일 수 있다.The current streaming transmission throughput may be the total throughput since the start of the streaming service.

상기 이전 스트리밍 전송 처리량은 상기 현재 스트리밍 전송 처리량을 측정하는 포인트의 1초 전까지의 총 처리량일 수 있다.The previous streaming transmission throughput may be one second before the point at which the current streaming transmission throughput is measured.

도 1은 리다이렉션-기반 계층적(hierarchical) 웹 서버의 구조도를 나타낸다.
도 2는 HTTP 요청이 리다이렉션 서버로 전송될 때, 리다이렉션 메커니즘을 나타낸다.
도 3은 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.
도 4는 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템의 개략적인 구조를 나타낸다.
도 5는 도 4에 도시된 관리 서버가 스트리밍 작업 분산을 위해 사용하는 SRC 알고리즘을 나타낸다.
도 6은 일 예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.
Figure 1 shows a schematic diagram of a redirection-based hierarchical web server.
Figure 2 shows a redirection mechanism when an HTTP request is sent to a redirection server.
3 illustrates a distributed multimedia streaming service providing system according to an exemplary embodiment.
FIG. 4 shows a schematic structure of a system for providing a distributed multimedia streaming service according to an embodiment.
FIG. 5 shows an SRC algorithm used by the management server shown in FIG. 4 for streaming work distribution.
FIG. 6 illustrates a distributed multimedia streaming service providing system according to an example embodiment.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are presented for the purpose of describing embodiments only in accordance with the concepts of the present invention, May be embodied in various forms and are not limited to the embodiments described herein.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example without departing from the scope of the right according to the concept of the present invention, the first element being referred to as the second element, Similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", and the like, are used to specify one or more of the features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 리다이렉션-기반 계층적(hierarchical) 웹 서버의 구조도를 나타내고, 도 2는 HTTP 요청이 리다이렉션 서버로 전송될 때, 리다이렉션 메커니즘을 나타낸다.Figure 1 shows a structure of a redirect-based hierarchical web server, and Figure 2 shows a redirection mechanism when an HTTP request is sent to a redirect server.

도 1 및 도 2를 참조하면, 도 1은 HTTP 요청들(requests)에 대한 로드 분배(load distribution)을 용이하게 하는 리다이렉션-기반 계층적(hierarchical) 웹 서버 아키텍처일 수 있다.Referring to Figures 1 and 2, Figure 1 may be a redirect-based hierarchical web server architecture that facilitates load distribution for HTTP requests.

분류된 콘텐츠(categorized content)는 분산 서버들(distributed servers)에 저장될 수 있다. 계층적(hierarchical) 웹 서버 아키텍처는 두 개의 컴퍼넌트 레벨들, 예를 들어 리다이렉션 서버들과 일반(normal) HTTP 서버들을 포함할 수 있다. 각 HTTP 서버는 분류되고(categorized), 사이트에서 사용할 수 있는 콘텐츠 데이터의 일부를 저장할 수 있다. RR DNS(domain name service)는 사용자들이 그들의 시스템에 대한 특정 콘텐츠(specific content)를 요청할 때, RR알고리즘을 사용하여 요청된 서비스(requested service)를 제공하기 위해 리다이렉션 서버를 선택할 수 있다. 이어서, 선택된 리다이렉션 서버는 사용자 요청을 요청된 콘텐츠를 포함하는 HTTP 서버와 연결하는 태스크를 분배할 수 있다.The categorized content may be stored in distributed servers. A hierarchical web server architecture may include two component levels, for example, redirect servers and normal HTTP servers. Each HTTP server can be categorized and store some of the content data available on the site. The RR DNS (domain name service) may select a redirection server to provide a requested service using the RR algorithm when users request specific content for their system. The selected redirection server may then distribute the task of associating the user request with an HTTP server containing the requested content.

각 파일은 도메인 이름과 같은 유니크 기본(unique base) URL을 포함할 수 있다. 사용자는 기본 URL을 타겟 URL에 맵핑하는 리다이렉션 서버에 연결하기 위해 기본 URL을 사용할 수 있다. 타겟 URL은 리다이렉션 메시지와 함께 사용자에게 반환될 수 있다. 다음에, 사용자는 특정 콘텐츠(specific content)를 얻기 위해 HTTP 서버에 연결하기 위한 새로운 URL을 이용한다.
Each file can contain a unique base URL, such as a domain name. You can use the default URL to connect to the redirect server that maps the base URL to the target URL. The target URL may be returned to the user with a redirection message. Next, the user uses a new URL to connect to the HTTP server to obtain specific content.

도 3은 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.3 illustrates a distributed multimedia streaming service providing system according to an exemplary embodiment.

도 3을 참조하면, 분산 멀티미디어 스트리밍 서브 제공 시스템(300)은 클라우드 기반의 분산 멀티미디어 스트리밍 서비스(cloud-based distributed multimedia streaming service; CloudDMSS) 제공 시스템일 수 있다.Referring to FIG. 3, the distributed multimedia streaming sub providing system 300 may be a cloud-based distributed multimedia streaming service (CloudDMSS) providing system.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터를 수신하고, 수신한 콘텐츠 데이터를 설정된 포맷으로 트랜스코딩하고, 단말 장치(310)로 트랜스코드된 콘텐츠 데이터를 전송할 수 있다. The distributed multimedia streaming service providing system 300 may receive the content data, transcode the received content data in a predetermined format, and transmit the content data transcoded to the terminal device 310. [

말하자면, 단말 장치(310)의 사용자는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)을 통해 설정된 포맷으로 트랜스코드된 콘텐츠 데이터에 대한 스트리밍 서비스를 제공받을 수 있다. 단말 장치(310)의 사용자는 스트리밍 서비스를 제공받을 콘텐츠 데이터를 선택할 수 있고 트랜스코드되는 콘텐츠 데이터의 포맷을 설정할 수 있다. 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)이 단말 장치(310)에게 제공하는 스트리밍 서비스는 멀티스크린 서비스일 수 있다.That is to say, the user of the terminal device 310 can receive the streaming service for the content data transcoded in the format set through the distributed multimedia streaming service providing system 300. The user of the terminal device 310 can select the content data to be provided with the streaming service and can set the format of the content data to be transcoded. The streaming service provided by the distributed multimedia streaming service providing system 300 to the terminal device 310 may be a multi-screen service.

콘텐츠 데이터는 미디어 데이터로서 예를 들어, 영화, 뮤직 미디오 또는 애니매이션 등과 같은 영상 콘텐츠 또는 음성 콘텐츠일 수 있다.The content data may be media content such as, for example, video content such as a movie, music video or animation, or audio content.

단말 장치(310)는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)을 통해 콘텐츠 데이터의 스트리밍 서비스를 제공받을 수 있는 일체의 기기, 예컨대 개인용 컴퓨터(personal computer), 노트북(notebook), 태블릿 PC 및 스마트폰(smartphone) 등을 포함할 수 있다.The terminal device 310 may be any device capable of receiving streaming service of content data through the distributed multimedia streaming service providing system 300 such as a personal computer, a notebook, a tablet PC, and a smart phone smartphone) and the like.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하나 이상의 단말 장치들에게 콘텐츠 데이터의 스트리밍 서비스를 제공할 수 있다. 예를 들어, 단말 장치(310)는 하나 이상의 이기종(heterogeneous) 단말 장치들일 수 있다.The distributed multimedia streaming service providing system 300 can provide a streaming service of content data to one or more terminal devices. For example, the terminal device 310 may be one or more heterogeneous terminal devices.

콘텐츠 데이터는 트랜스코딩 하둡 클러스터에 분산되어 저장될 수 있다.The content data can be distributed and stored in the transcoding Hadoop cluster.

콘텐츠 데이터의 사용자 또는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 관리자는 콘텐츠 데이터를 다른 사용자들과 공유하기 위한 콘텐츠 데이터의 트랜스코딩을 위해 콘텐츠 데이터를 트랜스코딩 하둡 클러스터에 저장할 수 있다. 콘텐츠 데이터가 트랜스코딩 하둡 클러스터에 업로드되면, 콘텐츠 데이터는 표준 포맷으로 트랜스코드될 수 있다. 표준 포맷으로 트랜스코드된 콘텐츠 데이터는 단말 장치(310)로 스트리밍될 수 있다. 표준 포맷은 예컨대, MPEG4일 수 있다. 트랜스코딩은 맵리듀스(mapreduce) 프레임워크를 활용하여 수행될 수 있다. 맵리듀스 프레임워크를 활용하여 트랜스코딩이 수행됨으로써 트랜스코딩의 수행 시간이 줄어들 수 있다.A user of the content data or an administrator of the distributed multimedia streaming service providing system 300 may store the content data in a transcoding Hadoop cluster for transcoding the content data for sharing the content data with other users. If the content data is uploaded to the transcoding Hadoop cluster, the content data may be transcoded into a standard format. The content data transcoded into the standard format can be streamed to the terminal device 310. [ The standard format may be MPEG4, for example. Transcoding can be performed utilizing a mapreduce framework. Transcoding is performed using the MapReduce framework, thereby reducing the time required for transcoding.

스트리밍 하둡 클러스터는 하나 이상의 스트리밍 서버들을 포함할 수 있다. 트랜스코드된 콘텐츠 데이터는 하나 이상의 스트리밍 서버들에 의해 보장된 서비스 품질(Quality of Service; QoS)로 스트리밍을 통해 단말 장치(310)로 전송될 수 있다.The streaming Hadoop cluster may include one or more streaming servers. The transcoded content data may be transmitted to the terminal device 310 through streaming with quality of service (QoS) guaranteed by one or more streaming servers.

콘텐츠 지연(content delay) 및 트래픽 병목 현상의 발생을 방지하기 위해, 콘텐츠 데이터의 스트리밍 동작에는 스트리밍 서버의 로드를 균형잡고, 분산시키는 스트리밍 작업(job) 분산 알고리즘이 사용될 수 있다.In order to prevent the occurrence of content delay and traffic bottlenecks, a streaming job distribution algorithm that balances and distributes the load of the streaming server may be used for streaming content data.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 구조 및 기능에 대해서는 후술될 도 4를 참조하여 더 자세하게 설명된다.The structure and function of the distributed multimedia streaming service providing system 300 will be described in detail with reference to FIG. 4 to be described later.

앞서 도 1 및 도 2를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described with reference to FIG. 1 and FIG. 2 may be applied as they are, so a detailed description will be omitted below.

도 4는 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템의 개략적인 구조를 나타낸다.FIG. 4 shows a schematic structure of a system for providing a distributed multimedia streaming service according to an embodiment.

도 4에서, 실선으로 표시된 내용은 스트리밍 서비스 시스템(300)의 구성 요소들을 나타내고, 점선으로 도시된 내용은 해당 내용이 포함된 구성의 기능을 나타낼 수 있다.In FIG. 4, the solid lines indicate the components of the streaming service system 300, and the dotted lines indicate the function of the configuration including the content.

도 3을 참조하여 전술된 것처럼, 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하둡 클러스터 상에서 운영될 수 있도록 설계될 수 있다.As described above with reference to FIG. 3, the distributed multimedia streaming service providing system 300 may be designed to operate on a Hadoop cluster.

도 4를 참조하면, 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터 관리 서버(410), 트랜스코딩 모듈(420) 및 스트리밍 모듈(430)을 포함할 수 있다.Referring to FIG. 4, a distributed multimedia streaming service providing system 300 may include a content data management server 410, a transcoding module 420, and a streaming module 430.

예를 들어, 콘텐츠 데이터 관리 서버(410)는 콘텐츠 데이터 관리 모듈로서 클라우드 멀티미디어 관리 모듈(Cloud Multimedia Management Module; CMMM)일 수 있다. 트랜스코딩 모듈(420)은 하둡-기반의 분산 멀티미디어 트랜스코딩 모듈(Hadoop-based Distributed Multimedia Transcoding Module; HadoopDMTM)일 수 있고, 스트리밍 모듈(430)은 하둡-기반의 분산 멀티미디어 스트리밍 모듈(Hadoop-based Distributed Multimedia Streaming Module; HadoopDMSM)일 수 있다.For example, the content data management server 410 may be a cloud multimedia management module (CMMM) as a content data management module. The transcoding module 420 may be a Hadoop-based Distributed Multimedia Transcoding Module (HadoopDMTM) and the streaming module 430 may be a Hadoop-based Distributed Multimedia Streaming Module Multimedia Streaming Module (HadoopDMSM).

도 3에서 상술한 바와 같이, 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터를 트랜스코드할 수 있다. 예를 들어, 콘텐츠 데이터는 PC, 스마트폰 및 태블릿 PC 등과 같은 다양한 단말 장치(310)로 제공될 수 있도록 MPEG-4 비디오 포맷으로 트랜스코드될 수 있다.As described above with reference to FIG. 3, the distributed multimedia streaming service providing system 300 may transcode content data. For example, the content data may be transcoded into an MPEG-4 video format so that it can be provided to various terminal devices 310 such as PCs, smart phones and tablet PCs.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터의 저장을 위한 하둡 분산 파일 시스템(Hadoop Distributed file system; HDFS) 및 분산된 콘텐츠 데이터의 병렬 처리를 위한 맵리듀스(MapReduce)를 통합함으로써 트랜스코딩 수행 시간을 줄일 수 있다.The distributed multimedia streaming service providing system 300 integrates a Hadoop Distributed File System (HDFS) for storing content data and a MapReduce for parallel processing of distributed content data to provide a transcoding execution time .

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 딜레이 및 트래픽 병목 현상을 줄이기 위해 스트리밍 작업 분산 알고리즘을 사용하여 스트리밍 작업을 제어할 수 있다.The distributed multimedia streaming service providing system 300 can control a streaming operation using a streaming job distribution algorithm to reduce content delay and traffic bottlenecks.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 전반적인 성능 개선을 위해 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 물리적인 클러스터 당 듀얼-하둡 클러스터링(dual Hadoop clustering)이 사용될 수 있다. 듀얼-하둡 클러스터링이 사용됨으로써 트랜스코딩 및 스트리밍 간의 작업 태스크(job task)가 분산될 수 있다.In order to improve the overall performance of the distributed multimedia streaming service providing system 300, dual Hadoop clustering per physical cluster of the distributed multimedia streaming service providing system 300 may be used. Dual-Hadoop clustering can be used to distribute job tasks between transcoding and streaming.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하둡 정책들에 대한 고수를 통해 효율적인 콘텐츠 데이트의 분산 및 개선된 확장성(improved scalability)을 제공할 수 있다.The distributed multimedia streaming service providing system 300 can provide efficient distribution of content data and improved scalability through adherence to Hadoop policies.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 스트리밍 서비스 배치 프로세스(streaming service deployment process)에 대한 순차적인(sequential) 태스크의 워크플로우(workflow)를 자동으로 실시할 수 있다.The distributed multimedia streaming service providing system 300 can automatically perform a workflow of a sequential task for a streaming service deployment process.

콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420) 및 스트리밍 모듈(430)을 제어 및/또는 관리할 수 있다. 예컨대, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)이 수행하는 콘텐츠 데이터의 트랜스코딩 작업 및 콘텐츠 데이터의 스트리밍 모듈(430)이 수행하는 스트리밍 작업을 제어 및/또는 관리할 수 있다. 또한, 콘텐츠 데이터 관리 서버(410)는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 리소스 사용 상태를 모니터링할 수 있다.The content data management server 410 may control and / or manage the transcoding module 420 and the streaming module 430. For example, the content data management server 410 may control and / or manage the transcoding operation of the content data performed by the transcoding module 420 and the streaming operation performed by the streaming module 430 of the content data. In addition, the content data management server 410 may monitor the resource use state of the distributed multimedia streaming service providing system 300. [

콘텐츠 데이터 관리 서버(410)는 웹 기반의 대쉬보드 모듈(402), 관리 서버(405) 및 데이터 서버(408)를 포함할 수 있다.The content data management server 410 may include a web based dashboard module 402, a management server 405, and a data server 408.

웹 기반의 대쉬보드 모듈(402)은 스트리밍 모듈(430) 내의 듀얼 하둡 클러스터 및 스트리밍 모듈(430)의 스트리밍 서버들의 사용률(usage rate)을 모니터링하기 위해 필요한 옵션들의 선택을 위한 사용자 인터페이스(User Interface; UI)를 단말 장치(310)에게 제공할 수 있다.The web-based dashboard module 402 includes a user interface (UI) for selecting options needed to monitor the usage rates of the dual Hadoop clusters in the streaming module 430 and the streaming servers of the streaming module 430. UI) to the terminal device 310. [

예를 들어, 웹 기반의 대쉬보드 모듈(402)은 스트리밍 모듈(430)의 스트리밍 서버의 중앙 처리 장치(Central Processing Unit; CPU), 랜덤 액세스 메모리(Random Access Memory; RAM) 및 스트리밍 전송률(streaming transmission rate) 중에서 적어도 하나와 관련된 옵션의 선택을 위한 UI를 단말 장치(310)에게 제공할 수 있다. For example, the web-based dashboard module 402 may include a central processing unit (CPU) of a streaming server of the streaming module 430, a random access memory (RAM) and a streaming transmission rate to the terminal device 310 for the selection of an option associated with at least one of the options.

또한, 웹 기반의 대쉬보드 모듈(402)은 콘텐츠 데이터의 해상도(resolution), 비트 전송률(bit rate) 및 프레임률(frame rate) 중에서 적어도 하나를 결정하는 트랜스코딩 작업들에 필요한 옵션들의 선택을 위한 UI를 단말 장치(310)에게 제공할 수 있다.The web-based dashboard module 402 may also be used to select options for transcoding tasks that determine at least one of the resolution, bit rate, and frame rate of the content data. And can provide the UI to the terminal device 310.

관리 서버(405)는 단말 장치(310)에게 스트리밍 서비스가 제공됨에 있어서의 콘텐츠 데이터의 트랜스코딩 및 스트리밍의 각 단계(phase)에서 생성되는 다양한 작업들을 제어 및/또는 관리할 수 있다. 또한, 관리 서버(405)는 콘텐츠 데이터의 업로드, 콘텐츠 데이터의 트랜스코딩 및 단말 장치에 대한 콘텐츠 데이터의 이전 등과 같은 스트리밍 서비스의 제공에 필요한 작업들의 상태 정보를 모니터링할 수 있다. 또한, 관리 서버(405)는 스트리밍 모듈(430)의 스트리밍 서버들의 로드를 분산시키기 위해 스트리밍 작업 분산 알고리즘을 사용할 수 있다.The management server 405 can control and / or manage various jobs generated in each phase of transcoding and streaming of content data when the streaming service is provided to the terminal device 310. [ In addition, the management server 405 can monitor status information of jobs necessary for providing a streaming service such as uploading of content data, transcoding of content data, and transfer of content data to the terminal device. In addition, the management server 405 may use a streaming job distribution algorithm to distribute the load of the streaming servers of the streaming module 430.

스트리밍 작업 분산은 라운드 로빈(Round robin; RR) 알고리즘, 최소 연결(Least Connection; LC) 알고리즘 및 연결 기반의 스트리밍 자원(Streaming Resource based Connection; SRC) 알고리즘 중 적어도 하나를 사용하여 수행될 수 있다.The streaming task distribution may be performed using at least one of a round robin (RR) algorithm, a Least Connection (LC) algorithm, and a Streaming Resource based Connection (SRC) algorithm.

예를 들어, 관리 서버(405)는 스트리밍 작업 분산을 위해 SRC 알고리즘을 사용할 수 있다. SRC 알고리즘을 사용함으로써, 스트리밍 작업 분산에 각 스트리밍 서버(432)의 CPU의 사용량, RAM의 사용량 및 스트리밍 전송률 중 적어도 하나가 고려될 수 있다. 따라서, 관리 서버(405)는 다수의 사용자들의 동시 접속(simultaneous connection)에 따라 급격히 증가하는 스트리밍 작업들을 효율적으로 균형잡고, 분산할 수 있다.For example, the management server 405 may use the SRC algorithm for streaming work distribution. By using the SRC algorithm, at least one of the usage amount of the CPU of each streaming server 432, the usage amount of the RAM, and the streaming transfer rate can be considered in the distribution of the streaming work. Accordingly, the management server 405 can efficiently balance and distribute rapidly increasing streaming operations according to simultaneous connection of a plurality of users.

관리 서버(405)는 트랜스코딩 모듈(420)의 콘텐츠 데이터의 트랜스코딩, 콘텐츠 데이터의 이전 및 콘텐츠 데이터로부터 썸내일 이미지들의 추출과 관련된 작업을 관리할 수 있고, 스트리밍 모듈(430)의 추출된 썸내일 이미지들 및/또는 트랜스코드된 콘텐츠 데이터와 관련된 정보의 데이터 서버(408)에의 등록과 관련된 작업을 관리할 수 있다.The management server 405 can manage operations related to transcoding of the content data of the transcoding module 420, transfer of content data, and extraction of thumbnail images from the content data, and the extracted thumb Manage jobs associated with tomorrow's images and / or information associated with the transcoded content data to the data server 408.

데이터 서버(408)는 콘텐츠 데이터 베이스(content database; 412) 및 썸내일 데이터 베이스(thumbnail database; 414)를 포함할 수 있다. 콘텐츠 DB(412)는 스트리밍 모듈(430)로부터 등록되는 콘텐츠 데이터과 관련된 정보를 저장할 수 있고, 썸내일 DB(414)는 스트리밍 모듈(430)로부터 등록되는 썸내일 이미지들을 저장할 수 있다.The data server 408 may include a content database 412 and a thumbnail database 414. The content DB 412 may store information related to content data registered from the streaming module 430 and the thumb tomorrow DB 414 may store thumb tomorrow images registered from the streaming module 430. [

트랜스코딩 모듈(420)은 콘텐츠 데이터를 설정된 포맷으로 트랜스코딩할 수 있다. 트랜스코딩 모듈(420)은 콘텐츠 데이터를 트랜스코딩할 때, 구성될 수 있는 디스플레이 크기, 코덱 방법 및 컨테이너 포맷 중 적어도 하나에 대한 트랜스코딩과 관련된 옵션을 적용할 수 있다.The transcoding module 420 may transcode the content data into a predetermined format. The transcoding module 420 may apply options associated with transcoding to at least one of the display size, the codec method, and the container format that may be configured when transcoding the content data.

트랜스코딩 모듈(420)은 실시간으로 수집된 작은 크기의 콘텐츠 데이터를 처리하는 것보다 소정의 시간 동안 수집된 크기가 큰 콘텐츠 데이터를 일괄 처리(batch processing)하는 것에 더 적합할 수 있다.The transcoding module 420 may be more suitable for batch processing content data of large size collected over a predetermined period of time than processing small size content data collected in real time.

트랜스코딩 모듈(420)은 하나 이상의 트랜스 코더들(422)을 포함할 수 있다. 트랜스 코더들(422)은 트랜스코딩 하둡 클러스터에 저장된 콘텐츠 데이터를 트랜스코드할 수 있다. 트랜스 코더들(422)은 단말 장치(310)로의 콘텐츠 데이터의 스트리밍 서비스의 제공을 위해 콘텐츠 데이터를 표준 포맷으로 트랜스코딩할 수 있다. 예를 들어, 표준 포맷은 MPEG-4 비디오 포맷일 수 있다. 트랜스 코더들(422)은 콘텐츠 데이터를 분할 및 병합할 수 있고, 인코드된 콘텐츠 데이터를 디코딩할 수 있고, 콘텐츠 데이터의 사이즈를 변경할 수 있고, 디코드된 콘텐츠 데이터를 인코딩할 수 있다. 트랜스 코더들(422)은 맵리듀스 기반의 트랜스 코더들일 수 있다.The transcoding module 420 may include one or more transcoders 422. The transcoders 422 may transcode the content data stored in the transcoding Hadoop cluster. The transcoders 422 may transcode the content data into a standard format for providing streaming service of the content data to the terminal device 310. [ For example, the standard format may be an MPEG-4 video format. The transcoders 422 may split and merge the content data, decode the encoded content data, change the size of the content data, and encode the decoded content data. Transcoders 422 may be MapReduce based transcoders.

또한, 트랜스코딩 모듈(420)은 다양한 소스(source)들로부터의 콘텐츠 데이터를 저장하기 위한 HDFS(424)를 포함할 수 있다. 예를 들어, HDFS(424)는 콘텐츠 데이터의 전송 동안 콘텐츠 데이터의 전송 등의 통신에 소요되는 비용이 과다해 지는 것을 방지하기 위한, 콘텐츠 데이터의 분산된 처리를 위해 사용될 수 있다. 또한, HDFS(424)는 콘텐츠 데이터의 처리에 적합한 큰 청크 사이즈(64MB) 정책 및/또는 사용자-수준 분산 시스템을 위해 사용될 수 있다. HDFS(424)는 로드 밸런싱(load balancing), 결함 감내 및 분산 처리를 위한 맵리듀스에 의해 제공되는 정책들을 통합할 수 있다.The transcoding module 420 may also include an HDFS 424 for storing content data from a variety of sources. For example, the HDFS 424 may be used for distributed processing of content data to prevent excessive expenditure on communication such as transmission of content data during transmission of the content data. In addition, HDFS 424 may be used for large chunk size (64 MB) policies and / or user-level distributed systems suitable for processing content data. HDFS 424 may incorporate policies provided by the MapReduce for load balancing, fault tolerance, and distributed processing.

트랜스코딩 모듈(420)은 콘텐츠 데이터의 병렬 처리를 위해 맵리듀스를 사용할 수 있고, 콘텐츠 데이터의 트랜스코딩을 위해 저글러(xuggler)를 사용할 수 있다.The transcoding module 420 may use the MapReduce for parallel processing of the content data and may use xuggler for transcoding the content data.

트랜스코딩 모듈(420)은 트랜스코딩 하둡 클러스터의 HDFS(424) 상에서 동작하는 네임 노드 및 하나 이상의 데이터 노드들을 포함할 수 있다. 예를 들어, 데이터 노드는 콘텐츠 스토리지 서버로서 역할을 수행할 수 있고, 네임 노드는 네임스페이스 서버(namespace server)로서 역할을 수행할 수 있다. 콘텐츠 데이터는 하나 이상의 블록들로 분할되어 데이터 노드들로 분산될 수 있다. 트랜스코딩 모듈(420)은 네임 노드를 관리할 수 있다. 또한, 트랜스코딩 모듈(420)은 분할된 콘텐츠 데이터의 블록들을 관리 및/또는 복제할 수 있고, 콘텐츠 데이터를 스트리밍 모듈(430)로 이전할 수 있다. 스트리밍 모듈(430)로 이전되는 콘텐츠 데이터는 트랜스코드된 콘텐츠 데이터일 수 있다.The transcoding module 420 may include a name node and one or more data nodes operating on the HDFS 424 of the transcoding Hadoop cluster. For example, a data node may act as a content storage server, and a name node may serve as a namespace server. Content data may be divided into one or more blocks and distributed to data nodes. The transcoding module 420 may manage the name node. In addition, the transcoding module 420 may manage and / or copy blocks of the partitioned content data and may transfer the content data to the streaming module 430. The content data transferred to the streaming module 430 may be transcoded content data.

스트리밍 모듈(430)은 트랜스코딩 모듈(420)에 의해 트랜스코드된 콘텐츠 데이터를 저장하는 콘텐츠 스토리지 서버(content storage server; 미도시)를 포함할 수 있다. 스트리밍 모듈(430)은 콘텐츠 스토리지 서버에 저장된 트랜스코드된 콘텐츠 데이터를 스트리밍을 통해 단말 장치(310)로 전송할 수 있다. 예를 들어, 스트리밍 모듈(430)은 스트리밍 하둡 클러스터 상에서 동작할 수 있다.The streaming module 430 may include a content storage server (not shown) that stores content data transcoded by the transcoding module 420. The streaming module 430 may transmit the transcoded content data stored in the content storage server to the terminal device 310 through streaming. For example, the streaming module 430 may operate on a streaming Hadoop cluster.

스트리밍 모듈(430)은 하나 이상의 스트리밍 서버들(432), HDFS(436) 및 장착 가능한 HDFS(434)를 더 포함할 수 있다. 예를 들어, 장착 가능한 HDFS(434)는 HDFS(436)일 수 있다. 스트리밍 서버들(432)은 맵리듀스 기반의 분산(distributed) 스트리밍 서버들일 수 있다.The streaming module 430 may further include one or more streaming servers 432, an HDFS 436, and a mountable HDFS 434. For example, the mountable HDFS 434 may be an HDFS 436. Streaming servers 432 may be distributed streaming servers based on MapReduce.

스트리밍 모듈(430)은 HDFS(436) 상에서 동작하는 하나 이상의 데이터 노드들 및 네임 노드를 포함할 수 있다. 트랜스코드된 콘텐츠 데이터는 하나 이상의 블록들로 분할되어 데이터 노드들로 분산될 수 있다. 스트리밍 모듈(430)은 네임 노드를 관리할 수 있다. 또한, 스트리밍 모듈(430)은 분할된 트랜스코드된 콘텐츠 데이터의 블록들을 관리 및/또는 복제할 수 있다. 예를 들어, 스트리밍 모듈(430)은 콘텐츠 데이터를 복제함으로써 데이터 노드의 장애 및/또는 콘텐츠 데이터의 손실 발생 시 콘텐츠 데이터 및 데이터 노드를 복구할 수 있다. 즉, 스트리밍 모듈(430)은 지능적인 콘텐츠 데이터 복제 및 복원 정책들을 사용할 수 있다.The streaming module 430 may include one or more data nodes and a name node operating on the HDFS 436. The transcoded content data may be divided into one or more blocks and distributed to the data nodes. The streaming module 430 may manage the name node. In addition, the streaming module 430 may manage and / or copy blocks of the segmented transcoded content data. For example, the streaming module 430 may recover content data and data nodes in the event of a failure of the data node and / or a loss of content data by copying the content data. That is, the streaming module 430 may use intelligent content data replication and recovery policies.

단말 장치(310)의 사용자에게 스트리밍 서비스를 제공함에 있어서 가장 중요한 요인은 사용자들이 데이터 노드의 장애 및/또는 콘텐츠 손실을 인식하지 못하고 끊김 없는 스트리밍 서비스의 제공이 유지되는 것일 수 있다.The most important factor in providing the streaming service to the user of the terminal device 310 may be that the users do not recognize the failure of the data node and / or the content loss and the provision of the seamless streaming service is maintained.

기존의 스트리밍 서비스 제공 시스템은 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)과는 달리 콘텐츠 데이터의 복제 및 자동 복원 정책들을 고려 및/또는 도입하고 있지 않기 때문에, 스트리밍 서비스 제공 시스템의 신뢰성 및 끊김 없는 스트리밍 서비스의 제공이 보장되지 않을 수 있다. 또한, 기존의 스트리밍 서비스 제공 시스템은 집중적인 컴퓨팅 자원을 요구하는 트랜스코딩 작업 및 스트리밍 작업이 동시에 수행되는 경우, 사용자에게 제공되는 스트리밍 서비스의 품질이 보장되지 않을 수 있다.Unlike the distributed multimedia streaming service providing system 300, the existing streaming service providing system does not consider and / or introduce the duplication and automatic restoration policies of the content data. Therefore, the reliability of the streaming service providing system and the seamless streaming service Delivery may not be guaranteed. Also, in the existing streaming service providing system, when the transcoding operation and the streaming operation that require intensive computing resources are simultaneously performed, the quality of the streaming service provided to the user may not be guaranteed.

앞서 도 1 및 도 3을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described with reference to FIG. 1 and FIG. 3 may be applied as they are, so that a more detailed description will be omitted below.

도 5는 도 4에 도시된 관리 서버가 스트리밍 작업 분산을 위해 사용하는 SRC 알고리즘을 나타낸다.FIG. 5 shows an SRC algorithm used by the management server shown in FIG. 4 for streaming work distribution.

도 5를 참조하면, 관리 서버(405)는 라운드 로빈(Round robin; RR) 알고리즘, 최소 연결(Least Connection; LC) 알고리즘 및 연결 기반의 스트리밍 자원(Streaming Resource based Connection; SRC) 알고리즘 중 적어도 하나를 사용하여 스트리밍 작업 분산을 수행할 수 있다.5, the management server 405 receives at least one of a round robin (RR) algorithm, a Least Connection (LC) algorithm, and a Streaming Resource based Connection (SRC) Can be used to perform streaming job distribution.

RR 알고리즘은 사용자들로부터 비디오 스트리밍 요청(video streaming request)에 따라 미리 지정된(in a prescribed order) 순서로 스트리밍 서버들을 선택하여 콘텐츠 데이터를 스트리밍할 수 있다. LC 알고리즘은 스트리밍 태스크들의 최소 수(the least number of streaming tasks)를 갖는 스트리밍 서버를 선택하여 콘텐츠 데이터를 스트리밍할 수 있다.The RR algorithm may stream the content data by selecting streaming servers in a predetermined order according to a video streaming request from the users. The LC algorithm may stream the content data by selecting a streaming server having the least number of streaming tasks.

RR 알고리즘 및 LC 알고리즘은 집약적(intensive)이고 큰(massive) 물리적 자원 사용량(physical resource usage)과 연관된 구성 요소들, 예를 들어 스트리밍 프로세스들에 요구되는 CPU, 메모리, 네트워크 대역폭(network bandwidth), 및 스토리지를 고려하지 않기 때문에 분산 컴퓨팅 환경(distributed computing environment)의 스트리밍 서비스들을 처리하는데 적합하지 않다. 게다가, 스트리밍 서비스의 품질은 네트워크 조건의 변동에 의해 결정되므로, 불변하는 요소(invariable element)만을 고려하는 태스크 분산 방법들(task distribution methods)은 부적합하다. 따라서, RR 알고리즘 및 LC 알고리즘은 정적 분산 컴퓨팅 환경(static distributed computing environment)에 적합할 뿐이고, 집약적인 자원들을 필요로 하지 않는 간단한 텍스트 데이터와 웹 페이지들에 기반한 태스크들을 처리할 수 있다. 즉, RR 알고리즘 및 LC 알고리즘은 현재의 인터넷 인프라스트럭처와 스트리밍 서버에 큰 부담을 주기 때문에 제한된다.The RR algorithm and the LC algorithm are intensive and require the CPU, memory, network bandwidth, and other resources required for components associated with massive physical resource usage, such as streaming processes, It is not suitable for processing streaming services in a distributed computing environment because it does not consider storage. Furthermore, since the quality of the streaming service is determined by variations in network conditions, task distribution methods that take into account only invariable elements are unsuitable. Thus, the RR and LC algorithms are only suitable for a static distributed computing environment and can handle simple text data and tasks based on web pages that do not require intensive resources. That is, the RR algorithm and the LC algorithm are limited because they put a heavy burden on the current Internet infrastructure and the streaming server.

관리 서버(405)는 스트리밍 작업 분산을 위해 SRC 알고리즘을 사용할 수 있다. SRC 알고리즘을 사용함으로써, 스트리밍 작업 분산에 각 스트리밍 서버의 CPU의 사용량(usage), RAM의 사용량(usage) 및 스트리밍 전송률 중 적어도 하나가 고려될 수 있다. 예를 들어, CPU의 사용량과 RAM의 사용량은 CPU의 사용률과 RAM의 사용률을 의미하고, 스트리밍 전송률은 스트리밍 전송 처리량(streaming transmission throughput)을 의미할 수 있다.The management server 405 may use the SRC algorithm for streaming work distribution. By using the SRC algorithm, at least one of usage of CPU, usage of RAM, and streaming rate of each streaming server can be considered in distribution of streaming work. For example, the amount of CPU usage and the amount of RAM usage indicate the CPU usage rate and the usage rate of RAM, and the streaming transfer rate may mean streaming transmission throughput.

따라서, 관리 서버(405)는 다수의 사용자들의 동시 접속(simultaneous connection)에 따라 급격히 증가하는 스트리밍 작업들을 효율적으로 균형잡고, 분산할 수 있다.Accordingly, the management server 405 can efficiently balance and distribute rapidly increasing streaming operations according to simultaneous connection of a plurality of users.

리눅스 명령(Linux command) mpstat은 서버들의 CPU 사용량에 대한 통계(statistics)를 생성하기 위해 사용될 수 있다. 자유 명령(free command)는 RAM 사용량을 결정하기 위해 사용되고, proc/net/dev는 스트리밍 전송률(streaming transmission rate)을 얻기 위해 사용될 수 있다.Linux command mpstat can be used to generate statistics on the CPU usage of servers. The free command is used to determine RAM usage, and proc / net / dev can be used to get the streaming transmission rate.

SRC 알고리즘의 파리미터들은 다음과 같을 수 있다.The parameters of the SRC algorithm may be as follows.

ssn_ID는 스트리밍 모듈(430)의 스트리밍 서버(432)의 ID일 수 있다. 모든 스트리밍 서버들(430)의 ID는 ssn_ID = ss1, ss2, ...., ssn 로 표시될 수 있다. ssun은 ssn에 대한 시스템 사용율(system usage rate), 즉 CPU와 RAM 사용률을 가산함으로써 계산될 수 있다. ssn의 CPU 사용률은 scun으로 정의되고, 리눅스 명령 mpstat에 의해 계산될 수 있다. ssn의 RAM 사용률은 srun으로 표현되고, 자유 명령에 의해 계산될 수 있다. sttn는 ssn에서 생성된 1초 동안 현재의 전송 처리량(transmission throughput)일 수 있다. request ID는 스트리밍 서비스를 요청한 사용자의 ID를 의미할 수 있다.The ss n _ID may be the ID of the streaming server 432 of the streaming module 430. The IDs of all streaming servers 430 may be denoted as ss n _ID = ss 1 , ss 2 , ...., ss n . ssu n can be computed by adding the system usage rate for ss n , CPU and RAM usage. The CPU utilization of ss n is defined as scu n and can be calculated by the Linux command mpstat. The RAM usage of ss n is expressed as sru n and can be calculated by free command. stt n may be the current transmission throughput for one second generated by ss n . The request ID may indicate the ID of the user who requested the streaming service.

최적의 ssn과 사용자 스트리밍 요청을 연결하기 위해, SRC 알고리즘은 각 스트리밍 서버에 대한 ssun과 sttn을 계산할 수 있다. ssun은 아래의 수학식 1에 의해서 계산될 수 있다.
To connect the optimal ss n with the user streaming request, the SRC algorithm can calculate ssu n and stt n for each streaming server. ssu n can be calculated by the following equation (1).

Figure pat00001
Figure pat00001

또한, sttn는 아래의 수학식 2에 의해서 계산될 수 있다.
Further, stt n can be calculated by the following equation (2).

Figure pat00002
Figure pat00002

current sttn은 스트리밍 서비스를 시작한 이후부터 ssn의 총 처리량(total throughput)일 수 있다. past sttn은 현재 측정 포인트의 1초 전의 ssn의 총 처리량(total throughput)이다.current stt n may be the total throughput of ss n since the start of the streaming service. past stt n is the total throughput of ss n one second before the current measurement point.

최적의 스트리밍 서버를 선택하기 위한 스트리밍 태스크 분산 시퀀스(streaming task distribution sequence)는 다음과 같을 수 있다. 예를 들어, 최적의 스트리밍 서버는 최고 유휴 상태(idlest)인 스트리밍 서버일 수 있다.The streaming task distribution sequence for selecting an optimal streaming server may be as follows. For example, an optimal streaming server may be a streaming server that is the highest idle state.

첫째, 관리 서버(405)는 현재의 스트리밍 태스크를 최저값(lowest value)의 ssun을 갖는 스트리밍 서버에 분배할 수 있다.First, the management server 405 can distribute the current streaming task to the streaming server having the lowest value ssu n .

둘째, 최저값(lowest value)의 ssun을 갖는 서버들이 둘 이상인 경우, 관리 서버(405)는 스트리밍 태스크를 최저값의 sttn을 갖는 스트리밍 서버에 분배할 수 있다.Second, when there are two or more servers having the lowest value ssu n , the management server 405 can distribute the streaming task to the streaming server having the lowest value stt n .

SRC 알고리즘은 스트리밍 네트워크 트래픽과 CPU 및 RAM의 사용률(CPU and RAM usage rates) 등의 요인을 고려함으로써, 스트리밍 서버들(432) 중에서 스트리밍 서비스를 위한 최적의 조건(optimal conditions)을 갖는 스트리밍 서버를 선택할 수 있다.The SRC algorithm selects a streaming server having optimal conditions for the streaming service among the streaming servers 432 by considering factors such as streaming network traffic and CPU and RAM usage rates .

따라서, 분산 멀티미디어 스트리밍 서브 제공 시스템(300)은 예측할 수 없는 네트워크 트래픽을 갖는 클라우드 컴퓨팅 환경에서 최적의 조건을 갖는 스트리밍 서버를 통해 원할하고, 풍부한 미디어 스트리밍 서비스를 제공할 수 있다. 즉, 분산 멀티미디어 스트리밍 서브 제공 시스템(300)은 SRC 알고리즘을 제공함으로써 스트리밍 태스크 분배 능력(streaming task distribution capacity) 향상할 수 있다.Accordingly, the distributed multimedia streaming sub-providing system 300 can provide a rich and rich media streaming service through a streaming server having optimal conditions in a cloud computing environment having unpredictable network traffic. That is, the distributed multimedia streaming sub providing system 300 can improve the streaming task distribution capacity by providing the SRC algorithm.

또한, 분산 멀티미디어 스트리밍 서브 제공 시스템(300)은 스트리밍 서비스들을 제공하는 동안 콘텐츠 지연을 줄이고, 트래픽 병목 현상(traffic bottlenecks)을 방지할 수 있다.
In addition, the distributed multimedia streaming sub-providing system 300 can reduce content delay and prevent traffic bottlenecks while providing streaming services.

도 6은 일 예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.FIG. 6 illustrates a distributed multimedia streaming service providing system according to an example embodiment.

도 6은 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 하드웨어 구성의 일 예를 나타낸다.6 shows an example of the hardware configuration of the distributed multimedia streaming service providing system 300. [

도 6을 참조하면, 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 스트리밍 태스크 관리 모듈(streaming task management moduel(STMM); 510), 스트리밍 서버 모듈(streaming server module(SSM); 520), 및 HDFS-기반 콘텐츠 스토리지 서버 모듈(HDFS-based content storage server module(HSCSM); 530)을 포함할 수 있다.6, the distributed multimedia streaming service providing system 300 includes a streaming task management module 510, a streaming server module (SSM) 520, and a HDFS-based A content storage server module (HSCSM) 530).

STMM(510)은 도 4의 콘텐츠 데이터 관리 서버(410)의 관리 서버(405)의 일 실시예이고, SSM(520)은 도 4의 스트리밍 모듈(430)의 스트리밍 서버(432)의 일 실시예이고, HSCSM(530)은 도 4의 스트리밍 모듈(430)의 콘텐츠 스토리지 서버의 일 실시예일 수 있다.The STMM 510 is an embodiment of the management server 405 of the content data management server 410 of Figure 4 and the SSM 520 is an embodiment of the streaming server 432 of the streaming module 430 of Figure 4 And the HSCSM 530 may be one embodiment of the content storage server of the streaming module 430 of FIG.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 클라우드 컴퓨팅 클러스터에서 실행되는 14개의 노드들을 포함할 수 있다. STMM(510)은 1개의 노드를 포함하고, SSM(520)은 3개의 노드를 포함하고, HSCSM(530)은 10개의 노드를 포함할 수 있다.The distributed multimedia streaming service providing system 300 may include 14 nodes running in a cloud computing cluster. The STMM 510 includes one node, the SSM 520 includes three nodes, and the HSCSM 530 may include ten nodes.

도 6에서는 도 4의 트랜스코딩 모듈(420)이 콘텐츠 데이터에 대한 트랜스코딩 프로세스를 완료했다고 가정하고, 트랜스코딩 모듈(420)을 생략한다.In FIG. 6, assume that the transcoding module 420 of FIG. 4 has completed the transcoding process for the content data, and skips the transcoding module 420.

각 노드의 하드웨어 사양은 표 1과 같이 정리될 수 있다.
The hardware specifications of each node can be summarized as shown in Table 1.

Figure pat00003
Figure pat00003

SSM(520)은 3개의 노드들은 MPEG4 비디오 포맷으로 트랜스코드된 콘텐츠를 스트리밍하기 위해 NginX에서 실행되는 스트리밍 서버들일 수 있다. HSCSM(530)은 10개의 노드들은 HDFS에 실행되는 데이터 노드들일 수 있다.The SSM 520 may be streaming servers that run on NginX to stream the transcoded content to three nodes in the MPEG4 video format. HSCSM 530 may be the data nodes running on HDFS with ten nodes.

STMM(510)의 1개의 노드는 SRC를 이용하는 스트리밍 태스트 분산을 위한 관리 서버(management server; 405)일 수 있다.One node of STMM 510 may be a management server 405 for streaming test distribution using SRC.

STMM(510)의 관리 서버(405)는 웹 기반의 대쉬보드를 구현하기 위해 JSP를 사용할 수 있고, 콘텐츠 업로드 기능을 위해 swfuload 2.2.0.1 라이브러리들을 사용할 수 있고, SRC 알고리즘을 구현하기 위해 자바 라이브러리 및 배쉬(bash) 쉘 스크립트를 사용할 수 있고, 모니터링 시스템 상태의 그래프를 나타내기 위해 구글 차트 API를 사용할 수 있다.The management server 405 of the STMM 510 can use the JSP to implement a web-based dashboard, use the swfuload 2.2.0.1 libraries for the content upload function, and use the Java library and / You can use the bash shell script and use the Google Chart API to display a graph of the monitoring system state.

분산 멀티미디어 스트리밍 서비스 제공 시스템(300)을 위한 소프트웨어 명세는 스트리밍 기능을 구현하기 위한 H.264 스트리밍 모듈 2.2.7, 스트리밍 서버들을 위한 NginX 1.2.7 및 HDFS를 표준 파일 시스템으로서 유닉스 시스템 상에 장착(mount)시키도록 허용하는 fuse_dfs_0.1.0을 포함할 수 있다.The software specification for the distributed multimedia streaming service providing system 300 includes an H.264 streaming module 2.2.7 for streaming function, NginX 1.2.7 for streaming servers, and HDFS as a standard file system mounted on a Unix system mount, which allows you to mount fuse_dfs_0.1.0.

STMM(510)은 효율적인 로드 밸런싱에서 중요한 역할을 하는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 주요 구성요소이다. 견고한(robust) 로드 밸런싱은 SRC 알고리즘을 이용하여 스트리밍 태스크 분산(streaming task distribution)을 스케쥴링함으로써 성취될 수 있다.The STMM 510 is a major component of the distributed multimedia streaming service providing system 300, which plays an important role in efficient load balancing. Robust load balancing can be achieved by scheduling a streaming task distribution using the SRC algorithm.

첫째, 사용자는 단말 장치(310)를 이용하여 STMM(510)의 웹 대쉬보드(web dashboard)에 액세스함으로써 콘텐츠 데이터의 리스트를 선택할 수 있다.First, a user can select a list of contents data by accessing a web dashboard of the STMM 510 using the terminal device 310. [

둘째, 사용자가 특정 콘텐츠 데이터를 선택할 때, STMM(510)은 각 스트리밍 서버의 사용률(usage rate)과 현재 스트리밍 전송 처리량(current streaming transmission throughput)을 계산함으로써 SSM(520)에서 최적의 스트리밍 서버(optimal streaming server)를 결정할 수 있다.Second, when the user selects specific content data, the STMM 510 calculates the optimal streaming server (optimal streaming server) in the SSM 520 by calculating the usage rate of each streaming server and the current streaming transmission throughput streaming server.

마지막으로, 사용자는 HTTP 요청에 대한 리다이렉션 메커니즘을 통해 선택된 스트리밍 서버에 접속하고, 요청된 스트리밍 서비스(requested streaming service)를 수신할 수 있다.Finally, the user can connect to the selected streaming server via the redirection mechanism for the HTTP request and receive the requested streaming service.

SSM(520)은 STMM(510)의 SRC 알고리즘에 의해 스케쥴드된 스트리밍 서버들을 포함할 수 있다. SSM(520)의 스트리밍 서버들의 수가 증가할 때마다, 스트리밍 서버당 처리하는 스트리밍 태스크의 수가 줄기 때문에 풍부한 멀티미디어 스트리밍 서비스를 사용자들에게 제공하는 것이 가능할 수 있다.The SSM 520 may include streaming servers scheduled by the SRC algorithm of the STMM 510. As the number of streaming servers in the SSM 520 increases, the number of streaming tasks processed per streaming server decreases, so it may be possible to provide a rich multimedia streaming service to users.

그러나, 스트리밍 서버들의 수는 특별한 이유 없이 단순히 물리적 자원들(physical configuration)의 증가 보다 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 전체 네트워크 처리량(total network throughput)과 HSCSM(530)의 콘텐츠 스토리지 서버들의 물리적 구성(physical configuration)을 고려하여 결정될 수 있다.However, the number of streaming servers may be less than the increase in physical configuration simply because of the total network throughput of the distributed multimedia streaming service providing system 300 and the physical (physical) configuration of the content storage servers of the HSCSM 530, May be determined in consideration of the physical configuration.

각 스트리밍 서버는 H.264 스트리밍 모듈이 설치된 NginX를 이용할 수 있다. H.264 모듈을 갖는 NginX는 일반 웹 서버(typical web server)이고, RTP, RTSP, 또는 RTMP와 같은 스트리밍 프로토콜을 제외한 스트리밍 서버 대신에 HTTP 기반 스트리밍 서비스(HTTP-based streaming service)가 제공되도록 사용될 수 있다.Each streaming server can use NginX with H.264 streaming module installed. NginX with H.264 modules is a typical web server and can be used to provide HTTP-based streaming services instead of streaming servers except for streaming protocols like RTP, RTSP, or RTMP. have.

일반적으로, 특정 스트리밍 프로토콜은 스트리밍 시스템이 구축될 때, 타켓 장치의 타입(type)에 따라 선택될 수 있다.. 그러나, 스트리밍 서비스는 대부분의 장치에 허용되어야 하기 때문에, HTTP 기반 스트리밍 프로토콜이 가장 적합할 수 있다.In general, a particular streaming protocol can be selected based on the type of the target device when the streaming system is built. However, because streaming services must be allowed for most devices, HTTP-based streaming protocols are best suited can do.

HSCSM(530)는 분산 방식(distributed manner)으로 데이터 노드들에서 트랜스코드된 콘텐츠를 저장하고, 데이터 노드 실패 또는 콘텐츠 손실이 발생할 때 콘텐츠 복제와 복구(recovery)를 수행할 수 있다. HSCSM 530 may store transcoded content in data nodes in a distributed manner and may perform content replication and recovery when a data node failure or content loss occurs.

스트리밍 서비스를 제공할 때, 가장 중요한 요소는 사용자가 데이터 노드 실패 및 콘텐츠 손실을 알아차릴 수 없을 정도로 필요한 원할한 스트리밍 서비스의 유지다. 전통적인 접근법을 사용하는 스트리밍 서비스 시스템은 콘텐츠 복제 관리(content replication management)와 자동 복구 정책(automated recovery policy)을 포함하지 않으며, 그 결과 시스템 안정성(system reliability) 및 원활한 스트리밍 서비스(seamless service service)는 보장될 수 없다. HSCSM(530)는 하둡의 핵심 기능과 정책들을 포함함으로써 이런 한계를 극복할 수 있다. 게다가, 장착 가능한(mountable) HDFS는 HDFS가 로컬 파일 시스템에 마운트될 수 있도록 HSCSM(530)에 적용될 수 있다. 따라서, 사용자들은 일반적인 명령(general commands)을 사용하여 로컬 파일 시스템(local file system)으로서 사용에 복잡성(complexity)을 갖는 분산 파일 시스템(distributed file system)에 접속할 수 있다.
When providing a streaming service, the most important factor is the maintenance of a streaming service that is so necessary that the user can not notice the data node failure and content loss. Streaming service systems using the traditional approach do not include content replication management and automated recovery policy, resulting in system reliability and seamless service. Can not be. The HSCSM 530 can overcome these limitations by including Hadoop's core functionality and policies. In addition, mountable HDFS can be applied to HSCSM 530 so that HDFS can be mounted on the local file system. Accordingly, users can access a distributed file system having a complexity for use as a local file system by using general commands.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (16)

물리적 자원의 사용률 및 스트리밍 전송 처리량 중에서 적어도 하나에 기초하여 스트리밍 서버들 중에서 최적의 스트리밍 서버를 선택하는 단계; 및
상기 최적의 스트리밍 서버를 이용하여 콘텐츠 데이터를 스트리밍하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
Selecting an optimal streaming server among the streaming servers based on at least one of usage rate of physical resources and streaming transmission throughput; And
Streaming the content data using the optimal streaming server
/ RTI >
제1항에 있어서,
상기 선택하는 단계는,
상기 스트리밍 서버들 각각의 물리적 자원의 사용률을 계산하는 단계; 및
상기 스트리밍 서버들 각각의 스트리밍 전송 처리량을 계산하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
The method according to claim 1,
Wherein the selecting comprises:
Calculating a usage rate of physical resources of each of the streaming servers; And
Calculating a streaming transmission throughput of each of the streaming servers
/ RTI >
제1항에 있어서,
상기 선택하는 단계는,
상기 스트리밍 서버들 중에서 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
The method according to claim 1,
Wherein the selecting comprises:
Selecting a streaming server having the lowest usage rate of the physical resources among the streaming servers as the optimal streaming server
/ RTI >
제2항에 있어서,
상기 선택하는 단계는,
상기 물리적 자원의 사용률이 최저값인 스트리밍 서버가 둘 이상일 때, 상기 스트리밍 서버들 중에서 상기 스트리밍 전송 처리량이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 단계
를 더 포함하는 콘텐츠 데이터 스트리밍 방법.
3. The method of claim 2,
Wherein the selecting comprises:
Selecting a streaming server having the lowest streaming transmission throughput as the optimal streaming server among the streaming servers when the usage rate of the physical resource is the lowest value among the streaming servers
Further comprising the steps of:
제2항에 있어서,
상기 물리적 자원의 사용률을 계산하는 단계는,
CPU 사용률과 RAM 사용률에 기초하여 상기 물리적 자원의 사용률을 계산하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
3. The method of claim 2,
Wherein calculating the utilization rate of the physical resource comprises:
Calculating a usage rate of the physical resource based on the CPU usage rate and the RAM usage rate
/ RTI >
제2항에 있어서,
상기 스트리밍 전송 처리량을 계산하는 단계는,
현재 스트리밍 전송 처리량과 이전 스트리밍 전송 처리량에 기초하여 상기 스트리밍 전송 처리량을 계산하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
3. The method of claim 2,
Wherein the step of calculating the streaming transmission throughput comprises:
Calculating the streaming transmission throughput based on the current streaming transmission throughput and the previous streaming transmission throughput
/ RTI >
제6항에 있어서,
상기 현재 스트리밍 전송 처리량은 스트리밍 서비스를 시작한 이후부터 총 처리량인 콘텐츠 데이터 스트리밍 방법.
The method according to claim 6,
Wherein the current streaming transmission throughput is a total throughput since starting the streaming service.
제6항에 있어서,
상기 이전 스트리밍 전송 처리량은 상기 현재 스트리밍 전송 처리량을 측정하는 포인트의 1초 전까지의 총 처리량인 콘텐츠 데이터 스트리밍 방법.
The method according to claim 6,
Wherein the previous streaming transmission throughput is a total throughput up to one second before the point at which the current streaming transmission throughput is measured.
스트리밍 서버들을 포함하는 스트리밍 모듈; 및
물리적 자원의 사용률 및 스트리밍 전송 처리량 중에서 적어도 하나에 기초하여 상기 스트리밍 서버들 중에서 최적의 스트리밍 서버를 선택하는 콘텐츠 데이터 관리 서버
를 포함하고,
상기 최적의 스트리밍 서버는 콘텐츠 데이터를 스트리밍하는
분산 멀티미디어 스트리밍 서비스 제공 시스템.
A streaming module including streaming servers; And
A content data management server for selecting an optimal streaming server among the streaming servers based on at least one of a usage rate of physical resources and a streaming transmission throughput
Lt; / RTI >
The streaming server may stream the content data
Distributed Multimedia Streaming Service Providing System.
제9항에 있어서,
상기 콘텐츠 데이터 관리 서버는,
상기 스트리밍 서버들 각각의 물리적 자원의 사용률을 계산하고, 상기 스트리밍 서버들 각각의 스트리밍 전송 처리량을 계산하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
10. The method of claim 9,
The content data management server comprises:
A usage rate of physical resources of each of the streaming servers, and calculates a streaming transmission throughput of each of the streaming servers.
제9항에 있어서,
상기 콘텐츠 데이터 관리 서버는,
상기 스트리밍 서버들 중에서 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
10. The method of claim 9,
The content data management server comprises:
And selects a streaming server having the lowest usage rate of the physical resources among the streaming servers as the optimal streaming server.
제11항에 있어서,
상기 콘텐츠 데이터 관리 서버는,
상기 물리적 자원의 사용률이 최저값인 스트리밍 서버가 둘 이상일 때, 상기 스트리밍 서버들 중에서 상기 스트리밍 전송 처리량이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
12. The method of claim 11,
The content data management server comprises:
And selects a streaming server having the lowest streaming transmission throughput as the optimal streaming server among the streaming servers when there are two or more streaming servers having the lowest usage rate of physical resources.
제10항에 있어서,
상기 콘텐츠 데이터 관리 서버는,
CPU 사용률과 RAM 사용률에 기초하여 상기 물리적 자원의 사용률을 계산하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
11. The method of claim 10,
The content data management server comprises:
Wherein the usage rate of the physical resource is calculated based on a CPU usage rate and a RAM usage rate.
제10항에 있어서,
상기 콘텐츠 데이터 관리 서버는,
현재 스트리밍 전송 처리량과 이전 스트리밍 전송 처리량에 기초하여 상기 스트리밍 전송 처리량을 계산하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
11. The method of claim 10,
The content data management server comprises:
And calculates the streaming transmission throughput based on a current streaming transmission throughput and a previous streaming transmission throughput.
제14항에 있어서,
상기 현재 스트리밍 전송 처리량은 스트리밍 서비스를 시작한 이후부터 총 처리량인 분산 멀티미디어 스트리밍 서비스 제공 시스템.
15. The method of claim 14,
Wherein the current streaming transmission throughput is a total throughput since the start of the streaming service.
제14항에 있어서,
상기 이전 스트리밍 전송 처리량은 상기 현재 스트리밍 전송 처리량을 측정하는 포인트의 1초 전까지의 총 처리량인 분산 멀티미디어 스트리밍 서비스 제공 시스템.
15. The method of claim 14,
Wherein the previous streaming transmission throughput is a total throughput up to one second before the point at which the current streaming transmission throughput is measured.
KR1020140166888A 2014-11-26 2014-11-26 Hadoop-based system for providing distributed multimedia streaming service and method thereof KR20160063182A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140166888A KR20160063182A (en) 2014-11-26 2014-11-26 Hadoop-based system for providing distributed multimedia streaming service and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140166888A KR20160063182A (en) 2014-11-26 2014-11-26 Hadoop-based system for providing distributed multimedia streaming service and method thereof

Publications (1)

Publication Number Publication Date
KR20160063182A true KR20160063182A (en) 2016-06-03

Family

ID=56192415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140166888A KR20160063182A (en) 2014-11-26 2014-11-26 Hadoop-based system for providing distributed multimedia streaming service and method thereof

Country Status (1)

Country Link
KR (1) KR20160063182A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021215835A1 (en) * 2020-04-24 2021-10-28 주식회사 잼픽 Artificial intelligence distributed storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021215835A1 (en) * 2020-04-24 2021-10-28 주식회사 잼픽 Artificial intelligence distributed storage system

Similar Documents

Publication Publication Date Title
US10367872B2 (en) Cloud-based video delivery
US10291673B2 (en) Transcoding method and system, and distributed file apparatus
EP3965404B1 (en) Distributed video packaging system
US20230254357A1 (en) Fast encoding of live streaming media content
US10924542B2 (en) Content delivery system
Ma et al. Dynamic scheduling on video transcoding for MPEG DASH in the cloud environment
US11425178B1 (en) Streaming playlist including future encoded segments
US11089076B1 (en) Automated detection of capacity for video streaming origin server
CN102202061B (en) Client-server session parallelization
KR20140111336A (en) Multiple media devices through a gateway server or services to access cloud computing service storage
US10313412B1 (en) Latency reduction for streaming content replacement
US10412016B2 (en) Streaming information based on available bandwidth
Kim et al. CloudDMSS: robust Hadoop-based multimedia streaming service architecture for a cloud computing environment
Gao et al. Morph: A fast and scalable cloud transcoding system
US10681398B1 (en) Video encoding based on viewer feedback
KR101523143B1 (en) Hadoop-based system for providing distributed multimedia streaming service for cloud computing environment and method therof
US9607002B2 (en) File retrieval from multiple storage locations
KR20160063182A (en) Hadoop-based system for providing distributed multimedia streaming service and method thereof
US20150113047A1 (en) Rules-based multipoint routing of real-time information using client-server architecture
KR101678743B1 (en) Hadoop-based system for providing distributed multimedia streaming service and operating the same
KR101868149B1 (en) Method and apparatus and its system for grid file system distribution based real time transactional transcoding in the cloud environment
Hoecker et al. An on-demand scaling stereoscopic 3D video streaming service in the cloud
Moon et al. On the impact of layer-splitting for cloud-based SVC streaming
US11765418B1 (en) Seamless transcode server switching
Son et al. HVTS: Hadoop-based video transcoding system for media services

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment