WO2013149473A1 - 虚拟桌面的实现方法、装置和系统 - Google Patents

虚拟桌面的实现方法、装置和系统 Download PDF

Info

Publication number
WO2013149473A1
WO2013149473A1 PCT/CN2012/085905 CN2012085905W WO2013149473A1 WO 2013149473 A1 WO2013149473 A1 WO 2013149473A1 CN 2012085905 W CN2012085905 W CN 2012085905W WO 2013149473 A1 WO2013149473 A1 WO 2013149473A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
operating system
folder
accessed
access request
Prior art date
Application number
PCT/CN2012/085905
Other languages
English (en)
French (fr)
Inventor
王鹏
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP12873618.8A priority Critical patent/EP2811404B1/en
Publication of WO2013149473A1 publication Critical patent/WO2013149473A1/zh
Priority to US14/476,113 priority patent/US9246992B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Definitions

  • the present invention relates to the field of computer and communication technologies, and in particular, to a method, an apparatus, and a system for implementing a virtual desktop.
  • the implementation method may be: running the user desktop program, accessing the operating system file during the running of the application, and performing arithmetic processing in the running of the application, etc., all by using the virtualized computing resources and the storage resources on the virtual machine;
  • the user side can access the remote virtual machine through an access device such as a thin client or a software client, and the running result of the desktop program and the application on the virtual machine is transmitted to the user side through the network for display.
  • the above virtual desktop implementation method has the following technical defects:
  • the desktop program and the application launched by the desktop program are all running in the remote virtual machine, and the operations involved in the running process, such as accessing the operating system system files, are all virtual.
  • the machine side executes, and the running result is transmitted to the user side through the network, so that the virtual desktop runs slower.
  • the present invention provides a method, apparatus, and system for implementing a virtual desktop, the purpose of which is to improve the running speed of the virtual desktop.
  • a first aspect of the present invention provides a method for implementing a virtual desktop, including: After the application in the local host is started by the predetermined user desktop program, the monitoring program intercepts the file access request of the application, and acquires file operation information of the file access request, where the file operation information includes the file to be accessed. a storage location and an operation type, the operation type including reading and writing;
  • the monitoring program determines a file type of the file to be accessed according to a storage location of the file to be accessed, where the file type includes a system file of the operating system and a program file of the application program;
  • the monitoring program processes the file access request according to the file type, thereby implementing a virtual desktop, including:
  • the file access request is sent to the file to be accessed in the local virtual operating system folder, and the file structure in the virtual operating system folder is the same as the file structure in the host operating system folder. And the folder where the storage location is different;
  • the file access request is sent to the file to be accessed in the program folder in the local or remote device.
  • Another aspect of the present invention provides an apparatus for implementing a virtual desktop, including:
  • a monitoring intercepting module configured to intercept a file access request of the application after the application is started by a predetermined user desktop program
  • a determining module configured to acquire file operation information of the file access request intercepted by the monitoring intercepting module, where the file operation information includes a storage location and an operation type of the file to be accessed, and the operation type includes reading and writing;
  • the storage location of the file determines the file type of the file to be accessed, and the file type includes a system file of the operating system and a program file of the application;
  • a processing module configured to process the file access request according to the file type, thereby implementing a virtual desktop, specifically:
  • a first processing unit configured to: if the file type is a system file, send the file access request to a file to be accessed in a local virtual operating system folder, a file structure in the virtual operating system folder, and a host operating system
  • the files in the folder have the same structure and the folder is stored in a different location;
  • a second processing unit configured to: if the file type is a program file, send the file access request to a file to be accessed in a program folder in a local or remote device.
  • Still another aspect of the present invention provides a virtual desktop implementation system including a host and a remote device, a virtual operating system folder, and a virtual desktop implementation device of the present invention integrated in the host.
  • the implementation of the virtual desktop provided by the embodiment of the present invention obtains file operation information of the application by using a monitoring program, and controls the application to perform file access according to the file operation information, for example, accessing a local virtual operating system.
  • FIG. 1 is a schematic diagram of application of an embodiment of a method for implementing a virtual desktop according to the present invention
  • FIG. 2 is a schematic flowchart of an embodiment of a method for implementing a virtual desktop according to the present invention
  • FIG. 3 is a schematic structural diagram of an embodiment of a virtual desktop implementation apparatus according to the present invention. detailed description
  • FIG. 1 is a schematic diagram of an application of a virtual desktop implementation method according to an embodiment of the present invention.
  • FIG. 2 is a schematic flowchart of a method for implementing a virtual desktop according to an embodiment of the present invention, and the implementation method of the virtual desktop according to the embodiment is performed in conjunction with FIG. 1 and FIG. Description.
  • the implementation method of the virtual desktop is performed by a virtual desktop implementation system, where the implementation system may include a host and a remote device, where the host runs a predetermined user desktop program, a monitoring program, The application; wherein the predetermined user desktop program is not shown in Figure 1.
  • the implementation of the virtual desktop mainly refers to first starting the predetermined user desktop program (the desktop program is different from the desktop program of the host operating system), and then launching other applications through the predetermined user desktop program, by monitoring
  • the program is responsible for controlling file operations in the application's operation.
  • the detailed implementation method is described in Figure 2 below:
  • the implementation method may include:
  • a predetermined user desktop program in a local host operating system.
  • the user desktop program itself is also an application for providing a user interface to the user, thereby implementing an interface between the user and the operating system.
  • Each user desktop program has a corresponding storage space, in which desktop environment information such as desktop layout parameters and background colors are stored.
  • the process corresponding to the generated user desktop program reads the above desktop environment information, and the like is similar to a common computer host desktop or a mobile phone interface, for example, when the local refers to a computer, the user The desktop is the desktop of the computer.
  • the desktop of the user is the desktop of the mobile terminal, such as the desktop of the mobile phone.
  • the interface formed after the user desktop program is started is referred to as a desktop.
  • the user desktop program in this embodiment may be stored in a mobile storage device or a local storage device, where the mobile storage device may be, for example, a USB flash drive, a mobile hard disk, or a secure digital card (Secure Digital Memory). Card, referred to as: SD card) and so on.
  • the mobile storage device may be, for example, a USB flash drive, a mobile hard disk, or a secure digital card (Secure Digital Memory). Card, referred to as: SD card) and so on.
  • SD card Secure Digital Memory
  • Plug and play the use of virtual desktop For example: For example, deploy the user desktop program on the USB flash drive, insert the USB flash drive into the local computer host, and then start the user desktop program to form a virtual desktop to replace the original computer of the host.
  • Desktop deploying the virtual desktop on the SD card, the user can start the virtual desktop on the SD card to replace the original desktop on the mobile phone.
  • the startup process of the user desktop program is as follows: Implemented by a multi-desktop mechanism supported by the local host operating system; for example, the U disk stores a user desktop program, and also stores a monitoring program (also referred to as a virtualization engine).
  • the host operating system detects whether the monitoring program is stored in the USB disk. If it is detected, the host operating system automatically runs the monitoring program; after the monitoring program runs, it will be based on the preset configuration item.
  • the host operating system responsible for reading and starting the user desktop program in the U disk, forming a virtual desktop in the form of the interface that is usually seen, and replacing the virtual desktop with the local host desktop.
  • the host operating system creates a workstation for the virtual desktop and injects the dynamic library of the monitor into the explorer process of the workstation, so that the monitor can monitor the file operations of the application launched through the virtual desktop.
  • Information please refer to the API hook technology for details;). It is because the operating system supports multiple tables.
  • the virtual desktop in this embodiment may be implemented based on one of the specified user desktop programs, for example, stored on the mobile storage device.
  • the first user desktop program, the subsequent monitor program only intercepts and processes the file access request generated by the application installed or started based on the first user desktop program, without affecting other user desktop programs, and other user desktop programs still follow the host operating system original There are mechanisms to work.
  • the monitoring program intercepts a file access request of an application that is started by the user desktop program, and acquires file operation information of the file access request.
  • the monitoring program can monitor subsequent file access requests generated by the virtual desktop to start or install the application.
  • the application described here refers to an application such as word2003, execl2003, Kingsoft, etc. of the Microsoft office series.
  • the installation package of the application is run (the installation package may be pre-stored in a mobile storage device such as a USB flash drive, and of course, may also be stored elsewhere, such as a local host storage device.
  • a file access request is generated; or the user clicks the icon corresponding to the installed application through the virtual desktop (shortcut) After the icon), the application's worker process will read the data in some files in the application's program folder, and a file access request will also be generated.
  • file I/O file access request
  • the monitor intercepts the file I/O of the application and obtains the file carried in the I/O.
  • Operation information includes a storage location (ie, a storage path) of the file to be accessed and an operation type for the file; the operation type includes reading or writing, and the type of the file to be accessed includes an operating system.
  • the system file of the operating system refers to all files related to operating system operation, and file data such as a registry; the program file refers to an application installation process.
  • Related files in the file, the running file refers to a file that can be created, opened, or tampered with by the application. For example: Take the Microsoft office series application as an example, the office will access the system files of the operating system (for example, the files in the operating system folder "C: ⁇ WINDOWS" in the system disk C disk) at startup.
  • Execute corresponding operation information such as reading and writing of files; access to the application program file, which refers to the file generated when the office is installed (for example, the folder corresponding to the application "C: ⁇ Program Files ⁇ Microsoft The file in Office”; also produces access to the running file, which refers to the file generated by the office, for example, a document written with the word in the office (for example, the suffix is named ".doc") file).
  • not all applications access the above three types of files when they are installed or started.
  • the Microsoft Office series applications access the above three types of files during installation and startup, but the Kingsoft application is installed. And when booting, only system files and program files are accessed, and no run files are generated or involved.
  • the monitoring program processes the file I/O according to the file operation information.
  • the monitoring program controls the application to perform file access according to the file operation information obtained in 202, and redirects the access I/O of the application.
  • the monitoring program can know, according to the storage location of the file in the file operation information, whether the application program is to access the system file, the program file, or the running file, that is, the monitoring program determines the file of the file to be accessed according to the storage location of the file to be accessed. Types of.
  • the monitoring program pre-stores the storage path of the system folder and the program folder (the storage path may be pre-specified or recorded during the application installation process); intercepted to the file I/O and obtained the file operation information After the storage location, it is determined whether the storage location is in the storage path of the system folder or the program folder. If it is in the storage path of the system folder, the file to be accessed is a system file; if the storage path in the program folder Next, the file to be accessed is a system file; otherwise, the description is a running file.
  • the file I/O of the application is to access the system file of the operating system, whether the operation type is read or write firstly, whether the system file to be accessed exists in the virtual operating system folder is first detected.
  • the file structure in the virtual operating system folder is the same as the file structure in the host operating system folder, and the storage location of the folder is different, for example, the host operating system file.
  • the storage location of the folder is C: ⁇ WINDOWS, and the storage location of the virtual operating system folder is F: W- WINDOWS composition
  • the monitoring program performs different processing according to the operation information of the file I/O:
  • the monitor obtains the system file to be accessed by the application from the system folder of the local host operating system, and copies (ie, copies) the system file into the virtual operating system folder.
  • Redirecting the application's file I/O to the virtual operating system folder causes the application to write to the system files in the virtual operating system folder.
  • the file structure in the virtual operating system folder is the same as the file structure in the host operating system folder, and after the user desktop program in this embodiment is started, the monitoring program can operate the virtual operating system file and the host operating system.
  • the system files of the system are logically merged, that is, the file path structure is merged, so that the application seems to have only one operating system locally, and only one system file of the operating system.
  • the storage locations of the two are different.
  • the system files in the virtual operating system folder are stored on the mobile storage device, and the storage locations of the system files of the host operating system are isolated from each other. And the specific file access is controlled by the monitoring program.
  • the above processing for system file write operation Since some files in the system file may be specifically accessed by an application at startup, the virtual operating system folder originally stored in the USB disk may be only Some empty file subdirectories, and the system file in the virtual operating system folder has the same file path structure as the system files in the local host operating system folder.
  • the host operating system folder is C: ⁇ WINDOWS ⁇
  • the path includes C: ⁇ WINDOWS ⁇ system32, C: ⁇ WINDOWS ⁇ system and other subdirectories;
  • the virtual operating system folder is F: W-WINDOWS, and the path also includes F: ⁇ V-WINDOWS ⁇ system32, F: Subdirectories such as ⁇ V-WINDOWS ⁇ system, that is, the virtual operating system folder has the same file path structure as the system file folder of the host operating system, but only some empty subfolders.
  • the monitoring program can obtain the system file to be accessed from the system folder of the local host operating system and copy it to the folder of the virtual operating system, that is, copy from the system folder of the local host operating system.
  • the system file to be accessed by the application to the same file directory of the virtual operating system folder, and then the application is controlled to access the system file in the virtual operating system folder, for example, reading and writing the file (in Figure 1)
  • the read and write operations shown are 3).
  • the system file can continue to be saved in the virtual operating system folder; thus, if the system file needs to be accessed again when the application is run again, it can be directly accessed from the virtual operating system folder. No need to copy again.
  • the monitoring program can use the processing method similar to the operation type to write, obtain the system file to be accessed by the application from the system folder of the local host operating system, and the system After the file is copied (that is, copied) to the virtual operating system folder, the application's file I/O is redirected to the virtual operating system folder, which causes the application to read the system files in the virtual operating system folder. Operation; the monitoring program may also not perform the above process of copying the system file from the host operating system to the virtual operating system, but directly send the file I/O of the application to the host operating system folder, that is, control the application access.
  • the system file to be accessed in the local host operating system folder (read operation 2 in Figure 1), because the read operation will not modify the system files in the host operating system folder, and will not be on the host operating system. The impact of the operation can also save storage resources.
  • the operating system folder can be stored in the mobile storage device, can be carried anywhere, and does not depend on a certain terminal, such as a computer, to meet the needs of mobile office.
  • the monitoring program can control access to the program file in the program folder; the program folder can be stored in the remote device in a specific implementation.
  • Medium such as a cloud computing center, or it can be stored locally, for example, like a virtual operating system folder, and can be stored in a mobile storage device connected to the host.
  • the monitor can redirect the application's file I/O to the program folder based on the storage location of the preset program folder.
  • the monitoring program controls the file I/O to access the program file stored in the cloud computing center when identifying the file to be accessed as a program file.
  • the program file in the folder (the read and write operation 1 shown in Figure 1) is created directly in the storage space provided by the cloud computing center when the application is installed.
  • the monitor sends the file I/O to the program folder stored in the local file when determining that the file to be accessed by the file I/O is a program file (FIG. 1)
  • the read and write operations shown in the 3) the program file is created directly in the local storage space when the application is installed.
  • the monitoring program performs the following operations: For example, the monitoring program can detect whether the running folder of the application is stored in the remote device, and if not, it belongs to the first generation.
  • the monitoring program may locally create a running file and utilize the local computing resource, and after executing the file I/O in the running file, store the running file to the cloud computing center; if the cloud computing center exists
  • the running folder of the application the monitoring program may locally cache the file to be accessed in the remote device running folder; send the file access request to the locally cached file to be accessed, and process the processing with the local computing resource File I/O; Updates the file to be accessed in the remote device running folder according to the processed locally cached file to be accessed. That is, the running file must be stored on a remote device, such as a cloud computing center, but access to the file is also handled using local computing resources.
  • the executable file for implementing the monitoring program, the application program, and the predetermined user desktop program, and the virtual operating system folder are stored in a mobile storage device connected to the local host.
  • this embodiment is compared with the virtual desktop implementation method in the prior art.
  • This embodiment mainly separates the calculation and storage, that is, the running file of the application. Still stored in the cloud, but for the processing of running files, read and write access to system files and program files (the calculation here refers to the read and write access to the file, the operation of the application, etc.) are performed locally. If you need to use CPU, memory, or cache devices for data caching and operations in file access, you can directly use local CPU, memory, or cache computing resources instead of using cloud computing resources.
  • the computing cost of the remote device is reduced. Moreover, since the user desktop program is also directly started locally, the application startup directly accesses the local system file, and the network transmission is no longer required as in the prior art, thereby greatly improving the virtual desktop.
  • Running speed again, this embodiment Run the user desktop program and the application on it with sandbox technology, so that when the user desktop program and the application launched based on the user desktop program access the infected file on the host operating system, it will be redirected to the virtual operating system folder.
  • the effectiveness of the virus is reduced. Therefore, compared with the virtual desktop in the traditional cloud computing virtual machine mode, the security protection software of the operating system does not need to be deployed in the cloud computing center, which significantly reduces the management cost of the remote device.
  • FIG. 3 is a schematic structural diagram of an embodiment of a virtual desktop implementation device according to the present invention.
  • the device can implement a virtual desktop implementation method according to any embodiment of the present invention. This embodiment only briefly describes the structure of the device, and the specific working principle thereof. It can be described in conjunction with the method embodiments.
  • the implementation device of the virtual desktop in this embodiment may include: a monitoring intercepting module 31, a determining module 32, and a processing module 33. among them,
  • the monitoring intercepting module 31 is configured to intercept a file access request of the application after the application is started by using a predetermined user desktop program
  • a determining module 32 configured to acquire file operation information of the file access request intercepted by the monitoring intercepting module 31, where the file operation information includes a storage location and an operation type of the file to be accessed, and the operation type includes reading and writing;
  • the storage location of the file to be accessed determines a file type of the file to be accessed, and the file type includes a system file of the operating system and a program file of the application;
  • the processing module 33 is configured to process the file access request according to the file type, thereby implementing a virtual desktop; the processing module 33 specifically includes: a first processing unit 331 and a second processing unit 332;
  • the first processing unit 331 is configured to: if the file type is a system file, send the file access request to a file to be accessed in a local virtual operating system folder, and the file structure and host operation in the virtual operating system folder The file structure in the system folder is the same, and the folder is stored in a different location;
  • the second processing unit 332 is configured to: if the file type is a program file, send the file access request to a file to be accessed in a program folder in a local or remote device.
  • the processing module 33 further includes: a third processing unit 333, configured to: if the file type is a running file, the file is The access request is sent to the file to be accessed in the remote device run folder.
  • the first processing unit 331 includes: a detecting subunit 34, a first processing subunit 35, a second processing subunit 36, and a third processing subunit 37;
  • the detecting subunit 34 is configured to detect whether a file to be accessed exists in the local virtual operating system folder when the file type is a system file;
  • the first processing sub-unit 35 is configured to: if the detection sub-unit detection result is yes, send the file access request to the virtual operating system folder, and access the to-be-accessed file in the virtual operating system folder;
  • a second processing sub-unit 36 configured to: if the detection sub-unit detection result is no, copy the to-be-accessed file in the local host operating system folder to the virtual operation when the operation type of the file access request is write In the system folder, performing a write operation on the to-be-accessed file in the virtual operating system folder according to the file access request;
  • a third processing sub-unit 37 configured to: if the detection sub-unit detection result is no, send the file access request to a local host operating system folder when the operation type is read, according to the file access request, to the local The file to be accessed in the host operating system folder is read, or the file to be accessed in the local host operating system folder is copied to the virtual operating system folder. Performing a read operation on the file to be accessed in the virtual operating system folder according to the file access request.
  • the device for implementing the virtual desktop of the embodiment by acquiring the file operation information of the application, and processing the file access request of the application according to the storage location and the operation type of the file to be accessed in the file operation information, for example, accessing the file Sending a request to a file to be accessed in a local virtual operating system folder, or sending the file access request to a file to be accessed in a program folder in a local or remote device, is a file directly processing the application using a local computing resource Access, the running results are displayed directly in the local, and no longer require frequent network transmission as in the prior art, thus greatly improving the speed of the virtual desktop and its applications.
  • the present invention also provides an implementation system for a virtual desktop, the system comprising a host and a remote device, wherein the virtual operating system folder and the virtual desktop implementing device according to any embodiment of the present invention are integrated in the host.
  • the virtual operating system folder, the structure of the implementation device of the virtual desktop, and the implementation of the virtual desktop to implement the virtual desktop may be combined with any of the method embodiments and the device embodiments of the present invention, and details are not described herein.
  • the aforementioned program can be stored in a computer readable storage medium.
  • the program when executed, performs the steps including the foregoing method embodiments; and the foregoing storage medium includes: a medium that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种虚拟桌面的实现方法、装置和系统,其中方法包括:监控程序拦截应用程序的文件访问请求,并获取文件访问请求的文件操作信息,包括待访问文件的存储位置和操作类型;监控程序根据待访问文件的存储位置确定待访问文件的文件类型,所述文件类型包括操作系统的系统文件和应用程序的程序文件;若文件类型为系统文件,则将文件访问请求发送至本地虚拟操作系统文件夹中的待访问文件;若文件类型为程序文件,则将文件访问请求发送至本地或远程设备中的程序文件夹中的待访问文件。本发明提高了虚拟桌面及其上应用的运行速度。

Description

虚拟桌面的实现方法、 装置和系统 本申请要求于 2012 年 4 月 5 日提交中国专利局、 申请号为 201210097482.8、 发明名称为 "虚拟桌面的实现方法、 装置和系统" 的中国专 利申请的优先权, 其全部内容通过引用结合在本申请中。
技术领域 本发明涉及计算机及通信技术领域, 尤其涉及一种虚拟桌面的实现方法、 装置和系统。
背景技术
通过应用虚拟桌面技术用户可以不使用本地操作系统的桌面, 而是使用 其他桌面来进行文件访问操作、 安装和运行应用程序。 其实现方法可以是: 用户桌面程序的运行、 应用程序运行中对操作系统文件的访问、 应用程序运 行中执行的运算处理等都是利用虚拟机上的虚拟化计算资源和存储资源来完 成的; 用户侧可以通过例如瘦客户端或者软件客户端等接入设备釆用远程桌 面的方式接入到远端虚拟机上, 虚拟机上桌面程序及应用程序的运行结果通 过网络传输到用户侧进行显示。
上述的虚拟桌面实现方法存在如下技术缺陷: 桌面程序及通过桌面程序 启动的应用程序都在远端的虚拟机中运行, 运行过程中涉及的运算例如对操 作系统的系统文件的访问都是在虚拟机侧执行, 运行结果通过网络传输至用 户侧显示, 使得虚拟桌面的运行速度较慢。
发明内容 本发明提供一种虚拟桌面的实现方法、 装置和系统, 目的是提高虚拟桌 面的运行速度。
本发明的第一个方面是提供一种虚拟桌面的实现方法, 包括: 本地主机中的应用程序通过预定的用户桌面程序被启动后, 监控程序拦 截所述应用程序的文件访问请求, 并获取所述文件访问请求的文件操作信息, 所述文件操作信息包括待访问文件的存储位置和操作类型, 所述操作类型包 括读和写;
所述监控程序根据待访问文件的存储位置确定待访问文件的文件类型, 所述文件类型包括操作系统的系统文件和应用程序的程序文件;
所述监控程序根据所述文件类型, 处理所述文件访问请求, 从而实现虚 拟桌面, 包括:
若文件类型为系统文件, 则将所述文件访问请求发送至本地虚拟操作系 统文件夹中的待访问文件, 所述虚拟操作系统文件夹中的文件结构与主机操 作系统文件夹中的文件结构相同、 且文件夹所在存储位置不同;
若文件类型为程序文件, 则将所述文件访问请求发送至本地或远程设备 中的程序文件夹中的待访问文件。
本发明的另一个方面是提供一种虚拟桌面的实现装置, 包括:
监控拦截模块, 用于在应用程序通过预定的用户桌面程序被启动后, 拦 截所述应用程序的文件访问请求;
确定模块, 用于获取监控拦截模块拦截到的所述文件访问请求的文件操 作信息, 所述文件操作信息包括待访问文件的存储位置和操作类型, 所述操 作类型包括读和写; 根据待访问文件的存储位置确定待访问文件的文件类型 , 所述文件类型包括操作系统的系统文件和应用程序的程序文件;
处理模块, 用于根据所述文件类型, 处理所述文件访问请求, 从而实现 虚拟桌面, 具体包括:
第一处理单元, 用于若文件类型为系统文件, 则将所述文件访问请求发 送至本地虚拟操作系统文件夹中的待访问文件, 所述虚拟操作系统文件夹中 的文件结构与主机操作系统文件夹中的文件结构相同、 且文件夹所在存储位 置不同;
第二处理单元, 用于若文件类型为程序文件, 则将所述文件访问请求发 送至本地或远程设备中的程序文件夹中的待访问文件。
本发明的再一个方面是提供一种虚拟桌面的实现系统, 包括主机和远程 设备, 虚拟操作系统文件夹、 以及本发明所述的虚拟桌面的实现装置集成于 所述主机中。 本发明实施例提供的虚拟桌面的实现方案, 通过监控程序获取所述应用 程序的文件操作信息, 并根据所述文件操作信息控制所述应用程序执行文件 访问, 例如, 访问位于本地的虚拟操作系统的系统文件, 访问本地或远程设 备中的程序文件, 由于用户桌面程序是直接在本地启动, 并且也是在本地访 问系统文件, 文件访问的执行结果也是直接通过本地的用户桌面程序来显示, 不再如现有技术那样需要频繁的网络传输, 因此可以减少网络传输带来的时 间损耗, 大大提高虚拟桌面及其上应用的运行速度。 附图说明
图 1为本发明虚拟桌面的实现方法实施例的应用示意图;
图 2为本发明虚拟桌面的实现方法实施例的流程示意图;
图 3为本发明虚拟桌面的实现装置实施例的结构示意图。 具体实施方式
实施例一
图 1为本发明虚拟桌面的实现方法实施例的应用示意图, 图 2为本发明 虚拟桌面的实现方法实施例的流程示意图, 下面结合图 1和图 2, 对本实施例 的虚拟桌面的实现方法进行说明。
如图 1 所示, 本实施例提供的虚拟桌面的实现方法是由虚拟桌面的实现 系统执行的, 该实现系统可以包括主机和远程设备, 其中主机上运行有预定 的用户桌面程序、 监控程序、 应用程序; 其中, 预定的用户桌面程序未在图 1 中显示。 该实现系统实现虚拟桌面主要指的是, 首先启动所述预定的用户桌 面程序(该桌面程序与主机操作系统的桌面程序不同), 然后通过所述预定的 用户桌面程序启动其他应用程序, 由监控程序负责控制应用运行中的文件操 作。 详细的实现方法参见如下的图 2所述:
如图 2所示, 实现方法可以包括:
201、 在本地的主机操作系统中启动预定的用户桌面程序; 需要说明的是用户桌面程序本身也是一种应用程序, 用于向用户提供用 户界面, 从而实现用户与操作系统之间的接口。 每个用户桌面程序都有对应 的存储空间, 其中存储有桌面布局参数、 背景色彩等桌面环境信息。 启动用 户桌面程序之后, 对应生成的用户桌面程序的进程读取上述桌面环境信息, 所看到的就类似于常见的电脑主机桌面或者手机界面等, 例如, 当本地指的 是电脑时, 该用户桌面即为电脑桌面, 当本地指的是移动终端时, 该用户桌 面即为移动终端桌面例如手机桌面。 以下将所述用户桌面程序启动之后形成 的界面称为桌面。
可选的, 本实施例的用户桌面程序可以存储在移动存储设备或者存储于 本地的主机存储设备上, 所述的移动存储设备例如可以为 U盘、 移动硬盘、 或者安全数码卡 ( Secure Digital Memory Card, 简称: SD卡)等。 通过将用 户桌面程序存储在移动存储设备, 方便用户的携带, 也可以随时随地方便地 启动用户桌面程序, 不用再受到瘦客户端等接入设备的限制, 在任何地方都 能够通过移动存储设备实现即插即用的使用虚拟桌面; 举例说明: 例如, 将 用户桌面程序部署在 U盘上, 将该 U盘插入本地电脑主机后, 就可以启动该 用户桌面程序形成虚拟桌面替换主机原有的电脑桌面; 将虚拟桌面部署在 SD 卡上, 用户就可以启动 SD卡上的虚拟桌面替换手机上原有的桌面。
具体的, 用户桌面程序的启动过程如下: 通过本地主机操作系统所支持 的多桌面机制实现; 例如, U盘中存储有用户桌面程序, 还存储有监控程序 (也可以称为虚拟化引擎), 当 U盘插入主机时, 主机操作系统检测 U盘中 是否存储有该监控程序, 如果检测到有, 则主机操作系统会自动运行该监控 程序; 该监控程序运行后, 将根据预设的配置项负责读取并启动 U盘中的用 户桌面程序, 形成通常所看到的界面形式的虚拟桌面, 并使得虚拟桌面替换 本地的主机桌面。 主机操作系统会为该虚拟桌面创建一个工作站 ( workstation ), 并将监控程序的动态库注入该工作站的 explorer进程中, 这 样就可以使得监控程序能够监测到通过该虚拟桌面启动的应用程序的文件操 作信息 (具体请参照 API hook技术的相关资料;)。正是由于操作系统支持多桌 面机制, 在主机及与主机相连的外部存储设备中存在有多个用户桌面程序时, 本实施例中的虚拟桌面可以基于其中的一个指定用户桌面程序来实现, 例如, 存储在移动存储设备上的第一用户桌面程序, 后续监控程序只拦截并处理基 于第一用户桌面程序安装或启动的应用程序产生的文件访问请求, 而不影响 其他用户桌面程序, 其他用户桌面程序仍然按照主机操作系统原有的机制来 工作。
202、 监控程序拦截通过所述用户桌面程序被启动的应用程序的文件访问 请求, 并获取所述文件访问请求的文件操作信息;
其中, 在 201 中启动了用户桌面程序, 并且将监控程序注入该用户桌面 程序中的相应进程之后, 监控程序就可以监控到后续的通过虚拟桌面启动或 安装应用程序所产生的文件访问请求了。 这里所述的应用指的是例如 Microsoft office系列的 word2003、 execl2003、 金山词霸等应用程序。 例如, 用户通过虚拟桌面安装应用程序时运行所述应用程序的安装包(该安装包可 以是预先存储在移动存储设备例如 U盘中的, 当然, 也可以存储在其他地方 例如本地的主机存储设备) 时, 应用程序的安装进程将在文件系统的指定目 录下创建该应用程序的程序文件夹, 这时会产生文件访问请求; 或者用户通 过虚拟桌面点击已安装的应用程序对应的图标(快捷方式图标)后, 应用程 序的工作进程将读取该应用程序的程序文件夹中某些文件中的数据, 这时也 会产生文件访问请求。
应用程序在启动时会产生要访问文件系统中某个文件的文件访问请求 (文件 I/O ), 监控程序会截取到该应用程序的文件 I/O, 并获取该 I/O中携带 的文件操作信息; 这里所述的文件操作信息包括待访问文件的存储位置 (即 存储路径) 以及对于所述文件的操作类型; 所述操作类型包括读或者写, 所 述待访问文件的类型包括操作系统的系统文件、 应用的程序文件, 可选地, 还包括应用的运行文件。
其中, 所述的操作系统的系统文件指的是所有与操作系统运行相关的文 件、 以及例如注册表等文件数据; 所述的程序文件指的是应用程序安装过程 中的相关文件, 所述的运行文件指的是能够通过应用程序创建、 打开、 或者 爹改的文件。 举例说明: 以 Microsoft office 系列的应用程序为例, 该 office 在启动时会对操作系统的系统文件 (例如, 系统盘 C 盘中操作系统文件夹 "C:\WINDOWS" 中的文件)进行访问, 执行相应的操作信息例如文件的读 写; 还会对应用的程序文件进行访问, 该程序文件指的是安装 office时生成的 文件(例如, 应用程序对应的文件夹 "C:\Program Files\Microsoft Office" 中的 文件); 也会产生运行文件的访问, 该运行文件指的是用 office生成的文件, 例如, 利用 office中的 word写的一篇文档(例如, 后缀名为 ".doc" 的文件)。
可选地, 并非所有的应用程序在安装或启动时, 都会访问上述三类文件, 例如, Microsoft office系列的应用程序在安装和启动时,会访问上述三类文件, 但金山词霸应用程序在安装和启动时, 只会访问系统文件和程序文件, 而不 会产生或涉及运行文件。
203、 监控程序根据所述文件操作信息, 处理所述文件 I/O;
监控程序会根据 202中获取到的文件操作信息, 控制应用执行文件访问, 对应用程序的访问 I/O进行重定向。可选地,监控程序根据文件操作信息中的 文件的存储位置, 可以知道应用程序要访问的是系统文件、 程序文件还是运 行文件, 即监控程序根据待访问文件的存储位置确定待访问文件的文件类型。 例如, 监控程序中预先存储系统文件夹、 程序文件夹的存储路径 (该存储路 径可以是预先指定的、 或者在应用程序安装过程中记录的); 截获到文件 I/O 并获取文件操作信息中的存储位置后, 判断该存储位置是否在系统文件夹或 程序文件夹的存储路径下, 若在系统文件夹的存储路径下, 则说明待访问文 件是系统文件; 若在程序文件夹的存储路径下, 则说明待访问文件是系统文 件; 否则说明是运行文件。
具体的,如果应用程序的文件 I/O要访问的是操作系统的系统文件, 则不 论操作类型是读还是写, 均首先检测待访问的系统文件是否存在于虚拟操作 系统文件夹中。 所述虚拟操作系统文件夹中的文件结构与主机操作系统文件 夹中的文件结构相同、 且文件夹所在存储位置不同, 例如主机操作系统文件 夹的存储位置为 C:\WINDOWS , 而虚拟操作系统文件夹的存储位置为 F: W- WINDOWS„ 若虚拟操作系统文件夹中存在待访问文件, 则直接将应用程 序对本地操作系统文件夹的 I/O重定向至虚拟操作系统文件夹中;若虚拟操作 系统文件夹中不存在待访问文件,则监控程序将根据文件 I/O的操作信息执行 不同的处理:
例如, 若操作类型是写, 则监控程序从本地的主机操作系统的系统文件 夹中获取应用程序待访问的系统文件, 并将该系统文件复制 (即拷贝)到虚 拟操作系统文件夹中之后,再将应用程序的文件 I/O重定向至虚拟操作系统文 件夹中, 即使得应用程序对虚拟操作系统文件夹中的系统文件执行写操作。 其中, 虚拟操作系统文件夹中的文件结构与主机操作系统文件夹中的文件结 构是相同的, 并且, 本实施例的用户桌面程序启动之后, 监控程序可以将虚 拟操作系统的系统文件与主机操作系统的系统文件进行逻辑上的合并, 即文 件路径结构的合并, 以使得应用看起来本地只有一个操作系统, 也只有一份 操作系统的系统文件。 但实际上还是如上面所述, 二者的存储位置不同, 例 如虚拟操作系统文件夹中的系统文件是存储在移动存储设备上的, 与主机操 作系统的系统文件的存储位置是相互隔离的, 并由监控程序控制具体的文件 访问。
举例说明上述的针对系统文件写操作的处理: 由于预先可能不知道某个 应用程序在启动时具体会访问系统文件中的哪些文件, 所以最初在 U盘中存 储的虚拟操作系统文件夹中可以只是一些空的文件子目录, 并且, 该虚拟操 作系统文件夹中的系统文件与本地的主机操作系统文件夹中的系统文件的文 件路径结构相同, 例如, 主机操作系统文件夹为 C:\WINDOWS\, 该路径下包 括 C:\WINDOWS\system32、 C:\WINDOWS\system等子目录; 虚拟操作系统 文件夹为 F: W- WINDOWS, 该路径下也包括 F: \V-WINDOWS\system32 , F: \V-WINDOWS\system等子目录,即虚拟操作系统文件夹具有与主机操作系统 的系统文件文件夹相同的文件路径结构, 但是只是一些空的子文件夹。 当首 次安装应用时, 虚拟操作系统文件夹中没有应用程序要访问的系统文件, 则 监控程序可以从本地的主机操作系统的系统文件夹中获取所述待访问的系统 文件并将之复制到所述虚拟操作系统的文件夹中, 即从本地的主机操作系统 的系统文件夹中拷贝应用程序要访问的系统文件到虚拟操作系统文件夹的相 同的文件目录下, 然后, 再控制应用程序访问虚拟操作系统文件夹中的所述 系统文件, 例如对文件进行读写操作 (图 1中所示的读写操作 3 )。 当然, 在 上述的首次拷贝之后, 该系统文件可以继续保存在虚拟操作系统文件夹中; 这样后续在应用程序再次运行时如果再次需要访问系统文件, 可以直接从该 虚拟操作系统文件夹中访问, 而不需再拷贝。
例如, 若操作类型是读, 则监控程序可以釆用与操作类型是写时相类似 的处理方式, 从本地的主机操作系统的系统文件夹中获取应用程序待访问的 系统文件, 并将该系统文件复制 (即拷贝)到虚拟操作系统文件夹中之后, 再将应用程序的文件 I/O重定向至虚拟操作系统文件夹中,即使得应用程序对 虚拟操作系统文件夹中的系统文件执行读操作; 监控程序也可以不执行上述 的从主机操作系统的系统文件拷贝到虚拟操作系统的处理, 而是直接将应用 程序的文件 I/O发送至主机操作系统文件夹中,即控制应用程序访问本地的主 机操作系统文件夹中的待访问系统文件 (图 1中的读操作 2 ), 因为读操作也 不会对主机操作系统文件夹中的系统文件进行修改, 也就不会对主机操作系 统的运行产生影响, 还可以节约存储资源。
通过将应用程序对系统文件的访问重定向至虚拟操作系统文件夹中, 使 得不会对本地的主机操作系统的系统文件产生影响, 而且对系统文件产生的 修改可以存储至移动存储设备(即虚拟操作系统文件夹可以是存储在移动存 储设备中的), 随时携带随地使用, 而且不会对某个终端例如某台电脑产生依 赖, 满足了移动办公的需求。
具体的,如果应用程序的文件 I/O要访问的是应用程序的程序文件, 则监 控程序可以控制执行对程序文件夹中的程序文件的访问; 程序文件夹在具体 实施中可以存储于远程设备中, 例如云计算中心, 或者, 也可以存储于本地, 例如与虚拟操作系统文件夹一样, 可以存储在与主机连接的移动存储设备中, 监控程序可以根据预先设定的程序文件夹的存储位置, 将应用程序的文件 I/O 重定向到程序文件夹中。
例如, 当应用程序的程序文件夹存储于远程设备中, 例如云计算中心时, 监控程序在识别待访问文件为程序文件时,将控制所述文件 I/O访问存储在云 计算中心的程序文件夹中的程序文件 (图 1中所示的读写操作 1 ), 该程序文 件是在安装应用程序的时候直接在云计算中心提供的存储空间中创建的。 当 应用程序的程序文件夹存储于本地时,监控程序在确定文件 I/O待访问的文件 为程序文件时,将所述文件 I/O发送到存储在本地的程序文件夹中(图 1中所 示的读写操作 3 ), 该程序文件是在安装应用程序的时候直接在本地的存储空 间中创建的。
在应用程序安装之后的运行过程中, 涉及到对系统文件和程序文件的访 问时, 对所产生的文件 I/O的处理方式和上述相同, 不再赘述。 具体的, 如果 应用程序要访问的是应用程序的运行文件, 监控程序会执行如下操作: 例如, 监控程序可以检测远程设备中是否存储有该应用程序的运行文件夹, 如果没 有, 则属于首次生成, 则监控程序可以在本地创建一个运行文件, 并利用本 地计算资源,在所述运行文件中执行所述文件 I/O之后,将所述运行文件存储 至云计算中心; 如果云计算中心存在该应用程序的运行文件夹, 则监控程序 可以在本地緩存所述远程设备运行文件夹中的待访问文件; 将所述文件访问 请求发送到本地緩存的待访问文件中, 利用本地计算资源处理所述文件 I/O; 根据处理后的本地緩存的待访问文件, 更新远程设备运行文件夹中的待访问 文件。 即, 运行文件是必须存储在远程设备, 例如云计算中心的, 但是涉及 到对文件的访问操作也还是利用本地的计算资源处理。
可选的, 本实施例中, 用于实现所述的监控程序、 应用程序、 和预定的 用户桌面程序的可执行文件, 以及虚拟操作系统文件夹存储在与本地主机相 连的移动存储设备中。
在监控程序根据所述文件操作信息,处理完所述文件 I/O之后,通过所述 预定的用户桌面程序显示文件访问的执行结果。 通过上述对本实施例的虚拟桌面实现方法的说明可以看出, 本实施例与 现有技术中的虚拟桌面实现方法比较, 本实施例主要是将计算和存储分离, 即, 将应用程序的运行文件仍然存储在云端, 但是对于运行文件的处理、 对 于系统文件和程序文件的读写访问等计算(这里的计算指的是对文件的读写 访问、 应用程序的运行等操作)都是在本地进行, 在文件访问中如果涉及到 需要使用 CPU、 内存或者緩存等设备用于数据緩存和运算时, 可以直接利用 本地的 CPU、 内存或者緩存等计算资源, 而不再利用云端的计算资源, 从而 大大降低了远程设备的计算成本; 并且, 由于用户桌面程序也是由本地直接 启动, 应用程序启动中也是直接访问位于本地的系统文件, 不再如现有技术 那样需要网络传输, 因此大大提高了虚拟桌面的运行速度; 再次, 本实施例 釆用沙箱技术运行用户桌面程序及其上的应用程序, 使得当用户桌面程序及 基于用户桌面程序启动的应用程序访问主机操作系统上染毒文件时, 会被重 定向到虚拟操作系统文件夹中, 有效降低感染病毒的机率; 因此相对传统云 计算虚拟机方式下的虚拟桌面而言, 云计算中心中不需要再部署操作系统的 安全防护软件, 显著降低远程设备的管理成本。
实施例二
图 3 为本发明虚拟桌面的实现装置实施例的结构示意图, 该装置可以执 行本发明任意实施例的虚拟桌面的实现方法, 本实施例仅对该装置的结构做 简单说明, 其具体的工作原理可以结合参见方法实施例所述。
如图 3 所示, 本实施例的虚拟桌面的实现装置可以包括: 监控拦截模块 31、 确定模块 32和处理模块 33。 其中,
监控拦截模块 31 , 用于在应用程序通过预定的用户桌面程序被启动后, 拦截所述应用程序的文件访问请求;
确定模块 32 ,用于获取监控拦截模块 31拦截到的所述文件访问请求的文 件操作信息, 所述文件操作信息包括待访问文件的存储位置和操作类型, 所 述操作类型包括读和写; 根据待访问文件的存储位置确定待访问文件的文件 类型, 所述文件类型包括操作系统的系统文件和应用程序的程序文件; 处理模块 33 , 用于根据所述文件类型, 处理所述文件访问请求, 从而实 现虚拟桌面;该处理模块 33具体包括:第一处理单元 331和第二处理单元 332; 其中,
第一处理单元 331 , 用于若文件类型为系统文件, 则将所述文件访问请求 发送至本地虚拟操作系统文件夹中的待访问文件, 所述虚拟操作系统文件夹 中的文件结构与主机操作系统文件夹中的文件结构相同、 且文件夹所在存储 位置不同;
第二处理单元 332 , 用于若文件类型为程序文件, 则将所述文件访问请求 发送至本地或远程设备中的程序文件夹中的待访问文件。
可选的,当确定模块 32确定出的文件类型还包括应用程序的运行文件时, 所述处理模块 33还包括: 第三处理单元 333 , 用于若文件类型为运行文件, 则将所述文件访问请求发送至远程设备运行文件夹中的待访问文件。
可选的, 第一处理单元 331包括: 检测子单元 34、 第一处理子单元 35、 第二处理子单元 36和第三处理子单元 37; 其中,
检测子单元 34 , 用于在文件类型为系统文件时, 检测本地虚拟操作系统 文件夹中是否存在待访问文件;
第一处理子单元 35 , 用于若检测子单元检测结果为是, 将所述文件访问 请求发送至所述虚拟操作系统文件夹, 访问所述虚拟操作系统文件夹中的待 访问文件;
第二处理子单元 36 , 用于若检测子单元检测结果为否, 在所述文件访问 请求的操作类型为写时, 将本地主机操作系统文件夹中的待访问文件, 复制 到所述虚拟操作系统文件夹中, 根据所述文件访问请求, 对虚拟操作系统文 件夹中的待访问文件执行写操作;
第三处理子单元 37 , 用于若检测子单元检测结果为否, 在操作类型为读 时, 将所述文件访问请求发送至本地主机操作系统文件夹中, 根据所述文件 访问请求, 对本地主机操作系统文件夹中的待访问文件执行读操作, 或者, 将本地主机操作系统文件夹中的待访问文件, 复制到所述虚拟操作系统夹中, 根据所述文件访问请求, 对虚拟操作系统文件夹中的待访问文件执行读操作。 本实施例的虚拟桌面的实现装置, 通过获取应用程序的文件操作信息, 并根据所述文件操作信息中的待访问文件的存储位置和操作类型处理应用程 序的文件访问请求, 例如, 将文件访问请求发送至本地虚拟操作系统文件夹 中的待访问文件, 或者将所述文件访问请求发送至本地或远程设备中的程序 文件夹中的待访问文件, 是直接利用本地计算资源处理应用程序的文件访问, 运行结果直接在本地显示, 而不再如现有技术需要频繁的网络传输, 因此大 大提高了虚拟桌面及其上应用的运行速度。
实施例三
本发明还提供了一种虚拟桌面的实现系统, 该系统包括主机和远程设备, 其中, 虚拟操作系统文件夹、 以及本发明任意实施例所述的虚拟桌面的实现 装置集成于所述主机中。
该虚拟操作系统文件夹、 虚拟桌面的实现装置的结构, 以及该虚拟桌面 的实现系统实现虚拟桌面的原理可以结合参见本发明的任意方法实施例和装 置实施例所述, 在此不再赘述。
本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。 前述的程序可以存储于一计算机可 读取存储介质中。 该程序在执行时, 执行包括上述各方法实施例的步骤; 而 前述的存储介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代码 的介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通 技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims

权 利 要 求
1、 一种虚拟桌面的实现方法, 其特征在于, 包括:
本地主机中的应用程序通过预定的用户桌面程序被启动后, 监控程序拦 截所述应用程序的文件访问请求, 并获取所述文件访问请求的文件操作信息, 所述文件操作信息包括待访问文件的存储位置和操作类型, 所述操作类型包 括读和写;
所述监控程序根据待访问文件的存储位置确定待访问文件的文件类型, 所述文件类型包括操作系统的系统文件和应用程序的程序文件;
所述监控程序根据所述文件类型, 处理所述文件访问请求, 从而实现虚 拟桌面, 包括:
若文件类型为系统文件, 则将所述文件访问请求发送至本地虚拟操作系 统文件夹中的待访问文件, 所述虚拟操作系统文件夹中的文件结构与主机操 作系统文件夹中的文件结构相同、 且文件夹所在存储位置不同;
若文件类型为程序文件, 则将所述文件访问请求发送至本地或远程设备 中的程序文件夹中的待访问文件。
2、 根据权利要求 1所述的虚拟桌面的实现方法, 其特征在于, 所述若文 件类型为系统文件, 则将所述文件访问请求发送至本地虚拟操作系统文件夹 中的待访问文件, 包括:
所述若文件类型为系统文件, 则检测本地虚拟操作系统文件夹中是否存 在待访问文件;
若是, 将所述文件访问请求发送至所述虚拟操作系统文件夹, 访问所述 虚拟操作系统文件夹中的待访问文件;
否则, 在所述文件访问请求的操作类型为写时, 将本地主机操作系统文 件夹中的待访问文件, 复制到所述虚拟操作系统文件夹中, 根据所述文件访 问请求, 对所述虚拟操作系统文件夹中的待访问文件执行写操作。
3、 根据权利要求 2所述的虚拟桌面的实现方法, 其特征在于, 若虚拟操 作系统文件夹中不存在待访问文件, 在操作类型为读时, 还包括: 将所述文件访问请求发送至本地主机操作系统文件夹中, 根据所述文件 访问请求, 对本地主机操作系统文件夹中的待访问文件执行读操作, 或者 将本地主机操作系统文件夹中的待访问文件, 复制到所述虚拟操作系统 文件夹中, 根据所述文件访问请求, 对所述虚拟操作系统文件夹中的待访问 文件执行读操作。
4、 根据权利要求 1所述的虚拟桌面的实现方法, 其特征在于, 所述文件 类型还包括应用程序的运行文件;
所述监控程序根据所述文件类型, 处理所述文件访问请求, 进一步还包 括:
若文件类型为运行文件, 则将所述文件访问请求发送至远程设备中的运 行文件夹中的待访问文件。
5、 根据权利要求 4所述的虚拟桌面的实现方法, 其特征在于, 所述若文 件类型为运行文件, 则将所述文件访问请求发送至远程设备运行文件夹中的 待访问文件, 包括:
若所述文件类型为运行文件, 则在本地緩存所述远程设备中的运行文件 夹中的待访问文件;
将所述文件访问请求发送到本地緩存的待访问文件中, 利用本地计算资 源处理所述文件访问请求;
根据处理后的本地緩存的待访问文件, 更新所述远程设备运行文件夹中 的待访问文件。
6、 根据权利要求 1至 5任一所述的虚拟桌面的实现方法, 其特征在于, 用于实现所述监控程序、 应用程序、 和预定的用户桌面程序的可执行文件, 以及虚拟操作系统文件夹存储在与本地主机相连的移动存储设备中。
7、 一种虚拟桌面的实现装置, 其特征在于, 包括:
监控拦截模块, 用于在应用程序通过预定的用户桌面程序被启动后, 拦 截所述应用程序的文件访问请求; 确定模块, 用于获取监控拦截模块拦截到的所述文件访问请求的文件操 作信息, 所述文件操作信息包括待访问文件的存储位置和操作类型, 所述操 作类型包括读和写; 根据待访问文件的存储位置确定待访问文件的文件类型 , 所述文件类型包括操作系统的系统文件和应用程序的程序文件;
处理模块, 用于根据所述文件类型, 处理所述文件访问请求, 从而实现 虚拟桌面, 具体包括:
第一处理单元, 用于若文件类型为系统文件, 则将所述文件访问请求发 送至本地虚拟操作系统文件夹中的待访问文件, 所述虚拟操作系统文件夹中 的文件结构与主机操作系统文件夹中的文件结构相同、 且文件夹所在存储位 置不同;
第二处理单元, 用于若文件类型为程序文件, 则将所述文件访问请求发 送至本地或远程设备中的程序文件夹中的待访问文件。
8、 根据权利要求 7所述的虚拟桌面的实现装置, 其特征在于, 确定模块 确定出的文件类型还包括应用程序的运行文件时, 所述处理模块还包括: 第三处理单元, 用于若文件类型为运行文件, 则将所述文件访问请求发 送至远程设备运行文件夹中的待访问文件。
9、 根据权利要求 7所述的虚拟桌面的实现装置, 其特征在于, 所述第一 处理单元包括:
检测子单元, 用于在文件类型为系统文件时, 检测本地虚拟操作系统文 件夹中是否存在待访问文件;
第一处理子单元, 用于若检测子单元检测结果为是, 将所述文件访问请 求发送至所述虚拟操作系统文件夹, 访问所述虚拟操作系统文件夹中的待访 问文件;
第二处理子单元, 用于若检测子单元检测结果为否, 在所述文件访问请 求的操作类型为写时, 将本地主机操作系统文件夹中的待访问文件, 复制到 所述虚拟操作系统文件夹中, 根据所述文件访问请求, 对虚拟操作系统文件 夹中的待访问文件执行写操作; 第三处理子单元, 用于若检测子单元检测结果为否, 在操作类型为读时, 将所述文件访问请求发送至本地主机操作系统文件夹中, 根据所述文件访问 请求, 对本地主机操作系统文件夹中的待访问文件执行读操作, 或者, 将本 地主机操作系统文件夹中的待访问文件, 复制到所述虚拟操作系统夹中, 根 据所述文件访问请求, 对虚拟操作系统文件夹中的待访问文件执行读操作。
10、 一种虚拟桌面的实现系统, 其特征在于, 包括主机和远程设备, 虚 拟操作系统文件夹、以及如权利要求 7-9任一所述的虚拟桌面的实现装置集成 于所述主机中。
PCT/CN2012/085905 2012-04-05 2012-12-05 虚拟桌面的实现方法、装置和系统 WO2013149473A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP12873618.8A EP2811404B1 (en) 2012-04-05 2012-12-05 Virtual desktop implementation method, device and system
US14/476,113 US9246992B2 (en) 2012-04-05 2014-09-03 Virtual desktop implementation method, apparatus, and system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210097482.8 2012-04-05
CN201210097482.8A CN102662741B (zh) 2012-04-05 2012-04-05 虚拟桌面的实现方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/476,113 Continuation US9246992B2 (en) 2012-04-05 2014-09-03 Virtual desktop implementation method, apparatus, and system

Publications (1)

Publication Number Publication Date
WO2013149473A1 true WO2013149473A1 (zh) 2013-10-10

Family

ID=46772240

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/085905 WO2013149473A1 (zh) 2012-04-05 2012-12-05 虚拟桌面的实现方法、装置和系统

Country Status (4)

Country Link
US (1) US9246992B2 (zh)
EP (1) EP2811404B1 (zh)
CN (1) CN102662741B (zh)
WO (1) WO2013149473A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430207B2 (en) 2016-03-25 2019-10-01 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Method and electronic device for directly starting application on second virtual machine in operating environment of first virtual machine

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662741B (zh) 2012-04-05 2014-04-02 华为技术有限公司 虚拟桌面的实现方法、装置和系统
CN103856521A (zh) * 2012-12-04 2014-06-11 鸿富锦精密工业(深圳)有限公司 文件上传系统及方法
CN103902178B (zh) * 2012-12-28 2018-09-07 腾讯科技(深圳)有限公司 一种基于安卓系统的多媒体文件处理方法及装置
CN104598257B (zh) * 2013-10-30 2019-01-18 华为技术有限公司 远程应用程序运行的方法和装置
CN104618313B (zh) * 2013-11-05 2018-02-13 华为技术有限公司 安全管理系统和方法
US10057325B2 (en) * 2014-03-31 2018-08-21 Nuvestack, Inc. Remote desktop infrastructure
WO2015168849A1 (zh) 2014-05-05 2015-11-12 华为技术有限公司 一种拟真桌面建立方法及相关装置
CN104008330B (zh) * 2014-05-23 2017-06-27 武汉华工安鼎信息技术有限责任公司 基于文件集中存储及隔离技术的数据防泄漏系统及其方法
CN104021053B (zh) * 2014-06-13 2017-02-08 广州金山网络科技有限公司 一种修复、备份应用程序的方法、移动终端及网络服务器
CN105335176B (zh) * 2014-07-22 2019-10-25 南京中兴软件有限责任公司 一种调用安装于电子设备上的应用的方法及装置
CN104243459A (zh) * 2014-09-03 2014-12-24 福建星网锐捷网络有限公司 一种虚拟桌面实现方法、装置、终端和系统
US10382446B2 (en) * 2015-05-28 2019-08-13 Cameyo Inc. Computerized system, method and computer program product, for managing a computer program's operations
US9813504B2 (en) * 2015-08-03 2017-11-07 Citrix Systems, Inc. Virtualizing device management services on a multi-session platform
CN105653351B (zh) * 2015-12-30 2019-08-06 北京博思汇众科技股份有限公司 java卡虚拟机的优化方法及系统
CN105825126A (zh) * 2016-03-08 2016-08-03 北京网康科技有限公司 一种文件保护方法及装置
CN105975876A (zh) * 2016-06-29 2016-09-28 北京小米移动软件有限公司 文件共享方法及装置
CN106850809A (zh) * 2017-02-09 2017-06-13 武汉烽火信息服务有限公司 基于桌面云平台用户门户使用虚拟桌面的装置
US10387681B2 (en) * 2017-03-20 2019-08-20 Huawei Technologies Co., Ltd. Methods and apparatus for controlling access to secure computing resources
CN110069454A (zh) * 2017-09-11 2019-07-30 中兴通讯股份有限公司 一种网络文件管理方法、终端及计算机可读存储介质
CN108108421B (zh) * 2017-12-15 2020-07-03 Oppo广东移动通信有限公司 文件管理方法、装置、存储介质及电子设备
CN107992355B (zh) * 2017-12-21 2021-07-13 中兴通讯股份有限公司 一种部署应用软件的方法、装置及虚拟机
CN108616510A (zh) * 2018-03-24 2018-10-02 张瑜 一种基于数字免疫的隐遁勒索病毒检测技术
CN109669738B (zh) * 2018-12-29 2019-12-03 北京明朝万达科技股份有限公司 一种应用程序的启动方法及装置
CN112306613A (zh) * 2020-11-03 2021-02-02 西安万像电子科技有限公司 文件复制方法、装置、存储介质和处理器
CN112445764B (zh) * 2020-11-27 2024-05-31 北京五一视界数字孪生科技股份有限公司 文件操作的方法、装置、存储介质及电子设备
CN116016480B (zh) * 2022-12-05 2023-09-29 杭州未斯科技有限公司 基于虚拟桌面的流程自动化控制方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770399A (zh) * 2009-01-05 2010-07-07 联想(北京)有限公司 一种电子设备及切换其操作系统桌面的方法、装置
CN102158526A (zh) * 2010-01-08 2011-08-17 未友芬尼蒂有限公司 池组件配置的管理
CN102355502A (zh) * 2011-10-13 2012-02-15 罗立群 存储系统远程接入桌面操作系统的远程接入方法
CN102662741A (zh) * 2012-04-05 2012-09-12 华为技术有限公司 虚拟桌面的实现方法、装置和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941470B1 (en) * 2000-04-07 2005-09-06 Everdream Corporation Protected execution environments within a computer system
US6907421B1 (en) * 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US7206819B2 (en) * 2001-01-18 2007-04-17 Sun Microsystems, Inc. Method and apparatus for providing virtual namespaces for active computing environments
US9032325B2 (en) * 2001-06-08 2015-05-12 Real Enterprise Solutions Development B.V. Management of local applications in local and remote desktops in a server-based computing environment
US8065691B2 (en) * 2005-07-01 2011-11-22 Sudhir Pendse User customized portable desktop
EP1977347B1 (en) * 2006-01-17 2017-12-27 Microsoft Technology Licensing, LLC Seamless integration of multiple computing environments
RU2432605C1 (ru) 2008-02-26 2011-10-27 ВиЭмвеэ, Инк. Способ расширения, основанный на сервере архитектуры десктопной виртуальной машины на клиентские машины, и машиночитаемая среда
CN101650668A (zh) 2008-08-11 2010-02-17 优诺威讯国际有限公司 虚拟环境的实现方法及装置
KR101236478B1 (ko) * 2008-12-22 2013-02-22 한국전자통신연구원 저속의 이동형 저장장치를 위한 소프트웨어 컴퓨팅 환경 제공 방법
US20100205604A1 (en) * 2009-02-09 2010-08-12 Resilience Corporation Systems and methods for efficiently running multiple instances of multiple applications
CN101630251A (zh) * 2009-08-05 2010-01-20 中国船舶重工集团公司第七○九研究所 跨桌面和嵌入式系统的图形界面开发方法及系统
US8413142B2 (en) 2010-03-30 2013-04-02 Citrix Systems, Inc. Storage optimization selection within a virtualization environment
US8667489B2 (en) * 2010-06-29 2014-03-04 Symantec Corporation Systems and methods for sharing the results of analyses among virtual machines
CN102004886B (zh) 2010-11-15 2012-07-25 上海安纵信息科技有限公司 一种基于操作系统虚拟化原理的数据防泄漏方法
US8866701B2 (en) * 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770399A (zh) * 2009-01-05 2010-07-07 联想(北京)有限公司 一种电子设备及切换其操作系统桌面的方法、装置
CN102158526A (zh) * 2010-01-08 2011-08-17 未友芬尼蒂有限公司 池组件配置的管理
CN102355502A (zh) * 2011-10-13 2012-02-15 罗立群 存储系统远程接入桌面操作系统的远程接入方法
CN102662741A (zh) * 2012-04-05 2012-09-12 华为技术有限公司 虚拟桌面的实现方法、装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2811404A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430207B2 (en) 2016-03-25 2019-10-01 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Method and electronic device for directly starting application on second virtual machine in operating environment of first virtual machine

Also Published As

Publication number Publication date
CN102662741B (zh) 2014-04-02
EP2811404B1 (en) 2020-02-19
EP2811404A1 (en) 2014-12-10
US9246992B2 (en) 2016-01-26
EP2811404A4 (en) 2015-02-18
CN102662741A (zh) 2012-09-12
US20140372503A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
WO2013149473A1 (zh) 虚拟桌面的实现方法、装置和系统
US10007541B2 (en) Method for operating a mobile virtual environment upon connection to a host computer
US8839228B2 (en) System and method for updating an offline virtual machine
US10528735B2 (en) Malicious code protection for computer systems based on process modification
RU2432605C1 (ru) Способ расширения, основанный на сервере архитектуры десктопной виртуальной машины на клиентские машины, и машиночитаемая среда
JP6623291B2 (ja) ホストされたコンテンツアイテムに対する見かけ上のクラウドアクセス
US20170024198A1 (en) Mapping of virtualized set-up free applications for a computing system
US9178900B1 (en) Detection of advanced persistent threat having evasion technology
US20070106993A1 (en) Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20100318997A1 (en) Annotating virtual application processes
WO2019119850A1 (zh) 一种部署应用软件的方法、装置及虚拟机
US8572741B2 (en) Providing security for a virtual machine by selectively triggering a host security scan
WO2013075514A1 (zh) 应用软件的安装方法和应用软件的安装装置
US8578064B2 (en) Interception and management of I/O operations on portable storage devices
US20150254103A1 (en) Instant xvmotion using a private storage virtual appliance
US20140082275A1 (en) Server, host and method for reading base image through storage area network
US20150254092A1 (en) Instant xvmotion using a hypervisor-based client/server model
Zhang et al. Portable Desktop Applications Based on P2P Transportation and Virtualization.
CN112219202A (zh) 用于客户操作系统的存储器分配
JP6829168B2 (ja) 情報処理装置、情報処理方法およびプログラム
US8612994B1 (en) Methods and systems for activating and deactivating virtualization layers
WO2007022687A1 (fr) Système et procédé de contrôle de sécurité de système d’exploitation
US10310892B1 (en) Apparatuses, systems and methods of switching operating systems
US9921884B1 (en) Local and remote access to virtual machine image filesystems
Zhang et al. Converting legacy desktop applications into on-demand personalized software

Legal Events

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

Ref document number: 12873618

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012873618

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE