KR20160084215A - Method for dynamic processing application for cloud streaming service and apparatus for the same - Google Patents

Method for dynamic processing application for cloud streaming service and apparatus for the same Download PDF

Info

Publication number
KR20160084215A
KR20160084215A KR1020150000829A KR20150000829A KR20160084215A KR 20160084215 A KR20160084215 A KR 20160084215A KR 1020150000829 A KR1020150000829 A KR 1020150000829A KR 20150000829 A KR20150000829 A KR 20150000829A KR 20160084215 A KR20160084215 A KR 20160084215A
Authority
KR
South Korea
Prior art keywords
processing unit
application
source
change
execute
Prior art date
Application number
KR1020150000829A
Other languages
Korean (ko)
Other versions
KR102354268B1 (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 KR1020150000829A priority Critical patent/KR102354268B1/en
Publication of KR20160084215A publication Critical patent/KR20160084215A/en
Application granted granted Critical
Publication of KR102354268B1 publication Critical patent/KR102354268B1/en

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed are a dynamic application processing method for the optimum cloud streaming server, and an apparatus for the same. The method comprises the steps of: identifying a source processing unit which runs an application; determining whether modification of a processing unit is needed for running an application on the basis of loads of the source processing unit; dynamically changing the processing unit, if a modification is needed, running an application into a modification processing unit by the source processing unit; generating an execution result by running the application through the modification processing unit; and providing the execution result via a cloud streaming. The method adjusts loads of the entire system resources, thereby more efficiently performing the entire system processing.

Description

최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치 {METHOD FOR DYNAMIC PROCESSING APPLICATION FOR CLOUD STREAMING SERVICE AND APPARATUS FOR THE SAME}METHOD FOR DYNAMIC PROCESSING APPLICATION FOR CLOUD STREAMING SERVICE AND APPARATUS FOR THE SAME,

본 발명은 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션의 처리 기술에 관한 것으로, 특히 소스 코드를 통해 어플리케이션을 실행할 처리 유닛을 식별하고, 해당 처리 유닛의 부하 정도에 따른 처리 유닛의 변경을 수행하여 어플리케이션을 실행시키는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a processing technique of a dynamic application for an optimal cloud streaming service, and more particularly, to a processing technology for identifying a processing unit to execute an application through source code, To a dynamic application processing method for an optimal cloud streaming service and an apparatus therefor.

최근 인터넷의 발달로 인해 개인용 모바일 통신기기를 이용한 통신의 속도가 급격하게 향상되고, 이를 기반으로 원격지 컴퓨터 접속을 통해 대용량의 데이터를 다운로드 및 업로드하거나, 원격지 컴퓨터에 로컬 로그인하는 것과 같은 인터넷 환경이 조성되었다. 또한, 스마트폰과 같은 이동통신 단말에서 구동되는 어플리케이션이 다양하게 개발되면서, 비교적 낮은 성능의 사용자 단말에서 높은 성능을 필요로 하는 어플리케이션을 구동하기 위한 가상화 기술들이 많이 제안되고 있다. 그 중에서 어플리케이션을 서버에서 구동시키고 구동화면은 비디오 인코딩(Encoding)을 통해 압축하여 클라이언트로 전송하고, 클라이언트는 전송된 비디오를 재생하여 마치 자신의 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 화면 가상화 기반의 클라우드 스트리밍 서비스가 각광받고 있는 추세이다.Recently, due to the development of the Internet, the speed of communication using a personal mobile communication device has been dramatically improved. Based on this, an Internet environment such as downloading and uploading a large amount of data through a remote computer connection or locally logging into a remote computer . In addition, as a variety of applications have been developed for mobile communication terminals such as smart phones, many virtualization technologies have been proposed for driving applications requiring high performance in relatively low performance user terminals. Among them, the application is driven on the server, the driving screen is compressed through video encoding and transmitted to the client, and the client reproduces the transmitted video to generate a screen virtualization Cloud streaming service is becoming popular.

이와 같은 클라우드 스트리밍 서비스는 사용자 요청에 따라 네트워크로 연결된 웹 어플리케이션 서버에서 어플리케이션을 실행하고, 웹 어플리케이션 서버에서 실행된 어플리케이션의 결과 화면만을 다시 클라우드 스트리밍 서버가 전송받아 처리하는 방식으로 동작하고 있다. 이 때, 전체적인 시스템을 효율적으로 사용하기 위해서는 시스템에 구비되어 있는 리소스들을 효과적으로 사용해야 한다. The cloud streaming service operates in a manner that the cloud streaming server executes an application on a web application server connected to the network in response to a user request, and only the result screen of the application executed in the web application server is received by the cloud streaming server. At this time, in order to efficiently use the entire system, the resources provided in the system must be effectively used.

따라서, 어플리케이션을 실행하기 위한 처리 유닛을 식별하고, 해당 처리 유닛의 부하량을 기반으로 상대적으로 부하량이 적은 처리 유닛을 이용하여 어플리케이션을 실행시키고, 실행 결과를 클라우드 스트리밍을 통하여 제공되도록 하는 기술이 절실하게 대두되고 있다.Therefore, there is a need for a technology that identifies a processing unit for executing an application, executes an application using a processing unit having a relatively small load based on the load of the processing unit, and provides the execution result through cloud streaming Is emerging.

한국 공개 특허 제10-2014-0110486호, 2014년 9월 17일 공개 (명칭: 모바일 클라우드 컴퓨팅 환경에서의 리소스 관리 시스템 및 그 방법)Korean Patent Laid-Open No. 10-2014-0110486, September 17, 2014 (Name: Resource Management System and Method in Mobile Cloud Computing Environment)

본 발명의 목적은, 시스템 전체 자원의 부하 밸런싱을 수행함으로써, 전체 시스템 처리를 효율적으로 수행할 수 있도록 하는 것이다.An object of the present invention is to perform load balancing of the entire resources of the system, thereby efficiently performing the entire system processing.

또한, 본 발명의 목적은 시스템에 구비된 자원을 이용하여 보다 효율적인 어플리케이션 처리 방법을 제공함으로써, 시스템 효율을 향상시키기 위한 업그레이드 비용을 절약할 수 있도록 하는 것이다.It is another object of the present invention to provide a more efficient method of processing an application using resources provided in a system, thereby saving an upgrade cost for improving system efficiency.

상기한 목적을 달성하기 위한 본 발명에 따른 서버는, 어플리케이션을 실행할 소스 처리 유닛을 식별하는 처리 유닛 식별부; 상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 변경 여부 결정부; 상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 처리 유닛 변경부; 및 상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 제어부를 포함한다.According to an aspect of the present invention, there is provided a server comprising: a processing unit identification unit for identifying a source processing unit to execute an application; A change determining unit for determining whether or not a change of a processing unit to execute the application is required based on a load of the source processing unit; A processing unit changing unit that dynamically changes a processing unit to execute the application from the source processing unit to the change processing unit when it is determined that the change is necessary; And a control unit for executing the application using the change processing unit to generate an execution result, and causing the execution result to be provided through the cloud streaming.

이 때, 처리 유닛 식별부는 상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 처리 유닛을 식별할 수 있다.At this time, the processing unit identification unit can identify the source processing unit through function hooking of the source code corresponding to the application.

이 때, 처리 유닛 식별부는 상기 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 상기 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다.At this time, the processing unit identification unit may identify the source processing unit as a CPU (Central Processing Unit) when at least one of Opaque and Transparent is included in the parameter value included in the source code.

이 때, 처리 유닛 변경부는 상기 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 동적으로 변경할 수 있다.At this time, when the load of the source processing unit is equal to or greater than a predetermined reference load amount, the processing unit changing unit can dynamically change the processing unit to execute the application to the change processing unit.

이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다.At this time, the change processing unit may correspond to any one of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit).

이 때, 변경 처리 유닛의 부하량은 상기 기설정된 기준 부하량 미만일 수 있다.At this time, the load amount of the change processing unit may be less than the predetermined reference load amount.

이 때, 처리 유닛 변경부는 상기 소스 코드의 함수 후킹을 통해 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다.At this time, the processing unit changing unit may change the processing unit to execute the application through the function hooking of the source code to the change processing unit.

또한, 본 발명에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은, 어플리케이션을 실행할 소스 처리 유닛을 식별하는 단계; 상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 단계; 상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 단계; 및 상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 단계를 포함한다.According to another aspect of the present invention, there is provided a dynamic application processing method for an optimal cloud streaming service, comprising: identifying a source processing unit to execute an application; Determining whether a processing unit to execute the application needs to be changed based on a load of the source processing unit; Dynamically changing a processing unit to execute the application from the source processing unit to the change processing unit when it is determined that the change is necessary; And executing the application using the change processing unit to generate an execution result, and causing the execution result to be provided through the cloud streaming.

이 때, 식별하는 단계는 상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 처리 유닛을 식별할 수 있다.At this time, the identifying step may identify the source processing unit through function hooking of the source code corresponding to the application.

이 때, 식별하는 단계는 상기 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 상기 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다.In this case, if the value of the parameter included in the source code includes at least one of Opaque and Transparent, the identifying step may identify the source processing unit as a CPU (Central Processing Unit).

이 때, 변경하는 단계는 상기 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 동적으로 변경할 수 있다.At this time, the changing step may dynamically change the processing unit to execute the application to the change processing unit when the load of the source processing unit is equal to or larger than a predetermined reference load amount.

이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다.At this time, the change processing unit may correspond to any one of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit).

이 때, 변경 처리 유닛의 부하량은 상기 기설정된 기준 부하량 미만일 수 있다.At this time, the load amount of the change processing unit may be less than the predetermined reference load amount.

이 때, 변경하는 단계는 상기 소스 코드의 함수 후킹을 통해 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다.At this time, the changing step may change the processing unit to execute the application through function hooking of the source code to the change processing unit.

또한, 본 발명의 과제 해결을 위한 또 다른 수단으로써, 상술한 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다.As another means for solving the problem of the present invention, there is provided a computer program stored in a medium for executing the above-described method.

본 발명에 따르면, 시스템 전체 자원의 부하 밸런싱을 수행함으로써, 전체 시스템 처리를 효율적으로 수행할 수 있도록 할 수 있다.According to the present invention, the load balancing of the entire resources of the system is performed, so that the entire system processing can be efficiently performed.

또한, 본 발명은 시스템에 구비된 자원을 이용하여 보다 효율적인 어플리케이션 처리 방법을 제공함으로써, 시스템 효율을 향상시키기 위한 업그레이드 비용을 절약할 수 있다.In addition, the present invention provides a more efficient application processing method using resources provided in the system, thereby saving upgrade cost for improving system efficiency.

도 1은 본 발명의 일실시예에 따른 서버를 포함한 클라우드 스트리밍 서비스 시스템을 나타낸 도면이다.
도 2는 도 1에 도시된 서버를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 복수의 처리 유닛을 이용한 어플리케이션의 처리를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 상세하게 나타낸 동작 흐름도이다.
1 is a diagram illustrating a cloud streaming service system including a server according to an embodiment of the present invention.
2 is a block diagram showing the server shown in FIG.
3 is a diagram showing processing of an application using a plurality of processing units according to an embodiment of the present invention.
4 is a flowchart illustrating a dynamic application processing method for an optimal cloud streaming service according to an exemplary embodiment of the present invention.
5 is a detailed flowchart illustrating a dynamic application processing method for an optimal cloud streaming service according to an exemplary embodiment of the present invention.

이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.The terms and words used in the present specification and claims should not be construed to be limited to ordinary or dictionary meanings and the inventor is not limited to the concept of terminology for describing his or her invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible. Also, the terms first, second, etc. are used for describing various components and are used only for the purpose of distinguishing one component from another component, and are not used to define the components.

도 1은 본 발명의 일실시예에 따른 서버를 포함한 클라우드 스트리밍 서비스 시스템을 나타낸 도면이다.1 is a diagram illustrating a cloud streaming service system including a server according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 서버를 포함한 클라우드 스트리밍 서비스 시스템은 서버(110), 클라우드 스트리밍 서버(120), 단말 장치들(130-1, ..., 130-N) 및 네트워크(140)를 포함한다.1, a cloud streaming service system including a server according to an embodiment of the present invention includes a server 110, a cloud streaming server 120, terminal devices 130-1 to 130-N, And a network 140.

서버(110)는 어플리케이션을 실행할 소스 처리 유닛을 식별한다. 이 때, 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 소스 처리 유닛을 식별할 수 있다. 이 때, 소스 코드에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다. The server 110 identifies a source processing unit to execute the application. At this time, the source processing unit can be identified through function hooking of the source code corresponding to the application. At this time, if the source code includes at least one of Opaque and Transparent, the source processing unit can be identified as a CPU (Central Processing Unit).

또한, 서버(110)는 소스 처리 유닛의 부하량에 기반하여 어플리케이션을 실행할 처리 유닛의 변경 여부를 결정한다.In addition, the server 110 determines whether to change the processing unit to execute the application based on the load of the source processing unit.

또한, 서버(110)는 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경한다. 이 때, 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 동적으로 변경할 수 있다. 이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다. 이 때, 변경 처리 유닛의 부하량은 기설정된 기준 부하량 미만일 수 있다. 이 때, 소스 코드의 함수 후킹을 통해 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다.In addition, when it is determined that a change is necessary, the server 110 dynamically changes the processing unit to execute the application from the source processing unit to the change processing unit. At this time, when the load of the source processing unit is equal to or larger than the predetermined reference load amount, the processing unit on which the application is to be executed can be dynamically changed to the change processing unit. At this time, the change processing unit may correspond to any one of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit). At this time, the load of the change processing unit may be less than the predetermined reference load amount. At this time, the processing unit in which the application is to be executed through function hooking of the source code can be changed to the change processing unit.

또한, 서버(110)는 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 한다.In addition, the server 110 executes the application using the change processing unit to generate the execution result, and the execution result is provided through the cloud streaming.

클라우드 스트리밍 서버(120)는 서버(110)로부터 어플리케이션의 실행 결과 화면을 수신한다. 이와 같이 수신한 어플리케이션 실행 결과 화면을 인코딩하여 사용자가 마치 본인의 단말 장치들(130-1, ..., 130-N)에서 어플리케이션이 실행되는 것처럼 느낄 수 있도록 인코딩된 어플리케이션 결과 화면을 제공할 수 있다.The cloud streaming server 120 receives an execution result screen of the application from the server 110. [ The received application execution result screen is encoded to provide an encoded application result screen so that the user can feel as if the application is being executed on his / her terminal devices 130-1, ..., 130-N have.

단말 장치들(130-1, ..., 130-N)은 클라우드 스트리밍 서버(120)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.The terminal devices 130-1 to 130-N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 120 and provide them to the user.

단말 장치들(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) 단말일 수 있다.Each of the terminal devices 130-1 to 130-N is connected to a communication network and is capable of executing an application based on a cloud computing system. The terminal devices 130-1 to 130-N are not limited to the mobile communication terminal, , A wired terminal, a fixed terminal, and an IP (Internet Protocol) terminal. Each of the terminal devices 130-1 to 130-N may be a mobile phone, a portable multimedia player (PMP), a mobile Internet device (MID), a smart phone, a desktop, A mobile terminal having various mobile communication specifications such as a tablet PC, a notebook computer, a net book, a personal digital assistant (PDA), a smart TV, have.

네트워크(140)는 서버(110), 클라우드 스트리밍 서버(120)및 단말 장치들(130-1, ..., 130-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(140)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(140)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 1에서 서버(110) 및 클라우드 스트리밍 서버(120)와 단말 장치들(130-1, ..., 130-N) 사이에 사용되는 네트워크는 단말 장치들(130-1, ..., 130-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.The network 140 provides a path for transferring data between the server 110, the cloud streaming server 120 and the terminal devices 130-1 to 130-N, And future developable networks. For example, the network 140 may be a wired or wireless local area network that provides communication of various information devices within a limited area, a mobile communication network that provides communication between mobile objects and mobile objects outside the mobile object, Or a wired / wireless communication network, or a combination of two or more. Meanwhile, the transmission standard of the network 140 is not limited to the existing transmission standard, and may include all transmission standard to be developed in the future. 1, a network used between the server 110 and the cloud streaming server 120 and the terminal devices 130-1,..., And 130-N is connected to the terminal devices 130-1,. , 130-N), or they may be the same.

도 2는 도 1에 도시된 서버를 나타낸 블록도이다.2 is a block diagram showing the server shown in FIG.

도 2를 참조하면, 도 1에 도시된 서버(110)는 처리 유닛 식별부(210), 변경 여부 결정부(220), 처리 유닛 변경부(230), 제어부(240) 및 저장부(250)를 포함한다.1, the server 110 includes a processing unit identification unit 210, a change determination unit 220, a processing unit change unit 230, a control unit 240, and a storage unit 250, .

처리 유닛 식별부(210)는 어플리케이션을 실행할 소스 처리 유닛을 식별한다. 어플리케이션은 서버(110)에서 실행될 때 CPU(Central Processing Unit) 혹은 GPU(Graphic Processing Unit) 중 어느 하나의 처리 유닛을 통해 실행되거나, 해당 처리 유닛에 보다 많이 할당되도록 소스 단에서 정해질 수 있다. 따라서, 어플리케이션의 소스 처리 유닛에 따라 CPU와 GPU의 자원 소모 정도가 다르다면, 이를 시스템 자원 상황에 따라 조절할 수 있어야 보다 효율적으로 시스템을 관리할 수 있다. 만약, 시스템의 자원 상황을 고려하지 않고 어플리케이션의 소스 처리 유닛에 따라 어플리케이션을 실행하는 경우, 클라우드 스트리밍과 같이 복수의 어플리케이션들을 동시에 실행시켜야 하는 상황에서 전체 시스템의 자원을 최적으로 사용하기 어려울 수 있다.The processing unit identification unit 210 identifies a source processing unit to execute the application. When the application is executed in the server 110, the application may be executed through a processing unit of either a CPU (Central Processing Unit) or a GPU (Graphic Processing Unit), or may be determined at the source terminal so as to be allocated more to the processing unit. Therefore, if the resource consumption of the CPU and the GPU is different according to the source processing unit of the application, it is necessary to adjust it according to the system resource situation so that the system can be managed more efficiently. If an application is executed according to a source processing unit of an application without considering the resource status of the system, it may be difficult to optimally use the resources of the entire system in a situation where a plurality of applications are simultaneously executed, such as cloud streaming.

따라서, 어플리케이션이 어떤 자원을 사용하는지 확인하기 위해서 어플리케이션을 실행할 소스 처리 유닛을 식별할 수 있다.Thus, it is possible to identify the source processing unit in which the application is to be executed in order to determine which resource the application uses.

이 때, 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 소스 처리 유닛을 식별할 수 있다.At this time, the source processing unit can be identified through function hooking of the source code corresponding to the application.

후킹(Hooking)은 운영체제나 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법 및 기술을 말할 수 있다. 이 때, 후킹에 의해 간섭된 함수 호출, 이벤트 또는 메시지를 처리하는 코드를 후크(Hook)라고 한다.Hooking refers to commands, methods, and techniques that interchange or intercept function calls, messages, and events that occur between software components in various computer programs such as operating systems and software. At this time, a code for processing a function call, an event, or a message interrupted by hooking is referred to as a hook.

따라서, 어플리케이션에 상응하는 소스 코드에서 소스 처리 유닛과 관련된 함수를 후킹하여 획득한 뒤, 함수를 분석하여 소스 처리 유닛을 식별할 수 있다.Therefore, after hooking and acquiring a function related to the source processing unit in the source code corresponding to the application, the function can be analyzed to identify the source processing unit.

이 때, 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다. 예를 들어, HTML(Hypertext Markup Language)에서 플래시를 이용하기 위해서는 object 태그 및 param 태그 등의 멀티미디어 태그를 이용하여 플래시를 삽입할 수 있다. 이 때, 삽입한 플래시를 모든 HTML 페이지의 뒤로 보내고 싶을 때, 즉 플래시 동영상을 HTML 페이지로 가리고 싶을 때 'wmode'의 속성을 매개 변수로 주고 매개 변수의 값을 'opaque'로 설정함으로써 해결할 수 있다. 또한, 'opaque'와 비슷하지만 완전히 가려지지 않고 투명하게 보이는 효과를 주고 싶을 때에는 'wmode'의 속성 값을 'transparent'로 설정함으로써 해결할 수 있다.At this time, if the value of the parameter included in the source code includes at least one of Opaque and Transparent, the source processing unit can be identified as a CPU (Central Processing Unit). For example, in order to use flash in HTML (Hypertext Markup Language), a flash can be inserted using a multimedia tag such as an object tag and a param tag. At this time, you can solve this problem when you want to send the inserted flash back to all HTML pages, that is, when you want to cover the Flash movie to the HTML page, by setting the 'wmode' attribute as the parameter and the parameter value as 'opaque' . Also, it is similar to 'opaque', but it can be solved by setting 'wmode' property to 'transparent' when you want to give a transparent effect that is not completely hidden.

따라서, 어플리케이션의 소스 코드에서 이와 같은 'opaque' 및 'transparent' 중 적어도 하나의 매개 변수 값이 발견된다면 어플리케이션의 소스 처리 유닛이 CPU라고 판단할 수 있다. Therefore, if at least one parameter value of 'opaque' or 'transparent' is found in the source code of the application, the application's source processing unit can determine that it is the CPU.

또한, 어플리케이션 소스 코드에 GPU와 관련된 함수가 포함된 경우에는 어플리케이션의 소스 처리 유닛이 GPU에 상응할 수 있다.Further, when the application source code includes a function related to the GPU, the source processing unit of the application may correspond to the GPU.

변경 여부 결정부(220)는 소스 처리 유닛의 부하량에 기반하여 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정한다. 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU 라고 가정하였을 때, 시스템에 구비된 CPU의 부하량을 획득하여 이미 설정된 기준 부하량과 비교할 수 있다. 만약 CPU의 부하량이 이미 설정된 기준 부하량 이상이라면, 어플리케이션을 실행할 처리 유닛을 변경할 필요가 있다고 결정할 수 있다. The change determination unit 220 determines whether or not the processing unit on which the application is to be executed needs to be changed based on the load of the source processing unit. For example, when it is assumed that the source processing unit of the application is a CPU, the load of the CPU provided in the system can be acquired and compared with the reference load amount that has been set. If the load of the CPU is greater than the reference load amount already set, it can be determined that it is necessary to change the processing unit to execute the application.

처리 유닛 변경부(230)는 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경한다. 예를 들어, 어플리케이션의 소스 처리 유닛이 GPU이고 GPU의 부하량을 기반으로 어플리케이션을 실행할 처리 유닛의 변경이 필요하다고 판단된 경우라면, 어플리케이션을 실행할 처리 유닛을 시스템에 구비된 다른 처리 유닛인 CPU로 변경할 수 있다. 즉, 어플리케이션을 실행할 처리 유닛을 GPU에서 CPU로 변경함으로써 보다 상대적으로 부하량이 적은 CPU를 이용하여 어플리케이션을 효율적으로 실행시킬 수 있다.When it is determined that a change is necessary, the processing unit changing section 230 dynamically changes the processing unit from which the application is to be executed, from the source processing unit to the change processing unit. For example, if it is determined that the source processing unit of the application is a GPU and that a change of the processing unit to execute the application based on the load of the GPU is necessary, the processing unit to execute the application is changed to the CPU . That is, by changing the processing unit for executing the application from the GPU to the CPU, it is possible to efficiently execute the application using the CPU having a relatively small load.

이 때, 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다. 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상이라는 것은 현재 소스 처리 유닛을 이용하여 어플리케이션을 실행시킬 수 없거나, 또는 실행시키더라도 지연이 발생할 수 있다는 의미일 수 있다. 따라서, 보다 안정적이고 신속하게 어플리케이션을 실행시키기 위해 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛보다 상대적으로 부하량이 낮은 변경 처리 유닛으로 변경할 수 있다.At this time, when the load of the source processing unit is equal to or greater than the predetermined reference load amount, the processing unit on which the application is to be executed can be changed to the change processing unit. The fact that the load of the source processing unit is equal to or larger than the predetermined reference load amount may mean that the application can not be executed using the current source processing unit or that a delay may occur even if the application is executed. Therefore, in order to execute the application more stably and quickly, the processing unit for executing the application can be changed to the change processing unit having a relatively lower load amount than the source processing unit.

이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit)중 어느 하나에 상응할 수 있다. 시스템에서 어플리케이션을 실행시키는데 사용될 수 있는 CPU와 GPU 중 어느 하나의 처리 유닛이 변경 처리 유닛, 또한 소스 처리 유닛에 상응할 수 있다.At this time, the change processing unit may correspond to any one of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit). A processing unit of either a CPU or a GPU that can be used to execute an application in the system may correspond to a change processing unit and also a source processing unit.

또한, 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) 등 다양하게 존재하고 있다.A plurality of CPUs and GPUs may be provided in the system. For example, a multi-core CPU is a chip-level multiprocessor (CMP), in which two or more independent cores are integrated into a single package of a single integrated circuit. The multi-core CPU includes a dual-core dual-core, a triple-core with three independent cores, a quad core with four independent cores, A hexa core, octa-core with 8 independent cores, and magni-core with 12 independent cores.

또한, GPU는 그래픽 처리 성능 향상을 위해서 복수의 CPU를 동시에 탑재하여 성능을 높이는 멀티 GPU 환경을 구현할 수 있고, 한 대의 컴퓨터에 2개 이상의 그래픽카드를 함께 꽂아 멀티 GPU 환경을 구현할 수도 있다.In addition, the GPU can implement a multi-GPU environment that improves the performance by simultaneously loading multiple CPUs to improve the graphics processing performance, and can implement a multi-GPU environment by plugging two or more graphics cards into one computer.

이 때, 변경 처리 유닛의 부하량은 기설정된 기준 부하량 미만일 수 있다. 예를 들어, 소스 처리 유닛을 변경할 필요가 있다고 판단된 경우에는 변경 처리 유닛의 부하량도 산출하여 기설정된 기준 부하량과 비교할 수 있다. 만약, 변경 처리 유닛의 부하량이 기설정된 기준 부하량 미만이라면 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다.At this time, the load of the change processing unit may be less than the predetermined reference load amount. For example, when it is determined that there is a need to change the source processing unit, the load of the change processing unit can also be calculated and compared with the predetermined reference load amount. If the load of the change processing unit is less than the predetermined reference load amount, the processing unit on which the application is to be executed can be changed to the change processing unit.

또한, 변경 처리 유닛의 부하량도 기설정된 기준 부하량 이상이라면, 소스 처리 유닛과 변경 처리 유닛 중 처리 속도가 더 빠른 처리 유닛을 이용하여 어플리케이션을 실행할 수 있다. 소스 처리 유닛과 변경 처리 유닛이 모두 과부하인 경우에는 당장 어느 처리 유닛에서도 어플리케이션을 원활하게 실행할 수 없다고 판단하고, 각각의 처리 유닛의 성능을 기반으로 어플리케이션의 실행을 할당할 수 있다.In addition, if the load of the change processing unit is equal to or larger than the predetermined reference load amount, the application can be executed using the processing unit of the higher processing speed among the source processing unit and the change processing unit. When both the source processing unit and the modification processing unit are overloaded, it is determined that the application can not be executed smoothly in any processing unit at the moment, and the execution of the application can be allocated based on the performance of each processing unit.

이 때, 소스 코드의 함수 후킹을 통해 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다. 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU이고, 이미 시스템에 구비된 CPU의 부하량이 기설정된 기준 부하량 이상일 경우에는, 어플리케이션을 실행할 처리 유닛을 변경해야 하기 때문에 어플리케이션 소스 코드에 포함된 함수를 GPU를 사용하는 함수로 변경할 수 있다. 이 때, 후킹을 이용하여 함수를 변경할 수 있고, 함수를 변경함으로써 어플리케이션을 실행할 처리 유닛을 GPU로 변경할 수 있다.At this time, the processing unit that executes the application through function hooking of the source code can be changed to the change processing unit. For example, if the source processing unit of the application is the CPU and the load of the CPU already in the system is equal to or greater than the predetermined reference load amount, the processing unit to execute the application must be changed. You can change it to a function you use. At this time, the function can be changed using the hook, and the processing unit to execute the application can be changed to the GPU by changing the function.

제어부(240)는 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 한다. 변경 처리 유닛을 이용하여 실행한 어플리케이션의 실행 결과를 클라우드 스트리밍 서버로 제공하고, 클라우드 스트리밍 서버에서 클라우드 스트리밍 서비스를 수행하도록 할 수 있다.The control unit 240 executes the application using the change processing unit to generate the execution result, and the execution result is provided through the cloud streaming. The execution result of the application executed using the change processing unit may be provided to the cloud streaming server and the cloud streaming server may be provided to perform the cloud streaming service.

저장부(250)는 상술한 바와 같이 본 발명의 실시예에 따른 어플리케이션 실행 과정에서 발생되는 다양한 정보를 저장한다.The storage unit 250 stores various information generated in the application execution process according to the embodiment of the present invention as described above.

실시예에 따라, 저장부(250)는 서버(110)와 독립적으로 구성되어 어플리케이션의 실행을 위한 기능을 지원할 수 있다. 이 때, 저장부(250)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.According to an embodiment, the storage unit 250 may be configured independently of the server 110 to support a function for executing an application. At this time, the storage unit 250 may operate as a separate mass storage and may include a control function for performing operations.

또한, 상술한 바와 같이 구성되는 서버(110)는 하나 이상의 서버로 구현될 수 있다.In addition, the server 110 configured as described above may be implemented as one or more servers.

한편, 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛을 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다. On the other hand, the server 110 can store information in the memory on which the memory 110 is mounted. In one implementation, the memory is a computer-readable medium. In one implementation, the memory may be a volatile memory unit, and in other embodiments, the memory may be a non-volatile memory unit. In one implementation, the storage device is a computer-readable medium. In various different implementations, the storage device may include, for example, a hard disk device, an optical disk device, or any other mass storage device.

도 3은 본 발명의 일실시예에 따른 복수의 처리 유닛을 이용한 어플리케이션의 처리를 나타낸 도면이다.3 is a diagram showing processing of an application using a plurality of processing units according to an embodiment of the present invention.

도 3을 참조하면, 어플리케이션(310)의 소스 처리 유닛을 식별하고, 해당하는 소스 처리 유닛의 부하량에 기반하여 어플리케이션(310)을 실행할 처리 유닛의 변경 필요 여부를 결정할 수 있다.Referring to FIG. 3, the source processing unit of the application 310 can be identified, and a change in the processing unit to execute the application 310 based on the load of the corresponding source processing unit can be determined.

예를 들어, 어플리케이션(310)의 소스 처리 유닛이 CPU라고 가정한다면, 시스템에 구비된 CPU들(320-1, ..., 320-N)의 부하량을 체크할 수 있다. 만약, CPU들(320-1, ..., 320-N)의 부하량이 기설정된 기준 부하량 이상이라면, 어플리케이션(310)을 실행할 처리 유닛을 변경할 필요가 있다고 판단할 수 있다.For example, if the source processing unit of the application 310 is a CPU, the load of the CPUs 320-1,..., 320-N provided in the system can be checked. If the load of the CPUs 320-1, ..., 320-N is equal to or greater than the preset reference load amount, it can be determined that it is necessary to change the processing unit in which the application 310 is to be executed.

따라서, 어플리케이션(310)을 실행할 처리 유닛을 CPU에 상응하는 소스 처리 유닛에서 GPU에 상응하는 변경 처리 유닛으로 변경할 수 있다. 이 때, GPU들(Graphic Processing Unit)(330-1, ..., 330-N)의 부하량은 기설정된 기준 부하량 미만일 수 있다. Thus, the processing unit for executing the application 310 can be changed from a source processing unit corresponding to the CPU to a change processing unit corresponding to the GPU. At this time, the load of the GPUs (Graphic Processing Units) 330-1, ..., 330-N may be less than a predetermined reference load amount.

이 때, 만약 어플리케이션(310)을 실행할 처리 유닛의 변경을 고려하지 않고 소스 처리 유닛을 이용하여 어플리케이션(310)을 실행한다면, 소스 처리 유닛, 즉 CPU들(320-1, ..., 320-N)의 과부하로 인해 어플리케이션(310)의 실행이 지연될 수 있다. 결국 시스템에 구비된 GPU들(330-1, ..., 330-N)은 어플리케이션(310)을 충분히 실행시킬 수 있을 만큼 여유로운 상태임에도 불구하고 소스 처리 유닛을 통해서만 어플리케이션(310) 실행하도록 하는 상황이 발생할 수 있다.At this time, if the application 310 is executed using the source processing unit without considering the change of the processing unit to execute the application 310, the source processing unit, that is, the CPUs 320-1, N may be delayed due to an overload of the application 310. [ The GPUs 330-1 to 330-N provided in the system are in a state in which the application 310 is executed only through the source processing unit although the application 310 is sufficiently freed to execute the application 310 Can occur.

따라서, 본 발명에 따른 어플리케이션 처리 방법을 이용하면 이와 같이 비효율적인 처리 상황이 발생하지 않으므로, 시스템에 구비된 자원들을 보다 효율적으로 사용할 수 있다. 또한, 그만큼 어플리케이션을 신속하게 실행시켜 처리할 수 있다.Therefore, using the application processing method according to the present invention does not cause such an inefficient processing situation, so that resources provided in the system can be used more efficiently. In addition, the application can be quickly executed and processed accordingly.

도 4는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 나타낸 동작 흐름도이다.4 is a flowchart illustrating a dynamic application processing method for an optimal cloud streaming service according to an exemplary embodiment of the present invention.

도 4를 참조하면, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 어플리케이션을 실행할 소스 처리 유닛을 식별한다(S410). 어플리케이션은 서버에서 실행될 때 CPU(Central Processing Unit) 혹은 GPU(Graphic Processing Unit) 중 어느 하나의 처리 유닛을 통해 실행되거나, 해당 처리 유닛에 보다 많이 할당되도록 소스 단에서 정해질 수 있다. 따라서, 어플리케이션의 소스 처리 유닛에 따라 CPU와 GPU의 자원 소모 정도가 다르다면, 이를 시스템 자원 상황에 따라 조절할 수 있어야 보다 효율적으로 시스템을 관리할 수 있다. 만약, 시스템의 자원 상황을 고려하지 않고 어플리케이션의 소스 처리 유닛에 따라 어플리케이션을 실행하는 경우, 클라우드 스트리밍과 같이 복수의 어플리케이션들을 동시에 실행시켜야 하는 상황에서 전체 시스템의 자원을 최적으로 사용하기 어려울 수 있다.Referring to FIG. 4, a dynamic application processing method for an optimal cloud streaming service according to an embodiment of the present invention identifies a source processing unit to execute an application (S410). When the application is executed in the server, the application may be executed through a processing unit of either a CPU (Central Processing Unit) or a GPU (Graphic Processing Unit), or may be determined at the source terminal so as to be allocated more to the processing unit. Therefore, if the resource consumption of the CPU and the GPU is different according to the source processing unit of the application, it is necessary to adjust it according to the system resource situation so that the system can be managed more efficiently. If an application is executed according to a source processing unit of an application without considering the resource status of the system, it may be difficult to optimally use the resources of the entire system in a situation where a plurality of applications are simultaneously executed, such as cloud streaming.

따라서, 어플리케이션이 어떤 자원을 사용하는지 확인하기 위해서 어플리케이션을 실행할 소스 처리 유닛을 식별할 수 있다.Thus, it is possible to identify the source processing unit in which the application is to be executed in order to determine which resource the application uses.

이 때, 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 소스 처리 유닛을 식별할 수 있다.At this time, the source processing unit can be identified through function hooking of the source code corresponding to the application.

후킹(Hooking)은 운영체제나 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법 및 기술을 말할 수 있다. 이 때, 후킹에 의해 간섭된 함수 호출, 이벤트 또는 메시지를 처리하는 코드를 후크(Hook)라고 한다.Hooking refers to commands, methods, and techniques that interchange or intercept function calls, messages, and events that occur between software components in various computer programs such as operating systems and software. At this time, a code for processing a function call, an event, or a message interrupted by hooking is referred to as a hook.

따라서, 어플리케이션에 상응하는 소스 코드에서 소스 처리 유닛과 관련된 함수를 후킹하여 획득한 뒤, 함수를 분석하여 소스 처리 유닛을 식별할 수 있다.Therefore, after hooking and acquiring a function related to the source processing unit in the source code corresponding to the application, the function can be analyzed to identify the source processing unit.

이 때, 소스 코드에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다. 예를 들어, HTML(Hypertext Markup Language)에서 플래시를 이용하기 위해서는 object 태그 및 param 태그 등의 멀티미디어 태그를 이용하여 플래시를 삽입할 수 있다. 이 때, 삽입한 플래시를 모든 HTML 페이지의 뒤로 보내고 싶을 때, 즉 플래시 동영상을 HTML 페이지로 가리고 싶을 때 'wmode'의 속성을 매개 변수로 주고 매개 변수의 값을 'opaque'로 설정함으로써 해결할 수 있다. 또한, 'opaque'와 비슷하지만 완전히 가려지지 않고 투명하게 보이는 효과를 주고 싶을 때에는 'wmode'의 속성 값을 'transparent'로 설정함으로써 해결할 수 있다.At this time, if the source code includes at least one of Opaque and Transparent, the source processing unit can be identified as a CPU (Central Processing Unit). For example, in order to use flash in HTML (Hypertext Markup Language), a flash can be inserted using a multimedia tag such as an object tag and a param tag. At this time, you can solve this problem when you want to send the inserted flash back to all HTML pages, that is, when you want to cover the Flash movie to the HTML page, by setting the 'wmode' attribute as the parameter and the parameter value as 'opaque' . Also, it is similar to 'opaque', but it can be solved by setting 'wmode' property to 'transparent' when you want to give a transparent effect that is not completely hidden.

따라서, 어플리케이션의 소스 코드에서 이와 같은 'opaque' 및 'transparent' 중 적어도 하나의 매개 변수 값이 발견된다면 어플리케이션의 소스 처리 유닛이 CPU라고 판단할 수 있다. Therefore, if at least one parameter value of 'opaque' or 'transparent' is found in the source code of the application, the application's source processing unit can determine that it is the CPU.

또한, 어플리케이션 소스 코드에 GPU와 관련된 함수가 포함된 경우에는 어플리케이션의 소스 처리 유닛이 GPU에 상응할 수 있다.Further, when the application source code includes a function related to the GPU, the source processing unit of the application may correspond to the GPU.

또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 소스 처리 유닛의 부하량에 기반하여, 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정한다(S420). 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU 라고 가정하였을 때, 시스템에 구비된 CPU의 부하량을 획득하여 이미 설정된 기준 부하량과 비교할 수 있다. 만약 CPU의 부하량이 이미 설정된 기준 부하량 이상이라면, 어플리케이션을 실행할 처리 유닛을 변경할 필요가 있다고 결정할 수 있다.In addition, the dynamic application processing method for an optimal cloud streaming service according to an embodiment of the present invention determines whether a processing unit in which an application is to be executed needs to be changed, based on the load of the source processing unit (S420). For example, when it is assumed that the source processing unit of the application is a CPU, the load of the CPU provided in the system can be acquired and compared with the reference load amount that has been set. If the load of the CPU is greater than the reference load amount already set, it can be determined that it is necessary to change the processing unit to execute the application.

또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경한다(S430). 예를 들어, 어플리케이션의 소스 처리 유닛이 GPU이고 GPU의 부하량을 기반으로 어플리케이션을 실행할 처리 유닛의 변경이 필요하다고 판단된 경우라면, 어플리케이션을 실행할 처리 유닛을 시스템에 구비된 다른 처리 유닛인 CPU로 변경할 수 있다. 즉, 어플리케이션을 실행할 처리 유닛을 GPU에서 CPU로 변경함으로써 보다 상대적으로 부하량이 적은 CPU를 이용하여 어플리케이션을 효율적으로 실행시킬 수 있다.In the dynamic application processing method for an optimal cloud streaming service according to an embodiment of the present invention, when it is determined that a change is necessary, the processing unit that executes the application is dynamically changed from the source processing unit to the change processing unit (S430) . For example, if it is determined that the source processing unit of the application is a GPU and that a change of the processing unit to execute the application based on the load of the GPU is necessary, the processing unit to execute the application is changed to the CPU . That is, by changing the processing unit for executing the application from the GPU to the CPU, it is possible to efficiently execute the application using the CPU having a relatively small load.

이 때, 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다. 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상이라는 것은 현재 소스 처리 유닛을 이용하여 어플리케이션을 실행시킬 수 없거나, 또는 실행시키더라도 지연이 발생할 수 있다는 의미일 수 있다. 따라서, 보다 안정적이고 신속하게 어플리케이션을 실행시키기 위해 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛보다 상대적으로 부하량이 낮은 변경 처리 유닛으로 변경할 수 있다.At this time, when the load of the source processing unit is equal to or greater than the predetermined reference load amount, the processing unit on which the application is to be executed can be changed to the change processing unit. The fact that the load of the source processing unit is equal to or larger than the predetermined reference load amount may mean that the application can not be executed using the current source processing unit or that a delay may occur even if the application is executed. Therefore, in order to execute the application more stably and quickly, the processing unit for executing the application can be changed to the change processing unit having a relatively lower load amount than the source processing unit.

이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit)중 어느 하나에 상응할 수 있다. 시스템에서 어플리케이션을 실행시키는데 사용될 수 있는 CPU와 GPU 중 어느 하나의 처리 유닛이 변경 처리 유닛, 또한 소스 처리 유닛에 상응할 수 있다.At this time, the change processing unit may correspond to any one of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit). A processing unit of either a CPU or a GPU that can be used to execute an application in the system may correspond to a change processing unit and also a source processing unit.

또한, 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) 등 다양하게 존재하고 있다.A plurality of CPUs and GPUs may be provided in the system. For example, a multi-core CPU is a chip-level multiprocessor (CMP), in which two or more independent cores are integrated into a single package of a single integrated circuit. The multi-core CPU includes a dual-core dual-core, a triple-core with three independent cores, a quad core with four independent cores, A hexa core, octa-core with 8 independent cores, and magni-core with 12 independent cores.

또한, GPU는 그래픽 처리 성능 향상을 위해서 복수의 CPU를 동시에 탑재하여 성능을 높이는 멀티 GPU 환경을 구현할 수 있고, 한 대의 컴퓨터에 2개 이상의 그래픽카드를 함께 꽂아 멀티 GPU 환경을 구현할 수도 있다.In addition, the GPU can implement a multi-GPU environment that improves the performance by simultaneously loading multiple CPUs to improve the graphics processing performance, and can implement a multi-GPU environment by plugging two or more graphics cards into one computer.

이 때, 변경 처리 유닛의 부하량은 기설정된 기준 부하량 미만일 수 있다. 예를 들어, 소스 처리 유닛을 변경할 필요가 있다고 판단된 경우에는 변경 처리 유닛의 부하량도 산출하여 기설정된 기준 부하량과 비교할 수 있다. 만약, 변경 처리 유닛의 부하량이 기설정된 기준 부하량 미만이라면 어플리케이션을 실행할 처리 유닛을 변경 처리 유닛으로 변경할 수 있다.At this time, the load of the change processing unit may be less than the predetermined reference load amount. For example, when it is determined that there is a need to change the source processing unit, the load of the change processing unit can also be calculated and compared with the predetermined reference load amount. If the load of the change processing unit is less than the predetermined reference load amount, the processing unit on which the application is to be executed can be changed to the change processing unit.

또한, 변경 처리 유닛의 부하량도 기설정된 기준 부하량 이상이라면, 소스 처리 유닛과 변경 처리 유닛 중 처리 속도가 더 빠른 처리 유닛을 이용하여 어플리케이션을 실행할 수 있다. 소스 처리 유닛과 변경 처리 유닛이 모두 과부하인 경우에는 당장 어느 처리 유닛에서도 어플리케이션을 원활하게 실행할 수 없다고 판단하고, 각각의 처리 유닛의 성능을 기반으로 어플리케이션의 실행을 할당할 수 있다.In addition, if the load of the change processing unit is equal to or larger than the predetermined reference load amount, the application can be executed using the processing unit of the higher processing speed among the source processing unit and the change processing unit. When both the source processing unit and the modification processing unit are overloaded, it is determined that the application can not be executed smoothly in any processing unit at the moment, and the execution of the application can be allocated based on the performance of each processing unit.

이 때, 소스 코드의 함수 후킹을 통해 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경할 수 있다. 예를 들어, 어플리케이션의 소스 처리 유닛이 CPU이고, 이미 시스템에 구비된 CPU의 부하량이 기설정된 기준 부하량 이상일 경우에는, 어플리케이션을 실행할 처리 유닛을 변경해야 하기 때문에 어플리케이션 소스 코드에 포함된 함수를 GPU를 사용하는 함수로 변경할 수 있다. 이 때, 후킹을 이용하여 함수를 변경할 수 있고, 함수를 변경함으로써 어플리케이션을 실행할 처리 유닛을 GPU로 변경할 수 있다.At this time, the processing unit that executes the application through function hooking of the source code can be changed to the change processing unit. For example, if the source processing unit of the application is the CPU and the load of the CPU already in the system is equal to or greater than the predetermined reference load amount, the processing unit to execute the application must be changed. You can change it to a function you use. At this time, the function can be changed using the hook, and the processing unit to execute the application can be changed to the GPU by changing the function.

또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 한다(S440). 변경 처리 유닛을 이용하여 실행한 어플리케이션의 실행 결과를 클라우드 스트리밍 서버로 제공하고, 클라우드 스트리밍 서버에서 클라우드 스트리밍 서비스를 수행하도록 할 수 있다.In the dynamic application processing method for an optimal cloud streaming service according to an embodiment of the present invention, an execution result is generated by executing an application using a change processing unit, and the execution result is provided through cloud streaming (S440) . The execution result of the application executed using the change processing unit may be provided to the cloud streaming server and the cloud streaming server may be provided to perform the cloud streaming service.

또한, 도 4에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 어플리케이션 실행 과정에서 발생되는 다양한 정보를 저장한다.In addition, although not shown in FIG. 4, the dynamic application processing method for an optimal cloud streaming service according to an embodiment of the present invention stores various information generated in an application execution process.

도 5는 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법을 상세하게 나타낸 동작 흐름도이다.5 is a detailed flowchart illustrating a dynamic application processing method for an optimal cloud streaming service according to an exemplary embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 어플리케이션 소스 코드의 함수를 후킹한다(S510).Referring to FIG. 5, a dynamic application processing method for an optimal cloud streaming service according to an embodiment of the present invention hooks a function of an application source code (S510).

또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 후킹한 어플리케이션 소스 코드의 함수를 기반으로 소스 처리 유닛을 식별한다(S520). 이 때, 소스 코드에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 소스 처리 유닛을 CPU(Central Processing Unit)로 식별할 수 있다.In addition, the dynamic application processing method for an optimal cloud streaming service according to an embodiment of the present invention identifies a source processing unit based on a function of the hooked application source code (S520). At this time, if the source code includes at least one of Opaque and Transparent, the source processing unit can be identified as a CPU (Central Processing Unit).

또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 식별된 소스 처리 유닛의 부하량을 산출한다(S530).In addition, the dynamic application processing method for the optimal cloud streaming service according to an embodiment of the present invention calculates the load of the identified source processing unit (S530).

또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상인지 여부를 판단한다(S535).In addition, the dynamic application processing method for the optimal cloud streaming service according to an embodiment of the present invention determines whether the load of the source processing unit is equal to or greater than a predetermined reference load amount (S535).

단계(S535)의 판단결과 기설정된 기준 부하량 이상이면, 어플리케이션을 처리할 처리 유닛을 변경 처리 유닛으로 변경하고(S540), 변경 처리 유닛을 이용하여 어플리케이션을 실행한다(S550). 이 때, 변경 처리 유닛은 CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응할 수 있다.As a result of the determination in step S535, if it is greater than the predetermined reference load amount, the processing unit for processing the application is changed to the change processing unit (S540), and the application is executed using the change processing unit (S550). At this time, the change processing unit may correspond to any one of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit).

단계(S535)의 판단결과 기설정된 기준 부하량 미만이면, 어플리케이션을 처리할 처리 유닛을 변경하지 않고 소스 처리 유닛으로 어플리케이션을 실행한다(S560).As a result of the determination in step S535, if it is less than the preset reference load amount, the application is executed in the source processing unit without changing the processing unit to process the application (S560).

또한, 본 발명의 일실시예에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 클라우드 스트리밍 서비스를 수행하기 위해 어플리케이션의 실행 결과를 클라우드 스트리밍 서버로 제공한다(S570).In addition, the dynamic application processing method for an optimal cloud streaming service according to an exemplary embodiment of the present invention provides an execution result of an application to a cloud streaming server to perform a cloud streaming service (S570).

본 발명에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The dynamic application processing method for an optimal cloud streaming service according to the present invention can 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 recorded on the medium may be those specially designed and constructed for the present invention 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; Includes all types of hardware devices that are specially configured to store and execute magneto-optical media and program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상에서와 같이 본 발명에 따른 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the dynamic application processing method and apparatus for an optimal cloud streaming service according to the present invention are not limited to the configuration and method of the embodiments described above, All or some of the embodiments may be selectively combined.

본 발명에 의하면 어플리케이션을 실행할 소스 처리 유닛을 식별하고, 소스 처리 유닛의 부하량에 기반하여 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하고, 변경이 필요하다고 판단되는 경우, 어플리케이션을 실행할 처리 유닛을 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하고, 변경 처리 유닛을 이용하여 어플리케이션을 실행하여 실행 결과를 생성하고, 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 할 수 있다. 나아가, 시스템 자원을 효율적으로 사용할 수 있는 방법을 제공함으로써, 하드웨어적으로 시스템의 성능을 향상시키기 위한 비용을 절약할 수 있다.According to the present invention, it is possible to identify a source processing unit on which an application is to be executed, determine whether or not a processing unit on which an application is to be executed needs to be changed based on the load of the source processing unit, It is possible to dynamically change from the processing unit to the change processing unit, execute the application using the change processing unit to generate the execution result, and provide the execution result through the cloud streaming. Furthermore, by providing a method of efficiently using the system resources, it is possible to save the cost for improving the hardware performance of the system.

110: 서버 120: 클라우드 스트리밍 서버
130-1~ 130-N: 단말 장치 140: 네트워크
210: 처리 유닛 식별부 220: 변경 여부 결정부
230: 처리 유닛 변경부 240: 제어부
250: 저장부 310: 어플리케이션
320-1~ 320~N: CPU들 330-1~ 330-N: GPU들
110: Server 120: Cloud Streaming Server
130-1 to 130-N: terminal device 140: network
210: processing unit identification unit 220:
230: Processing unit changing section 240:
250: storage unit 310: application
320-1 to 320-N: CPUs 330-1 to 330-N: GPUs

Claims (15)

어플리케이션을 실행할 소스 처리 유닛을 식별하는 처리 유닛 식별부;
상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 변경 여부 결정부;
상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 처리 유닛 변경부; 및
상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 제어부
를 포함하는 것을 특징으로 하는 서버.
A processing unit identification unit for identifying a source processing unit to execute the application;
A change determining unit for determining whether or not a change of a processing unit to execute the application is required based on a load of the source processing unit;
A processing unit changing unit that dynamically changes a processing unit to execute the application from the source processing unit to the change processing unit when it is determined that the change is necessary; And
A control unit for executing the application by using the change processing unit to generate an execution result and providing the execution result through cloud streaming;
Lt; / RTI >
청구항 1에 있어서,
상기 처리 유닛 식별부는
상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 처리 유닛을 식별하는 것을 특징으로 하는 서버.
The method according to claim 1,
The processing unit identification unit
And identifies the source processing unit through function hooking of source code corresponding to the application.
청구항 2에 있어서,
상기 처리 유닛 식별부는
상기 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 상기 소스 처리 유닛을 CPU(Central Processing Unit)로 식별하는 것을 특징으로 하는 서버.
The method of claim 2,
The processing unit identification unit
And identifies the source processing unit as a central processing unit (CPU) when at least one of Opaque and Transparent is included in a parameter value included in the source code.
청구항 2에 있어서,
상기 처리 유닛 변경부는
상기 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 동적으로 변경하는 것을 특징으로 하는 서버.
The method of claim 2,
The processing unit changing unit
And dynamically changes the processing unit to execute the application to the change processing unit when the load of the source processing unit is equal to or larger than a predetermined reference load amount.
청구항 4에 있어서,
상기 변경 처리 유닛은
CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응하는 것을 특징으로 하는 서버.
The method of claim 4,
The change processing unit
A central processing unit (CPU), and a graphics processing unit (GPU).
청구항 5에 있어서,
상기 변경 처리 유닛의 부하량은 상기 기설정된 기준 부하량 미만인 것을 특징으로 하는 서버.
The method of claim 5,
Wherein the load of the change processing unit is less than the predetermined reference load amount.
청구항 4에 있어서,
상기 처리 유닛 변경부는
상기 소스 코드의 함수 후킹을 통해 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경하는 것을 특징으로 하는 서버.
The method of claim 4,
The processing unit changing unit
And changes the processing unit to execute the application through function hooking of the source code to the change processing unit.
어플리케이션을 실행할 소스 처리 유닛을 식별하는 단계;
상기 소스 처리 유닛의 부하량에 기반하여 상기 어플리케이션을 실행할 처리 유닛의 변경 필요 여부를 결정하는 단계;
상기 변경이 필요하다고 판단되는 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 소스 처리 유닛에서 변경 처리 유닛으로 동적으로 변경하는 단계; 및
상기 변경 처리 유닛을 이용하여 상기 어플리케이션을 실행하여 실행 결과를 생성하고, 상기 실행 결과가 클라우드 스트리밍을 통하여 제공되도록 하는 단계
를 포함하는 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
Identifying a source processing unit to execute the application;
Determining whether a processing unit to execute the application needs to be changed based on a load of the source processing unit;
Dynamically changing a processing unit to execute the application from the source processing unit to the change processing unit when it is determined that the change is necessary; And
Executing the application using the change processing unit to generate an execution result, and causing the execution result to be provided through the cloud streaming
Wherein the method comprises the steps of: receiving a request for an optimal cloud streaming service;
청구항 8에 있어서,
상기 식별하는 단계는
상기 어플리케이션에 상응하는 소스 코드의 함수 후킹을 통해 상기 소스 처리 유닛을 식별하는 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
The method of claim 8,
The step of identifying
And identifying the source processing unit through function hooking of the source code corresponding to the application.
청구항 9에 있어서,
상기 식별하는 단계는
상기 소스 코드에 포함된 매개 변수의 값에 Opaque 및 Transparent 중 적어도 하나 이상이 포함되는 경우 상기 소스 처리 유닛을 CPU(Central Processing Unit)로 식별하는 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
The method of claim 9,
The step of identifying
Wherein when the value of the parameter included in the source code includes at least one of Opaque and Transparent, the source processing unit is identified as a CPU (Central Processing Unit) .
청구항 9에 있어서,
상기 변경하는 단계는
상기 소스 처리 유닛의 부하량이 기설정된 기준 부하량 이상일 경우, 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 동적으로 변경하는 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
The method of claim 9,
The changing step
And when the load of the source processing unit is equal to or greater than a predetermined reference load amount, the processing unit for executing the application is dynamically changed to the change processing unit.
청구항 11에 있어서,
상기 변경 처리 유닛은
CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit) 중 어느 하나에 상응하는 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
The method of claim 11,
The change processing unit
Wherein the data stream corresponds to one of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit).
청구항 12에 있어서,
상기 변경 처리 유닛의 부하량은 상기 기설정된 기준 부하량 미만인 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
The method of claim 12,
Wherein the load of the change processing unit is less than the preset reference load amount.
청구항 11에 있어서,
상기 변경하는 단계는
상기 소스 코드의 함수 후킹을 통해 상기 어플리케이션을 실행할 처리 유닛을 상기 변경 처리 유닛으로 변경하는 것을 특징으로 하는 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법.
The method of claim 11,
The changing step
And changing the processing unit to execute the application through function hooking of the source code to the change processing unit.
청구항 8 내지 청구항 14 중 어느 한 항에 기재된 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.A computer program stored on a medium for carrying out the method of any one of claims 8 to 14.
KR1020150000829A 2015-01-05 2015-01-05 Method for dynamic processing application for cloud streaming service and apparatus for the same KR102354268B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150000829A KR102354268B1 (en) 2015-01-05 2015-01-05 Method for dynamic processing application for cloud streaming service and apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150000829A KR102354268B1 (en) 2015-01-05 2015-01-05 Method for dynamic processing application for cloud streaming service and apparatus for the same

Publications (2)

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

Family

ID=56505602

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150000829A KR102354268B1 (en) 2015-01-05 2015-01-05 Method for dynamic processing application for cloud streaming service and apparatus for the same

Country Status (1)

Country Link
KR (1) KR102354268B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190111616A (en) * 2018-03-23 2019-10-02 에스케이플래닛 주식회사 Merhod for cloud streaming service based on selective encoding and apparatus for the same
KR20220084895A (en) * 2020-12-14 2022-06-21 한국전자기술연구원 System and method for analysising data based on ondevice

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130011714A (en) * 2011-07-22 2013-01-30 에스케이플래닛 주식회사 System and method for operating application based presentation virtualization
KR20130064292A (en) * 2011-12-08 2013-06-18 한국전자통신연구원 Cloud service system and method for smart phone
KR20140110486A (en) 2013-03-08 2014-09-17 주식회사 알투소프트 System for Resource Management in Mobile Cloud computing and Method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130011714A (en) * 2011-07-22 2013-01-30 에스케이플래닛 주식회사 System and method for operating application based presentation virtualization
KR20130064292A (en) * 2011-12-08 2013-06-18 한국전자통신연구원 Cloud service system and method for smart phone
KR20140110486A (en) 2013-03-08 2014-09-17 주식회사 알투소프트 System for Resource Management in Mobile Cloud computing and Method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190111616A (en) * 2018-03-23 2019-10-02 에스케이플래닛 주식회사 Merhod for cloud streaming service based on selective encoding and apparatus for the same
KR20220084895A (en) * 2020-12-14 2022-06-21 한국전자기술연구원 System and method for analysising data based on ondevice
WO2022131404A1 (en) * 2020-12-14 2022-06-23 한국전자기술연구원 On-device-based data analysis system and method

Also Published As

Publication number Publication date
KR102354268B1 (en) 2022-01-21

Similar Documents

Publication Publication Date Title
JP4216722B2 (en) Method and system for offloading the execution and resources of a device having constraints on networked resources
CA2814420C (en) Load balancing between general purpose processors and graphics processors
US10201750B2 (en) Method and apparatus of preloading browser game on client
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
US20130073600A1 (en) Remote process execution management
CN112988400B (en) Video memory optimization method and device, electronic equipment and readable storage medium
KR20120033450A (en) Device adaptive presentation virtualization method and its system
JP2022553996A (en) Video playback method, device, equipment and computer program
AU2019256257B2 (en) Processor core scheduling method and apparatus, terminal, and storage medium
US20130073601A1 (en) Remote process execution management
CN110968395B (en) Method for processing rendering instruction in simulator and mobile terminal
CN111708642B (en) Processor performance optimization method and device in VR system and VR equipment
US20170177255A1 (en) Method and electronic device for allocating dynamic memory resources
Park et al. Design and evaluation of mobile offloading system for web-centric devices
CN111506434B (en) Task processing method and device and computer readable storage medium
KR20160084215A (en) Method for dynamic processing application for cloud streaming service and apparatus for the same
CN109951737B (en) Video processing method, video processing device, electronic equipment and computer-readable storage medium
CN110825199A (en) Information processing method and device, electronic device and medium
CN115599533A (en) Task processing method, device, equipment and storage medium
CN116069493A (en) Data processing method, device, equipment and readable storage medium
CN111580882A (en) Application program starting method, device, computer system and medium
KR20200097498A (en) Apparatus and method for allocating encoder for video cloud streaming
TWI774053B (en) Hardware management methods and associated machine-readable medium, electronic devices
CN116932963A (en) Screenshot processing method and device, computer equipment and storage medium
US9184979B2 (en) Communication between application components distributed among devices

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