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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000005540 biological transmission Effects 0.000 claims abstract description 46
- 238000013523 data management Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 abstract description 19
- 238000004422 calculation algorithm Methods 0.000 description 30
- 238000007726 management method Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 210000003813 thumb Anatomy 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding 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
Description
아래 실시예들은 분산 멀티미디어 스트리밍 서비스 제공 시스템 및 스트리밍 서비스 제공 방법에 관한 것이다.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
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터를 수신하고, 수신한 콘텐츠 데이터를 설정된 포맷으로 트랜스코딩하고, 단말 장치(310)로 트랜스코드된 콘텐츠 데이터를 전송할 수 있다. The distributed multimedia streaming
말하자면, 단말 장치(310)의 사용자는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)을 통해 설정된 포맷으로 트랜스코드된 콘텐츠 데이터에 대한 스트리밍 서비스를 제공받을 수 있다. 단말 장치(310)의 사용자는 스트리밍 서비스를 제공받을 콘텐츠 데이터를 선택할 수 있고 트랜스코드되는 콘텐츠 데이터의 포맷을 설정할 수 있다. 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)이 단말 장치(310)에게 제공하는 스트리밍 서비스는 멀티스크린 서비스일 수 있다.That is to say, the user of the
콘텐츠 데이터는 미디어 데이터로서 예를 들어, 영화, 뮤직 미디오 또는 애니매이션 등과 같은 영상 콘텐츠 또는 음성 콘텐츠일 수 있다.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
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하나 이상의 단말 장치들에게 콘텐츠 데이터의 스트리밍 서비스를 제공할 수 있다. 예를 들어, 단말 장치(310)는 하나 이상의 이기종(heterogeneous) 단말 장치들일 수 있다.The distributed multimedia streaming
콘텐츠 데이터는 트랜스코딩 하둡 클러스터에 분산되어 저장될 수 있다.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
스트리밍 하둡 클러스터는 하나 이상의 스트리밍 서버들을 포함할 수 있다. 트랜스코드된 콘텐츠 데이터는 하나 이상의 스트리밍 서버들에 의해 보장된 서비스 품질(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
콘텐츠 지연(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
앞서 도 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
도 3을 참조하여 전술된 것처럼, 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하둡 클러스터 상에서 운영될 수 있도록 설계될 수 있다.As described above with reference to FIG. 3, the distributed multimedia streaming
도 4를 참조하면, 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터 관리 서버(410), 트랜스코딩 모듈(420) 및 스트리밍 모듈(430)을 포함할 수 있다.Referring to FIG. 4, a distributed multimedia streaming
예를 들어, 콘텐츠 데이터 관리 서버(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
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터의 저장을 위한 하둡 분산 파일 시스템(Hadoop Distributed file system; HDFS) 및 분산된 콘텐츠 데이터의 병렬 처리를 위한 맵리듀스(MapReduce)를 통합함으로써 트랜스코딩 수행 시간을 줄일 수 있다.The distributed multimedia streaming
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 딜레이 및 트래픽 병목 현상을 줄이기 위해 스트리밍 작업 분산 알고리즘을 사용하여 스트리밍 작업을 제어할 수 있다.The distributed multimedia streaming
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 전반적인 성능 개선을 위해 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 물리적인 클러스터 당 듀얼-하둡 클러스터링(dual Hadoop clustering)이 사용될 수 있다. 듀얼-하둡 클러스터링이 사용됨으로써 트랜스코딩 및 스트리밍 간의 작업 태스크(job task)가 분산될 수 있다.In order to improve the overall performance of the distributed multimedia streaming
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하둡 정책들에 대한 고수를 통해 효율적인 콘텐츠 데이트의 분산 및 개선된 확장성(improved scalability)을 제공할 수 있다.The distributed multimedia streaming
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 스트리밍 서비스 배치 프로세스(streaming service deployment process)에 대한 순차적인(sequential) 태스크의 워크플로우(workflow)를 자동으로 실시할 수 있다.The distributed multimedia streaming
콘텐츠 데이터 관리 서버(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
콘텐츠 데이터 관리 서버(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
예를 들어, 웹 기반의 대쉬보드 모듈(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
또한, 웹 기반의 대쉬보드 모듈(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
관리 서버(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
스트리밍 작업 분산은 라운드 로빈(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
트랜스코딩 모듈(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
또한, 트랜스코딩 모듈(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
스트리밍 모듈(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
기존의 스트리밍 서비스 제공 시스템은 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)과는 달리 콘텐츠 데이터의 복제 및 자동 복원 정책들을 고려 및/또는 도입하고 있지 않기 때문에, 스트리밍 서비스 제공 시스템의 신뢰성 및 끊김 없는 스트리밍 서비스의 제공이 보장되지 않을 수 있다. 또한, 기존의 스트리밍 서비스 제공 시스템은 집중적인 컴퓨팅 자원을 요구하는 트랜스코딩 작업 및 스트리밍 작업이 동시에 수행되는 경우, 사용자에게 제공되는 스트리밍 서비스의 품질이 보장되지 않을 수 있다.Unlike the distributed multimedia streaming
앞서 도 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).
또한, sttn는 아래의 수학식 2에 의해서 계산될 수 있다.
Further, stt n can be calculated by the following equation (2).
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
또한, 분산 멀티미디어 스트리밍 서브 제공 시스템(300)은 스트리밍 서비스들을 제공하는 동안 콘텐츠 지연을 줄이고, 트래픽 병목 현상(traffic bottlenecks)을 방지할 수 있다.
In addition, the distributed multimedia
도 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
도 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
STMM(510)은 도 4의 콘텐츠 데이터 관리 서버(410)의 관리 서버(405)의 일 실시예이고, SSM(520)은 도 4의 스트리밍 모듈(430)의 스트리밍 서버(432)의 일 실시예이고, HSCSM(530)은 도 4의 스트리밍 모듈(430)의 콘텐츠 스토리지 서버의 일 실시예일 수 있다.The
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 클라우드 컴퓨팅 클러스터에서 실행되는 14개의 노드들을 포함할 수 있다. STMM(510)은 1개의 노드를 포함하고, SSM(520)은 3개의 노드를 포함하고, HSCSM(530)은 10개의 노드를 포함할 수 있다.The distributed multimedia streaming
도 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.
SSM(520)은 3개의 노드들은 MPEG4 비디오 포맷으로 트랜스코드된 콘텐츠를 스트리밍하기 위해 NginX에서 실행되는 스트리밍 서버들일 수 있다. HSCSM(530)은 10개의 노드들은 HDFS에 실행되는 데이터 노드들일 수 있다.The
STMM(510)의 1개의 노드는 SRC를 이용하는 스트리밍 태스트 분산을 위한 관리 서버(management server; 405)일 수 있다.One node of
STMM(510)의 관리 서버(405)는 웹 기반의 대쉬보드를 구현하기 위해 JSP를 사용할 수 있고, 콘텐츠 업로드 기능을 위해 swfuload 2.2.0.1 라이브러리들을 사용할 수 있고, SRC 알고리즘을 구현하기 위해 자바 라이브러리 및 배쉬(bash) 쉘 스크립트를 사용할 수 있고, 모니터링 시스템 상태의 그래프를 나타내기 위해 구글 차트 API를 사용할 수 있다.The management server 405 of the
분산 멀티미디어 스트리밍 서비스 제공 시스템(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
STMM(510)은 효율적인 로드 밸런싱에서 중요한 역할을 하는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 주요 구성요소이다. 견고한(robust) 로드 밸런싱은 SRC 알고리즘을 이용하여 스트리밍 태스크 분산(streaming task distribution)을 스케쥴링함으로써 성취될 수 있다.The
첫째, 사용자는 단말 장치(310)를 이용하여 STMM(510)의 웹 대쉬보드(web dashboard)에 액세스함으로써 콘텐츠 데이터의 리스트를 선택할 수 있다.First, a user can select a list of contents data by accessing a web dashboard of the
둘째, 사용자가 특정 콘텐츠 데이터를 선택할 때, STMM(510)은 각 스트리밍 서버의 사용률(usage rate)과 현재 스트리밍 전송 처리량(current streaming transmission throughput)을 계산함으로써 SSM(520)에서 최적의 스트리밍 서버(optimal streaming server)를 결정할 수 있다.Second, when the user selects specific content data, the
마지막으로, 사용자는 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
그러나, 스트리밍 서버들의 수는 특별한 이유 없이 단순히 물리적 자원들(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
각 스트리밍 서버는 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)를 수행할 수 있다.
스트리밍 서비스를 제공할 때, 가장 중요한 요소는 사용자가 데이터 노드 실패 및 콘텐츠 손실을 알아차릴 수 없을 정도로 필요한 원할한 스트리밍 서비스의 유지다. 전통적인 접근법을 사용하는 스트리밍 서비스 시스템은 콘텐츠 복제 관리(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
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 >
상기 선택하는 단계는,
상기 스트리밍 서버들 각각의 물리적 자원의 사용률을 계산하는 단계; 및
상기 스트리밍 서버들 각각의 스트리밍 전송 처리량을 계산하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
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 >
상기 선택하는 단계는,
상기 스트리밍 서버들 중에서 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
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 >
상기 선택하는 단계는,
상기 물리적 자원의 사용률이 최저값인 스트리밍 서버가 둘 이상일 때, 상기 스트리밍 서버들 중에서 상기 스트리밍 전송 처리량이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 단계
를 더 포함하는 콘텐츠 데이터 스트리밍 방법.
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:
상기 물리적 자원의 사용률을 계산하는 단계는,
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 >
상기 스트리밍 전송 처리량을 계산하는 단계는,
현재 스트리밍 전송 처리량과 이전 스트리밍 전송 처리량에 기초하여 상기 스트리밍 전송 처리량을 계산하는 단계
를 포함하는 콘텐츠 데이터 스트리밍 방법.
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 >
상기 현재 스트리밍 전송 처리량은 스트리밍 서비스를 시작한 이후부터 총 처리량인 콘텐츠 데이터 스트리밍 방법.
The method according to claim 6,
Wherein the current streaming transmission throughput is a total throughput since starting the streaming service.
상기 이전 스트리밍 전송 처리량은 상기 현재 스트리밍 전송 처리량을 측정하는 포인트의 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.
상기 콘텐츠 데이터 관리 서버는,
상기 스트리밍 서버들 각각의 물리적 자원의 사용률을 계산하고, 상기 스트리밍 서버들 각각의 스트리밍 전송 처리량을 계산하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
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.
상기 콘텐츠 데이터 관리 서버는,
상기 스트리밍 서버들 중에서 상기 물리적 자원의 사용률이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
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.
상기 콘텐츠 데이터 관리 서버는,
상기 물리적 자원의 사용률이 최저값인 스트리밍 서버가 둘 이상일 때, 상기 스트리밍 서버들 중에서 상기 스트리밍 전송 처리량이 최저값인 스트리밍 서버를 상기 최적의 스트리밍 서버로 선택하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
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.
상기 콘텐츠 데이터 관리 서버는,
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.
상기 콘텐츠 데이터 관리 서버는,
현재 스트리밍 전송 처리량과 이전 스트리밍 전송 처리량에 기초하여 상기 스트리밍 전송 처리량을 계산하는 분산 멀티미디어 스트리밍 서비스 제공 시스템.
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.
상기 현재 스트리밍 전송 처리량은 스트리밍 서비스를 시작한 이후부터 총 처리량인 분산 멀티미디어 스트리밍 서비스 제공 시스템.
15. The method of claim 14,
Wherein the current streaming transmission throughput is a total throughput since the start of the streaming service.
상기 이전 스트리밍 전송 처리량은 상기 현재 스트리밍 전송 처리량을 측정하는 포인트의 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021215835A1 (en) * | 2020-04-24 | 2021-10-28 | 주식회사 잼픽 | Artificial intelligence distributed storage system |
-
2014
- 2014-11-26 KR KR1020140166888A patent/KR20160063182A/en active Search and Examination
Cited By (1)
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 |