KR101761409B1 - Method and apparatus for providing virtual platform - Google Patents

Method and apparatus for providing virtual platform Download PDF

Info

Publication number
KR101761409B1
KR101761409B1 KR1020100105174A KR20100105174A KR101761409B1 KR 101761409 B1 KR101761409 B1 KR 101761409B1 KR 1020100105174 A KR1020100105174 A KR 1020100105174A KR 20100105174 A KR20100105174 A KR 20100105174A KR 101761409 B1 KR101761409 B1 KR 101761409B1
Authority
KR
South Korea
Prior art keywords
application
operating system
terminal
mobile
virtualization
Prior art date
Application number
KR1020100105174A
Other languages
Korean (ko)
Other versions
KR20120046807A (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 KR1020100105174A priority Critical patent/KR101761409B1/en
Publication of KR20120046807A publication Critical patent/KR20120046807A/en
Application granted granted Critical
Publication of KR101761409B1 publication Critical patent/KR101761409B1/en

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
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

모바일 운영 체제 및 모바일 어플리케이션의 가상 환경을 제공하기 위한 방법 및 장치가 제공된다. 가상화 서버는 모바일 운영 체제의 가상 환경을 생성하고, 상기 가상 모바일 운영 체제에서 모바일 어플리케이션을 동작시킨다. 가상화 서버에서 동작하는 모바일 운영 체제 및 모바일 어플리케이션에 대한 정보는 단말의 씬 클라이언트에게 전송되고, 단말의 사용자는 씬 클라이언트를 통해 마치 모바일 운영 체제를 단말에 직접 설치해서 사용하는 것과 같이 모바일 운영 체제 및 어플리케이션을 조작할 수 있다.A method and apparatus for providing a virtual environment of a mobile operating system and a mobile application are provided. The virtualization server creates a virtual environment of the mobile operating system and operates the mobile application in the virtual mobile operating system. The information about the mobile operating system and the mobile application operating on the virtualization server is transmitted to the thin client of the terminal and the user of the terminal transmits the mobile operating system and the application Can be operated.

Figure R1020100105174
Figure R1020100105174

Description

가상화 플랫폼 제공 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING VIRTUAL PLATFORM}[0001] METHOD AND APPARATUS FOR PROVIDING VIRTUAL PLATFORM [0002]

아래의 실시예들은 휴대 단말에게 가상화 플랫폼을 제공하기 위한 방법 및 장치에 관한 것이다.The following embodiments relate to a method and apparatus for providing a virtualization platform to a mobile terminal.

특정 휴대 단말 플랫폼을 가상화하는 가상화 서버 및 가상화 환경을 제공하는 스트리밍 서버가 개시된다.A virtualization server for virtualizing a specific mobile terminal platform and a streaming server for providing a virtualized environment are disclosed.

사용자가 직접 어플리케이션(application)을 선택 및 설치할 수 있는 스마트 폰(smart phone)이 널리 사용됨에 따라, 스마트 폰 전용의 모바일(mobile) 운영체제(operating system; OS) 및 스마트폰 OS 에서 동작하는 다양한 전용 어플리케이션이 제공된다.As a smart phone capable of directly selecting and installing an application is widely used, a mobile operating system (OS) dedicated to a smart phone and various dedicated applications operating in a smartphone OS / RTI >

일반적으로, 스마트 폰은 제한된 종류의 모바일 OS 만을 사용할 수 있다.In general, smartphones can only use a limited range of mobile OSes.

따라서, 특정 스마트폰 OS 용으로 개발된 애플리케이션은 그 OS를 사용하지 않는 다른 스마트 폰에서는 사용되지 못할 수 있다.Therefore, an application developed for a specific smartphone OS may not be used by other smartphones that do not use the OS.

한 사용자가 개인용 컴퓨터(Personal Computer; PC) 및 스마트 폰을 사용할 경우, 개인용 컴퓨터의 데이터와 스마트 폰 내의 데이터(예컨대, E-Mail, 일정, 멀티미디어 데이터 등)가 상호 동기화되어야 할 경우가 있다. 이러한 상호 동기화는 주로 PC 어플리케이션 및 스마트 폰 내의 어플리케이션에 의해 수행된다.When a user uses a personal computer (PC) and a smart phone, data in a personal computer and data in a smart phone (e.g., E-Mail, schedule, multimedia data, etc.) may be synchronized with each other. This mutual synchronization is mainly performed by the PC application and the application in the smart phone.

그러나, PC 어플리케이션의 제조자와 모바일 OS의 제조자가 서로 상이한 경우처럼, 특정 PC 어플리케이션과의 동기화에 필요한 스마트 폰 어플리케이션이 특정 모바일 OS를 위해서는 제공되지 않는 경우가 있다. 즉, 특정 OS 및 특정 어플리케이션을 사용하는 단말만이 요구되는 PC 어플리케이션과 데이터 동기화를 할 수 있는 경우가 있다.However, there are cases where a smartphone application required for synchronization with a specific PC application is not provided for a specific mobile OS, such as when the manufacturer of the PC application is different from the manufacturer of the mobile OS. In other words, only a terminal using a specific OS and a specific application may be able to synchronize data with a required PC application.

또한, 인터넷이 널리 사용되면서, 다양한 웹 서비스가 웹 서버에 의해 제공된다.Also, as the Internet is widely used, various web services are provided by the web server.

이러한 웹 서비스는 웹 브라우저(Web Browser) 또는 전용 어플리케이션을 통해 직접적으로 데이터를 제공할 수도 있다.Such a web service may provide data directly through a web browser or a dedicated application.

또한, 웹 서버는 데이터 동기화를 통해 PC에 데이터(예컨대, E-Mail 또는 일정 데이터)를 제공할 수 있으며, 푸쉬(Push) 등의 방법을 통해 일방으로 데이터를 제공할 수도 있다.The web server may provide data (e. G., E-mail or schedule data) to the PC through data synchronization or may provide data to the PC through a push method or the like.

이러한 경우에도, 전술된 동기화 또는 어플리케이션의 제한과 유사한 문제가 발생할 수 있다. 즉, 특정 모바일 OS 및 특정 어플리케이션을 사용하는 단말만이 특정 웹 서버와 데이터 동기화를 할 수 있거나, 웹 서버로부터 데이터를 제공받을 수 있는 경우가 있다.Even in this case, problems similar to the synchronization or application limitations described above may arise. That is, only a terminal using a specific mobile OS and a specific application may synchronize data with a specific web server, or may receive data from a web server.

본 발명의 일 실시예는, 모바일 운영 체제 및 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서비스 방법 및 장치를 제공한다.One embodiment of the present invention provides a virtualization service method and apparatus for providing a virtual environment of a mobile operating system and an application operating in a mobile operating system.

본 발명의 일 실시예는, 가상화 서버 및 스트리밍 서버를 포함하는 가상화 서비스 제공 시스템을 제공한다.An embodiment of the present invention provides a virtualization service providing system including a virtualization server and a streaming server.

본 발명의 일 측에 따르면, 모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서비스 제공 방법에 있어서, 단말로부터 가상화 서비스 요청을 수신하는 단계, 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 구동하는 단계, 상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 상기 단말로 전송하는 단계 및 상기 단말로부터 상기 모바일 운영 체제 또는 상기 어플리케이션을 조작하기 위한 입력 정보를 수신하는 단계를 포함하는, 가상화 서비스 제공 방법이 제공된다.According to an aspect of the present invention, there is provided a virtualization service providing method for providing a mobile operating system and a virtual environment of an application operating in the mobile operating system, the method comprising: receiving a virtualization service request from a terminal; Transmitting the information on operation of the mobile operating system or the application to the terminal, and receiving input information for operating the mobile operating system or the application from the terminal, A method for providing a virtualization service is provided.

상기 가상화 서비스 제공 방법은, 웹 서버로 상기 모바일 운영 체제 또는 상기 어플리케이션과의 연동 요청을 전송하는 단계 및 상기 웹 서버로부터 상기 연동 요청에 대한 응답을 수신하는 단계를 더 포함할 수 있다.The virtualization service providing method may further include transmitting a request for interworking with the mobile operating system or the application to a web server, and receiving a response to the interworking request from the web server.

상기 연동은 상기 운영 체제 또는 상기 어플리케이션과의 데이터 동기화일 수 있다.The interworking may be data synchronization with the operating system or the application.

상기 동기화에 의해 생성된 데이터는 상기 모바일 OS 또는 상기 어플리케이션을 위해 제공되는 가상 파일 시스템에 저장될 수 있다.The data generated by the synchronization may be stored in the mobile OS or a virtual file system provided for the application.

상기 가상화 서비스 요청은 단말의 사용자의 계정 정보를 포함할 수 있고, 상기 연동 요청은 상기 단말의 사용자의 계정 정보에 대응하는 상기 웹 서버의 사용자 계정 정보를 포함할 수 있다.The virtualization service request may include account information of a user of the terminal, and the interworking request may include user account information of the web server corresponding to account information of the user of the terminal.

상기 가상화 서비스 제공 방법은, 상기 단말로부터 가상화 서비스 종료 요청을 수신하는 단계 및 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료하는 단계를 더 포함할 수 있고, 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료하는 단계는 상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 할당된 자원을 회수하는 단계를 포함할 수 있다.The virtualization service providing method may further include receiving a virtualization service termination request from the terminal and terminating the mobile operating system or the application for the terminal, Terminating the application may include recovering resources allocated for the mobile operating system or the application.

상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료하는 단계는, 상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 제공된 항구적인 데이터를 저장하는 단계를 더 포함할 수 있다.The step of terminating the mobile operating system or the application for the terminal may further comprise storing persistent data provided for the mobile operating system or the application.

상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 구동하는 단계는, 상기 가상화 서비스 요청에 포함된 정보에 기반하여 상기 모바일 운영 체제 또는 상기 어플리케이션을 설정하는 단계를 더 포함할 수 있다.The step of operating the mobile operating system or the application for the terminal may further comprise setting the mobile operating system or the application based on the information included in the virtualization service request.

상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 상기 단말로 전송하는 단계는, 상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 상기 단말에 맞게 변환하는 단계를 포함할 수 있다. The step of transmitting information on the operation of the mobile operating system or the application to the terminal may include converting information on the operation of the mobile operating system or the application to the terminal.

상기 단말로부터 상기 모바일 운영 체제 또는 상기 어플리케이션을 조작하기 위한 입력 정보를 수신하는 단계는, 상기 입력 정보를 상기 모바일 운영 체제 또는 상기 어플리케이션에게 맞게 변환되는 단계를 포함할 수 있다.The step of receiving input information for operating the mobile operating system or the application from the terminal may include converting the input information to the mobile operating system or the application.

본 발명의 다른 일 측에 따르면, 모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서버에 있어서, 데이터의 송수신을 수행하는 송수신부 및 상기 모바일 운영 체제 및 상기 어플리케이션을 구동함으로써 가상 환경을 제공하는 제어부를 포함하고, 상기 제어부는 상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 생성하고, 상기 단말로부터 제공된 상기 모바일 운영 체제 또는 상기 어플리케이션을 조작하기 위한 입력 정보를 처리하고, 상기 송수신부는 단말로부터 가상화 서비스 요청을 수신하고, 상기 동작에 대한 정보를 상기 단말로 전송하고, 상기 단말로부터 상기 입력 정보를 수신하는, 가상화 서버가 제공된다.According to another aspect of the present invention, there is provided a virtualization server for providing a mobile operating system and a virtual environment of an application operating in the mobile operating system, the virtualization server comprising: a transceiver for transmitting and receiving data; Wherein the control unit generates information on the operation of the mobile operating system or the application and processes input information for operating the mobile operating system or the application provided from the terminal The transceiver receives a virtualization service request from a terminal, transmits information about the operation to the terminal, and receives the input information from the terminal.

상기 제어부는 상기 모바일 운영 체제 또는 상기 어플리케이션과의 연동 요청을 생성할 수 있고, 상기 송수신부는 웹 서버로 상기 연동 요청을 전송할 수 있고, 상기 웹 서버로부터 상기 연동 요청에 대한 응답을 수신할 수 있다.The control unit may generate a request for interworking with the mobile operating system or the application, the transceiver unit may transmit the interworking request to the web server, and may receive a response to the interworking request from the web server.

상기 연동은 상기 운영 체제 또는 상기 어플리케이션과의 데이터 동기화일 수 있고, 상기 동기화에 의해 생성된 데이터는 상기 모바일 OS 또는 상기 어플리케이션을 위해 제공되는 가상 파일 시스템에 저장될 수 있다.The interworking may be data synchronization with the operating system or the application, and the data generated by the synchronization may be stored in the virtual file system provided for the mobile OS or the application.

상기 가상화 서버는, 상기 가상 환경을 제공하기 위해 필요한 데이터를 저장하는 데이터베이스부를 더 포함할 수 있고, 상기 가상화 서비스 요청은 단말의 사용자의 계정 정보를 포함할 수 있고, 상기 데이터베이스부는 상기 단말의 사용자의 계정 정보에 대응하는 상기 웹 서버의 사용자 계정 정보를 포함할 수 있고, 상기 제어부는 상기 데이터베이스부를 사용하여 상기 단말의 사용자에 계정 정보에 대응하는 상기 웹 서버의 사용자 계정 정보를 상기 연동 요청에 포함시킬 수 있다.The virtualization server may further include a database unit for storing data required to provide the virtual environment. The virtualization service request may include account information of a user of the terminal, The control unit may include user account information of the web server corresponding to the account information and the control unit may include user account information of the web server corresponding to the account information in the interworking request using the database unit .

상기 가상화 서버는, 상기 가상 환경을 제공하기 위해 필요한 데이터를 저장하는 데이터베이스부를 더 포함할 수 있고, 상기 송수신부는 상기 단말로부터 가상화 서비스 종료 요청을 수신할 수 있고, 상기 제어부는 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료할 수 있고, 상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 할당된 자원을 회수할 수 있고, 상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 제공된 항구적인 데이터를 상기 데이터베이스부에 저장할 수 있다.The virtualization server may further include a database unit for storing data necessary to provide the virtual environment, the transceiver unit may receive a virtualization service termination request from the terminal, Terminate the operating system or the application, retrieve resources allocated for the mobile operating system or the application, and store the persistent data provided for the mobile operating system or the application in the database unit .

상기 제어부는 상기 가상화 서비스 요청에 포함된 정보에 기반하여 상기 모바일 운영 체제 또는 상기 어플리케이션을 설정할 수 있다.The controller may set the mobile operating system or the application based on information included in the virtualization service request.

본 발명의 또 다른 일 측에 따르면, 모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서비스 제공 시스템에 있어서, 상기 모바일 운영 체제 및 상기 어플리케이션을 구동하여 가상 환경을 제공하는 가상화 서버 및 상기 가상화 서버로부터 상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 전송 받아, 상기 정보를 변환하여 변환된 정보를 단말로 전송하는 스트리밍 서버를 포함하는, 가상화 서비스 제공 시스템이 제공된다.According to another aspect of the present invention, there is provided a virtualization service providing system for providing a mobile operating system and a virtual environment of an application operating in the mobile operating system, the virtual operating system providing a virtual environment by driving the mobile operating system and the application And a streaming server for receiving information on the operation of the mobile operating system or the application from the virtualization server and the virtualization server, and for converting the information and transmitting the converted information to the terminal.

상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보는 상기 모바일 운영 체제 또는 상기 어플리케이션의 실행 화면 이미지를 포함할 수 있고, 상기 스트리밍 서버는 상기 실행 화면 이미지를 동영상으로 부호화하여 단말로 전송할 수 있다.The information on the operation of the mobile operating system or the application may include an execution screen image of the mobile operating system or the application, and the streaming server may encode the execution screen image into a moving picture and transmit the motion picture image to the terminal.

상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보는 상기 모바일 운영 체제 또는 상기 어플리케이션으로부터 출력된 음향을 포함할 수 있고, 상기 실행 화면 이미지는 연속적으로 생성된 복수 개의 이미지들일 수 있고, 상기 음향은 연속적으로 생성된 복수 개의 시간 단위의 음향들일 수 있고, 상기 스트리밍 서버는 상기 복수 개의 이미지들 및 상기 복수 개의 시간 단위의 음향들을 동영상으로 부호화하여 상기 단말로 실시간 전송할 수 있다.Wherein the information about the operation of the mobile operating system or the application may include sounds output from the mobile operating system or the application and the run screen image may be a plurality of images generated continuously, And the streaming server can encode the plurality of images and the sounds of the plurality of time units into a moving picture and transmit the encoded moving pictures to the terminal in real time.

상기 스트리밍 서버는 단말로부터 전송된 입력 정보를 가상화 서버가 사용하는 규격에 맞게 변환하고, 변환된 입력 정보를 상기 가상화 서버로 전송할 수 있다. The streaming server may convert the input information transmitted from the terminal according to a standard used by the virtualization server, and may transmit the converted input information to the virtualization server.

본 발명의 또 다른 일 측에 따르면, 모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 모바일 어플리케이션의 가상 환경을 제공하는 가상화 서버에 있어서, 상기 서버의 하드웨어를 제어하고 운영 체제 기능을 제공하는 호스트 층, 상기 호스트 층의 어플리케이션으로서 동작하고, 상기 모바일 운영 체제의 기능을 제공하는 모바일 운영 체제 스택 층 및 상기 모바일 운영 체제 스택 층의 어플리케이션으로서 동작하는 모바일 어플리케이션 층을 포함하고, 상기 모바일 어플리케이션 층에서 동작하는 모바일 어플리케이션의 코드는 모바일 단말에서 사용되는 상기 모바일 운영 체제에 동작하는 상기 모바일 어플리케이션의 코드와 동일한, 가상화 서버가 제공된다.According to another aspect of the present invention, there is provided a virtualization server for providing a mobile operating system and a virtual environment of a mobile application operating in the mobile operating system, the virtualization server comprising: a host layer for controlling hardware of the server and providing an operating system function; And a mobile application layer operating as an application of the mobile operating system stack layer, the mobile operating system stack layer operating as an application of the host layer and providing functions of the mobile operating system, The code of the application is the same as the code of the mobile application operating on the mobile operating system used in the mobile terminal.

상기 가상화 서버는, 상기 모바일 운영 체제를 지원하기 위한 CPU를 에뮬레이트하는 CPU 에뮬레이션 층을 더 포함할 수 있다.The virtualization server may further include a CPU emulation layer that emulates a CPU for supporting the mobile operating system.

상기 CPU 에뮬레이션 층은 상기 CPU가 탑재된 단말의 디바이스를 에뮬레이트하는 디바이스 에뮬레이터를 포함할 수 있고, 상기 디바이스 에뮬레이터는 상기 모바일 운영 체제 또는 상기 모바일 어플리케이션의 실행 화면을 출력할 수 있다.The CPU emulation layer may include a device emulator that emulates a device of a terminal on which the CPU is mounted, and the device emulator may output an execution screen of the mobile operating system or the mobile application.

상기 가상화 서버는 상기 실행 화면을 포함하는 가상 환경 정보를 스트리밍 서버로 전송할 수 있다.The virtualization server may transmit the virtual environment information including the execution screen to the streaming server.

상기 모바일 운영 체제 스택 층은 복수 개이고, 상기 복수 개의 모바일 운영 체제 스택 층들 각각은 상이한 가상화 서비스 요청을 위해 생성될 수 있다.The mobile operating system stack layer is a plurality, and each of the plurality of mobile operating system stack layers may be created for different virtualization service requests.

모바일 운영 체제 및 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서비스 방법 및 장치가 제공된다.A virtualization service method and apparatus is provided that provides a virtual environment of an application operating in a mobile operating system and a mobile operating system.

가상화 서버 및 스트리밍 서버를 포함하는 가상화 서비스 제공 시스템이 제공된다.A virtualization service providing system including a virtualization server and a streaming server is provided.

도 1은 본 발명의 일 실시예에 따른 가상화 플렛폼 제공 시스템의 구조도이다.
도 2는 본 발명의 일 실시예에 따른 가상화 플랫폼 제공 시스템의 동작 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 가상화 서버의 구조도이다.
도 4는 본 발명의 일 실시예에 따른 가상화 서버의 소프트웨어 아키텍처(architecture)를 나타내는 도면이다.
1 is a structural diagram of a virtualization platform providing system according to an embodiment of the present invention.
2 is a flowchart illustrating an operation of a virtualization platform providing system according to an embodiment of the present invention.
3 is a structural diagram of a virtualization server according to an embodiment of the present invention.
4 is a diagram illustrating a software architecture of a virtualization server according to an embodiment of the present invention.

이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

도 1은 본 발명의 일 실시예에 따른 가상화 플렛폼 제공 시스템의 구조도이다.1 is a structural diagram of a virtualization platform providing system according to an embodiment of the present invention.

시스템(100)은 가상화 서버(110)를 포함하고, 스트리밍 서버(120)를 더 포함할 수 있다. 일반적으로, 가상화 서버(110) 및 스트리밍 서버(120)는 지역망(local area network; LAN) 등과 같은 고속 네트워크로 연결된다.The system 100 includes a virtualization server 110 and may further include a streaming server 120. Generally, the virtualization server 110 and the streaming server 120 are connected to a high-speed network such as a local area network (LAN).

시스템(100)은 단말(150)에게 가상화 서비스를 제공한다. 일반적으로, 시스템(100) 및 단말(150)은 이동 통신 네트워크 또는 무선 통신 네트워크 등으로 연결된다.The system 100 provides a virtualization service to the terminal 150. In general, the system 100 and the terminal 150 are connected to a mobile communication network or a wireless communication network.

시스템(100)은 웹 서버(190)와의 연동을 통해, 웹 서버(190)가 제공하는 서비스를 사용할 수 있다. 일반적으로, 시스템(100) 및 웹 서버(190)는 인터넷(internet) 등으로 연결된다.The system 100 can use the service provided by the web server 190 through interoperation with the web server 190. Generally, the system 100 and the web server 190 are connected to the Internet or the like.

가상화 서버(110)는 가상화 서비스를 제공한다.The virtualization server 110 provides a virtualization service.

단말(150)은 가상화 서버(110)로부터 가상화 서비스를 제공받는 스마트 폰 또는 피처(Feature) 폰이다. 단말(150)은 가상화 서비스를 단말(150) 내에서 동작(operate)시키기 위한 씬 클라이언트(thin client)를 포함할 수 있다.The terminal 150 is a smart phone or a feature phone that receives virtualization service from the virtualization server 110. The terminal 150 may include a thin client for operating the virtualization service within the terminal 150.

스트리밍 서버(120)는 가상화 서비스의 동작 효율을 높이기 위해, 가상화 서버(110) 및 단말(150) 간의 데이터 송수신의 중계 역할을 수행한다.The streaming server 120 plays a role of relaying data transmission / reception between the virtualization server 110 and the terminal 150 in order to increase the operation efficiency of the virtualization service.

웹 서버(190)는 가상화 서버(110)의 가상 환경에서 동작하는 특정 모바일 OS 및/또는 어플리케이션(이하, 모바일 OS 및/또는 어플리케이션으로 간략하게 표현한다.)과의 연동을 통해 웹 서비스를 제공한다. 일반적으로, 상기의 특정 모바일 OS 및/또는 어플리케이션은, 단말(150)에서 직접(즉, 가상화 서비스를 통하지 않고) 동작할 수 없는 것이다. 즉, 웹 서버(190)가 제공하는 웹 서비스는 단말의 OS/어플리케이션과는 연동될 수 없다.The web server 190 provides a web service through interworking with a specific mobile OS and / or application (hereinafter, simply referred to as a mobile OS and / or an application) operating in a virtual environment of the virtualization server 110 . In general, the particular mobile OS and / or application may not be able to operate directly at the terminal 150 (i.e., without going through the virtualization service). That is, the web service provided by the web server 190 can not be interworked with the OS / application of the terminal.

하기에서, 가상화 서비스에 대해 설명한다.In the following, the virtualization service will be described.

가상화 서비스는, 단말(150)에게, 특정 모바일 OS 및 상기 모바일 OS에서 동작(operation)하는 어플리케이션을 마치 단말(150)이 직접 실행하는 것과 같은 환경을 제공하는 것을 의미한다.The virtualization service means providing the terminal 150 with an environment such that the terminal 150 directly executes a specific mobile OS and an application operating in the mobile OS.

모바일 OS는 안드로이드(Android), 아이폰 OS(iPhone OS), 윈도우 모바일(Windows Mobile), 윈도우 폰(Windows Phone) 및 심비안(Symbian)과 같은 상용 OS이거나, 공개 모바일 OS일 수 있다.The mobile OS may be a commercial OS such as Android, iPhone OS, Windows Mobile, Windows Phone and Symbian, or it may be a public mobile OS.

가상화 서버(110)는 모바일 OS 및 어플리케이션을 동작 시키고, 동작 중인 모바일 OS 및/또는 어플리케이션에 대한 정보를 단말(150)에게 제공함으로써, 단말(150)이 제공되는 모바일 OS 및/또는 어플리케이션을 직접 실행하는 것과 같은 환경을 단말(150)의 사용자에게 제공한다.The virtualization server 110 directly operates the mobile OS and / or the application provided by the terminal 150 by operating the mobile OS and the application and providing information on the mobile OS and / or application in operation to the terminal 150 And provides the environment of the terminal 150 to the user of the terminal 150.

단말(150)의 사용자는 단말(150)의 출력 장치(예컨대, 액정 화면(LCD display) 및 스피커(Speaker) 등) 및 입력 장치(예컨대, 버튼(button), 터치 패드(touch pad), 키 패드(key pad), 카메라(camera), 마이크(mike), 마우스(mouse), 트랙 포인트(track point) 등)를 사용하여 가상화 서비스가 제공하는 모바일 OS 및/또는 어플리케이션을 조작할 수 있다.A user of the terminal 150 may be connected to an output device of the terminal 150 such as an LCD display and a speaker and an input device such as a button, a mobile OS and / or an application provided by the virtualization service can be operated using a key pad, a camera, a mike, a mouse, a track point, and the like.

가상화 서버(150)는 복수 개의 단말(150)에게 가상화 서비스를 제공할 수 있으며, 단말(150) 또는 단말(150)의 사용자를 식별하기 위해 단말(150)에 대한 정보(예컨대, 단말의 입출력 장치와 같은 하드웨어 특성) 또는 단말(150)의 사용자에 대한 사용자 계정 정보(예컨대, 가상화 서버로의 로그인(login)을 위한 ID(identifier) 또는 암호(password))를 데이터베이스를 사용하여 유지 및 관리할 수 있다.The virtualization server 150 may provide a virtualization service to a plurality of terminals 150 and may provide information about the terminal 150 in order to identify a user of the terminal 150 or the terminal 150 Or user account information (e.g., an identifier or password for login to the virtualization server) for a user of the terminal 150 can be maintained and managed using the database have.

일반적으로, 본 발명의 일 실시예에 따른 가상화 서비스는 이동 단말을 위한 모바일 OS를 지원하기 위한 것이나, 반드시 모바일 OS 만으로 가상화 서비스의 범위가 한정되는 것은 아니고, 개인용 컴퓨터의 OS 또한 가상화 서비스에 의해 제공될 수 있다.In general, the virtualization service according to an embodiment of the present invention is intended to support a mobile OS for a mobile terminal. However, the range of the virtualization service is not necessarily limited to the mobile OS alone, and the OS of the personal computer is also provided by the virtualization service .

하기에서, 씬 클라이언트에 대해서 설명한다.In the following, the thin client will be described.

씬 클라이언트는 특정한 모바일 OS(일반적으로, 가상화 서버(110)가 제공하는 모바일 OS와는 다른 것) 상에서 동작하는 어플리케이션이거나(특히, 단말(150)이 스마트 폰인 경우), 단말에 설치된 전용 프로그램(특히, 단말(150)이 피처 폰인 경우)이다.The thin client may be an application running on a particular mobile OS (generally, different from the mobile OS provided by the virtualization server 110) (especially if the terminal 150 is a smartphone) And the terminal 150 is a feature phone).

특정한 모바일 OS의 예로서, 전술된 안드로이드, 윈도우 모바일 및 아이폰 OS 등이 있고, 시스템 소프트웨어의 예로서, DMSS(Dual-Mode Subscriber Software) 등과 같은 것이 있다.Examples of specific mobile OSs include the aforementioned Android, Windows Mobile, and iPhone OS, and examples of system software include Dual-Mode Subscriber Software (DMSS) and the like.

씬 클라이언트는 가상화 서버(110)가 전송하는 모바일 OS 및/또는 어플리케이션의 실행과 관련된 데이터(예컨대, 모바일 OS 및/또는 어플리케이션의 실행 화면, 모바일 OS 및/또는 어플리케이션으로부터 출력되는 음향)를 해석하여 단말의 표시부(Display) 또는 스피커부(Speaker) 등으로 출력한다.The thin client interprets data related to the execution of the mobile OS and / or application transmitted by the virtualization server 110 (e.g., an execution screen of the mobile OS and / or the application, and sound output from the mobile OS and / And outputs it to a display unit or a speaker unit.

또한, 사용자가 단말(150)의 입력 장치를 조작하면, 입력 장치의 조작에 대한 입력 정보가 단말의 OS 또는 시스템 소프트웨어를 통해 씬 클라이언트로 전달된다. 씬 클라이언트는 전달받은 입력 정보를 가상화 서버(110)로 전송하여 모바일 OS 및/또는 어플리케이션이 입력 정보에 따라 동작하게 한다.Further, when the user operates the input device of the terminal 150, the input information on the operation of the input device is transmitted to the thin client through the OS or the system software of the terminal. The thin client transmits the received input information to the virtualization server 110 to allow the mobile OS and / or the application to operate according to the input information.

따라서, 씬 클라이언트는 가상화 서버(110)가 제공하는 모바일 OS 및/또는 어플리케이션이 직접 단말(150)에서 실행되는 것과 같은 가상 환경을 단말(150)의 사용자에게 제공한다.Accordingly, the thin client provides the user of the terminal 150 with a virtual environment such that the mobile OS and / or application provided by the virtualization server 110 is directly executed in the terminal 150. [

하기에서, 가상화 서비스 프로토콜에 대해 설명한다.In the following, the virtualization service protocol will be described.

이러한 가상화 서비스를 위해, 가상화 서버(110) 및 단말(150)(또는, 단말의 씬 클라이언트) 간에는 가상화 서비스 프로토콜(protocol)에 따른 데이터 송수신이 이루어져야 한다.For this virtualization service, data transmission / reception according to a virtualization service protocol must be performed between the virtualization server 110 and the terminal 150 (or the thin client of the terminal).

가상화 서비스 프로코톨은 터미널 서비스(terminal service) 또는 VNC(virtual network computing)과 같은 PC에서 사용되는 프로토콜이거나, 이러한 PC 프로토콜과 호환되는 프로토콜일 수 있다.The virtualization service protocol may be a protocol used in a PC, such as a terminal service or virtual network computing (VNC), or a protocol compatible with such a PC protocol.

하기에서, 가상화 서버(110)가 동작 중인 모바일 OS 및/또는 어플리케이션에 대한 정보를 단말(150)에게 전달하는 방법에 대해서 설명한다.Hereinafter, a method of transferring information on the mobile OS and / or application in which the virtualization server 110 is operating to the terminal 150 will be described.

가상화 서버(110)는 동작 중인 모바일 OS 및/또는 어플리케이션에 대한 정보를 가상화 서비스 프로토콜에 따른 특정한 형태로 제공할 수 있다. 가상화 서버(110)에 의해 제공되는 동작 중인 모바일 OS 및/또는 어플리케이션에 대한 정보를 가상 환경 정보로 명명한다.The virtualization server 110 may provide information on the mobile OS and / or application in operation in a specific form according to the virtualization service protocol. Information about the active mobile OS and / or application provided by the virtualization server 110 is referred to as virtual environment information.

예컨대, 가상화 서버(110)는 단말(150)에게 가상화 서비스를 제공하기 위해 동작 중인 모바일 OS의 전체 데스크탑(desktop) 화면을 전송할 수 있다. 이 경우, 데스크탑 화면 내에서는 복수 개의 어플리케이션의 실행 창(window)들이 동시에 표시되어 있을 수 있으며, 한 어플리케이션의 실행 창 및 다른 백그라운드(background) 실행 중인 어플리케에션에 대한 정보가 표시되어 있을 수 있다.For example, the virtualization server 110 may transmit the entire desktop screen of the mobile OS that is operating to provide the virtualization service to the terminal 150. In this case, the execution windows of a plurality of applications may be simultaneously displayed in the desktop screen, and information about an execution window of one application and another application running in the background may be displayed .

또한, 가상화 서버(110)는 단말(150)에게 가상화 서비스를 제공하기 위해 동작 중인 어플리케이션의 실행 창을 전송할 수 있다.In addition, the virtualization server 110 may transmit an execution window of an application in operation to provide the virtualization service to the terminal 150. [

이러한 데스크탑 화면 및/또는 실행 창은 데스크탑 화면 및/또는 실행 창을 나타내는 객체(object)(또는, 이러한 객체를 나타내는 데이터)로서 전송될 수 있으며, 이미지(image), 이미지 청크(chunk) 또는 동영상(motion picture)으로서 전송될 수 있다.The desktop screen and / or the execution window may be transmitted as an object (or data representing the object) representing the desktop screen and / or the execution window, and may be an image, an image chunk, motion picture.

단말(150)(또는, 단말의 씬 클라이언트)는, 가상화 서버(110)로부터 전송된 는 동작 중인 모바일 OS 및/또는 어플리케이션에 대한 정보를 분석하여 단말(150)의 표시부에 출력할 수 있다.The terminal 150 (or the thin client of the terminal) may analyze the information about the mobile OS and / or the application transmitted from the virtualization server 110 and output the analyzed information to the display unit of the terminal 150.

예컨대, 단말(150)(또는, 단말의 씬 클라이언트)은 전송된 데스크탑 화면 또는 실행 창을 나타내는 객체(object)(또는, 객체를 나타내는 데이터)를 분석하여, 데스크탑 화면 또는 실행 창을 구성함으로써 모바일 OS 및 어플리케이션을 직접 사용하는 것과 같은 가상 환경을 사용자에게 제공할 수 있다.For example, the terminal 150 (or the thin client of the terminal) analyzes an object (or data representing an object) representing the transferred desktop screen or the execution window to configure a desktop screen or an execution window, And providing a virtual environment such as using the application directly to the user.

또는, 단말(150)(또는, 단말의 씬 클라이언트)은 전송된 이미지 또는 동영상을 표시부에 출력함으로써 가상 환경을 사용자에게 제공할 수 있다.Alternatively, the terminal 150 (or the thin client of the terminal) can provide the virtual environment to the user by outputting the transmitted image or moving image to the display unit.

하기에서, 단말(150)이 가상 환경에서 동작 중인 모바일 OS 및 어플리케이션에 대한 사용자의 조작을 가상화 서버(110)에게 전달하는 방법에 대해서 설명한다.Hereinafter, a method in which the terminal 150 transmits a user's operation on a mobile OS and an application operating in a virtual environment to the virtualization server 110 will be described.

단말(150)의 사용자가 가상 환경에서 동작하는 모바일 OS 및 어플리케이션을 사용하기 위해서는, 모바일 OS 및/또는 어플리케이션을 단말(150)의 입력 장치를 통해 조작할 수 있어야 한다.A user of the terminal 150 must be able to operate the mobile OS and / or the application through the input device of the terminal 150 in order to use the mobile OS and the application operating in the virtual environment.

사용자는 표시부에 표시된 모바일 OS 및/또는 어플리케이션의 실행 화면을 보고, 단말(150)의 입력 장치를 조작할 수 있다.The user can view the execution screen of the mobile OS and / or the application displayed on the display unit and operate the input device of the terminal 150. [

사용자가 입력 장치를 조작하면, 단말(또는, 단말의 씬 클라이언트)은 조작에 따른 입력 정보를 생성하여, 생성된 정보를 가상화 서버(150)에 전송한다. 입력 정보는 하기의 1) 내지 5) 중 하나 이상을 포함할 수 있다.When the user operates the input device, the terminal (or the thin client of the terminal) generates input information according to the operation, and transmits the generated information to the virtualization server 150. [ The input information may include one or more of the following 1) through 5).

1) 사용자가 단말(150)의 터치 스크린을 터치함에 의해 발생한 입력 정보 (예컨대, 터치 스크린의 좌표 정보, 멀티(Multi) 터치가 지원되는 터치 스크린인 경우 복수 개의 좌표 정보)1) input information (e.g., coordinate information of a touch screen, a plurality of coordinate information in the case of a touch screen in which a multi-touch is supported) generated by a user touching the touch screen of the terminal 150,

2) 사용자가 단말(150)의 키패드를 누름에 의해 발생한 입력 정보 (예컨대, 한글, 영문 및 숫자 등의 수문자를 나타내는 정보)2) input information (e.g., information indicating a number of characters such as Korean, English, and numerals) generated by the user pressing the keypad of the terminal 150,

3) 사용자가 단말(150)의 버튼(button)을 누름에 의해 발생한 입력 정보 (예컨대, 볼륨(volume) 업(up)/다운(down)이 눌렸음을 나타내는 정보)3) Input information (for example, information indicating that volume up / down is pressed) generated by the user pressing a button of the terminal 150,

4) 사용자가 단말(150)의 마우스 또는 트랙 포인트를 조작함에 의해 발생한 입력 정보 (예컨대, 마우스 커셔(cursor)의 위치 정보 또는 마우스 버튼의 눌림(press)/풀림(release)에 대한 정보)4) Input information generated by the user operating the mouse or track point of the terminal 150 (e.g., information on the position of the mouse cursor or the press / release of the mouse button)

5) 사용자가 단말(150)의 카메라 또는 마우스를 조작함에 의해 발생한 영상 또는 음성 정보 (예컨대, 카메라에 의해 캡춰된 이미지 또는 동영상 데이터 또는 마이크를 통해 입력된 음성 데이터)5) Video or audio information (for example, image or moving picture data captured by a camera or audio data input via a microphone) generated by a user operating a camera or a mouse of the terminal 150,

입력 정보를 전송 받은 가상화 서버(150)는 이러한 입력 정보를 가상화 환경에서 동작 중인 모바일 OS 및/또는 어플리케이션에게 전달한다. 모바일 OS 및 어플리케이션은 이벤트(event), 인터럽트(interrupt) 및 폴링(polling) 등과 같은 방식을 통해 가상화 서버(110)로부터 입력 정보를 제공 받을 수 있다.The virtualization server 150 receiving the input information delivers the input information to the mobile OS and / or the application operating in the virtualized environment. The mobile OS and the application can receive input information from the virtualization server 110 through a method such as an event, an interrupt, and a polling.

하기에서, 가상화 스트리밍 서버의 기능에 대해서 설명한다.In the following, the function of the virtualization streaming server will be described.

전술된 것처럼, 가상화 서버(110) 및 단말(150) 간에는 가상 환경과 관련된 데이터가 송수신되어야 한다. 즉, 가상화 서버(110)로부터 단말(150)로 가상 환경 정보가 전송되고, 단말(150)로부터 가상화 서버(110)로 입력 정보가 전송된다.As described above, data related to the virtual environment must be transmitted and received between the virtualization server 110 and the terminal 150. [ That is, the virtual environment information is transmitted from the virtualization server 110 to the terminal 150, and the input information is transmitted from the terminal 150 to the virtualization server 110.

특정한 가상 환경 정보 또는 입력 정보는 단말(150)로 제공되기 전, 또는 가상화 서버(110)로 제공되기 전에 다른 형식으로 변환 또는 가공될 필요가 있다.Specific virtual environment information or input information needs to be converted or processed into another format before being provided to the terminal 150 or before being provided to the virtualization server 110. [

예컨대, 가상화 서버(110)가 실행 중인 모바일 OS 및/또는 어플리케이션의 실행 화면 이미지를 생성하는 경우, 생성된 이미지들이 개별적으로 전송되는 것 보다는 높은 압축율을 갖는 동영상 스트림으로서 전송되는 것이 더 효율적일 수 있다.For example, when the virtualization server 110 generates an executable screen image of a running mobile OS and / or application, it may be more efficient for the generated images to be transmitted as a moving picture stream with a higher compression ratio than that transmitted individually.

예컨대, 가상화 서버(110)가 실행 중인 모바일 OS 및/또는 어플리케이션에 의해 생성되는 음향을 출력한 경우, 출력되는 음향이 압축 없이 전송되는 것보다는 높은 압축율을 갖는 동영상 스트림의 음향으로서 전송되는 것이 더 효율적일 수 있다.For example, when the virtualization server 110 outputs sound generated by a running mobile OS and / or application, it is more efficient that the outputted sound is transmitted as sound of a moving picture stream having a higher compression ratio than that transmitted without compression .

이러한 경우, 가상화 서버(110) 및 단말(150)이 직접 통신하는 대신, 스트리밍 서버(120)가 가상화 서버(110) 및 단말(150)의 사이에서, 양자 간에 송수신 되어야 할 데이터를 변환 및 가공하여 전달할 수 있다.In this case, instead of directly communicating with the virtualization server 110 and the terminal 150, the streaming server 120 converts and processes the data to be transmitted and received between the virtualization server 110 and the terminal 150 .

스트리밍 서버(120)는 가상화 서버(110)에 의해 연속적으로 생성된 복수 개의 가상 환경의 이미지를 전송 받아, 전송 받은 복수 개의 가상 환경의 이미지들을 H.264와 같은 특정 동영상 형식으로 부호화하여 단말(150)에게 실시간 전송할 수 있다.The streaming server 120 receives images of a plurality of virtual environments continuously generated by the virtualization server 110, encodes the images of the plurality of virtual environments transmitted in a specific video format such as H.264, ) In real time.

스트리밍 서버(120)는 가상화 서버(110)에 의해 연속적으로 생성된(즉, 상기 모바일 운영 체제 또는 상기 어플리케이션으로부터 출력된) 복수 개의 시간 단위의 음향들을 전송 받아, 전송 받은 복수 개의 시간 단위의 음향들을 H.264와 같은 특정 동영상 형식으로 부호화하여 단말(150)에게 실시간 전송할 수 있다.The streaming server 120 receives sounds of a plurality of time units continuously generated by the virtualization server 110 (that is, output from the mobile operating system or the application), and transmits sounds of the plurality of time units Such as H.264, and transmit the encoded data to the terminal 150 in real time.

스트리밍 서버(120)는 단말(150)로부터 전송된 입력 정보를 가상화 서버(110)에게 전송할 수 있다. 이 때, 전송된 입력 정보는 가상화 서버(110)에게 전송되기 전, 가상화 서버(110)가 사용하는 규격에 맞도록 스트리밍 서버(120)에 의해 변환될 수 있다.The streaming server 120 may transmit the input information transmitted from the terminal 150 to the virtualization server 110. In this case, the transmitted input information may be converted by the streaming server 120 in accordance with the standard used by the virtualization server 110 before being transmitted to the virtualization server 110.

스트리밍 서버(120)는 부가적인 것으로, 본 발명의 실시예들에서 설명되는 스트리밍 서버(120)의 기능은 제외되거나, 가상화 서버(110)의 기능으로서 통합될 수 있다. 예컨대, 가상화 서버(110)가 가상 환경의 이미지를 동영상 형식으로 부호화하여 단말(150)에게 전송할 수 있다.The streaming server 120 is in addition to the function of the streaming server 120 described in the embodiments of the present invention, or may be integrated as a function of the virtualization server 110. [ For example, the virtualization server 110 may encode an image of a virtual environment into a moving image format and transmit the image to the terminal 150.

하기에서, 단말 특성 또는 사용자의 설정에 따른 가상화 환경 및 데이터의 변환에 대하여 설명한다.In the following, conversion of virtual environments and data according to terminal characteristics or user settings will be described.

가상화 서버(110)는 가상화 서버(110)에 접속한 단말(150)에 따라 서로 상이한 가상화 환경을 제공할 수 있다.The virtualization server 110 may provide different virtual environments according to the terminal 150 connected to the virtualization server 110. [

예컨대, 가상화 서버(110)는 1) 단말(150)에 설치된 씬 클라이언트(종류 및 버전으로 분류될 수 있다.)나, 2) 단말이 구비한 디스플레이 특성(해상도, 최대 색상, 방향(가로, 세로) 등) 또는 3) 단말의 입력 장치(터치 패드, 키 패트, 카메라, 마이크, 마우스, 트랙 포인트 등)의 종류 및 특성에 맞는 가상화 환경을 단말(150)에게 제공할 수 있다. 또한, 가상화 서버(110)는 단말(150)의 사용자에 의해 설정된 사용자 환경에 맞는 가상화 환경을 단말(150)에게 제공할 수 있다.For example, the virtualization server 110 may be configured to perform the functions of: 1) a thin client (classified into types and versions) installed in the terminal 150; 2) display characteristics (resolution, ) Or 3) a virtual environment suitable for the type and characteristics of the input device (touch pad, keypad, camera, microphone, mouse, track point, etc.) of the terminal. In addition, the virtualization server 110 may provide the terminal 150 with a virtualization environment suitable for the user environment set by the user of the terminal 150. [

가상화 서버(110)에 의해 생성된 모바일 OS 및/또는 어플리케이션에 대한 정보는, 단말(150)의 하드웨어 특성 또는 사용자 설정 때문에 단말(150)(또는, 단말의 씬 클라이언트)에 의해 직접적으로 사용되지 못할 수 있다. The information about the mobile OS and / or application generated by the virtualization server 110 may not be directly used by the terminal 150 (or the thin client of the terminal) due to the hardware characteristics or user settings of the terminal 150 .

예컨대, 모바일 OS 및/또는 어플리케이션의 화면 해상도는 단말(150)의 표시부의 해상도와 다를 수 있다.For example, the screen resolution of the mobile OS and / or application may be different from the resolution of the display of the terminal 150.

예컨대, 모바일 OS가 트루 컬러(true color)의 색상만을 지원하는데, 단말(150)의 사용자는 단말(150) 또는 씬 클라이언트가 그 보다 더 적은 수의 색상만을 사용하도록 설정할 수 있다.For example, the mobile OS only supports colors of true color, and the user of the terminal 150 can set the terminal 150 or the thin client to use fewer colors.

이러한 경우, 모바일 OS 및/또는 어플리케이션에 대한 정보는 단말(150)(또는, 단말의 씬 클라이언트)에 맞게 변환(예컨대, 색상의 변환)되어야 한다. 이러한 변환은, 가상화 서버(110), 스트리밍 서버(120), 단말(150) 및 단말의 씬 클라이언트 중 하나 이상에 의해 전부 또는 부분적으로 수행될 수 있다.In this case, the information about the mobile OS and / or the application should be converted (e.g., color conversion) to match the terminal 150 (or the thin client of the terminal). This conversion may be performed in whole or in part by one or more of the virtualization server 110, the streaming server 120, the terminal 150, and the thin client of the terminal.

단말(150)에 의해 전송된 입력 정보는 하드웨어 특성 또는 사용자 설정 때문에 모바일 OS 및/또는 어플리케이션으로 직접 제공되지 못할 수 있다.The input information transmitted by the terminal 150 may not be provided directly to the mobile OS and / or application due to hardware characteristics or user settings.

예컨대, 모바일 OS 및/또는 어플리케이션이, 단말이 특정한 하드웨어 버튼(예컨대, 홈(home), 백(back) 및 검색(search) 등)을 구비하였음을 전제로 하여, 이러한 버튼의 입력을 요구할 경우가 있다.For example, when a mobile OS and / or an application requests input of such a button, assuming that the terminal has specific hardware buttons (e.g., home, back, search, etc.) have.

이러한 경우, 단말(150)(또는, 단말의 씬 클라이언트)에 의해 생성된 입력 신호는 모바일 OS 및/또는 어플리케이션에게 맞게 변환(예컨대, 단말(150)의 특정 버튼의 누름/풀림 신호가 모바일 OS 및/또는 어플리케이션을 위해 요구되는 다른 버튼의 누름/풀림 신호로 변환되는 것)되어야 한다. 이러한 변환은, 단말(150), 단말의 씬 클라이언트, 스트리밍 서버(120) 및 가상화 서버(110) 중 하나 이상에 의해 전부 또는 부분적으로 수행될 수 있다.In this case, the input signal generated by the terminal 150 (or the thin client of the terminal) may be converted to a mobile OS and / or application (e.g., a push / / / ≪ / RTI > to a push / release signal of another button required for the application). This conversion may be performed in whole or in part by one or more of the terminal 150, the terminal's thin client, the streaming server 120, and the virtualization server 110. [

하기에서, 웹 서버(190)에 대해서 설명한다.In the following, the web server 190 will be described.

웹 서버(190)는 가상화 서버(110)의 가상 환경에서 동작하는 특정 모바일 OS 및/또는 어플리케이션과 연동한다.The web server 190 interacts with a specific mobile OS and / or application operating in the virtual environment of the virtualization server 110.

단말(150)(또는, 단말의 씬 클라이언트)는 모바일 OS 및/또는 어플리케이션이 실행되는 것과 같은 가상 환경을 사용자에게 제공하지만, 실제 모바일 OS 및/또는 어플리케이션의 실행은 가상화 서버(110)에서 이루어진다.The terminal 150 (or the thin client of the terminal) provides the user with a virtual environment such as the mobile OS and / or the application is executed, but execution of the actual mobile OS and / or application is performed in the virtualization server 110.

따라서, 가상화 서버(110)는 웹 서버(190)와의 연동을 위해 모바일 OS 및/또는 어플리케이션이 요구하는 작업을 처리할 수 있다.Accordingly, the virtualization server 110 may process a job required by the mobile OS and / or the application for interworking with the web server 190. [

웹 서버(190)는 특정 모바일 OS 및/또는 어플리케이션과 데이터 동기화를 수행할 수 있다. 이러한 경우, 동기화를 위해 요구되는 데이터 또는 동기화에 의해 생성된 데이터는 모바일 OS 및/또는 어플리케이션을 위해 제공하는 가상 파일 시스템(file system)에 저장될 수 있다.Web server 190 may perform data synchronization with a particular mobile OS and / or application. In this case, data required for synchronization or data generated by synchronization can be stored in a virtual file system that provides for the mobile OS and / or application.

웹 서버(190)는 부가적인 것으로, 본 발명의 실시예들에서 설명되는 웹 서버 (190)의 기능은 제외되거나, 가상화 서버(110)의 기능으로서 통합될 수 있다. 예컨대, 가상화 서버(110)가 웹 서비스를 모바일 OS 및/또는 어플리케이션에게 제공할 수 있다.The web server 190 is optional, and the functions of the web server 190 described in the embodiments of the present invention may be omitted or integrated as a function of the virtualization server 110. For example, the virtualization server 110 may provide the web service to the mobile OS and / or application.

웹 서버(190)는 웹 서비스 제공을 위해 별개의 사용자 계정 정보(예컨대, ID, 암호, 환경 설정 정보 등)를 가지고 있을 수 있다. 가상화 서버(110)의 데이터베이스는 단말(150)의 사용자로서 웹 서버(190)에 접속하기 위해 필요한 정보(예컨대, 웹 서버 ID 및 웹 서버 암호 등)을 관리할 수 있고, 단말(150)의 사용자 계정 정보를 대응하는 웹 서버의 사용자 계정 정보와 매핑(mapping) 및 연동할 수 있다.Web server 190 may have separate user account information (e.g., ID, password, configuration information, etc.) for providing web services. The database of the virtualization server 110 may manage the information necessary to access the web server 190 as a user of the terminal 150 (e.g., a web server ID and a web server password) It is possible to map and link the account information with the user account information of the corresponding web server.

또는, 단말(150)은 가상화 서버(110)에게 웹 서버(190)에 접속하기 위해 필요한 정보를 직접 제공할 수 있다.
Alternatively, the terminal 150 may directly provide the virtualization server 110 with information necessary for accessing the web server 190.

도 2는 본 발명의 일 실시예에 따른 가상화 플랫폼 제공 시스템의 동작 흐름도이다.2 is a flowchart illustrating an operation of a virtualization platform providing system according to an embodiment of the present invention.

단계(S200)에서, 단말(150)은 가상화 서버(110)로 가상화 서비스를 요청한다. 또는, 단말(150)은 스트리밍 서버(120)로 가상화 서비스를 요청하고, 스트리밍 서버(120)가 가상화 서비스 요청을 가상화 서버(110)로 전달 할 수 있다.In step S200, the terminal 150 requests the virtualization server 110 for the virtualization service. Alternatively, the terminal 150 may request the virtualization service from the streaming server 120, and the streaming server 120 may forward the virtualization service request to the virtualization server 110.

가상화 서비스 요청에는 단말(150) 또는 단말(150)의 사용자에 대한 정보(예컨대, 가상화 서버로의 로그인을 위한 ID 또는 암호)가 포함될 수 있다.The virtualization service request may include information about the terminal 150 or the user of the terminal 150 (e.g., ID or password for login to the virtualization server).

가상화 서비스 요청에는 단말(150)의 종류 또는 특성에 대한 정보가 포함될 수 있고, 사용자 환경에 대한 정보가 포함될 수 있다.The virtualization service request may include information on the type or characteristics of the terminal 150, and information about the user environment may be included.

가상화 서비스 요청에는 단말(150)이 구동 또는 실행되기를 원하는 모바일 OS 및/또는 어플리케이션을 나타내는 정보가 포함될 수 있다.The virtualization service request may include information indicating a mobile OS and / or an application for which the terminal 150 desires to be activated or executed.

단계(S210)에서, 가상화 서버(110)는 단말(150)을 위한 가상 환경을 구동한다. 즉, 가상화 서비스 요청에 따라 단말(150)을 위한 모바일 OS 및/또는 어플리케이션이 구동된다.In step S210, the virtualization server 110 drives a virtual environment for the terminal 150. [ That is, the mobile OS and / or application for the terminal 150 is driven according to the virtualization service request.

상기의 구동은 모바일 OS의 가상화 서버(110) 내에서의 부팅(booting)을 포함할 수 있다.Such driving may include booting within the virtualization server 110 of the mobile OS.

가상화 서비스 요청에 포함된 단말(150) 또는 사용자에 대한 정보가 모바일 OS 및/또는 어플리케이션을 설정하기 위해 사용될 수 있다.Information about the terminal 150 or the user included in the virtualization service request may be used to set up the mobile OS and / or application.

가상화 서비스 요청에 포함된 사용자에 대한 정보가 단말 사용자를 식별하기 위해 사용될 수 있다.Information about the user included in the virtualization service request can be used to identify the terminal user.

예컨대, 가상화 서버(150)는 가상화 서비스 요청 내의 ID를 가상화 서버(150)의 데이터베이스에 저장된 사용자 목록과 비교하여 사용자를 식별할 수 있다. 가상화 서버(150)는 가상화 서비스 요청 내의 암호를 식별된 사용자를 인증하기 위해 사용할 수 있다. 가상화 서버(150)는 식별된 사용자에게 대응하는 가상 환경 설정 정보를 데이터베이스로부터 검색 및 로드하고, 모바일 OS 및/또는 어플리케이션을 구동할 때 가상 환경 설정 정보를 적용할 수 있다.For example, the virtualization server 150 may compare the ID in the virtualization service request with the user list stored in the database of the virtualization server 150 to identify the user. The virtualization server 150 may use the password in the virtualization service request to authenticate the identified user. The virtualization server 150 may search for and load the virtual environment setting information corresponding to the identified user from the database and apply the virtual environment setting information when the mobile OS and / or the application are operated.

즉, 가상화 서버(110)는 가상화 서비스 요청에 포함된 정보에 기반하여 구동될 모바일 OS 및/또는 어플리케이션을 설정할 수 있다.That is, the virtualization server 110 may set a mobile OS and / or an application to be driven based on the information included in the virtualization service request.

단계(S220)에서, 가상화 서버(110)는 단말(150)로 가상 환경 정보를 전송한다. 또는, 가상화 서버(110)는 스트리밍 서버(120)로 가상 환경 정보를 전송하고, 스트리밍 서버는 가상 환경 정보를 변환하여, 변환된 가상 환경 정보를 단말(150)로 전송할 수 있다.In step S220, the virtualization server 110 transmits the virtual environment information to the terminal 150. [ Alternatively, the virtualization server 110 may transmit the virtual environment information to the streaming server 120, and the streaming server may convert the virtual environment information and transmit the converted virtual environment information to the terminal 150.

이 때, 가상화 서버는 가상 환경 정보를 단말(150)에 맞게 변환할 수 있다.At this time, the virtualization server can convert the virtual environment information to the terminal 150.

단계(S230)에서, 단말(150)은 수신된 가상 환경 정보를 이용하여, 출력 장치로 가상 환경을 출력한다. 즉, 모바일 OS/또는 어플리케이션의 화면은 표시부에 나타나고, 모바일 OS/또는 어플리케이션에 의해 생성된 음향이 스피커를 통해 출력될 수 있다.In step S230, the terminal 150 outputs the virtual environment to the output device using the received virtual environment information. That is, the screen of the mobile OS / or application appears on the display unit, and the sound generated by the mobile OS / or application can be outputted through the speaker.

단계(S240)에서, 사용자가 단말(150)을 조작함에 따른 입력 정보가 단말(150)에서 생성된다.In step S240, input information as the user operates the terminal 150 is generated in the terminal 150. [

단계(S250)에서, 단말(150)은 생성된 입력 정보를 가상화 서버(110)로 전송한다. 또는 단말(150)은 생성된 입력 정보를 스트리밍 서버(120)로 전송하고, 스트리밍 서버는 입력 정보를 변환하여, 변환된 입력 정보를 가상화 서버(110)로 전송할 수 있다.In step S250, the terminal 150 transmits the generated input information to the virtualization server 110. [ Alternatively, the terminal 150 may transmit the generated input information to the streaming server 120, and the streaming server may convert the input information and transmit the converted input information to the virtualization server 110.

단계(S260)에서, 가상화 서버는 가상화 서비스에서 제공하는 모바일 OS/또는 어플리케이션에 대한 연동(예컨대, 데이터 동기화)을 웹 서버(190)에게 요청한다.In step S260, the virtualization server requests the web server 190 to interwork (e.g., synchronize data) with the mobile OS / or application provided by the virtualization service.

단계(S262)에서, 웹 서버(190)는 연동에 필요한 작업을 처리한다.In step S262, the web server 190 processes a job required for interworking.

단계(S264)에서, 웹 서버(190)는 연동 요청에 대한 응답을 가상화 서버(110)에게 전송한다.In step S264, the web server 190 transmits a response to the interworking request to the virtualization server 110. [

전술된 단계들(S220 내지 S264)은 수 회, 연속적 또는 지속적으로 수행될 수 있다. 또한, 전술된 단계들(S220 내지 S264)은 서로 중첩되거나 병렬로 수행될 수 있다.The above-described steps S220 to S264 may be performed several times, continuously or continuously. In addition, the above-described steps S220 to S264 may be performed in overlapping or parallel with each other.

예컨대, 가상화 서버(110)에서 실행되는 모바일 OS/또는 어플리케이션이 동영상 또는 애니메이션(animation)을 표시하는 경우, 화면의 변경이 가상 환경에 반영되어야 한다. 이러한 경우, 가상화 서버(110)는 변경에 따른 가상 환경 정보를 단말(150)에게 제공하여야 한다. 이 때, 단계(S220)는 짧은 시간 간격으로 여러 번 수행될 수 있으며, 지속적으로 수행되는 것으로 간주될 수 있다. 모바일 OS/또는 어플리케이션이 음향을 출력하는 경우 등도 이와 같다.For example, when a mobile OS / application running on the virtualization server 110 displays animation or animation, the change of the screen must be reflected in the virtual environment. In this case, the virtualization server 110 must provide the virtual environment information to the terminal 150 according to the change. In this case, step S220 may be performed several times in a short time interval, and may be regarded as being continuously performed. The same is true when the mobile OS / or application outputs sound.

예컨대, 사용자가 단말(150)로 음성을 입력하는 경우, 단말(150)은 음성 입력에 따라 생성된 입력 정보를 일정한 기간 동안 가상화 서버(110)로 제공하여야 한다. 음성 입력에 대한 입력 정보는 시간에 따라 분할 전송되는 것으로 볼 수 있다. 이 경우, 단계(S250)는 짧은 시간 간격으로 여러 번 수행될 수 있으며, 지속적으로 수행되는 것으로 간주될 수 있다.For example, when the user inputs a voice to the terminal 150, the terminal 150 must provide the input information generated according to the voice input to the virtualization server 110 for a predetermined period of time. The input information for voice input can be seen as being transmitted in time division. In this case, step S250 may be performed several times in a short time interval, and may be regarded as being continuously performed.

예컨대, 모바일 OS/또는 어플리케이션 및 웹 서버(190) 간의 연동은 1회의 요청(S260) 및 응답(S264)으로는 완료되지 않을 수 있고, 가상화 환경이 제공되는 동안 지속적으로 수행되어야 할 경우도 있다.For example, the interworking between the mobile OS / application and the web server 190 may not be completed in one request (S260) and the response (S264), and may be continuously performed while the virtualization environment is provided.

단계(S270)에서, 단말(150)은 가상화 서비스 종료 요청을 가상화 서버(110)에게 전송한다. 또는, 가상화 서버(110)는 스트리밍 서버(120)로 가상화 서비스 종료 요청을 전송하고, 스트리밍 서버는 가상화 서비스 종료 요청을 변환하여, 변환된 가상화 서비스 종료 요청을 단말(150)로 전송할 수 있다.In step S270, the terminal 150 transmits a virtualization service termination request to the virtualization server 110. [ Alternatively, the virtualization server 110 may transmit a virtualization service termination request to the streaming server 120, and the streaming server may convert the virtualization service termination request and transmit the converted virtualization service termination request to the terminal 150.

단계(S280)에서, 가상화 서버(110)(또는 스트리밍 서버(120)는 단말(150)에게 제공된 가상 환경(즉, 단말(150)을 위한 모바일 OS 및/또는 어플리케이션)을 종료한다.In step S280, the virtualization server 110 (or the streaming server 120) terminates the virtual environment provided to the terminal 150 (i.e., the mobile OS and / or application for the terminal 150).

가상 환경을 종료하면서, 가상화 서버(110)(또는 스트리밍 서버(120)는 가상 환경을 단말(150)에게 제공하기 위해 할당하였던 자원(즉, 단말(150)을 위한 모바일 OS 및/또는 어플리케이션에게 할당된 자원)을 회수할 수 있다.The virtualization server 110 (or the streaming server 120) allocates resources allocated for providing the virtual environment to the terminal 150 (i.e., the mobile OS and / or application for the terminal 150) Resources) can be recovered.

가상화 서버(110)는 가상 환경을 종료하면서, 예컨대, 모바일 OS 또는 어플리케이션을 위해 제공된 파일 시스템이나 설정 정보와 같은, 항구적인(permanent) 데이터를 저장할 수 있다. The virtualization server 110 may store permanent data, such as file system or configuration information provided for a mobile OS or application, while terminating the virtual environment.

항구적인 데이터는 가상화 서버(110)의 데이터베이스 등에 저장될 수 있다. 항구적인 데이터는 이후 동일한 사용자 또는 단말(150)을 위해 가상 환경이 구동될 때 사용될 수 있다.
The persistent data may be stored in a database of the virtualization server 110 or the like. The persistent data may then be used when the virtual environment is running for the same user or terminal 150.

도 3은 본 발명의 일 실시예에 따른 가상화 서버의 구조도이다.3 is a structural diagram of a virtualization server according to an embodiment of the present invention.

가상화 서버(110)는 송수신부(310), 제어부(320) 및 데이터베이스부(330)를 포함한다.The virtualization server 110 includes a transmission / reception unit 310, a control unit 320, and a database unit 330.

송수신부(310)는 네트워크를 통한 데이터의 송수신을 수행한다.The transmission / reception unit 310 performs transmission and reception of data through the network.

제어부(320)는 모바일 운영 체제 및 어플리케이션을 구동함으로써 가상 환경을 제공한다.The control unit 320 provides a virtual environment by driving a mobile operating system and an application.

데이터베이스부(330)는 가상 환경을 제공하기 위해 필요한 데이터를 저장한다.The database unit 330 stores data necessary for providing a virtual environment.

수신부는 단말(150)(또는, 스트리밍 서버(120))로부터 가상화 서비스, 입력 정보 및 가상화 서비스 종료 요청을 수신할 수 있다.The receiving unit may receive a virtualization service, input information, and a virtualization service termination request from the terminal 150 (or the streaming server 120).

수신부는 단말(150)(또는, 스트리밍 서버(120))로 가상 환경 정보를 전송한다.The receiving unit transmits the virtual environment information to the terminal 150 (or the streaming server 120).

수신부는 웹 서버(190)로 연동 요청을 전송하고, 웹 서버(190)로부터 연동 응답을 수신할 수 있다.The receiving unit may transmit the interworking request to the web server 190 and receive the interworking response from the web server 190.

제어부(320)는 모바일 운영 체제 또는 어플리케이션의 동작에 대한 정보를 포함하는 가상 환경 정보를 생성할 수 있다.The control unit 320 may generate virtual environment information including information on the operation of the mobile operating system or the application.

제어부(320)는 입력 정보를 처리할 수 있다. 처리된 입력 정보는 모바일 운영 체제 또는 어플리케이션의 동작에 반영될 수 있다.The control unit 320 may process the input information. The processed input information may be reflected in the operation of the mobile operating system or application.

제어부(320)는 웹 서버(190)과의 연동 요청을 생성할 수 있다.The control unit 320 may generate an interworking request with the web server 190.

데이터베이스부(330)는 단말(150)의 사용자의 계정 정보에 대응하는 웹 서버(190)의 사용자 계정 정보를 포함할 수 있다.The database unit 330 may include user account information of the web server 190 corresponding to the account information of the user of the terminal 150. [

제어부(320)는 데이터베이스부(330)를 사용하여 단말(150)의 사용자에 계정 정보에 대응하는 웹 서버(190)의 사용자 계정 정보를 연동 요청에 포함시킬 수 있다.The control unit 320 may include the user account information of the web server 190 corresponding to the account information in the link request to the user of the terminal 150 using the database unit 330. [

데이터베이스부(330)는 모바일 운영 체제 또는 어플리케이션을 위해 제공된 항구적인 데이터를 저장할 수 있다.Database portion 330 may store persistent data provided for a mobile operating system or application.

제어부(320)는 단말(150)을 위한 모바일 운영 체제 또는 어플리케이션을 종료할 수 있고, 모바일 운영 체제 또는 어플리케이션을 위해 할당된 자원을 회수할 수 있고, 모바일 운영 체제 또는 어플리케이션을 위해 제공된 항구적인 데이터를 데이터베이스부에 저장할 수 있다.The control unit 320 may terminate the mobile operating system or application for the terminal 150 and may retrieve the resources allocated for the mobile operating system or application and may provide persistent data provided for the mobile operating system or application And can be stored in the database unit.

앞서 도 1 및 도 2를 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 특히, 데이터의 입출력 기능 및 데이터베이스의 기능을 제외한 가상화 서버(110)에서 수행되는 가상화 환경을 제공하기 위한 제반 기능은, 본 실시예의 제어부(320)에서 수행되는 것으로 간주될 수 있다.The technical contents according to one embodiment of the present invention described above with reference to Figs. 1 and 2 can be directly applied to this embodiment as well. In particular, all functions for providing the virtualization environment performed by the virtualization server 110 excluding the data input / output function and the database function can be regarded as being performed by the control unit 320 of the present embodiment.

따라서 보다 상세한 설명은 이하 생략하기로 한다.
Therefore, a more detailed description will be omitted below.

도 4는 본 발명의 일 실시예에 따른 가상화 서버의 소프트웨어 아키텍처(architecture)를 나타내는 도면이다.4 is a diagram illustrating a software architecture of a virtualization server according to an embodiment of the present invention.

가상화 서버의 소프트웨어 아키텍처는 호스트 층(layer)(410), CPU(central processing unit), 에뮬레이션(emulation) 층(420), 모바일 OS 스택(stack) 층(430) 및 모바일 어플리케이션 층(440)을 포함한다.The software architecture of the virtualization server includes a host layer 410, a central processing unit (CPU), an emulation layer 420, a mobile OS stack layer 430 and a mobile application layer 440 do.

호스트 층(410)은 서버(110)의 하드웨어를 제어하고 서버 OS 기능을 제공한다.Host layer 410 controls the hardware of server 110 and provides server OS functionality.

호스트 층(410)은 하드웨어 제어 층(412) 및 서버 OS 층(414)을 포함한다.Host layer 410 includes a hardware control layer 412 and a server OS layer 414.

하드웨어 제어 층(412)은 서버(110)의 하드웨어 자체 또는 서버(110)의 하드웨어를 제어하기 위한 시스템 소프트웨어(예컨대, BIOS(basic input output system), 펌웨어(firmware) 및 디바이스 드라이버(device driver) 등)을 나타낸다.The hardware control layer 412 may include system software (e.g., basic input output system (BIOS), firmware, and device drivers) for controlling the hardware of the server 110 or the hardware of the server 110 ).

서버 OS 층(414)은 서버(110) 자체를 위한 OS를 나타낸다. 서버 OS는 UNIX 또는 윈도우(windows)와 같은 통상적인 PC 용 OS일 수 있다.The server OS layer 414 represents an OS for the server 110 itself. The server OS may be a conventional PC OS such as UNIX or Windows.

CPU 에뮬레이션 층(420)은 모바일 OS 스택(stack)의 모바일 OS를 지원하기 위한 CPU를 에뮬레이트한다. 상기의 CPU는 ARM과 같은 통상적인 모바일 단말용 CPU일 수 있다.The CPU emulation layer 420 emulates a CPU for supporting the mobile OS of the mobile OS stack. The CPU may be a CPU for a typical mobile terminal such as an ARM.

CPU 에뮬레이션 층(420)은 가상 아키텍처 에뮬레이션 층(422) 및 가상 CPU SOC(system on chip) 층(424)을 포함한다.The CPU emulation layer 420 includes a virtual architecture emulation layer 422 and a virtual CPU SOC (system on chip) layer 424.

가상 아키텍처 에뮬레이션 층(422)은 가상 CPU SOC 층의 CPU SOC가 동작하기 위한 아키텍처를 에뮬레이트한다. 가상 아키텍처 에뮬레이션 층(422)은 x86, MIPS, SPARC, ARM 아키텍처 등과 같은 널리 알려진 아키텍처를 지원할 수 있다. 가상 아키텍처 에뮬레이션 층(422)은 QEMU와 같은 통상적인 아키텍처 에뮬레이터일 수 있다.The virtual architecture emulation layer 422 emulates an architecture for the CPU SOC of the virtual CPU SOC layer to operate. The virtual architecture emulation layer 422 may support a well-known architecture such as x86, MIPS, SPARC, ARM architecture, and the like. The virtual architecture emulation layer 422 may be a conventional architectural emulator such as QEMU.

가상 CPU SOC 층(424)는 가상 아키텍처 상에서 동작하는 CPU SOC를 에뮬레이트한다. 가상 CPU SOC 층(424)은 Goldfish와 같은 통상적인 CPU SOC 에뮬레이터일 수 있다.The virtual CPU SOC layer 424 emulates a CPU SOC operating on a virtual architecture. The virtual CPU SOC layer 424 may be a conventional CPU SOC emulator such as Goldfish.

가상 CPU SOC 층(424)에는, 모바일 단말용 CPU가 탑재된 단말의 디바이스를 에뮬레이트하는 디바이스 에뮬레이터(426)가 플러그-인(plug-in)될 수 있다. 즉, 가상 CPU SOC 층(424)은 디바이스 에뮬레이터(426)를 포함할 수 있다.In the virtual CPU SOC layer 424, a device emulator 426 that emulates the device of the terminal on which the CPU for the mobile terminal is mounted can be plugged-in. That is, the virtual CPU SOC layer 424 may include a device emulator 426.

모바일 OS 스택 층(430)은 호스트 층(410) 또는 CPU 에뮬레이션 층(420)의 어플리케이션으로서 동작할 수 있고, 모바일 OS의 기능을 제공할 수 있다.The mobile OS stack layer 430 may operate as an application of the host layer 410 or the CPU emulation layer 420 and may provide the functionality of the mobile OS.

모바일 OS 스택 층(430)은 임베디드(embedded) OS 층(432), 시스템 라이브러리 층(434), 가상 머신 층(436) 및 어플리케이션 프레임워크(framework) 층(438)을 포함한다.Mobile OS stack layer 430 includes an embedded OS layer 432, a system library layer 434, a virtual machine layer 436 and an application framework layer 438.

임베디드 OS 층(432)은 모바일 OS의 가상 머신(virtual machine)이 동작하기 위한 임베디드 OS 커널(kernel)이다. 임베디드 OS 커널은 임베디드 리눅스(LINUX)와 같은 통상적인 임베디드 OS일 수 있다.The embedded OS layer 432 is an embedded OS kernel for operating a virtual machine of the mobile OS. Embedded OS The kernel can be a typical embedded OS, such as embedded Linux (LINUX).

시스템 라이브러리 층(434)은 임베디드 OS 커널을 위한 시스템 라이브러리를 제공한다. 시스템 라이브러리는 임베디드 OS의 프로그램이 임베디드 OS 커널로부터 서비스를 제공받기 위한 기본적인 시스템 라이브러리이다.The system library layer 434 provides a system library for the embedded OS kernel. The system library is a basic system library for the embedded OS program to receive services from the embedded OS kernel.

가상 머신 층(436)은 모바일 어플리케이션이 동작하기 위한 가상 머신을 제공한다. 가상 머신은 Dalvik 및 JAVA와 같은 통상적인 모바일 운영체제 가상 머신일 수 있다.The virtual machine layer 436 provides a virtual machine for the mobile application to operate. The virtual machine may be a conventional mobile operating system virtual machine such as Dalvik and JAVA.

어플리케이션 프레임워크 층(438)은 모바일 어플리케이션이 동작하기 위한 클래스(class)들을 제공한다.The application framework layer 438 provides classes for the mobile application to operate.

모바일 OS 스택 층(430)은 CPU 에뮬레이션 층(420)에서 제공하는 가상의 CPU를 위한 바이너리(binary)를 사용할 수 있다. CPU 에뮬레이션 층(420)은 모바일 단말에서 사용되는 CPU 및 아키텍처를 지원하므로, 모바일 OS 스택 층(430)에서 사용되는 바이너리는 모바일 단말에서 사용되는 것과 동일한 것일 수 있다. 즉, 모바일 OS 스택 층(430)은 모바일 단말에서 사용되는 모바일 OS의 바이너리를 변경 없이 사용할 수 있다.The mobile OS stack layer 430 may use a binary for a virtual CPU provided by the CPU emulation layer 420. [ Because the CPU emulation layer 420 supports the CPU and architecture used in the mobile terminal, the binaries used in the mobile OS stack layer 430 may be the same as those used in the mobile terminal. That is, the mobile OS stack layer 430 can use the binary of the mobile OS used in the mobile terminal without change.

모바일 어플리케이션 층(440)은 모바일 OS 스택 층(430)의 어플리케이션으로서 동작한다. 즉, 모바일 어플리케이션 층(440)에서 모바일 OS의 어플리케이션(442)이 실행된다.Mobile application layer 440 operates as an application of mobile OS stack layer 430. That is, the application 442 of the mobile OS is executed in the mobile application layer 440.

모바일 OS 스택 층(430)은 모바일 OS의 환경을 제공한다. 따라서, 모바일 어플리케이션 층(440)에서 실행되는 어플리케이션(442)의 코드(code)는 모바일 단말에서 사용되는 모바일 운영 체제에서 동작하는 실제 모바일 어플리케이션의 코드와 동일할 수 있다. 즉, 모바일 단말을 위한 모바일 어플리케이션은 코드가 변경 또는 수정 등이 되지 않은 채, 모바일 어플리케이션 충(440)에서 동작할 수 있다.The mobile OS stack layer 430 provides an environment for the mobile OS. Thus, the code of the application 442 executed in the mobile application layer 440 may be the same as the code of the actual mobile application operating in the mobile operating system used in the mobile terminal. That is, the mobile application for the mobile terminal may operate in the mobile application pool 440 without any code changes or modifications.

디바이스 에뮬레이터(426)는 모바일 단말에서 사용되는 모바일 OS의 디바이스를 에뮬레이트한다. 따라서, 디바이스 에뮬레이터는 모바일 OS 및/또는 어플리케이션의 실행 화면 또는 모바일 OS 및/또는 어플리케이션으로부터 출력되는 음향을 그대로 에뮬레이트할 수 있다.The device emulator 426 emulates the device of the mobile OS used in the mobile terminal. Therefore, the device emulator can emulate the sound output from the execution image of the mobile OS and / or the application or the mobile OS and / or application.

디바이스 에뮬레이터(426)에 의해 출력된 가상 환경 정보는 스트리밍 서버(120)로 전송될 수 있다.The virtual environment information output by the device emulator 426 may be transmitted to the streaming server 120. [

CPU 에뮬레이션 층(420)은 복수 개일 수 있다. 복수 개의 CPU 에뮬레이션 층(420) 각각은 서로 상이한 CPU를 에뮬레이트 할 수 있다. 복수 개의 CPU 에뮬레이션 층(420) 각각은 하나 이상의 가상화 서비스 요청자(예컨대, 단말(150) 사용자)에게 가상 환경을 제공하기 위한 것일 수 있다.The CPU emulation layer 420 may be plural. Each of the plurality of CPU emulation layers 420 may emulate different CPUs. Each of the plurality of CPU emulation layers 420 may be for providing a virtual environment to one or more virtualization service requesters (e.g., terminal 150 users).

모바일 OS 스택 층(430) 은 복수 개일 수 있다. 복수 개의 모바일 OS 스택 층(430) 각각은 서로 상이한 모바일 OS를 에뮬레이트 할 수 있다. 복수 개의 모바일 OS 스택 층(430) 각각은 서로 상이한 모바일 OS 스택 층(430)에서 제공될 수 있다. 복수 개의 모바일 OS 스택 층(430) 각각은 하나 이상의 가상화 서비스 요청자를 위한 가상 환경을 제공하기 위한 것일 수 있다.The mobile OS stack layer 430 may be plural. Each of the plurality of mobile OS stack layers 430 may emulate different mobile OSs. Each of the plurality of mobile OS stack layers 430 may be provided in a different mobile OS stack layer 430. Each of the plurality of mobile OS stack layers 430 may be for providing a virtual environment for one or more virtual service requestors.

즉, 각각의 단말(150)에게 다양한 가상 환경을 제공하기 위해 CPU 에뮬레이션 층(420) 및/또는 모바일 OS 스택 층(430)은 복수 개일 수 있고, 각각의 가상화 서비스 요청자를 위해 별개의 CPU 에뮬레이션 층(420) 및/또는 모바일 OS 스택 층(430)이 생성될 수 있다.That is, a plurality of CPU emulation layers 420 and / or mobile OS stack layers 430 may be provided to provide various virtual environments to each terminal 150, and a separate CPU emulation layer (not shown) may be provided for each virtualization service requester. The mobile OS stack layer 420 and / or the mobile OS stack layer 430 may be created.

모바일 어플리케이션 층(440)에서 실행되는 어플리케이션(442)은, 모바일 OS의 능력에 따라, 복수 개일 수 있다.
The application 442 executed in the mobile application layer 440 may be a plurality of, depending on the capabilities of the mobile OS.

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

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

110: 가상화 서버
120: 스트리밍 서버
150: 단말
190: 웹 서버
110: Virtualization server
120: Streaming server
150: terminal
190: Web server

Claims (25)

모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서버의 가상화 서비스 제공 방법에 있어서,
상기 가상화 서버가, 단말로부터 가상화 서비스 요청을 수신하는 단계;
상기 가상화 서버가, 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 구동하는 단계;
상기 가상화 서버가, 상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 상기 단말로 전송하는 단계; 및
상기 가상화 서버가, 상기 단말로부터 상기 모바일 운영 체제 또는 상기 어플리케이션을 조작하기 위한 입력 정보를 수신하는 단계를 포함하고,
상기 가상화 서버가, 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 구동하는 단계는,
상기 가상화 서버가, 상기 가상화 서비스 요청에 포함된 정보에 기반하여 상기 모바일 운영 체제 또는 상기 어플리케이션을 설정하는 단계
를 포함하는
가상화 서비스 제공 방법.
A method for providing a virtualization service of a virtualization server that provides a mobile operating system and a virtual environment of an application operating in the mobile operating system,
The virtualization server receiving a virtualization service request from a terminal;
The virtualization server driving the mobile operating system or the application for the terminal;
Transmitting, by the virtualization server, information on operation of the mobile operating system or the application to the terminal; And
Wherein the virtualization server comprises receiving input information for operating the mobile operating system or the application from the terminal,
Wherein the virtualization server is operable to start the mobile operating system or the application for the terminal,
The virtualization server establishing the mobile operating system or the application based on the information included in the virtualization service request
Containing
How to provide virtualization services.
제1항에 있어서,
상기 가상화 서버가, 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 구동하는 단계는,
상기 가상화 서버가, 웹 서버로 상기 모바일 운영 체제 또는 상기 어플리케이션과의 연동 요청을 전송하는 단계; 및
상기 가상화 서버가, 상기 웹 서버로부터 상기 연동 요청에 대한 응답을 수신하는 단계
를 더 포함하는,
가상화 서비스 제공 방법.
The method according to claim 1,
Wherein the virtualization server is operable to start the mobile operating system or the application for the terminal,
The virtualization server transmitting a request for interworking with the mobile operating system or the application to a web server; And
The virtualization server receiving a response to the interworking request from the web server
≪ / RTI >
How to provide virtualization services.
제2항에 있어서,
상기 연동은 상기 운영 체제 또는 상기 어플리케이션과의 데이터 동기화인, 가상화 서비스 제공 방법.
3. The method of claim 2,
Wherein the interworking is data synchronization with the operating system or the application.
제3항에 있어서,
상기 동기화에 의해 생성된 데이터는 상기 모바일 운영체제 또는 상기 어플리케이션을 위해 제공되는 가상 파일 시스템에 저장되는, 가상화 서비스 제공 방법.
The method of claim 3,
Wherein the data generated by the synchronization is stored in the virtual operating system provided for the mobile operating system or the application.
제2항에 있어서,
상기 가상화 서비스 요청은 단말의 사용자의 계정 정보를 포함하고,
상기 연동 요청은 상기 단말의 사용자의 계정 정보에 대응하는 상기 웹 서버의 사용자 계정 정보를 포함하는, 가상화 서비스 제공 방법.
3. The method of claim 2,
Wherein the virtualization service request includes account information of a user of the terminal,
Wherein the interworking request includes user account information of the web server corresponding to account information of the user of the terminal.
제1항에 있어서,
상기 단말로부터 가상화 서비스 종료 요청을 수신하는 단계; 및
상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료하는 단계
를 더 포함하고, 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료하는 단계는
상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 할당된 자원을 회수하는 단계
를 포함하는, 가상화 서비스 제공 방법.
The method according to claim 1,
Receiving a virtualization service termination request from the terminal; And
Terminating the mobile operating system or application for the terminal
Wherein terminating the mobile operating system or application for the terminal further comprises:
Recovering resources allocated for the mobile operating system or the application
The virtualization service providing method.
제6항에 있어서,
상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료하는 단계는,
상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 제공된 항구적인 데이터를 저장하는 단계
를 더 포함하는, 가상화 서비스 제공 방법.
The method according to claim 6,
Wherein terminating the mobile operating system or the application for the terminal comprises:
Storing the persistent data provided for the mobile operating system or the application
The virtualization service providing method comprising:
삭제delete 제1항에 있어서,
상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 상기 단말로 전송하는 단계는,
상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 상기 단말에 맞게 변환하는 단계
를 포함하는, 가상화 서비스 제공 방법.
The method according to claim 1,
Wherein the step of transmitting information on the operation of the mobile operating system or the application to the terminal comprises:
Converting the information about the operation of the mobile operating system or the application to the terminal;
The virtualization service providing method.
제1항에 있어서,
상기 단말로부터 상기 모바일 운영 체제 또는 상기 어플리케이션을 조작하기 위한 입력 정보를 수신하는 단계는,
상기 입력 정보를 상기 모바일 운영 체제 또는 상기 어플리케이션에게 맞게 변환되는 단계
를 포함하는, 가상화 서비스 제공 방법.
The method according to claim 1,
Wherein the step of receiving input information for operating the mobile operating system or the application from the terminal comprises:
Wherein the input information is converted into the mobile operating system or the application
The virtualization service providing method.
모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서버에 있어서,
데이터의 송수신을 수행하는 송수신부; 및
상기 모바일 운영 체제 및 상기 어플리케이션을 구동함으로써 가상 환경을 제공하는 제어부를 포함하고,
상기 제어부는, 상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 생성하고, 단말로부터 제공된 상기 모바일 운영 체제 또는 상기 어플리케이션을 조작하기 위한 입력 정보를 처리하며, 가상화 서비스 요청에 포함된 정보에 기반하여 상기 모바일 운영체제 또는 상기 어플리케이션을 설정하고,
상기 송수신부는, 상기 단말로부터 가상화 서비스 요청을 수신하고, 상기 동작에 대한 정보를 상기 단말로 전송하고, 상기 단말로부터 상기 입력 정보를 수신하는,
가상화 서버.
A virtualization server for providing a mobile operating system and a virtual environment of an application operating in the mobile operating system,
A transmitting and receiving unit for transmitting and receiving data; And
And a control unit for providing the virtual environment by driving the mobile operating system and the application,
Wherein the control unit generates information on the operation of the mobile operating system or the application, processes input information for operating the mobile operating system or the application provided from the terminal, and based on the information included in the virtualization service request Setting the mobile operating system or the application,
Wherein the transceiving unit is configured to receive a virtualization service request from the terminal, transmit information on the operation to the terminal, and receive the input information from the terminal,
Virtualization server.
제11항에 있어서,
상기 제어부는 상기 모바일 운영 체제 또는 상기 어플리케이션과의 연동 요청을 생성하고,
상기 송수신부는 웹 서버로 상기 연동 요청을 전송하고, 상기 웹 서버로부터 상기 연동 요청에 대한 응답을 수신하는, 가상화 서버.
12. The method of claim 11,
The control unit generates a request for interworking with the mobile operating system or the application,
Wherein the transceiving unit transmits the interworking request to the web server and receives a response to the interworking request from the web server.
제12항에 있어서,
상기 연동은 상기 운영 체제 또는 상기 어플리케이션과의 데이터 동기화이고, 상기 동기화에 의해 생성된 데이터는 상기 모바일 운영체제 또는 상기 어플리케이션을 위해 제공되는 가상 파일 시스템에 저장되는, 가상화 서버.
13. The method of claim 12,
Wherein the interworking is data synchronization with the operating system or the application, and wherein the data generated by the synchronization is stored in the virtual operating system or a virtual file system provided for the application.
제11항에 있어서,
상기 가상 환경을 제공하기 위해 필요한 데이터를 저장하는 데이터베이스부
를 더 포함하고, 상기 가상화 서비스 요청은 단말의 사용자의 계정 정보를 포함하고, 상기 데이터베이스부는 상기 단말의 사용자의 계정 정보에 대응하는 웹 서버의 사용자 계정 정보를 포함하고, 상기 제어부는 상기 데이터베이스부를 사용하여 상기 단말의 사용자에 계정 정보에 대응하는 상기 웹 서버의 사용자 계정 정보를 연동 요청에 포함시키는, 가상화 서버.
12. The method of claim 11,
A database unit for storing data necessary for providing the virtual environment;
Wherein the virtualization service request includes account information of a user of the terminal, the database unit includes user account information of a web server corresponding to account information of the user of the terminal, and the control unit uses the database unit And includes user account information of the web server corresponding to account information to a user of the terminal in an interworking request.
제11항에 있어서,
상기 가상 환경을 제공하기 위해 필요한 데이터를 저장하는 데이터베이스부
를 더 포함하고,
상기 송수신부는 상기 단말로부터 가상화 서비스 종료 요청을 수신하고, 상기 제어부는 상기 단말을 위한 상기 모바일 운영 체제 또는 상기 어플리케이션을 종료하고, 상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 할당된 자원을 회수하고, 상기 모바일 운영 체제 또는 상기 어플리케이션을 위해 제공된 항구적인 데이터를 상기 데이터베이스부에 저장하는, 가상화 서버.
12. The method of claim 11,
A database unit for storing data necessary for providing the virtual environment;
Further comprising:
The transceiver receives a virtualization service termination request from the terminal, and the control unit terminates the mobile operating system or the application for the terminal, recovers resources allocated for the mobile operating system or the application, Wherein the operating system or persistent data provided for the application is stored in the database unit.
삭제delete 모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 어플리케이션의 가상 환경을 제공하는 가상화 서비스 제공 시스템에 있어서,
상기 모바일 운영 체제 및 상기 어플리케이션을 구동하여 가상 환경을 제공하는 가상화 서버; 및
상기 가상화 서버로부터 상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보를 전송 받아, 상기 정보를 변환하여 변환된 정보를 단말로 전송하는 스트리밍 서버
를 포함하는, 가상화 서비스 제공 시스템.
1. A virtualization service providing system for providing a mobile operating system and a virtual environment of an application operating in the mobile operating system,
A virtualization server for operating the mobile operating system and the application to provide a virtual environment; And
A server for receiving information on the operation of the mobile operating system or the application from the virtualization server and for converting the information and transmitting the converted information to the terminal,
The virtualization service providing system comprising:
제17항에 있어서,
상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보는 상기 모바일 운영 체제 또는 상기 어플리케이션의 실행 화면 이미지를 포함하고,
상기 스트리밍 서버는 상기 실행 화면 이미지를 동영상으로 부호화하여 단말로 전송하는, 가상화 서비스 제공 시스템.
18. The method of claim 17,
Wherein the information about the operation of the mobile operating system or the application includes an execution screen image of the mobile operating system or the application,
Wherein the streaming server encodes the execution screen image as a moving picture and transmits the encoded moving picture image to the terminal.
제18항에 있어서,
상기 모바일 운영 체제 또는 상기 어플리케이션의 동작에 대한 정보는 상기 모바일 운영 체제 또는 상기 어플리케이션으로부터 출력된 음향을 포함하고,
상기 실행 화면 이미지는 연속적으로 생성된 복수 개의 이미지들이고,
상기 음향은 연속적으로 생성된 복수 개의 시간 단위의 음향들이고,
상기 스트리밍 서버는 상기 복수 개의 이미지들 및 상기 복수 개의 시간 단위의 음향들을 동영상으로 부호화하여 상기 단말로 실시간 전송하는, 가상화 서비스 제공 시스템.
19. The method of claim 18,
Wherein the information about the operation of the mobile operating system or the application includes sounds output from the mobile operating system or the application,
Wherein the execution screen image is a plurality of consecutively generated images,
Wherein the sound is sounds of a plurality of time units continuously generated,
Wherein the streaming server encodes the plurality of images and the sounds of the plurality of time units into a moving picture and transmits the encoded moving picture to the terminal in real time.
제19항에 있어서,
상기 스트리밍 서버는 단말로부터 전송된 입력 정보를 가상화 서버가 사용하는 규격에 맞게 변환하고, 변환된 입력 정보를 상기 가상화 서버로 전송하는, 가상화 서비스 제공 시스템.
20. The method of claim 19,
Wherein the streaming server converts the input information transmitted from the terminal according to a standard used by the virtualization server and transmits the converted input information to the virtualization server.
모바일 운영 체제 및 상기 모바일 운영 체제에서 동작하는 모바일 어플리케이션의 가상 환경을 제공하는 가상화 서버에 있어서,
상기 서버의 하드웨어를 제어하고 운영 체제 기능을 제공하는 호스트 층,
상기 호스트 층의 어플리케이션으로서 동작하고, 상기 모바일 운영 체제의 기능을 제공하는 모바일 운영 체제 스택 층,
상기 모바일 운영 체제 스택 층의 어플리케이션으로서 동작하는 모바일 어플리케이션 층, 및
상기 모바일 운영 체제를 지원하기 위한 CPU를 에뮬레이트 하는 CPU 에뮬레이션 층을 포함하고,
상기 모바일 어플리케이션 층에서 동작하는 모바일 어플리케이션의 코드는 모바일 단말에서 사용되는 상기 모바일 운영 체제에 동작하는 상기 모바일 어플리케이션의 코드와 동일한,
가상화 서버.
1. A virtualization server for providing a mobile operating system and a virtual environment of a mobile application operating in the mobile operating system,
A host layer controlling the hardware of the server and providing an operating system function,
A mobile operating system stack layer operating as an application of the host layer and providing the functionality of the mobile operating system,
A mobile application layer acting as an application of the mobile operating system stack layer, and
A CPU emulation layer that emulates a CPU for supporting the mobile operating system,
Wherein the code of the mobile application operating in the mobile application layer is identical to the code of the mobile application operating in the mobile operating system used in the mobile terminal,
Virtualization server.
삭제delete 제21항에 있어서,
상기 CPU 에뮬레이션 층은 상기 CPU가 탑재된 단말의 디바이스를 에뮬레이트하는 디바이스 에뮬레이터를 포함하고, 상기 디바이스 에뮬레이터는 상기 모바일 운영 체제 또는 상기 모바일 어플리케이션의 실행 화면을 출력하는, 가상화 서버.
22. The method of claim 21,
Wherein the CPU emulation layer includes a device emulator that emulates a device of a terminal equipped with the CPU, and the device emulator outputs an execution screen of the mobile operating system or the mobile application.
제23항에 있어서,
상기 가상화 서버는 상기 실행 화면을 포함하는 가상 환경 정보를 스트리밍 서버로 전송하는, 가상화 서버.
24. The method of claim 23,
Wherein the virtualization server transmits virtual environment information including the execution screen to a streaming server.
제23항에 있어서,
상기 모바일 운영 체제 스택 층은 복수 개이고, 상기 복수 개의 모바일 운영 체제 스택 층들 각각은 상이한 가상화 서비스 요청을 위해 생성되는, 가상화 서버.
24. The method of claim 23,
Wherein the mobile operating system stack layer is a plurality and each of the plurality of mobile operating system stack layers is generated for a different virtualization service request.
KR1020100105174A 2010-10-27 2010-10-27 Method and apparatus for providing virtual platform KR101761409B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100105174A KR101761409B1 (en) 2010-10-27 2010-10-27 Method and apparatus for providing virtual platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100105174A KR101761409B1 (en) 2010-10-27 2010-10-27 Method and apparatus for providing virtual platform

Publications (2)

Publication Number Publication Date
KR20120046807A KR20120046807A (en) 2012-05-11
KR101761409B1 true KR101761409B1 (en) 2017-07-25

Family

ID=46265739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100105174A KR101761409B1 (en) 2010-10-27 2010-10-27 Method and apparatus for providing virtual platform

Country Status (1)

Country Link
KR (1) KR101761409B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102265886B1 (en) 2020-07-24 2021-06-16 (주)온넷시스템즈코리아 The virtual cloud service platform based on ARM-server
KR20220056645A (en) 2020-10-28 2022-05-06 삼성에스디에스 주식회사 Method for controlling virtual multi screen, method for sending and receiving virtual environment, and apparatus implementing the same method

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101223981B1 (en) * 2012-07-11 2013-01-21 주식회사 안랩 Virtualization apparatus and server for securly executing applications and method therefor
JP5783610B2 (en) * 2012-08-31 2015-09-24 Necソリューションイノベータ株式会社 INPUT DISPLAY CONTROL DEVICE, THIN CLIENT SYSTEM, INPUT DISPLAY CONTROL METHOD, AND PROGRAM
JP5388246B1 (en) 2012-08-31 2014-01-15 Necシステムテクノロジー株式会社 INPUT DISPLAY CONTROL DEVICE, THIN CLIENT SYSTEM, INPUT DISPLAY CONTROL METHOD, AND PROGRAM
JP5522755B2 (en) 2012-09-14 2014-06-18 Necシステムテクノロジー株式会社 INPUT DISPLAY CONTROL DEVICE, THIN CLIENT SYSTEM, INPUT DISPLAY CONTROL METHOD, AND PROGRAM
KR101417439B1 (en) * 2012-11-30 2014-07-08 중소기업은행 Virtual desktop system and method
KR102067276B1 (en) 2013-05-30 2020-02-11 삼성전자주식회사 Apparatus and method for executing application
KR102369345B1 (en) * 2015-10-26 2022-03-02 에스케이텔레콤 주식회사 Method for managing mobile applications in virtual machine
KR102233246B1 (en) * 2015-10-26 2021-03-29 에스케이텔레콤 주식회사 Method for managing mobile applications in virtual machine
KR101857009B1 (en) * 2017-01-19 2018-05-11 숭실대학교산학협력단 Container-based platform for android malware analysis and security method using the same in a mobile device
KR101986567B1 (en) * 2017-05-22 2019-06-10 엔에이치엔 주식회사 Method of providing remote desktop service and method of operating remote desktop
KR102537913B1 (en) * 2018-10-19 2023-05-26 에스케이텔레콤 주식회사 Method And Apparatus for Displaying VMI Screen and Local Screen in Specific Region
KR102204223B1 (en) * 2018-11-15 2021-01-18 주식회사 엘지유플러스 Apparatus, system, and method for remote connection
KR102141850B1 (en) * 2020-02-19 2020-08-06 주식회사 커넥션소프트 System, Server, Terminal, and Method for Virtual Mobile Infrastructure
KR102189889B1 (en) * 2020-09-09 2020-12-11 주식회사 커넥션소프트 Method and system for web browser based android application streaming service
KR102233705B1 (en) * 2020-09-10 2021-03-30 (유)아홉 Mobile virtualization methods and devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183641A1 (en) * 2007-01-25 2008-07-31 Chang Bin Tang Generalized application virtualization method for business use on the web and the mini server using this method
US20100146504A1 (en) * 2008-12-10 2010-06-10 Chang Bin Tang Virtual mobile infrastructure and its base platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183641A1 (en) * 2007-01-25 2008-07-31 Chang Bin Tang Generalized application virtualization method for business use on the web and the mini server using this method
US20100146504A1 (en) * 2008-12-10 2010-06-10 Chang Bin Tang Virtual mobile infrastructure and its base platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102265886B1 (en) 2020-07-24 2021-06-16 (주)온넷시스템즈코리아 The virtual cloud service platform based on ARM-server
KR20220056645A (en) 2020-10-28 2022-05-06 삼성에스디에스 주식회사 Method for controlling virtual multi screen, method for sending and receiving virtual environment, and apparatus implementing the same method

Also Published As

Publication number Publication date
KR20120046807A (en) 2012-05-11

Similar Documents

Publication Publication Date Title
KR101761409B1 (en) Method and apparatus for providing virtual platform
US11451619B2 (en) App remote control method and related devices
US8959141B2 (en) System and method for pervasive computing
WO2021143182A1 (en) Game processing method and apparatus, electronic device, and computer-readable storage medium
KR101335247B1 (en) Displaying method of remote sink device, source device and system for the same
US9286094B2 (en) Human interface device virtualization using paravirtual USB system
WO2017124860A1 (en) Distributed wireless multi-screen virtual machine service system
US20130055254A1 (en) Methods and apparatuses for providing a virtual machine with dynamic assignment of a physical hardware resource
EP3207458A1 (en) Input signal emulation
US9875099B2 (en) Computer-implemented method and system for executing android apps natively on any environment
CN111045781A (en) Method and device for creating mirror image on cloud platform and storage medium
KR102314222B1 (en) Virtual desktop system using container and method thereof
JP6250842B2 (en) Sharing non-USB sensor with another device using USB over IP
WO2015176352A1 (en) Android system-based method and device for information exchange between applications
Toyama et al. Android as a server platform
CN112328356B (en) Intercommunication method and device for Android and Windows, storage medium and computer equipment
WO2017211260A1 (en) Data access method and related device
US20240022670A1 (en) Scanning preview method in scanner redirection
KR101284791B1 (en) Method and apparatus for implementing computer operating system using mobile terminal
KR101412310B1 (en) Virtual device cloud network system and method for providing applications on heterogeneous device platform
KR101326231B1 (en) Virtualization software service system, and sevice server and user terminal therefor
US9674307B1 (en) Running mobile applications in a distributed client-server model using selective delegation of hardware and software contexts to the client
US10284668B2 (en) Managing a logical client for an application
CN108549573B (en) Memory model calculation method and device and computer readable storage medium
KR101181508B1 (en) System, apparatus and method for providing virtual hosting service

Legal Events

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