This application claims priority to and the benefit of Korean Patent Application No. 10-2010-0105254 filed in the Korean Intellectual Property Office on Oct. 27, 2010, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a software service supporting system and a method, and more particularly, to a software service supporting system and method to a plurality of clients using a software virtualization technology in a server-based computing environment.
2. Description of the Related Art
Recently, in accordance with the development of technologies for manufacturing hardware such as a central processing unit (CPU), a memory, and the like, inexpensive high-performance personal computers (PCs) have rapidly propagated. In addition, the computing capability of the PC has been currently improved to the level of an initial supercomputer. The demand for desktop software (SW) capable of accommodating multi-functional user interfaces and a graphic-intensive work has been increased. Further, graphic hardware technologies have been applied to an existing graphic-intensive work such as 2D/3D, multimedia, as well as have been expansively applied to web browser rendering, flash, Windows operating systems.
A server-based computing environment is a scheme for solving problems such as data security, management cost of a PC, and the like, occurring in a PC-based computing environment. As technologies supporting the server-based computing environment, there are a terminal service based on XenDesktop available from Citrix, VDI available from VMWare, remote desktop protocol (RDP) available from Microsoft, and the like.
However, in the server-based computing, a service executes SW and client PCs only serves as a terminal, such that a load of the server is increased in accordance with the increase of the number of the client. In addition, the server-based computing uses a scheme of transferring result images executed in the server to the client PC, thereby having a limitation in processing a high-performance graphic work such as 3D rendering. Accordingly, it has disadvantages such as the waste of high-specification client PC resources, service limitation according to the load of the server, excessive server purchase cost, slow service performance, and the like.
Further, in the server-based computing, one server supports a plurality of users through a session management technology dependent on OS, and in a desktop service, one server supports a plurality of users through a virtual machine. These technologies have limitations in introduction cost and management of the server due to dependence of the server on OS or a load of the virtual machine.
The present invention has been made in an effort to provide a software supporting system and method capable of executing SW in a server and executing a graphic work in a client, by providing SW-level virtualization of an separation execution SW in order to provide a server-based online software service to a plurality of clients.
An exemplary embodiment of the present invention provides a software supporting system, including: a software execution unit executing requested software in an independent virtual environment for each user; a graphic information extractor extracting graphic information associated with graphic processing from executed software; and a software execution controller controlling a second device to process the extracted graphic information and a first device to process the remaining information other than the extracted graphic information.
The first device may provide the software supporting service and is a software supporting server including the software execution unit, the graphic information extractor, and the software execution controller and the second device is a client terminal communicating with the software supporting server. The software support system may further include a graphic information transmitter transmitting the extracted graphic information to the second device and the second device processes the graphic information received through an embedded graphic information processor.
The software execution unit may include: a setting information storage determination unit determining whether or not the software setting information requested for each user is stored by using the user information; a virtual environment information processor extracting the virtual environment information of the software requested in the setting information if it is determined that the setting information is stored and extracting the virtual environment information based on the requested basic setting of the software if it is determined that the setting information is not stored; and a request software execution unit executing the software requested in the independent virtual environment for each user in consideration of the extracted virtual environment information. When the virtual environment independent from the resources of the software supporting server providing the software supporting service is obtained, the request software execution unit includes an input and output signal processor executing the requested software by processing the input and output signal without generating side effects to other software sharing the resources, when the input and output signal for resources generated by the execution-requested software is processed.
The software supporting system may further include a virtual environment generator included in the software supporting server providing the software supporting service and generating the virtual environment independent from the resources of the server for each user.
Another exemplary embodiment of the present invention provides a software supporting method, including: a software executing step executing requested software in an independent virtual environment for each user; a graphic information extracting step extracting graphic information associated with graphic processing from executed software; and a software execution controlling step controlling a second device to process the extracted graphic information and a first device to process the remaining information other than the extracted graphic information.
The first device may provide the software supporting service and is a software supporting server sequentially implementing the software executing step, the graphic information extracting step, and the software execution controlling step and the second device is a client terminal communicating with the software supporting server, wherein the software execution controlling step may further includes a step of transmitting the extracted graphic information to the second device. The software supporting method may further include a graphic information processing step to allow the second device to process the graphic information received through the embedded graphic information processor.
The software execution step may include: a setting information storage determining step determining whether or not the software setting information requested for each user is stored by using the user information; a virtual environment information processing step extracting the virtual environment information of the software requested in the setting information if it is determined that the setting information is stored and extracting the virtual environment information based on the requested basic setting of the software if it is determined that the setting information is not stored; and a request software executing step executing the software requested in the independent virtual environment for each user in consideration of the extracted virtual environment information. When the virtual environment independent from the resources of the software supporting server providing the software supporting service is obtained, the request software execution step executes the requested software by processing the input and output signal without generating side effects to other software sharing the resources, when the input and output signal for resources generating the requested software is processed.
The software supporting method may further include a virtual environment generating step generating a virtual environment independent from resources of the software resource server providing the software supporting service for each user.
As set forth above, the present invention can obtain the following effect by executing SW in the server and executing the graphic work in a client, by providing the SW-level virtualization of the separation execution SW in order to provide the server-based online SW service to the plurality of clients. First, since the actually driven SW is virtualized under the virtual execution environment, the present invention can accommodate a larger number of users and save the initial service introducing cost. Second, in applications frequently using the graphic unit (GPU) such as the 3D rendering, since the graphic unit of the client is used in the case of the separation execution, the present invention shares the graphic unit to process a larger number of clients at higher speed than the server-based computing. Third, the present invention can display graphics capable of maximally exerting the performance of the client graphic unit as compared to simply displaying the result images already performed by the server. Fourth, the present invention uses the separation execution technology, thereby making it possible to display only the screen of the corresponding separation execution SW.
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, we should note that in giving reference numerals to elements of each drawing, like reference numerals refer to like elements even though like elements are shown in different drawings. Further, in describing the present invention, well-known functions or constructions will not be described in detail since they may unnecessarily obscure the understanding of the present invention. Hereinafter, the exemplary embodiment of the present invention will be described, but it will be understood to those skilled in the art that the spirit and scope of the present invention are not limited thereto and various modifications and changes can be made.
The exemplary embodiment considers a system load when providing a software supporting service to process a general data-intensive work by setting a virtual environment using server resources and then providing a software supporting service in the virtual environment and process a service requiring high performance such as a graphic work using client resources (for example, a graphic processing unit of a client).
The software execution unit 110 executes required software in independent virtual environments for each user. In the exemplary embodiment, the software execution unit 110 is configured to include a setting information storage determination unit 111, a virtual environment information processor 112, and a required software execution unit 113, as shown in
The setting information storage determination unit 111 determines whether or not the setting information of required software is stored for each user using user information. The virtual environment information processor 112 extracts virtual environment information of the required software from the setting information if the setting information is stored, and extracts the virtual environment information based on basic setting of the required software if the setting information is not stored.
The requested software execution unit 113 executes the requested software in independent virtual environments for each user in consideration of the extracted virtual environment information.
When considering the case of obtaining the virtual environment independent on resources of a software supporting server providing the software supporting service, the required software executing unit 113 may include an input/output signal processor 113a. When processing input/output signals for resources which the software required to be executed generates, the input/output signal processor 113a processes the input/output signals not to generate a side effect on other software sharing the resources, thereby executing the required software.
Meanwhile, the exemplary embodiment may further include a setting information storage unit 114 in consideration of the above configuration of the requested software execution unit 110. The setting information storage unit 114 stores setting information of the software including the virtual environment information for executing the software.
The graphic information extractor 120 extracts graphic information associated with graphic processing from the executed software.
The software execution controller 130 controls a second device to process the extracted graphic information and controls a first device to process information except the extracted graphic information.
In the exemplary embodiment, the software execution unit 110, the graphic information extractor 120, and the software execution controller 130 may be provided in the software supporting server supporting the software service. At this time, the first device means the software supporting server, and the second device means a client terminal connected to the server.
The software execution controller 130 may include a graphic information transmitter 131, as shown in
A process processed by the software supporting server is, for example, a data-intensive work, and a process processed by the client terminal is, for example, a graphic-intensive work such as 3D rendering. In this case, the client terminal processes the received graphic information through an embedded graphic information processor.
The software supporting system 100 may further include a virtual environment generator 150 generating a virtual environment used when executing the software. The virtual environment generator 150, which is provided in the software supporting server providing the software supporting service, generates the virtual environments independent on the resource of the software supporting server for each user.
Next, a software supporting system according an exemplary embodiment of the present invention will be described in consideration of actual implementation.
A software supporting system according to an exemplary embodiment of the present invention, which is a system supporting a plurality of users in an online SW service environment, supports virtualization in application program process unit for providing a plurality of SW services to a plurality of client user in providing desktop SW as a service from a server in the online network environment. Hereinafter, a method of providing a server serving a plurality of SW by a plurality of users using a SW virtual execution environment supporting SW-level virtualization in providing a server-based online SW service will be described. In addition, a method of reducing a load concentrated on a server and providing security for user data processed and managed in a client through a SW separation execution method of executing graphic-intensive works such as 3D rendering in the client and processing data-intensive works in the server will be described.
A method of providing a plurality of separation execution SWs to a plurality of users in a sever-based online SW service may be summarized as follows. First, in a first step, the client requests the server to execute the separation execution SW. Then, in a second step, the server recovers previously stored setting information of the SW required to be executed through a user management module, and executes the separation execution SW in virtual execution environments independent on the corresponding server resources using the recovered setting information.
The function is performed by the software execution unit 110 of
The separation execution SW server 300 includes a separation execution SW management unit 320, a first device management unit 330, a first connection management unit 340, etc. The separation execution SW management unit 320 receives a request of a client to manage the execution and ending of the separation execution SW. In
The separation execution SW server 350 includes a separation execution SW management unit 360, a second device management unit 370, a second connection management unit 380, etc. The separation execution SW management unit 360 requests the execution of the separation execution SW of the server. The second device management unit 370 includes a client input extractor 371 and a graphic work display unit 372. The client input extractor 371 extracts the input information such as a keyboard, a mouse, etc. generated from a client. The graphic work display unit 372 processes the graphic work received from the server using client's GPU and displays it on the screen. The second connection management unit 380 includes a client input transmitter 381 and a graphic work receiver 382. The client input transmitter 381 transmits the user input to the server. The graphic work receiver 382 receives the graphic work transmitted from the server.
Meanwhile, the separation execution SW 311 is executed in the server 310, but the execution result and the user interface are displayed to the client 350 by the separation execution SW management unit 360. Therefore, in the execution of the separation execution SW, the graphics processing unit (GPU) of the server is not used and only the graphics processing unit (GPU) of the client is used.
In order for the separation execution server to service the separation execution SW requested by the plurality of users, there is a need to drive the separation execution SW 311 in the virtual execution environment 310 independent from the system resource, not the SW installed in the separation execution server system. The exemplary embodiment can independently apply and execute the SW setting information changing specifications of the user by using the SW setting storage unit 323 and the process management module 322 of the SW management unit 320. The function is performed by the virtual environment information processor 112 of
Referring to
Referring to
The present invention can be applied to the plurality of users in the online network environment when supporting the software service.
The spirit of the present invention has been just exemplified. It will be appreciated by those skilled in the art that various modifications, changes, and substitutions can be made without departing from the essential characteristics of the present invention. Accordingly, the embodiments disclosed in the present invention and the accompanying drawings are used not to limit but to describe the spirit of the present invention. The scope of the present invention is not limited only to the embodiments and the accompanying drawings. The protection scope of the present invention must be analyzed by the appended claims and it should be analyzed that all spirits within a scope equivalent thereto are included in the appended claims of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
10-2010-0105254 | Oct 2010 | KR | national |