Method, apparatus and program for supporting access to console of virtual machine

KR103032271B1Active Publication Date: 2026-10-13KT CLOUD CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
KR1020240154998
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-11-05
Publication Date
2026-10-13
Estimated Expiration
2044-11-05

Smart Images

  • Figure 112024121082666-PAT00001_ABST
    Figure 112024121082666-PAT00001_ABST
Patent Text Reader

Abstract

According to one embodiment of the present disclosure, a computer program stored on a computer-readable storage medium may perform the following methods to support access to a console of a virtual machine (VM). The method may include: receiving a request for access to a console of the virtual machine pre-generated on the cloud platform from a user's device; obtaining a connection address for accessing a console proxy virtual machine that provides access to the console of the virtual machine through the cloud platform; and tuning the connection address and transmitting the tuned connection address to the user's device.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present disclosure relates to a technology that supports access to a virtual machine console, and specifically, to support access to a virtual machine console of a cloud platform from an external network. Background Technology

[0003] A cloud platform is a platform that utilizes internet technology to provide highly scalable IT resources as a service to a large number of customers. Through a cloud platform, users can create virtual machines (VMs) and use them like a personal desktop environment.

[0004] However, the console view feature inherent to cloud platforms has a problem in that the access URL for the virtual machine console is designed to be the internal network IP of the cloud platform server, making it difficult to access the virtual machine console from the external network. Consequently, users attempt to connect to the virtual machine from the external network by additionally using SSH (Secure Shell) or RDP (Remote Desktop Protocol); however, if SSH or RDP connections are impossible, there is a problem in that the user's virtual machine can only be accessed through the cloud service provider.

[0005] These problems make it inconvenient for users to use virtual machines on cloud platforms, and new technologies and methods are required to resolve them. In this regard, Korean Published Patent Application No. 10-2024-0009546 discloses a business management system using a cloud computing-based platform. The problem to be solved

[0007] The present disclosure is conceived based on the background technology described above and aims to provide a method, apparatus, and program for supporting access to a virtual machine console. means of solving the problem

[0009] In order to solve the aforementioned problem, a computer program stored on a computer-readable storage medium according to one embodiment of the present disclosure may perform the following methods to support access to a console for a virtual machine (VM). The method may include: receiving a request for access to a console for the virtual machine pre-generated on a cloud platform from a user's device; obtaining a connection address for accessing a console proxy virtual machine that provides access to the console of the virtual machine through the cloud platform; and tuning the connection address and transmitting the tuned connection address to the user's device.

[0010] Alternatively, the step of tuning the connection address and transmitting the tuned connection address to the user's device may include: generating a console URL (uniform resource locator) including the public internet protocol IP of the console proxy virtual machine and a token for authentication; and transmitting the console URL to the user's device.

[0011] Alternatively, the method may further include the step of establishing a network connection between the user's device and the console proxy virtual machine when, after the step of transmitting the console URL to the user's device, a request for connection to the console proxy virtual machine is received from the user's device via the console URL.

[0012] Alternatively, the method may further include, after the step of network connecting between the user's device and the console proxy virtual machine, the step of network connecting the console proxy virtual machine with a host that provides resources to the virtual machine based on the token included in the console URL; and the step of providing the user's device with access to the console of the virtual machine through a session for the virtual machine running on the host.

[0013] Alternatively, the method may further include, after the step of generating the console URL, the step of encrypting the console URL using a secret key corresponding to the virtual machine; and the step of transmitting the encrypted console URL to the user's device.

[0014] Alternatively, the secret key may be generated when the virtual machine is created on the cloud platform and may be shared between the user's device and a computing device including the cloud platform.

[0015] Alternatively, the secret key may be generated by combining information about the virtual machine, information about a computing device including the cloud platform, and information about the user.

[0016] Alternatively, the information regarding the virtual machine may include at least one of virtual machine identification information, the creation time and specifications of the virtual machine, the information regarding the computing device may include computing device identification information, and the information regarding the user may include at least one of user identification information, age, gender, and name.

[0017] Alternatively, the virtual machine identification information may include a universally unique identifier (UUID) and the IP address of the virtual machine as values ​​distinguishing it from other virtual machines, the computing device identification information may include a production number of the hardware constituting the computing device and the IP address of the computing device as values ​​distinguishing it from the configuration of other devices among the configurations of the computing device, and the user identification information may include an identification number as values ​​distinguishing it from other users.

[0018] Alternatively, the method may further include the step of performing authentication for the user after receiving a request to access the console of the virtual machine.

[0019] Alternatively, the step of performing authentication for the user may include: receiving information about the user from the user's device; determining whether the user and the requester are the same person by comparing the information about the user with the information about the requester who requested the creation of the virtual machine; and, if the user and the requester are not the same person, sending a notification to the user's device rejecting access to the console of the virtual machine.

[0020] Alternatively, the cloud platform may include cloudstack as software that provides virtualized computing resources upon the user's request.

[0021] Alternatively, the above-mentioned CloudStack may be open source software designed to deploy and manage at least one of servers, storage, and networks as an Infrastructure as a Service (IaaS) cloud platform.

[0022] In order to solve the aforementioned problem, a computing device including a cloud platform is disclosed according to one embodiment of the present disclosure. The computing device may include one or more processors; a memory that stores instructions executable on the cloud platform and the one or more processors; and a network unit. The one or more processors may perform the following steps: receiving a request for connection to a console of a virtual machine pre-generated on the cloud platform from a user's device; obtaining a connection address for connecting to a console proxy virtual machine that provides a connection to the console of the virtual machine through the cloud platform; and tuning the connection address and transmitting the tuned connection address to the user's device.

[0023] In order to solve the aforementioned problem, a method for supporting access to a console for a virtual machine (VM), performed on a computing device including a cloud platform according to one embodiment of the present disclosure, is disclosed. The method may include: receiving a request for access to a console for the virtual machine pre-generated on the cloud platform from a user's device; obtaining a connection address for accessing a console proxy virtual machine that provides access to the console of the virtual machine through the cloud platform; and tuning the connection address and transmitting the tuned connection address to the user's device. Effects of the invention

[0025] The present disclosure can support access to a virtual machine via a web browser from an external environment by providing a console URL of the virtual machine in emergency situations where access via SSH (Secure Shell), RDP (Remote Desktop Protocol), etc., is not possible. Accordingly, the present disclosure enables customers to directly check what kind of failure has occurred in the virtual machine without going through a cloud service provider in the event of a virtual machine failure, thereby allowing for flexible response to failure issues. Brief explanation of the drawing

[0027] FIG. 1 is an exemplary diagram of a system for supporting access to a console of a virtual machine according to one embodiment of the present disclosure. FIGS. 2 to 8 are flowcharts illustrating a method for supporting access to a console of a virtual machine according to one embodiment of the present disclosure. FIG. 9 illustrates a brief and general schematic diagram of an exemplary computing environment in which embodiments of the present disclosure may be implemented. Specific details for implementing the invention

[0028] Various embodiments are now described with reference to the drawings. In this specification, various descriptions are provided to provide an understanding of the present disclosure. However, it is evident that these embodiments can be practiced without such specific descriptions.

[0029] As used herein, terms such as “component,” “module,” “system,” etc. refer to computer-related entities, hardware, firmware, software, combinations of software and hardware, or executions of software. For example, a component may be, but is not limited to, a procedure executed on a processor, a processor, an object, an execution thread, a program, and / or a computer. For example, both an application executed on a computer device and the computer device itself may be a component. One or more components may reside within a processor and / or an execution thread. A component may be localized within a single computer. A component may be distributed among two or more computers. Additionally, these components may be executed from various computer-readable media having various data structures stored therein. Components may communicate through local and / or remote processes, for example, according to signals having one or more data packets (e.g., data from a component interacting with another component in a local system or distributed system, and / or data transmitted through signals to other systems and networks such as the Internet).

[0030] Furthermore, the term "or" is intended to mean an implicit "or" rather than an exclusive "or." That is, unless otherwise specified or evident from the context, "X uses A or B" is intended to mean one of the natural implicit substitutions. In other words, if X uses A; if X uses B; or if X uses both A and B, "X uses A or B" may apply to any of these cases. Additionally, the term "and / or" as used herein should be understood to refer to and include all possible combinations of one or more of the enumerated related items.

[0031] Additionally, the terms “comprising” and / or “comprising” should be understood to mean that such features and / or components are present. However, the terms “comprising” and / or “comprising” should be understood not to exclude the presence or addition of one or more other features, components and / or groups thereof. Furthermore, unless otherwise specified or clearly evident from the context to indicate a singular form, the singular in this specification and claims should generally be interpreted to mean “one or more.”

[0032] And, the term “at least one of A or B” should be interpreted to mean “a case including only A,” “a case including only B,” or “a combination of A and B.”

[0033] Those skilled in the art should recognize that the various exemplary logical blocks, configurations, modules, circuits, means, logics, and algorithmic steps described in connection with the embodiments disclosed herein may be implemented in electronic hardware, computer software, or a combination of both. To clearly exemplify the interchangeability of hardware and software, various exemplary components, blocks, configurations, means, logics, modules, circuits, and steps have been generally described above in terms of their functionality. Whether such functionality is implemented in hardware or software depends on the specific application and design constraints imposed on the overall system. Skilled technicians may implement the described functionality in various ways for each specific application. However, such decisions regarding implementation should not be construed as going beyond the scope of this disclosure.

[0034] The description of the presented embodiments is provided to enable those skilled in the art to use or practice the present invention. Various modifications to these embodiments will be apparent to those skilled in the art. The general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present invention is not limited to the embodiments presented herein. The present invention should be interpreted in the broadest possible scope consistent with the principles and novel features presented herein.

[0035] FIG. 1 is an exemplary diagram of a system for supporting access to a console of a virtual machine according to one embodiment of the present disclosure.

[0036] Referring to FIG. 1, a system for supporting access to a console of a virtual machine according to one embodiment of the present disclosure may include a computing device (100), a user device (200), and a network (300).

[0037] In one embodiment, the computing device (100) may be a device that provides and manages cloud services. Specifically, the computing device (100) may include a cloud platform for providing cloud services. The computing device (100) may provide cloud services to a user through the cloud platform and control the cloud platform.

[0038] In one embodiment, a cloud platform may be software that provides virtualized computing resources over the Internet upon the request of a user utilizing the service. Specifically, the form of the cloud platform may be provided in various ways depending on the combination of a cloud service delivery model (e.g., SaaS, PaaS, IaaS) and a deployment model. For example, the cloud platform may include CloudStack.

[0039] In one embodiment, CloudStack may be an Infrastructure as a Service (IaaS) cloud platform and open source software designed to deploy and manage at least one of servers, storage, and networks.

[0040] In one embodiment, a user's service request (e.g., a request to access a console for a virtual machine) may be received via an Application Programming Interface (API) of the cloud platform. The cloud platform may provide a function corresponding to the received service request. The function of the cloud platform may include a function for managing virtual machines, a function for managing networks, a function for managing storage, a function for managing users, and the like.

[0041] In one embodiment, the computing device (100) may include one or more processors, memory, and network units.

[0042] In one embodiment, one or more processors may be composed of one or more cores. The processor may control the overall operation of the computing device. The processor may read a computer program stored in memory and perform an operation to support the connection of a console to a virtual machine according to one embodiment of the present disclosure.

[0043] In one embodiment, the memory may store information generated by a processor, information received from an external source, etc. For example, the memory may store a cloud platform. The memory may include any form of recording medium well known in the art to which the present invention belongs.

[0044] In one embodiment, the network unit may include any type of wired or wireless communication network capable of transmitting and receiving any type of data, information, signals, etc. For example, the network unit may communicate with the user's device (200) through the network (300).

[0045] In one embodiment, the user's device (200) may be a device that receives cloud services provided by the computing device (100). The user's device (200) may send a request to the computing device (100) to access a console for a virtual machine pre-created on a cloud platform. Specifically, the user's device (200) may send a request to the computing device (100) to access a console for a virtual machine through a portal corresponding to the cloud platform.

[0046] In one embodiment, the network (300) may include any wired or wireless communication network capable of transmitting and receiving any type of data and signals. Specifically, the network (300) may include a wired or wireless communication network capable of transmitting and receiving data and signals between a computing device (100) and a user's device (200).

[0048] FIGS. 2 through 8 are flowcharts illustrating a method for supporting access to a console of a virtual machine according to one embodiment of the present disclosure. The steps illustrated in FIGS. 2 through 8 are exemplary steps. Accordingly, it will be apparent to those skilled in the art that some of the steps in FIGS. 2 through 8 may be omitted or additional steps may exist without departing from the scope of the present disclosure. The flowcharts illustrated in FIGS. 2 through 8 may be performed, for example, by a computing device (100).

[0049] Referring to FIG. 2, a computing device (100) may receive a request to access a console for a virtual machine pre-created on a cloud platform from a user's device (200) (S100). For example, the computing device (100) may receive a request to access a console for a virtual machine from the user's device (200) through a portal corresponding to the cloud platform. In one embodiment, the console for the virtual machine may be an interface that can access and manage the virtual machine. Accordingly, when the user's device (200) accesses the console for the virtual machine, it may monitor the status of the virtual machine, change settings, or enter commands.

[0050] The computing device (100) can perform a process to check whether the user's device (200) has access rights to the virtual machine.

[0051] Specifically, referring to FIG. 3, the computing device (100) can perform authentication of a user (S110) after receiving a request to connect to a console for a virtual machine (S100).

[0052] Specifically, referring to FIG. 4, the computing device (100) can receive information about the user from the user's device (200) (S111). For example, the computing device (100) may request at least one of user identification information (e.g., user ID, etc.), age, gender, and name from the user's device (200) and receive it from the user's device (200).

[0053] The computing device (100) can determine whether the user and the requester are the same person by comparing information about the user with information about the requester who requested the creation of the virtual machine (S112). Information about the requester who requested the creation of the virtual machine may be created and stored in advance when the virtual machine is created. Information about the requester may include at least one of the requester's unique value (e.g., requester's ID), age, gender, and name. The computing device (100) can determine that the user and the requester are the same person if at least one or more of the information about the user and the information about the requester are identical. The computing device (100) can determine that the user and the requester are not the same person if at least one or more of the information about the user and the information about the requester are not identical.

[0054] The computing device (100) can perform different processes depending on whether the user and the requester are the same person or not. Specifically, referring to FIG. 5, after the step (S112) of determining whether the user and the requester are the same person, if the user and the requester are not the same person, the computing device (100) can send a notification to the user's device rejecting access to the console of the virtual machine (S113).

[0055] If the computing device (100) is the same person as the user and the requester, it can perform the step (S200) described below.

[0056] Referring again to FIG. 2, the computing device (100) can obtain a connection address for accessing a console proxy virtual machine that provides access to the console of a virtual machine through a cloud platform (S200). In one embodiment, the computing device (100) may obtain a connection address through a CS add-on. A CS add-on may refer to a module, plugin, etc. added to extend or improve the basic functions of CloudStack. For example, a CS add-on may include a module, plugin, etc. that manages the entire CloudStack.

[0057] In one embodiment, the console proxy virtual machine may be a system virtual machine used for cloud operations in a cloud stack included in a cloud platform. The console proxy virtual machine may provide a console viewer through a web UI (User Interface).

[0058] The computing device (100) can tune the connection address and transmit the tuned connection address to the user's device (200) (S300).

[0059] Specifically, referring to FIG. 6, the computing device (100) can generate a console URL (uniform resource locator) that includes a public internet protocol IP of a console proxy virtual machine and a token for authentication (S310). For example, the computing device (100) can generate a console URL that can be redirected to a user's browser by appending a token to the public IP. Since the console URL uses a public IP, it can be used in an external network environment. The computing device (100) can extract the console URL and return it as the response value of an API.

[0060] In one embodiment, the computing device (100) may provide a console URL to the user's device (200) even if it has not performed authentication for the user.

[0061] Specifically, referring to FIG. 7, the computing device (100) can encrypt the console URL using a secret key corresponding to the virtual machine after the step of generating the console URL (S310) (S311).

[0062] In one embodiment, the secret key may be generated when a virtual machine is created on a cloud platform. The secret key may be shared between the user's device (200) and the computing device (100). For example, the secret key may be stored in the computing device (100) and the user's device (200), respectively.

[0063] In one embodiment, a secret key can be generated by combining information about a virtual machine, information about a computing device, and information about a user.

[0064] In one embodiment, information about a virtual machine may include at least one of virtual machine identification information, the creation time of the virtual machine, and specifications. The virtual machine identification information may be a value that distinguishes it from other virtual machines. For example, the virtual machine identification information may include a UUID (universally unique identifier), the IP address of the virtual machine, etc. The specifications of the virtual machine may include CPU information, memory information, storage information, operating system information, etc.

[0065] In one embodiment, information regarding a computing device (100) may include computing device identification information. The computing device identification information may be a value that is distinct from the configuration of other devices among the configurations of the computing device (100). For example, the computing device identification information may include the production number of the hardware constituting the computing device (100), the IP address of the computing device (100), etc.

[0066] In one embodiment, information about a user may include at least one of user identification information, age, gender, and name. User identification information may be a value that distinguishes it from other users. For example, user identification information may include an identification number.

[0067] The computing device (100) can transmit an encrypted console URL to the user's device (200) (S312). The user's device (200) can decrypt the encrypted console URL using a secret key shared with the computing device (100). The user's device (200) can access the virtual machine through a web browser using the decrypted console URL.

[0068] Referring again to FIG. 6, the computing device (100) can transmit a console URL to the user's device (200) (S320).

[0069] The computing device (100) receives a request for access to a console proxy virtual machine via a console URL from a user's device (200) and can provide the user's device (200) with access to a console for the virtual machine.

[0070] Specifically, referring to FIG. 8, after the step (S320) of transmitting a console URL to a user's device (200), if the computing device (100) receives a request for connection to a console proxy virtual machine via the console URL from the user's device (200), it can establish a network connection between the user's device (200) and the console proxy virtual machine (S321).

[0071] The computing device (100) can network connect a host that provides resources to a virtual machine based on a token included in a console URL and a console proxy virtual machine (S322).

[0072] In one embodiment, the computing device (100) can establish a network connection between a host corresponding to a token included in a console URL and a console proxy virtual machine. In one embodiment, the console proxy machine receives a connection request through a console URL and, in response to the connection request, establishes a network connection with a host corresponding to a token included in the console URL. In one embodiment, the computing device (100) receives a connection request through a console URL via a console proxy machine and establishes a network connection with a host corresponding to a token included in the console URL.

[0073] In one embodiment, the host is configured with hypervisor software and can provide resources to virtual machines through the hypervisor software. The hypervisor software may be virtualization software that enables the creation and management of virtual machines on a physical server. For example, the hypervisor may include XenServer, Kernel-based Virtual Machine, VMware, etc.

[0074] In one embodiment, the network connection between the host and the console proxy virtual machine may be a Virtual Networking Computing (VNC) connection. VNC may be a virtual network computing technology capable of remote control in a Graphic User Interface (GUI) environment.

[0075] The computing device (100) can provide access to the console of the virtual machine to the user's device through a session to the virtual machine running on the host (S323).

[0076] In one embodiment, the console proxy virtual machine can proxy the response of the user's virtual machine to the user. The user's device (200) can control the user's virtual machine through the console proxy virtual machine.

[0077] FIG. 9 illustrates a brief and general schematic diagram of an exemplary computing environment in which embodiments of the present disclosure may be implemented.

[0078] Although it has been stated that the present disclosure can generally be implemented by a computer device (e.g., computing device, device, etc.), those skilled in the art will be well aware that the present disclosure can be implemented by combining computer-executable instructions and / or other program modules that can be executed on one or more computers and / or as a combination of hardware and software.

[0079] Generally, a program module includes routines, programs, components, data structures, etc., that perform a specific task or implement a specific abstract data type. Furthermore, those skilled in the art will be well aware that the method of the present disclosure may be implemented in other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computer devices, microprocessor-based or programmable consumer electronics, etc. (each of which may be connected to and operated with one or more associated devices).

[0080] The embodiments described in this disclosure may also be implemented in a distributed computing environment in which tasks are performed by remote processing devices connected via a communication network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

[0081] Computers typically include various computer-readable media. Any medium accessible by a computer may be a computer-readable medium, and such computer-readable media include volatile and non-volatile media, transitory and non-transitory media, and removable and non-removable media. By example, but not limiting, computer-readable media may include computer-readable storage media and computer-readable transmission media. Computer-readable storage media include volatile and non-volatile media, transitory and non-transitory media, and removable and non-removable media implemented by any method or technique for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, DVD (digital video disk) or other optical disk storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, or any other media that can be accessed by a computer and used to store desired information.

[0082] Computer-readable transmission media typically include all information transmission media that implement computer-readable instructions, data structures, program modules, or other data, etc., on a modulated data signal, such as a carrier wave or other transport mechanism. The term modulated data signal means a signal in which one or more of the characteristics of the signal are set or modified to encode information within the signal. By example, not limiting, computer-readable transmission media include wired media, such as wired networks or direct-wired connections, and wireless media, such as acoustic, RF, infrared, and other wireless media. Any combination of the media described above is also considered to be within the scope of computer-readable transmission media.

[0083] An exemplary environment for implementing various aspects of the present disclosure, including a computer (1102), is shown, wherein the computer (1102) includes a processing unit (1104), system memory (1106), and a system bus (1108). The system bus (1108) connects system components, including system memory (1106) (but not limited thereto), to the processing unit (1104). The processing unit (1104) may be any processor among various commercial processors. Dual processors and other multiprocessor architectures may also be used as the processing unit (1104).

[0084] The system bus (1108) may be any of several types of bus structures that can be additionally interconnected to a local bus using any of the memory bus, peripheral bus, and various commercial bus architectures. System memory (1106) includes read-only memory (ROM) (1110) and random access memory (RAM) (1112). The basic input / output system (BIOS) is stored in non-volatile memory (1110), such as ROM, EPROM, EEPROM, etc., and this BIOS includes basic routines that help transfer information between components within the computer (1102) at times such as during startup. The RAM (1112) may also include high-speed RAM, such as static RAM, for caching data.

[0085] The computer (1102) also includes an internal hard disk drive (HDD) (1114) (e.g., EIDE, SATA)—this internal hard disk drive (1114) may also be configured for external use within a suitable chassis (not shown)—a magnetic floppy disk drive (FDD) (1116) (e.g., for reading from or writing to a removable diskette (1118)), and an optical disk drive (1120) (e.g., for reading from a CD-ROM disk (1122) or reading from or writing to other high-capacity optical media such as a DVD). The hard disk drive (1114), the magnetic disk drive (1116), and the optical disk drive (1120) may each be connected to the system bus (1108) by a hard disk drive interface (1124), a magnetic disk drive interface (1126), and an optical drive interface (1128). The interface (1124) for implementing an external drive includes at least one or both of USB (Universal Serial Bus) and IEEE 1394 interface technologies.

[0086] These drives and associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, etc. In the case of a computer (1102), the drives and media correspond to storing any data in a suitable digital format. Although the description of computer-readable media above refers to HDDs, removable magnetic disks, and removable optical media such as CDs or DVDs, those skilled in the art will know that other types of computer-readable media, such as zip drives, magnetic cassettes, flash memory cards, cartridges, etc., may also be used in exemplary operating environments and that any of these media may contain computer-executable instructions for performing the methods of the present disclosure.

[0087] A number of program modules, including an operating system (1130), one or more application programs (1132), other program modules (1134), and program data (1136), may be stored in the drive and RAM (1112). All or part of the operating system, application, module and / or data may also be cached in RAM (1112). It will be well known that the present disclosure may be implemented in various commercially available operating systems or combinations of operating systems.

[0088] The user can input commands and information into the computer (1102) through one or more wired / wireless input devices, such as a pointing device like a keyboard (1138) and a mouse (1140). Other input devices (not shown) may include a microphone, an IR remote control, a joystick, a game pad, a stylus pen, a touch screen, etc. These and other input devices are often connected to the processing unit (1104) via an input device interface (1142) connected to the system bus (1108), but may also be connected via other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.

[0089] A monitor (1144) or other type of display device is also connected to the system bus (1108) via an interface such as a video adapter (1146). In addition to the monitor (1144), the computer generally includes other peripheral output devices (not shown), such as speakers, a printer, and so on.

[0090] The computer (1102) may operate in a networked environment using a logical connection to one or more remote computers, such as remote computer(s) (1148), via wired and / or wireless communication. The remote computer(s) (1148) may be a workstation, a computing device computer, a router, a personal computer, a portable computer, a microprocessor-based entertainment device, a peer device, or other conventional network node, and generally include many or all of the components described for the computer (1102), but for brevity, only the memory storage device (1150) is illustrated. The illustrated logical connection includes a wired / wireless connection to a local area network (LAN) (1152) and / or a larger network, e.g., a wide area network (WAN) (1154). Such LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to a global computer network, e.g., the Internet.

[0091] When used in a LAN networking environment, the computer (1102) is connected to a local network (1152) via a wired and / or wireless communication network interface or adapter (1156). The adapter (1156) may facilitate wired or wireless communication to the LAN (1152), and the LAN (1152) may also include a wireless access point installed therein to communicate with the wireless adapter (1156). When used in a WAN networking environment, the computer (1102) may include a modem (1158), be connected to a communication computing device on the WAN (1154), or have other means to establish communication through the WAN (1154), such as through the Internet. The modem (1158), which may be an internal or external and a wired or wireless device, is connected to the system bus (1108) via a serial port interface (1142). In a networked environment, the program modules described for the computer (1102) or parts thereof may be stored in a remote memory / storage device (1150). It will be well known that the illustrated network connection is exemplary and that other means of establishing a communication link between computers may be used.

[0092] The computer (1102) operates to communicate with any wireless device or object that is deployed and operated via wireless communication, for example, a printer, scanner, desktop and / or portable computer, PDA (portable data assistant), communication satellite, any equipment or place associated with a wireless detectable tag, and a telephone. This includes at least Wi-Fi and Bluetooth wireless technologies. Accordingly, the communication may be a predefined structure as in a conventional network, or simply ad hoc communication between at least two devices.

[0093] Wi-Fi (Wireless Fidelity) enables connectivity to the Internet and other sources without wires. Wi-Fi is a wireless technology, similar to a cell phone, that allows devices, such as computers, to transmit and receive data indoors and outdoors—that is, anywhere within the coverage area of ​​a base station. Wi-Fi networks use a wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, and high-speed wireless connections. Wi-Fi can be used to connect computers to each other, to the Internet, and to wired networks (using IEEE 802.3 or Ethernet). Wi-Fi networks can operate in unlicensed 2.4 and 5 GHz wireless bands, for example, at data rates of 11 Mbps (802.11a) or 54 Mbps (802.11b), or in products that include both bands (dual band).

[0094] Those skilled in the art of the present disclosure will understand that information and signals may be represented using any various different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced in the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

[0095] Those skilled in the art will understand that the various exemplary logic blocks, modules, processors, means, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented by electronic hardware, various forms of programs or design code (referred to herein as software for convenience), or a combination of all such. To clearly illustrate this interoperability between hardware and software, various exemplary components, blocks, modules, circuits, and steps have been generally described above in relation to their functions. Whether such functions are implemented as hardware or software depends on the design constraints imposed on the specific application and the overall system. Those skilled in the art may implement the functions described in various ways for each specific application, but such implementation decisions should not be interpreted as being outside the scope of this disclosure.

[0096] The various embodiments presented herein may be implemented as methods, devices, or articles manufactured using standard programming and / or engineering techniques. The term "article manufactured" includes a computer program, a carrier, or a medium accessible from any computer-readable storage device. For example, computer-readable storage media include, but are not limited to, magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical discs (e.g., CDs, DVDs, etc.), smart cards, and flash memory devices (e.g., EEPROMs, cards, sticks, key drives, etc.). Additionally, the various storage media presented herein include one or more devices and / or other machine-readable media for storing information.

[0097] It should be understood that the specific order or hierarchy of steps in the presented processes is an example of exemplary approaches. It should be understood that the specific order or hierarchy of steps in the processes may be rearranged within the scope of this disclosure based on design priorities. The appended method claims provide elements of various steps in a sample order, but do not imply being limited to the specific order or hierarchy presented.

[0098] Description of the presented embodiments is provided so that a person skilled in the art may use or practice the present disclosure. Various modifications to these embodiments will be apparent to a person skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments presented herein, but should be interpreted in the broadest possible scope consistent with the principles and novel features presented herein.

Claims

Claim 1 A computer program stored on a computer-readable storage medium, wherein the computer program performs the following methods to support access to a console for a virtual machine (VM), the method comprising: receiving a request for access to a console for the virtual machine pre-generated on a cloud platform from a user's device; obtaining a connection address for accessing a console proxy virtual machine that provides access to the console of the virtual machine through the cloud platform; and tuning the connection address and transmitting the tuned connection address to the user's device; wherein the step of tuning the connection address and transmitting the tuned connection address to the user's device comprises: generating a console URL (uniform resource locator) including a public internet protocol (IP) of the console proxy virtual machine and a token for authentication; and encrypting the console URL using a secret key corresponding to the virtual machine. A computer program stored on a computer-readable storage medium, comprising the step of transmitting the encrypted console URL to the user's device; wherein the secret key is generated by combining information about the virtual machine, information about a computing device including the cloud platform, and information about the user. Claim 2 delete Claim 3 A computer program stored on a computer-readable storage medium, further comprising: a step of establishing a network connection between the user's device and the console proxy virtual machine when, after the step of transmitting the encrypted console URL to the user's device, a request for connection to the console proxy virtual machine is received from the user's device via the console URL; after the step of transmitting the encrypted console URL to the user's device. Claim 4 A computer program stored on a computer-readable storage medium, further comprising: a step of network connecting the console proxy virtual machine with a host that provides resources to the virtual machine based on the token included in the console URL, after the step of network connecting the user's device and the console proxy virtual machine in paragraph 3; and a step of providing the user's device with access to the console of the virtual machine through a session for the virtual machine running on the host. Claim 5 delete Claim 6 In claim 1, the secret key is a computer program stored on a computer-readable storage medium, which is generated when the virtual machine is created on the cloud platform and is shared between the user's device and a computing device including the cloud platform. Claim 7 delete Claim 8 A computer program stored on a computer-readable storage medium, wherein, in claim 1, information about the virtual machine includes at least one of virtual machine identification information, the creation time and specifications of the virtual machine, information about the computing device includes computing device identification information, and information about the user includes at least one of user identification information, age, gender, and name. Claim 9 A computer program stored on a computer-readable storage medium, wherein, in paragraph 8, the virtual machine identification information includes a UUID (universally unique identifier) ​​and the IP address of the virtual machine as a value distinguishable from other virtual machines, the computing device identification information includes a production number of the hardware constituting the computing device and the IP address of the computing device as a value distinguishable from the configuration of other devices among the configurations of the computing device, and the user identification information includes an identification number as a value distinguishable from other users. Claim 10 A computer program stored on a computer-readable storage medium, further comprising: a step of performing authentication for the user after receiving a request for access to the console of the virtual machine in claim 1. Claim 11 A computer program stored on a computer-readable storage medium, wherein, in claim 10, the step of performing authentication for the user comprises: receiving information about the user from the user’s device; determining whether the user and the requester are the same person by comparing the information about the user with the information about the requester who requested the creation of the virtual machine; and, if the user and the requester are not the same person, sending a notification to the user’s device refusing access to the console of the virtual machine. Claim 12 In claim 1, the cloud platform is software that provides virtualized computing resources upon the request of the user, and is a computer program stored on a computer-readable storage medium, including cloudstack. Claim 13 In paragraph 12, the cloud stack is a computer program stored on a computer-readable storage medium, which is open source software designed to deploy and manage at least one of servers, storage, and networks as an Infrastructure as a Service (IaaS) cloud platform. Claim 14 A computing device including a cloud platform, comprising: one or more processors; a memory storing instructions executable on the cloud platform and the one or more processors; and a network unit; wherein the one or more processors perform the following steps: receiving a request for access to a console of a virtual machine pre-generated on the cloud platform from a user's device; obtaining a connection address for accessing a console proxy virtual machine that provides access to the console of the virtual machine through the cloud platform; and tuning the connection address and transmitting the tuned connection address to the user's device; wherein the step of tuning the connection address and transmitting the tuned connection address to the user's device includes: generating a console URL (uniform resource locator) including a public internet protocol (IP) of the console proxy virtual machine and a token for authentication; and encrypting the console URL using a secret key corresponding to the virtual machine. A computing device comprising the process of transmitting the encrypted console URL to the user's device, wherein the secret key is generated by combining information about the virtual machine, information about the computing device including the cloud platform, and information about the user. Claim 15 A method for supporting access to a console for a virtual machine (VM) performed on a computing device including a cloud platform, comprising: receiving a request for access to a console for the virtual machine pre-generated on the cloud platform from a user's device; obtaining an access address for accessing a console proxy virtual machine that provides access to the console of the virtual machine through the cloud platform; and tuning the access address and transmitting the tuned access address to the user's device; wherein the step of tuning the access address and transmitting the tuned access address to the user's device comprises: generating a console URL (uniform resource locator) including a public internet protocol (IP) of the console proxy virtual machine and a token for authentication; encrypting the console URL using a secret key corresponding to the virtual machine; and transmitting the encrypted console URL to the user's device; wherein the secret key is generated by combining information about the virtual machine, information about the computing device including the cloud platform, and information about the user.

Citation Information

Patent Citations

  • Method and device for accessing cloud host console, equipment and storage medium

    CN111683091A

  • Method and device for hiding IP and port number of noVNC server and electronic equipment

    CN111741091A

  • Persistent key access to a resources in a collection

    EP2724280B1

  • Log management system and method for multi-private cloud platform

    KR1020230119535A

  • Remote access control of VM console located in cloud from on-premises computer device

    US20210224092A1