KR102274610B1 - 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법 - Google Patents

클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법 Download PDF

Info

Publication number
KR102274610B1
KR102274610B1 KR1020200183616A KR20200183616A KR102274610B1 KR 102274610 B1 KR102274610 B1 KR 102274610B1 KR 1020200183616 A KR1020200183616 A KR 1020200183616A KR 20200183616 A KR20200183616 A KR 20200183616A KR 102274610 B1 KR102274610 B1 KR 102274610B1
Authority
KR
South Korea
Prior art keywords
rendering
virtual machines
group
groups
distributed
Prior art date
Application number
KR1020200183616A
Other languages
English (en)
Inventor
전동혁
Original Assignee
(주)비디오몬스터
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)비디오몬스터 filed Critical (주)비디오몬스터
Priority to KR1020200183616A priority Critical patent/KR102274610B1/ko
Application granted granted Critical
Publication of KR102274610B1 publication Critical patent/KR102274610B1/ko
Priority to PCT/KR2021/015132 priority patent/WO2022139150A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2223Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4318Generation of visual interfaces for content selection or interaction; Content or additional data rendering by altering the content in the rendering process, e.g. blanking, blurring or masking an image region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 동영상 분산 렌더링 시스템을 개시한다. 보다 상세하게는, 본 발명은 클라우드 기반 가상머신을 이용한 동영상 템플릿의 렌더링 과정에서 발생하는 추가적인 렌더링 요청에 대한 지연 현상을 개선한 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법에 관한 것이다.
본 발명의 실시예에 따르면, 렌더링을 수행하는 하나 이상의 가상머신을 포함하며, 각각 독립적으로 구동하는 렌더링 그룹을 정의하고, 하나 이상의 사용자 단말로부터 템플릿에 기반한 동영상 렌더링 작업을 요청받아, 현재 작업중인 가상머신의 상태를 확인하고, 현재 작업 진행 상태에 따라 각 렌더링 그룹별 가상머신의 성능 및 개수를 조절하여 렌더링 작업을 할당함으로써, 제한된 컴퓨팅 자원을 보다 효율적으로 운영할 수 있는 효과가 있다.

Description

클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법{SYSTEM FOR DISTRIBUTED RENDERING VIDEO BASED ON CLOUD AND METHOD FOR AUTO SCALING THREROF}
본 발명은 동영상 분산 렌더링 시스템에 관한 것으로, 특히 클라우드 기반 가상머신을 이용한 동영상 렌더링 과정에서 발생하는 추가적인 렌더링 요청에 대한 지연 현상을 개선한 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법에 관한 것이다.
과거, 기업이나 공공기관 등에서 특정 목적을 위한 시스템을 직접 구축을 위해서는 많은 단말 장치와 운용 프로그램, 데이터베이스 구축 및 네트워크 환경 구축 등 막대한 시스템 축 및 유지 비용이 발생하게 된다.
이에, 최근에는 분산 시스템 기술의 발전에 따라 클라우드 컴퓨팅 서비스(Cloud Computing Service)가 제안되었으며, 이러한 클라우드 컴퓨팅 서비스는 서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합하여 제공하는 것으로, 한정된 컴퓨터 자원을 효율적으로 분배 및 활용할 수 있도록 하는 특징이 있다.
따라서, 기업이나 공공기관은 클라우드 컴퓨팅 서비스를 통해 네트워크 접속용 단말을 구비하는 것만으로도 원하는 시스템을 구축 및 운영할 수 있게 됨에 따라, 시스템의 유지, 보수 및 관리를 위해 소요되는 비용과, 서버의 구매 및 설치 비용, 업데이트 비용 및 소프트웨어 구매 비용 등의 막대한 비용과 시간 및 인력을 줄일 수 있으며, 에너지 절감에도 기여할 수 있게 되었다.
그러나, 클라우드 컴퓨팅 서비스를 이용하는 고객이 증가하고, 복수의 고객이 클라우드 서버에 동시 접속 즉, 폭주하게 되면 고객에게 제공할 자원이 부족해짐에 따라 클라우드 시스템이 불안정해지거나 다운되는 문제가 발생할 수 있다. 특히, 상당한 컴퓨팅 자원을 소모하는 동영상 렌더링(Rendering) 서비스의 경우에는 자원 부족에 따른 예기치 못한 지연 상황이 발생하기도 한다.
이러한 문제점을 해결하기 위해, 일반적으로 클라우드 시스템에는 오토 스케일링(Auto Scaling) 기법이 적용되어 있다. 이러한 오토 스케일링 기법에 따르면, 트래픽(Traffic) 사용량에 따라 컴퓨팅 자원을 탄력적으로 확장하거나 축소하는데, 일례로서, 서버 설정 임계치에 도달하는 경우에는 자동으로 가상머신(Virtual Machine; VM)을 자동으로 생성하고, 서버 설정 임계치 보다 하락하는 경우에는 자동으로 삭제함으로써 유휴자원을 확보하게 된다.
특히, 기존의 오토스케일링 방식은 가상머신의 시스템의 성능을 증감시키는 수직 스케일링과 동일한 가상머신의 개수를 증감시키는 수평 스케일링이 존재하게 된다. 그러나, 동영상 분산 렌더링의 경우, 하나의 영상에 N(N은 1이상의 자연수)개의 가상머신이 필요하고 M(M은 1이상의 자연수)개의 영상에는 N×M개의 가상머신이 필요하게 된다.
따라서, 단순 가상머신의 증감뿐 아니라 요청 영상에 따른 그룹 단위의 스케일링 기술을 필요로 한다. 또한, 사용자의 요구에 따라 한 그룹에 필요한 가상머신의 개수도 조절이 가능하여야 한다. 이를 위해 기존의 수직, 수평 스케일링을 포함하여 그룹 단위로 스케일링을 가능하도록 하는 기술의 필요성이 대두되고 있다.
공개특허공보 제10-2019-0009607호(공개일자: 2019.01.29.)
본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로, 본 발명은 네트워크를 이용한 동영상 렌더링 시스템에서, 서비스 운영 중에 현재 상황에 따라 자동으로 컴퓨팅 자원의 수직 및 수평 스케일링을 처리할 수 있도록 한 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법을 제공하는 데 과제가 있다.
전술한 과제를 해결하기 위해, 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케줄링 방법은, 동영상 분산 렌더링 시스템에 의한 오토 스케줄링 방법에 있어서, (a) 하나 이상의 사용자 단말로부터 템플릿에 기반하여 제작된 영상소스에 대한 렌더링 작업건을 요청받는 단계, (b) 상기 렌더링 작업건을 요청 순서에 따라 순차적으로 대기열에 입력하는 단계, (c) 스케줄러를 통해 현재 활성화 및 대기중인 하나 이상의 렌더링 그룹의 작업상황을 모니터링하는 단계, (d) 우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당하는 단계, (e) 하나 이상의 가상머신을 생성하고, 렌더링 작업건이 할당된 렌더링 그룹에 하나 이상의 가상머신을 배포하는 단계 및, (f) 각 가상머신을 가동하여 렌더링 작업건의 렌더링 절차를 수행하는 단계를 포함할 수 있다.
상기 (c) 단계는, (c1) 대기중인 렌더링 작업건의 개수 및 활성화된 렌더링 그룹의 개수를 추출하는 단계 및, (c2) 활성화된 렌더링 그룹의 개수 대비 대기중인 렌더링 작업건의 개수에 따라 임계값을 정의하는 단계를 포함할 수 있다.
상기 (e) 단계는, (e1) 대기중인 렌더링 그룹에 하나 이상의 가상머신을 배포하거나, 새로운 렌더링 그룹을 생성하여 하나 이상의 가상머신을 배포하는 단계 및, (e2) 대기중인 렌더링 작업건의 개수가 활성화된 렌더링 그룹의 개수 대비 상기 임계값을 초과하면, 새로운 렌더링 그룹을 정의하는 단계를 포함할 수 있다.
상기 (f) 단계는, (f1) 영상소스를 N(N은 자연수)개로 분할하여 N개의 가상머신에 분할 할당하고, 가상머신을 실행하여 렌더링 절차를 수행하는 단계 및, (f2) 상기 N개의 가상머신 중, 작업 완료된 가상머신을 중지하여 상기 렌더링 그룹으로부터 회수하는 단계를 포함할 수 있다.
상기 (f) 단계 이후, (g) 스케줄러를 통해 현재 배포, 실행 및 중지중인 가상머신을 모니터링하는 단계, (h) 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 중지중인 가상머신이 존재하면, 상기 분할 영상소스를 중지중인 가상머신에 할당하는 단계, (h2) 상기 렌더링 그룹에서 모든 가상머신이 실행중이고, 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 배포된 가상머신의 개수가 하나의 렌더링 그룹의 최대 가상머신 개수보다 작으면, 하나 이사의 가상머신을 생성하여 상기 렌더링 그룹에 배포하는 단계를 포함할 수 있다.
또한, 전술한 과제를 해결하기 위해, 본 발명의 다른 양태의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케줄링 시스템은, 하나 이상의 사용자 단말로부터 템플릿에 기반하여 제작된 영상소스에 대한 렌더링 작업건을 요청받는 접수부, 상기 렌더링 작업건을 요청 순서에 따라 순차적으로 입력받는 대기열부, 현재 활성화 및 대기중인 하나 이상의 렌더링 그룹의 작업상황을 모니터링하는 스케줄러, 우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당하는 할당부 및, 하나 이상의 가상머신을 생성하고, 렌더링 작업건이 할당된 렌더링 그룹에 하나 이상의 가상머신을 배포하여 렌더링 작업을 수행하도록 하는 배포부를 포함하고, 상기 스케줄러는 모니터링 결과에 따라, 각 렌더링 그룹에 배포될 가상머신의 개수 및 렌더링 그룹의 개수를 증감하는 것일 수 있다.
상기 스케줄러는, 대기중인 렌더링 작업건의 개수 및 활성화된 렌더링 그룹의 개수를 추출하고, 활성화된 렌더링 그룹의 개수 대비 대기중인 렌더링 작업건의 개수에 따라 임계값을 정의하는 것일 수 있다.
상기 배포부는, 대기중인 렌더링 그룹에 하나 이상의 가상머신을 배포하거나, 새로운 렌더링 그룹을 생성하여 하나 이상의 가상머신을 배포하고, 상기 스케줄러는, 대기중인 렌더링 작업건의 개수가 활성화된 렌더링 그룹의 개수 대비 임계값을 초과하면, 새로운 렌더링 그룹을 정의하는 것일 수 있다.
상기 배포부는 해당 렌더링 그룹에 대하여 영상소스를 N(N은 자연수)개로 분할하여 N개의 가상머신에 분할 할당하고, 가상머신을 실행하여 렌더링 절차를 수행하고, 상기 스케줄러는 상기 N개의 가상머신 중, 작업 완료된 가상머신을 중지하여 상기 렌더링 그룹으로부터 회수하는 것일 수 있다.
상기 스케줄러는, 현재 배포, 실행 및 중지중인 가상머신을 모니터링하고, 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 중지중인 가상머신이 존재하면, 상기 분할 영상소스를 중지중인 가상머신에 할당하고, 상기 렌더링 그룹에서 모든 가상머신이 실행중이고, 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 배포된 가상머신의 개수가 하나의 렌더링 그룹의 최대 가상머신 개수보다 작으면, 하나 이사의 가상머신을 생성하여 상기 렌더링 그룹에 배포하는 것일 수 있다.
본 발명의 실시예에 따르면, 렌더링을 수행하는 하나 이상의 가상머신을 포함하며, 각각 독립적으로 구동하는 렌더링 그룹을 정의하고, 하나 이상의 사용자 단말로부터 템플릿에 기반한 동영상 렌더링 작업을 요청받아, 현재 작업중인 가상머신의 상태를 확인하고, 현재 작업 진행 상태에 따라 각 렌더링 그룹별 가상머신의 성능 및 개수를 조절하여 렌더링 작업을 할당함으로써, 제한된 컴퓨팅 자원을 보다 효율적으로 운영할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 서비스 제공 형태를 개략적으로 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 구조를 나타낸 도면이다.
도 3은 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법을 나타낸 도면이다.
도 4 내지 도 10은 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법을 구현하기 위한 소스 코드의 일부를 예시한 도면이다.
설명에 앞서, 명세서 전체에서 어떤 부분이 어떤 구성요소를 "구비" 또는 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부(Unit)", "...서버(Server)", "...시스템(System)" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어, 소프트웨어 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, 본 명세서에서 "실시예"라는 용어는 예시, 사례 또는 도해의 역할을 하는 것을 의미하나, 발명의 대상은 그러한 예에 의해 제한되지 않는다. 또한, "포함하는", "구비하는", "갖는" 및 다른 유사한 용어가 사용되고 있으나, 청구범위에서 사용되는 경우 임의의 추가적인 또는 다른 구성요소를 배제하지 않는 개방적인 전환어(Transition word)로서 "포함하는(Comprising)"이라는 용어와 유사한 방식으로 포괄적으로 사용된다.
본 명세서에 설명된 다양한 기법은 하드웨어 또는 소프트웨어와 함께 구현될 수 있거나, 적합한 경우에 이들 모두의 조합과 함께 구현될 수 있다. 본 명세서에 사용된 바와 같은 "...부(Unit)", "...서버(Server)", "...시스템(System)" 등의 용어는 마찬가지로 컴퓨터 관련 엔티티(Entity), 즉 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어 또는 실행 시의 소프트웨어와 등가로 취급할 수 있다. 또한, 본 발명의 시스템에서 구현하는 각 기능은 모듈단위의 프로그램으로 구성될 수 있고, 하나의 물리적 메모리에 기록되거나, 둘 이상의 메모리 및 기록매체 사이에 분산되어 기록될 수 있다.
이하의 설명에서, "클라우드 기반 동영상 분산 렌더링 시스템"은 설명의 편의상 "렌더링 시스템" 또는 "시스템"으로 약식 표기될 수 있다.
이하, 도면을 참조하여 본 발명이 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법을 설명한다.
도 1은 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 서비스 제공 형태를 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템(100), 본 발명의 시스템이 제공하는 영상 편집 및 생성기능을 이용하고자 하는 하나 이상의 사용자 단말(10)에 영상 편집을 위한 복수의 템플릿을 제공하고, 이를 이용하여 사용자 단말(10)상에서 사용자가 영상을 제작한 후 영상소스에 대한 렌더링 요청을 접수받아 온라인 상에서 렌더링 작업을 수행하고 그 완성본인 영상을 제공할 수 있다.
사용자 단말(10)은 본 발명의 실시예에 따른 분산 렌더링 시스템(100)이 제공하는 저작 환경을 통해 템플릿 기반으로 영상을 편집 및 생성하고자 하는 사용자들이 이용하는 단말장치이다.
이러한 사용자 단말(10)에는 공지의 웹 브라우저(Web Browser) 또는 시스템과 연동하는 전용 어플리케이션이 탑재될 수 있고, 분산 렌더링 시스템(100)이 운영하는 웹 서버가 제공하는 웹 페이지를 통해 웹 기반의 편집툴 상에서 구현되는 영상 제작 환경을 이용할 수 있다. 사용자는 영상의 제작의도에 따라 템플릿을 선택하고, 텍스트 또는 이미지와 같은 데이터를 입력하여 UCC, 광고 영상 등의 영상 콘텐츠를 제작할 수 있다.
영상 편집과정이 완료되면, 사용자 단말(10)은 분산 렌더링 시스템(100)에 편집 완료된, 템플릿을 포함하는 영상소스에 대한 렌더링을 요청할 수 있고, 분산 렌더링 시스템(100)은 이러한 렌더링 작업건에 대하여 영상소스에 대한 프로젝트를 생성하고, 현재 렌더링 대기상태에 따라 적절하게 가상머신에 분산 할당하고, 렌더링 프로세스를 수행할 수 있다.
이러한 사용자 단말(10)로는 PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 컴퓨팅 장치가 이용될 수 있다.
분산 렌더링 시스템(100)은 웹 상에서 동영상 편집 및 렌더링 서비스를 제공하는 것으로, 정보통신망을 통해 접속한 하나 이상의 사용자 단말(10)에 템플릿 기반 온라인 동영상 편집툴을 제공하고, 편집툴 상에서 편집 완료된 영상소스를 전송받아 렌더링 작업을 수행한 후 제공할 수 있다.
이러한 분산 렌더링 시스템(100)은 상용화된 클라우드 플랫폼을 기반으로 구현될 수 있고, 상용화된 클라우드 플랫폼으로서 Amazon사의 AWS, Microsoft사의 Azure 등이 이용될 수 있다. 특히, 본 발명의 실시예에 따른 분산 렌더링 시스템(100)은, 렌더링 작업을 위한 오토 스케일링(Auto Scaling) 기법이 적용될 수 있다. 여기서, 오토 스케일링 기법은 렌더링 대기열에 작업건이 대수 대기중인 경우, 자동으로 렌더링 환경이 구축된 가상머신(VM; 210)을 유동적으로 늘리고 대기자가 없을 때는 가상머신(210)을 줄이는 것으로, 다수의 렌더링 요청에 대한 트래픽을 최소화할 수 있는 특징이 있다.
이에 따라, 분산 렌더링 시스템(100)이 운영하는 렌더링 그룹(200)은 복수개일 수 있으며 그 개수는 대기 상황에 따라 달라질 수 있고, 각 렌더링 그룹(200)은 하나 이상의 가상머신(VM; 210)이 배포 될 수 있으며, 실행중인 가상머신(210)의 개수는 렌더링 그룹(200)마다 서로 상이할 수 있다.
여기서, 분산 렌더링 시스템(100)은 클라우드 기반 서버로 구현될 수 있고, 이러한 서버는 웹 서버, 어플리케이션 서버 및 데이터 베이스 서버 등을 하나 이상의 포함할 수 있다.
뿐만 아니라, 본 발명의 실시예에 따른 오토스케일링 방식은, 기존 가상머신(210)의 시스템의 성능을 증감시키는 단순 스케일링이 아닌, 영상 소스를 적절하게 분할하여 복수의 가상머신(210)에 분산 할당하여 병렬적으로 렌더링 프로세스를 수행함으로써 개별 영상소스에 대한 작업시간을 단축할 뿐만 아니라, 하나 이상의 가상머신(210)이 배포된 렌더링 그룹(200)에 서로 다른 프로젝트인 영상소스를 할당하되, 대기열의 작업건의 대기건수에 따라, 렌더링 그룹 자체의 개수를 증감함으로써 렌더링 작업별 대기 시간을 단축하여 영상편집 서비스 전체의 작업시간을 감소시키는 것을 특징으로 한다.
즉, 본 발명의 실시예에 따른 분산 렌더링 시스템(100)의 오토 스케일링 기법에 의하면, 영상소스에 따라 가상머신(VM)의 증감뿐 아니라 가상머신(VM)을 렌더링 작업 단위로 그룹화하고, 그 렌더링 그룹의 개수 또한 상황에 따라 증감할 수 있다.
또한, 사용자 단말(10)과 본 발명의 분산 렌더링 시스템(100)간 데이터 통신을 위한 정보통신망으로는 PSTN(Public Switched Telephone Network)과 같은 유선전화망뿐만 아니라, 데이터 통신망의 일 예로서, LAN(Local Area Network), WAN(Wide Area Network)등의 폐쇄형 네트워크일 수 있으며, 인터넷과 같은 개방형 네트워크가 이용될 수 있다. 인터넷은 TCP/IP 프로토콜 및 그 상위계층에 존재하는 여러 서비스, 즉 HTTP(HyperText Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol), SNMP(Simple Network Management Protocol), NFS(Network File Service), NIS(Network Information Service)를 제공하는 전세계적인 개방형 컴퓨터 네트워크 구조를 의미할 수 있다. 또한, 무선 통신망의 일 예로는, 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications), 5G 등 중, 어느 하나가 이용될 수 있으나 이에 한정되는 것은 아니다.
전술한 구성에 따라, 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템은 원격지의 사용자 단말들에 온라인 동영상 편집 서비스를 제공하고, 각 사용자 단말로부터 요청되는 동영상 렌더링 작업건을 대기열에 저장하고, 현재 렌더링 작업건의 대기건수를 고려하여, 오토 스케줄링을 통해 실행중인 렌더링 그룹 및 가상머신의 개수를 모니터링하고, 그 개수를 조절함으로써 보다 신속하게 동영상 렌더링 절차를 수행함과 아울러 효율적으로 클라우드 컴퓨팅 자원을 활용할 수 있다.
이하, 도면을 참조하여 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템을 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 구조를 나타낸 도면이다. 이하의 설명에서 분산 렌더링 시스템 및 이를 구성하는 각 구성부들은 공지의 마이크로프로세서에서 실행 가능한 컴퓨터 프로그램으로 구현되고, 읽고 쓰기가 가능한 기록매체에 기록되어 클라우드 플랫폼이 제공하는 웹 서버, 어플리케이션 서버 및 데이터 베이스 서버 등에 탑재될 수 있다.
도 2를 참조하면, 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템(100)은, 하나 이상의 사용자 단말(10)로부터 템플릿에 기반하여 제작된 영상소스에 대한 렌더링 작업건을 요청받는 접수부(110), 렌더링 작업건을 요청 순서에 따라 순차적으로 입력받는 대기열부(120), 현재 활성화 및 대기중인 하나 이상의 렌더링 그룹의 작업상황을 모니터링하고, 모니터링 결과에 따라 각 렌더링 그룹(200)에 배포될 가상머신(210)의 개수 및, 렌더링 그룹(200)의 개수를 증감하는 것인 스케줄러(130), 우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당하는 할당부(140) 및, 하나 이상의 가상머신(210)을 생성하고, 렌더링 작업건이 할당된 렌더링 그룹(200)에 하나 이상의 가상머신(210)을 배포하여 렌더링 작업을 수행하도록 하는 배포부(150)를 포함할 수 있다.
상세하게는, 접수부(110)는 정보통신망을 통해 시스템(100)에 접속한 하나 이상의 사용자 단말(10)부터 편집 완료된 영상소스에 대한 렌더링 작업 요청을 접수할 수 있다. 본 발명의 렌더링 서비스를 이용하는 사용자는 시스템이 제공하는 편집툴 상에서 템플릿을 이용하여 영상을 편집할 수 있고, 편집이 완료된 영상소스를 시스템에 제공하여 공지의 동영상 디코더로 재생이 가능한 영상파일로의 변환을 요청할 수 있다.
대기열부(120)는 접수부(110)에 접수된 렌더링 작업건을 순차적으로 대기열에 저장할 수 있다. 이러한 대기열부는 대기열(큐)에 저장하여 이후, 가상머신(210)이 할당될 때까지 선입선출 방식으로 영상소스를 저장할 수 있고, 영상소스(10 ~ m(m은 1이 아닌 자연수)는 프로젝트별로 접수순서에 따라 제1 내지 제m 영상소스로 구분되어 저장될 수 있다. 일례로서, 제1 영상소스(11), 제2 영상소스(12) 및 제m 영상소스(m)가 각각 순차적으로 접수된 경우, 제1 영상소스(11)가 최우선적으로 가상머신(210)에 할당될 수 있고, 제2 영상소스(12)가 차순위로 가상머신(210)에 할당되되, 제1 영상소스(11) 및 제2 영상소스(12)는 서로 다른 렌더링 그룹(200)에 할당될 수 있다.
스케줄러(130)는 대기열부(120)에 저장된 영상소스(110 ~ m)을 모니터링하여 그 크기 및 작업예상시간을 판단하고, 아울러, 현재 실행중이거나 대기중인 하나 이상의 렌더링 그룹(200) 및 그 가상머신(210)을 모니터링하여, 요구되는 렌더링 그룹(200) 및 가상머신(210)의 개수를 증감할 수 있다.
스케줄러(130)는 일정주기, 일례로서 1분마다 현재 작업진행 중이거나 대기중인 렌더링 그룹(200)을 파악함과 아울러 대기열부(120)에 저장된 하나 이상의 영상소스(10 ~ m)의 개수를 파악할 수 있고, 시스템에서 현재 실행중인 렌더링 그룹(200)의 개수 및 대기중인 영상소스(10 ~ m)의 개수를 파악하여 최대 운영 가능한 렌더링 그룹(200)의 개수를 넘지 않는 범위에서 렌더링 그룹(200)의 개수를 증가시킬 수 있다. 또한, 대기열부(120)에 대기중인 영상소스(10 ~ m)가 존재하지 않을 때, 대기중인 렌더링 그룹(200)이 소정개수 이상일 경우, 그 대기중인 렌더링 그룹(200)을 종료한다.
아울러, 시스템에서 운영될 최대 가상머신(210)의 개수 및 하나의 렌더링 그룹당 최대 배포 가능한 가상머신(210)의 개수를 고려하여, 가상머신을 추가로 생성 및 배포하거나, 대기중인 렌더링 그룹(200)의 개수를 줄이거나, 추가 렌더링 그룹(200)을 더 정의할 수 있다.
이를 위해, 스케줄러(130)는 일정주기에 따라 렌더링 그룹(200)의 개수를 체크하고 임계값과의 비교를 통해 렌더링 그룹(200)의 확장 또는 축소 프로세서를 실행할 수 있다.
아울러, 스케줄러(130)는 일정주기마다 렌더링 그룹(200)의 가상머신(210)의 배포 개수를 모니터링하고, 그렇지 않은 경우 배포를 진행할 수 있다. 가상머신의 현재 가동할 수 있는 최대 가상머신의 개수는 하나의 렌더링 그룹의 최대 할당 가상머신의 개수와 최대 렌더링 그룹의 개수의 곱으로 산출할 수 있고, 현재 배포중인 가상머신(210)의 개수를 조회하여 추가적인 배포 또는 대기중인 가상머신(210)을 중지할 수 있다.
할당부(140)는 우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당할 수 있다. 대기열부(120)의 큐에는 하나 이상의 영상소스가 저장될 수 있고, 할당부는 현재 대기중인 렌더링 그룹(200)이 존재하는 경우, 그 렌더링 그룹(200)에 영상소스(10 ~ m) 중, 우선하는 어느 하나를 할당하게 된다.
배포부(150)는 영상소스(m)가 할당된 렌더링 그룹(200)에 하나 이상의 가상머신(210)을 배포하여 렌더링 작업을 수행하도록 한다. 대기중인 렌더링 그룹(200)에는 하나 이상의 가상머신(210)이 포함될 수 있고, 배포부(150)는 대기중인 가상머신(210)에 영상소스(m)를 분배하되, 영상소스(m)의 크기에 따라, 영상소스를 소정개수로 분할하여 복수의 가상머신(210)에 나누어 입력할 수 있다.
이때, 스케줄러(130)는 배포부(150)의 영상소스(m) 분할에 따라 렌더링 그룹의 최대 할당 가상머신의 개수 및, 최대 렌더링 그룹의 개수를 초과하지 않는 범위 내에서 가상머신(210)을 추가 생성하여 해당 렌더링 그룹(200)에 할당할 수 있고, 배포부(150)는 그 가상머신(210)에 분할된 영상소스(m)를 할당 및 렌더링 프로세스가 진행될 수 있도록 하며, 렌더링 작업이 완료된 영상소스는 하나의 영상파일로 결합되어 사용자 단말에 제공될 수 있다. 또한, 렌더링 작업이 종료된 가상머신(210)은 대기상태로 전환되고, 스케줄러(130)에 의해 이후 종료될 수 있다.
특히, 배포부(150)는 각 분할된 영상소스의 렌더링 작업 종료시, 분할 상태의 렌더링 영상을 재 결합하는 절차를 더 수행할 수 있고, 이때, 분할된 영상소스들의 식별 및 결합을 위한 인덱스를 분할된 영상소스별로 생성 및 부여함과 아울러, 결합지점에서 영상의 매끄럽게 연결되도록 하기 위한 보정 프로세스를 더 수행할 수 있다.
상기의 보정 프로세스에 따르면, 0 ~ 255 계조의 영상이라 가정할 때, 두 영상소스의 결합지점(시점)을 기준으로 전후 각각 약 k(k는 1 이상 30 이하의 자연수) 프레임을 보정대상 구간으로 지정하고, k 프레임 구간의 전체 계조값의 평균을 산출하고, 각 k 프레임의 계조값과 평균 계조값의 차값을 산출한다.
그리고, 모든 k 프레임에 대하여 계조의 평균값이 상기의 산출된 차값과 일정수준 이상, 일례로서, 10 % 이상 차이가 발생하는 프레임에 대하여 계조값을 증감하여 결합지점에서의 계조차 발생에 따른 이질감을 최소화할 수 있다.
도면을 참조하여 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법을 설명한다.
도 3은 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법을 나타낸 도면이다. 이하의 설명에서 각 단계별 실행주체는 별도의 기재가 없는 한, 본 발명의 시스템 및 그 구성부가 된다.
도 3을 참조하면, 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법은, 하나 이상의 사용자 단말로부터 템플릿에 기반하여 제작된 영상소스에 대한 렌더링 작업건을 요청받는 단계(S100), 렌더링 작업건을 요청 순서에 따라 순차적으로 대기열에 입력하는 단계(S200), 현재 활성화 및 대기중인 하나 이상의 렌더링 그룹의 작업상황을 모니터링하는 단계(S300), 우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당하는 단계(S400), 하나 이상의 가상머신을 생성하고, 렌더링 작업건이 할당된 렌더링 그룹에 하나 이상의 가상머신을 배포하는 단계(S500) 및, 각 가상머신을 가동하여 렌더링 작업건의 렌더링 절차를 수행하는 단계(S600)를 포함할 수 있다.
먼저, 하나 이상의 사용자 단말로부터 템플릿에 기반하여 제작된 영상소스에 대한 렌더링 작업건을 요청받는 단계(S100)로서, 본 발명의 동영상 편집 서비스를 통해 템플릿을 이용하여 영상을 편집하고자 하는 하나 이상의 사용자가 자신의 사용자 단말을 이용하여 편집툴 상에서 영상소스를 생성한 후, 시스템에 접속하여 제작된 영상소스를 전송하여 렌더링 작업을 요청할 수 있고, 시스템은 그 렌더링 작업건을 순차적으로 접수할 수 있다.
다음으로, 렌더링 작업건을 요청 순서에 따라 순차적으로 대기열에 입력하는 단계(S200)에서는, 시스템은 하나 이상의 렌더링 작업건, 즉 영상소스를 접수 순서대로 대기열 큐에 저장할 수 있다. 이후, 영상소스는 순차적으로 가상머신에 할당될 수 있다.
다음으로, 현재 활성화 및 대기중인 하나 이상의 렌더링 그룹의 작업상황을 모니터링하는 단계(S300)에서는, 시스템의 스케줄러가 대기열에 저장된 영상소스 즉, 렌더링 작업건의 개수를 확인하고, 현재 실행중이거나 대기중인 하나 이상의 렌더링 그룹과, 각 렌더링 그룹에서 현재 가동중이거나 대기중인 가상머신의 상태를 일정주기로 확인하게 된다.
다음으로, 우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당하는 단계(S400)는, 시스템이 대기중인 렌더링 작업건의 우선순위를 확인하고, 최우선 순위의 렌더링 작업건을 대기중인 렌더링 그룹에 할당하는 단계로서, 스케줄러에 의해 확인된 대기중인 어느 하나의 렌더링 그룹에 렌더링 작업건을 할당함으로써 절차가 진행되도록 한다.
다음으로, 하나 이상의 가상머신을 생성하고, 렌더링 작업건이 할당된 렌더링 그룹에 하나 이상의 가상머신을 배포하는 단계(S500)에서는, 시스템이 영상소스의 크기에 따라 영상소스를 분할하고, 렌더링 작업건이 할당된 렌더링 그룹에 배포된 가상머신의 개수를 판단하여 부족한 경우 새로운 가상머신을 더 생성하여 해당 렌더링 그룹에 배포하게 된다. 이후, 시스템은 분할된 영상소스를 해당 렌더링 그룹에 속한 복수의 가상머신에 분산하여 할당한다.
다음으로, 각 가상머신을 가동하여 렌더링 작업건의 렌더링 절차를 수행하는 단계(S600)에서는, 시스템이 가상머신을 가동함으로써 렌더링 프로세스를 진행하게 된다.
렌더링 프로세스가 정상적으로 완료되면, 시스템은 렌더링 작업이 완료된 영상소스들을 하나의 영상파일로 결합하여 사용자 단말에 제공하게 된다. 이에 따라, 렌더링 작업이 종료된 가상머신 대기상태로 전환되며, 대기중인 가상머신은 소정주기 이후 스케줄러에 의해 이후 종료된다.
또한, 시스템은 분할된 영상소스의 결합 절차에서, 영상간 결합지점에서 발생할 수 있는 이질감을 보정하는 보정 프로세스를 더 수행할 수 있다.
이하, 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템에서 오토 스케일링 방법을 구현하기 위한 소스 코드의 일 예를 통해 본 발명의 기술적 사상을 상세히 설명한다.
도 4 내지 도 10은 본 발명의 실시예에 따른 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법을 구현하기 위한 소스 코드의 일부를 예시한 도면이다. 이러한 소스 코드는 분산 렌더링 시스템에 저장되어 클라우드 서버상에서 실행될 수 있다.
이하의 설명에서는 상용화된 클라우드 플랫폼인 'Microsoft Azure'에 기반한 오토 스케일링 프로그램의 예로서 설명하고 있으나, 본 발명이 특정 플랫폼에 한정되어 적용되는 것은 아니며, 다양한 클라우드 플랫폼을 통해 구현 가능하다.
도 4를 참조하면, 본 발명의 실시예에 따른 렌더링 시스템에서는 실제 렌더링을 수행하는 가상머신의 제어를 위한 인터페이스를 제공할 수 있으며, 이러한 제어 인터페이스에는 웹 서버의 URL 및 가상머신의 베이스 네임의 변수(SERVER_URL, VM_NAME)가 정의될 수 있고, 렌더링 대기 수를 획득하는 메소드인 'GetWaitingCount'가 정의될 수 있다.
또한, 제어 인터페이스에는 가상머신의 렌더링 그룹에 대한 관리 데이터 매니저가 포함되고, 현재 가상머신의 증감이 진행 중인지 식별하기 위한 식별자(isWorking)가 선언되어 'false'로 초기화될 수 있다.
도 5를 참조하면, 오토 스케일링을 위해 이용되는 다양한 변수를 예시하고 있다. 도면에서는 시스템에서 운영할 최대 가상머신 개수 'maxVMCount', 하나의 렌더링 그룹당 할당된 개수 ' vmCountPerGroup', 운영할 최소 및 최대 렌더링 그룹 개수 'minGroupCount', 'maxGroupCount' 등이 정의될 수 있다.
특히, 본 발명의 실시예에 따르면, 렌더링 그룹의 개수를 조절하는 기준이 되는 임계값 변수인 'threshold'가 정의될 수 있고, 스케일링 과정에서 임계값이 현재 영상소스의 대기 수에서 활성 그룹 수를 나눈 수보다 작을 경우, 'increaseGroupCount' 만큼 그룹수를 증가시킬 수 있다.
또한, 그룹 확장 및 축소를 체크하는 주기를 정의하는 'increaseCheckIntervalMinute', 'decreaseCheckIntervalMinute'가 정의될 수 있고, 시스템은 이러한 변수값이 1인 경우, 1분에 한번씩 렌더링 그룹수의 체크를 통해 임계값을 이용하여 확장 또는 축소할 수 있다.
그 밖의 변수로는, 렌더링 그룹이 소정시간동안 렌더링을 진행하지 않을 경우, 그 그룹의 가상머신을 종료하는 시간이 정의된 'decreaseIdleMinute'가 있다.
다음으로, 도 6은 본 발명의 시스템에 대한 설정 데이터의 구조를 예시하고 있다.
도 6을 참조하면, 시스템은 설정 데이터 'configData'를 웹 서버의 URL로부터 획득하고, 'UpdateConfigInterval' 함수에 의해 1분 간격으로 'configData'를 획득할 수 있다. 시스템은 웹 서버로부터 'configData'를 획득할 수 있다. 이러한 시간주기는 'setTimeout(UpdateConfigInterval, 1000 * 60)'에 의해 설정된다.
아울러, 시스템은 데이터가 업데이트된 경우, 그 내용을 단말(Terminal) 즉, 관리자PC로 출력할 수 있다.
도 7은 가상머신의 관리 기능과 관련된 소스 코드로서, 도 7을 참조하면 본 발명의 시스템은 일정 주기마다 현재 렌더링 그룹들의 가상머신의 배포 개수를 모니터링하고, 그렇지 않은 경우 배포를 진행할 수 있다. 가상머신의 현재 가동할 수 있는 최대 가상머신의 개수는 'vmCountPerGroup * maxGroupCount'로 산출할 수 있고, 현재 배포중인 가상머신의 개수를 조회하여 추가적인 배포를 수행하게 된다.
이를 위해, 필요한 가상머신의 개수 'needLaunchVMCount'를, 최대 가상머신 개수 'maxVMCount' 에서 현재 가상머신 개수를 'currentVMCount' 차감하여 산출할 수 있다. 이후, 부족분에 대하여 가상머신의 명칭을 랜덤함수를 이용하여 설정하고 그에 대한 인스턴스를 생성하여 렌더링 그룹에 배포하게 된다.
도 8 내지 도 9는 가상머신 관리 기능과 관련된 다른 소스코드로서, 도 8 및 도 9를 참조하면 시스템은 생성한 배포중인 가상머신의 상태를 지속적으로 확인하고, 각 가상머신에서 구동할 운영체제를 구성 및 가상머신을 종료하는 기능을 제공할 수 있다.
도 8은 렌더링 그룹에 대한 모니터링과 관련된 소스코드로서, 스케줄러가 서버의 대기열로부터 렌더링 작업건의 개수를 획득하고, 임계값과의 비교를 통해 그룹수의 증감을 결정하는 함수로서, 렌더링 작업건의 개수를 활성화된 렌더링 그룹 수로 나눈값이 임계값보다 크거나 같을 경우, 변수 'increaseGroupCount'의 값만큼 렌더링 그룹의 수를 증가시키게 된다.
특히, 전술한 함수에는 예외상황에 대응하기 위해 'ERR_SERVER_CHECK' 값을 확인하여 렌더링이 불가능한 상황인 경우 오토스케일링을 중단하는 메소드와, 서버로부터 렌더링 대기수를 모니터하는 메소드 및 현재 렌더링 작업건이 할당된 렌더링 그룹의 유효성을 검사하는 메소드가 정의될 수 있다.
또한, 도 9에 나타낸 바와 같이, 임계값을 계산 및 비교하기 위해 변수 'currentThreshold'를 산출할 수 있고, 현재 상태 'Current Status'는 'currentThreshold / threshold'를 통해 산출하며, 그 계산결과, 임계값을 초과하거나, 현재 그룹수가 'minGroupCount'보다 적을 경우 가상머신의 증설을 수행할 수 있도록 한다.
단, 가상머신의 최대 증설 개수는 'maxGroupCount'값을 넘지 못하게 설정될 수 있다.
도 10은 본 발명의 시스템의 스케줄러를 구성하는 소스코드의 일부로서, 'increaseCheckIntervalMinute', ' decreaseCheckIntervalMinute' 변수로 스케줄러에 의한 렌더링 그룹 및 가상머신의 증설 및 축소 스케일링 프로세스를 실행하게 된다. 이때, 인터벌(Interval)은 '1000', 즉 1분 단위로 설정될 수 있다.
아울러, 본 발명의 오토스케줄링의 최소 구동시(InitAutoScalier)의 함수에는 'configData'를 호출하여 설정을 판단하고, 클라우드 플랫폼의 자격 활성화 및, 가상머신의 생성 메소드 및 오토스케일링 메소드를 호출하고, 스케줄러를 실행하는 메소드 등이 정의될 수 있다.
상기한 설명에 많은 사항이 구체적으로 기재되어 있으나 이것은 발명의 범위를 한정하는 것이라기보다 바람직한 실시예의 예시로서 해석되어야 한다. 따라서, 발명은 설명된 실시예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위에 균등한 것에 의하여 정하여져야 한다.
10 : 사용자 단말 110 ~ 13 : 영상소스
100 : 분산 렌더링 시스템 110 : 접수부
120 : 대기열부 130 : 스케줄러
140 : 할당부 150 : 배포부
200 : 렌더링 그룹 210 : 가상머신(VM)

Claims (10)

  1. 동영상 분산 렌더링 시스템에 의한 오토 스케줄링 방법에 있어서,
    (a) 하나 이상의 사용자 단말로부터 템플릿에 기반하여 제작된 영상소스에 대한 렌더링 작업건을 요청받는 단계;
    (b) 상기 렌더링 작업건을 요청 순서에 따라 순차적으로 대기열에 입력하는 단계;
    (c) 스케줄러를 통해 현재 활성화 및 대기중인 하나 이상의 렌더링 그룹의 작업상황을 모니터링하는 단계;
    (d) 우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당하는 단계;
    (e) 하나 이상의 가상머신을 생성하고, 렌더링 작업건이 할당된 렌더링 그룹에 하나 이상의 가상머신을 배포하는 단계; 및
    (f) 각 가상머신을 가동하여 렌더링 작업건의 렌더링 절차를 수행하는 단계를 포함하고,
    상기 (c) 단계는,
    (c1) 대기중인 렌더링 작업건의 개수 및 활성화된 렌더링 그룹의 개수를 추출하는 단계; 및
    (c2) 활성화된 렌더링 그룹의 개수 대비 대기중인 렌더링 작업건의 개수에 따라 임계값을 정의하는 단계
    를 포함하는 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 (e) 단계는,
    (e1) 대기중인 렌더링 그룹에 하나 이상의 가상머신을 배포하거나, 새로운 렌더링 그룹을 생성하여 하나 이상의 가상머신을 배포하는 단계; 및
    (e2) 대기중인 렌더링 작업건의 개수가 활성화된 렌더링 그룹의 개수 대비 상기 임계값을 초과하면, 새로운 렌더링 그룹을 정의하는 단계
    를 포함하는 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법.
  4. 제 1 항에 있어서,
    상기 (f) 단계는,
    (f1) 영상소스를 N(N은 자연수)개로 분할하여 N개의 가상머신에 분할 할당하고, 가상머신을 실행하여 렌더링 절차를 수행하는 단계; 및
    (f2) 상기 N개의 가상머신 중, 작업 완료된 가상머신을 중지하여 상기 렌더링 그룹으로부터 회수하는 단계
    를 포함하는 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법.
  5. 제 4 항에 있어서,
    상기 (f) 단계 이후,
    (g) 스케줄러를 통해 현재 배포, 실행 및 중지중인 가상머신을 모니터링하는 단계;
    (h) 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 중지중인 가상머신이 존재하면, 상기 분할 영상소스를 중지중인 가상머신에 할당하는 단계; 및
    (h2) 상기 렌더링 그룹에서 모든 가상머신이 실행중이고, 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 배포된 가상머신의 개수가 하나의 렌더링 그룹의 최대 가상머신 개수보다 작으면, 하나 이사의 가상머신을 생성하여 상기 렌더링 그룹에 배포하는 단계
    를 포함하는 클라우드 기반 동영상 분산 렌더링 시스템의 오토 스케일링 방법.
  6. 하나 이상의 사용자 단말로부터 템플릿에 기반하여 제작된 영상소스에 대한 렌더링 작업건을 요청받는 접수부;
    상기 렌더링 작업건을 요청 순서에 따라 순차적으로 입력받는 대기열부;
    현재 활성화 및 대기중인 하나 이상의 렌더링 그룹의 작업상황을 모니터링하는 스케줄러;
    우선순위에 따라 대기중인 렌더링 작업건을 대기중인 어느 하나의 렌더링 그룹에 할당하는 할당부; 및
    하나 이상의 가상머신을 생성하고, 렌더링 작업건이 할당된 렌더링 그룹에 하나 이상의 가상머신을 배포하여 렌더링 작업을 수행하도록 하는 배포부를 포함하고,
    상기 스케줄러는,
    모니터링 결과에 따라, 각 렌더링 그룹에 배포될 가상머신의 개수 및 렌더링 그룹의 개수를 증감하고, 대기중인 렌더링 작업건의 개수 및 활성화된 렌더링 그룹의 개수를 추출하고, 활성화된 렌더링 그룹의 개수 대비 대기중인 렌더링 작업건의 개수에 따라 임계값을 정의하는 것인, 클라우드 기반 동영상 분산 렌더링 시스템.
  7. 삭제
  8. 제 6 항에 있어서,
    상기 배포부는,
    대기중인 렌더링 그룹에 하나 이상의 가상머신을 배포하거나, 새로운 렌더링 그룹을 생성하여 하나 이상의 가상머신을 배포하고,
    상기 스케줄러는,
    대기중인 렌더링 작업건의 개수가 활성화된 렌더링 그룹의 개수 대비 임계값을 초과하면, 새로운 렌더링 그룹을 정의하는 것인, 클라우드 기반 동영상 분산 렌더링 시스템.
  9. 제 6 항에 있어서,
    상기 배포부는,
    해당 렌더링 그룹에 대하여 영상소스를 N(N은 자연수)개로 분할하여 N개의 가상머신에 분할 할당하고, 가상머신을 실행하여 렌더링 절차를 수행하고,
    상기 스케줄러는,
    상기 N개의 가상머신 중, 작업 완료된 가상머신을 중지하여 상기 렌더링 그룹으로부터 회수하는 것인, 클라우드 기반 동영상 분산 렌더링 시스템.
  10. 제 9 항에 있어서,
    상기 스케줄러는,
    현재 배포, 실행 및 중지중인 가상머신을 모니터링하고, 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 중지중인 가상머신이 존재하면, 상기 분할 영상소스를 중지중인 가상머신에 할당하고, 상기 렌더링 그룹에서 모든 가상머신이 실행중이고, 상기 렌더링 그룹에 작업 완료전인 나머지 분할 영상소스가 존재하고, 배포된 가상머신의 개수가 하나의 렌더링 그룹의 최대 가상머신 개수보다 작으면, 하나 이상의 가상머신을 생성하여 상기 렌더링 그룹에 배포하는 것인, 클라우드 기반 동영상 분산 렌더링 시스템.
KR1020200183616A 2020-12-24 2020-12-24 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법 KR102274610B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200183616A KR102274610B1 (ko) 2020-12-24 2020-12-24 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법
PCT/KR2021/015132 WO2022139150A1 (ko) 2020-12-24 2021-10-26 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200183616A KR102274610B1 (ko) 2020-12-24 2020-12-24 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법

Publications (1)

Publication Number Publication Date
KR102274610B1 true KR102274610B1 (ko) 2021-07-07

Family

ID=76861881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200183616A KR102274610B1 (ko) 2020-12-24 2020-12-24 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법

Country Status (2)

Country Link
KR (1) KR102274610B1 (ko)
WO (1) WO2022139150A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114205645A (zh) * 2021-12-10 2022-03-18 北京凯视达信息技术有限公司 分布式视频内容审核方法及装置
WO2022139150A1 (ko) * 2020-12-24 2022-06-30 (주)비디오몬스터 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116389831B (zh) * 2023-06-06 2023-08-15 湖南马栏山视频先进技术研究院有限公司 一种基于云原生的离线渲染系统及方法
CN116761018B (zh) * 2023-08-18 2023-10-17 湖南马栏山视频先进技术研究院有限公司 一种基于云平台的实时渲染系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160066228A (ko) * 2014-12-02 2016-06-10 (주)두리반테크 분산 렌더링 시스템
KR20190009607A (ko) 2017-07-19 2019-01-29 에이치피프린팅코리아 유한회사 클라우드 서버 및 클라우드 서버에서 컨텐트를 렌더링하는 방법
KR102081364B1 (ko) * 2019-11-27 2020-02-25 (주)비디오몬스터 클라우드 기반 가변형 분산 렌더링 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160025926A (ko) * 2014-08-28 2016-03-09 한국전자통신연구원 가상 응용서버들로 부하를 분산하는 장치 및 방법
KR101896497B1 (ko) * 2017-02-21 2018-09-07 에스케이텔레콤 주식회사 성능 제어 방법 및 이를 위한 장치
KR102274610B1 (ko) * 2020-12-24 2021-07-07 (주)비디오몬스터 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160066228A (ko) * 2014-12-02 2016-06-10 (주)두리반테크 분산 렌더링 시스템
KR20190009607A (ko) 2017-07-19 2019-01-29 에이치피프린팅코리아 유한회사 클라우드 서버 및 클라우드 서버에서 컨텐트를 렌더링하는 방법
KR102081364B1 (ko) * 2019-11-27 2020-02-25 (주)비디오몬스터 클라우드 기반 가변형 분산 렌더링 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022139150A1 (ko) * 2020-12-24 2022-06-30 (주)비디오몬스터 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법
CN114205645A (zh) * 2021-12-10 2022-03-18 北京凯视达信息技术有限公司 分布式视频内容审核方法及装置

Also Published As

Publication number Publication date
WO2022139150A1 (ko) 2022-06-30

Similar Documents

Publication Publication Date Title
KR102274610B1 (ko) 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법
US11323336B2 (en) Network slice management method and device
CN110162382B (zh) 基于容器的灰度发布方法、装置、计算机设备及存储介质
US20200084107A1 (en) Method And Apparatus For Creating Network Slice, And Communications System
US20140325503A1 (en) Cloud infrastructure-based management system and method for maintenance and deployment of application system
CN103248535B (zh) 一种云系统测试方法及装置
US10652360B2 (en) Access scheduling method and apparatus for terminal, and computer storage medium
US20130318527A1 (en) Virtual server control system and program
KR102081364B1 (ko) 클라우드 기반 가변형 분산 렌더링 시스템 및 방법
CN105138389A (zh) 一种集群中虚拟设备的管理方法及系统
CN111026723A (zh) 大数据集群管理控制方法、装置、计算机设备及存储介质
WO2017032262A1 (zh) 一种数据迁移方法及设备
CN112214303A (zh) Kubernetes集群自动缩放系统
CN109597674B (zh) 一种共享虚拟资源池份额调度方法及系统
CN112540837B (zh) 业务处理组件调用方法、系统、电子设备和存储介质
CN113177179A (zh) 数据请求连接管理方法、装置、设备及存储介质
CN107231305A (zh) 一种路由代理及缓存管理方法和装置
CN110620754B (zh) Nf所需资源的部署方法、装置、存储介质及电子装置
CN112929319A (zh) 内容服务方法、系统、装置及计算机可读存储介质
CN113721922B (zh) 一种基于微服务的大数据物联网管理系统
CN115129422A (zh) 基于订单模式和Activiti技术创建和释放虚拟机的方法
CN114610487A (zh) 基于私有云的核电站模拟机的管理系统、方法和介质
Talukder et al. Dual threshold load balancing in SDN environment using process migration
CN113434256A (zh) 云资源横向扩展方法、可读存储介质及云资源管理系统
Pham et al. A general and practical consolidation framework in CloudNFV

Legal Events

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