WO2015070640A1 - 设备远程访问的方法、瘦客户端和虚拟机 - Google Patents

设备远程访问的方法、瘦客户端和虚拟机 Download PDF

Info

Publication number
WO2015070640A1
WO2015070640A1 PCT/CN2014/083153 CN2014083153W WO2015070640A1 WO 2015070640 A1 WO2015070640 A1 WO 2015070640A1 CN 2014083153 W CN2014083153 W CN 2014083153W WO 2015070640 A1 WO2015070640 A1 WO 2015070640A1
Authority
WO
WIPO (PCT)
Prior art keywords
driver
remote
physical device
virtual
bus
Prior art date
Application number
PCT/CN2014/083153
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 EP14861685.7A priority Critical patent/EP3029912B1/en
Publication of WO2015070640A1 publication Critical patent/WO2015070640A1/zh
Priority to US15/056,400 priority patent/US10042664B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a method for remote access of a device, a thin client, and a virtual machine. Background technique
  • TC local thin client
  • VM virtual machine
  • a physical device such as a smart card connected to the TC terminal through a Universal Serial Bus (USB) interface.
  • USB Universal Serial Bus
  • the VM side can implement the above remote access through a redirection technology. That is, the device driver in the physical device driver of the TC side is modified to be a redirect driver, so that the redirect driver can read the remote operation instruction carrying the physical device that the VM side requests to access the TC end, so that the VM side can implement the pair. Remote access to the physical device.
  • the technical problem to be solved by the present invention is how to not modify the device driver at the TC end.
  • remote access of the physical device of the TC side by the VM side is implemented.
  • the present invention provides a method for remote access of a device, which is used in a desktop cloud system, including: a bus filter driver at a TC end receives a remote access request of a VM device to a physical device at the TC end; The bus filter driver converts the remote access request into a remote operation command readable by the physical device driver; the bus filter driver transmits the remote operation command to the physical device driver, the remote operation command The physical device driver is instructed to drive the physical device to perform a read/write operation and return remote response data carrying an execution result of the read/write operation.
  • the method further includes: the bus filter driver receiving the physical device via The remote response data returned by the physical device driver; the bus filter driver transmitting the remote response data to the VM end.
  • the physical device is a smart card connected to the TC end by using a universal serial bus.
  • the bus filter driver is a universal serial bus filter driver
  • the remote access request is a remote universal serial bus request message.
  • the remote operation command and the local operation instruction are local universal serial bus request messages
  • the remote response data and the local response data are local universal serial bus response messages.
  • the present invention provides a method for remote access of a device, for a desktop cloud system, including: a virtual bus driver at a VM end receives an application of the VM end to a virtual device driver of the VM end a virtual operation instruction; the virtual bus driver converts the virtual operation instruction into a remote access request readable by a bus filter driver of the TC terminal; the virtual bus driver sends the remote access request to the TC terminal, Place
  • the remote access request is used to instruct the bus filter driver to convert the remote access request into a remote operation command readable by a physical device driver of the TC end, the remote operation instruction is used to indicate the physical device driver driver
  • the physical device performs a read/write operation and returns remote response data carrying the execution result of the read/write operation.
  • the method includes: the virtual bus driver receiving a remote response sent by the TC terminal Data; the virtual bus driver transmits the remote response data to the application via the virtual device driver.
  • the physical device is a smart card connected to the TC end by using a universal serial bus.
  • the virtual bus driver is a virtual universal serial bus driver
  • the remote access request is a remote universal serial bus request message
  • the virtual operation instruction is a local universal serial bus request message
  • the remote response data is a local universal serial bus response message.
  • the present invention provides a TC terminal, including a bus filter driver and a physical device driver, where the bus filter driver is configured to receive a remote access request from a VM end to a physical device of the TC end. Converting the remote access request to a remote operation instruction readable by the physical device driver; transmitting the remote operation instruction to the physical device driver, the remote operation instruction for indicating the physical device driver driver The physical device performs a read/write operation and returns remote response data carrying the execution result of the read/write operation.
  • the physical device driver is further configured to receive the remote response data of the physical device and forward the data to the bus filter driver; the bus filter driver further And receiving, by the physical device driver, the remote response data and forwarding the data to the VM end.
  • the physical device is a smart card connected to the TC end by using a universal serial bus.
  • the bus filter driver is a universal serial bus filter driver
  • the remote access request is a remote universal serial bus request message
  • the remote operation command and the local operation instruction are local universal serial bus request messages
  • the remote response data local response data is a local universal serial bus response message.
  • the present invention provides a VM terminal, including a virtual bus driver and a virtual device driver, where the virtual bus driver is configured to receive an application of the VM end to a virtual device of the VM end a virtual operation instruction of the driver; converting the virtual operation instruction into a remote access request read by the bus filter driver of the TC terminal; transmitting the remote access request to the TC end, the remote access request is used to indicate
  • the bus filter driver converts the remote access request into a remote operation command readable by a physical device driver of the TC end, the remote operation instruction is used to instruct the physical device driver to drive the physical device to perform a read/write operation, And returning the remote response data carrying the execution result of the read and write operation.
  • the virtual bus driver is further configured to receive the remote response data of the VM end and forward the data to the virtual device driver;
  • the virtual device driver is further configured to receive the remote response data of the virtual bus driver and forward the data to the application.
  • the physical device is a smart card connected to the TC end by using a universal serial bus.
  • the virtual bus driver is a virtual universal serial bus driver
  • the remote access request is a remote universal serial bus request message
  • the virtual operation instruction is a local universal serial bus request cancellation
  • the remote response data is a local universal serial bus response message.
  • the TC-side bus filter driver Receiving, by the TC-side bus filter driver, a remote access request of the VM device to the physical device of the TC end, and converting it into an operation command that can be read by the physical device driver of the TC end, the method for remote access of the device according to the embodiment of the present invention, the thin client
  • the terminal and the virtual machine can implement remote access of the VM device to the physical device of the TC end, and since the device driver is not modified, the TC terminal can continue to access the physical device normally.
  • FIG. 1 is a flowchart showing a method of remote access of a device according to Embodiment 1 of the present invention.
  • FIG. 2 is a flowchart showing a method of remote access of a device according to Embodiment 2 of the present invention;
  • FIG. 3 is a view showing an embodiment of the present invention.
  • FIG. 4 is a flow chart showing a method of remote access of a device according to Embodiment 4 of the present invention;
  • FIG. 5 is a block diagram showing a TC terminal according to Embodiment 5 of the present invention;
  • Figure 6 is a block diagram showing a TC terminal according to Embodiment 6 of the present invention.
  • Figure 7 is a block diagram showing a VM side according to Embodiment 7 of the present invention.
  • Figure 8 is a block diagram showing a VM side according to Embodiment 8 of the present invention.
  • Figure 9 is a block diagram showing the TC terminal according to Embodiment 9 of the present invention.
  • FIG. 10 is a block diagram showing a VM side according to Embodiment 10 of the present invention. detailed description Various exemplary embodiments, features, and aspects of the invention are described in detail below with reference to the drawings. The same reference numerals in the drawings denote the same or similar elements. The various aspects of the embodiments are shown in the drawings, and the drawings are not necessarily drawn to scale unless otherwise indicated.
  • the remote access method of the device mainly includes:
  • Step S110 The bus filter driver at the TC side receives a remote access request of the VM end to the physical device of the TC end.
  • the local TC end and the remote VM end are connected through a network.
  • One or more physical devices are connected to the TC end.
  • the TC terminal is provided with a bus filter driver. If the application on the VM side accesses the physical device connected to the TC, the TC can receive the remote access request from the VM to the physical device on the TC.
  • the remote access request carries information of the physical device that the VM side requests to access the TC end.
  • the physical device can be connected to the TC terminal through various bus interfaces, such as a USB interface.
  • the type of bus filter drive can be set accordingly. For example: If the smart card is connected to the TC terminal via the USB interface, the bus filter driver is a USB bus filter driver.
  • the physical device can be a smart card or other device.
  • the remote access request may also carry the identification information of the physical device, and the TC end may determine the specific physical device to be accessed by the VM end according to the identification information; and/or may carry the identification information of the VM end, and the TC end may according to the identifier.
  • Information determining that the remote access request is from a specific Which VM side and / or VM side specific application.
  • Step S120 The bus filter driver converts the remote access request into a remote operation instruction that the physical device driver can read.
  • the bus filter driver at the TC side first determines whether the received command is a remote access request of the VM side. The bus filter driver only processes remote access requests from the received VM side and does not process other instructions. If so, the bus filter driver generates a remote operation command for the physical device driver corresponding to the TC terminal according to the remote access request, that is, converts the remote access request into a remote operation command that can be read by the physical device driver corresponding to the TC terminal.
  • Step S130 The bus filter driver sends the remote operation instruction to the physical device driver, where the remote operation instruction is used to instruct the physical device driver to drive the physical device to perform a read/write operation and return to carry the Remote response data for the execution of read and write operations.
  • the bus filter driver sends remote operation instructions to the physical device driver.
  • the physical device driver generates a remote drive command that the physical device can read based on the remote operation command, and transmits the remote drive command to the physical device.
  • the physical device performs corresponding read and write operations according to the remote drive instruction, generates remote response data according to the execution result of the read and write operation, and returns the remote response data to the physical device driver.
  • the read and write operations performed by the physical device may include: reading data existing in the physical device, such as user identity information used by the VM for authentication; or writing data to the physical device.
  • the remote response data may include the identifier information of the VM end, and the TC end may determine, according to the identifier information, which remote end response data is sent to the specific VM end, and may also carry the identifier information of the TC end, and the VM end may determine according to the identifier information.
  • the response data comes from which TC end.
  • the physical device driver can still respond to the local access request sent by the TC-side application, thereby ensuring that the TC-side application can continue to access the physical device without being affected by the VM-side remote access request.
  • the physical device driver may receive a local operation instruction of the application of the TC end to the physical device; and the physical device driver drives the physical device to execute according to the local operation instruction. Read and write operations and return local response data carrying the execution results of the read and write operations.
  • the local drive command that the physical device can read is generated according to the local device driver, and the local drive command is sent to the physical device.
  • the physical device performs corresponding read and write operations according to the local driving instruction, for example, reading data existing in the physical device (such as user identity information used by the VM for authentication) or writing data to the physical device.
  • the physical device generates local response data based on the execution result of the read and write operations, and returns the local response data to the physical device driver.
  • the physical device driver forwards the local response data to the application on the TC side accordingly.
  • the user can request remote login to the desktop data center of the remote data center, that is, the VM side, on the TC side.
  • the desktop cloud system reads the data in the smart card connected to the TC end for authentication. After the authentication succeeds, the user can log in to the VM remotely on the TC. If the user also needs to log in to the local TC-side application, the user can continue to read the data in the local TC-side smart card and perform authentication operations on the local TC-side application.
  • the local operation instruction and the remote operation instruction may be processed in sequence according to the order in which the instructions reach the physical device driver, thereby sequentially responding to the local access request of the TC end and the remote access request of the VM end.
  • the bus filter driver on the TC side receives the remote access request of the VM device to the physical device of the TC end, and converts it into an operation instruction that can be read by the physical device driver of the TC end, and can realize remote access of the physical device of the TC end by the VM end. And since the device driver is not modified, the TC side can continue to access the physical device normally.
  • the method of this embodiment is applicable to the TC terminal compared to the USB redirection method in the prior art.
  • the method of the embodiment does not require a physical device to support the PC/SC protocol, and thus has good compatibility.
  • FIG. 2 is a flow chart showing a method of remote access of a device according to Embodiment 2 of the present invention.
  • the same components in Fig. 2 as those in Fig. 1 have the same functions, and a detailed description of these components will be omitted for the sake of brevity.
  • the bus filter driver can also receive remote response data returned by the physical device via the physical device driver, and The terminal sends remote response data.
  • the step S110 may specifically include the following steps: Step S210: The device server at the TC end receives a remote access request sent by the VM to the physical device.
  • Step S220 The bus filter driver receives a remote access request for the physical device sent by the device server at the TC end.
  • the TC terminal is provided with a device server.
  • the device server can receive data sent by the VM based on the network transmission protocol between the TC end and the VM end through the network, for example, the remote access request of the VM end to the physical device of the TC end, and the device server forwards the remote access request to the bus. Filter the drive so that the bus filter driver processes the remote access request.
  • the device server on the TC side may firstly parse the received data to obtain a remote access request based on a network transmission protocol between the TC end and the VM end, and then send the result to the bus filter driver.
  • the process of generating the remote response data according to the method may include the following steps:
  • Step S230 The physical device driver generates a remote driving instruction that the physical device can read according to the remote operation instruction of the received bus filter driver.
  • Step S240 The physical device driver sends the remote driving instruction to the physical device.
  • Step S250 The physical device performs a corresponding read/write operation according to the received remote driving instruction, and generates according to the execution result of the read/write operation. Remote response data;
  • Step S260 The physical device sends the remote response data to the physical device driver.
  • Step S270 The physical device driver forwards the received remote response data to the bus filter driver.
  • Step S280 The bus filter driver forwards the received remote response data to the device server at the TC end;
  • Step S290 The device server forwards the received remote response data to the VM.
  • the device server can receive data sent by the bus filter driver, for example, remote response data of the physical device at the TC end, and the device server can forward the remote response data to the VM through the network connected between the TC end and the VM end. So that the VM side processes the remote response data.
  • the device server on the TC side may first convert the remote response data into data of the network transmission protocol supporting the TC end and the VM end, and then send the data to the VM end.
  • the physical device is a smart card connected to the TC end through a universal serial bus.
  • the bus filter driver is a universal serial bus filter driver
  • the remote access request is a remote universal serial bus request message
  • the remote operation command and the local operation command are local universal serial A bus request message, the remote response data and the local response data being a local universal serial bus response message.
  • the Bay ijTC terminal is correspondingly provided with a USB bus filter driver.
  • the USB bus filter driver can receive a remote universal serial bus request message (URB) of the VM side, where the remote URB request message carries information of a remote access request to the smart card; accordingly, a local URB request is generated.
  • URB universal serial bus request message
  • the USB Request Block (UBB) sends the local URB request message to the smart card driver, and the local request URB message carries information about the remote operation command of the smart card.
  • the local TC-side application can also send a local URB request message to the smart card driver.
  • the smart card performs a corresponding read and write operation, generates a local URB response message, and returns the local URB response message to the smart card driver, the local URB response message carrying information of the remote response data or the local response data.
  • the smart card driver returns the remote response data to the USB bus filter driver according to the content of the local URB response message, or returns the local response data to the local TC end application.
  • the device server on the TC side can also detect whether the user inserts the physical device into the TC terminal. If it is detected that a physical device is inserted into the TC end, the device server on the TC side sends an insert notification corresponding to the physical device to the VM end, so that the VM end loads the virtual device corresponding to the physical device accordingly.
  • the device server on the TC side can also receive the query request for the physical device sent by the VM or actively query the device information, and send the device information to the VM according to the device information of the physical device, so that the VM is loaded and The virtual device corresponding to the physical device.
  • the device information may include device information such as a device type and a device identifier of the physical device.
  • the device server on the TC side can detect whether a physical device is pulled out from the TC end. If it is detected that a physical device is removed from the TC, the device server at the TC sends a pullout notification corresponding to the physical device to the VM, so that the VM end uninstalls the virtual device corresponding to the physical device, so that the VM is virtualized.
  • the device and the physical device at the TC end implement the same load and the same load.
  • the pullout notification may also carry device information of the physical device, so that the VM end determines the specific virtual device to be uninstalled.
  • FIG 3 is a flow chart showing a method of remote access of a device in accordance with Embodiment 3 of the present invention.
  • the remote access method of the device mainly includes:
  • Step S310 the virtual bus driver of the VM side receives a virtual operation instruction of the VM side application to the VM device virtual device driver.
  • the VM side is provided with a virtual bus driver and a virtual device driver.
  • the VM side loads the virtual device corresponding to the physical device on the TC end by setting the virtual bus driver and the virtual device driver on the VM side according to the requirement of remote access to the physical device on the TC side. If the application on the VM side accesses the physical device on the TC side, the virtual bus driver on the VM side can receive a virtual operation instruction from the application of the VM end to the virtual device driver of the VM end.
  • the physical device can be connected to the TC terminal through various bus interfaces, such as a Universal Serial Bus (USB) interface.
  • USB Universal Serial Bus
  • the type of virtual bus driver on the VM side can be set accordingly. For example: If the smart card is connected to the TC terminal through the USB interface, the virtual bus driver on the VM side can be set as a virtual USB bus driver.
  • the physical device can be a smart card or other device.
  • Step S320 The virtual bus driver converts the virtual operation instruction into a remote access request that can be read by the bus filter driver of the TC end.
  • the virtual bus driver generates a remote access request for the physical device corresponding to the TC end according to the virtual operation instruction, that is, converts the virtual operation instruction into a remote access request that can be read by the bus filter driver corresponding to the TC end.
  • the remote access request carries the information of the physical device corresponding to the TC end, and the TC end can determine the specific physical medium to be accessed by the VM end according to the identification information.
  • the device and/or may carry the identification information of the VM end, so that the TC end can determine, according to the identification information, which specific application of the VM end and/or the VM end.
  • Step S330 The virtual bus driver sends the remote access request to the TC end.
  • the remote access request is used to instruct the bus filter driver to convert the remote access request into a remote operation command that can be read by the physical device driver on the TC side.
  • the remote operation instruction is used to instruct the physical device driver to drive the corresponding physical device to perform a read/write operation, and return the remote response data carrying the execution result of the read/write operation.
  • the VM-side virtual bus driver receives the VM-side application to the TC side.
  • the virtual operation instruction of the physical device is converted into a remote access request that can be read by the bus filter driver at the TC end, and the remote access of the physical device of the TC end by the application of the VM end can be realized.
  • FIG. 4 is a flow chart showing a method of remote access of a device according to Embodiment 4 of the present invention.
  • the same components in Fig. 4 as those in Fig. 3 have the same functions, and a detailed description of these components will be omitted for the sake of brevity.
  • the virtual bus driver on the VM side sends a remote access request to the TC end via the device server on the VM side, and/or receives the remote end of the TC end. Response data.
  • the step S330 may specifically include the following steps: Step S430: The virtual bus driver sends a remote access request to the device server at the VM side. Step S440: The device server receives the received remote access request. Forward to the TC side.
  • the device server on the VM side can receive data sent by the virtual bus driver, for example, remote response data of the physical device at the TC end, and the device server can forward the remote access request to the network connected between the TC end and the VM end.
  • the TC side so that the TC side processes the remote access request.
  • the device server may first convert the remote response data into data of the network transmission protocol supporting the TC end and the VM end, and then send the data to the VM Mountain.
  • Step S450 The device server at the VM end receives the remote response data sent by the TC terminal;
  • Step S460 the device server receives the received Remote response data is forwarded to the virtual bus driver;
  • Step S470 The virtual bus driver forwards the received remote response data to the virtual device driver.
  • Step S480 The virtual device driver forwards the received remote response data to the application on the TC side.
  • the device server may receive, by using a network, data sent by the VM end based on a network transmission protocol between the TC end and the VM end, for example, remote response data of the physical device of the TC, and the device server forwards the remote response data to the virtual device.
  • the bus driver is configured to cause the virtual bus driver to process the remote response data.
  • the device server on the TC side may firstly parse the received data to obtain the remote response data based on the network transmission protocol between the TC end and the VM end, and then send the data to the virtual bus driver.
  • the step S310 may specifically include the following steps: Step S410: The virtual device driver receives the virtual operation sent by the application of the VM end, and the virtual device driver receives the virtual The operation instructions are forwarded to the virtual bus driver.
  • the virtual bus driver of the VM side can receive the virtual operation instruction of the VM-side application to the VM side, that is, the application needs to access the physical device corresponding to the TC end, the virtual bus driver forwards the virtual operation instruction to the virtual terminal driver.
  • a virtual bus driver to cause the virtual bus driver to process the virtual operation instruction.
  • the physical device is a smart card connected to the TC end through a universal serial bus.
  • the virtual bus driver is a virtual universal serial bus driver
  • the remote access request is a remote universal serial bus request message
  • the virtual operation instruction is a local universal serial bus request message
  • the remote response data is a local universal serial bus response message.
  • the virtual device corresponding to the physical device on the TC side can be loaded accordingly.
  • the VM has not been installed before the virtual machine
  • the device initializes the virtual device to load the virtual device. If the virtual device has been installed before the VM is installed, the driver of the virtual device is directly loaded according to the installation information of the virtual device to load the virtual device. After the VM side loads the virtual device, the virtual device driver corresponding to the virtual device is set on the VM side. In addition, after the VM side loads the virtual device, the system may prompt the VM to have a new virtual device loaded, so that the VM-side application can access the virtual device normally.
  • the device server on the VM side can receive the device information sent by the TC, for example, the device type and the device identifier of the physical device.
  • the device information can be actively queried and the device information returned by the TC terminal can be received.
  • the device server receives the unplugging notification of the physical device sent by the TC, the corresponding virtual device can be uninstalled according to the same, so that the virtual device on the VM side and the physical device on the TC end perform the same loading and the same.
  • the unplugging notification may also carry the device information of the physical device, so that the VM end determines which virtual device is to be uninstalled.
  • Fig. 5 is a block diagram showing a TC terminal according to Embodiment 5 of the present invention.
  • the TC terminal mainly includes: a bus filter driver 510 and a physical device driver 520.
  • the bus filter driver 510 is configured to receive a remote access request of the VM end to the physical device 530 of the TC end; convert the remote access request into a remote operation instruction that the physical device driver 520 can read;
  • the physical device driver 520 sends the remote operation instruction, the remote operation instruction is used to instruct the physical device driver 520 to drive the physical device 530 to perform a read/write operation, and return a remote carrying the execution result of the read and write operation.
  • Response data is provided.
  • the physical device driver 520 is configured to receive a local operation instruction of the application of the TC terminal to the physical device, and drive the physical device to perform reading and writing according to the local operation instruction. The operation returns and returns the local response data carrying the execution result of the read and write operation.
  • the TC end is used to implement a specific mechanism and a beneficial effect of remote access of the device, and Figure 1 and its related description.
  • Fig. 6 is a block diagram showing a TC terminal according to Embodiment 6 of the present invention.
  • the same components in Fig. 6 as those in Fig. 5 have the same functions, and a detailed description of these components will be omitted for the sake of brevity.
  • the main difference between the TC terminal shown in FIG. 6 and the TC terminal shown in FIG. 5 is that the device server 610 is further included.
  • the device server 610 is configured to receive a remote access request of the VM and forward the request to the bus filter driver 510.
  • the bus filter driver 510 is further configured to receive the remote access request of the device server 610.
  • the physical device driver 520 is further configured to receive the remote response data of the physical device 530 and forward the data to the bus filter driver 510.
  • the bus filter driver 510 is further configured to receive the remote response data of the physical device driver 520 and forward the data to the device server 610.
  • the device server 610 is further configured to receive the remote response data of the bus filter driver 510 and forward the data to the VM end.
  • the physical device 530 is a smart card connected to the TC terminal through a universal serial bus.
  • the bus filter driver 510 is a universal serial bus filter driver
  • the remote access request is a remote universal serial bus request message
  • the remote operation command and the local operation command are local universal strings.
  • a line bus request message, the remote response data local response data being a local universal serial bus response message.
  • the TC end is used to implement the specific mechanism and beneficial effects of remote access of the device. Reference may be made to FIG. 2 and related descriptions.
  • FIG. 7 is a block diagram showing a VM side according to Embodiment 7 of the present invention.
  • the VM terminal mainly includes: a virtual bus driver 710 and a virtual device driver 720.
  • the virtual bus The driver 710 is configured to receive a virtual operation instruction of the application of the VM end to the virtual device driver 720 of the VM end, and convert the virtual operation instruction into a remote access request that can be read by the bus filter driver of the TC end; Sending, by the TC end, the remote access request, the remote access request is used to instruct the bus filter driver to convert the remote access request into a remote operation command that can be read by a physical device driver of the TC end, the remote The operation instruction is configured to instruct the physical device driver to drive the physical device to perform a read/write operation, and return remote response data carrying an execution result of the read/write operation.
  • the VM side is used to implement the specific mechanism and beneficial effects of remote access of the device. Reference may be made to FIG. 3 and related descriptions.
  • FIG. 8 is a block diagram showing a VM side according to Embodiment 8 of the present invention.
  • the same components in Fig. 8 as those in Fig. 7 have the same functions, and a detailed description of these components will be omitted for the sake of brevity.
  • the main difference between the VM side shown in FIG. 8 and the VM side shown in FIG. 7 is that the device server 810 is also included.
  • the device server 810 is configured to receive the remote access request of the virtual bus driver 710 and forward the request to the VM end.
  • the device server 810 is further configured to receive the remote response data of the VM end and forward the data to the virtual bus driver.
  • the virtual bus driver 710 is further configured to receive the remote response data of the device server 810 and forward the data to the virtual device driver 720.
  • the virtual device driver 720 is further configured to receive the remote response data of the virtual bus driver 710 and forward the data to the application.
  • the virtual device driver 720 is further configured to receive the virtual operation instruction of the application and forward the instruction to the virtual bus driver 710.
  • the virtual bus driver 710 is further configured to receive the virtual operation instruction of the virtual device driver 720.
  • the physical device is connected to the universal serial bus The smart card at the TC end.
  • the virtual bus driver 710 is a virtual universal serial bus driver
  • the remote access request is a remote universal serial bus request message
  • the virtual operation instruction is a local universal serial bus request message
  • the remote response data is a local universal serial bus response message.
  • the VM is used to implement the specific mechanism and beneficial effects of remote access of the device. Refer to Figure 4 and its related description.
  • Fig. 9 is a block diagram showing the construction of a TC terminal of Embodiment 9 of the present invention.
  • the TC end 1100 can be a computing server host computer, a personal computer PC, or a portable computer or terminal that can be carried.
  • the specific embodiments of the present invention do not limit the specific implementation of the computing node.
  • the TC end 1100 includes a processor 1110, a communications interface 1120, a memory array 130, and a bus 1140.
  • the processor 1110, the communication interface 1120, and the memory 1130 complete communication with each other through the bus 1140.
  • Communication interface 1120 is for communicating with network devices, such as virtual machine management centers, shared storage, and the like.
  • the processor 1110 is for executing a program.
  • the processor 1110 may be a central processing unit CPU, or an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present invention.
  • ASIC Application Specific Integrated Circuit
  • the memory 1130 is used to store files.
  • the memory 1130 may include a high speed RAM memory and may also include a non-volatile memory such as at least one disk memory.
  • Memory 1130 can also be a memory array.
  • the memory 1130 may also be partitioned, and the blocks may be combined into a virtual volume according to certain rules.
  • the above program may be program code including computer operating instructions.
  • the program can be specifically used to: enable the bus filter driver of the thin client TC side to receive the virtual machine VM Terminating a remote access request to the physical device of the TC end; causing the bus filter driver to convert the remote access request into a remote operation command readable by the physical device driver; causing the bus filter driver to the physical
  • the device driver sends the remote operation instruction, the remote operation instruction is used to instruct the physical device driver to drive the physical device to perform a read/write operation and return remote response data carrying an execution result of the read/write operation.
  • the program is further configured to: enable the physical device driver to receive a local operation instruction of the application of the TC end to the physical device; and cause the physical device driver to perform the local operation instruction according to the local device Driving the physical device to perform a read and write operation and returning local response data carrying an execution result of the read and write operation.
  • the program is further configured to: cause the bus filter driver to receive a remote access request for the physical device sent by the VM end via a device server of the TC side.
  • the program is further configured to: after the bus filter driver sends the remote operation instruction to the physical device driver, cause the bus filter driver to receive the physical device via the physical The remote response data returned by the device driver; the bus filter driver transmits the remote response data to the VM end via the device server.
  • Fig. 10 is a block diagram showing the construction of a VM side of Embodiment 10 of the present invention.
  • the VM side 1200 may be a host server with computing power, a personal computer PC, or a portable computer or terminal that can be carried.
  • the specific embodiments of the present invention do not limit the specific implementation of the computing node.
  • the VM side 1200 includes a processor 1210, a communications interface 1220, a memory array 1230, and a bus 1240.
  • the processor 1110, the communication interface 1220, and the memory 1230 complete communication with each other through the bus 1240.
  • the communication interface 1220 is configured to communicate with a network device, where the network device includes, for example, a virtual machine tube Management center, shared storage, etc.
  • the processor 1210 is for executing a program.
  • the processor 1210 may be a central processing unit CPU, or an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present invention.
  • ASIC Application Specific Integrated Circuit
  • the memory 1230 is used to store files.
  • the memory 1230 may include a high speed RAM memory and may also include a non-volatile memory such as at least one disk memory.
  • Memory 1230 can also be a memory array.
  • Memory 1230 may also be partitioned, and the blocks may be combined into virtual volumes according to certain rules.
  • the above program may be program code including computer operating instructions.
  • the program is specifically configured to: enable a virtual bus driver at the VM side to receive a virtual operation instruction of the VM-side application to the VM device virtual device driver; and cause the virtual bus driver to convert the virtual operation command to the TC terminal a remote access request that the bus filter driver can read, causing the virtual bus driver to send the remote access request to the TC end, the remote access request for instructing the bus filter driver to convert the remote access request a remote operation instruction readable by the physical device driver of the TC end, the remote operation instruction is used to instruct the physical device driver to drive the physical device to perform a read/write operation, and return to perform execution of the read/write operation The resulting remote response data.
  • the program is further configured to: cause the virtual bus driver to receive a virtual operation instruction to the virtual device sent by the application via the virtual device driver.
  • the program is further configured to: cause the virtual bus driver to send the remote access request to the TC end via a device server of the VM side.
  • the program is further configured to: after the virtual bus driver sends the remote access request to the TC end, enable the virtual bus driver to receive the TC end via the VM end Remote response data sent by the device server; the virtual bus driver The remote response data is sent to the application via the virtual device driver.
  • the function is implemented in the form of computer software and sold or used as a stand-alone product, it is considered to some extent that all or part of the technical solution of the present invention (for example, a part contributing to the prior art) is It is embodied in the form of computer software products.
  • the computer software product is typically stored in a computer readable storage medium, including instructions for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of various embodiments of the present invention. .
  • the foregoing storage medium includes various media that can store program codes, such as a USB flash drive, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种设备远程访问的方法、瘦客户端和虚拟机。所述方法包括:瘦客户TC端的总线过滤驱动器接收虚拟机VM端对TC端的物理设备的远程访问请求;总线过滤驱动器将远程访问请求转换为物理设备驱动器能够读取的远程操作指令;总线过滤驱动器向物理设备驱动器发送远程操作指令,远程操作指令用于指示物理设备驱动器驱动物理设备执行读写操作并返回携带有读写操作的执行结果的远程响应数据。本发明的设备远程访问的方法、瘦客户端和虚拟机,能够实现VM端对TC端的物理设备的远程访问,并且由于未修改设备驱动程序,因此TC端能够继续正常访问该物理设备。

Description

设备远程访问的方法 痩客户端和虚拟机 本申请要求于 2013年 11月 14日提交中国专利局、 申请号为 201310567832.7、 发明名称为 "设备远程访问的方法、 瘦客户端和虚拟机" 的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明涉及通信技术领域, 尤其涉及一种设备远程访问的方法、 瘦客 户端和虚拟机。 背景技术
在桌面云系统的应用场景下, 用户可以在远端数据中心的虚拟机 (Virtual Machine, VM端), 通过网络, 实现对本地瘦客户端(Thin Client, TC)所连接的物理设备的远程访问,例如 TC端通过通用串行总线(Universal Serial Bus, USB) 接口连接的智能卡等物理设备。
通常, VM端可以通过重定向技术, 实现上述远程访问。 也就是将 TC 端的物理设备驱动器中设备驱动程序修改为重定向驱动程序, 使该重定向 驱动程序能够读取携带有 VM端请求访问 TC端的物理设备的远程操作指令, 从而使 VM端能够实现对该物理设备的远程访问。
但是, 由于修改后的重定向驱动程序无法读取 TC端的操作指令, 因此 TC端无法继续正常访问该物理设备。 发明内容
技术问题
有鉴于此, 本发明要解决的技术问题是, 如何在不修改 TC端的设备驱 动程序的情况下, 实现 VM端对 TC端的物理设备的远程访问。
解决方案
为了解决上述问题, 在第一方面, 本发明提供了一种设备远程访问的 方法, 用于桌面云系统, 包括: TC端的总线过滤驱动器接收 VM端对所述 TC端的物理设备的远程访问请求; 所述总线过滤驱动器将所述远程访问请 求转换为所述物理设备驱动器能够读取的远程操作指令; 所述总线过滤驱 动器向所述物理设备驱动器发送所述远程操作指令, 所述远程操作指令用 于指示所述物理设备驱动器驱动所述物理设备执行读写操作并返回携带有 所述读写操作的执行结果的远程响应数据。
结合第一方面, 在第一种可能的实现方式中, 在所述总线过滤驱动器 向所述物理设备驱动器发送所述远程操作指令之后, 还包括: 所述总线过 滤驱动器接收所述物理设备经由所述物理设备驱动器返回的所述远程响应 数据; 所述总线过滤驱动器向所述 VM端发送所述远程响应数据。
结合第一方面或其上述可能的实现方式, 在第二种可能的实现方式中, 所述物理设备为通过通用串行总线连接到所述 TC端的智能卡。
结合第一方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述总线过滤驱动器为通用串行总线过滤驱动器, 所述远程访问请求为远 程通用串行总线请求消息, 所述远程操作指令和本地操作指令为本地通用 串行总线请求消息, 所述远程响应数据和本地响应数据为本地通用串行总 线应答消息。
为了解决上述问题, 在第二方面, 本发明提供了一种设备远程访问的 方法, 用于桌面云系统, 包括: VM端的虚拟总线驱动器接收所述 VM端的 应用程序对所述 VM端的虚拟设备驱动器的虚拟操作指令;所述虚拟总线驱 动器将所述虚拟操作指令转换为所述 TC端的总线过滤驱动器能够读取的远 程访问请求; 所述虚拟总线驱动器向所述 TC端发送所述远程访问请求, 所 述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为 所述 TC端的物理设备驱动器能够读取的远程操作指令, 所述远程操作指令 用于指示所述物理设备驱动器驱动所述物理设备执行读写操作, 并返回携 带有所述读写操作的执行结果的远程响应数据。
结合第二方面, 在第一种可能的实现方式中, 在所述虚拟总线驱动器 向所述 TC端发送所述远程访问请求之后, 包括: 所述虚拟总线驱动器接收 所述 TC端发送的远程响应数据; 所述虚拟总线驱动器经由所述虚拟设备驱 动器向所述应用程序发送所述远程响应数据。
结合第二方面或其上述可能的实现方式, 在第二种可能的实现方式中, 所述物理设备为通过通用串行总线连接到所述 TC端的智能卡。
结合第二方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述虚拟总线驱动器为虚拟通用串行总线驱动器, 所述远程访问请求为远 程通用串行总线请求消息, 所述虚拟操作指令为本地通用串行总线请求消 息, 所述远程响应数据为本地通用串行总线应答消息。
为了解决上述问题, 在第三方面, 本发明提供了一种 TC端, 包括总线 过滤驱动器和物理设备驱动器, 所述总线过滤驱动器用于, 接收 VM端对所 述 TC端的物理设备的远程访问请求; 将所述远程访问请求转换为所述物理 设备驱动器能够读取的远程操作指令; 向所述物理设备驱动器发送所述远 程操作指令, 所述远程操作指令用于指示所述物理设备驱动器驱动所述物 理设备执行读写操作, 并返回携带有所述读写操作的执行结果的远程响应 数据。
结合第三方面, 在第一种可能的实现方式中, 所述物理设备驱动器还 用于, 接收所述物理设备的所述远程响应数据并转发给所述总线过滤驱动 器; 所述总线过滤驱动器还用于, 接收所述物理设备驱动器的所述远程响 应数据并转发给所述 VM端。 结合第三方面或其上述可能的实现方式, 在第二种可能的实现方式中, 所述物理设备为通过通用串行总线连接到所述 TC端的智能卡。
结合第三方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述总线过滤驱动器为通用串行总线过滤驱动器, 所述远程访问请求为远 程通用串行总线请求消息, 所述远程操作指令和本地操作指令为本地通用 串行总线请求消息, 所述远程响应数据本地响应数据为本地通用串行总线 应答消息。
为了解决上述问题, 在第四方面, 本发明提供了一种 VM端, 包括虚拟 总线驱动器和虚拟设备驱动器, 所述虚拟总线驱动器用于, 接收所述 VM端 的应用程序对所述 VM端的虚拟设备驱动器的虚拟操作指令;将所述虚拟操 作指令转换为所述 TC端的总线过滤驱动器能够读取的远程访问请求; 向所 述 TC端发送所述远程访问请求, 所述远程访问请求用于指示所述总线过滤 驱动器将所述远程访问请求转换为所述 TC端的物理设备驱动器能够读取的 远程操作指令, 所述远程操作指令用于指示所述物理设备驱动器驱动所述 物理设备执行读写操作, 并返回携带有所述读写操作的执行结果的远程响 应数据。
结合第四方面或其上述可能的实现方式, 在第二种可能的实现方式中, 所述虚拟总线驱动器还用于,接收所述 VM端的所述远程响应数据并转发给 所述虚拟设备驱动器; 所述虚拟设备驱动器还用于, 接收所述虚拟总线驱 动器的所述远程响应数据并转发给所述应用程序。
结合第四方面或其上述可能的实现方式, 在第三种可能的实现方式中, 所述物理设备为通过通用串行总线连接到所述 TC端的智能卡。
结合第四方面的第三种可能的实现方式, 在第四种可能的实现方式中, 所述虚拟总线驱动器为虚拟通用串行总线驱动器, 所述远程访问请求为远 程通用串行总线请求消息, 所述虚拟操作指令为本地通用串行总线请求消 息, 所述远程响应数据为本地通用串行总线应答消息。
有益效果
通过 TC端的总线过滤驱动器接收 VM端对 TC端的物理设备的远程访问 请求, 并将其转换为 TC端的物理设备驱动器能够读取的操作指令, 根据本 发明实施例的设备远程访问的方法、 瘦客户端和虚拟机, 能够实现 VM端对 TC端的物理设备的远程访问, 并且由于未修改设备驱动程序, 因此 TC端能 够继续正常访问该物理设备。
根据下面参考附图对示例性实施例的详细说明, 本发明的其它特征及 方面将变得清楚。 附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了 本发明的示例性实施例、 特征和方面, 并且用于解释本发明的原理。
图 1示出根据本发明实施例 1的设备远程访问的方法的流程图 ·, 图 2示出根据本发明实施例 2的设备远程访问的方法的流程图; 图 3示出根据本发明实施例 3的设备远程访问的方法的流程图; 图 4示出根据本发明实施例 4的设备远程访问的方法的流程图; 图 5示出根据本发明实施例 5的 TC端的框图;
图 6示出根据本发明实施例 6的 TC端的框图;
图 7示出根据本发明实施例 7的 VM端的框图;
图 8示出根据本发明实施例 8的 VM端的框图;
图 9示出根据本发明实施例 9的 TC端的框图;
图 10示出根据本发明实施例 10的 VM端的框图。 具体实施方式 以下将参考附图详细说明本发明的各种示例性实施例、 特征和方面。 附图中相同的附图标记表示功能相同或相似的元件。 尽管在附图中示出了 实施例的各种方面, 但是除非特别指出, 不必按比例绘制附图。
在这里专用的词"示例性 "意为 "用作例子、实施例或说明性"。这里作为 "示例性"所说明的任何实施例不必解释为优于或好于其它实施例。
另外, 为了更好的说明本发明, 在下文的具体实施方式中给出了众多 的具体细节。 本领域技术人员应当理解, 没有某些具体细节, 本发明同样 可以实施。 在一些实例中, 对于本领域技术人员熟知的方法、 手段、 元件 和电路未作详细描述, 以便于凸显本发明的主旨。
实施例 1
图 1示出根据本发明一实施例的设备远程访问的方法的流程图。 如图 1 所示, 该设备远程访问的方法主要包括:
歩骤 S110、 TC端的总线过滤驱动器接收 VM端对所述 TC端的物理设备 的远程访问请求。
具体地,在桌面云的应用场景下,本地 TC端和远程 VM端通过网络连接。 TC端连接有一个或多个物理设备。 TC端设置有总线过滤驱动器。 若 VM端 的应用程序要访问 TC端所连接的物理设备, 则 TC端可以从 VM端接收对 TC 端的物理设备的远程访问请求。 其中, 远程访问请求携带有 VM端的应用程 序请求访问 TC端的物理设备的信息。 其中, 物理设备可以通过各种总线接 口, 例如 USB接口, 连接到 TC端。 根据物理设备的类型, 可以相应地设置 总线过滤驱动器的类型。 例如: 若智能卡通过 USB接口连接到 TC端, 则总 线过滤驱动器为 USB总线过滤驱动器。 物理设备可以为智能卡或其他设备。
此外, 远程访问请求还可以携带有物理设备的标识信息, TC端可以根 据该标识信息, 确定 VM端所要访问的具体物理设备; 和 /或可以携带有 VM 端的标识信息, TC端可以根据该标识信息, 确定该远程访问请求来自具体 哪个 VM端和 /或 VM端的具体哪个应用程序。
歩骤 S120、 所述总线过滤驱动器将所述远程访问请求转换为所述物理 设备驱动器能够读取的远程操作指令。
具体地, TC端的总线过滤驱动器首先判断所接收到的指令是否为 VM 端的远程访问请求。总线过滤驱动器仅处理所接收到的 VM端的远程访问请 求, 而对其他指令不进行处理。 若是, 则总线过滤驱动器根据该远程访问 请求, 生成对 TC端对应的物理设备驱动器的远程操作指令, 也就是将该远 程访问请求转换为 TC端对应的物理设备驱动器能读取的远程操作指令。
歩骤 S130、 所述总线过滤驱动器向所述物理设备驱动器发送所述远程 操作指令, 所述远程操作指令用于指示所述物理设备驱动器驱动所述物理 设备执行读写操作并返回携带有所述读写操作的执行结果的远程响应数 据。
举例而言, 总线过滤驱动器向物理设备驱动器发送远程操作指令。 物 理设备驱动器根据该远程操作指令, 生成物理设备能够读取的远程驱动指 令, 并将该远程驱动指令发送至物理设备。 物理设备根据该远程驱动指令, 执行相应的读写操作, 根据读写操作的执行结果, 生成远程响应数据, 并 将远程响应数据返回至物理设备驱动器。 其中, 物理设备执行的读写操作 可以包括:读取物理设备中已有的数据,如 VM端用于鉴权的用户身份信息; 或者将数据写入到物理设备。 其中, 远程响应数据中可以包括 VM端的标识 信息, TC端可以根据该标识信息,确定向具体哪个 VM端发送远程响应数据; 还可以携带有 TC端的标识信息, VM端可以根据该标识信息,确定该响应数 据来自具体哪个 TC端。
此外, 由于未修改设备驱动程序, 因此物理设备驱动器仍然能够响应 于 TC端的应用程序发来的本地访问请求, 从而保证 TC端的应用程序可以继 续访问物理设备, 而不受 VM端的远程访问请求的影响。 在一种可能的实现方式中, 所述物理设备驱动器可以接收所述 TC端的 应用程序对所述物理设备的本地操作指令; 所述物理设备驱动器根据所述 本地操作指令, 驱动所述物理设备执行读写操作并返回携带有所述读写操 作的执行结果的本地响应数据。
具体地, 若物理设备驱动器接收到本地 TC端的应用程序发来的本地操 作指令, 则据此生成物理设备能够读取的本地驱动指令, 并将该本地驱动 指令发送至物理设备。 物理设备根据该本地驱动指令, 执行相应的读写操 作, 例如读取物理设备中已有的数据 (如 VM端用于鉴权的用户身份信息) 或者将数据写入到物理设备。 物理设备根据读写操作的执行结果, 生成本 地响应数据, 并将该本地响应数据返回至物理设备驱动器。 物理设备驱动 器据此向 TC端的该应用程序转发该本地响应数据。
举例而言,用户可以在 TC端请求远程登录到远端数据中心即 VM端的桌 面云系统。 桌面云系统读取连接到 TC端的智能卡中的数据进行鉴权操作, 在鉴权成功后,用户可以在 TC端远程登录到 VM端。若用户还需要登录本地 TC端的应用程序, 则用户可以继续读取本地 TC端的智能卡中的数据, 针对 本地 TC端的应用程序进行鉴权操作。
需要说明的是, 可以根据各指令到达物理设备驱动器的先后顺序, 依 次处理本地操作指令和远程操作指令, 从而依次响应于 TC端的本地访问请 求和 VM端的远程访问请求。
这样, 通过 TC端的总线过滤驱动器接收 VM端对 TC端的物理设备的远 程访问请求, 并将其转换为 TC端的物理设备驱动器能够读取的操作指令, 能够实现 VM端对 TC端的物理设备的远程访问,并且由于未修改设备驱动程 序, 因此 TC端能够继续正常访问该物理设备。
此外, 由于该总线过滤驱动器无需对本地已有的 USB指令做任何修改, 因此相比于现有技术中 USB重定向的方法, 本实施例的方法适用于 TC端已 有的各种应用程序和各种物理设备, 并且不会影响物理设备远程访问的速 度。 由于未使用 PC/SC协议, 因此相比于现有技术中 PC/SC协议重定向的方 法,本实施例的方法无需物理设备支持 PC/SC协议,从而具有很好的兼容性。
实施例 2
图 2示出根据本发明实施例 2的一设备远程访问的方法的流程图。 图 2中 标号与图 1中相同的组件具有相同的功能, 为简明起见, 省略对这些组件的 详细说明。
如图 2所示, 图 2所示的方法与图 1所示的方法的主要区别在于: 歩骤 S130之后, 总线过滤驱动器还可以接收物理设备经由物理设备驱动器返回 的远程响应数据, 并向 VM端发送远程响应数据。
在一种可能的实现方式中, 歩骤 S110可以具体包括以下歩骤: 歩骤 S210、 TC端的设备服务器接收 VM端发送的对物理设备的远程访 问请求;
歩骤 S220、 总线过滤驱动器接收 TC端的设备服务器发送的对物理设备 的远程访问请求。
具体地, TC端设置有设备服务器。设备服务器可以通过网络, 接收 VM 端基于 TC端与 VM端之间的网络传输协议发来的数据,例如 VM端对 TC端的 物理设备的远程访问请求, 则设备服务器将该远程访问请求转发给总线过 滤驱动器, 以使总线过滤驱动器处理该远程访问请求。 其中, TC端的设备 服务器还可以首先基于 TC端与 VM端之间的网络传输协议,解析所接收到的 数据以得到远程访问请求后, 再发送给总线过滤驱动器。
举例而言, 如果物理设备驱动器接收到总线过滤驱动器发来的远程操 作指令, 则据此生成远程响应数据的流程, 具体可以包括以下歩骤:
歩骤 S230、 物理设备驱动器根据所接收到的总线过滤驱动器的远程操 作指令, 生成物理设备能够读取的远程驱动指令; 歩骤 S240、 物理设备驱动器将该远程驱动指令发送至物理设备; 歩骤 S250、 物理设备根据所接收到的该远程驱动指令, 执行相应的读 写操作, 并根据读写操作的执行结果, 生成远程响应数据;
歩骤 S260、 物理设备将该远程响应数据发送至物理设备驱动器。
在一种可能的实现方式中, 歩骤 S130之后, 还可以具体包括以下歩骤: 歩骤 S270、 物理设备驱动器将所接收到的远程响应数据转发至总线过 滤驱动器;
歩骤 S280、 总线过滤驱动器将所接收到的远程响应数据转发至 TC端的 设备服务器;
歩骤 S290、 设备服务器将所接收到的远程响应数据转发至 VM端。
具体地, 设备服务器可以接收总线过滤驱动器发来的数据, 例如 TC端 的物理设备的远程响应数据,则设备服务器可以通过 TC端与 VM端之间连接 的网络, 将该远程响应数据转发给 VM端, 以使 VM端处理该远程响应数据。 其中, 为了满足网络传输的需要, TC端的设备服务器还可以先将远程响应 数据转换为支持 TC端和 VM端的网络传输协议的数据后, 再发送给 VM端。
在一种可能的实现方式中, 所述物理设备为通过通用串行总线连接到 所述 TC端的智能卡。
在一种可能的实现方式中, 所述总线过滤驱动器为通用串行总线过滤 驱动器, 所述远程访问请求为远程通用串行总线请求消息, 所述远程操作 指令和本地操作指令为本地通用串行总线请求消息, 所述远程响应数据和 本地响应数据为本地通用串行总线应答消息。
举例而言, 若物理设备是通过 USB接口连接到 TC端的智能卡, 贝 ijTC端 相应地设置有 USB总线过滤驱动器。 USB总线过滤驱动器可以接收 VM端的 远程通用串行总线请求消息(USB Request Block, URB), 该远程 URB请求 消息携带有对该智能卡的远程访问请求的信息; 据此生成本地 URB请求消 息(USB Request Block, URB), 并向智能卡驱动器发送该本地 URB请求消 息, 该本地请求 URB消息携带有对该智能卡的远程操作指令的信息。 本地 TC端的应用程序也可以向智能卡驱动器发送本地 URB请求消息。 智能卡执 行对应的读写操作, 生成本地 URB应答消息, 并向智能卡驱动器返回该本 地 URB应答消息, 该本地 URB应答消息携带有远程响应数据或本地响应数 据的信息。 智能卡驱动器根据本地 URB应答消息的内容, 向 USB总线过滤 驱动器返回该远程响应数据, 或向本地 TC端的应用程序返回该本地响应数 据。
此外, TC端的设备服务器还可以检测用户是否将物理设备插入 TC端。 若检测到有物理设备插入 TC端, 贝 i」TC端的设备服务器向 VM端发送对应于 该物理设备的插入通知, 以使 VM端据此加载与该物理设备对应的虚拟设 备。 TC端的设备服务器还可以接收 VM端发来的对该物理设备的查询请求或 者主动查询设备信息, 并根据所查询该物理设备的设备信息, 向 VM端发送 该设备信息, 以使 VM端加载与该物理设备对应的虚拟设备。 其中, 设备信 息可以包括该物理设备的设备类型和设备标识等设备信息。 另外, TC端的 设备服务器还可以检测是否有物理设备自 TC端拔出。 若检测到有物理设备 自 TC端拔出, 则 TC端的设备服务器向 VM端发送对应于该物理设备的拔出 通知, 以使 VM端卸载与该物理设备对应的虚拟设备, 以使 VM端的虚拟设 备与 TC端的物理设备实现同歩加载与同歩卸载。 其中, 拔出通知也可以携 带有该物理设备的设备信息, 以使 VM端确定所要卸载的具体虚拟设备。
实施例 3
图 3示出根据本发明实施例 3的一设备远程访问的方法的流程图。 如图 3 所示, 该设备远程访问的方法主要包括:
歩骤 S310、 VM端的虚拟总线驱动器接收所述 VM端的应用程序对所述 VM端的虚拟设备驱动器的虚拟操作指令。 具体地, VM端设置有虚拟总线驱动器和虚拟设备驱动器。 VM端根据 对 TC端的物理设备进行远程访问的需要,通过在 VM端设置虚拟总线驱动器 和虚拟设备驱动器的方式,使 VM端加载一个与 TC端的该物理设备对应的虚 拟设备。 若 VM端的应用程序要访问 TC端的该物理设备, 则 VM端的虚拟总 线驱动器可以接收到所述 VM端的应用程序对所述 VM端的虚拟设备驱动器 的虚拟操作指令。 其中, 物理设备可以通过各种总线接口, 例如通用串行 总线 (Universal Serial Bus, USB ) 接口, 连接到 TC端。 根据物理设备的类 型, 可以相应地设置 VM端的虚拟总线驱动器的类型。 例如: 若智能卡通过 USB接口连接到 TC端,则 VM端的虚拟总线驱动器可以设置为虚拟 USB总线 驱动器。 此外, 物理设备可以为智能卡或其他设备。
歩骤 S320、 所述虚拟总线驱动器将所述虚拟操作指令转换为所述 TC端 的总线过滤驱动器能够读取的远程访问请求。
具体地, 虚拟总线驱动器根据该虚拟操作指令, 生成对 TC端对应的物 理设备的远程访问请求, 也就是将该虚拟操作指令转换为 TC端对应的总线 过滤驱动器能读取的远程访问请求。 其中, 远程访问请求携带有 VM端的应 用程序请求访问 TC端对应的物理设备的信息; 还可以携带有物理设备的标 识信息, 以使 TC端可以根据该标识信息,确定 VM端所要访问的具体物理设 备; 和 /或可以携带有 VM端的标识信息, 以使 TC端可以根据该标识信息, 确定该远程访问请求来自具体哪个 VM端和 /或 VM端的具体哪个应用程序。
歩骤 S330、 所述虚拟总线驱动器向所述 TC端发送所述远程访问请求。 具体地, 远程访问请求, 用于指示总线过滤驱动器将远程访问请求转 换为 TC端的物理设备驱动器能够读取的远程操作指令。 该远程操作指令, 用于指示物理设备驱动器驱动对应的物理设备执行读写操作, 并返回携带 有读写操作的执行结果的远程响应数据。
这样, 通过 VM端的虚拟总线驱动器接收到 VM端的应用程序对 TC端的 物理设备的虚拟操作指令, 并将其转换为 TC端的总线过滤驱动器能够读取 的远程访问请求, 能够实现 VM端的应用程序对 TC端的物理设备的远程访 问。
实施例 4
图 4示出根据本发明实施例 4的一设备远程访问的方法的流程图。 图 4中 标号与图 3中相同的组件具有相同的功能, 为简明起见, 省略对这些组件的 详细说明。
如图 4所示, 图 4所示的方法与图 3所示的方法的主要区别在于: VM端 的虚拟总线驱动器经由 VM端的设备服务器, 向 TC端发送远程访问请求,和 /或接收 TC端的远程响应数据。
在一种可能的实现方式中, 歩骤 S330可以具体包括以下歩骤: 歩骤 S430、 虚拟总线驱动器向 VM端的设备服务器发送远程访问请求; 歩骤 S440、 设备服务器将所接收到的远程访问请求转发至 TC端。
具体地, VM端的设备服务器可以接收虚拟总线驱动器发来的数据, 例 如 TC端的物理设备的远程响应数据, 则设备服务器可以通过 TC端与 VM端 之间连接的网络, 将该远程访问请求转发给 TC端, 以使 TC端处理该远程访 问请求。 其中, 为了满足网络传输的需要, 设备服务器还可以先将远程响 应数据转换为支持 TC端和 VM端的网络传输协议的数据后, 再发送给 VM 山
¾。
在一种可能的实现方式中, 歩骤 S330之后, 还可以包括以下歩骤: 歩骤 S450、 VM端的设备服务器接收 TC端发来的远程响应数据; 歩骤 S460、 设备服务器将所接收到的远程响应数据转发至虚拟总线驱 动器;
歩骤 S470、 虚拟总线驱动器将所接收到的远程响应数据转发至虚拟设 备驱动器; 歩骤 S480、 虚拟设备驱动器将所接收到的远程响应数据转发至 TC端的 应用程序。
具体地, 设备服务器可以通过网络, 接收 VM端基于 TC端与 VM端之间 的网络传输协议发来的数据, 例如 TC的物理设备的远程响应数据, 则设备 服务器将该远程响应数据转发给虚拟总线驱动器, 以使虚拟总线驱动器处 理该远程响应数据求。其中, TC端的设备服务器还可以首先基于 TC端与 VM 端之间的网络传输协议, 解析所接收到的数据以得到远程响应数据后, 再 发送给虚拟总线驱动器。
在一种可能的实现方式中, 歩骤 S310可以具体包括以下歩骤: 歩骤 S410、 虚拟设备驱动器接收 VM端的应用程序发来的虚拟操作指 歩骤 S420、 虚拟设备驱动器将所接收到的虚拟操作指令转发至虚拟总 线驱动器。
具体地, 若 VM端的虚拟设备驱动器可以接收到所述 VM端的应用程序 对 VM端的虚拟操作指令, 也就是该应用程序需要访问 TC端对应的物理设 备, 则虚拟总线驱动器将该虚拟操作指令转发给虚拟总线驱动器, 以使虚 拟总线驱动器处理该虚拟操作指令。
在一种可能的实现方式中, 所述物理设备为通过通用串行总线连接到 所述 TC端的智能卡。
在一种可能的实现方式中, 所述虚拟总线驱动器为虚拟通用串行总线 驱动器, 所述远程访问请求为远程通用串行总线请求消息, 所述虚拟操作 指令为本地通用串行总线请求消息, 所述远程响应数据为本地通用串行总 线应答消息。
举例而言,若 VM端的设备服务器接收到 TC端发来的插入通知,则可以 据此加载与 TC端的物理设备对应的虚拟设备。若 VM端之前未安装过该虚拟 设备, 则初始化该虚拟设备, 以加载该虚拟设备。 若 VM端之前已经安装过 该虚拟设备, 则根据该虚拟设备的安装信息, 直接加载该虚拟设备的驱动 程序, 以加载该虚拟设备。 VM端加载该虚拟设备之后, 即在 VM端上设置 了与该虚拟设备对应的虚拟设备驱动器。此外, VM端加载该虚拟设备之后, 可以通过系统消息, 提示 VM端有新的虚拟设备加载, 以使 VM端的应用程 序可以正常访问该虚拟设备。其中, VM端的设备服务器可以接收到 TC端主 动发来的设备信息, 例如该物理设备的设备类型和设备标识等信息; 也可 以主动查询设备信息, 并接收 TC端据此返回的设备信息。 此外, 若设备服 务器接收到 TC端发来的物理设备的拔出通知, 则可以据此卸载对应的虚拟 设备, 以使 VM端的虚拟设备与 TC端的物理设备实现同歩加载与同歩卸载。 其中, 拔出通知也可以携带有该物理设备的设备信息, 以使 VM端确定所要 卸载的具体是哪个虚拟设备。
实施例 5
图 5示出根据本发明实施例 5的一 TC端的框图。 如图 5所示, 该 TC端主 要包括: 总线过滤驱动器 510和物理设备驱动器 520。 其中, 总线过滤驱动 器 510用于,接收 VM端对所述 TC端的物理设备 530的远程访问请求;将所述 远程访问请求转换为所述物理设备驱动器 520能够读取的远程操作指令; 向 所述物理设备驱动器 520发送所述远程操作指令, 所述远程操作指令用于指 示所述物理设备驱动器 520驱动所述物理设备 530执行读写操作, 并返回携 带有所述读写操作的执行结果的远程响应数据。
在一种可能的实现方式中,所述物理设备驱动器 520用于,接收所述 TC 端的应用程序对所述物理设备的本地操作指令; 根据所述本地操作指令, 驱动所述物理设备执行读写操作并返回携带有所述读写操作的执行结果的 本地响应数据。
其中, 该 TC端用于实现设备远程访问的具体机制和有益效果, 可以参 考图 1及其相关描述。
实施例 6
图 6示出根据本发明实施例 6的一 TC端的框图。 图 6中标号与图 5中相同 的组件具有相同的功能, 为简明起见, 省略对这些组件的详细说明。
如图 6所示, 图 6所示的 TC端与图 5所示的 TC端的主要区别在于: 还包 括设备服务器 610。
具言之, 所述设备服务器 610, 用于接收所述 VM端的远程访问请求并 转发给所述总线过滤驱动器 510。 所述总线过滤驱动器 510, 还用于接收所 述设备服务器 610的所述远程访问请求。
在一种可能的实现方式中, 所述物理设备驱动器 520还用于, 接收所述 物理设备 530的所述远程响应数据并转发给所述总线过滤驱动器 510。 所述 总线过滤驱动器 510还用于, 接收所述物理设备驱动器 520的所述远程响应 数据并转发给所述设备服务器 610。 所述设备服务器 610还用于, 接收所述 总线过滤驱动器 510的所述远程响应数据并转发给所述 VM端。
在一种可能的实现方式中, 所述物理设备 530为通过通用串行总线连接 到所述 TC端的智能卡。
在一种可能的实现方式中, 所述总线过滤驱动器 510为通用串行总线过 滤驱动器, 所述远程访问请求为远程通用串行总线请求消息, 所述远程操 作指令和本地操作指令为本地通用串行总线请求消息, 所述远程响应数据 本地响应数据为本地通用串行总线应答消息。
其中, 该 TC端用于实现设备远程访问的具体机制和有益效果, 可以参 考图 2及其相关描述。
实施例 7
图 7示出根据本发明实施例 7的一 VM端的框图。如图 7所示, 该 VM端主 要包括: 虚拟总线驱动器 710和虚拟设备驱动器 720。 其中, 所述虚拟总线 驱动器 710用于,接收所述 VM端的应用程序对所述 VM端的虚拟设备驱动器 720的虚拟操作指令;将所述虚拟操作指令转换为所述 TC端的总线过滤驱动 器能够读取的远程访问请求; 向所述 TC端发送所述远程访问请求, 所述远 程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述 TC端的物理设备驱动器能够读取的远程操作指令, 所述远程操作指令用于 指示所述物理设备驱动器驱动所述物理设备执行读写操作, 并返回携带有 所述读写操作的执行结果的远程响应数据。
其中, 该 VM端用于实现设备远程访问的具体机制和有益效果, 可以参 考图 3及其相关描述。
实施例 8
图 8示出根据本发明实施例 8的一 VM端的框图。图 8中标号与图 7中相同 的组件具有相同的功能, 为简明起见, 省略对这些组件的详细说明。
如图 8所示, 图 8所示的 VM端与图 7所示的 VM端的主要区别在于: 还包 括设备服务器 810。
具言之, 所述设备服务器 810, 用于接收所述虚拟总线驱动器 710的所 述远程访问请求并转发给所述 VM端。
在一种可能的实现方式中, 所述设备服务器 810还用于, 接收所述 VM 端的所述远程响应数据并转发给所述虚拟总线驱动器。 所述虚拟总线驱动 器 710还用于, 接收所述设备服务器 810的所述远程响应数据并转发给所述 虚拟设备驱动器 720。 所述虚拟设备驱动器 720还用于, 接收所述虚拟总线 驱动器 710的所述远程响应数据并转发给所述应用程序。
在一种可能的实现方式中, 所述虚拟设备驱动器 720还用于, 接收所述 应用程序的所述虚拟操作指令并转发给所述虚拟总线驱动器 710。所述虚拟 总线驱动器 710还用于, 接收所述虚拟设备驱动器 720的所述虚拟操作指令。
在一种可能的实现方式中, 所述物理设备为通过通用串行总线连接到 所述 TC端的智能卡。
在一种可能的实现方式中, 所述虚拟总线驱动器 710为虚拟通用串行总 线驱动器, 所述远程访问请求为远程通用串行总线请求消息, 所述虚拟操 作指令为本地通用串行总线请求消息, 所述远程响应数据为本地通用串行 总线应答消息。
其中, 该 VM端用于实现设备远程访问的具体机制和有益效果, 可以参 考图 4及其相关描述。
实施例 9
图 9示出了本发明的实施例 9的一 TC端的结构框图。所述 TC端 1100可以 是具备计算能力的主机服务器、 个人计算机 PC、 或者可携带的便携式计算 机或终端等。 本发明具体实施例并不对计算节点的具体实现做限定。
所述 TC端 1100包括处理器 (processor)1110、 通信接口(Communications Interface)1120、 存储器 (memory array)l 130和总线 1140。 其中, 处理器 1110、 通信接口 1120、 以及存储器 1130通过总线 1140完成相互间的通信。
通信接口 1120用于与网络设备通信, 其中网络设备包括例如虚拟机管 理中心、 共享存储等。
处理器 1110用于执行程序。处理器 1110可能是一个中央处理器 CPU, 或 者是专用集成电路 ASIC (Application Specific Integrated Circuit) , 或者是被 配置成实施本发明实施例的一个或多个集成电路。
存储器 1130用于存放文件。 存储器 1130可能包含高速 RAM存储器, 也 可能还包括非易失性存储器 (non-volatile memory), 例如至少一个磁盘存储 器。 存储器 1130也可以是存储器阵列。 存储器 1130还可能被分块, 并且所 述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中, 上述程序可为包括计算机操作指令的程序 代码。该程序具体可用于:使瘦客户 TC端的总线过滤驱动器接收虚拟机 VM 端对所述 TC端的物理设备的远程访问请求; 使所述总线过滤驱动器将所述 远程访问请求转换为所述物理设备驱动器能够读取的远程操作指令; 使所 述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令, 所述远 程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作 并返回携带有所述读写操作的执行结果的远程响应数据。
在一种可能的实施方式中, 该程序还可用于: 使所述物理设备驱动器 接收所述 TC端的应用程序对所述物理设备的本地操作指令; 使所述物理设 备驱动器根据所述本地操作指令, 驱动所述物理设备执行读写操作并返回 携带有所述读写操作的执行结果的本地响应数据。
在一种可能的实施方式中, 该程序还可用于: 使所述总线过滤驱动器 接收所述 VM端经由所述 TC端的设备服务器发送的对所述物理设备的远程 访问请求。
在一种可能的实施方式中, 该程序还可用于: 在所述总线过滤驱动器 向所述物理设备驱动器发送所述远程操作指令之后, 使所述总线过滤驱动 器接收所述物理设备经由所述物理设备驱动器返回的所述远程响应数据; 所述总线过滤驱动器经由所述设备服务器, 向所述 VM端发送所述远程响应 数据。
实施例 10
图 10示出了本发明的实施例 10的一 VM端的结构框图。 所述 VM端 1200 可以是具备计算能力的主机服务器、 个人计算机 PC、 或者可携带的便携式 计算机或终端等。 本发明具体实施例并不对计算节点的具体实现做限定。
所述 VM端 1200包括处理器 (processor)1210、 通信接口(Communications Interface)1220、 存储器 (memory array)1230和总线 1240。 其中, 处理器 1110、 通信接口 1220、 以及存储器 1230通过总线 1240完成相互间的通信。
通信接口 1220用于与网络设备通信, 其中网络设备包括例如虚拟机管 理中心、 共享存储等。
处理器 1210用于执行程序。 处理器 1210可能是一个中央处理器 CPU, 或者是专用集成电路 ASIC (Application Specific Integrated Circuit), 或者是 被配置成实施本发明实施例的一个或多个集成电路。
存储器 1230用于存放文件。 存储器 1230可能包含高速 RAM存储器, 也 可能还包括非易失性存储器 (non-volatile memory), 例如至少一个磁盘存储 器。 存储器 1230也可以是存储器阵列。 存储器 1230还可能被分块, 并且所 述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中, 上述程序可为包括计算机操作指令的程序 代码。 该程序具体可用于: 使 VM端的虚拟总线驱动器接收所述 VM端的应 用程序对所述 VM端的虚拟设备驱动器的虚拟操作指令;使所述虚拟总线驱 动器将所述虚拟操作指令转换为所述 TC端的总线过滤驱动器能够读取的远 程访问请求 ·, 使所述虚拟总线驱动器向所述 TC端发送所述远程访问请求, 所述远程访问请求用于指示所述总线过滤驱动器将所述远程访问请求转换 为所述 TC端的物理设备驱动器能够读取的远程操作指令, 所述远程操作指 令用于指示所述物理设备驱动器驱动所述物理设备执行读写操作, 并返回 携带有所述读写操作的执行结果的远程响应数据。
在一种可能的实施方式中, 该程序还可用于: 使所述虚拟总线驱动器 接收所述应用程序经由所述虚拟设备驱动器发送的对所述虚拟设备的虚拟 操作指令。
在一种可能的实施方式中, 该程序还可用于: 使所述虚拟总线驱动器 经由所述 VM端的设备服务器向所述 TC端发送所述远程访问请求。
在一种可能的实施方式中, 该程序还可用于: 在所述虚拟总线驱动器 向所述 TC端发送所述远程访问请求之后, 使所述虚拟总线驱动器接收所述 TC端经由所述 VM端的设备服务器发送的远程响应数据;所述虚拟总线驱动 器经由所述虚拟设备驱动器向所述应用程序发送所述远程响应数据。
本领域普通技术人员可以意识到, 本文所描述的实施例中的各示例性 单元及算法歩骤, 能够以电子硬件、 或者计算机软件和电子硬件的结合来 实现。 这些功能究竟以硬件还是软件形式来实现, 取决于技术方案的特定 应用和设计约束条件。 专业技术人员可以针对特定的应用选择不同的方法 来实现所描述的功能, 但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使 用时, 则在一定程度上可认为本发明的技术方案的全部或部分 (例如对现 有技术做出贡献的部分) 是以计算机软件产品的形式体现的。 该计算机软 件产品通常存储在计算机可读取的存储介质中, 包括若干指令用以使得计 算机设备 (可以是个人计算机、 服务器、 或者网络设备等) 执行本发明各 实施例方法的全部或部分歩骤。 而前述的存储介质包括 U盘、 移动硬盘、 只 读存储器 (ROM, Read-Only Memory )、 随机存取存储器 (RAM, Random Access Memory), 磁碟或者光盘等各种可以存储程序代码的介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局 限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可 轻易想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明 的保护范围应所述以权利要求的保护范围为准。

Claims

权利要求
1、 一种设备远程访问的方法, 用于桌面云系统, 其特征在于, 包括: 瘦客户 TC端的总线过滤驱动器接收虚拟机 VM端对所述 TC端的物理设 备的远程访问请求;
所述总线过滤驱动器将所述远程访问请求转换为所述物理设备驱动器 能够读取的远程操作指令;
所述总线过滤驱动器向所述物理设备驱动器发送所述远程操作指令, 所述远程操作指令用于指示所述物理设备驱动器驱动所述物理设备执行读 写操作并返回携带有所述读写操作的执行结果的远程响应数据。
2、 根据权利要求 1所述的方法, 其特征在于, 所述总线过滤驱动器向 所述物理设备驱动器发送所述远程操作指令之后, 还包括:
所述总线过滤驱动器接收所述物理设备经由所述物理设备驱动器返回 的所述远程响应数据;
所述总线过滤驱动器向所述 VM端发送所述远程响应数据。
3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述物理设备为通过 通用串行总线连接到所述 TC端的智能卡。
4、 根据权利要求 3所述的方法, 其特征在于, 所述总线过滤驱动器为 通用串行总线过滤驱动器, 所述远程访问请求为远程通用串行总线请求消 息, 所述远程操作指令和本地操作指令为本地通用串行总线请求消息, 所 述远程响应数据和本地响应数据为本地通用串行总线应答消息。
5、 一种设备远程访问的方法, 用于桌面云系统, 其特征在于, 包括: VM端的虚拟总线驱动器接收所述 VM端的应用程序对所述 VM端的虚 拟设备驱动器的虚拟操作指令; 所述虚拟总线驱动器将所述虚拟操作指令转换为所述 TC端的总线过滤 驱动器能够读取的远程访问请求;
所述虚拟总线驱动器向所述 TC端发送所述远程访问请求, 所述远程访 问请求用于指示所述总线过滤驱动器将所述远程访问请求转换为所述 TC端 的物理设备驱动器能够读取的远程操作指令, 所述远程操作指令用于指示 所述物理设备驱动器驱动所述物理设备执行读写操作, 并返回携带有所述 读写操作的执行结果的远程响应数据。
6、 根据权利要求 5所述的方法, 其特征在于, 在所述虚拟总线驱动器 向所述 TC端发送所述远程访问请求之后, 包括:
所述虚拟总线驱动器接收所述 TC端发送的远程响应数据;
所述虚拟总线驱动器经由所述虚拟设备驱动器向所述应用程序发送所 述远程响应数据。
7、 根据权利要求 5或 6所述的方法, 其特征在于, 所述物理设备为通过 通用串行总线连接到所述 TC端的智能卡。
8、 根据权利要求 7所述的方法, 其特征在于, 所述虚拟总线驱动器为 虚拟通用串行总线驱动器, 所述远程访问请求为远程通用串行总线请求消 息, 所述虚拟操作指令为本地通用串行总线请求消息, 所述远程响应数据 为本地通用串行总线应答消息。
9、 一种 TC端, 其特征在于, 包括总线过滤驱动器和物理设备驱动器, 所述总线过滤驱动器用于,
接收 VM端对所述 TC端的物理设备的远程访问请求;
将所述远程访问请求转换为所述物理设备驱动器能够读取的远程操作 指令;
向所述物理设备驱动器发送所述远程操作指令, 所述远程操作指令用 于指示所述物理设备驱动器驱动所述物理设备执行读写操作, 并返回携带 有所述读写操作的执行结果的远程响应数据。
10、 根据权利要求 9所述的 TC端, 其特征在于,
所述物理设备驱动器还用于, 接收所述物理设备的所述远程响应数据 并转发给所述总线过滤驱动器;
所述总线过滤驱动器还用于, 接收所述物理设备驱动器的所述远程响 应数据并转发给所述 VM端。
11、 根据权利要求 9或 10所述的 TC端, 其特征在于, 所述物理设备为通 过通用串行总线连接到所述 TC端的智能卡。
12、 根据权利要求 11所述的 TC端, 其特征在于, 所述总线过滤驱动器 为通用串行总线过滤驱动器, 所述远程访问请求为远程通用串行总线请求 消息, 所述远程操作指令和本地操作指令为本地通用串行总线请求消息, 所述远程响应数据本地响应数据为本地通用串行总线应答消息。
13、一种 VM端,其特征在于,包括虚拟总线驱动器和虚拟设备驱动器, 所述虚拟总线驱动器用于,
接收所述 VM端的应用程序对所述 VM端的虚拟设备驱动器的虚拟操作 指令;
将所述虚拟操作指令转换为所述 TC端的总线过滤驱动器能够读取的远 程访问请求;
向所述 TC端发送所述远程访问请求, 所述远程访问请求用于指示所述 总线过滤驱动器将所述远程访问请求转换为所述 TC端的物理设备驱动器能 够读取的远程操作指令, 所述远程操作指令用于指示所述物理设备驱动器 驱动所述物理设备执行读写操作, 并返回携带有所述读写操作的执行结果 的远程响应数据。
14、 根据权利要求 13所述的 VM端, 其特征在于,
所述虚拟总线驱动器还用于,接收所述 VM端的所述远程响应数据并转 发给所述虚拟设备驱动器; 所述虚拟设备驱动器还用于, 接收所述虚拟总线驱动器的所述远程响 应数据并转发给所述应用程序。
15、 根据权利要求 13或 14所述的 VM端, 其特征在于, 所述物理设备为 通过通用串行总线连接到所述 TC端的智能卡。
16、 根据权利要求 15所述的 VM端, 其特征在于, 所述虚拟总线驱动器 为虚拟通用串行总线驱动器, 所述远程访问请求为远程通用串行总线请求 消息, 所述虚拟操作指令为本地通用串行总线请求消息, 所述远程响应数 据为本地通用串行总线应答消息。
PCT/CN2014/083153 2013-11-14 2014-07-28 设备远程访问的方法、瘦客户端和虚拟机 WO2015070640A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14861685.7A EP3029912B1 (en) 2013-11-14 2014-07-28 Remote accessing method and corresponding system
US15/056,400 US10042664B2 (en) 2013-11-14 2016-02-29 Device remote access method, thin client, and virtual machine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310567832.7 2013-11-14
CN201310567832.7A CN103595790B (zh) 2013-11-14 2013-11-14 设备远程访问的方法、瘦客户端和虚拟机

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/056,400 Continuation US10042664B2 (en) 2013-11-14 2016-02-29 Device remote access method, thin client, and virtual machine

Publications (1)

Publication Number Publication Date
WO2015070640A1 true WO2015070640A1 (zh) 2015-05-21

Family

ID=50085770

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/083153 WO2015070640A1 (zh) 2013-11-14 2014-07-28 设备远程访问的方法、瘦客户端和虚拟机

Country Status (4)

Country Link
US (1) US10042664B2 (zh)
EP (1) EP3029912B1 (zh)
CN (1) CN103595790B (zh)
WO (1) WO2015070640A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595790B (zh) * 2013-11-14 2017-01-04 华为技术有限公司 设备远程访问的方法、瘦客户端和虚拟机
CN104881315A (zh) * 2014-10-27 2015-09-02 深圳市京华科讯科技有限公司 基于桌面虚拟化技术的存储设备映射方法及系统
CN105404503A (zh) * 2015-10-22 2016-03-16 成都卫士通信息产业股份有限公司 一种支持多终端远程并行访问智能卡的方法
US10635816B2 (en) * 2016-04-04 2020-04-28 Wyse Technology L.L.C. Restricting reprogramming of a redirected USB device
RU2628919C1 (ru) * 2016-04-18 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов на распределённой системе виртуальных машин
CN105871926B (zh) * 2016-06-17 2019-07-19 山东大学 一种基于桌面虚拟化的usb设备安全共享方法及系统
CN107463369B (zh) * 2017-06-30 2020-10-16 北京北信源软件股份有限公司 一种虚拟桌面的接入设备控制方法与装置
CN107357743A (zh) * 2017-07-28 2017-11-17 郑州云海信息技术有限公司 一种控制usb设备的方法及装置
CN108512928A (zh) * 2018-04-08 2018-09-07 上海微穹信息科技有限公司 云端虚拟机及其文件管理方法、系统、虚拟机瘦客户端
CN108494871B (zh) * 2018-04-08 2022-02-22 上海微穹信息科技有限公司 云端虚拟机及其图像识别方法、系统和虚拟机瘦客户端
US10430371B1 (en) * 2018-08-07 2019-10-01 Dell Products L.P. Accelerating redirected USB devices that perform bulk transfers
US11119968B2 (en) * 2018-08-07 2021-09-14 Dell Products L.P. Increasing cache hits for USB request blocks that target a redirected USB device
US10742776B1 (en) * 2019-02-04 2020-08-11 Dell Products L.P. Accelerating isochronous endpoints of redirected USB devices
US10901773B2 (en) 2019-04-11 2021-01-26 Red Hat, Inc. Sharing devices between virtual machines in view of power state information
US11294693B2 (en) * 2020-04-14 2022-04-05 Ncr Corporation Virtualized transaction terminal platform
US20230195313A1 (en) * 2021-12-16 2023-06-22 Vmware, Inc. Storage device i/o performance in remote computing environments
US11989419B2 (en) 2022-07-08 2024-05-21 VMware LLC Storage device write performance in remote computing environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2369479A2 (en) * 2006-01-24 2011-09-28 Citrix Systems, Inc. Methods and systems for providing access to a computing environment
CN103312744A (zh) * 2012-03-12 2013-09-18 中国移动通信集团黑龙江有限公司 一种基于云桌面的业务办理方法、平台及系统
CN103370111A (zh) * 2012-10-31 2013-10-23 华为技术有限公司 发送云服务器地址的方法、设备
CN103595790A (zh) * 2013-11-14 2014-02-19 华为技术有限公司 设备远程访问的方法、瘦客户端和虚拟机

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493870B1 (en) 1998-03-20 2002-12-10 Sun Microsystems, Inc. Methods and apparatus for packaging a program for remote execution
US6904489B2 (en) 2001-10-23 2005-06-07 Digi International Inc. Methods and systems for remotely accessing universal serial bus devices
US20060107269A1 (en) * 2004-11-17 2006-05-18 International Business Machines Corporation Virtual device hub
US8504707B2 (en) * 2004-12-07 2013-08-06 Cisco Technology, Inc. Method and system for sending and receiving USB messages over a data network
US20060161415A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation Driver handler object framework
JP4127315B2 (ja) * 2006-05-24 2008-07-30 株式会社日立製作所 デバイス管理システム
GB2480581B (en) * 2009-03-12 2014-05-07 Hewlett Packard Development Co Dynamic remote peripheral binding
JP5743174B2 (ja) * 2009-03-18 2015-07-01 日本電気株式会社 シンクライアントサーバシステム及びusbデバイスのドライバの管理方法
US8949436B2 (en) 2009-12-18 2015-02-03 Alcatel Lucent System and method for controlling peer-to-peer connections
US8370510B2 (en) * 2009-12-18 2013-02-05 Microsoft Corporation Remote application presentation over a public network connection
CN101827101A (zh) * 2010-04-20 2010-09-08 中国人民解放军理工大学指挥自动化学院 基于可信隔离运行环境的信息资产保护方法
US20130139185A1 (en) * 2011-11-30 2013-05-30 Oracle International Corporation Intercepting and tracing interface routine transactions
US10742698B2 (en) * 2012-05-29 2020-08-11 Avaya Inc. Media contention for virtualized devices
US9069572B2 (en) * 2012-07-27 2015-06-30 Prolific Technology Inc. Replacement of inbox driver with third party driver
US9338167B2 (en) * 2014-02-28 2016-05-10 Ncr Corporation Self-service terminal (SST) thin client

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2369479A2 (en) * 2006-01-24 2011-09-28 Citrix Systems, Inc. Methods and systems for providing access to a computing environment
CN103312744A (zh) * 2012-03-12 2013-09-18 中国移动通信集团黑龙江有限公司 一种基于云桌面的业务办理方法、平台及系统
CN103370111A (zh) * 2012-10-31 2013-10-23 华为技术有限公司 发送云服务器地址的方法、设备
CN103595790A (zh) * 2013-11-14 2014-02-19 华为技术有限公司 设备远程访问的方法、瘦客户端和虚拟机

Also Published As

Publication number Publication date
EP3029912B1 (en) 2018-10-24
CN103595790B (zh) 2017-01-04
US20160179565A1 (en) 2016-06-23
EP3029912A1 (en) 2016-06-08
EP3029912A4 (en) 2016-09-21
US10042664B2 (en) 2018-08-07
CN103595790A (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
WO2015070640A1 (zh) 设备远程访问的方法、瘦客户端和虚拟机
JP6871957B2 (ja) エミュレートされたエンドポイントコンフィグレーション
JP3497834B2 (ja) ルートリピータ、usb通信システム、usb通信制御方法
US10142425B2 (en) Session reliability for a redirected USB device
JP5129770B2 (ja) ネットワーク装置
US10509758B1 (en) Emulated switch with hot-plugging
JP2008269288A (ja) 起動システム、起動プログラムおよびその方法。
JP4556220B2 (ja) データ伝送ブリッジ装置とそのコントロールチップ及びデータ伝送ブリッジ方法
US9253275B2 (en) Cognitive dynamic allocation in caching appliances
CN104965676B (zh) 一种随机存取存储器的访问方法、装置及控制芯片
KR101023631B1 (ko) Usb 인터럽트 엔드포인트 공유
TW201229908A (en) Method and apparatus for integrating driver(s) of a portable device into the portable device
US9319313B2 (en) System and method of forwarding IPMI message packets based on logical unit number (LUN)
WO2015074391A1 (zh) 一种实现多虚拟机挂载外设部件的方法及装置
US20160077986A1 (en) Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts
JP5789225B2 (ja) 遠隔デバイスドライバの提供システム及び遠隔デバイスドライバの提供方法
CN109417507B (zh) 一种通过部分直接内存访问dma访问内存的方法和系统
CN103500108A (zh) 系统内存访问方法、节点控制器和多处理器系统
US20110258424A1 (en) Distributive Cache Accessing Device and Method for Accelerating to Boot Remote Diskless Computers
CN117033275B (zh) 加速卡间的dma方法、装置、加速卡、加速平台及介质
WO2012103768A1 (zh) 数据处理方法及装置、pci-e总线系统、服务器
US11042497B2 (en) Communication between field programmable gate arrays
US20070174034A1 (en) Transparent intellectual network storage device
WO2024060193A1 (zh) 应用于计算机设备的操作方法、装置和计算机设备
WO2023065648A1 (zh) 一种数据处理方法及相关设备

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: 14861685

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2014861685

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE