WO2014137007A1 - 게임 가상화 장치 - Google Patents

게임 가상화 장치 Download PDF

Info

Publication number
WO2014137007A1
WO2014137007A1 PCT/KR2013/001859 KR2013001859W WO2014137007A1 WO 2014137007 A1 WO2014137007 A1 WO 2014137007A1 KR 2013001859 W KR2013001859 W KR 2013001859W WO 2014137007 A1 WO2014137007 A1 WO 2014137007A1
Authority
WO
WIPO (PCT)
Prior art keywords
game
virtualization
resource
graphic
audio
Prior art date
Application number
PCT/KR2013/001859
Other languages
English (en)
French (fr)
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 팬터로그 주식회사
Publication of WO2014137007A1 publication Critical patent/WO2014137007A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Definitions

  • the present invention relates to a virtualization apparatus, and more particularly, to a game virtualization apparatus for processing game virtualization so that the game server can accommodate the game client with high density.
  • Korean Patent No.826871 name of the invention: a method and system for providing streaming game software for a portable terminal
  • the computing resource information actually provided in the portable terminal is amplified into a virtual computing resource and virtualized
  • the streaming provision request information of the software content is transmitted to a service provider for providing the software
  • the streaming software provided from the service provider is received
  • the received streaming software Disclosed is a method for providing streaming software for a portable terminal, which is executed based on the virtual computing resource.
  • a technology has been proposed in which a game server performs game virtualization so that a user terminal is provided with a game service using a thin client or the like without a separate client program installation and update process.
  • full virtualization techniques are applied to such game virtualization.
  • FIG. 1 is a virtualization structure diagram for explaining the concept of full virtualization applied to a conventional game virtualization process.
  • a device driver and a hypervisor are installed on one host operating system, and a plurality of applications (App, Application) are installed on the hypervisor.
  • apps Application
  • a separate guest operating system and virtual machine must be installed.
  • the game server must be able to accommodate a plurality of game clients at the same time to provide a high quality game service. Therefore, during the game virtualization process, there is a need for a virtualization process that can increase the reaction speed with the resource device so as to quickly process resource requests by a plurality of game clients.
  • the present invention is to solve the above-mentioned problems of the prior art, to provide a game virtualization apparatus that can increase the speed of game virtualization by minimizing the performance loss that can occur in the virtualization process.
  • Game virtualization apparatus for achieving the above technical problem, a plurality of game applications to service the game data to at least one game client, requesting resources for the service processing; A virtualization proxy module that controls resource requests from the plurality of game applications and returns processing results corresponding to the resource requests to the corresponding game application; And a virtualization system module for requesting a process according to the resource request to a device driver corresponding to the resource request transmitted from the virtualization proxy module, and returning a result of processing through the device driver to the virtualization proxy module.
  • the virtualization proxy module and the virtualization system module are installed on a host operating system and device driver.
  • the resource request of the plurality of game applications on the host operating system integrated
  • the resource request processing speed of the game application can be provided at the same speed as the native application of the host operating system.
  • any one of the problem solving means of the present invention it is possible to reliably service the game execution speed while accommodating a plurality of game clients for each game application at high density.
  • FIG. 1 is a virtualization structure diagram for explaining the concept of full virtualization applied to a conventional game virtualization process.
  • FIG. 2 is a structural diagram of a game virtualization apparatus according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a virtualization middleware for processing graphics resources in an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a virtualization middleware for processing audio resources in an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a virtualization middleware for processing a disk resource in an embodiment of the present invention.
  • FIG. 2 is a structural diagram of a game virtualization apparatus according to an embodiment of the present invention.
  • the game virtualization apparatus 10 may be included in a configuration in a game server (not shown) or may be a game server itself.
  • a game server (not shown) to which the present invention is applied provides a game service to a user terminal connected through a network.
  • a game client (not shown) is generated for each game user terminal.
  • the game virtualization apparatus 10 accesses a host by the virtualization middleware 200 installed on the host operating system 400 and the device driver 300, and the virtualization middleware 200. This includes a plurality of controlled game applications 100.
  • the plurality of game applications 100 each service game data to at least one game client.
  • FIG. 2 illustrates that the game virtualization apparatus 10 drives n game applications 100-1, 100-2,..., 100-n.
  • the game application 100 makes a resource request for the host operating system 400 to the virtualization middleware 200 for the game service of each game client.
  • the virtualization middleware 200 receives resource requests from the plurality of game applications 100, and controls and manages resource requests of each game application 100 to collectively process access to the device driver 300.
  • the virtualization middleware 200 includes a virtualization proxy module 210 and a virtualization system module 220 corresponding to each type of resource requested by the game application 100.
  • the virtualization proxy module 210 controls resource requests from a plurality of applications, obtains processing results corresponding to each resource request, and returns them to the corresponding game application.
  • the virtualization system module 220 requests processing according to the resource request to the device driver 300 corresponding to the resource request transmitted from the virtualization proxy module 210 and outputs the result of resource processing through the device driver 300. Returned by (210).
  • FIG. 2 shows that the game virtualization apparatus 10 according to an embodiment of the present invention virtualizes graphic resources, audio resources, and disk resources.
  • the virtualization proxy module 210 includes a graphic proxy module 211, an audio proxy module 212, and a disk proxy module 213.
  • the virtualization system module 220 includes a graphics system module 221, an audio encoder 222, and a disk system module 223.
  • FIG. 3 is a flowchart illustrating a virtualization middleware for processing graphics resources in an embodiment of the present invention.
  • the graphic proxy module 211 receives a graphic resource from the graphic device driver 300 through the graphic system module 221 according to a graphic resource request from the game application 100, Returns a handle to the allocated graphic resource to the game application 100.
  • the graphic proxy module 211 registers the newly allocated graphic resource as a shared resource and accesses the graphic resource request to the graphic system module 221 according to a result of determining whether or not the graphic resource is previously registered according to the graphic resource request. Includes a graphical resource manager to control this.
  • the graphic resource manager of the graphic proxy module 211 may request the requested graphic resource in advance. It is determined whether it is a registered graphic resource (S320).
  • the graphic resource manager returns a shared handle for the pre-registered graphic resource to the game application 100, and completes the processing according to the resource request (S331). ).
  • the shared handle is a handle to a graphic resource registered and requested by at least one game application before the current graphic resource request, and is a handle shared by a plurality of game applications.
  • the graphic resource manager to be generated if the graphic resource manager to be generated is not a registered resource, the graphic resource manager transmits the current graphic resource request to the graphic system module 221 (S332).
  • the graphic system module 221 calls the graphic resource generation function to the graphic device driver 300 (S340).
  • the graphic system module 221 acquires the graphic resource allocated by the graphic device driver 300 (S350), and transfers the obtained graphic resource to the graphic proxy module 211 (S360).
  • the graphic resource request processed through the graphic device driver 300 may be a graphic process such as a rendering process.
  • the graphic resource manager of the graphic proxy module 211 newly processes the graphic resource acquired through the graphic system module 211 as a shared graphic resource (S370), and handles the handle of the newly registered graphic resource in the corresponding game. Returning to the application 100 to complete the process according to the resource request (S380).
  • FIG. 4 is a flowchart illustrating a virtualization middleware for processing audio resources in an embodiment of the present invention.
  • the audio proxy module 212 may, in response to an audio resource request from the game application 100, perform an audio system module (in one embodiment of the present invention, referred to as an 'audio encoder') 222. Pre-set audio processing is performed through), and the result of the preset audio processing is returned to the corresponding game application 100.
  • an audio system module in one embodiment of the present invention, referred to as an 'audio encoder'
  • the audio proxy module 212 includes an audio resource manager that redirects the audio resource request to the audio encoder 222 to control access to the audio device driver 300.
  • the audio resource manager of the audio proxy module 212 captures the output sound output requested.
  • digital modulation for example, PCM is performed (S420).
  • the audio resource manager of the audio proxy module 212 transfers the captured or modulated output sound source to the audio encoder 222 (S430).
  • the audio encoder 222 encodes the output sound source transmitted from the audio proxy module 212 in a predetermined manner (S440), and outputs the stream to the game client of the corresponding game application (S450).
  • a user terminal in which a game client is generated may be connected to a game server (ie, a game virtualization device) through an IP network, and the audio encoder 222 may output an output sound source to a corresponding user terminal through an IP network.
  • a game server ie, a game virtualization device
  • the audio encoder 222 may output an output sound source to a corresponding user terminal through an IP network. Can stream.
  • the audio resource manager controls access to the audio device driver 300 of the game application 100 to block the output sound source from being output through the host's audio mixer device (not shown).
  • the audio resource manager of the audio proxy module 221 returns the processing result of the output sound source of the audio encoder 222 to the game application 100 after the step (S430) (S460).
  • the audio resource manager of the audio proxy module 221 returns the redirection processing success result to the game application 100 separately from the output sound source encoding process of the audio encoder 222.
  • the audio resource manager of the audio proxy module 221 may receive the result of the predetermined audio processing from the audio encoder 222 and return the result to the game application 100.
  • FIG. 5 is a flowchart illustrating a virtualization middleware for processing a disk resource in an embodiment of the present invention.
  • the disk graphics module 213 requests data input or output processing to the disk device driver 300 through the disk system module 223 according to a disk resource request from the game application 100. To return the result of the input or output processing to the corresponding game application (100).
  • the disk proxy module 213 includes a disk resource manager for controlling the plurality of game applications 100 to be disposed in an adjacent area of the disk device during the data input processing according to the disk resource request.
  • the disc resource manager of the disc proxy module 213 may execute the game application ( 100 confirms the input area of the previously processed data (S520).
  • the disk resource manager of the disk proxy module 213 sets the disk region adjacent to the checked previous input region as an input position of the current disk input requested data (S530), and sets the set input position and the disk input request to the disk. Transfer to the system module 223 (S540).
  • the disk system module 223 calls the disk input function with the disk device driver 300 so that data is input to the set input position on the disk device (not shown) (S550).
  • the disk system module 223 acquires the result of the data processing by the disk device driver 300 (S560), and transmits the obtained input processing result to the disk proxy module 223 (S570).
  • the disk resource manager of the disk proxy module 223 returns the disk input processing result received through the disk system module 223 to the game application 100 (S580).
  • the disk proxy module 213 when the disk proxy module 213 according to an embodiment of the present invention receives a disk output function from the game application 100, the disk resource manager checks the data input position of the game application 100, the disk The disk output function is called by the disk device driver 300 through the system module 223.
  • the disc resource manager of the disc proxy module 213 checks a specific area in the disc to which the data of the game application 100 is input and outputs the requested data. Check the input position of.
  • the disk system module 223 When the disk resource manager transmits the checked disk location to the disk system module 223, the disk system module 223 outputs the data of the disk location through the disk device driver 300.
  • the disk resource manager of the disk proxy module 213 obtains the output processing result according to the disk output function call and returns it to the corresponding game application 100.
  • the game virtualization apparatus 10 may be implemented in the form of a recording medium including instructions executable by a computer, such as a program module executed by a computer.
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may include both computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Communication media typically includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transmission mechanism, and includes any information delivery media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

게임 가상화 장치는, 적어도 하나의 게임 클라이언트로 게임 데이터를 서비스하되, 상기 서비스 처리를 위한 자원을 요청하는 복수의 게임 애플리케이션, 복수의 게임 애플리케이션으로부터의 자원 요청을 통제하고 자원 요청에 대응하는 처리 결과를 해당 게임 애플리케이션으로 반환하는 가상화 프록시 모듈, 및 가상화 프록시 모듈로부터 전달된 자원 요청에 대응된 장치 드라이버로 자원 요청에 따른 처리를 요청하고 장치 드라이버를 통한 처리 결과를 가상화 프록시 모듈로 반환하는 가상화 시스템 모듈을 포함한다.

Description

게임 가상화 장치
본 발명은 가상화 장치에 관한 것으로, 더욱 상세하게는 게임 서버가 게임 클라이언트를 고밀도로 수용할 수 있도록 게임 가상화를 처리하는 게임 가상화 장치에 관한 것이다.
최근의 게임 서비스 시장에서는 휴대형 단말을 통해 게임 서비스를 제공받는 사용자가 크게 증가함에 따라, 사용자 단말이 게임 서버로부터 고품질의 게임을 신속하게 제공받을 수 있도록 하는 게임 서비스에 대한 요구가 커지고 있다.
이와 관련하여, 한국등록특허 제826871호(발명의 명칭: 휴대용 단말기를 위한 스트리밍 방식 게임 소프트웨어 제공 방법 및 시스템)에서는, 휴대용 단말기에 실제 구비된 컴퓨팅 자원 정보를 가상 컴퓨팅 자원으로 증폭하여 가상화 처리하고, 입력되는 소프트웨어 컨텐츠의 스트리밍 제공 요청에 따라 상기 소프트웨어 컨텐츠의 스트리밍 제공 요청 정보를 상기 소프트웨어를 제공하는 서비스 제공자에게 전송하고, 상기 서비스 제공자로부터 제공되는 스트리밍 제공되는 상기 소프트웨어를 수신하고, 상기 수신되는 스트리밍 소프트웨어를 상기 가상 컴퓨팅 자원에 기초하여 실행하는, 휴대용 단말기용 스트리밍 소프트웨어 제공 방법을 개시하고 있다.
더불어, 게임 서버가 게임 가상화 처리를 하여, 사용자 단말이 별도의 클라이언트 프로그램 설치 및 업데이트 과정없이 씬클라이언트(thin client) 등을 이용하여 게임 서비스를 제공받도록 하는 기술도 제안되고 있다. 이러한 게임 가상화 처리에는 일반적으로 전가상화(full virtualization) 기법이 적용되고 있다.
도 1은 종래의 게임 가상화 처리에 적용된 전가상화의 개념을 설명하기 위한 가상화 구조도이다.
도 1에 도시한 바와 같이, 전가상화 방식에 따르면, 하나의 호스트 운영 체제(Host Operation System) 상에 장치 드라이버 및 하이퍼바이저(hypervisor)가 설치되고, 하이퍼바이저 상에 복수의 애플리케이션(App, Application) 별 게스트 운영 체제(Guest Operation System) 및 가상 머신(VM, Virtual Machine)이 설치되어야 한다.
따라서, 전가상화 방식으로 게임 가상화 처리를 할 경우, 게스트 운영 체제 및 가상 머신이 게임 애플리케이션의 개수만큼 필요하게 되어, 게임 가상화 처리 시 실행 속도가 저해되는 단점이 있었다.
한편, 게임 서버는 동시에 다수의 게임 클라이언트를 수용하여 고품질의 게임 서비스를 제공할 수 있어야한다. 따라서, 게임 가상화 처리 시 다수의 게임 클라이언트에 의한 자원 요청을 신속하게 처리할 수 있도록 자원 장치와의 반응 속도를 높일 수 있는 가상화 처리가 필요하다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 가상화 처리 과정에서 발생될 수 있는 성능 손실을 최소화하여 게임 가상화 처리 속도를 증진 시킬 수 있는 게임 가상화 장치를 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기와 같은 기술적 과제를 달성하기 위한 본 발명의 일 측면에 따른 게임 가상화 장치는, 적어도 하나의 게임 클라이언트로 게임 데이터를 서비스하되, 상기 서비스 처리를 위한 자원을 요청하는 복수의 게임 애플리케이션; 상기 복수의 게임 애플리케이션으로부터의 자원 요청을 통제하고, 상기 자원 요청에 대응하는 처리 결과를 해당 게임 애플리케이션으로 반환하는 가상화 프록시 모듈; 및 상기 가상화 프록시 모듈로부터 전달된 상기 자원 요청에 대응된 장치 드라이버로 상기 자원 요청에 따른 처리를 요청하고, 상기 장치 드라이버를 통한 처리 결과를 상기 가상화 프록시 모듈로 반환하는 가상화 시스템 모듈을 포함하되, 상기 가상화 프록시 모듈 및 상기 가상화 시스템 모듈은 호스트 운영 체제 및 장치 드라이버 상에 설치된다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 기존의 복수의 애플리케이션 별로 가상 머신 및 게스트 운영 체제를 별개로 구동시키는 방식과는 달리, 호스트 운영 체제 상에 복수의 게임 애플리케이션의 자원 요청을 통합적으로 통제 및 처리하는 가상화 미들웨어를 구현함으로써, 게임 애플리케이션의 자원 요청 처리 속도를 호스트 운영 체제의 네이티브(native) 애플리케이션과 동일한 속도로 제공할 수 있는 효과가 있다.
그리고 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 게임 애플리케이션 별로 복수의 게임 클라이언트를 고밀도로 수용하면서도 게임 실행 속도를 안정적으로 서비스할 수 있는 효과가 있다.
도 1은 종래의 게임 가상화 처리에 적용된 전가상화의 개념을 설명하기 위한 가상화 구조도이다.
도 2는 본 발명의 일 실시예에 따른 게임 가상화 장치의 구조도이다.
도 3은 본 발명의 일 실시예에서 그래픽 자원을 처리하는 가상화 미들웨어를 설명하기 위한 처리 흐름도이다.
도 4는 본 발명의 일 실시예에서 오디오 자원을 처리하는 가상화 미들웨어를 설명하기 위한 처리 흐름도이다.
도 5는 본 발명의 일 실시예에서 디스크 자원을 처리하는 가상화 미들웨어를 설명하기 위한 처리 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 2는 본 발명의 일 실시예에 따른 게임 가상화 장치의 구조도이다.
본 발명의 일 실시예에 따른 게임 가상화 장치(10)는 게임 서버(미도시) 내에 일구성으로 포함되거나, 게임 서버 자체일 수 있다. 참고로, 본 발명이 적용되는 게임 서버(미도시)는 네트워크를 통해 접속된 사용자 단말로 게임 서비스를 제공한다. 이때, 각 게임 사용자 단말 별로 게임 클라이언트(미도시)가 생성된다.
도 2에 도시한 바와 같이, 게임 가상화 장치(10)는, 호스트 운영 체제(400)와 장치 드라이버(300) 상에 설치되는 가상화 미들웨어(200), 및 가상화 미들웨어(200)에 의해 호스트로의 접근이 통제되는 복수의 게임 애플리케이션(100)을 포함한다.
복수의 게임 애플리케이션(100) 은 각각 적어도 하나의 게임 클라이언트로 게임 데이터를 서비스한다. 참고로, 도 2에서는 게임 가상화 장치(10)가 n개의 게임 애플리케이션(100-1, 100-2,…100-n)을 구동하는 것을 나타내었다.
이때, 게임 애플리케이션(100)은 각 게임 클라이언트의 게임 서비스를 위해, 가상화 미들웨어(200)로 호스트 운영 체제(400)에 대한 자원 요청을 한다.
가상화 미들웨어(200)는 복수의 게임 애플리케이션(100)으로부터의 자원 요청 수신하고, 각 게임 애플리케이션(100)의 자원 요청을 통제 및 관리하여 장치 드라이버(300)로의 접근을 통합적으로 처리한다.
구체적으로, 가상화 미들웨어(200)는 게임 애플리케이션(100)이 요청하는 자원의 종류 별로 대응되는 가상화 프록시 모듈(210) 및 가상화 시스템 모듈(220)을 포함한다.
가상화 프록시 모듈(210)은 복수의 애플리케이션으로부터의 자원 요청을 통제하고, 각 자원 요청에 대응하는 처리 결과를 획득하여 해당 게임 애플리케이션으로 반환한다.
가상화 시스템 모듈(220)은 가상화 프록시 모듈(210)로부터 전달된 자원 요청에 대응된 장치 드라이버(300)로 자원 요청에 따른 처리를 요청하고, 장치 드라이버(300)를 통한 자원 처리 결과를 가상화 프록시 모듈(210)로 반환한다.
한편, 도 2에서는 본 발명의 일 실시예에 따른 게임 가상화 장치(10)가 그래픽 자원, 오디오 자원 및 디스크 자원을 가상화하는 것을 나타내었다.
즉, 도 2에 도시한 바와 같이, 가상화 프록시 모듈(210)은 그래픽 프록시 모듈(211), 오디오 프록시 모듈(212) 및 디스크 프록시 모듈(213)을 포함한다.
그리고, 가상화 시스템 모듈(220)은 그래픽 시스템 모듈(221), 오디오 엔코더(222) 및 디스크 시스템 모듈(223)을 포함한다.
이하, 도 3 내지 도 5를 참조하여, 본 발명의 일 실시예에 따른 가상화 미들웨어(200)의 구성 및 각 구성의 가상화 처리 방식에 대해서 상세히 설명하도록 한다.
도 3은 본 발명의 일 실시예에서 그래픽 자원을 처리하는 가상화 미들웨어를 설명하기 위한 처리 흐름도이다.
본 발명의 일 실시예에 따른 그래픽 프록시 모듈(211)은, 게임 애플리케이션(100)으로부터의 그래픽 자원 요청에 따라, 그래픽 시스템 모듈(221)을 통해 그래픽 장치 드라이버(300)로부터 그래픽 자원을 할당받고, 할당된 그래픽 자원에 대한 핸들(handle)을 게임 애플리케이션(100)으로 반환한다.
이때, 그래픽 프록시 모듈(211)은 신규로 할당된 그래픽 자원을 공유 자원으로 등록하고, 그래픽 자원 요청에 따른 그래픽 자원의 기등록 여부를 판단한 결과에 따라 그래픽 시스템 모듈(221)로의 그래픽 자원 요청의 접근을 통제하는 그래픽 자원 관리자를 포함한다.
예를 들어, 도 3에 도시한 바와 같이, 어느 하나의 게임 애플리케이션(100)이 그래픽 자원 생성 함수를 호출하면(S310), 그래픽 프록시 모듈(211)의 그래픽 자원 관리자는 요청된 그래픽 자원이 사전에 등록된 그래픽 자원인지를 판단한다(S320).
그런 다음, 그래픽 자원 관리자는 생성 요청된 그래픽 자원이 기등록된 자원인 경우, 기등록된 그래픽 자원에 대한 공유 핸들을 해당 게임 애플리케이션(100)으로 반환하고, 자원 요청에 따른 처리를 완료한다(S331). 참고로, 공유 핸들은 현재 그래픽 자원 요청 이전에 적어도 하나의 게임 애플리케이션이 요청하여 등록된 그래픽 자원에 대한 핸들로서, 다수의 게임 애플리케이션이 공유한 핸들이다.
반면, 그래픽 자원 관리자는 생성 요청된 그래픽 자원이 기등록된 자원이 아닌 경우, 그래픽 시스템 모듈(221)로 현재 그래픽 자원 요청을 전달한다(S332).
그러면, 그래픽 시스템 모듈(221)은 그래픽 장치 드라이버(300)로 그래픽 자원 생성 함수를 호출한다(S340).
그리고, 그래픽 시스템 모듈(221)은 그래픽 장치 드라이버(300)가 할당한 그래픽 자원을 획득하고(S350), 획득한 그래픽 자원을 그래픽 프록시 모듈(211)로 전달한다(S360). 예를 들어, 그래픽 장치 드라이버(300)를 통해 처리되는 그래픽 자원 요청은 랜더링(rendering) 처리 등의 그래픽 처리일 수 있다.
그런 후, 그래픽 프록시 모듈(211)의 그래픽 자원 관리자는, 그래픽 시스템 모듈(211)을 통해 획득한 그래픽 자원을 공유 그래픽 자원으로서 신규 등록 처리하고(S370), 신규 등록된 그래픽 자원의 핸들을 해당 게임 애플리케이션(100)으로 반환하여 상기 자원 요청에 따른 처리를 완료한다(S380).
도 4는 본 발명의 일 실시예에서 오디오 자원을 처리하는 가상화 미들웨어를 설명하기 위한 처리 흐름도이다.
본 발명의 일 실시예에 따른 오디오 프록시 모듈(212)은, 게임 애플리케이션(100)으로부터의 오디오 자원 요청에 따라, 오디오 시스템 모듈(본 발명의 일 실시예에서는, ‘오디오 엔코더’라고 지칭함)(222)을 통해 기설정된 오디오 처리를 수행하도록 하고, 상기 기설정된 오디오 처리의 결과를 해당 게임 애플리케이션(100)으로 반환한다.
이때, 오디오 프록시 모듈(212)은 오디오 자원 요청을 오디오 엔코더(222)로 재지향(redicrtion)시켜 오디오 장치 드라이버(300)로의 접근을 통제하는 오디오 자원 관리자를 포함한다.
예를 들어, 도 4에 도시한 바와 같이, 어느 하나의 게임 애플리케이션(100)이 오디오 음원 출력 함수를 호출하면(S410), 오디오 프록시 모듈(212)의 오디오 자원 관리자는 출력 요청된 출력 음원을 캡쳐 또는 디지털 변조(예를 들어, PCM)한다(S420).
그런 후, 오디오 프록시 모듈(212)의 오디오 자원 관리자는 캡쳐 또는 변조된 출력 음원을 오디오 엔코더(222)로 전달한다(S430).
그러면, 오디오 엔코더(222)는 오디오 프록시 모듈(212)로부터 전달된 출력 음원을 기설정된 방식으로 엔코딩하여(S440), 해당 게임 애플리케이션의 게임 클라이언트로 스트리밍 출력한다(S450).
참고로, 게임 클라이언트가 생성된 사용자 단말(미도시)은 IP 네트워크를 통해 게임 서버(즉, 게임 가상화 장치)와 접속할 수 있으며, 오디오 엔코더(222)는 출력 음원을 IP 네트워크를 통해 해당 사용자 단말로 스트리밍할 수 있다.
이처럼, 오디오 자원 관리자는 게임 애플리케이션(100)의 오디오 장치 드라이버(300)로의 접근을 통제하여, 출력 음원이 호스트의 오디오 믹서 장치(미도시)를 통해 출력되는 것을 차단한다.
이때, 오디오 프록시 모듈(221)의 오디오 자원 관리자는 상기 단계 (S430) 이후에, 오디오 엔코더(222)의 출력 음원에 대한 처리 결과를 해당 게임 애플리케이션(100)으로 반환한다(S460).
도 4에서는, 오디오 프록시 모듈(221)의 오디오 자원 관리자가, 오디오 엔코더(222)의 출력 음원 엔코딩 처리와는 별개로, 재지향 처리 성공 결과를 해당 게임 애플리케이션(100)으로 반환하는 것을 나타내었다. 그런데, 오디오 프록시 모듈(221)의 오디오 자원 관리자는, 오디오 엔코더(222)로부터 기설정된 오디오 처리의 결과를 수신하여 해당 게임 애플리케이션(100)으로 반환하는 것도 가능하다.
도 5는 본 발명의 일 실시예에서 디스크 자원을 처리하는 가상화 미들웨어를 설명하기 위한 처리 흐름도이다.
본 발명의 일 실시예에 따른 디스크 그래픽 모듈(213)은, 게임 애플리케이션(100)으로부터의 디스크 자원 요청에 따라, 디스크 시스템 모듈(223)을 통해 디스크 장치 드라이버(300)로 데이터 입력 또는 출력 처리 요청을 수행하도록 하고, 상기 입력 또는 출력 처리의 결과를 해당 게임 애플리케이션(100)으로 반환한다.
이때, 디스크 프록시 모듈(213)은 디스크 자원 요청에 따른 데이터 입력 처리 시, 복수의 게임 애플리케이션(100) 별로 디스크 장치 내 인접 영역에 배치되도록 통제하는 디스크 자원 관리자를 포함한다.
예를 들어, 도 5에 도시한 바와 같이, 어느 하나의 게임 애플리케이션(100)이 디스크(또는 레지스트리) 입력 함수를 호출하면(S510), 디스크 프록시 모듈(213)의 디스크 자원 관리자는 해당 게임 애플리케이션(100)이 이전에 처리한 데이터의 입력 영역을 확인한다(S520).
그리고, 디스크 프록시 모듈(213)의 디스크 자원 관리자는, 상기 확인한 이전 입력 영역과 인접한 디스크 영역을 현재 디스크 입력 요청된 데이터의 입력 위치로 설정하고(S530), 상기 설정된 입력 위치 및 디스크 입력 요청을 디스크 시스템 모듈(223)로 전달한다(S540).
그러면, 디스크 시스템 모듈(223)은 디스크 장치 드라이버(300)로 디스크 입력 함수를 호출하여, 디스크 장치(미도시) 상의 상기 설정된 입력 위치에 데이터가 입력되도록 한다(S550).
그런 다음, 디스크 시스템 모듈(223)은 디스크 장치 드라이버(300)가 데이터를 입력 처리한 결과를 획득하고(S560), 획득한 입력 처리 결과를 디스크 프록시 모듈(223)로 전달한다(S570).
그런 후, 디스크 프록시 모듈(223)의 디스크 자원 관리자는, 디스크 시스템 모듈(223)을 통해 수신한 디스크 입력 처리 결과를 해당 게임 애플리케이션(100)으로 반환한다(S580).
한편, 본 발명의 일 실시예에 따른 디스크 프록시 모듈(213)이 게임 애플리케이션(100)으로부터 디스크 출력 함수를 호출받을 경우, 디스크 자원 관리자는 해당 게임 애플리케이션(100)의 데이터 입력 위치를 확인하여, 디스크 시스템 모듈(223)을 통해 디스크 장치 드라이버(300)로 디스크 출력 함수가 호출되도록 한다.
구체적으로, 게임 애플리케이션(100)이 디스크 출력 함수를 호출한 경우, 디스크 프록시 모듈(213)의 디스크 자원 관리자는 해당 게임 애플리케이션(100)의 데이터가 입력된 디스크 내 특정 영역을 확인하여 출력 요청된 데이터의 입력 위치를 확인한다.
그리고, 디스크 자원 관리자가 상기 확인된 디스크 위치를 디스크 시스템 모듈(223)로 전달하면, 디스크 시스템 모듈(223)은 디스크 장치 드라이버(300)를 통해 상기 디스크 위치의 데이터가 출력되도록한다.
또한, 디스크 프록시 모듈(213)의 디스크 자원 관리자는 디스크 출력 함수 호출에 따른 출력 처리 결과를 획득하여 해당 게임 애플리케이션(100)으로 반환한다.
이상에서 설명한 본 발명의 일 실시예 따른 게임 가상화 장치(10)는, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (11)

  1. 게임 가상화 장치에 있어서,
    적어도 하나의 게임 클라이언트로 게임 데이터를 서비스하되, 상기 서비스 처리를 위한 자원을 요청하는 복수의 게임 애플리케이션;
    상기 복수의 게임 애플리케이션으로부터의 자원 요청을 통제하고, 상기 자원 요청에 대응하는 처리 결과를 해당 게임 애플리케이션으로 반환하는 가상화 프록시 모듈; 및
    상기 가상화 프록시 모듈로부터 전달된 상기 자원 요청에 대응된 장치 드라이버로 상기 자원 요청에 따른 처리를 요청하고, 상기 장치 드라이버를 통한 처리 결과를 상기 가상화 프록시 모듈로 반환하는 가상화 시스템 모듈을 포함하되,
    상기 가상화 프록시 모듈 및 상기 가상화 시스템 모듈은 호스트 운영 체제 및 장치 드라이버 상에 설치되는 것인 게임 가상화 장치.
  2. 제 1 항에 있어서,
    상기 가상화 프록시 모듈은,
    상기 게임 애플리케이션으로부터의 그래픽 자원 요청에 따라 상기 가상화 시스템 모듈을 통해 그래픽 장치 드라이버로부터 그래픽 자원을 할당받고, 상기 할당된 그래픽 자원에 대한 핸들을 상기 게임 애플리케이션으로 반환하는 그래픽 프록시 모듈을 포함하는 게임 가상화 장치.
  3. 제 2 항에 있어서,
    상기 그래픽 프록시 모듈은,
    신규로 할당된 그래픽 자원을 등록하고, 상기 그래픽 자원 요청에 따른 그래픽 자원의 기등록 여부를 판단한 결과에 따라 상기 가상화 시스템 모듈로의 상기 그래픽 자원 요청의 접근을 통제하는 그래픽 자원 관리자를 포함하는 게임 가상화 장치.
  4. 제 3 항에 있어서,
    상기 그래픽 자원 관리자는,
    상기 그래픽 자원 요청에 따른 그래픽 자원이 기등록된 자원인 경우 상기 기등록된 그래픽 자원에 대한 공유 핸들을 상기 게임 애플리케이션으로 반환하고,
    상기 기등록된 자원이 아닌 경우 상기 가상화 시스템 모듈로 상기 그래픽 자원 요청을 전달하여 상기 그래픽 장치 드라이버로부터 그래픽 자원을 할당받고, 상기 할당된 그래픽 자원에 대한 핸들을 상기 게임 애플리케이션으로 반환하는 게임 가상화 장치.
  5. 제 1 항에 있어서,
    상기 가상화 프록시 모듈은,
    상기 게임 애플리케이션으로부터의 오디오 자원 요청에 따라 상기 가상화 시스템 모듈을 통해 기설정된 오디오 처리를 수행하도록 하고, 상기 기설정된 오디오 처리의 결과를 상기 게임 애플리케이션으로 반환하는 오디오 프록시 모듈을 포함하는 게임 가상화 장치.
  6. 제 5 항에 있어서,
    상기 오디오 프록시 모듈은,
    상기 오디오 자원 요청을 오디오 엔코더로 재지향시켜 오디오 장치 드라이버로의 접근을 통제하는 오디오 자원 관리자를 포함하는 게임 가상화 장치.
  7. 제 6 항에 있어서,
    상기 오디오 자원 관리자는,
    상기 오디오 자원 요청에 따른 출력 음원을 캡쳐 또는 디지털 변조하여 상기 오디오 엔코더로 전달하는 게임 가상화 장치.
  8. 제 7 항에 있어서,
    상기 오디오 엔코더는,
    상기 전달된 출력 음원을 엔코딩하여 상기 게임 애플리케이션의 게임 클라이언트로 스트리밍 출력하는 게임 가상화 장치.
  9. 제 1 항에 있어서,
    상기 가상화 프록시 모듈은,
    상기 게임 애플리케이션으로부터의 디스크 자원 요청에 따라 상기 가상화 시스템 모듈을 통해 디스크 장치 드라이버로 데이터 입력 또는 출력 처리 요청을 수행하도록 하고, 상기 입력 또는 출력 처리의 결과를 상기 게임 애플리케이션으로 반환하는 디스크 프록시 모듈을 포함하는 게임 가상화 장치.
  10. 제 9 항에 있어서,
    상기 디스크 프록시 모듈은,
    상기 디스크 자원 요청에 따른 데이터 입력 처리 시 상기 게임 애플리케이션 별로 디스크 장치 내 인접 영역에 배치되도록 통제하는 디스크 자원 관리자를 포함하는 게임 가상화 장치.
  11. 제 10 항에 있어서,
    상기 디스크 자원 관리자는,
    상기 가상화 시스템 모듈을 통해 상기 디스크 장치 드라이버의 상기 디스크 자원 요청에 따른 데이터 입력 및 출력 처리 결과를 수신하고, 상기 수신된 데이터 입력 및 출력 처리 결과를 상기 게임 애플리케이션으로 반환하는 게임 가상화 장치.
PCT/KR2013/001859 2013-03-06 2013-03-07 게임 가상화 장치 WO2014137007A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130024001A KR20140111101A (ko) 2013-03-06 2013-03-06 게임 가상화 장치
KR10-2013-0024001 2013-03-06

Publications (1)

Publication Number Publication Date
WO2014137007A1 true WO2014137007A1 (ko) 2014-09-12

Family

ID=51491511

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/001859 WO2014137007A1 (ko) 2013-03-06 2013-03-07 게임 가상화 장치

Country Status (2)

Country Link
KR (1) KR20140111101A (ko)
WO (1) WO2014137007A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248459B2 (en) 2016-03-15 2019-04-02 Microsoft Technology Licensing, Llc Operating system support for game mode

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725929B1 (ko) * 2005-10-10 2007-06-11 한국전자통신연구원 통신망 및 방송망을 통한 응용프로그램서비스를 위한 통합미들웨어 장치 및 그 처리 방법
KR100826871B1 (ko) * 2005-12-08 2008-05-06 한국전자통신연구원 휴대용 단말기를 위한 스트리밍 방식 게임 소프트웨어 제공방법 및 시스템
KR20090070933A (ko) * 2007-12-27 2009-07-01 주식회사 케이티 가상머신을 이용한 호스팅 서비스 장치 및 방법
KR20120011579A (ko) * 2010-07-29 2012-02-08 팬터로그인터액티브 주식회사 가상 호스팅 서비스를 제공하는 시스템, 장치 및 그 방법
KR101137802B1 (ko) * 2011-06-28 2012-04-18 주식회사 엔트로피테크 Pip 제어 가능한 iptv용 셋톱박스 및 그 제어방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725929B1 (ko) * 2005-10-10 2007-06-11 한국전자통신연구원 통신망 및 방송망을 통한 응용프로그램서비스를 위한 통합미들웨어 장치 및 그 처리 방법
KR100826871B1 (ko) * 2005-12-08 2008-05-06 한국전자통신연구원 휴대용 단말기를 위한 스트리밍 방식 게임 소프트웨어 제공방법 및 시스템
KR20090070933A (ko) * 2007-12-27 2009-07-01 주식회사 케이티 가상머신을 이용한 호스팅 서비스 장치 및 방법
KR20120011579A (ko) * 2010-07-29 2012-02-08 팬터로그인터액티브 주식회사 가상 호스팅 서비스를 제공하는 시스템, 장치 및 그 방법
KR101137802B1 (ko) * 2011-06-28 2012-04-18 주식회사 엔트로피테크 Pip 제어 가능한 iptv용 셋톱박스 및 그 제어방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248459B2 (en) 2016-03-15 2019-04-02 Microsoft Technology Licensing, Llc Operating system support for game mode

Also Published As

Publication number Publication date
KR20140111101A (ko) 2014-09-18

Similar Documents

Publication Publication Date Title
US11029990B2 (en) Delivering a single end user experience to a client from multiple servers
Randazzo et al. Kata containers: An emerging architecture for enabling mec services in fast and secure way
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US10764375B2 (en) Method for cloud based mobile application virtualization
US10146566B2 (en) Enabling virtual desktop connections to remote clients
JP5037016B2 (ja) ネットワークコンピューティングシステム、通信方法、画像投影装置、画像入出力装置
US8863138B2 (en) Application service performance in cloud computing
KR101782342B1 (ko) 가상 스토리지 타겟 오프로드 기법
WO2011037316A2 (ko) 스마트카드 기반 브라우징 시스템 및 그 방법, 그리고 이에 적용되는 스마트카드
US10771566B2 (en) Device and system for cloud based mobile application virtualization
US10999405B2 (en) Method for processing access requests and web browser
WO2017124860A1 (zh) 分布式无线多屏虚拟机服务系统
US20120096271A1 (en) Remote Access to Hosted Virtual Machines By Enterprise Users
WO2012086916A1 (ko) 클라우드 컴퓨팅 시스템 및 클라우드 컴퓨팅 시스템에서의 트래픽 분산 방법 및 제어 방법
US20140237119A1 (en) Object migration system and method for web-based content service migration
US8645559B2 (en) Redirection of multiple remote devices
US8813252B2 (en) Request based license mode selection
WO2022019656A1 (ko) Arm 서버 기반의 가상 클라우드 서비스 플랫폼
WO2014137007A1 (ko) 게임 가상화 장치
KR101262849B1 (ko) 가상화 시스템 상에서 영상장치를 할당 및 해제하기 위한 장치 및 방법
WO2015130062A1 (ko) 클라우드 스트리밍 기반의 영상데이터 제공 방법, 이를 위한 장치 및 시스템
WO2021241828A1 (ko) 가상머신을 제공하는 방법 및 장치
WO2016099184A1 (ko) 가상화 멀티 세션 지원을 위한 서버 구조
US20170116016A1 (en) Screen compression service method and virtual network apparatus for performing the method
WO2013027919A1 (ko) 클라우드 컴퓨팅 환경에서의 자동 개인 가상화 생성 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13877342

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 20.01.2016)

122 Ep: pct application non-entry in european phase

Ref document number: 13877342

Country of ref document: EP

Kind code of ref document: A1