KR20140018076A - Virtual desktop service system for client that has multiple user accounts - Google Patents

Virtual desktop service system for client that has multiple user accounts Download PDF

Info

Publication number
KR20140018076A
KR20140018076A KR1020120136550A KR20120136550A KR20140018076A KR 20140018076 A KR20140018076 A KR 20140018076A KR 1020120136550 A KR1020120136550 A KR 1020120136550A KR 20120136550 A KR20120136550 A KR 20120136550A KR 20140018076 A KR20140018076 A KR 20140018076A
Authority
KR
South Korea
Prior art keywords
virtual machine
user
network
router
virtual
Prior art date
Application number
KR1020120136550A
Other languages
Korean (ko)
Other versions
KR101544487B1 (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 주식회사 케이티
Publication of KR20140018076A publication Critical patent/KR20140018076A/en
Application granted granted Critical
Publication of KR101544487B1 publication Critical patent/KR101544487B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

The present invention relates to a virtual desktop service system for a client having multiple user accounts and may provides a separated virtual desktop service from one data center to a plurality of companies or group clients by providing a virtual desktop system including a plurality of user virtual machines; a router virtual machine for supporting a virtual desktop service to the user virtual machines; and a desktop delivery control virtual machine to the respective clients. [Reference numerals] (AA) Internet

Description

복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 시스템{Virtual desktop service system for client that has multiple user accounts}Virtual desktop service system for client that has multiple user accounts}

본 발명은, 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 제공을 위한 시스템에 관한 것으로, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있는 가상 데스크톱 서비스 시스템에 관한 것이다.The present invention relates to a system for providing a virtual desktop service to a client having a plurality of user accounts, wherein the virtual desktop can provide a virtual desktop service separated from each other to a plurality of enterprise or organization clients in one data center. It relates to a service system.

데스크톱 가상화는 SBC(Server-Based Computing)과 VDI(Virtual Desktop Infrastructure) 로 나뉠수 있다. SBC는 서버 운영체제에서 제공하는 터미널 서비스를 통해 가상 데스크톱 환경을 사용자에게 제공하는 반면, VDI는 서버에 데스크톱 환경을 위한 가상머신을 생성하고, 이처럼 생성된 가상머신에 운영체제와 어플리케이션을 설치하여 사용자에게 제공할 가상 데스크톱 환경을 구현한다는 점에서 차이가 있다. 이들 중에서, VDI 서비스는 보다 사용자의 로컬 데스크톱 환경과 유사한 데스크톱 환경을 가질 수 있다는 점에서 각광을 받고 있다.Desktop virtualization can be divided into Server-Based Computing (SBC) and Virtual Desktop Infrastructure (VDI). While SBC provides users with a virtual desktop environment through terminal services provided by the server operating system, VDI creates a virtual machine for the desktop environment on the server and installs the operating system and applications on the created virtual machine to the user There is a difference in that it implements a virtual desktop environment. Among them, VDI services are in the spotlight in that they can have a desktop environment more similar to a user's local desktop environment.

복수의 사용자 계정들을 갖는 클라이언트 즉, 기업이나 조직 단위로 VDI 서비스를 제공하는 경우에, 종래에는 클라이언트별로 하나의 물리적 하드웨어 및 가상화 소프트웨어를 제공하여 왔다.In the case of providing a VDI service to a client having a plurality of user accounts, that is, an enterprise or an organizational unit, one physical hardware and virtualization software has been provided for each client.

그러나, VDI 서비스를 원하는 기업이나 조직 단위의 클라이언트들의 수가 늘어남에 따라, 단일한 데이터 센터 내에서 다수의 기업이나 조직 단위의 클라이언트들에게 VDI 서비스를 제공할 수 있는 시스템이 필요한 실정이다.However, as the number of clients in an enterprise or an organization wanting VDI services increases, there is a need for a system capable of providing VDI services to a plurality of companies or organizations in a single data center.

본 발명이 이루고자 하는 기술적 과제는, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있는 가상 데스크톱 서비스 시스템을 제공하는 데에 있다.An object of the present invention is to provide a virtual desktop service system capable of providing virtual desktop services separated from each other to a plurality of enterprise or organization clients in a single data center.

본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Technical problems to be achieved by the present invention are not limited to the above-mentioned technical problems, and other technical problems not mentioned above may be clearly understood by those skilled in the art from the following description. There will be.

상기의 기술적 과제를 이루기 위한, 가상 데스크톱 서비스 시스템은 데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 가상 데스크톱 환경을 제공하는 복수의 사용자 가상머신들; 상기 사용자 가상머신에 IP를 할당하여 상기 사용자 가상머신과 외부 네트워크와의 통신을 중개하고, 상기 사용자 가상머신의 사설 네트워크 내에서의 통신을 라우팅하는 적어도 하나 이상의 라우터 가상머신; 상기 사용자 가상머신과 상기 사용자 가상머신에 접근하는 사용자 계정 사이의 세션을 연결하고 상기 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 제어 가상머신; 및 상기 사용자 가상머신 및 데스크톱 딜리버리 제어 가상머신 중 적어도 하나 이상에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 포함한다.In order to achieve the above technical problem, a virtual desktop service system includes a plurality of user virtual machines for providing a virtual desktop environment using a virtual computing resource virtualized a physical computing resource of a data center; At least one router virtual machine for allocating IP to the user virtual machine to mediate communication between the user virtual machine and an external network and to route communication within the private network of the user virtual machine; A desktop delivery control virtual machine connecting a session between the user virtual machine and a user account accessing the user virtual machine and managing a virtual desktop service provided by the user virtual machine; And an Active Directory virtual machine that authenticates a user account accessing at least one of the user virtual machine and the desktop delivery control virtual machine.

보다 바람직하게는, 클라이언트 별로 라우터 가상머신, 데스크톱 딜리버리 제어 가상머신 및 액티브 디렉토리 가상머신을 포함하는 서로 독립된 시스템 가상머신 집합을 가질 수 있다.More preferably, each client may have a set of independent system virtual machines including a router virtual machine, a desktop delivery control virtual machine, and an active directory virtual machine.

보다 바람직하게는, 상기 라우터 가상머신은 상기 사용자 가상머신들에 유동 IP를 할당하는 DHCP 서버를 포함할 수 있다.More preferably, the router virtual machine may include a DHCP server for assigning a floating IP to the user virtual machines.

보다 바람직하게는, 상기 라우터 가상머신은 상기 사용자 가상머신들의 수에 따라 동적으로 증설 혹은 감축될 수 있다.More preferably, the router virtual machine can be dynamically expanded or reduced depending on the number of the user virtual machines.

보다 바람직하게는, 상기 라우터 가상머신과 외부 퍼블릭 네트워크 간의 제1서브네트워크, 서비스 공급자의 관리 시스템에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신을 제어하기 위한 제2서브네트워크, 상기 사용자 가상머신에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신과 통신하기 위한 제3서브네트워크는 서로 논리적으로 분리될 수 있다.More preferably, a first subnetwork between the router virtual machine and an external public network, a second subnetwork for controlling the router virtual machine, the active directory virtual machine, and the desktop delivery control virtual machine in a management system of a service provider. The third subnet for communicating with the router virtual machine, the active directory virtual machine, and the desktop delivery control virtual machine in the user virtual machine may be logically separated from each other.

보다 바람직하게는, 상기 라우터 가상머신이 복수 개인 경우에, 상기 제3서브네트워크는 상기 복수 개의 라우터 가상머신들 각각에 할당되어 서로 논리적으로 분리된 복수 개의 서브네트워크들을 포함할 수 있다.More preferably, when there are a plurality of router virtual machines, the third subnetwork may include a plurality of subnetworks allocated to each of the plurality of router virtual machines and logically separated from each other.

보다 바람직하게는, 상기 라우터 가상머신이 복수 개인 경우에, 상기 서브 네트워크는 상기 복수 개의 라우터 가상머신들 사이의 라우팅 정보를 공유하기 위한 서브네트워크를 더 포함할 수 있다.More preferably, when there are a plurality of router virtual machines, the sub-network may further include a sub-network for sharing routing information between the plurality of router virtual machines.

상기의 기술적 과제를 이루기 위한, 가상 데스크톱 서비스 준비 방법은 데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 가상 데스크톱 환경을 제공하는 사용자 가상머신의 외부 네트워크와의 통신을 중개하고 사용자 가상머신의 서브 네트워크 내에서의 통신을 라우팅하는 라우터 가상머신을 생성하는 라우터가상머신생성단계; 라우터 가상머신으로부터 서브 네트워크의 IP를 할당받아 할당받은 IP를 기초로 사용자 가상머신에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 생성하는 액티브디렉토리생성단계; 및 라우터 가상머신으로부터 서브 네트워크의 IP를 할당받아 할당받은 IP를 기초로 사용자 가상머신과 사용자 계정 간의 세션을 연결하고 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 가상머신을 생성하는 데스크톱딜리버리생성단계; 및 데스크톱 딜리버리 가상머신의 IP의 기정의된 포트를 기초로 라우터 가상머신의 포트포워딩 규칙을 업데이트하는 단계를 포함한다.In order to achieve the above technical problem, a method for preparing a virtual desktop service mediates communication with an external network of a user virtual machine providing a virtual desktop environment using a virtual computing resource virtualized from a physical computing resource of a data center, and a user virtual machine. A router virtual machine generation step of creating a router virtual machine for routing the communication in the sub-network of the network; An active directory generation step of generating an Active Directory virtual machine that receives an IP of a sub-network from a router virtual machine and authenticates a user account accessing the user virtual machine based on the assigned IP; And desktop delivery that creates a desktop delivery virtual machine that connects the session between the user virtual machine and the user account based on the assigned IP from the router virtual machine and manages the virtual desktop service provided by the user virtual machine. Generating step; And updating the port forwarding rule of the router virtual machine based on the predefined port of the IP of the desktop delivery virtual machine.

보다 바람직하게는, 라우터가상머신생성단계는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계; 할당받은 관리용 IP를 기초로 라우터 가상머신을 생성하는 단계; 생성된 라우터 가상머신에 대한 공인 IP 및 서비스 IP 할당을 요청하는 단계; 및 요청에 대한 응답으로 할당받은 공인 IP 및 서비스 IP를 기초로 라우터 가상머신의 초기 설정을 업데이트하는 단계를 포함한다.More preferably, the router virtual machine generation step may include: assigning a management IP through a management network logically separated from the service network; Creating a router virtual machine based on the assigned management IP; Requesting allocation of public IP and service IP for the generated router virtual machine; And updating the initial configuration of the router virtual machine based on the public IP and the service IP assigned in response to the request.

보다 바람직하게는, 액티브디렉토리생성단계는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계; 할당받은 관리용 IP를 기초로 액티브 디렉토리 가상머신을 생성하는 단계; 생성된 액티브 디렉토리 가상머신에 대한 서비스 IP 할당을 라우터 가상머신에 요청하는 단계; 및 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 액티브 디렉토리의 초기 설정을 업데이트하는 단계를 포함한다.More preferably, the generating an active directory may include: assigning a management IP through a management network logically separated from a service network; Creating an Active Directory virtual machine based on the assigned management IP; Requesting the router virtual machine for service IP allocation for the created Active Directory virtual machine; And updating the initial setting of the Active Directory based on the service IP assigned in response to the request.

보다 바람직하게는, 데스크톱딜리버리생성단계는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계; 할당받은 관리용 IP를 기초로 데스크톱 딜리버리 가상머신을 생성하는 단계; 생성된 데스크톱 딜리버리 가상머신에 대한 서비스 IP 할당을 라우터 가상머신에 요청하는 단계; 및 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 데스크톱 딜리버리 가상머신의 초기 설정을 업데이트하는 단계를 포함한다.More preferably, the desktop delivery generation step is a step of receiving a management IP through a management network logically separated from the service network; Creating a desktop delivery virtual machine based on the assigned management IP; Requesting the router virtual machine for service IP allocation for the created desktop delivery virtual machine; And updating the initial setting of the desktop delivery virtual machine based on the service IP assigned in response to the request.

본 발명에 따르면, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있다.According to the present invention, it is possible to provide virtual desktop services separated from each other to a plurality of enterprise or organization clients in one data center.

특히, 클라이언트 별로 서로 다른 하드웨어 및 소프트웨어에 대한 요구를 보다 충실하게 반영하여, 클라이언트의 IT 환경에 부합하는 가상 데스크톱 서비스를 제공할 수 있다.In particular, it is possible to provide a virtual desktop service that meets the client's IT environment by more faithfully reflecting the needs for different hardware and software for each client.

도 1은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 전체적인 구성을 도시한 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 일 구성요소인 VMS의 개념적인 구성을 도시한 도면이다.
도 3a 및 3b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 제어 권한 및 해당 권한에 따라 수행가능한 서비스 API를 예시한 도면이다.
도 4a 내지 4b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 요청 및 응답 형식을 예시한 도면이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각에 할당되는 시스템 VM을 생성하는 과정을 도시한 도면이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각의 사용자 VM에서 VDI 서비스를 수행하기 위한 기본 환경을 설정하는 과정을 도시한 도면이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 데이터 센터에서 제공하는 멀티태넌시 가상 데스크톱 서비스를 설명하기 위한 도면이다.
도 8은 본 발명의 바람직한 일 실시예에 따라 클라이언트별로 독립적으로 구성되는 네트워크 환경을 예시한 도면이다.
도 9는 본 발명의 바람직한 실시예에 따른 멀티 태넌시 가상 데스크톱 서비스의 특정 클라이언트에 속하는 사용자에게 대한 가상 데스크톱 환경을 생성하는 DeployVDI API의 처리 과정을 예시한 도면이다.
1 is a view showing the overall configuration of a virtual desktop service system according to an embodiment of the present invention.
2 is a diagram illustrating a conceptual configuration of a VMS that is one component of a virtual desktop service system according to an exemplary embodiment of the present invention.
3A and 3B are diagrams illustrating a control authority of a service API used in a VMS of a virtual desktop service system according to an exemplary embodiment of the present invention, and a service API that can be executed according to the authority.
4A to 4B illustrate a request and response format of a service API used in a VMS of a virtual desktop service system according to an exemplary embodiment of the present invention.
5 is a diagram illustrating a process of creating a system VM allocated to each client in a service process of a VMS according to an exemplary embodiment of the present invention.
FIG. 6 is a diagram illustrating a process of setting a basic environment for performing a VDI service in a user VM of each client in a service process of a VMS according to an exemplary embodiment of the present invention.
7 is a diagram illustrating a multi-tenancy virtual desktop service provided by a data center according to an exemplary embodiment of the present invention.
8 is a diagram illustrating a network environment that is independently configured for each client according to an embodiment of the present invention.
FIG. 9 illustrates a process of deployVDI API for creating a virtual desktop environment for a user belonging to a specific client of a multi-tenancy virtual desktop service according to an exemplary embodiment of the present invention.

이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다. The following merely illustrates the principles of the invention. Thus, those skilled in the art will be able to devise various apparatuses which, although not explicitly described or shown herein, embody the principles of the invention and are included in the concept and scope of the invention. Furthermore, all of the conditional terms and embodiments listed herein are, in principle, intended only for the purpose of enabling understanding of the concepts of the present invention, and are not intended to be limiting in any way to the specifically listed embodiments and conditions . It is also to be understood that the detailed description, as well as the principles, aspects and embodiments of the invention, as well as specific embodiments thereof, are intended to cover structural and functional equivalents thereof. In addition, these equivalents should be understood to include not only equivalents now known, but also equivalents to be developed in the future, that is, all devices invented to perform the same function regardless of structure.

따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다. Thus, the functions of the various elements shown in the drawings, including the functional blocks shown in the figures or similar concepts, may be provided by use of dedicated hardware as well as hardware capable of executing software in connection with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared. Also, the use of terms such as processor, control, or similar concepts should not be construed as exclusive reference to hardware capable of executing software, but may include, without limitation, digital signal processor (DSP) hardware, (ROM), random access memory (RAM), and non-volatile memory. Other hardware may also be included.

상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하거나 간략하게 설명하는 것으로 한다. The above objects, features and advantages will become more apparent from the following detailed description in conjunction with the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

한편 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.On the other hand, when an element is referred to as " including " an element, it does not exclude other elements unless specifically stated to the contrary.

이하, 첨부된 도면을 참조하여 바람직한 실시예에 따른 본 발명을 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 일 실시예에 따른 하나의 클라이언트에 대한 가상 데스크톱 서비스 시스템(100)의 전체적인 구성을 도시한 도면이다.1 is a view showing the overall configuration of a virtual desktop service system 100 for one client according to an embodiment of the present invention.

도 1을 참조하면, 본 실시예에 따른 가상 데스크톱 서비스 시스템(100)은 각 클라이언트별로 할당되는 가상머신들의 집합인 클라이언트별 가상 데스크톱 시스템(110)과 이러한 클라이언트별 가상 데스크톱 시스템(110)들을 전체적으로 관리 및 제어하는 서비스 공급자의 중앙 관리 시스템(120)을 포함한다. 상기한 구성요소들 이외에 다른 구성요소들이 본 실시예에 따른 가상 데스크톱 서비스 시스템 100)에 포함될 수 있음은 자명하다.Referring to FIG. 1, the virtual desktop service system 100 according to the present embodiment manages a client-specific virtual desktop system 110, which is a set of virtual machines allocated to each client, and the virtual desktop systems 110, And a centralized management system 120 of the service provider that controls. It is apparent that other components in addition to the above components may be included in the virtual desktop service system 100 according to the present embodiment.

본 실시예에 따른 가상 데스크톱 서비스 시스템(100)의 구성요소들인 클라이언트별 가상 데스크톱 시스템(110) 및 중앙 관리 시스템(120)은 그 중 적어도 일부가 외부 단말장치나 외부 서버등과 통신하는 프로그램 모듈일 수 있으며, 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈로서 가상 데스크톱 서비스 시스템(100)에 포함될 수 있으며, 물리적으로는 다양한 종류의 공지된 기억 장치에 저장될 수 있다. 또한, 이러한 프로그램 모듈들은 가상 데스크톱 서비스 시스템(100)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 본 발명 자체가 이에 한정되지는 않는다.The virtual desktop system 110 and the central management system 120, which are components of the virtual desktop service system 100 according to the present embodiment, include at least a program module for communicating with an external terminal device or an external server, These program modules may be included in the virtual desktop service system 100 as an operating system, an application program module, and other program modules, and may be physically stored in various kinds of known storage devices. In addition, these program modules may be stored in a remote storage device capable of communicating with the virtual desktop service system 100. These program modules, on the other hand, encompass routines, subroutines, programs, objects, components, data structures, etc., that perform particular tasks or perform particular abstract data types as described below in accordance with the present invention, Do not.

본 실시예에 따른 클라이언트별 가상 데스크톱 시스템(110)은 복수의 사용자 계정들에 각각 할당되는 사용자 가상머신들(115)과, 클라이언트 별로 할당되어 개별 사용자 가상머신들의 가상 데스크톱 서비스를 지원하는 시스템 가상머신들(111 내지 114)을 포함한다.The client-specific virtual desktop system 110 according to the present embodiment is a user virtual machine 115 each assigned to a plurality of user accounts, and a system virtual machine assigned to each client to support virtual desktop services of individual user virtual machines. One of them (111 to 114).

사용자 가상머신들(115)는 각각 데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 사용자 계정별로 가상의 데스크톱 환경을 제공하는 것으로, 로컬 데스크톱 환경에서 로컬의 물리적 컴퓨팅 자원을 이용하는 것과 근사한 수준의 가상 데스크톱 환경을 제공하기 위해 로컬 데스크톱 환경과 동일한 운영체제 및 어플리케이션들이 설치되어 구동될 수 있다.The user virtual machines 115 provide a virtual desktop environment for each user account by using virtual computing resources that virtualize the physical computing resources of the data center, and are similar to using local physical computing resources in the local desktop environment. In order to provide a virtual desktop environment, the same operating system and applications as the local desktop environment may be installed and run.

시스템 가상머신들로는, 라우터 가상머신(RVM, 111~112), 액티브 디렉토리 가상머신(AD, 113) 및 데스크톱 딜리버리 제어 가상머신(DDC, 114)들이 해당될 수 있다.The system virtual machines may include router virtual machines (RVMs) 111 to 112, active directory virtual machines (ADs 113), and desktop delivery control virtual machines (DDCs) 114.

즉, 본 실시예에 따르면, 클라이언트 별로 라우터 가상머신(RVM), 액티브 디렉토리 가상머신(AD) 및 데스크톱 딜리버리 제어 가상머신(DDC)을 포함하는 서로 독립된 시스템 가상머신 집합을 갖게 되며, 이를 위해, 클라이언트로부터 가상 데스크톱 서비스 요청을 받으면, 이러한 가상 데스크톱 서비스를 직접적으로 제공하기 위한 사용자 가상머신들의 생성 이전에 이러한 시스템 가상머신들을 별도로 생성하여 해당 클라이언트에 할당하고, 시스템 가상머신들 각각의 기능을 제공하기 위한 소프트웨어 패키지를 설치하는 과정을 먼저 거쳐야 한다.That is, according to the present embodiment, each client has a set of independent system virtual machines including a router virtual machine (RVM), an active directory virtual machine (AD), and a desktop delivery control virtual machine (DDC). When a virtual desktop service request is received from a user, the system virtual machines are separately created and assigned to the corresponding client before the user virtual machines are directly provided to provide the virtual desktop service, and the functions of each of the system virtual machines are provided. The first step is to install the software package.

라우터 가상머신(RVM, 111~112)은 사용자 가상머신들(115) 각각에 서비스 IP를 할당하여 사용자 가상머신들(115)과 외부 네트워크와의 통신을 중개하고, 사용자 가상머신들(115) 사이의 서브 네트워크 내에서의 통신을 라우팅하는 클라이언트별 가상의 서브 네트워크의 라우터 기능을 수행한다. 예컨대, 사용자 가상머신들(115)을 통해 제공되는 가상 데스크톱 환경에서 인터넷에 접근하기 위해서는 라우터 가상머신을 통해 접근하게 된다. 이때, 라우터 가상머신(RVM, 111~112)는 클라이언트의 외부 인터넷용 집선 스위치로서의 기능을 수행할 수 있다.The router virtual machines (RVMs) 111 to 112 allocate service IPs to the user virtual machines 115 to mediate communication between the user virtual machines 115 and the external network, and between the user virtual machines 115. Performs a router function of a virtual sub-network for each client that routes communication in the sub-network. For example, in order to access the Internet in a virtual desktop environment provided through the user virtual machines 115, the user accesses the Internet through a router virtual machine. At this time, the router virtual machine (RVM, 111 to 112) can perform a function as a client external Internet aggregation switch.

아울러, 라우터 가상머신(RVM, 111~112)은 사용자 가상머신들(115)에 유동 IP를 할당하는 DHCP 서버를 포함할 수 있다. In addition, the router virtual machines (RVM) 111 to 112 may include a DHCP server for allocating a dynamic IP to the user virtual machines (115).

라우터 가상머신(RVM, 111~112)은 사용자 가상머신들의 개수에 따라 동적으로 추가 증설되거나(Scale-out), 감축될 수 있는 것이 바람직하다.Router virtual machines (RVMs) 111 to 112 may be scaled up or reduced dynamically according to the number of user virtual machines.

데스크톱 딜리버리 제어 가상머신(DDC, 114)은 사용자 가상머신과 사용자 가상머신에 접근하는 사용자 계정 사이의 세션을 연결하고 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리한다.A desktop delivery control virtual machine (DDC) 114 connects a session between a user virtual machine and a user account accessing the user virtual machine, and manages the virtual desktop service provided by the user virtual machine.

액티브 디렉토리 가상머신(AD, 113)은 사용자 가상머신들 및 데스크톱 딜리버리 제어 가상머신의 사용자 계정들의 정보를 관리하고, 이들에 접근하는 사용자 계정을 인증한다. 다시 말하면, 액티브 디렉토리 가상머신(114)는 각 고객별로 제공되는 가상머신들을 구성요소로 하는 클라이언트별 가상의 서브 네트워크에서의 사용자 계정 정보를 관리하는 액티브 디렉토리(Active directory) 서비스를 제공한다. 이를 위해서, 사용자 가상머신들 및 데스크톱 딜리버리 제어 가상머신이 모두 액티브 디렉토리 가상머신(113)의 액티브 디렉토리에 모두 조인이 되어야 한다.The Active Directory Virtual Machine (AD) 113 manages the information of the user accounts of the user virtual machines and the desktop delivery control virtual machine, and authenticates the user account that accesses them. In other words, the Active Directory virtual machine 114 provides an Active Directory service that manages user account information in a virtual sub-network for each client including virtual machines provided for each customer. To this end, both the user virtual machines and the desktop delivery control virtual machine must be joined to the active directory of the active directory virtual machine 113.

본 실시예에 따른 서비스 공급자의 중앙 관리 시스템(120)은 VMS(121), Portal(122), VSV(123) 및 VMS-UI(124)을 포함할 수 있다.The service provider's central management system 120 according to the present embodiment may include a VMS 121, a Portal 122, a VSV 123 and a VMS-UI 124.

VMS(121)는 데이터 센터 전체의 코어 관리 기능 및 VDI 확장 기능을 수행하는 구성요소로, 여기에서 코어 관리 기능은 데이터 센터에 속한 물리적인 컴퓨팅 자원들을 Zone/Pod/Cluster/Storage/Host 단위로 각각 관리하고, 데이터 센터 내의 전체 스토리지 및 네트워크 자원을 관리하고, 사용자 가상머신 및 시스템 가상머신에 설치될 패키지 또는 템플릿을 관리하고, 가상머신들의 생성 또는 추가시 활용할 가상머신들의 풀(pool)을 관리 혹은 제어하는 것을 가리키며, VDI 확장 기능은 클라이언트 별로 할당되는 데스크톱 딜리버리 제어 가상머신(113) 및 액티브 디렉토리 가상머신(114)의 제어 또는 설정 사항 변경 등을 통해 클라이언트별로 서로 독립적으로 제공되는 가상 데스크톱 서비스의 세부 사항들을 조정할 수 있다.The VMS 121 is a component for performing a core management function and a VDI extension function of the entire data center, wherein the core management function is a function for managing physical computing resources belonging to a data center in units of Zone / Pod / Cluster / Storage / Host Manage the entire storage and network resources in the data center, manage packages or templates to be installed in user virtual machines and system virtual machines, manage pools of virtual machines to be used in creating or adding virtual machines, The VDI extension function is a function of the virtual desktop service which is independently provided for each client through control of the desktop delivery control virtual machine 113 and the active directory virtual machine 114, You can adjust things.

Portal(122), VSV(123) 및 VMS-UI(124)는 모두 사용자 인터페이스를 제공하는 구성요소로서, Portal(122)은 클라이언트로부터 가상 데스크톱 서비스에 대한 청약 신청을 받고, 클라이언트에 제공되는 가상 데스크톱 서비스의 요금을 빌링하는 부분에 대한 사용자 인터페이스를 제공하며, VSV(123)은 상기한 VMS(121)의 관리 기능 중 VDI 확장 기능 부분에 관한 사용자 인터페이스를 제공하고, VMS-UI(124)는 상기한 VMS(121)의 관리 기능 중 코어 관리 기능 부분에 관한 사용자 인터페이스를 제공한다.Portal 122, VSV 123, and VMS-UI 124 are all components that provide a user interface. Portal 122 receives a subscription request for a virtual desktop service from a client and is provided to the client. Provides a user interface for the billing portion of the service, the VSV 123 provides a user interface for the VDI extension function part of the management functions of the VMS 121, and the VMS-UI 124 provides the user interface. It provides a user interface for the core management function portion of the management function of one VMS (121).

도 2는 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 일 구성요소인 VMS(200)의 개념적인 구성을 도시한 도면이다.2 is a diagram illustrating a conceptual configuration of a VMS 200 as one component of a virtual desktop service system according to an exemplary embodiment of the present invention.

도 2를 참조하면, 본 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS(200)는 전술한 바와 같이, 데이터 센터 전체의 코어 관리 기능 및 VDI 확장 기능을 수행하기 위한 구성요소들로서, 코어부(210) 및 브로커부(220)를 구비한다.Referring to FIG. 2, the VMS 200 of the virtual desktop service system according to the present embodiment, as described above, is a component for performing a core management function and a VDI extension function of the entire data center. And a broker unit 220.

VMS(200) 외부(예컨대, 도 1의 Portal, VSV 및 VMS UI 등)에서 RESTful 방식으로 서비스 API를 호출하여 코어부(210)의 API 계층(211)에 속한 프로그램 모듈이 활성화되고, 이들 각각의 프로그램 모듈들에 포함된 함수 호출에 의해 Command 계층(212) 상에서 인프라 또는 가상머신을 관리하는 코어 관리기능, AD 또는 DDC를 관리하는 VDI 기능, 모니터링 기능 및 스케줄링 기능 등이 수행될 수 있다.A program module belonging to the API layer 211 of the core unit 210 is activated by calling a service API in a RESTful manner outside the VMS 200 (for example, Portal, VSV, and VMS UI of FIG. 1), and each of these is activated. By the function call included in the program modules, a core management function for managing an infrastructure or a virtual machine, a VDI function for managing an AD or a DDC, a monitoring function, and a scheduling function may be performed on the command layer 212.

본 실시예에서 서비스 API는 VMS(200) 외부(예컨대, 도 1의 Portal, VSV 및 VMS UI 등)에서 호출할 수 있는 API로 VMS(200) 외부에 대하여 가상 데스크톱 서비스를 구성하는 개별 기능들에 대한 요청 및 응답 포인트를 제공할 수 있다.In this embodiment, the service API is an API that can be called from outside the VMS 200 (eg, the Portal, VSV, and VMS UI of FIG. 1). The service API is provided to individual functions configuring the virtual desktop service for the outside of the VMS 200. Can provide request and response points.

브로커부(220)는 하이퍼바이저와 클라이언트에 각각 할당된 시스템 가상머신을 관리 또는 제어하기 위한 프로그램 모듈들로써, 하이퍼바이저 매니저(221), RVM 매니저(222), DDC 매니저(223), AD 매니저(224) 및 TVM 매니저(225) 등을 포함할 수 있다.The broker unit 220 is a program module for managing or controlling a system virtual machine allocated to each of the hypervisor and the client, and includes a hypervisor manager 221, an RVM manager 222, a DDC manager 223, and an AD manager 224. ) And the TVM manager 225.

여기에서 하이퍼바이저 매니저(221)은 시스템 VM의 신규 생성이 필요한 경우에 다수의 VM들이 미리 생성되어 있는 클러스터 풀(Cluster Pool)로부터 VM을 할당받아와, 필요한 종류의 시스템 VM으로 생성하여 해당 클라이언트에 할당한다.In this case, when a new creation of a system VM is required, the hypervisor manager 221 receives a VM from a cluster pool in which a plurality of VMs are created in advance, creates a system VM of a required type, and then assigns the VM to a corresponding client. Assign.

RVM 매니저(222), DDC 매니저(223), 및 TVM 매니저(225)는 각각 클라이언트별로 할당된 시스템 VM 들인 RVM, DDC 및 TVM을 각각 관리 및 제어하는 프로그램 모듈들로서, XML 기반의 분산 시스템 통신 방법인 XML-RPC 프로토콜을 통해 XML 형태로 원격 프로시저를 호출하는 방법으로 각각 대응하는 시스템 VM들을 관리 및 제어할 수 있다.The RVM manager 222, the DDC manager 223, and the TVM manager 225 are program modules that manage and control the RVMs, DDCs, and TVMs, which are system VMs allocated to each client, respectively. Through the XML-RPC protocol, each system VM can be managed and controlled by calling a remote procedure in XML format.

AD 매니저(224)는 클라이언트 별로 할당된 디렉토리 서비스를 위한 시스템 VM인 AD를 관리 및 제어하는 프로그램 모듈로서, 바람직하게는, 디렉토리 서비스를 위한 통신 프로토콜인 LDAP을 이용할 수 있다. The AD manager 224 is a program module for managing and controlling AD, which is a system VM for a directory service allocated to each client, and may preferably use LDAP, which is a communication protocol for directory services.

코어부(210)와 브로커부(220)는 서로 RESTful 방식의 API 호출을 통해 상호 간에 필요한 관리 및 제어를 위한 통신을 수행할 수 있다.The core unit 210 and the broker unit 220 may perform communication for management and control necessary for each other through API calls in a RESTful manner.

본 실시예에서 서비스 API나 코어부(210) 및 브로커부(220) 간의 API에 사용되는 REST(REpresentational State Transfer)ful 방식은 중간의 매개체 없이 URI의 형태로 식별되는 서비스 리소스를 요청자가 HTTP 프로토콜의 POST/GET 함수를 통해 조작(CRUD) 및 제어할 수 있게 함으로써, 보다 편리하고 용이하게 상호간의 리소스 혹은 프로그램 모듈들을 호출하여 조작 또는 제어할 수 있게 한다.In the present embodiment, a REST (Representational State Transfer) ful method used for a service API or an API between the core unit 210 and the broker unit 220 may request a service resource identified in the form of a URI without an intermediate agent. By allowing CRUD to be controlled and controlled through the POST / GET function, it is more convenient and easier to call and manipulate or control each other's resources or program modules.

도 3a 및 3b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 제어 권한 및 해당 권한에 따라 수행가능한 서비스 API를 예시한 도면이다.3A and 3B are diagrams illustrating a control authority of a service API used in a VMS of a virtual desktop service system according to an exemplary embodiment of the present invention, and a service API that can be executed according to the authority.

도 3a를 참조하면, 본 실시예에 따른 서비스 API 중 A1은 서비스 전체의 관리자 계정에 부여되는 권한으로, 코어 관리 기능 중 인프라 관리 기능 모듈(Infra Manager)을 통해 모든 API에 대한 제어(READ & WRITE, RW)권한을 갖는다.Referring to FIG. 3A, among the service APIs according to the present embodiment, A1 is an authority granted to an administrator account of the entire service. , RW) authority.

A2는 서비스의 모니터링용 관리자 계정에 부여되는 권한으로, 코어 관리 기능 중 인프라 관리 기능 모듈(Infra Manager)을 통해 모든 API에 대하여 생성 및 삭제를 제외한 나머지(READ ONLY, RO) 권한을 갖는다.A2 is an authority granted to the administrator account for monitoring the service. The A2 has an authority (READ ONLY, RO) except for creation and deletion for all APIs through the infrastructure management function module (Infra Manager) among the core management functions.

B1는 개별 클라이언트의 VDI 관리자 계정에 부여되는 권한으로, VDI 관리 기능 모듈(VDI Manager)을 통해 클라이언트의 VDI 관리 API의 제어(READ & WRITE, RW)권한을 갖는다.B1 is an authority granted to an individual client's VDI manager account and has control (READ & WRITE, RW) authority of the client's VDI management API through a VDI manager.

B2는 개별 클라이언트의 VDI 모니터링용 관리자 계정에 부여되는 권한으로, VDI 관리 기능 모듈을 통해 클라이언트의 VDI 관리 API에 대해서 생성 및 삭제를 제외한 나머지(READ ONLY, RO) 권한을 갖는다.B2 is an authority granted to an administrator account for monitoring VDI of an individual client. The B2 authority has the remaining (READ ONLY, RO) rights except for creation and deletion of the VDI management API of the client through the VDI management function module.

도 3b를 참조하면, 서비스 API 중 DeploySVM는 각 클라이언트에 할당되는 RVM, AD, DDC와 같은 시스템 VM을 생성하는 것으로, A1 권한을 갖는 서비스 전체 관리자 계정에서만 호출할 수 있다.Referring to FIG. 3B, DeploySVM among the service APIs creates a system VM such as RVM, AD, and DDC assigned to each client, and can be called only from a service full administrator account having A1 authority.

DeployVM는 시스템 VM이 아닌 일반 사용자 VM을 생성하는 것으로, A1 권한 뿐만 아니라, B1 권한을 갖는 클라이언트의 VDI 관리자 계정에서도 호출할 수 있다.DeployVM creates regular user VMs, not system VMs, and can be invoked from the VDI administrator account on clients with B1 privileges as well as A1 privileges.

ListHost는 XenServer 등과 같은 하이퍼바이져 리스팅 API로, A1 또는 A2와 같은 권한을 갖는 서비스 관리자 계정에서 호출가능하다.ListHost is a hypervisor listing API such as XenServer. It can be called from a service administrator account with the same privileges as A1 or A2.

도 4a 내지 4b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 요청 및 응답 형식을 예시한 도면이다.4A to 4B illustrate a request and response format of a service API used in a VMS of a virtual desktop service system according to an exemplary embodiment of the present invention.

도 4a를 참조하면, 본 실시예에 따른 서비스 API의 요청(request)은 session(411), method(412), request(413) 및 async(414)의 파라미터를 포함할 수 있으며, 서비스 리소스에 RESTful 방식으로 전달된다.Referring to FIG. 4A, a request of a service API according to the present embodiment may include parameters of session 411, method 412, request 413, and async 414, and the service resource may be RESTful. Is delivered in a way.

session(411)은 문자열(string) 타입의 세션 키를 입력받는 파라미터에 해당하며, 본 실시예에 따른 서비스 API 중 SessionLogin API를 제외한 나머지 모든 API의 요청시 필수적이다.The session 411 corresponds to a parameter for receiving a session key of a string type, and is essential when requesting all other APIs except the SessionLogin API among the service APIs according to the present embodiment.

method(412)는 문자열(string) 타입으로 호출할 메소드 이름을 입력받는 파라미터에 해당한다. 본 실시예에서는 “ListZones”라는 이름의 메소드를 호출한다method 412 corresponds to a parameter that receives a method name to be called as a string. In this example, the method named “ListZones” is called.

request(413)은 해당 메소드의 호출시 입력하도록 API 상에 정의된 파라미터 이른바 요청 파라미터들(request parameters)를 입력받는 부분으로, 본 실시예에서는 “ListZones”라는 이름의 메소드의 요청 파라미터로 ID를 입력받도록 API에서 정의하고 있고, 이에 따라 2라는 숫자 데이터를 ID에 대한 입력값으로 전달하고 있다.The request 413 is a part that receives the parameter so-called request parameters defined on the API to be input when the method is called. In this embodiment, the ID is input as the request parameter of the method named “ListZones”. API is defined to receive, and accordingly, numeric data of 2 is passed as input value for ID.

async(414)는 해당 메소드가 Asyc job 실행권한이 있는 경우에 추가적으로 입력이 필요한 파라미터로, 해당 메소드를 Async job으로 실행할지 여부에 관한 boolean 타입의 값을 입력받는 부분으로, 본 실시예에서는 “ListZones”라는 이름의 메소드를 Async job으로 실행하지 않도록 해당 파라미터의 입력값으로 “false”를 전달하고 있다.async 414 is a parameter that requires additional input when the method has permission to execute Asyc job, and receives a boolean value indicating whether to execute the method as an Async job. In this embodiment, “ListZones In order not to execute the method named “Async job”, “false” is transmitted as the input value of the parameter.

도 4b를 참조하면, 본 실시예에 따른 서비스 API의 응답(request)은 status(421), response(422) 및 total count(423)의 응답값들을 포함할 수 있으며, 서비스 리소스로부터 RESTful 방식으로 제공받는다.Referring to FIG. 4B, the request of the service API according to the present embodiment may include response values of status 421, response 422, and total count 423, and are provided in a RESTful manner from a service resource. Receive.

status(421)은 문자열(string) 타입으로 요청에 따른 수행 상태를 전달하는 부분에 해당하며, 본 실시예에서는 “success”라는 상태값을 통해 수행 성공을 나타내고 있다.The status 421 is a string type and corresponds to a part for transmitting the execution status according to the request. In this embodiment, the success is indicated through a status value of “success”.

response(422)는 해당 메소드의 호출에 따른 수행 결과를 포함하는 응답값들(response values)을 전달하도록 하도록 API 상에 정의된 부분으로, 본 실시예에서는, 응답값으로 id가 “1”이고, “EPC-KR0”이란 이름을 가지며, “EPC-VDI-DEV MOK-DONG”이라는 의미를 갖는 데이터 레코드와, id가 “2”이고, “EPC-KR1”이란 이름을 가지며, “EPC-VDI-DEV MOK-CHEON”이라는 의미를 갖는 데이터 레코드를 리스트 형태로 해당 메소드의 호출에 따른 수행 결과로써, 전달하고 있다. The response 422 is a part defined on the API to deliver response values including the result of the execution of the corresponding method. In this embodiment, the id is “1” as the response value. It has a name of “EPC-KR0”, a data record meaning “EPC-VDI-DEV MOK-DONG”, an id of “2”, a name of “EPC-KR1”, and an “EPC-VDI- DEV MOK-CHEON ”is delivered as a result of executing the method call in the form of a list.

total count(423)는 해당 메소드가 리스트 형태의 데이터를 응답값으로 제공하는 LIST API인 경우에 추가적으로 반환되는 값으로, 응답값으로 제공하는 리스트에 속한 원소들(element)의 총 개수(total count)를 반환할 수 있다.total count (423) is additionally returned when the method is a LIST API that provides list-type data as a response value. The total count (423) is a total count of elements in the list provided as a response value. Can return.

이하의 표는 본 실시예에 따른 요청 및 응답 형식을 갖는 시스템 API의 대표적인 메소드들을 예시한다.The table below illustrates representative methods of the system API with a request and response format according to the present embodiment.

Figure pat00001
Figure pat00001

상기한 표를 참조하면, 본 실시예에 따른 시스템 API 중 DeploySVM는 A1 권한을 가진 계정에서 수행하는 프로그램 모듈에서만 제한적으로 호출될 수 있으며, 요청 파라미터로 serviceprofile_id, description, cpus, mem_size, host_id, storage_id, org_id, allocator를 가질 수 있으며, 이들 중 serviceprofile_id, cpus, mem_size, host_id, storage_id, org_id는 정수(integer) 형태의 입력값을 입력받을 수 있으며, 이들 중 serviceprofile_id는 메소드의 호출시 반드시 요청 파라미터로 포함되어야 하나, 나머지는 생략하거나 선택적으로 입력할 수 있다.Referring to the above table, the DeploySVM among the system APIs according to the present embodiment can be limitedly invoked only in a program module executed in an account having the A1 privilege. The request parameters include serviceprofile_id, description, cpus, mem_size, host_id, storage_id, serviceprofile_id, cpus, mem_size, host_id, storage_id, and org_id can be input as integer values. Of these, serviceprofile_id must be included as a request parameter in the method call. One can omit the rest or enter it selectively.

이러한 DeploySVM은 요청을 수행한 결과를, id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, zone_id, zone_name, created, uptime, boot, iso_id, iso_name, ha, locked, nics, disks에 각각 대응되는 응답값들을 통해 해당 메소드를 호출한 프로그램 모듈에 전달할 수 있으며, 이들 중 id, cpus, mem_size, vmtype_id, org_id, host_id, cluster_id, pod_id, zone_id, iso_id에 대응되는 응답값들은 정수(integer) 형태를 가지며, created, uptime에 대응되는 응답값들은 특정 시각(time)을 나타내며, nics, disks에 대응되는 응답값들은 리스트 형태를 갖는 것으로 정의된다The DeploySVM performs the request with the following information: id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, zone_id, The response values corresponding to zone_name, created, uptime, boot, iso_id, iso_name, ha, locked, nics, and disks can be delivered to the program module that called the method. Among these, id, cpus, mem_size, vmtype_id, org_id Response values corresponding to host_id, cluster_id, pod_id, zone_id, and iso_id have an integer form, response values corresponding to created and uptime represent a specific time, and response values corresponding to nics and disks Defined as having a list type

아울러, 본 실시예에 따른 시스템 API 중 DeployVDI는 A1 권한을 가진 계정 뿐만 아니라, B1이나 C1 권한의 계정에서 수행하는 프로그램 모듈에서도 호출될 수 있으며, 요청 파라미터로 serviceprofile_id, description, cpus, mem_size, host_id, storage_id, org_id, data_disks, allocator, user_uri를 가질 수 있으며, 이들 중 serviceprofile_id, cpus, mem_size, host_id, storage_id, org_id는 정수(integer) 형태의 입력값을 입력받을 수 있으며, 이들 중 serviceprofile_id, org_id, user_uri는 메소드의 호출시 반드시 요청 파라미터로 포함되어야 하나, 나머지는 생략하거나 선택적으로 입력할 수 있다.In addition, DeployVDI in the system API according to the present embodiment can be called not only in the account having the A1 privilege, but also in the program module executed in the account having the B1 or C1 privilege. It can have storage_id, org_id, data_disks, allocator, and user_uri, and among these, serviceprofile_id, cpus, mem_size, host_id, storage_id, org_id can receive input values of integer type, and among these, serviceprofile_id, org_id, and user_uri are When calling a method, it must be included as a request parameter, but the rest can be omitted or optionally entered.

이러한 DeployVDI은 요청을 수행한 결과를, id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, zone_id, zone_name, created, uptime, boot, iso_id, iso_name, ha, nics, disks, user_uri, user_id, firstname, lastname, user_type, connection_status에 각각 대응되는 응답값들을 통해 해당 메소드를 호출한 프로그램 모듈에 전달할 수 있으며, 이들 중 id, cpus, mem_size, vmtype_id, org_id, host_id, cluster_id, pod_id, zone_id, iso_id에 대응되는 응답값들은 정수(integer) 형태를 가지며, created, uptime에 대응되는 응답값들은 특정 시각(time)을 나타내며, nics, disks에 대응되는 응답값들은 리스트 형태를 갖는 것으로 정의된다.The DeployVDI performs the result of request, id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, zone_id, Responses corresponding to zone_name, created, uptime, boot, iso_id, iso_name, ha, nics, disks, user_uri, user_id, firstname, lastname, user_type, and connection_status can be delivered to the program module that called the method. Response values corresponding to id, cpus, mem_size, vmtype_id, org_id, host_id, cluster_id, pod_id, zone_id, and iso_id have an integer form, and response values corresponding to created and uptime represent a specific time. Responses corresponding to nics, disks and disks are defined as having a list form.

도 5는 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각에 할당되는 시스템 VM을 생성하는 과정을 도시한 도면이다.5 is a diagram illustrating a process of creating a system VM allocated to each client in a service process of a VMS according to an exemplary embodiment of the present invention.

도 5를 참조하면, 본 실시예에 따라 클라이언트 각각에 할당되는 시스템 VM은 RVM, AD, DDC이며, 이에 따라 클라이언트별로 시스템 VM을 생성하기 위한 DeploySVM API를 입력 파라미터(serviceprofile_id)를 변경하여 3회에 걸쳐 호출함으로써, 클라이언트 각각에 VDI 서비스를 제공하기 위한 준비 과정을 수행할 수 있다.Referring to FIG. 5, system VMs allocated to each client according to the present embodiment are RVM, AD, and DDC. Accordingly, the DeploySVM API for creating a system VM for each client is changed three times by changing an input parameter (serviceprofile_id). By invoking over, it is possible to perform a preparation process for providing a VDI service to each client.

먼저, 시스템 VM 중 RVM을 생성하기 위해, WAS는 관리망을 통해서 관리용 인터페이스의 DHCP IP를 할당받고, RVM은 이러한 관리용 인터페이스의 DHCP IP를 기초로 생성된다. 이후에, WAS에게 해당 가상머신에 대한 추가 IP 즉, 인터넷 망에서의 IP(공인 IP)와, 서비스 망에서의 IP 설정을 요청한다. WAS에 의해 설정받은 추가 IP 정보를 기초로 사설망용 DHCP 설정 정보를 업데이트하고, 해당 RVM에 대한 포트 포워딩 정보가 존재하면, 이를 업데이트하고 기타 다른 설정 작업을 수행한다. 그리고, RVM의 초기 구동에 필요한 모든 설정을 마무리하고 RVM을 구동시킴으로써 일련의 RVM의 생성 과정(501)을 완료할 수 있다.First, in order to create an RVM among the system VMs, the WAS is assigned a DHCP IP of the management interface through the management network, and the RVM is generated based on the DHCP IP of the management interface. Afterwards, the WAS requests an additional IP for the corresponding virtual machine, that is, an IP in the Internet network (a public IP) and an IP in the service network. Update the DHCP configuration information for the private network based on the additional IP information configured by the WAS. If there is port forwarding information for the RVM, update it and perform other configuration tasks. In addition, by completing all the settings necessary for the initial operation of the RVM and running the RVM, a series of generation of the RVM 501 may be completed.

WAS는 RVM이 생성된 이후에, AD를 생성하기 위해, 관리망을 통해서 관리용 인터페이스의 DHCP IP를 할당받고, AD는 이러한 관리용 인터페이스의 DHCP IP를 기초로 생성되며, 이후에 RVM을 통해서 서비스 망에서의 IP를 할당받고, 기타 다른 설정 작업을 수행한다. 그리고, AD의 초기 구동에 필요한 모든 설정을 마무리하고 AD을 구동시킴으로써 일련의 AD의 생성 과정(502)을 완료할 수 있다.After the RVM is created, the WAS is assigned a DHCP IP of the management interface through the management network to create an AD, and the AD is generated based on the DHCP IP of this management interface, and then serviced through the RVM. Allocate IP on the network and perform other configuration tasks. Then, by completing all the settings necessary for the initial driving of the AD and driving the AD, a series of generation processes 502 of the AD can be completed.

WAS는 RVM과 AD가 생성된 이후에, DDC를 생성하기 위해, 관리망을 통해서 관리용 인터페이스의 DHCP IP를 할당받고, DDC는 이러한 관리용 인터페이스의 DHCP IP를 기초로 생성되며, 이후에 RVM을 통해서 서비스망에서의 IP를 할당받고, 기타 다른 설정 작업을 수행한다. 그리고, DDC의 초기 구동에 필요한 모든 설정을 마무리하고 DDC을 구동시킴으로써 일련의 DDC의 생성 과정(503)을 완료할 수 있다.After the RVM and AD are created, the WAS is assigned a DHCP IP of the management interface through the management network to create a DDC, and the DDC is generated based on the DHCP IP of the management interface, and then the RVM is created. Through the assignment of IP in the service network and other configuration work. In addition, by completing all the settings necessary for the initial driving of the DDC and driving the DDC, a series of generation 503 of the DDC may be completed.

마지막으로, WAS는 VDI 서비스 사용자가 DDC에 접속할 수 있도록 DDC의 서비스 IP의 80번 포트를 RVM의 포트포워딩 룰에 포함시키고, 이를 업데이트하여 이후의 RVM의 포트 포워딩시 적용하도록 구현할 수 있다(POST PROCESS, 504).Finally, WAS can include port 80 of the DDC's service IP in the RVM's port forwarding rules so that VDI service users can access the DDC and update it to apply it in future port forwarding of the RVM (POST PROCESS). , 504).

도 6은 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각의 사용자 VM에서 VDI 서비스를 수행하기 위한 기본 환경을 설정하는 과정을 도시한 도면이다.FIG. 6 is a diagram illustrating a process of setting a basic environment for performing a VDI service in a user VM of each client in a service process of a VMS according to an exemplary embodiment of the present invention.

도 6을 참조하면, VMS는 하이퍼바이저 매니저 모듈인 Xen Server를 통해 사용자 VM을 생성하고, 이에 IP를 할당하고, 할당된 IP를 기초로 사용자 VM을 부팅시키고, 사용자 VM에 필요한 초기 설정 정보를 획득하기 위해, getProvisioninginfo API를 호출하여, AD로부터 초기 설정에 필요한 정보를 획득하고, 이를 기초로 sysprep 설정 정보를 생성하고, 사용자 VM을 재부팅시킨후 생성된 sysprep 설정 정보에 맞게 운영체제 레벨의 초기 설정을 변경하고 사용자 VM을 재부팅시킨다.Referring to FIG. 6, the VMS creates a user VM through Xen Server, a hypervisor manager module, assigns an IP to it, boots the user VM based on the assigned IP, and obtains initial configuration information required for the user VM. To do this, call getProvisioninginfo API to obtain the information necessary for initial configuration from AD, generate sysprep configuration information based on this, reboot the user VM, and change the operating system level initial configuration to match the generated sysprep configuration information. And reboot your VM.

사용자 VM이 재부팅되어 두번째로, getProvisioninginfo API를 호출하게 되면, DDC를 통해 사용자 VM이 VDI 서비스 사용자에 매핑되고, 해당 VDI 서비스 사용자가 DDC에 접속할 수 있도록 DDC의 서비스 IP의 80번 포트를 RVM의 포트포워딩 룰에 포함시켜 업데이트됨으로써, 사용자 VM에서 VDI 서비스를 수행하기 위한 기본 환경 설정 과정이 완료된다.When the user VM is rebooted and secondly, the getProvisioninginfo API is called, the user VM is mapped to the VDI service user through the DDC, and port 80 of the DDC's service IP is ported to the RVM so that the VDI service user can access the DDC. The update is included in the forwarding rule to complete the basic configuration process for performing VDI services in the user VM.

도 7은 본 발명의 바람직한 일 실시예에 따른 데이터 센터(700)에서 제공하는 멀티태넌시 가상 데스크톱 서비스를 설명하기 위한 도면으로, 본 실시예에 따른 사용자 가상머신(715~716, 725, 735), RVM(711~712, 721, 731), AD(713, 723, 733) 및 DDC(714, 724, 734)는 도 1에 도시된 가상 데스크톱 서비스 시스템의 사용자 가상머신(115~116), 라우터 가상머신(111~112), 액티브 디렉토리 가상머신(113) 및 데스크톱 딜리버리 제어 가상머신(114)에 각각 대응될 수 있다. 따라서, 도 1에 도시된 가상 데스크톱 서비스 시스템에 관한 설명에서와 동일한 사항에 대해서는 이를 참조한다.FIG. 7 is a diagram illustrating a multi-tenancy virtual desktop service provided by the data center 700 according to an exemplary embodiment of the present invention. The user virtual machines 715 to 716, 725, and 735 according to the present embodiment are illustrated. , RVMs 711-712, 721, 731, AD 713, 723, 733, and DDCs 714, 724, 734 are user virtual machines 115, 116, routers of the virtual desktop services system shown in FIG. 1. The virtual machines 111 to 112, the active directory virtual machine 113, and the desktop delivery control virtual machine 114 may respectively correspond. Therefore, the same items as those in the description of the virtual desktop service system shown in Fig. 1 are referred to.

본 실시예에 따른 멀티태넌시 가상 데스크톱 서비스는 다수의 독립된 클라이언트들이 동일한 형태의 가상 데스크톱 서비스를 하나의 데이터 센터(700)에서 제공받아야 하며, 특정 클라이언트에 대한 가상 데스크톱 서비스가 다른 클라이언트에 대한 가상 데스크톱 서비스에 영향을 주거나 받지 않아야 하며, 이를 위해 본 실시예에 따른 데이터 센터(700)는 클라이언트별 정보를 논리적으로 분리하여 관리하여야 하며, 아울러, 클라이언트별로 독립된 하드웨어 리소스와 독립된 네트워크 리소스를 포함하는 클라이언트별 가상 데스크톱 시스템을 제공한다.In the multi-tenancy virtual desktop service according to the present embodiment, a plurality of independent clients should be provided with the same type of virtual desktop service in one data center 700, and the virtual desktop service for one client is a virtual desktop for another client. The data center 700 according to the present exemplary embodiment must logically separate and manage client-specific information. For this purpose, the data center 700 according to the present exemplary embodiment must manage the client-specific information logically. Provide a virtual desktop system.

도 7을 참조하면, 본 실시예에 따른 클라이언트별 가상 데스크톱 시스템(710, 720, 730)은 클라이언트 별로 사용자 가상머신들, RVM, AC 및 DDC을 포함하는 사용자 및 시스템 가상머신들의 집합으로, 서로 독립적으로 동작하며, 서로에 대해 은닉되어 상호 시스템들 간의 보안성이 유지되는 것을 전제로 한다.Referring to FIG. 7, the client-specific virtual desktop systems 710, 720, and 730 according to the present embodiment are sets of user and system virtual machines including user virtual machines, RVM, AC, and DDC for each client, and are independent of each other. It is assumed that the security between the systems is maintained by concealing each other.

RVM(711, 721, 731)은 사용자 가상머신들(715, 725, 735) 각각에 서비스 IP를 할당해주어야 하고, 할당 가능한 IP의 개수는 한정되어 있으므로, 서비스되어야 할 사용자 가상머신의 수가 할당 가능한 IP의 개수를 넘는 경우에는, 추가적인 RVM(712)가 생성되어 multi-RVM의 형태로 구성되게 된다. 이 경우 IP 충돌 방지를 위해 기존의 RVM(711)에 연결된 사용자 가상머신들(715)과 기존의 RVM(711) 간의 네트워크와 추가적으로 생성된 RVM(712)과 연결된 사용자 가상머신들(716)과 추가적인 RVM 간의 네트워크가 서로 논리적으로 분리되어야 한다.Since the RVMs 711, 721, and 731 must allocate service IPs to the user virtual machines 715, 725, and 735, and the number of assignable IPs is limited, the number of user virtual machines to be serviced can be allocated. If more than, the additional RVM 712 is generated and configured in the form of multi-RVM. In this case, a network between the user virtual machines 715 connected to the existing RVM 711 and the existing RVM 711 and the user virtual machines 716 connected to the generated RVM 712 and the additional RVM 711 may be added to prevent IP collision. Networks between RVMs must be logically separated from each other.

도 8은 본 발명의 바람직한 일 실시예에 따라 클라이언트별로 독립적으로 구성되는 네트워크 환경을 예시한 도면으로, 본 실시예에 따른 사용자 가상머신(815~816), RVM(811~812), AD(813) 및 DDC(814)는 도 1에 도시된 가상 데스크톱 서비스 시스템의 사용자 가상머신(115~116), 라우터 가상머신(111~112), 액티브 디렉토리 가상머신(113) 및 데스크톱 딜리버리 제어 가상머신(114)에 각각 대응될 수 있다. 따라서, 도 1에 도시된 가상 데스크톱 서비스 시스템에 관한 설명에서와 동일한 사항에 대해서는 이를 참조한다.FIG. 8 is a diagram illustrating a network environment that is independently configured for each client according to an exemplary embodiment of the present invention. The user virtual machines 815 to 816, RVMs 811 to 812, and AD 813 according to the present embodiment are illustrated. ) And the DDC 814 are the user virtual machine 115-116, the router virtual machine 111-112, the active directory virtual machine 113, and the desktop delivery control virtual machine 114 of the virtual desktop service system shown in FIG. 1. Respectively). Therefore, the same items as those in the description of the virtual desktop service system shown in Fig. 1 are referred to.

도 8을 참조하면, 본 실시예에 따른 클라이언트별로 제공되는 가상 데스크톱 시스템은 복수의 서브네트워크들(Network A~E)에 연결되며, 이들 서브네트워크들은 이들 서브네트워크의 구성요소 노드들에 할당된 IP의 충돌을 방지하기 위해 VLAN을 통해서 서로 논리적으로 분리된다.Referring to FIG. 8, a virtual desktop system provided for each client according to the present embodiment is connected to a plurality of subnetworks Network A to E, and these subnetworks are IPs assigned to component nodes of these subnetworks. Logically separated from each other through the VLAN to avoid collisions.

Network A는 RVM(811)과 외부의 공중 네트워크(예컨대, 인터넷)간의 네트워크이다.Network A is a network between the RVM 811 and an external public network (eg, the Internet).

Network B는, 동일한 클라이언트에 할당된 시스템 가상머신들 즉, RVM(811~812), AD(813), DDC(814)와 서비스 공급자의 관리 시스템(820) 간의 네트워크이다.Network B is a network between system virtual machines assigned to the same client, that is, the RVMs 811 to 812, the AD 813, the DDC 814, and the service provider's management system 820.

Network C는 사용자 가상머신을 통해 제공되는 VDI 서비스와 이러한 VDI 서비스를 지원하기 위한 시스템 가상머신들 즉, RVM(811), AD(813) 및 DDC(814) 간의 네트워크이다.Network C is a network between a VDI service provided through a user virtual machine and system virtual machines for supporting such a VDI service, that is, an RVM 811, an AD 813, and a DDC 814.

Network D는 사용자 가상머신의 수가 RVM에서 할당 가능한 IP의 개수를 넘는 경우에 형성되는 Multi-RVM 환경에서, 사용자 가상머신들과 추가적인 RVM(812) 간의 네트워크로, Network C와 동일한 기능을 수행하되, Network C와는 논리적으로 분리되어야 한다.Network D is a network between user virtual machines and an additional RVM 812 in a multi-RVM environment formed when the number of user virtual machines exceeds the number of IPs that can be allocated in RVM, and performs the same function as Network C. It should be logically separated from Network C.

Network E는 사용자 가상머신의 수가 RVM에서 할당 가능한 IP의 개수를 넘는 경우에 형성되는 Multi-RVM 환경에서, 복수의 RVM들(811, 812)간의 네트워크로, 각 RVM에서의 라우팅 정보를 공유하기 위한 용도로 사용될 수 있다.Network E is a network between a plurality of RVMs 811 and 812 in a multi-RVM environment formed when the number of user virtual machines exceeds the number of IPs that can be allocated in the RVM. It can be used for purposes.

도 9는 본 발명의 바람직한 실시예에 따른 멀티 태넌시 가상 데스크톱 서비스의 특정 클라이언트에 속하는 사용자에게 대한 가상 데스크톱 환경을 생성하는 DeployVDI API의 처리 과정을 예시한 도면이다.FIG. 9 illustrates a process of deployVDI API for creating a virtual desktop environment for a user belonging to a specific client of a multi-tenancy virtual desktop service according to an exemplary embodiment of the present invention.

본 실시예에 따른 DeployVDI API는 멀티 태넌시 가상 데스크톱 서비스를 제공하기 위해 클라이언트 별로 논리적으로 분리된 하드웨어 리소스의 가용성을 체크하고 해당 사용자 가상 데스크톱 환경을 구현할 가상머신의 리소스를 할당하는 일련의 사전 처리 과정(S902~S906)을 거칠 수 있다.DeployVDI API according to the present embodiment is a series of preprocessing process to check the availability of logically separated hardware resources for each client and to allocate the resources of the virtual machine to implement the user virtual desktop environment to provide a multi-tenancy virtual desktop service (S902 to S906).

먼저, 클라이언트의 관리자 계정을 통해 사용자 VM을 생성하기 위한 DeployVDI 메소드의 호출을 통해 DeployVDI 요청을 수신하면(S901), 해당 클라이언트에 할당된 서버들의 리스트를 조회하여(S902) 신규 사용자 VM에 할당가능한 서버가 있는지를 확인한다(S903).First, when a DeployVDI request is received through a call to the DeployVDI method for creating a user VM through an administrator account of a client (S901), a list of servers assigned to the client is inquired (S902). Check whether there is (S903).

신규 사용자 VM에 할당가능한 서버가 없는 경우에는 해당 클라이언트에 할당된 서버 리소스가 부족함을 알리는 메시지를 하이퍼바이저 매니저 등에 통지한다(S908). 하이퍼바이저 매니저는 이를 클라이언트의 관리자 계정에게 알려 새로운 서버 리소스의 할당을 위한 추가 결재 등을 요청하거나 데이터 센터의 현재 가용 서버 리소스를 확인하여 해당 클라이언트에 새로운 서버 리소스를 추가로 할당하는 등의 조치를 취할 수 있으나, 이는 설명의 편의를 위한 하나의 실시예에 불과하며, 본 발명에서 이를 한정하지는 않는다고 할 것이다.If there is no server that can be allocated to the new user VM, a message indicating that the server resource allocated to the client is insufficient is notified to the hypervisor manager or the like (S908). The hypervisor manager can notify the administrator account of the client to request additional payments for the allocation of new server resources, or check the current available server resources in the data center and take additional actions such as assigning new server resources to the client. However, this is only one embodiment for convenience of description, and the present invention is not limited thereto.

신규 사용자 VM에 할당가능한 서버가 있는 경우에는 해당 클라이언트에 할당된 스토리지 리소스들의 리스트를 조회하여(S904) 신규 사용자 VM에 할당가능한 스토리지 리소스가 있는지를 확인한다(S905).If there is a server assignable to the new user VM, the list of storage resources allocated to the corresponding client is queried (S904) to check whether there is a storage resource assignable to the new user VM (S905).

신규 사용자 VM에 할당가능한 스토리지 리소스가 없는 경우에는 해당 클라이언트 계정에서 할당된 스토리지 리소스가 부족함을 알리는 메시지를 하이퍼바이저 매니저 등에 통지한다(S909). 하이퍼바이저 매니저는 이를 클라이언트의 관리자 계정에게 알려 새로운 스토리지 리소스의 할당을 위한 추가 결재 등을 요청하거나 데이터 센터의 현재 가용 스토리지 리소스를 확인하여 해당 클라이언트에 새로운 스토리지 리소스를 추가로 할당하는 등의 조치를 취할 수 있으나, 이는 설명의 편의를 위한 하나의 실시예에 불과하며, 본 발명에서 이를 한정하지는 않는다고 할 것이다.If there is no storage resource that can be allocated to the new user VM, a message indicating that the storage resource allocated by the corresponding client account is insufficient is notified to the hypervisor manager (S909). The hypervisor manager can notify the administrator account of the client to request additional payments for the allocation of new storage resources, or check the current available storage resources in the data center and take additional actions such as allocating new storage resources to the client. However, this is only one embodiment for convenience of description, and the present invention is not limited thereto.

S903 및 S905 단계들을 통해 확인된 할당가능한 서버 및 스토리지 리소스들 중에 신규 사용자 VM에 할당할 서버 및 스토리지 리소스를 선택한다(S906). 예컨대, 할당 가능한 서버 리소스들 중에 현재 VM이 가장 적게 할당된 서버 리소스를 선택할 수 있으며, 또한 해당 클라이언트에 할당된 스토리지 리소스 중 선택된 서버 리소스에 연결된 스토리지를 선택할 수 있으며, 선택된 서버 리소스에 연결된 스토리지는 현재 VM이 가장 적게 할당된 스토리지 리소스를 선택할 수 있다.The server and storage resources to be allocated to the new user VM are selected from among the assignable server and storage resources identified through the steps S903 and S905 (S906). For example, among the assignable server resources, you can select the server resource with the lowest current VM allocation, and also select the storage associated with the selected server resource among the storage resources assigned to the client, and the storage associated with the selected server resource You can choose the storage resource with the fewest VMs allocated.

상기에서 기술한 바와 같이, 클라이언트 별로 논리적으로 분리된 하드웨어 리소스의 가용성을 체크하고 해당 사용자의 가상 데스크톱 환경을 구현할 사용자 가상머신의 리소스를 할당하는 일련의 사전 처리 과정(S902 내지 S906)을 거친 후 DeployVDI 메소드를 수행(S907)함으로써, 해당 사용자의 가상 데스크톱 환경을 구현할 사용자 가상머신을 생성한다.As described above, DeployVDI after a series of preprocessing steps (S902 through S906) of checking availability of logically separated hardware resources for each client and allocating resources of a user virtual machine to implement a virtual desktop environment of the user. By performing the method (S907), a user virtual machine to create a virtual desktop environment of the user is created.

본 발명에 따라 고객별로 가상 데스크톱 시스템을 구현하여 제공하는 경우에, 고객별로, 별도로 분리된 데이터 센터를 운영해야 할 필요 없이, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있게 된다.In the case of implementing and providing a virtual desktop system for each customer according to the present invention, virtual desktops separated from each other to a plurality of enterprise or organization clients in one data center without having to operate a separate data center for each customer. To provide services.

특히, 클라이언트 별로 서로 다른 하드웨어 및 소프트웨어에 대한 요구를 보다 충실하게 반영하되, 클라이언트 별로 컴퓨팅 자원이나 IP의 충돌 없이, 클라이언트 각각의 IT 환경에 부합하는 가상 데스크톱 서비스를 제공할 수 있게 된다.In particular, it is possible to more faithfully reflect the needs of different hardware and software for each client, but can provide a virtual desktop service for each IT environment of the client without conflicting computing resources or IP for each client.

본 발명에 따른 가상 데스크톱 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The virtual desktop system according to the present invention can be embodied as computer readable code on a computer readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers of the technical field to which the present invention belongs.

본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, You will understand. Accordingly, the true scope of protection of the present invention should be determined only by the appended claims.

Claims (11)

데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 가상 데스크톱 환경을 제공하는 복수의 사용자 가상머신들;
상기 사용자 가상머신에 IP를 할당하여 상기 사용자 가상머신과 외부 네트워크와의 통신을 중개하고, 상기 사용자 가상머신의 서브 네트워크 내에서의 통신을 라우팅하는 적어도 하나 이상의 라우터 가상머신;
상기 사용자 가상머신과 상기 사용자 가상머신에 접근하는 사용자 계정 사이의 세션을 연결하고 상기 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 제어 가상머신; 및
상기 사용자 가상머신 및 데스크톱 딜리버리 제어 가상머신 중 적어도 하나 이상에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 시스템.
A plurality of user virtual machines providing a virtual desktop environment by using a virtual computing resource virtualized from a physical computing resource of a data center;
At least one router virtual machine for allocating an IP to the user virtual machine to mediate communication between the user virtual machine and an external network and to route communication within a sub-network of the user virtual machine;
A desktop delivery control virtual machine for connecting a session between the user virtual machine and a user account accessing the user virtual machine and managing a virtual desktop service provided by the user virtual machine; And
And an active directory virtual machine for authenticating a user account accessing at least one of the user virtual machine and the desktop delivery control virtual machine.
제1항에 있어서,
클라이언트 별로 라우터 가상머신, 데스크톱 딜리버리 제어 가상머신 및 액티브 디렉토리 가상머신을 포함하는 서로 독립된 시스템 가상머신 집합을 갖는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.
The method of claim 1,
A virtual desktop service system comprising a set of independent system virtual machines including a router virtual machine, a desktop delivery control virtual machine, and an Active Directory virtual machine for each client.
제1항에 있어서,
상기 라우터 가상머신은 상기 사용자 가상머신들에 유동 IP를 할당하는 DHCP 서버를 포함하는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.
The method of claim 1,
The router virtual machine includes a DHCP server for assigning a dynamic IP to the user virtual machines.
제1항에 있어서,
상기 라우터 가상머신은 상기 사용자 가상머신들의 수에 따라 동적으로 증설 혹은 감축될 수 있는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.
The method of claim 1,
The router virtual machine may be dynamically expanded or reduced in accordance with the number of the user virtual machines.
제1항에 있어서,
상기 라우터 가상머신과 외부 퍼블릭 네트워크 간의 제1서브네트워크, 서비스 공급자의 관리 시스템에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신을 제어하기 위한 제2서브네트워크, 상기 사용자 가상머신에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신과 통신하기 위한 제3서브네트워크는 서로 논리적으로 분리된 것을 특징으로 하는 가상 데스크톱 서비스 시스템.
The method of claim 1,
A first sub-network between the router virtual machine and an external public network, a second sub-network for controlling the router virtual machine, the active directory virtual machine and the desktop delivery control virtual machine in a management system of a service provider, the user virtual machine And the third sub-network for communicating with the router virtual machine, the active directory virtual machine, and the desktop delivery control virtual machine is logically separated from each other.
제5항에 있어서,
상기 라우터 가상머신이 복수 개인 경우에,
상기 제3서브네트워크는 상기 복수 개의 라우터 가상머신들 각각에 할당되어 서로 논리적으로 분리된 복수 개의 서브네트워크들을 포함하는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.
6. The method of claim 5,
When there are a plurality of router virtual machines,
The third sub-network includes a plurality of sub-networks allocated to each of the plurality of router virtual machines and logically separated from each other.
제6항에 있어서,
상기 라우터 가상머신이 복수 개인 경우에,
상기 사설 네트워크는 상기 복수 개의 라우터 가상머신들 사이의 라우팅 정보를 공유하기 위한 서브네트워크를 더 포함하는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.
The method according to claim 6,
When there are a plurality of router virtual machines,
The private network further comprises a subnetwork for sharing routing information between the plurality of router virtual machines.
데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 가상 데스크톱 환경을 제공하는 사용자 가상머신의 외부 네트워크와의 통신을 중개하고 상기 사용자 가상머신의 서브 네트워크 내에서의 통신을 라우팅하는 라우터 가상머신을 생성하는 라우터가상머신생성단계;
상기 라우터 가상머신으로부터 상기 서브 네트워크의 IP를 할당받아 상기 할당받은 서브 네트워크의 IP를 기초로 상기 사용자 가상머신에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 생성하는 액티브디렉토리생성단계; 및
상기 라우터 가상머신으로부터 상기 서브 네트워크의 IP를 할당받아 상기 할당받은 서브 네트워크의 IP를 기초로 상기 사용자 가상머신과 상기 사용자 계정 간의 세션을 연결하고 상기 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 가상머신을 생성하는 데스크톱딜리버리생성단계; 및
상기 데스크톱 딜리버리 가상머신의 상기 서브 네트워크의 IP의 기정의된 포트를 기초로 상기 라우터 가상머신의 포트포워딩 규칙을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.
A router virtual machine that mediates communication with an external network of a user virtual machine providing a virtual desktop environment by using a virtual computing resource that virtualizes a physical computing resource of a data center and routes communication within a subnetwork of the user virtual machine. Router virtual machine generation step of generating a;
An active directory generation step of generating an active directory virtual machine which receives an IP of the sub-network from the router virtual machine and authenticates a user account accessing the user virtual machine based on the assigned sub-network IP; And
A desktop that receives an IP of the sub-network from the router virtual machine and connects a session between the user virtual machine and the user account based on the assigned sub-network IP and manages a virtual desktop service provided by the user virtual machine. A desktop delivery generation step of creating a delivery virtual machine; And
Updating a port forwarding rule of the router virtual machine based on a predefined port of an IP of the sub-network of the desktop delivery virtual machine. How to prepare.
제8항에 있어서,
상기 라우터가상머신생성단계는
상기 서브 네트워크를 포함하는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계;
상기 할당받은 관리용 IP를 기초로 상기 라우터 가상머신을 생성하는 단계;
상기 생성된 라우터 가상머신에 대한 공인 IP 및 서비스 IP 할당을 요청하는 단계; 및
상기 요청에 대한 응답으로 할당받은 공인 IP 및 서비스 IP를 기초로 상기 라우터 가상머신의 초기 설정을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.
9. The method of claim 8,
The router virtual machine creation step
Receiving a management IP through a management network logically separated from a service network including the sub network;
Creating the router virtual machine based on the assigned management IP;
Requesting allocation of public IP and service IP for the created router virtual machine; And
And updating the initial settings of the router virtual machine based on the public IP and the service IP assigned in response to the request.
제8항에 있어서,
상기 액티브디렉토리생성단계는
상기 서브 네트워크를 포함하는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계;
상기 할당받은 관리용 IP를 기초로 상기 액티브 디렉토리 가상머신을 생성하는 단계;
상기 생성된 액티브 디렉토리 가상머신에 대한 서비스 IP 할당을 상기 라우터 가상머신에 요청하는 단계; 및
상기 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 상기 액티브 디렉토리의 초기 설정을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.
9. The method of claim 8,
The active directory generation step
Receiving a management IP through a management network logically separated from a service network including the sub network;
Creating the active directory virtual machine based on the assigned management IP;
Requesting the router virtual machine for service IP allocation for the created Active Directory virtual machine; And
Updating the initial configuration of the Active Directory based on the service IP assigned in response to the request.
제8항에 있어서,
상기 데스크톱딜리버리생성단계는
상기 서브 네트워크를 포함하는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계;
상기 할당받은 관리용 IP를 기초로 상기 데스크톱 딜리버리 가상머신을 생성하는 단계;
상기 생성된 데스크톱 딜리버리 가상머신에 대한 서비스 IP 할당을 상기 라우터 가상머신에 요청하는 단계; 및
상기 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 상기 데스크톱 딜리버리 가상머신의 초기 설정을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.
9. The method of claim 8,
The desktop delivery generation step
Receiving a management IP through a management network logically separated from a service network including the sub network;
Creating the desktop delivery virtual machine based on the assigned management IP;
Requesting the router virtual machine for service IP allocation for the created desktop delivery virtual machine; And
And updating an initial setting of the desktop delivery virtual machine based on the service IP assigned in response to the request.
KR1020120136550A 2012-06-25 2012-11-28 Virtual desktop service system for client that has multiple user accounts KR101544487B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120068174 2012-06-25
KR20120068174 2012-06-25

Publications (2)

Publication Number Publication Date
KR20140018076A true KR20140018076A (en) 2014-02-12
KR101544487B1 KR101544487B1 (en) 2015-08-13

Family

ID=50266401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120136550A KR101544487B1 (en) 2012-06-25 2012-11-28 Virtual desktop service system for client that has multiple user accounts

Country Status (1)

Country Link
KR (1) KR101544487B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101702650B1 (en) 2016-08-04 2017-02-03 주식회사 넷츠 Login control method and apparatus for active directory domain
KR101711131B1 (en) 2016-08-04 2017-02-28 주식회사 넷츠 Provisioning method and apparatus using active directory
KR20200023706A (en) * 2018-08-22 2020-03-06 주식회사 머니브레인 Distributed computing resources sharing system and computing apparatus thereof based on block chain system supporting smart contract
KR102335124B1 (en) 2021-06-25 2021-12-03 안태완 Apparatus for manufacturing fermented feed

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230100304A (en) 2021-12-28 2023-07-05 한국전자통신연구원 Proviosion system, management apparatus, provision method of hybrid virtual service base on virtual desktop

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5482453B2 (en) 2010-05-27 2014-05-07 富士通株式会社 Router, information processing apparatus, and program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101702650B1 (en) 2016-08-04 2017-02-03 주식회사 넷츠 Login control method and apparatus for active directory domain
KR101711131B1 (en) 2016-08-04 2017-02-28 주식회사 넷츠 Provisioning method and apparatus using active directory
KR20200023706A (en) * 2018-08-22 2020-03-06 주식회사 머니브레인 Distributed computing resources sharing system and computing apparatus thereof based on block chain system supporting smart contract
KR102335124B1 (en) 2021-06-25 2021-12-03 안태완 Apparatus for manufacturing fermented feed

Also Published As

Publication number Publication date
KR101544487B1 (en) 2015-08-13

Similar Documents

Publication Publication Date Title
US11418512B2 (en) Method for virtual machine to access physical server in cloud computing system, apparatus, and system
US11252228B2 (en) Multi-tenant multi-session catalogs with machine-level isolation
US8301746B2 (en) Method and system for abstracting non-functional requirements based deployment of virtual machines
Endo et al. A survey on open-source cloud computing solutions
US9152293B2 (en) Server IP addressing in a computing-on-demand system
US8370481B2 (en) Inventory management in a computing-on-demand system
US20140033268A1 (en) Automated network deployment of cloud services into a network
EP3313023A1 (en) Life cycle management method and apparatus
US11196640B2 (en) Releasing and retaining resources for use in a NFV environment
US20120117571A1 (en) Load balancer and firewall self-provisioning system
US20120158806A1 (en) Provisioning network-attached storage
US11201930B2 (en) Scalable message passing architecture in a cloud environment
EP3479233A1 (en) Data plane api in a distributed computing network
US11902329B2 (en) Integration of an orchestration services with a cloud automation services
KR101544487B1 (en) Virtual desktop service system for client that has multiple user accounts
CN116848528A (en) Techniques for automatically configuring minimum cloud service access rights for container applications
US11575770B2 (en) Method for defining network application security based on declarative properties
KR102035071B1 (en) System and method for constructing on-demand virtual cluster
Wang et al. Provide virtual distributed environments for grid computing on demand
KR101493828B1 (en) Method for virtual machine auto-configuration and method for providing virtual machine auto-configuration service
Barkat et al. Open source solutions for building IaaS clouds
KR101529163B1 (en) Registration system and method for virtual desktop service of client that has multiple user accounts
US20230224205A1 (en) Hardware resource management for management appliances running on a shared cluster of hosts
Logan et al. Containers

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
FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 5