CN111143265B - 一种基于虚拟机的数据传输方法及装置 - Google Patents
一种基于虚拟机的数据传输方法及装置 Download PDFInfo
- Publication number
- CN111143265B CN111143265B CN201911398312.1A CN201911398312A CN111143265B CN 111143265 B CN111143265 B CN 111143265B CN 201911398312 A CN201911398312 A CN 201911398312A CN 111143265 B CN111143265 B CN 111143265B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- data
- equipment
- preset
- usb
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种基于虚拟机的数据传输方法及装置,用以解决现有的解决虚拟桌面的USB设备的兼容性问题的方案成本和难度较大的问题。所述基于虚拟机的数据传输方法,应用于所述虚拟机中,包括:截获接入所述虚拟机的选定通用串行总线USB设备与所述虚拟机的应用程序之间传输的数据;在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长;等待所述预设时长后向所述数据的接收方发送所述数据。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于虚拟机的数据传输方法及装置。
背景技术
服务器虚拟化、桌面虚拟化和应用虚拟化是现在计算机虚拟化中的三个虚拟化技术,其中,桌面虚拟化是指将计算机的终端系统进行虚拟化,以达到桌面使用的安全性和灵活性,解决了终端桌面繁重的管理与维护工作,提供了基于云桌面的基础技术。桌面虚拟化技术有VDI(Virtual Desktop Infrastructure,虚拟桌面基础架构)技术和IDV(Intelligent Desktop Virtualization,智能桌面虚拟化)技术等。
IDV技术采取分布式方法来满足运营技术需求,在终端上直接进行虚拟化,并通过透传技术,将连接在终端的USB(Universal Serial Bus,通用串行总线)接口上的USB设备透传到虚拟机内,使虚拟机可以正常使用USB设备。如图1所示,其为利用IDV技术进行虚拟化的终端与USB设备的连接示意图,终端10由主机11、虚拟机12和硬件系统13组成,主机11对应的主操作系统(Host OS,Host Operating System)可以为Linux系统,虚拟机12对应的客户机操作系统(Guest OS,Host Operating System)可以为Windows系统,硬件系统13包括中央处理器(central processing unit,CPU)、内存(Memory)、磁盘(Disk)和USB主机控制接口XHCI(extensible Host Controller interface,可扩展的主机控制器接口)等。USB设备以打印机为例,透传过程具体如下:在主机11上打开VFIO(Versatile Framework foruser space I/O,用户空间输入/输出多功能框架)功能,VFIO是一个可以安全地把设备I/O(Input/Output,输入/输出)、中断、DMA(Direct Memory Access,直接内存存取)等暴露到用户空间,从而可以在用户空间完成设备驱动的框架,配置虚拟机12的XHCI驱动程序与主机11上的XHCI驱动程序一致,将主机11上的XHCI驱动程序卸载,启动虚拟机12,将XHCI的驱动程序安装到虚拟机12上,连接到XHCI的打印机即可在虚拟机12内使用。
然而,上述在IDV技术下通过对USB设备透传后,改变了USB设备的使用逻辑,导致虚拟桌面的USB设备在传输数据时会出现兼容性问题。目前,解决虚拟桌面的USB设备兼容性问题的方案主要有以下几种:(1)重新拔插USB设备。该方案需要用户参与,影响用户的业务正常开展。(2)更新虚拟机内的应用程序。该方案需要依赖设备厂商,目前,各厂商都有不同的解决方案,要引导各厂商针对桌面虚拟化进行应用程序的修改,其成本和难度都非常大,可行性较低。(3)变更虚拟机的操作系统。由于用户的业务软件跟操作系统的耦合性比较强,因为USB设备而变更操作系统的成本较大。
发明内容
为了解决现有的解决虚拟桌面的USB外设的兼容性问题的方案成本和难度较大的问题,本发明实施例提供了一种基于虚拟机的数据传输方法及装置。
第一方面,本发明实施例提供了一种基于虚拟机的数据传输方法,应用于所述虚拟机中,包括:
截获接入所述虚拟机的选定通用串行总线USB设备与所述虚拟机的应用程序之间传输的数据;
在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长;
等待所述预设时长后向所述数据的接收方发送所述数据。
本发明实施例提供的基于虚拟机的数据传输方法中,虚拟机截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据,在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长,等待所述预设时长后向所述数据的接收方发送所述数据,根据上述基于虚拟机的数据传输方法,将虚拟机的应用程序和接入所述虚拟机的选定USB设备之间传输的数据进行延时发送,在无需设备厂商和用户参与的前提下,满足了USB协议的时间要求,提升了虚拟机与USB设备传输数据时的兼容性,其成本较低,可行性较高。
可选地,所述方法,还包括:
若检测到USB设备接入,则获取所述USB设备的设备标识;
在所述对应关系中查找所述USB设备的设备标识;
若在所述对应关系中查找到所述USB设备的设备标识,则将所述USB设备确定为选定USB设备。
较佳地,截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据,具体包括:
创建选定USB设备对应的拦截驱动程序;
调用所述拦截驱动程序截获所述选定USB设备与所述虚拟机的应用程序之间传输的数据。
较佳地,在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长,具体包括:
获取预设的设备标识与预设时长的对应关系;
在所述对应关系中查找所述选定USB设备的设备标识;
若在所述对应关系中查找到所述选定USB设备的设备标识,则获取所述选定USB设备的设备标识对应的预设时长。
可选地,在向所述数据的接收方发送所述数据之后,还包括:
确定是否成功发送所述数据;
若成功发送所述数据,则按照预设规则减小所述对应关系中保存的所述预设时长;
若未成功发送所述数据,则按照预设规则增大所述对应关系中保存的所述预设时长。
第二方面,本发明实施例提供了一种基于虚拟机的数据传输装置,应用于所述虚拟机中,包括:
截获单元,用于截获接入所述虚拟机的选定通用串行总线USB设备与所述虚拟机的应用程序之间传输的数据;
第一获取单元,用于在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长;
延时单元,用于等待所述预设时长后向所述数据的接收方发送所述数据。
可选地,所述装置,还包括:
第二获取单元,用于若检测到USB设备接入,则获取所述USB设备的设备标识;
查找单元,用于在所述对应关系中查找所述USB设备的设备标识;
第一确定单元,用于若在所述对应关系中查找到所述USB设备的设备标识,则将所述USB设备确定为选定USB设备。
较佳地,所述截获单元,具体用于创建选定USB设备对应的拦截驱动程序;调用所述拦截驱动程序截获所述选定USB设备与所述虚拟机的应用程序之间传输的数据。
较佳地,所述第一获取单元,具体用于获取预设的设备标识与预设时长的对应关系;在所述对应关系中查找所述选定USB设备的设备标识;若在所述对应关系中查找到所述选定USB设备的设备标识,则获取所述选定USB设备的设备标识对应的预设时长。
可选地,所述装置,还包括:
第二确定单元,用于在向所述数据的接收方发送所述数据之后,确定是否成功发送所述数据;
第一处理单元,用于若成功发送所述数据,则按照预设规则减小所述对应关系中保存的所述预设时长;
第二处理单元,用于若未成功发送所述数据,则按照预设规则增大所述对应关系中保存的所述预设时长。
本发明第二方面提供的基于虚拟机的数据传输装置的技术效果可以参见上述第一方面或第一方面的各个实现方式的技术效果,此处不再赘述。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的基于虚拟机的数据传输方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的基于虚拟机的数据传输方法中的步骤。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为利用IDV技术进行虚拟化的终端与USB设备的连接示意图;
图2为本发明实施例提供的基于虚拟机的数据传输方法的实施流程示意图;
图3为本发明实施例中,截获接入虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据的实施流程示意图;
图4为本发明实施例中,确定选定USB设备的实施流程示意图;
图5为本发明实施例中,获取选定USB设备的设备标识对应的预设时长的实施流程示意图;
图6为本发明实施例中,调整预设时长的实施流程示意图;
图7为本发明实施例提供的基于虚拟机的数据传输装置的结构示意图;
图8为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了解决现有的解决虚拟桌面的USB外设的兼容性问题的方案成本和难度较大的问题,本发明实施例提供了一种基于虚拟机的数据传输方法及装置。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明实施例是在图1的应用场景下,针对在IDV桌面虚拟化技术下通过USB透传后导致的虚拟桌面的USB设备在传输数据时出现的兼容性问题,提出的一种基于虚拟机的数据传输方法及装置。
如图2所示,其为本发明实施例提供的一种基于虚拟机的数据传输方法的实施流程示意图,所述基于虚拟机的数据传输方法,应用于所述虚拟机中,可以包括以下步骤:
S21、截获接入虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据。
具体实施时,虚拟机截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据。虚拟机可以只截获接入所述虚拟机的选定USB设备发送给所述虚拟机的应用程序的数据,或者也可以只截获虚拟机的应用程序发送给接入所述虚拟机的选定USB设备的数据,或者也可以截获接入所述虚拟机的选定USB设备发送给所述虚拟机的应用程序的数据和虚拟机的应用程序发送给接入所述虚拟机的USB设备的数据,本发明实施例对此不作限定。
具体地,按照如图3所示的流程截获接入虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据,可以包括以下步骤:
S31、创建选定USB设备对应的拦截驱动程序。
具体实施时,虚拟机创建选定USB设备对应的拦截驱动程序。
具体地,虚拟机为选定USB设备创建Hook函数(钩子函数)的驱动程序,所述Hook函数的驱动程序用于拦截所述选定USB设备和所述虚拟机的应用程序之间传输的数据,Hook函数的驱动程序的入口例程如下:系统启动后,通过Driver Entry(驱动入口),注册Hook函数驱动。
S32、调用所述拦截驱动程序截获所述选定USB设备与所述虚拟机的应用程序之间传输的数据。
具体实施时,虚拟机调用所述Hook函数的驱动程序截获所述选定USB设备与所述虚拟机的应用程序之间传输的数据。
可选地,在截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间的传输数据之前,可以按照如图4所示的流程确定选定USB设备,可以包括以下步骤:
S41、若检测到USB设备接入,则获取所述USB设备的设备标识。
具体实施时,虚拟机若检测到USB设备接入,则获取所述USB设备的设备标识。
S42、在预设的设备标识与预设时长的对应关系中查找所述USB设备的设备标识。
具体实施时,虚拟机为需要进行数据拦截的USB设备预先设置一个设备标识与预设时长的对应关系并存储,所述对应关系即为需要拦截的USB设备的设备标识与预设时长的对应关系,预设时长为需要延时的时长,初始时,为预设时长设置一个初始值。
具体地,当虚拟机获取到插入的USB设备的设备标识时,在所述预设的设备标识与预设时长的对应关系中查找所述USB设备的设备标识。
S43、若在所述对应关系中查找到所述USB设备的设备标识,则将所述USB设备确定为选定USB设备。
具体实施时,虚拟机若在所述对应关系中查找到所述USB设备的设备标识,则将所述USB设备确定为选定USB设备。
S22、在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长。
具体实施时,可以通过如图5所示的流程获取选定USB设备的设备标识对应的预设时长,可以包括以下步骤:
S51、获取预设的设备标识与预设时长的对应关系。
具体实施时,虚拟机获取预先存储的预设的设备标识与预设时长的对应关系。
S52、在所述对应关系中查找所述选定USB设备的设备标识。
具体实施时,虚拟机在所述对应关系中查找所述选定USB设备的设备标识。
S53、若在所述对应关系中查找到所述选定USB设备的设备标识,则获取所述选定USB设备的设备标识对应的预设时长。
具体实施时,虚拟机若在所述对应关系中查找到所述选定USB设备的设备标识,则获取所述选定USB设备的设备标识对应的预设时长。
S23、等待所述预设时长后向所述数据的接收方发送所述数据。
具体实施时,如果虚拟机截获的是接入所述虚拟机的选定USB设备向所述虚拟机发送的数据,虚拟机则控制所述选定USB设备等待所述预设时长后向所述虚拟机发送所述数据,即所述虚拟机等待所述预设时长后接收所述选定USB设备发送的所述数据;如果虚拟机截获的是虚拟机向接入所述虚拟机的选定USB设备发送的数据,虚拟机则等待所述预设时长后向所述选定USB设备发送所述数据。
可选地,在虚拟机和接入所述虚拟机的选定USB设备传输数据的过程中,所述设备标识与预设时长的对应关系中的所述选定USB设备的设备标识对应的预设时长可以根据需要进行自适应调整。
具体地,按照如图6所示的流程调整所述预设时长,可以包括以下步骤:
S61、在向数据的接收方发送所述数据之后,确定是否成功发送所述数据,若成功发送所述数据,则执行步骤S62,若未成功发送所述数据,则执行步骤S63。
具体实施时,在向所述数据的接收方发送所述数据之后,虚拟机确定是否成功发送所述数据,若成功发送所述数据,则执行步骤S62,若未成功发送所述数据,则执行步骤S63。
S62、按照预设规则减小所述对应关系中保存的所述预设时长。
具体实施时,若成功发送所述数据,虚拟机则按照预设规则减小所述预设的设备标识与预设时长的对应关系中保存的所述预设时长。
具体地,可以预先设置减小的幅度,例如,每次减小5ms,直至达到一个最优的结果:即在数据发送成功的前提下,等待的预设时长最短即可。
S63、按照预设规则增大所述对应关系中保存的所述预设时长。
具体实施时,若未成功发送所述数据,虚拟机则按照预设规则增大所述预设的设备标识与预设时长的对应关系中保存的所述预设时长。
具体地,可以预先设置增大的幅度,例如,每次增大5ms,直至达到一个最优的结果:即在数据发送成功的前提下,等待的预设时长最短即可。
本发明实施例提供的基于虚拟机的数据传输方法中,虚拟机截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据,在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长,等待所述预设时长后向所述数据的接收方发送所述数据,根据上述基于虚拟机的数据传输方法,将虚拟机的应用程序和接入所述虚拟机的选定USB设备之间传输的数据进行延时发送,在无需设备厂商和用户参与的前提下,满足了USB协议的时间要求,提升了虚拟机与USB设备传输数据时的兼容性,其成本较低,可行性较高。
基于同一发明构思,本发明实施例还提供了一种基于虚拟机的数据传输装置,由于上述基于虚拟机的数据传输装置解决问题的原理与基于虚拟机的数据传输方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,其为本发明实施例提供的基于虚拟机的数据传输装置的结构示意图,所述基于虚拟机的数据传输装置,应用于所述虚拟机中,可以包括:
截获单元71,用于截获接入所述虚拟机的选定通用串行总线USB设备与所述虚拟机的应用程序之间传输的数据;
第一获取单元72,用于在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长;
延时单元73,用于等待所述预设时长后向所述数据的接收方发送所述数据。
可选地,所述装置,还包括:
第二获取单元,用于若检测到USB设备接入,则获取所述USB设备的设备标识;
查找单元,用于在所述对应关系中查找所述USB设备的设备标识;
第一确定单元,用于若在所述对应关系中查找到所述USB设备的设备标识,则将所述USB设备确定为选定USB设备。
较佳地,所述截获单元71,具体用于创建选定USB设备对应的拦截驱动程序;调用所述拦截驱动程序截获所述选定USB设备与所述虚拟机的应用程序之间传输的数据。
较佳地,所述第一获取单元72,具体用于获取预设的设备标识与预设时长的对应关系;在所述对应关系中查找所述选定USB设备的设备标识;若在所述对应关系中查找到所述选定USB设备的设备标识,则获取所述选定USB设备的设备标识对应的预设时长。
可选地,所述装置,还包括:
第二确定单元,用于在向所述数据的接收方发送所述数据之后,确定是否成功发送所述数据;
第一处理单元,用于若成功发送所述数据,则按照预设规则减小所述对应关系中保存的所述预设时长;
第二处理单元,用于若未成功发送所述数据,则按照预设规则增大所述对应关系中保存的所述预设时长。
基于同一技术构思,本发明实施例还提供了一种电子设备800,参照图8所示,电子设备800用于实施上述方法实施例记载的基于虚拟机的数据传输方法,该实施例的电子设备800可以包括:存储器801、处理器802以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如基于虚拟机的数据传输程序。所述处理器执行所述计算机程序时实现上述各个基于虚拟机的数据传输方法实施例中的步骤,例如图2所示的步骤S21。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如71。
本发明实施例中不限定上述存储器801、处理器802之间的具体连接介质。本申请实施例在图8中以存储器801、处理器802之间通过总线803连接,总线803在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器801可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。
处理器802,用于实现如图2所示的一种基于虚拟机的数据传输方法,包括:
所述处理器802,用于调用所述存储器801中存储的计算机程序执行如图2中所示的步骤S21、截获接入虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据,步骤S22、在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长,和步骤S23、等待所述预设时长后向所述数据的接收方发送所述数据。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本发明提供的基于虚拟机的数据传输方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的基于虚拟机的数据传输方法中的步骤,例如,所述电子设备可以执行如图2中所示的步骤S21、截获接入虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据,步骤S22、在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长,和步骤S23、等待所述预设时长后向所述数据的接收方发送所述数据。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式的用于基于虚拟机的数据传输的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于虚拟机的数据传输方法,应用于所述虚拟机中,其特征在于,包括:
截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据;
在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长;
等待所述预设时长后向所述数据的接收方发送所述数据;所述方法还包括:
若检测到USB设备接入,则获取所述USB设备的设备标识;
在所述对应关系中查找所述USB设备的设备标识;
若在所述对应关系中查找到所述USB设备的设备标识,则将所述USB设备确定为选定USB设备。
2.如权利要求1所述的方法,其特征在于,截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据,具体包括:
创建选定USB设备对应的拦截驱动程序;
调用所述拦截驱动程序截获所述选定USB设备与所述虚拟机的应用程序之间传输的数据。
3.如权利要求1所述的方法,其特征在于,在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长,具体包括:
获取预设的设备标识与预设时长的对应关系;
在所述对应关系中查找所述选定USB设备的设备标识;
若在所述对应关系中查找到所述选定USB设备的设备标识,则获取所述选定USB设备的设备标识对应的预设时长。
4.如权利要求3所述的方法,其特征在于,在向所述数据的接收方发送所述数据之后,还包括:
确定是否成功发送所述数据;
若成功发送所述数据,则按照预设规则减小所述对应关系中保存的所述预设时长;
若未成功发送所述数据,则按照预设规则增大所述对应关系中保存的所述预设时长。
5.一种基于虚拟机的数据传输装置,应用于所述虚拟机中,其特征在于,包括:
截获单元,用于截获接入所述虚拟机的选定USB设备与所述虚拟机的应用程序之间传输的数据;
第一获取单元,用于在预设的设备标识与预设时长的对应关系中获取所述选定USB设备的设备标识对应的预设时长;
延时单元,用于等待所述预设时长后向所述数据的接收方发送所述数据;所述装置还包括:
第二获取单元,用于若检测到USB设备接入,则获取所述USB设备的设备标识;
查找单元,用于在所述对应关系中查找所述USB设备的设备标识;
第一确定单元,用于若在所述对应关系中查找到所述USB设备的设备标识,则将所述USB设备确定为选定USB设备。
6.如权利要求5所述的装置,其特征在于,
所述截获单元,具体用于创建选定USB设备对应的拦截驱动程序;调用所述拦截驱动程序截获所述选定USB设备与所述虚拟机的应用程序之间传输的数据。
7.如权利要求5所述的装置,其特征在于,
所述第一获取单元,具体用于获取预设的设备标识与预设时长的对应关系;在所述对应关系中查找所述选定USB设备的设备标识;若在所述对应关系中查找到所述选定USB设备的设备标识,则获取所述选定USB设备的设备标识对应的预设时长。
8.如权利要求7所述的装置,其特征在于,还包括:
第二确定单元,用于在向所述数据的接收方发送所述数据之后,确定是否成功发送所述数据;
第一处理单元,用于若成功发送所述数据,则按照预设规则减小所述对应关系中保存的所述预设时长;
第二处理单元,用于若未成功发送所述数据,则按照预设规则增大所述对应关系中保存的所述预设时长。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~4任一项所述的基于虚拟机的数据传输方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~4任一项所述的基于虚拟机的数据传输方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398312.1A CN111143265B (zh) | 2019-12-30 | 2019-12-30 | 一种基于虚拟机的数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398312.1A CN111143265B (zh) | 2019-12-30 | 2019-12-30 | 一种基于虚拟机的数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143265A CN111143265A (zh) | 2020-05-12 |
CN111143265B true CN111143265B (zh) | 2022-09-20 |
Family
ID=70521933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911398312.1A Active CN111143265B (zh) | 2019-12-30 | 2019-12-30 | 一种基于虚拟机的数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143265B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102176704A (zh) * | 2011-02-18 | 2011-09-07 | 中兴通讯股份有限公司 | 通过usb虚拟网卡接入无线网络的方法、系统及装置 |
CN103593310A (zh) * | 2013-11-19 | 2014-02-19 | 乐视致新电子科技(天津)有限公司 | 标识外接存储设备的方法及装置 |
CN103870311A (zh) * | 2012-12-10 | 2014-06-18 | 华为技术有限公司 | 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动 |
CN105187256A (zh) * | 2015-09-29 | 2015-12-23 | 华为技术有限公司 | 一种容灾方法、设备和系统 |
CN107239321A (zh) * | 2017-05-18 | 2017-10-10 | 中国科学院软件研究所 | 一种基于薄虚拟机监控器的usb存储设备安全访问控制方法 |
CN108255542A (zh) * | 2018-01-05 | 2018-07-06 | 北京北信源信息安全技术有限公司 | 一种虚拟机的串口并口管控方法与装置 |
EP3388934A1 (en) * | 2015-12-31 | 2018-10-17 | Huawei Technologies Co., Ltd. | Method and apparatus for processing read/write request in physical host |
CN108717398A (zh) * | 2018-04-10 | 2018-10-30 | 中国舰船研究设计中心 | 一种适用于usb接口的脉冲信号同步系统及方法 |
CN109766067A (zh) * | 2019-01-04 | 2019-05-17 | Oppo广东移动通信有限公司 | 静电干扰恢复方法及相关装置 |
CN110113070A (zh) * | 2019-03-21 | 2019-08-09 | 长芯盛(武汉)科技有限公司 | 一种适用于usb的信号发送及接收方法 |
CN110413376A (zh) * | 2019-07-12 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种虚拟机管理usb设备的方法、设备以及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685635B2 (en) * | 2005-03-11 | 2010-03-23 | Microsoft Corporation | Systems and methods for multi-level intercept processing in a virtual machine environment |
US8347063B2 (en) * | 2005-08-19 | 2013-01-01 | Intel Corporation | Method and system for device address translation for virtualization |
CN101437180B (zh) * | 2008-12-17 | 2012-04-18 | 杭州华三通信技术有限公司 | Pos接入设备的摘机方法和pos接入设备 |
CN104881315A (zh) * | 2014-10-27 | 2015-09-02 | 深圳市京华科讯科技有限公司 | 基于桌面虚拟化技术的存储设备映射方法及系统 |
US9952992B2 (en) * | 2015-07-30 | 2018-04-24 | Dell Products L.P. | Transaction request optimization for redirected USB devices over a network |
CN105183675B (zh) * | 2015-09-30 | 2018-03-27 | 华为技术有限公司 | 对usb设备的访问方法、装置、终端、服务器及系统 |
CN109933395A (zh) * | 2019-02-22 | 2019-06-25 | 北京易讯通信息技术股份有限公司 | 一种基于KVM桌面虚拟化中Pos机的应用方法 |
-
2019
- 2019-12-30 CN CN201911398312.1A patent/CN111143265B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102176704A (zh) * | 2011-02-18 | 2011-09-07 | 中兴通讯股份有限公司 | 通过usb虚拟网卡接入无线网络的方法、系统及装置 |
CN103870311A (zh) * | 2012-12-10 | 2014-06-18 | 华为技术有限公司 | 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动 |
CN103593310A (zh) * | 2013-11-19 | 2014-02-19 | 乐视致新电子科技(天津)有限公司 | 标识外接存储设备的方法及装置 |
CN105187256A (zh) * | 2015-09-29 | 2015-12-23 | 华为技术有限公司 | 一种容灾方法、设备和系统 |
EP3388934A1 (en) * | 2015-12-31 | 2018-10-17 | Huawei Technologies Co., Ltd. | Method and apparatus for processing read/write request in physical host |
CN107239321A (zh) * | 2017-05-18 | 2017-10-10 | 中国科学院软件研究所 | 一种基于薄虚拟机监控器的usb存储设备安全访问控制方法 |
CN108255542A (zh) * | 2018-01-05 | 2018-07-06 | 北京北信源信息安全技术有限公司 | 一种虚拟机的串口并口管控方法与装置 |
CN108717398A (zh) * | 2018-04-10 | 2018-10-30 | 中国舰船研究设计中心 | 一种适用于usb接口的脉冲信号同步系统及方法 |
CN109766067A (zh) * | 2019-01-04 | 2019-05-17 | Oppo广东移动通信有限公司 | 静电干扰恢复方法及相关装置 |
CN110113070A (zh) * | 2019-03-21 | 2019-08-09 | 长芯盛(武汉)科技有限公司 | 一种适用于usb的信号发送及接收方法 |
CN110413376A (zh) * | 2019-07-12 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种虚拟机管理usb设备的方法、设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
"A Remote USB Architecture for Virtual Machine Oriented Device Sharing and Transparent Mgration";Y. Jiao;《 2012 IEEE 18th International Conference on Parallel and Distributed Systems》;20121231;第96-102页 * |
"延时触发的虚拟机调度策略研究";孙哲;《信息技术》;20160925(第9期);第744-749页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111143265A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733005B (zh) | 一种控制智能设备联动的方法及装置 | |
US9342326B2 (en) | Allocating identified intermediary tasks for requesting virtual machines within a trust sphere on a processing goal | |
US11201836B2 (en) | Method and device for managing stateful application on server | |
CN113626224A (zh) | 一种nfc数据的交互方法、装置、电子设备及存储介质 | |
US11875174B2 (en) | Method and apparatus for virtual machine emulator upgrading virtualization emulator | |
CN107181802B (zh) | 智能硬件控制方法和装置、服务器、存储介质 | |
CN105573819A (zh) | 一种直接通过宿主机获取虚拟机磁盘容量信息的方法 | |
CN109669787B (zh) | 数据传输方法及装置、存储介质、电子设备 | |
CN113010470B (zh) | 边缘节点远程控制系统、方法、设备及存储介质 | |
CN111209080A (zh) | 一种图形处理器透传的方法 | |
CN109391694A (zh) | 基于sftp的文件传输方法及相关设备 | |
KR101284403B1 (ko) | 저장 네트워크 환경에서 scsi 타겟으로부터 scsi 에러 응답을 커스터마이징하는 방법, 비-일시적 컴퓨터 판독 가능한 저장 매체, 저장 네트워크 환경에서 scsi 타겟으로부터 수신된 scsi 에러 응답을 커스터마이징하는 시스템 | |
CN111143265B (zh) | 一种基于虚拟机的数据传输方法及装置 | |
CN104751046B (zh) | 一种应用程序的用户认证方法及移动终端设备 | |
US11265807B2 (en) | Method for network sharing on a terminal, apparatus, air conditioner and storage medium | |
CN108287619A (zh) | 一种控制服务器kvm系统的方法、系统及可读存储介质 | |
CN109189705B (zh) | 一种usb扩展方法、装置、设备、存储介质及系统 | |
CN111857546A (zh) | 用于处理数据的方法、网络适配器和计算机程序产品 | |
CN105893112B (zh) | 一种虚拟化环境下的数据包处理方法及装置 | |
CN101382903B (zh) | 智能密钥设备实现自动安装的方法和系统 | |
CN104468671A (zh) | 一种配置信息处理方法、装置及相关设备 | |
CN110365839B (zh) | 关机方法、装置、介质及电子设备 | |
CN107066360B (zh) | 一种信息传输方法及服务器 | |
CN113821248B (zh) | 车机端软件的服务方法、车机端软件及其相关设备 | |
CN116501446B (zh) | Kubernetes集群部署方法及系统、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |