KR102354268B1 - 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치 - Google Patents

최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102354268B1
KR102354268B1 KR1020150000829A KR20150000829A KR102354268B1 KR 102354268 B1 KR102354268 B1 KR 102354268B1 KR 1020150000829 A KR1020150000829 A KR 1020150000829A KR 20150000829 A KR20150000829 A KR 20150000829A KR 102354268 B1 KR102354268 B1 KR 102354268B1
Authority
KR
South Korea
Prior art keywords
processing unit
application
change
source
execute
Prior art date
Application number
KR1020150000829A
Other languages
English (en)
Other versions
KR20160084215A (ko
Inventor
이동수
윤홍서
Original Assignee
에스케이플래닛 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이플래닛 주식회사 filed Critical 에스케이플래닛 주식회사
Priority to KR1020150000829A priority Critical patent/KR102354268B1/ko
Publication of KR20160084215A publication Critical patent/KR20160084215A/ko
Application granted granted Critical
Publication of KR102354268B1 publication Critical patent/KR102354268B1/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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R39/00Rotary current collectors, distributors or interrupters
    • H01R39/02Details for dynamo electric machines
    • H01R39/04Commutators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream

Abstract

최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치가 개시된다. 어플리케이션을 실행할 소스 처리 유닛을 식별하고, 소스 처리 유닛의 부하량에 기반하여 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하고, 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하고, 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 할 수 있다. 시스템 전체 자원의 부하를 조절하여 전체 시스템 처리를 보다 효율적으로 수행하도록 하는 것이 가능하다.

Description

최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치 {METHOD FOR DYNAMIC PROCESSING APPLICATION FOR CLOUD STREAMING SERVICE AND APPARATUS FOR THE SAME}
본 발명은 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션의 처리 기술에 관한 것으로, 특히 소스 코드를 통해 어플리케이션을 실행할 처리 유닛을 식별하고, 해당 처리 유닛의 부하 정도에 따른 처리 유닛의 변경을 수행하여 어플리케이션을 실행시키는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치에 관한 것이다.
최근 인터넷의 발달로 인해 개인용 모바일 통신기기를 이용한 통신의 속도가 급격하게 향상되고, 이를 기반으로 원격지 컴퓨터 접속을 통해 대용량의 데이터를 다운로드 및 업로드하거나, 원격지 컴퓨터에 로컬 로그인하는 것과 같은 인터넷 환경이 조성되었다. 또한, 스마트폰과 같은 이동통신 단말에서 구동되는 어플리케이션이 다양하게 개발되면서, 비교적 낮은 성능의 사용자 단말에서 높은 성능을 필요로 하는 어플리케이션을 구동하기 위한 가상화 기술들이 많이 제안되고 있다. 그 중에서 어플리케이션을 서버에서 구동시키고 구동화면은 비디오 인코딩(Encoding)을 통해 압축하여 클라이언트로 전송하고, 클라이언트는 전송된 비디오를 재생하여 마치 자신의 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 화면 가상화 기반의 클라우드 스트리밍 서비스가 각광받고 있는 추세이다.
이와 같은 클라우드 스트리밍 서비스는 사용자 요청에 따라 네트워크로 연결된 웹 어플리케이션 서버에서 어플리케이션을 실행하고, 웹 어플리케이션 서버에서 실행된 어플리케이션의 결과 화면만을 다시 클라우드 스트리밍 서버가 전송받아 처리하는 방식으로 동작하고 있다. 이 때, 전체적인 시스템을 효율적으로 사용하기 위해서는 시스템에 구비되어 있는 리소스들을 효과적으로 사용해야 한다.
따라서, 어플리케이션을 실행하기 위한 처리 유닛을 식별하고, 해당 처리 유닛의 부하량을 기반으로 상대적으로 부하량이 적은 처리 유닛을 이용하여 어플리케이션을 실행시키고, 실행 결과를 클라우드 스트리밍을 통하여 제공되도록 하는 기술이 절실하게 대두되고 있다.
한국 공개 특허 제10-2014-0110486호, 2014년 9월 17일 공개 (명칭: 모바일 클라우드 컴퓨팅 환경에서의 리소스 관리 시스템 및 그 방법)
본 발명의 목적은, 시스템 전체 자원의 부하 밸런싱을 수행함으로써, 전체 시스템 처리를 효율적으로 수행할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 시스템에 구비된 자원을 이용하여 보다 효율적인 어플리케이션 처리 방법을 제공함으로써, 시스템 효율을 향상시키기 위한 업그레이드 비용을 절약할 수 있도록 하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 서버는, 어플리케이션을 실행할 소스 처리 유닛을 식별하는 처리 유닛 식별부; 상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 변경 여부 결정부; 상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 처리 유닛 변경부; 및 상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 제어부를 포함한다.
이 때, 처리 유닛 식별부는 상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 처리 유닛을 식별할 수 있다.
이 때, 처리 유닛 식별부는 상기 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 상기 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다.
이 때, 처리 유닛 변경부는 상기 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 동적으로 변경할 수 있다.
이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다.
이 때, 변경 처리 유닛의 부하량은 상기 기설정된 기준 부하량 미만일 수 있다.
이 때, 처리 유닛 변경부는 상기 소스 코드의 함수 후킹을 통해 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다.
또한, 본 발명에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은, 어플리케이션을 실행할 소스 처리 유닛을 식별하는 단계; 상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 단계; 상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 단계; 및 상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 단계를 포함한다.
이 때, 식별하는 단계는 상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 처리 유닛을 식별할 수 있다.
이 때, 식별하는 단계는 상기 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 상기 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다.
이 때, 변경하는 단계는 상기 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 동적으로 변경할 수 있다.
이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다.
이 때, 변경 처리 유닛의 부하량은 상기 기설정된 기준 부하량 미만일 수 있다.
이 때, 변경하는 단계는 상기 소스 코드의 함수 후킹을 통해 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다.
또한, 본 발명의 과제 해결을 위한 또 다른 수단으로써, 상술한 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다.
본 발명에 따르면, 시스템 전체 자원의 부하 밸런싱을 수행함으로써, 전체 시스템 처리를 효율적으로 수행할 수 있도록 할 수 있다.
또한, 본 발명은 시스템에 구비된 자원을 이용하여 보다 효율적인 어플리케이션 처리 방법을 제공함으로써, 시스템 효율을 향상시키기 위한 업그레이드 비용을 절약할 수 있다.
도 1은 본 발명의 일실시예에 따른 서버를 포함한 클라우드 스트리밍 서비스 시스템을 나타낸 도면이다.
도 2는 도 1에 도시된 서버를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 복수의 처리 유닛을 이용한 어플리케이션의 처리를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 상세하게 나타낸 동작 흐름도이다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.
도 1은 본 발명의 일실시예에 따른 서버를 포함한 클라우드 스트리밍 서비스 시스템을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 서버를 포함한 클라우드 스트리밍 서비스 시스템은 서버(110), 클라우드 스트리밍 서버(120), 단말 장치들(130-1, ..., 130-N) 및 네트워크(140)를 포함한다.
서버(110)는 어플리케이션을 실행할 소스 처리 유닛을 식별한다. 이 때, 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 소스 처리 유닛을 식별할 수 있다. 이 때, 소스 코드에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다.
또한, 서버(110)는 소스 처리 유닛의 부하량에 기반하여 어플리케이션을 실행할 처리 유닛의 변경 여부를 결정한다.
또한, 서버(110)는 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경한다. 이 때, 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 동적으로 변경할 수 있다. 이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다. 이 때, 변경 처리 유닛의 부하량은 기설정된 기준 부하량 미만일 수 있다. 이 때, 소스 코드의 함수 후킹을 통해 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다.
또한, 서버(110)는 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 한다.
클라우드 스트리밍 서버(120)는 서버(110)로부터 어플리케이션의 실행 결과 화면을 수신한다. 이와 같이 수신한 어플리케이션 실행 결과 화면을 인코딩하여 사용자가 마치 본인의 단말 장치들(130-1, ..., 130-N)에서 어플리케이션이 실행되는 것처럼 느낄 수 있도록 인코딩된 어플리케이션 결과 화면을 제공할 수 있다.
단말 장치들(130-1, ..., 130-N)은 클라우드 스트리밍 서버(120)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.
단말 장치들(130-1, ..., 130-N)은 각각 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 단말 장치들(130-1, ..., 130-N)은 각각 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.
네트워크(140)는 서버(110), 클라우드 스트리밍 서버(120)및 단말 장치들(130-1, ..., 130-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(140)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(140)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 1에서 서버(110) 및 클라우드 스트리밍 서버(120)와 단말 장치들(130-1, ..., 130-N) 사이에 사용되는 네트워크는 단말 장치들(130-1, ..., 130-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
도 2는 도 1에 도시된 서버를 나타낸 블록도이다.
도 2를 참조하면, 도 1에 도시된 서버(110)는 처리 유닛 식별부(210), 변경 여부 결정부(220), 처리 유닛 변경부(230), 제어부(240) 및 저장부(250)를 포함한다.
처리 유닛 식별부(210)는 어플리케이션을 실행할 소스 처리 유닛을 식별한다. 어플리케이션은 서버(110)에서 실행될 때 CPU(Central Processing Unit) 혹은 GPU(Graphic Processing Unit) 중 어느 하나의 처리 유닛을 통해 실행되거나, 해당 처리 유닛에 보다 많이 할당되도록 소스 단에서 정해질 수 있다. 따라서, 어플리케이션의 소스 처리 유닛에 따라 CPU와 GPU의 자원 소모 정도가 다르다면, 이를 시스템 자원 상황에 따라 조절할 수 있어야 보다 효율적으로 시스템을 관리할 수 있다. 만약, 시스템의 자원 상황을 고려하지 않고 어플리케이션의 소스 처리 유닛에 따라 어플리케이션을 실행하는 경우, 클라우드 스트리밍과 같이 복수의 어플리케이션들을 동시에 실행시켜야 하는 상황에서 전체 시스템의 자원을 최적으로 사용하기 어려울 수 있다.
따라서, 어플리케이션이 어떤 자원을 사용하는지 확인하기 위해서 어플리케이션을 실행할 소스 처리 유닛을 식별할 수 있다.
이 때, 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 소스 처리 유닛을 식별할 수 있다.
후킹(Hooking)은 운영체제나 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법 및 기술을 말할 수 있다. 이 때, 후킹에 의해 간섭된 함수 호출, 이벤트 또는 메시지를 처리하는 코드를 후크(Hook)라고 한다.
따라서, 어플리케이션에 상응하는 소스 코드에서 소스 처리 유닛과 관련된 함수를 후킹하여 획득한 뒤, 함수를 분석하여 소스 처리 유닛을 식별할 수 있다.
이 때, 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다. 예를 들어, HTML(Hypertext Markup Language)에서 플래시를 이용하기 위해서는 object 태그 및 param 태그 등의 멀티미디어 태그를 이용하여 플래시를 삽입할 수 있다. 이 때, 삽입한 플래시를 모든 HTML 페이지의 뒤로 보내고 싶을 때, 즉 플래시 동영상을 HTML 페이지로 가리고 싶을 때 'wmode'의 속성을 매개 변수로 주고 매개 변수의 값을 'opaque'로 설정함으로써 해결할 수 있다. 또한, 'opaque'와 비슷하지만 완전히 가려지지 않고 투명하게 보이는 효과를 주고 싶을 때에는 'wmode'의 속성 값을 'transparent'로 설정함으로써 해결할 수 있다.
따라서, 어플리케이션의 소스 코드에서 이와 같은 'opaque' 및 'transparent' 중 적어도 하나의 매개 변수 값이 발견된다면 어플리케이션의 소스 처리 유닛이 CPU라고 판단할 수 있다.
또한, 어플리케이션 소스 코드에 GPU와 관련된 함수가 포함된 경우에는 어플리케이션의 소스 처리 유닛이 GPU에 상응할 수 있다.
변경 여부 결정부(220)는 소스 처리 유닛의 부하량에 기반하여 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정한다. 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU 라고 가정하였을 때, 시스템에 구비된 CPU의 부하량을 획득하여 이미 설정된 기준 부하량과 비교할 수 있다. 만약 CPU의 부하량이 이미 설정된 기준 부하량 이상이라면, 어플리케이션을 실행할 처리 유닛을 변경할 필요가 있다고 결정할 수 있다.
처리 유닛 변경부(230)는 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경한다. 예를 들어, 어플리케이션의 소스 처리 유닛이 GPU이고 GPU의 부하량을 기반으로 어플리케이션을 실행할 처리 유닛의 변경이 필요하다고 판단된 경우라면, 어플리케이션을 실행할 처리 유닛을 시스템에 구비된 다른 처리 유닛인 CPU로 변경할 수 있다. 즉, 어플리케이션을 실행할 처리 유닛을 GPU에서 CPU로 변경함으로써 보다 상대적으로 부하량이 적은 CPU를 이용하여 어플리케이션을 효율적으로 실행시킬 수 있다.
이 때, 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다. 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상이라는 것은 현재 소스 처리 유닛을 이용하여 어플리케이션을 실행시킬 수 없거나, 또는 실행시키더라도 지연이 발생할 수 있다는 의미일 수 있다. 따라서, 보다 안정적이고 신속하게 어플리케이션을 실행시키기 위해 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛보다 상대적으로 부하량이 낮은 변경 처리 유닛으로 변경할 수 있다.
이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit)중 어느 하나에 상응할 수 있다. 시스템에서 어플리케이션을 실행시키는데 사용될 수 있는 CPU와 GPU 중 어느 하나의 처리 유닛이 변경 처리 유닛, 또한 소스 처리 유닛에 상응할 수 있다.
또한, CPU와 GPU는 시스템에 각각 복수개가 구비될 수도 있다. 예를 들어, 멀티 코어(multi-core) CPU는 두 개 이상의 독립 코어를 단일 직접 회로로 이루어진 하나의 패키지로 통합한 것으로 칩 레벨 멀티프로세서(CMP)라고도 할 수 있다. 이러한 멀티 코어 CPU는 독립 코어의 개수가 2개인 듀얼 코어(dual-core), 독립 코어가 3개인 트리플 코어(triple-core), 독립 코어가 4개인 쿼드 코어(quad core), 독립 코어가 6개인 헥사 코어(hexa core), 독립 코어가 8개인 옥타 코어(octa-core) 및 심지어 독립 코어가 12개인 마그니 코어(magni-core) 등 다양하게 존재하고 있다.
또한, GPU는 그래픽 처리 성능 향상을 위해서 복수의 CPU를 동시에 탑재하여 성능을 높이는 멀티 GPU 환경을 구현할 수 있고, 한 대의 컴퓨터에 2개 이상의 그래픽카드를 함께 꽂아 멀티 GPU 환경을 구현할 수도 있다.
이 때, 변경 처리 유닛의 부하량은 기설정된 기준 부하량 미만일 수 있다. 예를 들어, 소스 처리 유닛을 변경할 필요가 있다고 판단된 경우에는 변경 처리 유닛의 부하량도 산출하여 기설정된 기준 부하량과 비교할 수 있다. 만약, 변경 처리 유닛의 부하량이 기설정된 기준 부하량 미만이라면 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다.
또한, 변경 처리 유닛의 부하량도 기설정된 기준 부하량 이상이라면, 소스 처리 유닛과 변경 처리 유닛 중 처리 속도가 더 빠른 처리 유닛을 이용하여 어플리케이션을 실행할 수 있다. 소스 처리 유닛과 변경 처리 유닛이 모두 과부하인 경우에는 당장 어느 처리 유닛에서도 어플리케이션을 원활하게 실행할 수 없다고 판단하고, 각각의 처리 유닛의 성능을 기반으로 어플리케이션의 실행을 할당할 수 있다.
이 때, 소스 코드의 함수 후킹을 통해 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다. 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU이고, 이미 시스템에 구비된 CPU의 부하량이 기설정된 기준 부하량 이상일 경우에는, 어플리케이션을 실행할 처리 유닛을 변경해야 하기 때문에 어플리케이션 소스 코드에 포함된 함수를 GPU를 사용하는 함수로 변경할 수 있다. 이 때, 후킹을 이용하여 함수를 변경할 수 있고, 함수를 변경함으로써 어플리케이션을 실행할 처리 유닛을 GPU로 변경할 수 있다.
제어부(240)는 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 한다. 변경 처리 유닛을 이용하여 실행한 어플리케이션의 실행 결과를 클라우드 스트리밍 서버로 제공하고, 클라우드 스트리밍 서버에서 클라우드 스트리밍 서비스를 수행하도록 할 수 있다.
저장부(250)는 상술한 바와 같이 본 발명의 실시예에 따른 어플리케이션 실행 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 저장부(250)는 서버(110)와 독립적으로 구성되어 어플리케이션의 실행을 위한 기능을 지원할 수 있다. 이 때, 저장부(250)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 서버(110)는 하나 이상의 서버로 구현될 수 있다.
한편, 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛을 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
도 3은 본 발명의 일실시예에 따른 복수의 처리 유닛을 이용한 어플리케이션의 처리를 나타낸 도면이다.
도 3을 참조하면, 어플리케이션(310)의 소스 처리 유닛을 식별하고, 해당하는 소스 처리 유닛의 부하량에 기반하여 어플리케이션(310)을 실행할 처리 유닛의 변경 필요 여부를 결정할 수 있다.
예를 들어, 어플리케이션(310)의 소스 처리 유닛이 CPU라고 가정한다면, 시스템에 구비된 CPU들(320-1, ..., 320-N)의 부하량을 체크할 수 있다. 만약, CPU들(320-1, ..., 320-N)의 부하량이 기설정된 기준 부하량 이상이라면, 어플리케이션(310)을 실행할 처리 유닛을 변경할 필요가 있다고 판단할 수 있다.
따라서, 어플리케이션(310)을 실행할 처리 유닛을 CPU에 상응하는 소스 처리 유닛에서 GPU에 상응하는 변경 처리 유닛으로 변경할 수 있다. 이 때, GPU들(Graphic Processing Unit)(330-1, ..., 330-N)의 부하량은 기설정된 기준 부하량 미만일 수 있다.
이 때, 만약 어플리케이션(310)을 실행할 처리 유닛의 변경을 고려하지 않고 소스 처리 유닛을 이용하여 어플리케이션(310)을 실행한다면, 소스 처리 유닛, 즉 CPU들(320-1, ..., 320-N)의 과부하로 인해 어플리케이션(310)의 실행이 지연될 수 있다. 결국 시스템에 구비된 GPU들(330-1, ..., 330-N)은 어플리케이션(310)을 충분히 실행시킬 수 있을 만큼 여유로운 상태임에도 불구하고 소스 처리 유닛을 통해서만 어플리케이션(310) 실행하도록 하는 상황이 발생할 수 있다.
따라서, 본 발명에 따른 어플리케이션 처리 방법을 이용하면 이와 같이 비효율적인 처리 상황이 발생하지 않으므로, 시스템에 구비된 자원들을 보다 효율적으로 사용할 수 있다. 또한, 그만큼 어플리케이션을 신속하게 실행시켜 처리할 수 있다.
도 4는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 나타낸 동작 흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 어플리케이션을 실행할 소스 처리 유닛을 식별한다(S410). 어플리케이션은 서버에서 실행될 때 CPU(Central Processing Unit) 혹은 GPU(Graphic Processing Unit) 중 어느 하나의 처리 유닛을 통해 실행되거나, 해당 처리 유닛에 보다 많이 할당되도록 소스 단에서 정해질 수 있다. 따라서, 어플리케이션의 소스 처리 유닛에 따라 CPU와 GPU의 자원 소모 정도가 다르다면, 이를 시스템 자원 상황에 따라 조절할 수 있어야 보다 효율적으로 시스템을 관리할 수 있다. 만약, 시스템의 자원 상황을 고려하지 않고 어플리케이션의 소스 처리 유닛에 따라 어플리케이션을 실행하는 경우, 클라우드 스트리밍과 같이 복수의 어플리케이션들을 동시에 실행시켜야 하는 상황에서 전체 시스템의 자원을 최적으로 사용하기 어려울 수 있다.
따라서, 어플리케이션이 어떤 자원을 사용하는지 확인하기 위해서 어플리케이션을 실행할 소스 처리 유닛을 식별할 수 있다.
이 때, 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 소스 처리 유닛을 식별할 수 있다.
후킹(Hooking)은 운영체제나 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법 및 기술을 말할 수 있다. 이 때, 후킹에 의해 간섭된 함수 호출, 이벤트 또는 메시지를 처리하는 코드를 후크(Hook)라고 한다.
따라서, 어플리케이션에 상응하는 소스 코드에서 소스 처리 유닛과 관련된 함수를 후킹하여 획득한 뒤, 함수를 분석하여 소스 처리 유닛을 식별할 수 있다.
이 때, 소스 코드에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다. 예를 들어, HTML(Hypertext Markup Language)에서 플래시를 이용하기 위해서는 object 태그 및 param 태그 등의 멀티미디어 태그를 이용하여 플래시를 삽입할 수 있다. 이 때, 삽입한 플래시를 모든 HTML 페이지의 뒤로 보내고 싶을 때, 즉 플래시 동영상을 HTML 페이지로 가리고 싶을 때 'wmode'의 속성을 매개 변수로 주고 매개 변수의 값을 'opaque'로 설정함으로써 해결할 수 있다. 또한, 'opaque'와 비슷하지만 완전히 가려지지 않고 투명하게 보이는 효과를 주고 싶을 때에는 'wmode'의 속성 값을 'transparent'로 설정함으로써 해결할 수 있다.
따라서, 어플리케이션의 소스 코드에서 이와 같은 'opaque' 및 'transparent' 중 적어도 하나의 매개 변수 값이 발견된다면 어플리케이션의 소스 처리 유닛이 CPU라고 판단할 수 있다.
또한, 어플리케이션 소스 코드에 GPU와 관련된 함수가 포함된 경우에는 어플리케이션의 소스 처리 유닛이 GPU에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 소스 처리 유닛의 부하량에 기반하여, 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정한다(S420). 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU 라고 가정하였을 때, 시스템에 구비된 CPU의 부하량을 획득하여 이미 설정된 기준 부하량과 비교할 수 있다. 만약 CPU의 부하량이 이미 설정된 기준 부하량 이상이라면, 어플리케이션을 실행할 처리 유닛을 변경할 필요가 있다고 결정할 수 있다.
또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경한다(S430). 예를 들어, 어플리케이션의 소스 처리 유닛이 GPU이고 GPU의 부하량을 기반으로 어플리케이션을 실행할 처리 유닛의 변경이 필요하다고 판단된 경우라면, 어플리케이션을 실행할 처리 유닛을 시스템에 구비된 다른 처리 유닛인 CPU로 변경할 수 있다. 즉, 어플리케이션을 실행할 처리 유닛을 GPU에서 CPU로 변경함으로써 보다 상대적으로 부하량이 적은 CPU를 이용하여 어플리케이션을 효율적으로 실행시킬 수 있다.
이 때, 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다. 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상이라는 것은 현재 소스 처리 유닛을 이용하여 어플리케이션을 실행시킬 수 없거나, 또는 실행시키더라도 지연이 발생할 수 있다는 의미일 수 있다. 따라서, 보다 안정적이고 신속하게 어플리케이션을 실행시키기 위해 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛보다 상대적으로 부하량이 낮은 변경 처리 유닛으로 변경할 수 있다.
이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit)중 어느 하나에 상응할 수 있다. 시스템에서 어플리케이션을 실행시키는데 사용될 수 있는 CPU와 GPU 중 어느 하나의 처리 유닛이 변경 처리 유닛, 또한 소스 처리 유닛에 상응할 수 있다.
또한, CPU와 GPU는 시스템에 각각 복수개가 구비될 수도 있다. 예를 들어, 멀티 코어(multi-core) CPU는 두 개 이상의 독립 코어를 단일 직접 회로로 이루어진 하나의 패키지로 통합한 것으로 칩 레벨 멀티프로세서(CMP)라고도 할 수 있다. 이러한 멀티 코어 CPU는 독립 코어의 개수가 2개인 듀얼 코어(dual-core), 독립 코어가 3개인 트리플 코어(triple-core), 독립 코어가 4개인 쿼드 코어(quad core), 독립 코어가 6개인 헥사 코어(hexa core), 독립 코어가 8개인 옥타 코어(octa-core) 및 심지어 독립 코어가 12개인 마그니 코어(magni-core) 등 다양하게 존재하고 있다.
또한, GPU는 그래픽 처리 성능 향상을 위해서 복수의 CPU를 동시에 탑재하여 성능을 높이는 멀티 GPU 환경을 구현할 수 있고, 한 대의 컴퓨터에 2개 이상의 그래픽카드를 함께 꽂아 멀티 GPU 환경을 구현할 수도 있다.
이 때, 변경 처리 유닛의 부하량은 기설정된 기준 부하량 미만일 수 있다. 예를 들어, 소스 처리 유닛을 변경할 필요가 있다고 판단된 경우에는 변경 처리 유닛의 부하량도 산출하여 기설정된 기준 부하량과 비교할 수 있다. 만약, 변경 처리 유닛의 부하량이 기설정된 기준 부하량 미만이라면 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다.
또한, 변경 처리 유닛의 부하량도 기설정된 기준 부하량 이상이라면, 소스 처리 유닛과 변경 처리 유닛 중 처리 속도가 더 빠른 처리 유닛을 이용하여 어플리케이션을 실행할 수 있다. 소스 처리 유닛과 변경 처리 유닛이 모두 과부하인 경우에는 당장 어느 처리 유닛에서도 어플리케이션을 원활하게 실행할 수 없다고 판단하고, 각각의 처리 유닛의 성능을 기반으로 어플리케이션의 실행을 할당할 수 있다.
이 때, 소스 코드의 함수 후킹을 통해 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다. 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU이고, 이미 시스템에 구비된 CPU의 부하량이 기설정된 기준 부하량 이상일 경우에는, 어플리케이션을 실행할 처리 유닛을 변경해야 하기 때문에 어플리케이션 소스 코드에 포함된 함수를 GPU를 사용하는 함수로 변경할 수 있다. 이 때, 후킹을 이용하여 함수를 변경할 수 있고, 함수를 변경함으로써 어플리케이션을 실행할 처리 유닛을 GPU로 변경할 수 있다.
또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 한다(S440). 변경 처리 유닛을 이용하여 실행한 어플리케이션의 실행 결과를 클라우드 스트리밍 서버로 제공하고, 클라우드 스트리밍 서버에서 클라우드 스트리밍 서비스를 수행하도록 할 수 있다.
또한, 도 4에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 어플리케이션 실행 과정에서 발생되는 다양한 정보를 저장한다.
도 5는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 상세하게 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 어플리케이션 소스 코드의 함수를 후킹한다(S510).
또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 후킹한 어플리케이션 소스 코드의 함수를 기반으로 소스 처리 유닛을 식별한다(S520). 이 때, 소스 코드에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다.
또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 식별된 소스 처리 유닛의 부하량을 산출한다(S530).
또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상인지 여부를 판단한다(S535).
단계(S535)의 판단결과 기설정된 기준 부하량 이상이면, 어플리케이션을 처리할 처리 유닛을 변경 처리 유닛으로 변경하고(S540), 변경 처리 유닛을 이용하여 어플리케이션을 실행한다(S550). 이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다.
단계(S535)의 판단결과 기설정된 기준 부하량 미만이면, 어플리케이션을 처리할 처리 유닛을 변경하지 않고 소스 처리 유닛으로 어플리케이션을 실행한다(S560).
또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 클라우드 스트리밍 서비스를 수행하기 위해 어플리케이션의 실행 결과를 클라우드 스트리밍 서버로 제공한다(S570).
본 발명에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서와 같이 본 발명에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
본 발명에 의하면 어플리케이션을 실행할 소스 처리 유닛을 식별하고, 소스 처리 유닛의 부하량에 기반하여 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하고, 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하고, 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 할 수 있다. 나아가, 시스템 자원을 효율적으로 사용할 수 있는 방법을 제공함으로써, 하드웨어적으로 시스템의 성능을 향상시키기 위한 비용을 절약할 수 있다.
110: 서버 120: 클라우드 스트리밍 서버
130-1~ 130-N: 단말 장치 140: 네트워크
210: 처리 유닛 식별부 220: 변경 여부 결정부
230: 처리 유닛 변경부 240: 제어부
250: 저장부 310: 어플리케이션
320-1~ 320~N: CPU들 330-1~ 330-N: GPU들

Claims (15)

  1. 어플리케이션을 실행할 소스 처리 유닛을 식별하는 처리 유닛 식별부;
    상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 변경 여부 결정부;
    상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 처리 유닛 변경부; 및
    상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 제어부
    를 포함하고,
    상기 처리 유닛 식별부는
    상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 코드에 포함된 매개 변수의 값을 기반으로 상기 소스 처리 유닛을 식별하는 것을 특징으로 하는 서버.
  2. 삭제
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 1에 있어서,
    상기 처리 유닛 식별부는
    상기 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 상기 소스 처리 유닛을 CPU(Central Processing Unit)로 식별하는 것을 특징으로 하는 서버.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 1에 있어서,
    상기 처리 유닛 변경부는
    상기 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 동적으로 변경하는 것을 특징으로 하는 서버.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 어플리케이션을 실행할 소스 처리 유닛을 식별하는 단계;
    상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 단계;
    상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 단계; 및
    상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 단계
    를 포함하고,
    상기 식별하는 단계는
    상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 코드에 포함된 매개 변수의 값을 기반으로 상기 소스 처리 유닛을 식별하는 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020150000829A 2015-01-05 2015-01-05 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치 KR102354268B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150000829A KR102354268B1 (ko) 2015-01-05 2015-01-05 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150000829A KR102354268B1 (ko) 2015-01-05 2015-01-05 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20160084215A KR20160084215A (ko) 2016-07-13
KR102354268B1 true KR102354268B1 (ko) 2022-01-21

Family

ID=56505602

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150000829A KR102354268B1 (ko) 2015-01-05 2015-01-05 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR102354268B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102034845B1 (ko) * 2018-03-23 2019-10-21 에스케이플래닛 주식회사 선택적 인코딩 기반의 클라우드 스트리밍 서비스 방법 및 위한 장치
KR102510650B1 (ko) * 2020-12-14 2023-03-20 한국전자기술연구원 온디바이스 기반 데이터 분석 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101668282B1 (ko) * 2011-07-22 2016-10-24 엔트릭스 주식회사 화면 가상화 기반 어플리케이션 구동 시스템 및 방법
KR20130064292A (ko) * 2011-12-08 2013-06-18 한국전자통신연구원 스마트 폰을 위한 클라우드 서비스 시스템 및 방법
KR101531834B1 (ko) 2013-03-08 2015-06-26 주식회사 알투소프트 모바일 클라우드 컴퓨팅 환경에서의 리소스 관리 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20160084215A (ko) 2016-07-13

Similar Documents

Publication Publication Date Title
KR102201676B1 (ko) Mec 애플리케이션의 재배치를 제어하기 위한 방법 및 서버
CN112233217B (zh) 一种虚拟场景的渲染方法和装置
CN107547629B (zh) 客户端静态资源下载的方法、装置、电子设备和可读介质
US10601891B2 (en) Cloud streaming service system and cloud streaming service method for utilizing an optimal GPU for video decoding based on resource conditions, and apparatus for the same
US9161064B2 (en) Auto-scaling management of web content
WO2012101585A1 (en) Prioritized image rendering based on position within a web page
AU2019256257B2 (en) Processor core scheduling method and apparatus, terminal, and storage medium
CN104093046B (zh) 一种基于云游戏的视频插播系统及方法
CN109697121B (zh) 用于向应用分配处理资源的方法、设备和计算机可读介质
US20160026728A1 (en) Interaction Method And Device Between Browsers And Browser
US8972968B1 (en) Alternate service for applications
US20170083387A1 (en) High-performance computing framework for cloud computing environments
KR20170107667A (ko) 원격화면 전송 방법 및 원격화면 전송 시스템
KR102354268B1 (ko) 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치
US10021162B2 (en) Cloud streaming service system, and method and apparatus for providing cloud streaming service
US9830307B1 (en) Ahead of time compilation of content pages
US20160142723A1 (en) Frame division into subframes
US11176223B1 (en) Page rendering by an intermediary system that uses a truncated library
KR102177934B1 (ko) 클라우드 스트리밍 서비스 시스템, 변화된 이미지의 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20200097498A (ko) 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법
US10241983B1 (en) Vector-based encoding for content rendering
KR20160091622A (ko) 클라우드 스트리밍 서비스 시스템, 변화 영역의 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102313530B1 (ko) 클라우드 스트리밍 서비스 시스템, 화면 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20140103038A (ko) 단말 장치, 서버, 단말 장치의 브라우저 구동 시스템, 단말 장치의 브라우저 구동 방법
KR102247888B1 (ko) 클라우드 스트리밍 서비스 시스템, 선택적 스트리밍 파이프라인 방식에 기반한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant