












아래의 설명은 사용자에의 콘텐츠 데이터에 대한 스트리밍 서비스의 제공과 관련되며, 특히, 콘텐츠 데이터의 트랜스코딩 작업 및 콘텐츠 데이터의 스트리밍 작업을 관리하는 콘텐츠 데이터 관리 서버를 통한 사용자에의 콘텐츠 데이터에 대한 스트리밍 서비스의 제공과 관련된다.The following description relates to provision of a streaming service to content data to a user, and particularly to streaming content data to a user via a content data management server managing a transcoding operation of the content data and a streaming operation of the content data Service provision.
사용자에게 멀티미디어 콘텐츠 데이터가 제공되기 위해서는, 콘텐츠 데이터는 사용자의 단말 장치 상에서 사용될 수 있도록 트랜스코드되어야 한다. 트랜스코드된 콘텐츠 데이터는 예컨대, 스트리밍을 통해 사용자의 단말 장치로 전송될 수 있다.In order for the user to be provided with the multimedia content data, the content data must be transcoded so that it can be used on the user's terminal device. The transcoded content data can be transmitted to the user's terminal device through, for example, streaming.
기존의 멀티미디어 콘텐츠 데이터 제공 시스템은 콘텐츠 데이터가 대용량인 경우, 콘텐츠 데이터의 트랜스코딩 작업 및 콘텐츠 데이터의 스트리밍 작업에 상당한 시간이 소요됨에 따라, 사용자에게 콘텐츠 데이터에 대한 끊김 없는 스트리밍 서비스를 제공하는데 어려움이 있다.In the conventional multimedia contents data providing system, when the content data has a large capacity, it takes a considerable time to transcoding the content data and streaming the content data, and thus it is difficult to provide seamless streaming service for the content data to the user have.
또한, 기존의 멀티미디어 콘텐츠 데이터 제공 시스템은 콘텐츠 데이터의 손상 또는 콘텐츠 데이터가 저장된 데이터 노드의 장애가 발생하는 경우, 발생된 데이터의 손상 또는 데이터 노드의 장애에 효과적으로 대처할 수 없다.In addition, the existing multimedia contents data providing system can not effectively cope with the damage of the generated data or the obstacle of the data node when the content data is damaged or the data node in which the content data is stored has a failure.
따라서, 사용자에게 콘텐츠 데이터에 대해 끊김없는 스트리밍 서비스를 제공하기 위해 콘텐츠 데이터의 트랜스코딩 작업들 및 콘텐츠 데이터의 스트리밍 작업들을 효율적으로 관리하고, 콘텐츠 데이터의 손상 또는 콘텐츠 데이터가 저장된 데이터 노드의 장애에 효과적으로 대처할 할 수 있는 방법이 요구된다.
Accordingly, it is an object of the present invention to efficiently manage transcoding jobs of content data and streaming operations of content data in order to provide seamless streaming service for content data to a user, and to effectively prevent damage to content data, There is a need for a way to cope.
한국공개특허 제10-2013-0108882호(공개일 2013년 10월 07일)에는 서버의 동작 방법에 있어서, 제1 단말기로 적어도 하나의 동영상 파일을 송신하기 위하여 제1 트랜스코딩을 수행하는 과정, 제2 단말기로부터 적어도 하나의 동영상 파일을 요청받아, 상기 제2 단말기로 상기 요청받은 동영상 파일을 송신하기 위하여 제2 트랜스코딩을 수행하는 과정 및 상기 제1 트랜스코딩 및 제2 트랜스코딩의 출력 프레임 레이트를 모니터링하여, 상기 출력 프레임 레이트를 컨트롤하는 과정을 포함하는 복수의 트랜스코딩 수행시 로드 밸런싱을 위한 스케줄링 방법이 개시되어 있다.Korean Patent Publication No. 10-2013-0108882 (published on October 07, 2013) discloses a method of operating a server, comprising the steps of: performing first transcoding to transmit at least one video file to a first terminal; Performing a second transcoding in response to a request for at least one video file from a second terminal and transmitting the requested video file to the second terminal and performing a second transcoding to transmit the requested video file to the second terminal, And controlling the output frame rate by using a plurality of transcoding methods.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.The information described above is for illustrative purposes only and may include content that does not form part of the prior art and may not include what the prior art has to offer to the ordinary artisan.
일 실시예는 트랜스코딩 모듈에 의한 콘텐츠 데이터의 트랜스코딩 작업들 및 스트리밍 모듈에 의한 트랜스코드된 콘텐츠 데이터의 스트리밍 작업들을 관리 및/또는 제어하는 콘텐츠 데이터 관리 서버의 운영 방법이 제공된다.One embodiment provides a method of operating a content data management server for managing and / or controlling transcoding operations of content data by a transcoding module and streaming operations of transcoded content data by a streaming module.
일 실시예는 콘텐츠 데이터 관리 서버에 의해 제어되는 트랜스코드된 콘텐츠 데이터의 스트리밍 방법을 제공할 수 있다.One embodiment may provide a method of streaming transcoded content data controlled by a content data management server.
일 실시예는 콘텐츠 데이터 관리 서버에 의해 제어되는 콘텐츠 데이터의 트랜스코딩 방법을 제공할 수 있다.One embodiment may provide a method of transcoding content data that is controlled by a content data management server.
일 측면에 있어서, 콘텐츠 데이터를 수신하는 단계, 트랜스코딩 모듈로 상기 수신한 콘텐츠 데이터를 전송하는 단계, 상기 트랜스코딩 모듈에게 상기 전송한 콘텐츠 데이터의 설정된 포맷으로의 트랜스코딩을 요청하는 단계 및 상기 트랜스코딩 모듈에게 상기 요청에 기반하여 트랜스코드된 콘텐츠 데이터의 스트리밍 모듈로의 전송을 요청하는 단계를 포함하는, 콘텐츠 데이터 관리 서버의 운영 방법이 제공된다.In one aspect, the method includes receiving content data, transmitting the received content data to a transcoding module, requesting the transcoding module to transcode the transmitted content data in a predetermined format, And requesting the coding module to transmit the transcoded content data to the streaming module based on the request.
상기 콘텐츠 데이터 관리 서버의 운영 방법은 상기 트랜스코딩 모듈에게 상기 트랜스코드된 콘텐츠 데이터로부터 하나 이상의 썸내일 이미지들의 추출을 요청하는 단계를 더 포함할 수 있다.The operating method of the content data management server may further include requesting the transcoding module to extract one or more thumbnail images from the transcoded content data.
상기 콘텐츠 데이터 관리 서버의 운영 방법은 상기 트랜스코딩 모듈에게 상기 추출된 하나 이상의 썸내일 이미지들의 스트리밍 모듈로의 전송을 요청하는 단계를 더 포함할 수 있다.The operation method of the content data management server may further include requesting the transcoding module to transmit the extracted one or more thumbnail images to the streaming module.
상기 콘텐츠 데이터 관리 서버의 운영 방법은 상기 콘텐츠 데이터에 대한 상기 트랜스코딩의 옵션들과 관련된 정보를 수신하는 단계를 더 포함할 수 있다.The operating method of the content data management server may further include receiving information related to the transcoding options for the content data.
상기 트랜스코딩을 요청하는 단계는 상기 수신한 옵션들과 관련된 정보에 기반하여 상기 트랜스코딩 모듈에게 상기 전송한 콘텐츠 데이터에 대한 트랜스코딩을 요청할 수 있다.The requesting of the transcoding may request the transcoding module to transcode the transmitted content data based on the information associated with the received options.
상기 콘텐츠 데이터 관리 서버의 운영 방법은 상기 스트리밍 모듈로부터 상기 콘텐츠 데이터의 식별과 관련된 정보를 수신하는 단계를 더 포함할 수 있다.The operating method of the content data management server may further include receiving information related to the identification of the content data from the streaming module.
상기 콘텐츠 데이터 관리 서버의 운영 방법은 상기 식별과 관련된 정보에 기반하여 상기 스트리밍 모듈에게 상기 스트리밍 모듈이 상기 트랜스코딩 모듈로부터 수신한 상기 트랜스코드된 콘텐츠 데이터의 단말 장치로의 스트리밍을 요청하는 단계를 더 포함할 수 있다.Wherein the operation method of the content data management server further includes the step of requesting the streaming module to stream the transcoded content data received from the transcoding module to the terminal device based on the information related to the identification .
상기 스트리밍을 요청하는 단계는 상기 스트리밍 모듈에게 상기 스트리밍 모듈의 하나 이상의 스트리밍 서버들의 가용성과 관련된 정보를 요청하는 단계를 포함할 수 있다.The step of requesting streaming may include requesting the streaming module for information related to the availability of one or more streaming servers of the streaming module.
상기 스트리밍을 요청하는 단계는 상기 스트리밍 모듈로부터 상기 가용성과 관련된 정보를 수신하는 단계를 포함할 수 있다.The step of requesting streaming may comprise receiving information relating to the availability from the streaming module.
상기 스트리밍을 요청하는 단계는 상기 스트리밍 모듈에게 상기 하나 이상의 스트리밍 서버들 중 상기 수신한 가용성과 관련된 정보에 기반하여 선택된 스트리밍 서버에 의한 상기 트랜스코딩 모듈로부터 수신된 상기 트랜스코드된 콘텐츠 데이터의 상기 단말 장치로의 스트리밍을 요청하는 단계를 포함할 수 있다.Wherein the step of requesting the streaming comprises the step of providing the streaming module with information about the received one of the one or more streaming servers to the terminal device of the transcoded content data received from the transcoding module by the streaming server selected based on the information related to the received availability of the one or more streaming servers. And requesting streaming to the server.
다른 일 측면에 있어서, 트랜스코드된 콘텐츠 데이터를 수신하는 단계, 수신한 콘텐츠 데이터를 설정된 크기의 하나 이상의 블록들로 분할하는 단계, 상기 분할된 하나 이상의 블록들을 하나 이상의 데이터 노드들로 분산시키는 단계 및 단말 장치로 상기 하나 이상의 데이터 노드들로 분산된 상기 하나 이상의 블록들을 하나 이상의 스트리밍 서버들을 통해 스트리밍을 통해 전송하는 단계를 포함하는, 콘텐츠 데이터 스트리밍 방법이 제공된다.In another aspect, there is provided a method comprising: receiving transcoded content data; dividing received content data into one or more blocks of a predetermined size; distributing the divided one or more blocks to one or more data nodes; And transmitting the one or more blocks distributed to the terminal device to the one or more data nodes via streaming through one or more streaming servers.
상기 콘텐츠 데이터 스트리밍 방법은 상기 분할된 하나 이상의 블록들을 설정된 개수만큼 복제함으로써 복제 블록들을 생성하는 단계를 더 포함할 수 있다.The content data streaming method may further include generating duplicate blocks by replicating the divided one or more blocks by a predetermined number.
상기 콘텐츠 데이터 스트리밍 방법은 상기 분할된 하나 이상의 블록들 중 데이터가 손실된 손실 블록이 발생하거나 상기 하나 이상의 데이터 노드들의 장애가 발생하면 상기 복제 블록들을 사용하여 상기 손실 블록을 복원하거나 상기 장애로부터 상기 하나 이상의 데이터 노드들을 복구하는 단계를 더 포함할 수 있다.Wherein the content data streaming method comprises the steps of restoring the lost block using the replica blocks when a lost block in which the data of the one or more divided blocks is lost or a failure of the one or more data nodes occurs, And recovering the data nodes.
상기 콘텐츠 데이터 스트리밍 방법은 상기 트랜스코드된 콘텐츠 데이터와 관련된 하나 이상의 썸내일 이미지를 수신하는 단계를 더 포함할 수 있다.The content data streaming method may further comprise receiving one or more thumbnail images associated with the transcoded content data.
상기 콘텐츠 데이터 스트리밍 방법은 콘텐츠 데이터 관리 서버로 상기 콘텐츠 데이터의 식별과 관련된 정보를 전송하는 단계를 더 포함할 수 있다.The content data streaming method may further include transmitting information related to the identification of the content data to the content data management server.
상기 콘텐츠 데이터 스트리밍 방법은 콘텐츠 데이터 관리 서버로부터 상기 하나 이상의 스트리밍 서버들의 가용성과 관련된 정보에 대한 요청을 수신하는 단계를 더 포함할 수 있다.The content data streaming method may further comprise receiving from the content data management server a request for information related to the availability of the one or more streaming servers.
상기 콘텐츠 데이터 스트리밍 방법은 상기 콘텐츠 데이터 관리 서버로 상기 가용성과 관련된 정보를 전송하는 단계를 더 포함할 수 있다.The content data streaming method may further include transmitting information related to the availability to the content data management server.
상기 스트리밍하는 단계는 상기 하나 이상의 데이터 노드들로 분산된 상기 하나 이상의 블록들을, 상기 하나 이상의 스트리밍 서버들 중 상기 가용성과 관련된 정보에 기반하여 상기 콘텐츠 데이터 관리 서버에 의해 선택된 스트리밍 서버를 통해, 단말 장치로 스트리밍을 통해 전송할 수 있다.Wherein the streaming comprises transmitting the one or more blocks distributed to the one or more data nodes via a streaming server selected by the content data management server based on information related to the availability among the one or more streaming servers, Lt; RTI ID = 0.0 > streaming. ≪ / RTI >
또 다른 일 측면에 있어서, 콘텐츠 데이터 관리 서버로부터 콘텐츠 데이터를 수신하는 단계, 상기 콘텐츠 데이터를 설정된 크기의 하나 이상의 블록들로 분할하는 단계, 상기 분할된 하나 이상의 블록들을 하나 이상의 데이터 노드들로 분산시키는 단계, 상기 하나 이상의 데이터 노드들로 분산된 상기 하나 이상의 블록들을 설정된 포맷으로 트랜스코딩하는 단계 및 상기 트랜스코드된 하나 이상의 블록들을 병합함으로써 트랜스코드된 콘텐츠 데이터를 생성하는 단계를 포함하는, 콘텐츠 데이터 트랜스코딩 방법이 제공된다.Receiving the content data from the content data management server; dividing the content data into one or more blocks of a predetermined size; distributing the divided one or more blocks to one or more data nodes , Transcoding the one or more blocks distributed to the one or more data nodes in a predetermined format, and generating transcoded content data by merging the one or more transcoded blocks. A coding method is provided.
상기 설정된 포맷은 상기 콘텐츠 데이터 관리 서버의 사용자 또는 상기 콘텐츠 데이터의 사용자의 요청에 기반하여 결정될 수 있다.The set format may be determined based on a request of a user of the content data management server or a user of the content data.
상기 콘텐츠 데이터 트랜스코딩 방법은 상기 트랜스코드된 콘텐츠 데이터로부터 하나 이상의 썸내일 이미지들을 추출하는 단계를 더 포함할 수 있다.The content data transcoding method may further include extracting one or more thumbnail images from the transcoded content data.
상기 수신한 콘텐츠 데이터 및 상기 트랜스코드된 콘텐츠 데이터는 트랜스코딩 모듈의 하둡 파일 시스템(Hadoop File System; HDFS)에 저장될 수 있다.The received content data and the transcoded content data may be stored in a Hadoop file system (HDFS) of the transcoding module.
상기 콘텐츠 데이터 트랜스코딩 방법은 상기 트랜스코드된 콘텐츠 데이터를 출력하는 단계를 더 포함할 수 있다.The content data transcoding method may further include outputting the transcoded content data.
상기 콘텐츠 데이터 트랜스코딩 방법은 상기 HDFS에 저장된 상기 콘텐츠 데이터 및 상기 트랜스코드된 콘텐츠 데이터를 제거하는 단계를 더 포함할 수 있다.The content data transcoding method may further include removing the content data stored in the HDFS and the transcoded content data.
상기 트랜스코딩하는 단계는 상기 하나 이상의 데이터 노드들로 분산된 상기 하나 이상의 블록들을 디코딩하는 단계를 포함할 수 있다.The transcoding may include decoding the one or more blocks distributed to the one or more data nodes.
상기 트랜스코딩하는 단계는 상기 콘텐츠 데이터의 사용자 또는 상기 트랜스코딩 모듈의 사용자의 요청에 기반하여 상기 디코드된 하나 이상의 블록들의 크기를 변경하는 단계를 포함할 수 있다.The transcoding may include varying the size of the one or more decoded blocks based on a user of the content data or a user of the transcoding module.
상기 트랜스코딩하는 단계는 상기 디코드된 하나 이상의 블록들을 상기 설정된 포맷으로 인코딩하는 단계를 포함할 수 있다.The transcoding may comprise encoding the decoded one or more blocks into the set format.
트랜스코딩 모듈의 콘텐츠 데이터의 트랜스코딩 작업들 및 스트리밍 모듈의 콘텐츠 데이터의 스트리밍 작업들이 콘텐츠 데이터 관리 서버에 의해 효율적으로 관리됨으로써 단말 장치의 사용자에게 끊김 없는 콘텐츠 데이터의 스트리밍 서비스가 제공될 수 있다.The transcoding operations of the content data of the transcoding module and the streaming operations of the content data of the streaming module are efficiently managed by the content data management server, thereby providing a seamless streaming service of the content data to the user of the terminal device.
콘텐츠 데이터의 스트리밍 작업에 콘텐츠 데이터의 복제 및 자동 복원 정책들이 고려됨으로써 단말 장치의 사용자에게 끊김 없는 콘텐츠 데이터의 스트리밍 서비스가 제공될 수 있다.The streaming service of the content data can be provided to the user of the terminal device by considering the duplication and automatic restoration policies of the content data in the streaming work of the content data.
콘텐츠 데이터 관리 서버에 의해 웹 기반의 인터페이스가 제공됨으로써, 사용자는 편리하게 콘텐츠 데이터를 트랜스코딩할 수 있고 콘텐츠 데이터의 스트리밍 서비스를 제공받을 수 있다.By providing a web-based interface by the content data management server, the user can conveniently transcodate the content data and receive the streaming service of the content data.
도 1은 트랜스코딩 시스템의 구조를 나타낸다.
도 2는 미디어 클라우드 및 클라우드 미디어 서비스들 간의 관계를 나타낸다.
도 3은 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.
도 4는 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템의 구조를 나타낸다.
도 5는 일 예에 따른 트랜스코딩 모듈을 나타낸다.
도 6은 일 예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템의 동작 방법을 나타낸다.
도 7은 일 실시예에 따른 콘텐츠 데이터 관리 서버, 트랜스코딩 모듈 및 스트리밍 모듈의 동작 방법을 나타내는 신호 흐름도이다.
도 8은 일 예에 따른 콘텐츠 데이터 관리 서버, 트랜스코딩 모듈 및 스트리밍 모듈의 동작 방법을 나타내는 신호 흐름도이다.
도 9는 일 예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.
도 10은 일 예에 따른 PC 기반의 웹 브라우저에 표시된 트랜스코드된 콘텐츠 데이터의 스트리밍을 위한 웹 기반의 대쉬보드를 나타낸다.
도 11은 일 예에 따른 모바일 기반의 웹 브라우저에 표시된 트랜스코드된 콘텐츠 데이터의 스트리밍을 위한 웹 기반의 대쉬보드를 나타낸다.
도 12는 일 예에 따른 콘텐츠 데이터 관리 서버의, 트랜스코딩 작업들을 관리하기 위한 웹 페이지의 스크린 샷을 나타낸다.
도 13은 일 예에 따른 콘텐츠 데이터 관리 서버의, 클러스터 서버들의 상태를 모니터링하기 위한 웹 페이지의 스크린 샷을 나타낸다.Figure 1 shows the structure of a transcoding system.
 Figure 2 illustrates the relationship between media cloud and cloud media services.
 3 illustrates a distributed multimedia streaming service providing system according to an exemplary embodiment.
 4 illustrates a structure of a system for providing a distributed multimedia streaming service according to an exemplary embodiment of the present invention.
 5 shows a transcoding module according to an example.
 6 illustrates an operation method of a system for providing a distributed multimedia streaming service according to an exemplary embodiment of the present invention.
 7 is a signal flow diagram illustrating a method of operating a content data management server, a transcoding module, and a streaming module according to an embodiment.
 FIG. 8 is a signal flow diagram illustrating a method of operating a content data management server, a transcoding module, and a streaming module according to an example.
 FIG. 9 shows a system for providing a distributed multimedia streaming service according to an example.
 FIG. 10 illustrates a web-based dashboard for streaming transcoded content data displayed on a PC-based web browser according to an example.
 FIG. 11 illustrates a web-based dashboard for streaming transcoded content data displayed on a mobile-based web browser according to an example.
 12 shows a screen shot of a web page for managing transcoding tasks of the content data management server according to an example.
 13 is a screen shot of a web page for monitoring the status of cluster servers in the content data management server according to an example.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
In the following, embodiments will be described in detail with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.
도 1은 트랜스코딩 시스템의 구조를 나타낸다.Figure 1 shows the structure of a transcoding system.
먼저, 클라이언트는 트랜스코딩 서버로부터 트랜스코딩 기능을 요청할 수 있다. 트랜스코딩 서버는 미디어 서버로부터 원본 미디어 데이터를 독출하고, 사용자가 요청한 해상도, 비트 전송률 및 프레임률로 미디어 데이터를 트랜스코딩할 수 있다. 트랜스코딩 서버는 그 다음으로 트랜스코드된 미디어 데이터를 클라이언트로 전송할 수 있다. 도시된 미디어 데이터의 트랜스코딩 방법에 의한 미디어 데이터의 처리는, 미디어 데이터가 높은 해상도 및/또는 용량을 갖는 데이터인 경우, 인터넷 인프라 및 컴퓨팅 자원들에게 큰 부담을 줄 수 있다.First, the client can request a transcoding function from the transcoding server. The transcoding server may read the original media data from the media server, and may transcode the media data to the resolution, bit rate, and frame rate requested by the user. The transcoding server can then transmit the transcoded media data to the client. The processing of media data by the transcoding method of the media data shown can put a heavy burden on the Internet infrastructure and computing resources when the media data is data having a high resolution and / or capacity.
전술된 미디어 데이터는 도 2 내지 도 13을 참조하여 후술될 콘텐츠 데이터에 대응할 수 있다.
The above-described media data may correspond to content data to be described later with reference to Figs.
도 2는 미디어 클라우드 및 클라우드 미디어 서비스들 간의 관계를 나타낸다.Figure 2 illustrates the relationship between media cloud and cloud media services.
도시된 클라우드 미디어 서비스들은 모바일 서비스 제공자(Mobile Service Provider)들에 의해 제공될 수 있다.The illustrated cloud media services may be provided by mobile service providers.
멀티미디어-어웨어(multimedia-aware) 관점은 클라우드가 멀티미디어 어플리케이션들 및 서비스들을 위한 서비스의 품질(Quality of Service; QoS)을 어떻게 제공할 수 있을지에 초점을 맞추고 있다. 클라우드-어웨어(cloud-aware) 멀티미디어 관점은 클라우드 내에서 클라우드-컴퓨팅 자원들을 최대한으로 활용하고 멀티미디어 서비스의 높은 체감 품질(Quality of Experience; QoE)을 얻기 위해 멀티미디어가 콘텐츠 저장, 처리, 어댑테이션(adaptation) 및 렌더링 등을 어떻게 수행할 수 있을지에 초점을 맞추고 있다.
A multimedia-aware view focuses on how the cloud can provide quality of service (QoS) for multimedia applications and services. A cloud-aware multimedia viewpoint is a multimedia content storage, processing, and adaptation that takes full advantage of cloud-computing resources in the cloud and a high quality of experience (QoE) And rendering, and so on.
도 3은 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.3 illustrates a distributed multimedia streaming service providing system according to an exemplary embodiment.
도시된 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 예컨대, 클라우드 기반의 분산 멀티미디어 스트리밍 서비스(Cloud-based Distrbuted Multimedia Streaming Service; CloudDMSS) 제공 시스템일 수 있다.The distributed multimedia streaming
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터를 수신하고, 수신한 콘텐츠 데이터를 설정된 포맷으로 트랜스코딩하고, 단말 장치(310)로 트랜스코드된 콘텐츠 데이터를 전송할 수 있다. 말하자면, 단말 장치(310)의 사용자는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)을 통해, 설정된 포맷으로 트랜스코드된 콘텐츠 데이터에 대한 스트리밍 서비스를 제공받을 수 있다. 단말 장치(310)의 사용자는 스트리밍 서비스를 제공받을 콘텐츠 데이터를 선택할 수 있고 트랜스코드되는 콘텐츠 데이터의 포맷을 설정할 수 있다. 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)이 단말 장치(310)에게 제공하는 스트리밍 서비스는 멀티스크린 서비스일 수 있다.The distributed multimedia streaming
콘텐츠 데이터는 미디어 데이터로서 예컨대, 영화, 뮤직 미디오 또는 애니매이션 등과 같은 영상 콘텐츠 또는 음성 콘텐츠일 수 있다. The content data may be media content such as video content, such as a movie, a music medium, or an animation, or a voice content.
단말 장치(310)는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)을 통해 콘텐츠 데이터의 스트리밍 서비스를 제공받을 수 있는 일체의 기기, 예컨대 개인용 컴퓨터(personal computer), 노트북(notebook), 태블릿 PC 및 스마트폰(smartphone) 등을 포함할 수 있다.The
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하나 이상의 단말 장치들에게 콘텐츠 데이터의 스트리밍 서비스를 제공할 수 있다. 말하자면, 단말 장치(310)는 하나 이상의 단말 장치들일 수 있다.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 via streaming to the
콘텐츠 데이터의 스트리밍에는, 딜레이 및 트래픽 병목 현상의 발생을 방지하기 위해, 스트리밍 서버의 로드를 분산시키는 스트리밍 작업(job) 분산 알고리즘이 사용될 수 있다.For the streaming of the content data, a streaming job distribution algorithm that distributes the load of the streaming server may be used in order to prevent the occurrence of delays and traffic bottlenecks.
분산 멀티미디어 스트리밍 서비스 제공 시스템(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는 일 실시예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템의 구조를 나타낸다.4 illustrates a structure of a system for providing a distributed multimedia streaming service according to an exemplary embodiment of the present invention.
도 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
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 데이터 관리 서버(410), 트랜스코딩 모듈(420) 및 스트리밍 모듈(430)을 포함할 수 있다. 콘텐츠 데이터 관리 서버(410)는 콘텐츠 데이터 관리 모듈로서 예컨대, 클라우드 멀티미디어 관리 모듈(Cloud Multimedia Management Module; CMMM)일 수 있다. 트랜스코딩 모듈(420)은 예컨대, 하둡-기반의 분산 멀티미디어 트랜스코딩 모듈(Hadoop-based Distributed Multimedia Transcoding Module; HadoopDMTM)일 수 있고, 스트리밍 모듈(430)은 예컨대, 하둡-기반의 분산 멀티미디어 스트리밍 모듈(Hadoop-based Distributed Multimedia Streaming Module; HadoopDMSM)일 수 있다.The distributed multimedia streaming
도 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) 및 분산된 콘텐츠 데이터의 병렬 처리를 위한 맵리듀스를 통합함으로써 트랜스코딩 수행 시간을 줄일 수 있다.The distributed multimedia streaming
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 콘텐츠 딜레이 및 트래픽 병목 현상을 줄이기 위해 스트리밍 작업 분산 알고리즘을 사용하여 스트리밍 작업을 제어할 수 있다.The distributed multimedia streaming
전체 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 성능 개선을 위해 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 물리적인 클러스터 당 듀얼-하둡 클러스터링이 사용될 수 있다. 듀얼-하둡 클러스터링이 사용됨으로써 트랜스코딩 및 스트리밍 간의 작업이 분산될 수 있다.Dual-Hadoop clustering per physical cluster of the distributed multimedia streaming
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 하둡 정책들에 대한 고수를 통해 효율적인 콘텐츠 데이트의 분산 및 개선된 확장성을 제공할 수 있다.The distributed multimedia streaming
콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420) 및 스트리밍 모듈(430)을 제어 및/또는 관리할 수 있다. 예컨대, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)이 수행하는 콘텐츠 데이터의 트랜스코딩 작업 및 콘텐츠 데이터의 스트리밍 모듈(430)이 수행하는 스트리밍 작업을 제어 및/또는 관리할 수 있다. 또한, 콘텐츠 데이터 관리 서버(410)는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 리소스 사용 상태를 모니터링할 수 있다.The content
콘텐츠 데이터 관리 서버(410)는 웹 기반의 대쉬보드 모듈(402), 관리 서버(405) 및 데이터 서버(408)를 포함할 수 있다.The content
웹 기반의 대쉬보드 모듈(402)은 스트리밍 모듈(430) 내의 듀얼 하둡 클러스터 및 스트리밍 모듈(430)의 스트리밍 서버들의 사용률을 모니터링하기 위해 필요한 옵션들의 선택을 위한 사용자 인터페이스(User Interface; UI)를 단말 장치(310)에게 제공할 수 있다. 예컨대, 웹 기반의 대쉬보드 모듈(402)은 스트리밍 모듈(430)의 스트리밍 서버의 중앙 처리 장치(Central Processing Unit; CPU), 랜덤 액세스 메모리(Random Access Memory; RAM) 및 스트리밍 전송률 중 적어도 하나와 관련된 옵션의 선택을 위한 UI를 단말 장치(310)에게 제공할 수 있다. 또한, 웹 기반의 대쉬보드 모듈(402)은 콘텐츠 데이터의 해상도, 비트 전송률 및 프레임률 중 적어도 하나를 결정하는 트랜스코딩 작업들에 필요한 옵션들의 선택을 위한 UI를 단말 장치(310)에게 제공할 수 있다.The web-based dashboard module 402 provides a user interface (UI) for selecting options necessary for monitoring the usage rate of streaming servers of the dual Hadoop cluster and 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 알고리즘을 사용함으로써, 스트리밍 작업 분산에 스트리밍 서버(430)의 각 스트리밍 서버의 CPU의 사용률, RAM의 사용률 및 스트리밍 전송률 중 적어도 하나가 고려될 수 있다.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 utilization rate of the CPU of each streaming server of the
관리 서버(405)는 트랜스코딩 모듈(420)의 콘텐츠 데이터의 트랜스코딩, 콘텐츠 데이터의 이전 및 콘텐츠 데이터로부터 썸내일 이미지들의 추출과 관련된 작업을 관리할 수 있고, 스트리밍 모듈(430)의 추출된 썸내일 이미지들 및/또는 트랜스코드된 콘텐츠 데이터와 관련된 정보의 데이터 서버(408)에의 등록과 관련된 작업을 관리할 수 있다.The management server 405 can manage operations related to transcoding of the content data of the
데이터 서버(408)는 콘텐츠 데이터 베이스(Data Base; DB)(412) 및 썸내일 데이터 베이스(Data Base; DB)(414)를 포함할 수 있다. 콘텐츠 DB(412)는 스트리밍 모듈(430)로부터 등록되는 콘텐츠 데이터과 관련된 정보를 저장할 수 있고, 썸내일 DB(414)는 스트리밍 모듈(430)로부터 등록되는 썸내일 이미지들을 저장할 수 있다.The data server 408 may include a content database (DB) 412 and a thumbnail database (DB) 414. The
트랜스코딩 모듈(420)은 콘텐츠 데이터를 설정된 포맷으로 트랜스코딩할 수 있다. 트랜스코딩 모듈(420)은 콘텐츠 데이터를 트랜스코딩할 때, 구성될 수 있는 디스플레이 크기, 코덱 방법 및 컨테이너 포맷 중 적어도 하나에 대한 트랜스코딩과 관련된 옵션을 적용할 수 있다.The
트랜스코딩 모듈(420)은 실시간으로 수집된 작은 크기의 콘텐츠 데이터를 처리하는 것보다 소정의 시간 동안 수집된 크기가 큰 콘텐츠 데이터를 일괄 처리(batch processing)하는 것에 더 적합할 수 있다.The
트랜스코딩 모듈(420)은 하나 이상의 트랜스 코더들(422)을 포함할 수 있다. 트랜스 코더들(422)은 트랜스코딩 하둡 클러스터에 저장된 콘텐츠 데이터를 트랜스코드할 수 있다. 트랜스 코더들(422)은 단말 장치(310)로의 콘텐츠 데이터의 스트리밍 서비스의 제공을 위해 콘텐츠 데이터를 표준 포맷으로 트랜스코딩할 수 있다. 예컨대, 표준 포맷은 MPEG-4 비디오 포맷일 수 있다. 트랜스 코더들(422)은 콘텐츠 데이터를 분할 및 병합할 수 있고, 인코드된 콘텐츠 데이터를 디코딩할 수 있고, 콘텐츠 데이터의 사이즈를 변경할 수 있고, 디코드된 콘텐츠 데이터를 인코딩할 수 있다. 트랜스 코더들(422)은 맵 리듀스 기반의 트랜스 코더들일 수 있다.The
또한, 트랜스코딩 모듈(420)은 다양한 소스(source)들로부터의 콘텐츠 데이터를 저장하기 위한 HDFS(424)를 포함할 수 있다. HDFS(424)는 예컨대, 콘텐츠 데이터의 전송 동안 콘텐츠 데이터의 전송 등의 통신에 소요되는 비용이 과다해 지는 것을 방지하기 위한, 콘텐츠 데이터의 분산된 처리를 위해 사용될 수 있다. 또한, HDFS(424)는 콘텐츠 데이터의 처리에 적합한 큰 청크 사이즈(64MB) 정책 및/또는 사용자-수준 분산 시스템을 위해 사용될 수 있다. HDFS(424)는 로드 밸런싱(load balancing), 결함 감내 및 분산 처리를 위한 맵리듀스에 의해 제공되는 정책들을 통합할 수 있다.The
트랜스코딩 모듈(420)은 콘텐츠 데이터의 병렬 처리를 위해 맵리듀스를 사용할 수 있고, 콘텐츠 데이터의 트랜스코딩을 위해 저글러(xuggler)를 사용할 수 있다.The
트랜스코딩 모듈(420)은 트랜스코딩 하둡 클러스터의 HDFS(424) 상에서 동작하는 네임 노드 및 하나 이상의 데이터 노드들을 포함할 수 있다. 콘텐츠 데이터는 하나 이상의 블록들로 분할되어 데이터 노드들로 분산될 수 있다. 트랜스코딩 모듈(420)은 네임 노드를 관리할 수 있다. 또한, 트랜스코딩 모듈(420)은 분할된 콘텐츠 데이터의 블록들을 관리 및/또는 복제할 수 있고, 콘텐츠 데이터를 스트리밍 모듈(430)로 이전할 수 있다. 스트리밍 모듈(430)로 이전되는 콘텐츠 데이터는 트랜스코드된 콘텐츠 데이터일 수 있다.The
트랜스코딩 모듈(420)은 하나 이상의 도메인으로 구분될 수 있다. 예컨대, 트랜스코딩 모듈(420)는 비디오 데이터 수집 도메인(Video Data Collection Domain; VDCD), HDFS 기반의 분리 및 통합 도메인(HDFS-based Splitting and Merging Domain; HbSMD), 맵리듀스 기반의 트랜스코딩 도메인(MapReduce-based Transcoding Domain; MbTD) 및 클라우드 기반의 인프라스트럭처 서비스 도메인(Cloud-based Infrastructure Service Domain; CbISD)으로 구분될 수 있다.The
트랜스코딩 모듈(420)의 구조 및 기능에 대해서는 후술될 도 5를 참조하여 더 자세하게 설명된다.The structure and function of the
스트리밍 모듈(430)은 단말 장치(310)로 트랜스코딩 모듈(420)에 의해 트랜스코드된 콘텐츠 데이터를 스트리밍을 통해 전송할 수 있다. 스트리밍 모듈(430)은 스트리밍 하둡 클러스터 상에서 동작할 수 있다.The
스트리밍 모듈(430)은 하나 이상의 스트리밍 서버들(432), HDFS(436) 및 장착 가능한 HDFS(434)를 포함할 수 있다. 장착 가능한 HDFS(434)는 HDFS(436)일 수 있다. 스트리밍 서버들(432)은 맵리듀스 기반의 분산(distributed) 스트리밍 서버들일 수 있다.
스트리밍 모듈(430)은 HDFS(436) 상에서 동작하는 하나 이상의 데이터 노드들 및 네임 노드를 포함할 수 있다. 트랜스코드된 콘텐츠 데이터는 하나 이상의 블록들로 분할되어 데이터 노드들로 분산될 수 있다. 스트리밍 모듈(430)은 네임 노드를 관리할 수 있다. 또한, 스트리밍 모듈(430)은 분할된 트랜스코드된 콘텐츠 데이터의 블록들을 관리 및/또는 복제할 수 있다. 예컨대, 스트리밍 모듈(430)은 콘텐츠 데이터를 복제함으로써 데이터 노드의 장애 및/또는 콘텐츠 데이터의 손실 발생 시 콘텐츠 데이터 및 데이터 노드를 복구할 수 있다. 말하자면, 스트리밍 모듈(430)은 지능적인 콘텐츠 데이터 복제 및 복원 정책들을 사용할 수 있다.The
스트리밍 모듈(430)은 트랜스코딩 모듈(420)에 의해 콘텐츠 데이터로부터 추출된 썸내일 이미지들을 콘텐츠 데이터 관리 서버(410)를 통해 단말 장치(310)에게 제공할 수 있다. 단말 장치(310)의 사용자는 웹 기반의 대쉬보드 모듈(402)을 통해 제공되는 썸내일 이미지들에 기반하여 스트리밍 서비스를 제공받고자 하는 콘텐츠 데이터를 식별할 수 있다. 트랜스코딩 모듈(420)로부터 이전된 썸내일 이미지들은 스트리밍 모듈(430)의 데이터 노드 상에 저장될 수 있고, 콘텐츠 데이터 관리 서버(410)의 썸내일 DB(414) 상에 등록됨으로써 썸내일 DB(414)에 저장될 수 있다.The
단말 장치(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는 일 예에 따른 트랜스코딩 모듈을 나타낸다.5 shows a transcoding module according to an example.
도 4를 참조하여 전술된 것처럼 트랜스코딩 모듈(420)은 VDCD(510), HbSMD(530), MbTD(540) 및 CbISD(520)을 포함할 수 있다. CbISD(520)는 HbSMD(530), 및 MbTD(540)를 포함할 수 있다.
도메인들(510 내지 530)의 각각은 물리적으로 구분된 영역 또는 물리적으로 구분되지 않은 영역일 수 있다.Each of the
VDCD(510)는 콘텐츠 데이터를 저장할 수 있다. VDCD(510)가 저장하는 콘텐츠 데이터는 콘텐츠 데이터 관리 서버(410)으로부터 또는 콘텐츠 데이터 제공자로부터 전송될 수 있다. 콘텐츠 데이터 제공자는 예컨대, 소셜 네트워킹 서비스(Social Networking Service; SNS) 제공자, 미디어 공유 서비스 제공자 및 개인 사용자 중 적어도 하나일 수 있다. VDCD(510)에 저장된 콘텐츠 데이터는 인코드된 원본 콘텐츠 데이터 세트(dataset)들일 수 있다. 인코드된 원본 콘텐츠 데이터 세트(dataset)들은 트랜스코딩 하둡 클러스터의 HDFS(424)에 저장된 파일들일 수 있다.
또한, VDCD(510)는 MbTD(540) 내에서의 데이터 콘텐츠의 트랜스코딩을 통해 소기의 포맷의 파일로 전환된 트랜스코드된 콘텐츠 데이터 세트들을 저장할 수 있다. 말하자면, 트랜스코드된 콘텐츠 데이터 세트들 또한 HDFS(424)에 저장될 수 있다.
VDCD(510)에서 인코드된 원본 콘텐츠 데이터 세트들이 수집되는 시간은 콘텐츠 데이터 세트들의 크기 및/또는 콘텐츠 데이터 세트들의 획득 시간에 기반하여 스트리밍 서비스를 제공받을 단말 장치(310)의 사용자 및/또는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자에 의해 설정될 수 있다.The time at which the original content data sets encoded in the
HbSMD(530)는 HDFS(424) 상에서 운영될 수 있다. HbSMD(530)는 VDCD(510)에 수집된 원본 콘텐츠 데이터 세트들을 설정된 크기의 블록들로 분할할 수 있다. 분할된 각 블록의 크기는 스트리밍 서비스를 제공받을 단말 장치(310)의 사용자 및/또는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자에 의해 변경될 수 있다. 예컨대, 분할된 각 블록의 크기는 16MB, 32MB, 64MB, 128MB 또는 256MB일 수 있다.The
HbSMD(530)는 콘텐츠 데이터 세트들의 블록들을 하나 이상의 데이터 노드들로 분산시킬 수 있다.
예컨대, 하둡 분산 정책에 따라, 분산된 블록은 3개의 데이터 노드들에서 복제될 수 있다. 3개의 데이터 노드에서 블록들이 복제됨으로써 전체의 분산 처리 절차가 준수될 수 있고, 데이터 블록의 손실로 인한 시스템 장애 발생 시 복제된 블록들을 사용하여 손실된 데이터 블록이 복구될 수 있다. 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자는 복제되는 블록의 개수를 설정할 수 있다. 예컨대, 복제되는 블록의 개수는 1, 2, 3, 4 또는 5로 설정될 수 있다.For example, in accordance with the Hadoop distribution policy, distributed blocks may be replicated in three data nodes. The blocks in the three data nodes can be copied so that the entire distributed processing procedure can be observed and the lost data blocks can be recovered by using the copied blocks in the event of a system failure due to the loss of the data blocks. The operator of the distributed multimedia streaming
HbSMD(530)는 MbTD(540) 내의 트랜스코더들(422)에 의해 트랜스코드된 블록들을 병합할 수 있다. HbSMD(530)는 트랜스코드된 하나 이상의 블록들을 병합함으로써 트랜스코드된 콘텐츠 데이터를 생성할 수 있다. HbSMD(530)는 트랜스코드된 콘텐츠 데이터를 VDCD(510)로 전송할 수 있다.The
MbTD(540)는 하나 이상의 데이터 노드들로 분산된 콘텐츠 데이터의 블록들을 트랜스코딩할 수 있다. MbTD(540)는 콘텐츠 데이터의 블록들을 트랜스코딩하기 위한 하나 이상의 트랜스코더들(422)을 포함할 수 있다. 예컨대, MbTD(540)는 저글러를 포함하는 하나 이상의 맵리듀스 기반의 분산 트랜스코더들을 사용하여 각 데이터 노드에 분산된 블록들을 설정된 포맷으로 트랜스코딩할 수 있다.The
예컨대, HbSMD(530)의 데이터 노드 n 및 MbTD(540)의 트랜스코더 n은 같은 물리적 장치 내에 위치할 수 있다. 여기서, n은 1 이상의 정수일 수 있다. 트랜스코더는 동일한 물리적 장치 내의 데이터 노드 내의 분산된 블록들을 트랜스코딩할 수 있다.For example, data node n of
콘텐츠 데이터의 블록의 트랜스코딩은 단계들(550-1 내지 550-3)을 포함할 수 있다. 단계(550-1)에서, 트랜스코더는 하나 이상의 데이터 노드들로 분산된 하나 이상의 블록들을 디코딩할 수 있다. 단계(550-2)에서, 트랜스코더는 디코드된 하나 이상의 블록들의 크기를 변경(resize)할 수 있다. 단계(550-2)는 단말 장치의 사용자 및/또는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자(콘텐츠 데이터 관리 서버(410)의 사용자)의 요청에 기반하여 선택적으로 수행될 수 있다. 말하자면, 사용자 및/또는 운영자가 콘텐츠 데이터의 해상도의 변경을 요청하지 않는 경우 단계(550-2)는 생략될 수 있다. 단계(550-3)에서, 트랜스코더는 디코드된 하나 이상의 블록들을 설정된 포맷의 파일로 인코딩할 수 있다. 블록들이 인코드되는 포맷은 단말 장치(310)의 사용자, 콘텐츠 데이터의 제공자 또는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 요청 또는 선택에 기반하여 설정될 수 있다.The transcoding of the block of content data may include steps 550-1 through 550-3. At step 550-1, the transcoder may decode one or more blocks distributed to one or more data nodes. At step 550-2, the transcoder may resize the size of one or more decoded blocks. Step 550-2 may be selectively performed based on a request of a user of the terminal device and / or an operator of the distributed multimedia streaming service providing system 300 (a user of the content data management server 410). That is to say, if the user and / or operator does not request a change in the resolution of the content data, step 550-2 may be omitted. At step 550-3, the transcoder may encode the one or more decoded blocks into a file of a predetermined format. The format in which the blocks are encoded may be set based on an operator request or selection of a user of the
CbISD(520)는 클라우드 컴퓨팅 환경 내에서 콘텐츠 데이터의 저장 및 트랜스코딩을 위한 인프라스트럭처 서비스들을 제공할 수 있다. 예컨대, CbISD(520)는 스토리지 가상화 기법, CPU 가상화 기법 및 네트워크 가상화 기법 중 적어도 하나를 사용하여 통해 콘텐츠 데이터의 저장 및 트랜스코딩을 위한 인프라스트럭처 서비스들을 제공할 수 있다.
CbISD(520)는 트랜스코딩 모듈(420)의 사용자가 콘텐츠 데이터의 트랜스코딩을 위한 시스템을 구축 및/또는 구현하기 위해 논리적인 컴퓨팅 자원들을 요구할 때 가상화된 클러스터 환경을 제공할 수 있다. CbISD(520)는 트랜스코딩 모듈(420)의 사용자가 콘텐츠 데이터의 트랜스코딩을 위한 시스템의 메모리, CPU, 스토리지 및 클러스터의 개수를 선택하는 것을 허용할 수 있다. 또한, CbISD(520)는 는 트랜스코딩 모듈(420)의 사용자에게 HDFS(424) 및 맵리듀스의 설치 및/또는 구성 환경을 제공할 수 있다.
콘텐츠 데이터의 트랜스코딩 방법 및 스트리밍 방법에 대해서는 후술될 도 6 내지 도 9를 참조하여 더 자세하게 설명된다.The transcoding method and the streaming method of the content data will be described in more detail with reference to FIGS. 6 to 9 to be described later.
앞서 도 1 내지 도 4를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described above with reference to Figs. 1 to 4 can be applied as they are, so that a more detailed description will be omitted below.
도 6은 일 예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템의 동작 방법을 나타낸다.6 illustrates an operation method of a system for providing a distributed multimedia streaming service according to an exemplary embodiment of the present invention.
도 6에서는 콘텐츠 데이터의 트랜스코딩 방법 및 콘텐츠 데이터의 분산 스트리밍 방법이 도시되었다.In Fig. 6, a method of transcoding content data and a method of distributed streaming of content data are shown.
도 4를 참조하여 전술된 것처럼, 트랜스코딩 모듈(420)은 HDFS(424)에 저장된 트랜스코드된 컨텐츠 데이터를 스트리밍 모듈(430)의 HDFS(436)로 이전할 수 있다. 또한, 트랜스코딩 모듈(420)은 트랜스코드된 콘텐츠로부터 썸내일 이미지들을 추출할 수 있고, 추출된 썸내일 이미지들을 스트리밍 모듈(430)로 전송할 수 있다.The
콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)이 수행하는 콘텐츠 데이터의 트랜스코딩과 관련된 작업들을 스케줄링할 수 있다.The content
트랜스코딩 모듈(420)은 콘텐츠 데이터를 하나 이상의 블록들로 분할하고, 분할된 블록들을 하나 이상의 데이터 노드들로 분산시키고, 트랜스코딩 모듈(420)의 트랜스 코더들(422)은 데이터 노드들로 분산된 블록들을 트랜스코딩할 수 있다. 트랜스코딩 모듈(420)은 트랜스코드된 블록들을 병합함으로써 트랜스코드된 콘텐츠 데이터를 생성할 수 있다.The
또한, 트랜스코딩 모듈(420)은 콘텐츠 데이터로부터 하나 이상의 썸내일 이미지들을 추출할 수 있다. 예컨대, 썸내일 이미지들은 트랜스코딩 모듈(420)의 썸내일 이미지 추출기(610)에 의해 콘텐츠 데이터로부터 추출될 수 있다.In addition, the
트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들은 스트리밍 모듈(430)로 이전될 수 있다. 예컨대, 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들은 트랜스코딩 모듈(420)의 콘텐츠 이전기(620)를 통해 스트리밍 모듈(430)로 이전될 수 있다. 스트리밍 모듈(430)로 이전되는 트랜스코드된 콘텐츠 데이터는 트랜스코드된 블록들일 수 있다.The transcoded content data and / or extracted thumbnail images may be migrated to the
스트리밍 모듈(430)은 이전된 콘텐츠 데이터와 관련된 정보를 콘텐츠 데이터 관리 서버(410)의 콘텐츠 DB(412)에 등록할 수 있고, 이전된 썸내일 이미지들을 썸내일 DB(414)에 등록할 수 있다.The
스트리밍 모듈(430)은 하나 이상의 스트리밍 서버들(432)을 사용하여 트랜스코드된 콘텐츠 데이터를 스트리밍을 통해 단말 장치(310)로 전송할 수 있다.The
스트리밍 서버들(432)이 수행하는 스트리밍과 관련된 작업들은 콘텐츠 데이터 관리 서버(410)에 의해 제어 및/또는 관리될 수 있다. 예컨대, 콘텐츠 데이터 관리 서버(410)는 SRC 알고리즘을 사용하여 스트리밍과 관련된 작업들을 관리할 수 있다.Operations related to the streaming performed by the streaming
앞서 도 1 내지 도 5를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described above with reference to Figs. 1 to 5 may be applied as they are, so that a more detailed description will be omitted below.
도 7은 일 실시예에 따른 콘텐츠 데이터 관리 서버, 트랜스코딩 모듈 및 스트리밍 모듈의 동작 방법을 나타내는 신호 흐름도이다.7 is a signal flow diagram illustrating a method of operating a content data management server, a transcoding module, and a streaming module according to an embodiment.
단계(705)에서, 콘텐츠 데이터 관리 서버(410)는 콘텐츠 데이터를 수신할 수 있다. 콘텐츠 데이터는 예컨대, SNS 제공자, 미디어 공유 서비스 제공자 및 개인 사용자 중 적어도 하나의 콘텐츠 데이터 제공자로부터 전송될 수 있다. 또는, 수신한 콘텐츠 데이터는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터 제공자에 의해 업로드된 콘텐츠 데이터일 수 있다. 예컨대, 운영자 또는 콘텐츠 데이터 제공자는 콘텐츠 데이터를 업로드하기 위해 콘텐츠 데이터 관리 서버(410)의 웹 기반의 대쉬보드 모듈(402)에 의해 제공되는 UI를 사용하여 콘텐츠 데이터를 업로드할 수 있다.In step 705, the content
콘텐츠 데이터 관리 서버(410)는 하나 이상의 콘텐츠들에 대한 콘텐츠 데이터를 수신할 수 있다. 수신한 콘텐츠 데이터는 트랜스코딩의 대상이 되는 원본 콘텐츠 데이터일 수 있다.Content
단계(710)에서, 콘텐츠 데이터 관리 서버(410)는 사용자 인증 정보를 수신할 수 있다. 예컨대, 사용자 인증 정보는 콘텐츠 데이터 관리 서버(410)의 콘텐츠 데이터를 트랜스코딩하고자 하는 사용자의 단말 장치(310)로부터 전송될 수 있다. 콘텐츠 데이터 관리 서버(410)는 사용자 인증 정보를 전송한 단말 장치(310)의 콘텐츠 데이터 관리 서버(410)에 대한 접근을 허용할 수 있다.In step 710, the content
또는, 도시된 것과는 달리 사용자 인증 정보는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터의 제공자로부터 수신될 수 있다.Alternatively, unlike what is shown, the user authentication information may be received from an operator of the distributed multimedia streaming
단계(712)에서, 콘텐츠 데이터 관리 서버(410)는 콘텐츠 데이터 선택 정보를 수신할 수 있다. 예컨대, 콘텐츠 데이터 선택 정보는 단말 장치(310)로부터 수신될 수 있다.In step 712, the content
또는, 도시된 것과는 달리 콘텐츠 데이터 선택 정보는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터의 제공자로부터 수신될 수 있다.Alternatively, unlike what is shown, the content data selection information may be received from an operator of the distributed multimedia streaming
콘텐츠 데이터 선택 정보는 단말 장치(310)의 사용자, 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터의 제공자가 트랜스코딩하고자 하는 콘텐츠 데이터와 관련된 정보를 포함할 수 있다. 말하자면, 콘텐츠 데이터 선택 정보는 콘텐츠 데이터 관리 서버(410)의 하나 이상의 콘텐츠들에 대한 콘텐츠 데이터 중 단말 장치(310)의 사용자, 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터의 제공자에 의해 선택된 콘텐츠에 대한 콘텐츠 데이터와 관련된 정보를 포함할 수 있다.The content data selection information may include information related to content data to be transcoded by a user of the
단말 장치(310)의 사용자, 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터의 제공자는 콘텐츠 데이터 관리 서버(410)의 웹 기반의 대쉬보드 모듈(402)을 통해 제공되는 웹 기반의 대쉬보드 상의 UI를 통해 콘텐츠 데이터 관리 서버(410)로 콘텐츠 데이터 선택 정보를 전송할 수 있다.The user of the
콘텐츠 데이터 선택 정보가 콘텐츠 데이터 관리 서버(410)로 전송됨으로써 콘텐츠 데이터 관리 서버(410)를 통한 콘텐츠 데이터의 트랜스코딩이 요청될 수 있다.The content data selection information is transmitted to the content
콘텐츠 데이터의 트랜스코딩을 위한 사전 처리 과정으로서, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420) 및 콘텐츠 데이터 관리 서버(410) 간의 원격 명령 실행 및 보안된 콘텐츠 데이터의 전송을 위해 트랜스코딩 모듈(420) 및 콘텐츠 데이터 관리 서버(410)의 양자 모두 내에 시큐어 쉘(Secure SHell; SSH)을 생성할 수 있다. 또한, 콘텐츠 데이터 관리 서버(410)는 원본 콘텐츠 데이터 및 트랜스코드된 콘텐츠 데이터 간의 파일명이 동일할 수 있기 때문에, 트랜스코딩 모듈(420)의 트랜스코드된 콘텐츠 데이터의 저장을 위한 새로운 폴더를 생성할 수 있다.As a preprocessing process for transcoding content data, the content
단계(715)에서, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)로 콘텐츠 데이터를 전송할 수 있다. 말하자면, 트랜스코딩 모듈(420)은 콘텐츠 데이터 관리 서버(410)로부터 콘텐츠 데이터를 수신할 수 있다. 트랜스코딩 모듈(420)이 수신한 콘텐츠 데이터는 트랜스코딩 모듈(420)의 HDFS(424)에 저장될 수 있다.At step 715, the content
콘텐츠 데이터 관리 서버(410)가 트랜스코딩 모듈(420)로 전송하는 콘텐츠 데이터는 단계(705)에서 수신된 콘텐츠 데이터로서 단계(712)의 단말 장치(310)의 사용자에 의해 선택된 콘텐츠에 대한 콘텐츠 데이터일 수 있다.The content data transmitted by the content
단계(718)에서, 콘텐츠 데이터 관리 서버(410)는 콘텐츠 데이터에 대한 트랜스코딩의 옵션들과 관련된 정보를 수신할 수 있다. 예컨대, 트랜스코딩의 옵션들과 관련된 정보는 단말 장치(310)로부터 전송될 수 있다.At
또는, 도시된 것과는 달리 트랜스코딩의 옵션들과 관련된 정보는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터 제공자에 의해 수신될 수 있다. 예컨대, 운영자 또는 콘텐츠 데이터 제공자는 콘텐츠 데이터 관리 서버(410)의 웹 기반의 대쉬보드 모듈(402)에 의해 제공되는 UI를 사용하여 트랜스코딩의 옵션들과 관련된 정보를 전송할 수 있다.Alternatively, unlike what is shown, information related to the options of transcoding may be received by the operator of the distributed multimedia streaming
콘텐츠 데이터에 트랜스코딩의 옵션들은 콘텐츠 데이터의 해상도, 콘텐츠 데이터가 트랜스코드되는 포맷(컨테이너 포맷), 비트 전송률, 코덱 방법 및 프레임률 중 적어도 하나를 결정하기 위한 옵션들일 수 있다.The options of transcoding to the content data may be options for determining at least one of the resolution of the content data, the format in which the content data is transcoded (the container format), the bit rate, the codec method and the frame rate.
요컨대, 콘텐츠 데이터가 트랜스코드되는 포맷은 상기 콘텐츠 데이터의 사용자 또는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자, 말하자면, 콘텐츠 데이터 관리 서버(410)의 사용자의 요청에 기반하여 설정될 수 있다.In short, the format in which the content data is transcoded can be set based on the request of the user of the content data or the user of the content
도시된 것과는 달리, 단계(718)은 단계(715)보다 먼저 수행될 수 있다.Unlike what is shown,
단계(719)에서, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)에게 트랜스코딩 모듈(420)로 전송한 콘텐츠 데이터의 설정된 포맷으로의 트랜스코딩을 요청할 수 있다. 예컨대, 콘텐츠 데이터 관리 서버(410)는 단계(718)의 옵션들과 관련된 정보에 기반하여 트랜스코딩 모듈(420)에게 콘텐츠 데이터에 대한 트랜스코딩을 요청할 수 있다.At step 719, the content
단계(720)에서, 트랜스코딩 모듈(420)은 수신한 콘텐츠 데이터를 설정된 크기의 하나 이상의 블록들로 분할할 수 있다. 분할되는 블록의 크기는 예컨대, 단계(719)의 콘텐츠 데이터 관리 서버(410)로부터의 트랜스코딩 요청에 기반하여 설정될 수 있다.In step 720, the
단계(725)에서, 트랜스코딩 모듈(420)은 분할된 하나 이상의 블록들을 하나 이상의 데이터 노드들로 분산시킬 수 있다.In step 725, the
단계(727)에서, 트랜스코딩 모듈(420)은 하나 이상의 데이터 노드들로 분산된 하나 이상의 블록들을 설정된 포맷으로 트랜스코딩할 수 있다. 블록들이 트랜스코드되는 포맷은 예컨대, 단계(719)의 콘텐츠 데이터 관리 서버(410)로부터의 트랜스코딩 요청에 기반하여 설정될 수 있다. 단계(727)는 하나 이상의 트랜스코더들(422)에 의해 수행될 수 있다. 예컨대, 트랜스코더들(422)의 각각은 맵리듀스 기반의 트랜스코더일 수 있다.In
단계(727)는 도 5를 참조하여 전술된 단계들(550-1 내지 550-1)을 포함할 수 있다.Step 727 may include the steps 550-1 through 550-1 described above with reference to FIG.
단계(728)에서, 트랜스코딩 모듈(420)은 트랜스코드된 하나 이상의 블록들을 병합함으로써 트랜스코드된 콘텐츠 데이터를 생성할 수 있다. 트랜스코드된 콘텐츠 데이터는 HDFS(424)에 저장될 수 있다.At
단계(729)에서, 콘텐츠 데이터의 트랜스코딩이 완료되면, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)로부터 콘텐츠 데이터의 트랜스코딩이 완료되었음을 나타내는 완료 정보를 수신할 수 있다.In step 729, when the transcoding of the content data is completed, the content
단계(730)에서, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)에게 트랜스코드된 콘텐츠 데이터로부터 하나 이상의 썸내일 이미지들의 추출을 요청할 수 있다. 단계(732)에서, 트랜스코딩 모듈(420)은 수신한 요청에 기반하여, 트랜스코드된 콘텐츠 데이터로부터 하나 이상의 썸내일 이미지들을 추출할 수 있다. 예컨대, 썸내일 이미지들은 썸내일 이미지 추출기(610)에 의해 트랜스코드된 콘텐츠 데이터로부터 추출될 수 있다. 썸내일 이미지 추출기(610)는 저글러 라이브러리들에 의해 지원되는 FFmpeg를 활용하여 트랜스코드된 콘텐츠 데이터로부터 썸내일 이미지들을 추출할 수 있다.At step 730, the content
단계(734)에서, 썸내일 이미지들의 추출이 완료되면, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)로부터 트랜스코드된 콘텐츠 데이터로부터 썸내일 이미지들의 추출이 완료되었음을 나타내는 완료 정보를 수신할 수 있다. 추출된 썸내일 이미지들은 HDFS(424)에 저장될 수 있다.When the extraction of thumbnail images is completed in step 734, the content
 단계(735)에서, 트랜스코딩 모듈(420)은 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들을 출력할 수 있다. 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들의 출력은 다른 모듈, 예컨대, 스트리밍 모듈(430)로의 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들의 전송일 수 있다. At
단계(736)에서, 콘텐츠 데이터 관리 서버(410)는 트랜스코딩 모듈(420)에게 단계(719)의 요청에 기반하여 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들의 스트리밍 모듈(430)로의 이전 또는 전송을 요청할 수 있다. 도시된 것과는 달리, 콘텐츠 데이터 관리 서버(410)는 트랜스코드된 콘텐츠 데이터의 스트리밍 모듈(430)로의 전송의 요청 및 추출된 썸내일 이미지들의 스트리밍 모듈(430)로의 전송의 요청을 별개의 단계로서 수행할 수 있다.At step 736 the content
단계(740)에서, 트랜스코딩 모듈(420)은 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들을 스트리밍 모듈(430)로 전송할 수 있다. 예컨대, 트랜스코딩 모듈(420)은 콘텐츠 이전기(620)를 통해 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들은 스트리밍 모듈(430)로 이전할 수 있다. 말하자면, 스트리밍 모듈(430)은 트랜스코딩 모듈(420)로부터 트랜스코드된 콘텐츠 데이터 및/또는 추출된 썸내일 이미지들을 수신할 수 있다.At
도시된 것과는 달리, 트랜스코딩 모듈(420)은 트랜스코드된 콘텐츠 데이터의 스트리밍 모듈(430)로의 전송 및 추출된 썸내일 이미지들의 스트리밍 모듈(430)로의 전송을 별개의 단계로서 수행할 수 있다.The
단계(745)에서, 단계(740)이 완료되면, 트랜스코딩 모듈(420)은 HDFS(424)에 저장된 콘텐츠 데이터 관리 서버(410)로부터 수신한 콘텐츠 데이터, 트랜스코드된 콘텐츠 데이터 및 추출된 썸내일 이미지들 중 적어도 하나를 제거할 수 있다. 단계(745)의 수행에 따라 확보되는 저장 공간은 이후의 트랜스코딩 작업을 위해 사용될 수 있다. 단계(745)는 콘텐츠 데이터 관리 서버(410)의 관리 서버(405)에 의해 제어될 수 있다. 예컨대, 트랜스코딩 모듈(420)은 관리 서버(405)로부터의 요청에 기반하여 단계(745)의 데이터 및/또는 썸내일 이미지의 제거를 수행할 수 있다.At step 745, when the
단계(750)에서, 스트리밍 모듈(430)은 수신한 트랜스코드된 콘텐츠 데이터를 설정된 크기의 하나 이상의 블록들로 분할할 수 있다. 블록의 크기는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 요청에 기반하여 콘텐츠 데이터 관리 서버(410)를 통해 설정될 수 있다. 예컨대, 블록의 크기는 64MB로 설정될 수 있다.In step 750, the
단계(755)에서, 스트리밍 모듈(430)은 분할된 하나 이상의 블록들을 하나 이상의 데이터 노드들로 분산시킬 수 있다. 블록들이 분산되는 데이터 노드들은 예컨대, 하둡 스토리지 정책을 준수할 수 있다. 스트리밍 모듈(430)의 네임 노드는 콘텐츠 데이터를 유지 및 관리하기 위해 스트리밍 모듈(430)의 데이터 노드들의 상태 정보, 콘텐츠 데이터가 저장된 위치 정보 및 콘텐츠 데이터의 파일명들 중 적어도 하나와 관련된 메타데이터들을 수집하고 저장할 수 있다. 네임 노드는 소정의 시간 간격으로 콘텐츠 데이터와 관련된 메타데이터를 수집할 수 있다. 네임 노드에 의해 수집된 메타데이터는 콘텐츠 데이터의 손실 및/또는 데이터 노드의 장애 발생 시 사용될 수 있다.In step 755, the
단계(760)에서, 스트리밍 모듈(430)은 분할된 하나 이상의 블록들을 설정된 개수만큼 복제함으로써 복제 블록들을 생성할 수 있다. 복제 블록들의 개수는 예컨대, 3일 수 있다. 복제 블록들의 개수는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자의 요청에 기반하여 콘텐츠 데이터 관리 서버(410)를 통해 설정될 수 있다.In
단계(765)에서, 스트리밍 모듈(430)은 분할된 하나 이상의 블록들 중 데이터가 손실된 손실 블록이 발생하거나 블록들이 분산된 하나 이상의 데이터 노드들의 장애가 발생하면 단계(760)에서 생성된 복제 블록들을 사용하여 손실 블록을 복원하거나 데이터 노드들의 장애로부터 데이터 노드들을 복구할 수 있다.At
단계(765)는 손실 블록이 발생하거나 하나 이상의 데이터 노드들의 장애가 발생하는 경우에만 수행될 수 있다.Step 765 may be performed only if a lost block occurs or a failure of one or more data nodes occurs.
단계(770)에서, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)로부터 콘텐츠 데이터의 식별과 관련된 정보를 수신할 수 있다. 말하자면, 스트리밍 모듈(430)은 콘텐츠 데이터 관리 서버(410)로 콘텐츠 데이터의 식별과 관련된 정보를 전송할 수 있다. 콘텐츠 데이터의 식별과 관련된 정보는 콘텐츠 데이터가 나타내는 콘텐츠를 식별하기 위한 정보로서 트랜스코드된 콘텐츠 데이더 및/또는 추출된 썸내일 이미지들과 관련된 정보를 포함할 수 있다.At
단계(770)는 도 8을 참조하여 후술될 단계들(815 내지 840)을 포함할 수 있다.Step 770 may include steps 815 through 840 described below with reference to FIG.
단계(775)에서, 콘텐츠 데이터 관리 서버(410)는 수신한 식별과 관련된 정보에 기반하여 스트리밍 모듈(430)에게 스트리밍 모듈(430)이 트랜스코딩 모듈(420)로부터 수신한 트랜스코드된 콘텐츠 데이터의 단말 장치(310)로의 스트리밍을 요청할 수 있다. 단말 장치(310)로 스트리밍을 통해 전송되는 트랜스코드된 콘텐츠 데이터는 트랜스코드된 콘텐츠 데이터의 하나 이상의 블록들일 수 있다.At step 775 the content
단계(775)는 도 8을 참조하여 후술될 단계들(845 내지 860)을 포함할 수 있다.Step 775 may include steps 845 through 860 described below with reference to FIG.
단계(780)에서, 스트리밍 모듈(430)은 단말 장치(310)로 하나 이상의 데이터 노드들로 분산된 하나 이상의 블록들을 하나 이상의 스트리밍 서버들(432)을 통해 스트리밍을 통해 전송할 수 있다.At
도시된 것과는 달리, 단계들(775 및 780)의 트랜스코드된 콘텐츠 데이터를 스트리밍을 통해 제공 받는 단말 장치(310) 및 단계들(710, 712 및 718)의 콘텐츠 데이터의 트랜스코딩을 요청하는 단말 장치(310)는 서로 상이할 수 있다.The
스트리밍 모듈(430)이 단말 장치(310)로 스트리밍을 통해 트랜스코드된 콘텐츠 데이터를 전송하는 방법에 대해서는 후술될 도 8을 참조하여 더 자세하게 설명된다.The method by which the
앞서 도 1 내지 도 6을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described above with reference to Figs. 1 to 6 can be applied as they are, so that a more detailed description will be omitted below.
도 8은 일 예에 따른 콘텐츠 데이터 관리 서버, 트랜스코딩 모듈 및 스트리밍 모듈의 동작 방법을 나타내는 신호 흐름도이다.FIG. 8 is a signal flow diagram illustrating a method of operating a content data management server, a transcoding module, and a streaming module according to an example.
단계(810)에서, 콘텐츠 데이터 관리 서버(410)는 사용자 인증 정보를 수신할 수 있다. 예컨대, 사용자 인증 정보는 콘텐츠 데이터에 대한 스트리밍 서비스를 제공받고자 하는 사용자의 단말 장치(310)로부터 전송될 수 있다. 콘텐츠 데이터 관리 서버(410)는 사용자 인증 정보를 전송한 단말 장치(310)의 콘텐츠 데이터 관리 서버(410)에 대한 접근을 허용할 수 있다.In step 810, the content
단말 장치(310)는 도 7을 참조하여 전술된 도시된 콘텐츠 데이터를 트랜스코딩하고자 하는 사용자의 단말 장치(310)와 동일하거나 콘텐츠 데이터를 트랜스코딩하고자 하는 사용자의 단말 장치(310)와 서로 상이할 수 있다.The
도 7을 참조하여 전술된 단계(770)는 후술될 단계들(815 내지 840)을 포함할 수 있다.Step 770 described above with reference to FIG. 7 may include steps 815 through 840 described below.
단계(815)에서, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)에게 트랜스코딩 모듈(420)로부터 수신한 썸내일 이미지들을 요청할 수 있다.At step 815, the content
단계(820)에서, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)로부터 썸내일 이미지들을 수신할 수 있다. 스트리밍 모듈(430)은 수신한 썸내일 이미지들에 대한 요청에 기반하여, 썸내일 이미지들을 썸내일 DB(414)에 등록할 수 있다. 수신된 썸내일 이미지는 웹 기반의 대쉬보드를 통해 출력될 수 있다. 단말 장치(310)의 사용자는 출력된 썸내일 이미지를 선택함으로써 썸내일 이미지가 나타내는 콘텐츠 데이터에 대한 스트리밍 서비스를 제공받을 수 있다.At step 820, the content
콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)로부터 소정의 시간 간격으로 썸내일 이미지들을 수신할 수 있다. 말하자면, 웹 기반의 대쉬보드를 통해 출력되는 썸내일 이미지들은 소정의 시간 간격으로 업데이트될 수 있다. 예컨대, 콘텐츠 데이터 관리 서버(410)는 콘텐츠 데이터의 트랜스코딩과 관련된 작업들이 완료될 때마다 썸내일 이미지들을 수신할 수 있다.The content
단계(825)에서, 콘텐츠 데이터 관리 서버(410)는 웹 기반의 대쉬보드 모듈(402)을 통해 썸내일 이미지들을 단말 장치(310)에게 제공할 수 있다.At step 825, the content
단말 장치(310)의 사용자는 제공된 썸내일 이미지들에 기반하여 단말 장치(310)를 사용하여 스트리밍 서비스를 제공받을 콘텐츠 데이터를 선택할 수 있다. 예컨대, 단말 장치(310)의 사용자는 단말 장치(310)를 사용하여 웹 기반의 대쉬보드 모듈(402)을 통해 제공되는 웹 기반의 대쉬보드 상의 UI를 통해 스트리밍 서비스를 제공받을 콘텐츠 데이터를 선택할 수 있다.The user of the
단계(830)에서, 콘텐츠 데이터 관리 서버(410)는 단말 장치(310)로부터 선택된 콘텐츠 데이터와 관련된 콘텐츠 데이터 선택 정보를 수신할 수 있다. 단말 장치(310)는 콘텐츠 데이터 선택 정보의 전송을 통해, 콘텐츠 데이터 관리 서버(410)를 통해 스트리밍 모듈(430)에게 선택된 콘텐츠 데이터에 대한 스트리밍 서비스의 제공을 요청할 수 있다.In step 830, the content
단계(835)에서, 콘텐츠 데이터 관리 서버(410)는 수신한 콘텐츠 데이터 선택 정보에 기반하여 스트리밍 모듈(430)에게 선택된 콘텐츠 데이터의 위치를 요청하는 콘텐츠 데이터 위치 정보를 요청할 수 있다. 콘텐츠 데이터 위치 정보는 스트리밍 모듈(430)의 네임 노드에 저장된 선택된 콘텐츠 데이터의 위치 정보를 포함할 수 있다.At
단계(840)에서, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)로부터 단계(835)의 요청에 대한 응답을 수신할 수 있다. 예컨대, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)로부터 선택된 콘텐츠 데이터의 파일명 및 위치 정보를 수신할 수 있다. 스트리밍 모듈(430)은 선택된 콘텐츠 데이터의 파일명 및 위치 정보를 콘텐츠 DB(412)에 등록할 수 있다.At step 840, the content
도 7을 참조하여 전술된 단계(775)는 후술될 단계들(845 내지 860)을 포함할 수 있다.Step 775 described above with reference to FIG. 7 may include steps 845 through 860 described below.
단계(845)에서, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)에게 스트리밍 모듈(430)의 하나 이상의 스트리밍 서버들(432)의 가용성과 관련된 정보를 요청할 수 있다. 예컨대, 콘텐츠 데이터 관리 서버(410) 시스템 상태 수집기를 통해 스트리밍 서버들(432)의 사용 상태와 관련된 정보를 요청할 수 있다. 말하자면, 스트리밍 모듈(430)은 콘텐츠 데이터 관리 서버(410)로부터 스트리밍 서버들(432)의 가용성과 관련된 정보에 대한 요청을 수신할 수 있다.At step 845 the content
단계(850)에서, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)로부터 스트리밍 서버들(432)의 가용성과 관련된 정보를 수신할 수 있다. 말하자면, 스트리밍 모듈(430)은 콘텐츠 데이터 관리 서버(410)로 스트리밍 서버들(432)의 가용성과 관련된 정보를 전송할 수 있다.At step 850, the content
예컨대, 스트리밍 모듈(430)의 시스템 상태 수집기는 스트리밍 서버들(432)의 가용성과 관련된 정보에 대한 요청을 수신하고 스트리밍 서버들(432)의 가용성과 관련된 정보를 콘텐츠 데이터 관리 서버(410)의 스트리밍 작업 분산기로 전송할 수 있다.For example, the system state collector of the
단계(855)에서, 콘텐츠 데이터 관리 서버(410)는 수신한 스트리밍 서버들(432)의 가용성과 관련된 정보에 기반하여 스트리밍 서버들(432) 중 단말 장치(310)에게 스트리밍 서비스를 제공할 스트리밍 서버를 선택할 수 있다. 콘텐츠 데이터 관리 서버(410)는 SRC 알고리즘에 기반하여 스트리밍 서버들(432) 중 최적의 스트리밍 서버를 선택할 수 있다.In step 855, the content
단계(860)에서, 콘텐츠 데이터 관리 서버(410)는 스트리밍 모듈(430)에게 선택된 스트리밍 서버에 의한 트랜스코딩 모듈(420)로부터 수신된 상기 트랜스코드된 콘텐츠 데이터의 단말 장치(310)로의 스트리밍을 요청할 수 있다.In step 860, the content
도 7을 참조하여 전술된 단계(780)에서, 스트리밍 모듈(430)은, 스트리밍 서버들(432)의 가용성과 관련된 정보에 기반하여 콘텐츠 데이터 관리 서버(410)에 의해 선택된 스트리밍 서버를 통해, 트랜스코드된 콘텐츠 데이터의 하나 이상의 블록들을 단말 장치(310)로 스트리밍을 통해 전송할 수 있다. 따라서, 단말 장치(310)의 사용자는 콘텐츠 데이터에 대한 스트리밍 서비스를 제공받을 수 있다.7, the
앞서 도 1 내지 도 7을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described with reference to Figs. 1 to 7 can be applied as they are, so that a more detailed description will be omitted below.
도 9는 일 예에 따른 분산 멀티미디어 스트리밍 서비스 제공 시스템을 나타낸다.FIG. 9 shows a system for providing a distributed multimedia streaming service according to an example.
도 9는 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 하드웨어 구성의 일 예를 나타낸다. 실시예의 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)은 28개의 노드를 포함하는 클라우드 컴퓨팅 환경 내의 클러스터 서버들을 사용하여 구축되었다.9 shows an example of the hardware configuration of the distributed multimedia streaming
각 노드는 4GB의 등록된(registered) 오류 정정 부호(Error Correction Code; ECC) 더블 데이터 레이트(Double Data Rate; DDR) 메모리를 포함하는 2 개의 인텔 제논 쿼드코어 2.13GHz 프로세서 및 1TB 직렬 ATA-2(Serial AT Attachment-2; SATA-2) 디스크 스토리지 상에서 동작하는 리눅스 운영체제(우분투 10.04 LTS)를 포함할 수 있다.Each node has two Intel Xenon quad-core 2.13GHz processors with 4GB registered Error Correction Code (ECC) Double Data Rate (DDR) memory and 1TB Serial ATA-2 Serial AT Attachment-2; SATA-2) Linux operating system running on disk storage (Ubuntu 10.04 LTS).
모든 노드들은 100Mbps 이더넷 어댑터를 통해 서로 연결될 수 있다.All nodes can be interconnected via a 100Mbps Ethernet adapter.
트랜스코딩 및 스트리밍 작업의 로드의 분산을 위해, 클러스터는 듀얼 하둡 클러스터로 구분될 수 있다. 듀얼 하둡 클러스터는 13개의 노드들을 포함하는 트랜스코딩 하둡 클러스터 및 10개의 노드들을 포함하는 스트리밍 하둡 클러스터로 구분될 수 있다. 말하자면, HadoopDMTM(420)은 13개의 노드들을 포함할 수 있고, HadoopDMSM(430)은 10개의 노드들을 포함할 수 있다.In order to distribute the load of the transcoding and streaming operations, the clusters can be divided into dual Hadoop clusters. The dual Hadoop cluster can be divided into a transcoding Hadoop cluster including 13 nodes and a streaming Hadoop cluster including 10 nodes. That is, the
CMMM(410)의 한 개의 노드는 관리 서버(405)일 수 있고, 관리 서버(405)는 톰캣(tomcat) 7.0을 실행할 수 있다. CMMM(410)의 다른 하나의 노드는 콘텐츠 DB(412) 및 썸내일 DB(414)를 포함하는 데이터 서버(408)일 수 있고, 데이터 서버(408)는 MySQL을 실행할 수 있다.One node of the
관리 서버(405)는 웹 기반의 대쉬보드를 구현하기 위해 JSP를 사용할 수 있고, 콘텐츠 업로드 기능을 위해 swfuload 2.2.0.1 라이브러리들을 사용할 수 있고, SRC 알고리즘을 구현하기 위해 자바 라이브러리 및 배쉬(bash) 쉘 스크립트를 사용할 수 있고, 모니터링 시스템 상태의 그래프를 나타내기 위해 구글 차트 API를 사용할 수 있다.The management server 405 can use JSP to implement a web-based dashboard, use the swfuload 2.2.0.1 libraries for content upload functionality, and use Java libraries and bash shells You can use the script and use the Google Chart API to display a graph of the monitoring system state.
HadoopDMTM(420)은 HDFS(424) 상에서 동작하는 하나의 네임 노드 및 12개의 데이터 노드들을 포함할 수 있다. HadoopDMTM(420)은 원본 콘텐츠 데이터를 저장하기 위해 자하둡 1.0.4, 자바 1.6.0_39(64비트)를 사용할 수 있고 맵리듀스 기반의 분산 트랜스코더를 구현하기 위한 저글러 3.4.1012(64-비트)를 사용할 수 있다.The HadoopDM (TM) 420 may include one name node and twelve data nodes operating on the HDFS 424.
HadoopDMSM(430)은 13개의 노드들을 포함할 수 있다. 13개의 노드들은 3개의 Nginx 상에서 동작하는 스트리밍 서버들(432) 및 10개의 콘텐츠 스토리지 서버들을 포함할 수 있다. 콘텐츠 스토리지 서버들은 HDFS(436) 상에서 동작하는 하나의 네임 노드 및 9개의 데이터 노드들을 포함할 수 있다.The
HadoopDMSM(430)을 위한 소프트웨어 명세는 스트리밍 기능을 구현하기 위한 H.264 스트리밍 모듈 2.2.7, 스트리밍 서버들(432)을 위한 NginX 1.2.7 및 HDFS(436)를 표준 파일 시스템으로서 유닉스 시스템 상에 장착(mount)시키도록 허용하는 fuse_dfs_0.1.0을 포함할 수 있다.The software specification for the
앞서 도 1 내지 도 8을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described with reference to Figs. 1 to 8 can be applied as they are, so that a more detailed description will be omitted below.
후술될 도 10 내지 도 13은 실시예의 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 프로토 타입에 의해 출력되는 결과들을 도시한다. 도시된 CMMM(410)의 웹 기반의 대쉬보드 모듈(402)에 의해 제공되는 UI는 특정 브라우저가 아닌 예컨대, 인터넷 익스플로어, 파이어폭스, 크롬 및 사파리 등과 같은 다양한 웹 브라우저 내에서 사용될 수 있도록 설계 및 구현될 수 있다.
10 to 13 to be described later show the results output by the prototype of the distributed multimedia streaming
도 10은 일 예에 따른 PC 기반의 웹 브라우저에 표시된 트랜스코드된 콘텐츠 데이터의 스트리밍을 위한 웹 기반의 대쉬보드를 나타낸다.FIG. 10 illustrates a web-based dashboard for streaming transcoded content data displayed on a PC-based web browser according to an example.
PC(310)의 사용자들은 웹 인터페이스를 통해 트랜스코드된 콘텐츠 데이터로부터 추출된 썸내일 이미지들과 업로딩, 트랜스코딩 및 모니터링을 위한 메뉴들을 선택할 수 있다.
Users of
도 11은 일 예에 따른 모바일 기반의 웹 브라우저에 표시된 트랜스코드된 콘텐츠 데이터의 스트리밍을 위한 웹 기반의 대쉬보드를 나타낸다.FIG. 11 illustrates a web-based dashboard for streaming transcoded content data displayed on a mobile-based web browser according to an example.
모바일 단말 장치(310)의 사용자들은 웹 인터페이스를 통해 트랜스코드된 콘텐츠 데이터로부터 추출된 썸내일 이미지들과 업로딩, 트랜스코딩 및 모니터링을 위한 메뉴들을 선택할 수 있다.
Users of the mobile
도 12는 일 예에 따른 콘텐츠 데이터 관리 서버의, 트랜스코딩 작업들을 관리하기 위한 웹 페이지의 스크린 샷을 나타낸다.12 shows a screen shot of a web page for managing transcoding tasks of the content data management server according to an example.
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터 제공자는 도시된 UI를 통해 원본 콘텐츠 데이터를 업로드할 수 있고, 트랜스코딩 옵션들(해상도, 포맷 및 코덱)을 선택할 수 있고, 콘텐츠 데이터를 단말 장치(310)로 스트리밍을 통해 전송할 수 있다. 도시된 것처럼, 트랜스코딩 작업들의 진행 과정은 모니터링될 수 있다.
The operator of the distributed multimedia streaming
도 13은 일 예에 따른 콘텐츠 데이터 관리 서버의, 클러스터 서버들의 상태를 모니터링하기 위한 웹 페이지의 스크린 샷을 나타낸다.13 is a screen shot of a web page for monitoring the status of cluster servers in the content data management server according to an example.
분산 멀티미디어 스트리밍 서비스 제공 시스템(300)의 운영자 또는 콘텐츠 데이터 제공자는 도시된 UI를 통해 HadoopDMSM(430)의 HDFS(436), 스토리지 사용 상태 및 스트리밍 서버의 리소스 사용 상태(CPU 사용 상태, RAM 사용 상태 및 네트워크 트래픽 사용 상태)를 실시간으로 모니터링할 수 있다.
The operator of the distributed multimedia streaming
실시예의 분산 멀티미디어 스트리밍 서비스 제공 시스템(300)을 통해 사용자는, 웹 인터페이스 상의 콘텐츠 업로드 버튼을 한 번 클릭하는 것으로, 콘텐츠 데이터의 업로딩, 트랜스코딩 및 이전, 콘텐츠 데이터로부터 썸내일 이미지의 추출, 콘텐츠 정보의 등록 및 콘텐츠 데이터의 스트리밍 작업의 분산을 포함하는 스트리밍 서비스 제공을 위한 전체적인 작업들을 수행할 수 있다.
Through the distributed multimedia streaming
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable 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 array (FPA) 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.
300: 분산 멀티미디어 스트리밍 서비스 제공 시스템
310: 단말 장치
410: 콘텐츠 데이터 관리 서버
420: 트랜스코딩 모듈
430: 스트리밍 모듈300: Distributed Multimedia Streaming Service Providing System
 310:
 410: Content data management server
 420: transcoding module
 430: Streaming module
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020130147167AKR101523143B1 (en) | 2013-11-29 | 2013-11-29 | Hadoop-based system for providing distributed multimedia streaming service for cloud computing environment and method therof | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020130147167AKR101523143B1 (en) | 2013-11-29 | 2013-11-29 | Hadoop-based system for providing distributed multimedia streaming service for cloud computing environment and method therof | 
| Publication Number | Publication Date | 
|---|---|
| KR101523143B1true KR101523143B1 (en) | 2015-05-26 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| KR1020130147167AExpired - Fee RelatedKR101523143B1 (en) | 2013-11-29 | 2013-11-29 | Hadoop-based system for providing distributed multimedia streaming service for cloud computing environment and method therof | 
| Country | Link | 
|---|---|
| KR (1) | KR101523143B1 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR101753897B1 (en) | 2015-12-22 | 2017-07-04 | 주식회사 이롬테크놀로지 | Method for collecting and storing continuous data and system for the same | 
| KR20180087176A (en)* | 2017-01-23 | 2018-08-01 | 드림투비 주식회사 | Apparatus and method for video realtime transcoding in individual cloud environment | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR101255909B1 (en)* | 2011-04-07 | 2013-04-17 | 주식회사 넥스알 | Hadoop file system | 
| KR20130082936A (en)* | 2011-12-23 | 2013-07-22 | 주식회사 케이티 | System and method for providing contents | 
| KR20130082689A (en)* | 2011-12-14 | 2013-07-22 | 한국전자통신연구원 | Method and apparatus and its system for grid file system distribution based real time transactional transcoding in the cloud environment | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR101255909B1 (en)* | 2011-04-07 | 2013-04-17 | 주식회사 넥스알 | Hadoop file system | 
| KR20130082689A (en)* | 2011-12-14 | 2013-07-22 | 한국전자통신연구원 | Method and apparatus and its system for grid file system distribution based real time transactional transcoding in the cloud environment | 
| KR20130082936A (en)* | 2011-12-23 | 2013-07-22 | 주식회사 케이티 | System and method for providing contents | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR101753897B1 (en) | 2015-12-22 | 2017-07-04 | 주식회사 이롬테크놀로지 | Method for collecting and storing continuous data and system for the same | 
| KR20180087176A (en)* | 2017-01-23 | 2018-08-01 | 드림투비 주식회사 | Apparatus and method for video realtime transcoding in individual cloud environment | 
| KR102032460B1 (en) | 2017-01-23 | 2019-10-15 | 드림투비 주식회사 | Apparatus and method for video realtime transcoding in individual cloud environment | 
| Publication | Publication Date | Title | 
|---|---|---|
| US12328240B2 (en) | Dynamic scaling of storage volumes for storage client file systems | |
| KR101568063B1 (en) | Method for transcoding mutimedia, and hadoop-based mulimedia transcoding system operating the same | |
| US10095581B2 (en) | Transmission time refinement in a storage system | |
| US9727578B2 (en) | Coordinated access to a file system's shared storage using dynamic creation of file access layout | |
| US8799335B2 (en) | Supporting coordinated access to a file system's shared storage using automatic alignment of a parallel file access protocol and metadata management | |
| US20190342418A1 (en) | Efficient High Availability and Storage Efficiency in a Multi-Site Object Storage Environment | |
| US10924542B2 (en) | Content delivery system | |
| CN104580439B (en) | Method for uniformly distributing data in cloud storage system | |
| Kim et al. | CloudDMSS: robust Hadoop-based multimedia streaming service architecture for a cloud computing environment | |
| US20210397374A1 (en) | Function processing using storage controllers for load sharing | |
| KR102031476B1 (en) | Tiered Cache Population | |
| EP2552075B1 (en) | Systems and methods of distributed file storage | |
| US11431798B2 (en) | Data storage system | |
| US10474696B2 (en) | Replication groups for content libraries | |
| Kim et al. | A Hadoop-based multimedia transcoding system for processing social media in the PaaS platform of SMCCSE | |
| KR101523143B1 (en) | Hadoop-based system for providing distributed multimedia streaming service for cloud computing environment and method therof | |
| US11526286B1 (en) | Adaptive snapshot chunk sizing for snapshots of block storage volumes | |
| KR101678743B1 (en) | Hadoop-based system for providing distributed multimedia streaming service and operating the same | |
| US10417254B2 (en) | Intelligent content synchronization between content libraries | |
| KR101617550B1 (en) | Method for transcoding mutimedia, and cloud mulimedia transcoding system operating the same | |
| Kim et al. | A robust cloud-based service architecture for multimedia streaming using Hadoop | |
| KR20160063182A (en) | Hadoop-based system for providing distributed multimedia streaming service and method thereof | |
| Son et al. | HVTS: Hadoop-based video transcoding system for media services | |
| US12423025B1 (en) | Shuffle-based request buffer for managing large request volumes | |
| US20250117147A1 (en) | Method and system for addressing zone-awareness in a heterogeneous environment | 
| Date | Code | Title | Description | 
|---|---|---|---|
| PA0109 | Patent application | St.27 status event code:A-0-1-A10-A12-nap-PA0109 | |
| PA0201 | Request for examination | St.27 status event code:A-1-2-D10-D11-exm-PA0201 | |
| P11-X000 | Amendment of application requested | St.27 status event code:A-2-2-P10-P11-nap-X000 | |
| P13-X000 | Application amended | St.27 status event code:A-2-2-P10-P13-nap-X000 | |
| D13-X000 | Search requested | St.27 status event code:A-1-2-D10-D13-srh-X000 | |
| D14-X000 | Search report completed | St.27 status event code:A-1-2-D10-D14-srh-X000 | |
| PE0902 | Notice of grounds for rejection | St.27 status event code:A-1-2-D10-D21-exm-PE0902 | |
| P11-X000 | Amendment of application requested | St.27 status event code:A-2-2-P10-P11-nap-X000 | |
| P13-X000 | Application amended | St.27 status event code:A-2-2-P10-P13-nap-X000 | |
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration | St.27 status event code:A-1-2-D10-D22-exm-PE0701 | |
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment | St.27 status event code:A-2-4-F10-F11-exm-PR0701 | |
| PR1002 | Payment of registration fee | Fee payment year number:1 St.27 status event code:A-2-2-U10-U11-oth-PR1002 | |
| PG1601 | Publication of registration | St.27 status event code:A-4-4-Q10-Q13-nap-PG1601 | |
| P22-X000 | Classification modified | St.27 status event code:A-4-4-P10-P22-nap-X000 | |
| P22-X000 | Classification modified | St.27 status event code:A-4-4-P10-P22-nap-X000 | |
| FPAY | Annual fee payment | Payment date:20180521 Year of fee payment:4 | |
| PR1001 | Payment of annual fee | Fee payment year number:4 St.27 status event code:A-4-4-U10-U11-oth-PR1001 | |
| P22-X000 | Classification modified | St.27 status event code:A-4-4-P10-P22-nap-X000 | |
| FPAY | Annual fee payment | Payment date:20190520 Year of fee payment:5 | |
| PR1001 | Payment of annual fee | Fee payment year number:5 St.27 status event code:A-4-4-U10-U11-oth-PR1001 | |
| PC1903 | Unpaid annual fee | Not in force date:20200520 Payment event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE St.27 status event code:A-4-4-U10-U13-oth-PC1903 | |
| PC1903 | Unpaid annual fee | Ip right cessation event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date:20200520 St.27 status event code:N-4-6-H10-H13-oth-PC1903 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| PN2301 | Change of applicant | St.27 status event code:A-5-5-R10-R11-asn-PN2301 St.27 status event code:A-5-5-R10-R13-asn-PN2301 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 |