基于虚拟机的数据传输方法、装置及系统转让专利

申请号 : CN201510472706.2

文献号 : CN106453766B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黎琦程建

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本申请公开了一种基于虚拟机的数据传输方法、装置及系统。其中,该方法包括:业务终端设备中运行的调试桥可执行程序生成调试桥数据包;业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包;虚拟主机端缓存调试桥数据包,并生成反馈信息;虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端;其中,调试桥数据包由业务终端设备远程传输给目标终端设备。本申请解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。

权利要求 :

1.一种基于虚拟机的数据传输方法,其特征在于,包括:业务终端设备中运行的调试桥可执行程序生成调试桥数据包;

所述业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收所述调试桥数据包;

所述虚拟主机端缓存所述调试桥数据包,并生成反馈信息;

所述虚拟主机端将所述反馈信息返回至所述调试桥可执行程序,使得所述调试桥可执行程序将新生成的调试桥数据包发送至所述虚拟主机端;

其中,所述调试桥数据包由所述业务终端设备远程传输给目标终端设备。

2.根据权利要求1所述的方法,其特征在于,在所述虚拟主机端缓存所述调试桥数据包之后,所述方法还包括:所述虚拟主机端将所述调试桥数据包转换成虚拟化数据包;

所述虚拟主机端将所述虚拟化数据包传输至安装了虚拟客户端的中间终端设备;

其中,在所述虚拟客户端解析所述虚拟化数据包得到所述调试桥数据包之后,通过所述中间终端设备的存储设备接口将所述调试桥数据包发送至所述目标终端设备,所述目标终端设备通过存储设备接入所述中间终端设备。

3.根据权利要求2所述的方法,其特征在于,在所述目标终端设备接收到所述业务终端设备远程传输的所述调试桥数据包之后,所述方法还包括:所述目标终端设备上运行的调试桥守护进程根据所述调试桥数据包生成调试桥应答数据包;

所述调试桥守护进程将所述调试桥应答数据包通过所述存储设备传输至所述虚拟客户端;

所述虚拟客户端缓存所述调试桥应答数据包,并生成反馈应答信息;

所述虚拟客户端将所述反馈应答信息返回至所述调试桥守护进程,启动所述调试桥守护进程发送新生成的调试桥应答数据包。

4.根据权利要求3所述的方法,其特征在于,所述虚拟客户端在本地创建第二缓存区,其中,所述第二缓存区用于缓存所述调试桥应答数据包。

5.根据权利要求3所述的方法,其特征在于,在所述虚拟客户端缓存所述调试桥应答数据包之后,所述方法还包括:所述虚拟客户端将所述调试桥应答数据包转换成虚拟化应答数据包;

所述虚拟客户端将所述虚拟化应答数据包传输至安装了所述虚拟主机端的所述业务终端设备;

其中,在所述虚拟主机端解析所述虚拟化应答数据包得到所述调试桥应答数据包之后,通过所述虚拟存储设备将所述调试桥应答数据包发送至所述调试桥可执行程序。

6.根据权利要求2所述的方法,其特征在于,所述虚拟主机端将所述虚拟化数据包传输至安装了虚拟客户端的中间终端设备,包括:所述虚拟主机端对生成的多个所述虚拟化数据包依次打上时间戳;

将具有时间戳的多个所述虚拟化数据包散列成缓存队列中的数据包;

对所述缓存队列中的数据包进行排序和/或筛选处理,并按照预先设置的传输策略发送所述缓存队列中的数据包至所述目标终端设备,其中,所述传输策略用于表征所述缓存队列中的数据包的传输优先级。

7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述调试桥可执行程序至少包括:调试桥客户端和调试桥服务进程,其中,业务终端设备中运行的调试桥可执行程序生成调试桥数据包,包括:所述业务终端设备中运行的所述调试桥客户端向所述调试桥服务进程发起业务请求;

所述调试桥服务进程解析所述业务请求,生成业务数据包;

所述调试桥服务进程将所述业务数据包按照调试桥传输协议进行封装,生成所述调试桥数据包。

8.根据权利要求1至6中任意一项所述的方法,其特征在于,在所述业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收所述调试桥数据包之前,所述方法还包括:所述虚拟主机端在本地预先创建所述虚拟存储设备,并在本地创建第一缓存区,其中,所述第一缓存区用于缓存所述调试桥数据包。

9.一种基于虚拟机的数据传输方法,其特征在于,包括:安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,所述目标终端设备通过调试桥守护进程生成所述调试桥服务数据包,并将所述调试桥服务数据包通过存储设备传输至所述虚拟客户端;

所述虚拟客户端缓存所述调试桥服务数据包,并生成第一反馈信息;

所述虚拟客户端将所述第一反馈信息返回至所述调试桥守护进程,启动所述调试桥守护进程发送新生成的调试桥服务数据包;

其中,所述调试桥服务数据包由所述中间终端设备远程传输给业务终端设备。

10.根据权利要求9所述的方法,其特征在于,所述虚拟客户端在本地创建缓存区,其中,所述缓存区用于缓存所述调试桥服务数据包。

11.根据权利要求9所述的方法,其特征在于,在所述虚拟客户端缓存所述调试桥服务数据包之后,所述方法还包括:所述虚拟客户端将所述调试桥服务数据包转换成虚拟化服务数据包;

所述虚拟客户端将所述虚拟化服务数据包传输至安装了虚拟主机端的所述业务终端设备;

其中,在所述虚拟主机端解析所述虚拟化服务数据包得到所述调试桥服务数据包之后,通过所述虚拟主机端预先创建的虚拟存储设备将所述调试桥服务数据包发送至所述业务终端设备上运行的调试桥可执行程序。

12.根据权利要求11所述的方法,其特征在于,所述调试桥可执行程序至少包括:调试桥客户端和调试桥服务进程,其中,在将所述调试桥服务数据包发送至所述业务终端设备上运行的调试桥可执行程序之后,所述方法还包括:所述业务终端设备中运行的所述调试桥服务进程解析所述调试桥服务数据包;

所述调试桥服务进程将解析后的所述调试桥服务数据包进行封装,生成业务类型的数据包;

所述调试桥服务进程将生成的所述业务类型的数据包发送给所述调试桥客户端。

13.一种基于虚拟机的数据传输系统,其特征在于,包括:目标终端设备;

业务终端设备,安装了调试桥可执行程序和虚拟主机端,用于在所述虚拟主机端接收并缓存由所述调试桥可执行程序生成的调试桥数据包之后,将所述调试桥数据包转换成虚拟化数据包并生成反馈信息,同时将所述反馈信息返回至所述调试桥可执行程序,使得所述调试桥可执行程序继续将新生成的调试桥数据包发送至所述虚拟主机端;

中间终端设备,安装了虚拟客户端,通过网络与所述业务终端设备连接,通过存储设备与所述目标终端设备连接,用于接收所述目标终端设备上运行的调试桥守护进程根据所述调试桥数据包生成调试桥应答数据包,在所述虚拟客户端缓存所述调试桥应答数据包,并生成反馈应答信息之后,所述虚拟客户端将所述反馈应答信息返回至所述调试桥守护进程,使得所述调试桥守护进程继续发送新生成的调试桥应答数据包至所述虚拟客户端;

其中,所述业务终端设备通过所述中间终端设备将所述调试桥数据包远程传输至所述目标终端设备,且所述目标终端设备也通过所述中间终端设备将所述调试桥应答数据包远程传输至所述业务终端设备。

14.一种基于虚拟机的数据传输装置,其特征在于,包括:生成模块,用于业务终端设备中运行的调试桥可执行程序生成调试桥数据包;

第一接收模块,用于所述业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收所述调试桥数据包;

处理模块,用于所述虚拟主机端缓存所述调试桥数据包,并生成反馈信息;

第一发送模块,用于所述虚拟主机端将所述反馈信息返回至所述调试桥可执行程序,使得所述调试桥可执行程序将新生成的调试桥数据包发送至所述虚拟主机端;

其中,所述调试桥数据包由所述业务终端设备远程传输给目标终端设备。

15.根据权利要求14所述的装置,其特征在于,所述装置还包括:第一转换模块,用于所述虚拟主机端将所述调试桥数据包转换成虚拟化数据包;

第二发送模块,用于所述虚拟主机端将所述虚拟化数据包传输至安装了虚拟客户端的中间终端设备;

其中,在所述虚拟客户端解析所述虚拟化数据包得到所述调试桥数据包之后,通过所述中间终端设备的存储设备接口将所述调试桥数据包发送至所述目标终端设备,所述目标终端设备通过存储设备接入所述中间终端设备。

16.根据权利要求14或15所述的装置,其特征在于,所述调试桥可执行程序至少包括:调试桥客户端和调试桥服务进程,其中,所述生成模块包括:请求单元,用于所述业务终端设备中运行的所述调试桥客户端向所述调试桥服务进程发起业务请求;

解析单元,用于所述调试桥服务进程解析所述业务请求,生成业务数据包;

封装单元,用于所述调试桥服务进程并将所述业务数据包按照调试桥传输协议进行封装,生成所述调试桥数据包。

17.根据权利要求14或15所述的装置,其特征在于,所述装置还包括:创建模块,用于所述虚拟主机端在本地预先创建所述虚拟存储设备,并在本地创建第一缓存区,其中,所述第一缓存区用于缓存所述调试桥数据包。

18.一种基于虚拟机的数据传输装置,其特征在于,包括:接收模块,用于安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,所述目标终端设备通过调试桥守护进程生成所述调试桥服务数据包,并将所述调试桥服务数据包通过存储设备传输至所述虚拟客户端;

处理模块,用于所述虚拟客户端缓存所述调试桥服务数据包,并生成第一反馈信息;

第一发送模块,用于所述虚拟客户端将所述第一反馈信息返回至所述调试桥守护进程,启动所述调试桥守护进程发送新生成的调试桥服务数据包;

其中,所述调试桥服务数据包由所述中间终端设备远程传输给业务终端设备。

19.根据权利要求18所述的装置,其特征在于,所述装置还包括:创建模块,用于所述虚拟客户端在本地创建缓存区,其中,所述缓存区用于缓存所述调试桥服务数据包。

20.根据权利要求18所述的装置,其特征在于,所述装置还包括:转换模块,用于所述虚拟客户端将所述调试桥服务数据包转换成虚拟化服务数据包;

第二发送模块,用于所述虚拟客户端将所述虚拟化服务数据包传输至安装了虚拟主机端的所述业务终端设备;

其中,在所述虚拟主机端解析所述虚拟化服务数据包得到所述调试桥服务数据包之后,通过所述虚拟主机端预先创建的虚拟存储设备将所述调试桥服务数据包发送至所述业务终端设备上运行的调试桥可执行程序。

说明书 :

基于虚拟机的数据传输方法、装置及系统

技术领域

[0001] 本申请涉及互联网领域,具体而言,涉及一种基于虚拟机的数据传输方法、装置及系统。

背景技术

[0002] 存储设备,例如存储设备设备,是当前计算机系统的标准外设,但当前越来越多的网络系统中需要让远端系统能透明使用本地端上的存储设备。例如,在虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI)系统中,本地终端通过网络登陆数据中心服务器生成的虚拟桌面时,在本地终端上显示的虚拟桌面中并不能直接使用接入本地终端的存储设备。为了提供更好的用户体验,满足在VDI系统中能够使用接入本地终端的存储设备的需求,相关技术中设计实现了一套存储设备虚拟化重定向的方法,使得通过网络传输让远端系统能透明使用本地端插入的存储设备。
[0003] 例如,以本地端接入的存储设备是安卓设备为例,安卓设备可作为一种存储设备设备接入本地端。随着安卓系统的普遍使用,使用者可能需要在登录的虚拟桌面中访问或调试安卓设备,例如在虚拟桌面中使用安卓手机助手等计算机软件,但借助计算机软件对安卓手机进行管理就需要使用安卓手机的调试桥功能,例如安卓调试桥(Android Debug Bridge)。以ADB功能为例,图1是根据现有技术的ADB数据传输架构图,如图1所示,ADB客户端(ADB client)运行在计算机终端,用于解析用户输入的命令后生成ADB业务请求包,通过本地socket把请求发给ADB服务器(ADB server)。ADB server同样运行在计算机终端,一方面负责解析应答ADB client的业务请求,另一方面如果过该业务请求需要安卓手机终端配合完成,则向安卓手机终端发起业务请求,并把该业务请求封装到传输协议包中,通过USB接口与安卓手机终端进行交互。ADB守护进程(ADB daemon)运行在安卓手机终端上,用于解析USB接口上的传输协议包,响应ADB server发起的业务请求。
[0004] 然而,在当前存储设备虚拟化重定向的方法中,调试桥模式下的传输速率一般在KB级别,这样的速率无法在远端系统中正常使用手机助手等诸多软件,严重限制了安卓手机在虚拟桌面等系统中的使用。
[0005] 针对上述现有技术中由于在调试桥模式下存储设备虚拟化时的传输速率慢,导致远端系统中对安卓设备管理效率低的问题,目前尚未提出有效的解决方案。

发明内容

[0006] 本申请实施例提供了一种基于虚拟机的数据传输方法、装置及系统,以至少解决现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0007] 根据本申请实施例的一个方面,提供了一种基于虚拟机的数据传输方法,包括:业务终端设备中运行的调试桥可执行程序生成调试桥数据包;业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包;虚拟主机端缓存调试桥数据包,并生成反馈信息;虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端;其中,调试桥数据包由业务终端设备远程传输给目标终端设备。
[0008] 根据本申请实施例的另一方面,还提供了一种基于虚拟机的数据传输方法,包括:安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,目标终端设备通过调试桥守护进程生成调试桥服务数据包,并将调试桥服务数据包通过存储设备传输至虚拟客户端;虚拟客户端缓存调试桥服务数据包,并生成第一反馈信息;虚拟客户端将第一反馈信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥服务数据包;其中,调试桥服务数据包由中间终端设备远程传输给业务终端设备。
[0009] 根据本申请实施例的另一方面,还提供了一种基于虚拟机的数据传输装置,包括:生成模块,用于业务终端设备中运行的调试桥可执行程序生成调试桥数据包;第一接收模块,用于业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包;处理模块,用于虚拟主机端缓存调试桥数据包,并生成反馈信息;第一发送模块,用于虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端;其中,调试桥数据包由业务终端设备远程传输给目标终端设备。
[0010] 根据本申请实施例的另一方面,还提供了一种基于虚拟机的数据传输装置,包括:接收模块,用于安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,目标终端设备通过调试桥守护进程生成调试桥服务数据包,并将调试桥服务数据包通过存储设备传输至虚拟客户端;处理模块,用于虚拟客户端缓存调试桥服务数据包,并生成第一反馈信息;第一发送模块,用于虚拟客户端将第一反馈信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥服务数据包;其中,调试桥服务数据包由中间终端设备远程传输给业务终端设备。
[0011] 根据本申请实施例的另一方面,还提供了一种基于虚拟机的数据传输系统,包括:目标终端设备;业务终端设备,安装了调试桥可执行程序和虚拟主机端,用于在虚拟主机端接收并缓存由调试桥可执行程序生成的调试桥数据包之后,将调试桥数据包转换成虚拟化数据包并生成反馈信息,同时将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序继续将新生成的调试桥数据包发送至虚拟主机端;中间终端设备,安装了虚拟客户端,通过网络与业务终端设备连接,通过存储设备与目标终端设备连接,用于接收目标终端设备上运行的调试桥守护进程根据调试桥数据包生成调试桥应答数据包,在虚拟客户端缓存调试桥应答数据包,并生成反馈应答信息之后,虚拟客户端将反馈应答信息返回至调试桥守护进程,使得调试桥守护进程继续发送新生成的调试桥应答数据包至虚拟客户端;其中,业务终端设备通过中间终端设备将调试桥数据包远程传输至目标终端设备,且目标终端设备也通过中间终端设备将调试桥应答数据包远程传输至业务终端设备。
[0012] 在本申请实施例中,采用在业务终端设备中增设的虚拟主机端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟主机端在接收到调试桥数据包后立刻缓存在本地,并返回针对该调试桥数据包的反馈信息给在业务终端设备本地运行的调试桥可执行程序,调试桥可执行程序在接收到该反馈信息之后,即可以确定当前发送的调试桥数据包已经发送成功,从而立即发送下一个调试桥数据包,从而达到了提高调试桥可执行程序发送调试桥数据包的效率的目的,进而实现了业务终端设备中的调试桥数据向目标终端设备的快速下行传输。通过上述方案,实现了提高虚拟桌面中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果,进而解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。

附图说明

[0013] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0014] 图1是根据现有技术的ADB数据传输架构图;
[0015] 图2是根据本申请实施例的一种基于虚拟机的数据传输方法的计算机终端的硬件结构框图;
[0016] 图3是根据本申请实施例一的基于虚拟机的数据传输方法的流程图;
[0017] 图4是根据本申请实施例一的一种可选的用户数据的访问控制方法的业务流程示意图;
[0018] 图5是根据本申请实施例二的基于虚拟机的数据传输方法的流程图;
[0019] 图6是根据本申请实施例三的基于虚拟机的数据传输装置的结构示意图;
[0020] 图7是根据本申请图6所示实施例的一种可选的基于虚拟机的数据传输装置的结构示意图;
[0021] 图8是根据本申请图6所示实施例的一种可选的生成模块的结构示意图;
[0022] 图9是根据本申请图6所示实施例的又一种可选的基于虚拟机的数据传输装置的结构示意图;
[0023] 图10是根据本申请实施例四的基于虚拟机的数据传输装置的结构示意图;
[0024] 图11是根据本申请图10所示实施例的一种可选的基于虚拟机的数据传输装置的结构示意图;
[0025] 图12是根据本申请图10所示实施例的又一种可选的基于虚拟机的数据传输装置的结构示意图;
[0026] 图13是根据本申请实施例五的基于虚拟机的数据传输系统的结构示意图;
[0027] 图14是根据本申请实施例五的一种可选的基于虚拟机的数据传输系统的实现架构图;以及
[0028] 图15是根据本申请实施例的一种计算机终端的结构框图。

具体实施方式

[0029] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0030] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0031] 下面对本申请涉及到的术语进行解释如下:
[0032] 虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI),即通过在数据中心的服务器中运行处理系统,通过客户计算协议,实现客户端设备与虚拟桌面进行连接。可以通过在数据中心的服务器上生成大量独立桌面操作系统,用户终端通过以太网登陆,即可随时随地的通过网络访问自己的桌面系统。
[0033] 瘦终端,或瘦客户端,是现阶段虚拟桌面架构中广泛采用的终端设备,指客户端-服务器网络体系中的一个基本无需应用程序的计算机终端,它通过一些协议和服务器通信,进而接入局域网。瘦客户端将其鼠标、键盘灯输入传送到服务器处理,服务器再把处理结果回传至客户端显示,不同的客户端可以同时登陆到服务器上,模拟出一个相互独立又在服务器上的工作环境。与瘦终端相对的,为普通客户端,普通客户端会可能多的进行本地数据处理,与服务器或其他客户端的通信中只传送必要的通信数据。
[0034] MicroPC,采用嵌入式终端系统实现类PC功能的系统。
[0035] 实施例1
[0036] 根据本申请实施例,还提供了一种基于虚拟机的数据传输方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0037] 本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图2是根据本申请实施例的一种基于虚拟机的数据传输方法的计算机终端的硬件结构框图。如图2所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
[0038] 存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的基于虚拟机的数据传输方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0039] 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0040] 在上述运行环境下,本申请提供了如图3所示的基于虚拟机的数据传输方法。图3是根据本申请实施例一的基于虚拟机的数据传输方法的流程图。
[0041] 结合图2和图3可知,上述计算机终端10可以是安装了虚拟主机端的业务终端设备,如图3所示,一种可选的基于虚拟机的数据传输方法包括如下实施步骤:
[0042] 步骤S302:业务终端设备中运行的调试桥可执行程序生成调试桥数据包。
[0043] 本申请上述步骤S302中,业务终端设备在本申请实施例中为远端系统的统称,例如数据中心的服务器。调试桥可以是业务终端设备操作管理存储设备的工具。调试桥可执行程序可以为运行于业务终端设备中的调试桥相关进程的统称,表现为业务终端设备中的exe程序。调试桥数据包为调试桥可执行程序根据约定协议生成的业务数据,调试桥可执行程序解析用户输入的命令生成调试桥业务请求,并将该调试桥业务请求封装于调试桥数据包中。
[0044] 此处需要说明的是,当存储设备直接接入该业务终端设备时,运行于该业务终端设备中的调试桥可执行程序会将调试桥数据包直接通过物理存储设备接口,以传输协议包的形式发送至存储设备。通过物理存储设备接口,业务终端设备可与存储设备交互数据。然而,当业务终端设备为远端设备时,存储设备与业务终端设备之间的物理存储设备通道被网络通道取代,而导致业务终端设备和存储设备之间的数据交互速率降低,例如,业务终端设备可以将调试桥数据包通过网络接口,以传输协议包的形式发送至存储设备,当存储设备的应答信息通过网络返回后,业务终端设备才发送下一个调试桥数据包,显然,这样的传输方式延时明显,传输效率较低。
[0045] 在一种可选的应用场景中,调试桥可应用于安卓(android)系统中,表现为安卓调试桥(Android Debug Bridge,简称ADB)。ADB可用于对android系统进行的开发调试等功能,是目前PC上手机助手软件操作android手机主要方法。基于上述应用场景,调试桥可执行程序可以为运行于业务终端设备中的ADB可执行程序,例如ADB.exe;同理,调试桥数据包可以为ADB数据包,约定协议可以为ADB协议,其中ADB协议是安卓手机中通过存储设备进行传输、用于调试和管理的一套业务协议。在本申请实施例中,结合调试桥应用于安卓系统的实例,对本申请进行解释说明,但本领域技术人员应当知晓,调试桥还可有其他具体应用场景。
[0046] 例如,以Micro PC登录虚拟桌面并访问连接于该Micro PC的安卓手机为例,MicroPC通过有线或无线的方式连接互联网,安卓手机通过存储设备连接线,例如USB连接线连接该MicroPC。业务终端设备,例如设置在阿里云上的服务器设备。用户通过该MicroPC登录阿里云服务器中生成的虚拟桌面,并且在该桌面中打开手机助手对连接于该MicroPC的安卓手机进行管理。此时,根据用户的操作,由阿里云服务器中运行的调试桥可执行程序,例如ADB.exe生成ADB业务请求,并将该业务请求封装生成ADB数据包。
[0047] 步骤S304:业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包。
[0048] 本申请上述步骤S304中,虚拟主机端运行于业务终端设备中,虚拟主机端为基于虚拟机技术,在业务终端设备中虚拟出来的主机,虚拟主机端可以创建虚拟存储设备,并对虚拟出的存储设备进行管理。虚拟主机端可以通过虚拟存储设备接口,接收调试桥可执行程序以传输协议包的形式发送的调试桥数据包,同时,调试桥可执行程序可能对于虚拟主机端接收该调试桥数据包并不知情。
[0049] 此处需要说明的是,虚拟存储设备可以是基于USB虚拟化技术创建的虚拟USB设备。USB虚拟化技术是虚拟化桌面支持外部设备的技术,旨在将本地的USB设备通过网络协议传输重定向到远端。在本申请实施例中,虚拟USB设备可以指在虚拟机中通过软件模拟的具有与硬件USB相同功能的虚拟设备。在虚拟主机端中,虚拟USB设备可以被识别为接入该虚拟主机端的USB设备,并执行与接入该虚拟主机端的设备相同的功能,例如作为USB设备与虚拟主机端中运行的ADB可执行程序进行数据交互。
[0050] 仍旧以MicroPC登录虚拟桌面并访问连接于该MicroPC的安卓手机为例,在阿里云服务器中运行的虚拟主机端,通过虚拟USB接口,接收阿里云服务器中ADB可执行程序生成ADB数据包。
[0051] 步骤S306:虚拟主机端缓存调试桥数据包,并生成反馈信息。
[0052] 本申请上述步骤S306中,虚拟主机端接收到调试桥数据包后,立刻将该调试桥数据包缓存,并生成针对该调试桥数据包的反馈信息,该反馈信息用于通知调试桥可执行程序对应的调试桥数据包已完成传输。缓存可以包含存储于内存芯片的意思,也可以包含存储于硬盘等其他存储介质上的意思。
[0053] 此处需要说明的是,由于业务终端设备将调试桥数据包通过网络接口,以传输协议包的形式发送至安卓设备的传输方式延时明显、传输效率较低。本申请实施例中在业务终端设备中通过虚拟机技术,虚拟出一个虚拟主机端,该虚拟主机端可以通过虚拟化存储设备技术接收该传输协议包形式的调试桥数据包,并代替目标终端设备生成对应该调试桥数据包的反馈信息,为目标终端设备设备接收到该调试桥数据包的意思表示;本申请实施例的传输流程所耗费的时间资源远远小于没有该虚拟主机端时的传输流程。
[0054] 仍旧以MicroPC登录虚拟桌面并访问连接于该MicroPC的安卓手机为例,阿里云服务器中运行的虚拟主机在收到ADB数据包后,立刻将该ADB数据包缓存,并生成针对该ADB数据包的反馈信息。由于ADB可执行程序和虚拟主机均运行于阿里与服务器中,执行这一步骤的耗时非常小,而且缓存本身也可以大大提升数据传输速率。
[0055] 步骤S308:虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端。其中,调试桥数据包由业务终端设备远程传输给目标终端设备。
[0056] 本申请上述步骤S308中,根据调试桥传输协议,当调试桥可执行程序收到上一个调试桥数据包发送成功的反馈信息后,才会发送下一个调试桥数据包。业务终端设备与目标终端设备之间通过例如网络交互数据。本申请实施例中目标终端设备例如安卓设备,包括一切运行了安卓系统的终端,例如,安卓手机、安卓平板、基于安卓系统的智能电视、以及运行安卓模拟器的终端设备等。
[0057] 此处需要说明的是,新生成的调试桥数据包仅用于与上述调试桥数据包区分,表示调试桥可执行程序在接收到上述调试桥数据包的反馈信息之后,才允许发送出的下一个调试桥数据包,并不限定该新生成的调试桥数据包为针对新用户命令生成的数据包。
[0058] 仍旧以MicroPC登录虚拟桌面并访问连接于该MicroPC的安卓手机为例,对于ADB可执行程序而言,ADB可执行程序接收到反馈信息,认为ADB数据包已成功发送给安卓手机,则发出下一个ADB数据包。另一方面,对于虚拟主机端而言,虚拟主机端将缓存的ADB数据包通过网络接口直接或间接发送至安卓手机,使得安卓手机接收到该ADB数据包后,依照该ADB数据包操作或响应,以此,实现了业务终端设备中的ADB数据包向安卓手机的快速下行传输。其中,间接发送至安卓手机的方式包括:虚拟主机端将ADB数据包发送至MicroPC,并由MicroPC将该ADB数据包通过USB接口发送至安卓手机。
[0059] 由上可知,本申请上述实施例一所提供的方案中,采用在业务终端设备中增设的虚拟主机端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟主机端在接收到调试桥数据包后立刻缓存在本地,并返回针对该调试桥数据包的反馈信息给在业务终端设备本地运行的调试桥可执行程序,调试桥可执行程序在接收到该反馈信息之后,即可以确定当前发送的调试桥数据包已经发送成功,从而立即发送下一个调试桥数据包,从而达到了提高调试桥可执行程序发送调试桥数据包的效率的目的,进而实现了业务终端设备中的调试桥数据向目标终端设备的快速下行传输。通过上述方案,实现了提高虚拟桌面中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果,解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0060] 本申请上述实施例提供的一种可选方案中,在步骤S306:虚拟主机端缓存调试桥数据包之后,还可以执行如下实施步骤:
[0061] 步骤S3092:虚拟主机端将调试桥数据包转换成虚拟化数据包。
[0062] 本申请上述步骤S3092中,虚拟主机端还具备另一主要功能,即解析处理网络上的存储设备虚拟化协议。虚拟化数据包为虚拟主机端将调试桥数据包按照存储设备虚拟化协议转换成的业务数据。虚拟主机端执行将调试桥数据包转换成虚拟化数据包的步骤,和执行向调试桥可执行程序返回反馈信息的步骤可以同时进行。
[0063] 步骤S3094:虚拟主机端将虚拟化数据包传输至安装了虚拟客户端的中间终端设备;其中,在虚拟客户端解析虚拟化数据包得到调试桥数据包之后,通过中间终端设备的存储设备接口将调试桥数据包发送至目标终端设备,目标终端设备通过存储设备接入中间终端设备。
[0064] 本申请上述步骤S3094中,中间终端设备可为具有物理存储设备接口、可连接至互联网的计算机终端,业务终端设备通过网络与中间终端设备建立连接,目标终端设备可以通过该存储设备接口与中间终端设备建立连接。与虚拟主机端相对应,虚拟客户端运行于中间终端设备中,也具备解析处理网络上的存储设备虚拟化协议的功能,同时,还可以监控插入的物理存储设备,发起和管理虚拟存储设备。中间终端设备接收根据存储设备虚拟化协议封装生成的虚拟化数据包,并同样根据存储设备虚拟化协议,将虚拟化数据包转换成传输协议包形式的调试桥数据包。
[0065] 例如,以MicroPC登录虚拟桌面并访问连接于该MicroPC的安卓手机为例,阿里云中的虚拟主机端将ADB数据包根据USB虚拟化协议,转换成虚拟化数据包,并通过网络传输至中间终端设备中的虚拟客户端中,虚拟客户端同样根据USB虚拟化协议将虚拟化数据包转换成ADB数据包,并通过物理USB接口传输给安卓手机。
[0066] 由上可知,本申请上述步骤S3092至步骤S3094提供了一种业务终端设备将调试桥数据包传输给目标终端设备的可选方案。通过在业务终端设备和中间终端设备中增设虚拟客户端,与业务终端设备中的虚拟主机端相互配合,实现了虚拟主机端将调试桥数据包发送至安卓设备的过程。
[0067] 本申请上述实施例提供的一种可选方案中,在目标终端设备接收到业务终端设备远程传输的调试桥数据包之后,还可以执行如下实施步骤:
[0068] 步骤S312:目标终端设备上运行的调试桥守护进程根据调试桥数据包生成调试桥应答数据包。
[0069] 本申请上述步骤S312中,调试桥守护进程是运行在安卓设备或模拟器中的后台进程,用于与运行于业务终端设备上的调试桥可执行程序配合,解析存储设备接口上的传输协议包,响应调试桥可执行程序发起的业务请求并为调试桥可执行程序提供服务,具体的,调试桥守护进程用于连接调试桥服务进程并为运行在主机上的调试桥客户端提供服务。调试桥应答数据包为调试桥守护进程响应调试桥数据包中的业务请求而生成的业务数据。
[0070] 此处还需要说明的是,在上述一种可选的应用场景下,即调试桥可应用于安卓(android)系统的场景中,调试桥守护进程可以为ADB守护进程,具体的可表现为:ADB daemon;调试桥应答数据包可表现为ADB应答数据包,包含ADB daemon响应调试桥数据包中的业务请求而生成的业务数据。
[0071] 仍旧以MicroPC登录虚拟桌面并访问连接于该MicroPC的安卓手机为例,运行于安卓手机中的ADB daemon进程解析通过安卓手机的USB接口传输来的ADB数据包,并产生应答数据包,用于通知发出该ADB数据包的ADB可执行程序该ADB数据包已成功接收,和/或,用于返回ADB数据包中业务请求所指示的数据。
[0072] 步骤S314:调试桥守护进程将调试桥应答数据包通过存储设备传输至虚拟客户端。
[0073] 本申请上述步骤S314中,目标终端设备与中间终端设备之间通过存储设备交互数据。
[0074] 步骤S316:虚拟客户端缓存调试桥应答数据包,并生成反馈应答信息。
[0075] 本申请上述步骤S316中,虚拟客户端接收到调试桥应答数据包后,立刻将该调试桥应答数据包缓存,并生成针对该调试桥应答数据包的反馈应答信息,该反馈应答信息用于通知调试桥守护进程对应的调试桥应答数据包已完成传输,尽管此时调试桥可执行程序尚未收到该调试桥应答数据包。缓存可以包含存储于硬盘控制器上的内存芯片的意思,也可以包含存储于硬盘或其他存储介质上的意思。
[0076] 步骤S318:虚拟客户端将反馈应答信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥应答数据包。
[0077] 此处需要说明的是,在没有该虚拟客户端时,调试桥应答数据包发送至远端的业务终端设备,由业务终端设备中运行的调试桥可执行程序接收并处理,在目标终端设备确认该调试桥应答数据包被业务终端设备接收后,目标终端设备才会发出下一个调试桥应答数据包。而本申请实施例中在目标终端设备中通过虚拟机技术,虚拟出一个虚拟客户端,该虚拟客户端可以通过虚拟化存储设备技术接收传输协议包形式的调试桥应答数据包,并代替业务终端设备生成对应该调试桥数据包的反馈应答信息,本申请实施例的传输流程所耗费的时间资源远远小于没有该虚拟客户端时的传输流程。
[0078] 仍旧以MicroPC登录虚拟桌面并访问连接于该MicroPC的安卓手机为例,MicroPC中运行虚拟客户端,虚拟客户端接收安卓手机通过USB接口返回的ADB应答数据包,并生成针对该ADB应答数据包的反馈应答信息,使得安卓手机迅速发送下一个ADB应答数据包。由于虚拟客户端与安卓手机通过物理USB连接,执行上述步骤的耗时非常小,而且缓存本身也可以大大提升数据传输速率。
[0079] 由上可知,本申请上述步骤S312至步骤S318提供了一种虚拟客户端与目标终端设备中的调试桥守护进程之间的数据传输的可选方案。采用在中间终端设备中增设的虚拟客户端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟客户端在接收到调试桥应答数据包后立刻缓存在本地,并返回针对该调试桥应答数据包的反馈应答信息给在目标终端设备中运行的调试桥守护进程,调试桥守护进程在接收到该反馈应答信息之后,即可以确定当前发送的调试桥应答数据包已经发送成功,从而立即发送下一个调试桥应答数据包,从而达到了提高调试桥守护进程发送调试桥应答数据包的效率的目的,进而实现了目标终端设备中的调试桥应答数据向业务终端设备的快速上行传输。通过上述方案,实现了提高远端系统中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果。进而解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0080] 本申请上述实施例提供的一种可选方案中,虚拟客户端在本地创建第二缓存区,其中,第二缓存区用于缓存调试桥应答数据包。
[0081] 本申请上述可选方案中,虚拟化客户端缓存上述调试桥应答数据包的其中一种可选的方式,是通过针对调试桥设备创建一个缓存区,例如cache池,来缓存调试桥守护进程向调试桥可执行程序上行传输的调试桥应答数据包。
[0082] 此处需要说明的是,目前的存储设备虚拟化方案中把安卓手机的调试桥重定向到虚拟机中使用,其速度仅能达到KB级别,在虚拟机中使用手机助手等软件来进行管理时延时非常明显,用户体验很糟糕。因此,本申请实施例提供的方案对调试桥的存储设备虚拟化传输设计了一套缓存机制,即在中间终端设备的虚拟客户端中实现一个对调试桥应答数据包进行缓存的缓存池,内部通过物理存储设备接口返回反馈应答信息来预先获取调试桥数据包填充缓存池,传输速度能够从KB级别提高到MB级别。
[0083] 本申请上述实施例提供的一种可选方案中,在步骤S316:虚拟客户端缓存调试桥应答数据包之后,还可以执行如下实施步骤:
[0084] 步骤S3192:虚拟客户端将调试桥应答数据包转换成虚拟化应答数据包。
[0085] 本申请上述步骤S3192中,虚拟客户端还具备另一主要功能,即解析处理网络上的存储设备虚拟化协议。虚拟化应答数据包为虚拟客户端将调试桥应答数据包按照存储设备虚拟化协议转换成的业务数据。虚拟客户端执行将调试桥应答数据包转换成虚拟化数据包的步骤,和执行向调试桥守护进程返回反馈应答信息的步骤可以同时进行。
[0086] 步骤S3194:虚拟客户端将虚拟化应答数据包传输至安装了虚拟主机端的业务终端设备;其中,在虚拟主机端解析虚拟化应答数据包得到调试桥应答数据包之后,通过虚拟存储设备将调试桥应答数据包发送至调试桥可执行程序。
[0087] 本申请上述步骤S3194中,业务终端设备与中间终端设备之间通过互联网传输数据。业务终端设备接收根据存储设备虚拟化协议封装生成的虚拟化应答数据包,并同样根据存储设备虚拟化协议,将虚拟化应答数据包转换成传输协议包形式的调试桥应答数据包。运行于业务终端设备中的虚拟主机端还可以通过虚拟存储设备接口向调试桥可执行程序发送调试桥应答数据包。
[0088] 仍旧以MicroPC登录虚拟桌面并访问连接于该MicroPC的安卓手机为例,MicroPC中运行的虚拟客户端通过网络发送缓存的虚拟化应答数据包至阿里云服务器中运行的虚拟主机端,虚拟主机端再根据USB虚拟化传输协议将虚拟化应答数据包转换成ADB应答数据包,并发送至ADB可执行程序。
[0089] 由上可知,本申请上述步骤S30192至步骤S30194提供了一种中间终端设备将缓存的调试桥应答数据包发送至调试桥可执行程序的可选方案。基于上述步骤S30192将调试桥应答数据包转换成虚拟化应答数据包,通过执行步骤S30194,将虚拟化应答数据包传输至业务终端设备,最终实现了调试桥应答数据包向调试桥可执行程序的传输。
[0090] 可选地,当业务终端设备中的虚拟主机接收到中间终端设备发来的虚拟化应答数据包,并将虚拟化应答数据包转换为调试桥应答数据包之后,还可执行如下步骤:匹配接收到的调试桥应答数据包与已发出的调试桥数据包,即验证虚拟主机箱调试桥可执行程序返回的反馈信息与接收到的调试桥应答数据包是否一致,在匹配一致的情况下,可以确定该调试桥数据包已成功抵达目标终端设备。如果在预定条件下,仍未接收到与调试桥数据包相匹配的调试桥应答数据包时,则可确定该调试桥数据包未成功传输,此时虚拟主机端可以重新发送该未成功传输的调试桥数据包,或者虚拟主机端请求调试桥可执行程序重新发送该未成功传输的调试桥数据包。该预定条件可为预定的时间间隔,或者预定的调试桥数据包的发送量。
[0091] 本申请上述实施例提供的一种可选方案中,虚拟主机端将所述虚拟化数据包传输至安装了虚拟客户端的中间终端设备,还包括如下具体步骤:
[0092] 步骤S3102:虚拟主机端对生成的多个虚拟化数据包依次打上时间戳。
[0093] 本申请上述步骤S3102中,时间戳可以为标识虚拟化数据包生成时间的信息,也可以为标识虚拟主机端接收到该虚拟化数据包对应的调试桥数据包的时间信息。在正常情况下,虚拟主机端发出虚拟化数据包的顺序,为业务终端设备发出调试桥数据包的顺序,然而,可能会由于网络延迟等情况出现了数据包乱序,故而通过在虚拟化数据包中增加时间戳的方式保证虚拟化数据包按照一定顺序发出。
[0094] 步骤S3104:将具有时间戳的多个虚拟化数据包散列成缓存队列中的数据包。
[0095] 本申请上述步骤S3104中,散列在本申请实施例中可理解为将任意长度虚拟化数据包,通过散列算法,变换成固定长度的数据包。
[0096] 步骤S3106:对缓存队列中的数据包进行排序和/或筛选处理,并按照预先设置的传输策略发送缓存队列中的数据包至目标终端设备,其中,传输策略用于表征缓存队列中的数据包的传输优先级。
[0097] 本申请上述步骤S3106中,传输策略例如包括:按照虚拟化数据包的时间戳、按照虚拟化数据包的大小、虚拟化数据包是否为无效包以及虚拟化数据包是否为冗余包等策略,对缓存队列中的数据包设置传输优先级,该传输优先级用于指示虚拟主机端发送该虚拟化数据包的顺序。
[0098] 由上可知,本申请上述步骤S3102至步骤S3106提供了一种虚拟主机端将所述虚拟化数据包传输至安装了虚拟客户端的中间终端设备的可选方案。通过本申请实施例提供的上述方案,实现了对虚拟主机端发送虚拟化数据包的顺序进行优化设置,提高了虚拟主机端与虚拟客户端间的传输速率。需要说明的是,对上述方案进行适应性修改后,还可以应用于虚拟客户端向虚拟主机端发送虚拟化应答数据包的步骤。
[0099] 本申请上述实施例提供的一种可选方案中,调试桥可执行程序至少包括:调试桥客户端和调试桥服务进程,其中,步骤S302:业务终端设备中运行的调试桥可执行程序生成调试桥数据包还包括如下具体步骤:
[0100] 步骤S3022:业务终端设备中运行的调试桥客户端向调试桥服务进程发起业务请求。
[0101] 步骤S3024:调试桥服务进程解析业务请求,生成业务数据包。
[0102] 步骤S3026:调试桥服务进程并将业务数据包按照调试桥传输协议进行封装,生成调试桥数据包。
[0103] 此处需要说明的是,在上述一种可选的应用场景下,即调试桥可应用于安卓(android)系统的场景中,调试桥客户端可以为ADB客户端,具体的可表现为ADB client;调试桥服务进程可以为ADB服务进程,具体的可表现为ADB server。
[0104] 本申请上述步骤S3022至步骤S3026中,调试桥可执行程序又具体的包括了调试桥客户端和调试桥服务进程,其中,调试桥客户端用于解析用户输入的命令后生成调试桥业务请求包,通过本地socket把请求发给调试桥服务进程;调试桥服务进程用于一方面负责解析应答client的业务请求,另一方面如果过该业务请求需要终端配合完成,则向终端发起业务,并把该业务请求封装到传输协议包中,通过虚拟存储设备接口与终端进行交互。
[0105] 由上可知,本申请上述步骤S3022至步骤S3026提供了一种调试桥可执行程序生成调试桥数据包的可选方案。基于上述步骤S3022发起业务请求,通过步骤S3024生成业务数据包,并通过执行步骤S3026将业务数据封装为传输协议包形式的调试桥数据包。
[0106] 本申请上述实施例提供的一种可选方案中,在步骤S304:业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包之前,还可以执行如下实施步骤:
[0107] 步骤S303:虚拟主机端在本地预先创建虚拟存储设备,并在本地创建第一缓存区,其中,第一缓存区用于缓存调试桥数据包。
[0108] 本申请上述步骤S303中,虚拟主机端缓存调试桥数据包的其中一种可选的方式为:通过创建一个缓存区,例如cache池,来缓存调试桥服务进程向调试桥守护进程下行传输的调试桥数据包。
[0109] 此处需要说明的是,目前的USB虚拟化方案中把安卓手机的ADB重定向到虚拟机中使用,其速度仅能达到KB级别,在虚拟机中使用手机助手等软件来进行管理时延时非常明显,用户体验很糟糕。因此,本申请实施例提供的方案对ADB的USB虚拟化传输设计了一套缓存机制,即在业务终端的虚拟主机端实现一个对ADB数据包进行缓存的缓存池,内部通过USB虚拟化的请求预先获取ADB数据包来填充缓存池,当收到ADB请求时,从缓存池中寻找应答包,将传输速度从KB级别提高到MB级别。
[0110] 下面就结合图4,将本申请的方案应用在应用场景所实现的功能进行详细描述:
[0111] 步骤A:发起业务请求。
[0112] 在本申请上述步骤A中,可以通过运行于业务终端设备中的ADB客户端向ADB服务进程发起业务请求。
[0113] 步骤B:生成业务数据包。
[0114] 在本申请上述步骤B中,ADB服务进程解析业务请求,生成业务数据包。
[0115] 步骤C:生成并发送ADB数据包。
[0116] 在本申请上述步骤C中,ADB服务进程将解析得到的业务数据包按照ADB传输协议进行封装,生成ADB数据包。
[0117] 步骤D:将ADB数据包缓存至第一缓存区,生成反馈信息。
[0118] 在本申请上述步骤D中,业务终端设备上运行的虚拟主机端通过预先创建的虚拟USB设备接收ADB数据包;虚拟主机端接收到ADB数据包后,立刻将该ADB数据包缓存在本地的第一缓存区中,并生成针对该ADB数据包的反馈信息,该反馈信息用于通知ADB可执行程序对应的ADB数据包已完成传输。
[0119] 步骤E:返回反馈信息。
[0120] 在本申请上述步骤E中,虚拟主机端将反馈信息返回至ADB可执行程序。
[0121] 步骤F:生成并发送新的ADB数据包至业务终端设备上运行的虚拟主机端。
[0122] 在本申请上述步骤F中,当ADB可执行程序收到上一个ADB数据包发送成功的反馈信息后,会发送下一个ADB数据包给业务终端设备上运行的虚拟主机端。
[0123] 步骤G:将ADB数据包转换为虚拟化数据包。
[0124] 在本申请上述步骤G中,虚拟主机端具备解析处理网络上的USB虚拟化协议的功能,将ADB数据包按照USB虚拟化协议转换成虚拟化数据包。
[0125] 步骤H:业务终端设备会将转换后的虚拟化数据包通过网络远程发送给中间终端设备。
[0126] 在本申请上述步骤H中,业务终端设备通过网络与中间终端设备建立连接,虚拟客户端运行于中间终端设备中,业务终端设备通过网络将虚拟化数据包发送至中间终端设备上安装的虚拟客户端。
[0127] 步骤I:中间终端设备解析虚拟化数据包得到ADB数据包。
[0128] 在本申请上述步骤I中,与虚拟主机端相对应,虚拟客户端运行于中间终端设备中,也具备解析处理网络上的USB虚拟化协议的功能,同时,还可以监控插入的USB物理设备,发起和管理虚拟USB设备。
[0129] 步骤J:中间终端设备发送ADB数据包至目标终端设备。
[0130] 在本申请上述步骤J中,虚拟客户端解析虚拟化数据包得到ADB数据包之后,通过中间终端设备的USB接口将ADB数据包发送至目标终端设备。
[0131] 步骤K:目标终端设备生成ADB应答数据包。
[0132] 在本申请上述步骤K中,目标终端设备上运行的ADB守护进程根据ADB数据包生成ADB应答数据包;ADB应答数据包为ADB守护进程响应ADB数据包中的业务请求而生成的业务数据。
[0133] 步骤L:目标终端设备返回ADB应答数据包至中间终端设备。
[0134] 在本申请上述步骤L中,目标终端设备与中间终端设备之间通过USB设备交互数据,ADB守护进程将ADB应答数据包通过USB设备传输至目标终端设备上的虚拟客户端。
[0135] 步骤M:中间终端设备将ADB应答数据包缓存至本地的第二缓存区,生成反馈应答信息。
[0136] 在本申请上述步骤M中,中间终端设备上运行的虚拟客户端通过USB接口接收到ADB应答数据包之后,立刻将该ADB应答数据包缓存,并生成针对该ADB应答数据包的反馈应答信息,该反馈应答信息用于通知ADB守护进程对应的ADB应答数据包已完成传输。
[0137] 步骤N:虚拟客户端返回反馈应答信息至目标终端设备。
[0138] 在本申请上述步骤N中,虚拟客户端可以将反馈应答信息返回至目标终端设备上的ADB守护进程。
[0139] 步骤O:目标终端设备生成并返回新的ADB应答数据包。
[0140] 在本申请上述步骤O中,在目标终端设备中的ADB守护进程确认该ADB应答数据包被业务终端设备中的ADB可执行程序接收后,目标终端设备中的ADB守护进程会发出下一个ADB应答数据包。
[0141] 步骤P:中间终端设备将ADB应答数据包转换为虚拟化应答数据包。
[0142] 在本申请上述步骤P中,虚拟化应答数据包为虚拟客户端将ADB应答数据包按照USB虚拟化协议转换成的业务数据。虚拟客户端还具备解析处理网络上的USB虚拟化协议的功能。
[0143] 步骤Q:中间终端设备返回虚拟化应答数据包至业务终端设备。
[0144] 在本申请上述步骤Q中,业务终端设备与中间终端设备之间通过互联网传输数据。虚拟客户端将虚拟化应答数据包传输至安装了虚拟主机端的业务终端设备。
[0145] 步骤R:业务终端设备解析上述虚拟化应答数据包得到ADB应答数据包。
[0146] 在本申请上述步骤R中,业务终端设备中的虚拟主机端根据USB虚拟化协议,将虚拟化应答数据包转换成传输协议包形式的ADB应答数据包。
[0147] 步骤S:业务终端设备中的虚拟主机端发送ADB应答数据包。
[0148] 在本申请上述步骤S中,虚拟主机端通过虚拟USB设备将ADB应答数据包发送至ADB可执行程序,使得ADB可执行程序通过解析ADB应答数据包来获取目标终端设备上传的数据。
[0149] 通过上述步骤A至步骤J,实现了业务终端设备中ADB可执行程序生成的ADB数据包向目标终端设备中的ADB守护进程的下行发送。通过上述步骤K至步骤S,实现了目标终端设备中的ADB守护进程生成的ADB响应数据包向业务终端设备中ADB可执行程序的上行发送。
[0150] 在相关技术中,当前各种USB虚拟化重定向方法中在ADB模式下的传输速率一般在KB级别,这样的速率无法在远端系统中正常使用手机助手等诸多软件,严重限制了Android手机在虚拟桌面等系统中的使用。而根据本申请实施例的数据传输方法,通过创建一套ADB传输的cache机制,使ADB的传输速度增加到MB级别,从而让安卓手机可以顺畅地在远端系统中被使用。
[0151] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0152] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
[0153] 实施例2
[0154] 根据本申请实施例,还提供了一种基于虚拟机的数据传输方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0155] 本申请实施例一所提供的方法实施例仍旧可以在移动终端、计算机终端或者类似的运算装置中执行。此处需要说明的是,实施例二所提供的方法实施例仍旧可以运行在图2所示的计算机终端上。
[0156] 在上述运行环境下,本申请提供了如图5所示的基于虚拟机的数据传输方法。图5是根据本申请实施例二的基于虚拟机的数据传输方法的流程图。如图5所示,一种可选的基于虚拟机的数据传输方法包括如下实施步骤:
[0157] 步骤S502:安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,目标终端设备通过调试桥守护进程生成调试桥服务数据包,并将调试桥服务数据包通过存储设备传输至虚拟客户端。
[0158] 本申请上述步骤S502中,中间终端设备可为具有物理存储设备接口、可连接至互联网的计算机终端,目标终端设备可以通过该存储设备接口与中间终端设备建立连接。本申请实施例中目标终端设备例如安卓设备,包括一切运行了安卓系统的终端,例如,安卓手机、安卓平板、基于安卓系统的智能电视、以及运行安卓模拟器的终端设备等。虚拟客户端运行于中间终端设备中,具备解析处理网络上的存储设备虚拟化协议的功能,同时,还可以监控插入的物理存储设备,发起和管理虚拟存储设备。
[0159] 此处需要说明的是,调试桥守护进程或表示为:ADB daemon,是运行在目标终端设备,例如安卓设备或模拟器中的后台进程,用于与运行于业务终端设备上的调试桥可执行程序配合,解析存储设备接口上的传输协议包,响应调试桥可执行程序发起的业务请求并为调试桥可执行程序提供服务。调试桥服务数据包为调试桥守护进程根据调试桥传输协议生成的、传输协议包形式的业务数据。
[0160] 步骤S504:虚拟客户端缓存调试桥服务数据包,并生成第一反馈信息。
[0161] 本申请上述步骤S504中,虚拟客户端接收到调试桥服务数据包后,立刻将该调试桥服务数据包缓存,并生成针对该调试桥应答数据包的第一反馈信息,该第一反馈信息用于通知调试桥守护进程对应的调试桥应答数据包已完成传输,尽管此时调试桥可执行程序尚未收到该调试桥应答数据包。缓存可以包含存储于硬盘控制器上的内存芯片的意思,也可以包含存储于硬盘或其他存储介质上的意思。
[0162] 步骤S506:虚拟客户端将第一反馈信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥服务数据包。
[0163] 其中,调试桥服务数据包由中间终端设备远程传输给业务终端设备。
[0164] 此处需要说明的是,在没有该虚拟客户端时,调试桥服务数据包发送至远端的业务终端设备,由业务终端设备中运行的调试桥可执行程序接收并处理,在目标终端设备确认该调试桥服务数据包被业务终端设备接收后,目标终端设备才会发出下一个调试桥服务数据包。而本申请实施例中在目标终端设备中通过虚拟机技术,虚拟出一个虚拟客户端,该虚拟客户端可以通过虚拟化存储设备技术接收传输协议包形式的调试桥服务数据包,并代替业务终端设备生成对应该调试桥数据包的第一反馈信息,本申请实施例的传输流程所耗费的时间资源远远小于没有该虚拟客户端时的传输流程。
[0165] 此处还需要说明的是,业务终端设备通过网络与中间终端设备建立连接。
[0166] 由上可知,本申请上述步骤S502至步骤S506提供了一种虚拟客户端与目标终端设备中的调试桥守护进程之间的数据传输的可选方案。采用在中间终端设备中增设的虚拟客户端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟客户端在接收到调试桥应答数据包后立刻缓存在本地,并返回针对该调试桥应答数据包的反馈应答信息给在目标终端设备中运行的调试桥守护进程,调试桥守护进程在接收到该反馈应答信息之后,即可以确定当前发送的调试桥应答数据包已经发送成功,从而立即发送下一个调试桥应答数据包,从而达到了提高调试桥守护进程发送调试桥应答数据包的效率的目的,进而实现了目标终端设备中的调试桥应答数据向业务终端设备的快速上行传输。通过上述方案,实现了提高远端系统中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果。进而解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0167] 本申请上述实施例提供的一种可选方案中,虚拟客户端在本地创建缓存区,其中,缓存区用于缓存调试桥服务数据包。
[0168] 本申请上述可选方案中,虚拟化客户端缓存上述调试桥服务数据包的其中一种可选的方式,是通过针对调试桥设备创建一个缓存区,例如cache池,来缓存调试桥守护进程向调试桥可执行程序上行传输的调试桥服务数据包。
[0169] 此处需要说明的是,目前的USB虚拟化方案中把安卓手机的ADB重定向到虚拟机中使用,其速度仅能达到KB级别,在虚拟机中使用手机助手等软件来进行管理时延时非常明显,用户体验很糟糕。因此,本申请实施例提供的方案对ADB的USB虚拟化传输设计了一套缓存机制,即在中间终端设备的虚拟客户端中实现一个对ADB服务数据包进行缓存的缓存池,内部通过物理USB接口返回第一反馈信息来预先获取ADB服务数据包填充缓存池,使得传输速度能够从KB级别提高到MB级别。
[0170] 本申请上述实施例提供的一种可选方案中,在步骤S504:虚拟客户端缓存调试桥服务数据包之后,还可以执行如下实施步骤:
[0171] 步骤S512:虚拟客户端将调试桥服务数据包转换成虚拟化服务数据包。
[0172] 本申请上述步骤S512中,虚拟客户端还具备另一主要功能,即解析处理网络上的存储设备虚拟化协议。虚拟化服务数据包为虚拟客户端将调试桥服务数据包按照存储设备虚拟化协议转换成的业务数据。虚拟客户端执行将调试桥服务数据包转换成虚拟化服务数据包的步骤,和执行向调试桥守护进程返回第一反馈信息的步骤可以同时进行。
[0173] 步骤S514:虚拟客户端将虚拟化服务数据包传输至安装了虚拟主机端的业务终端设备。
[0174] 其中,在虚拟主机端解析虚拟化服务数据包得到调试桥服务数据包之后,通过虚拟主机端预先创建的虚拟存储设备将调试桥服务数据包发送至业务终端设备上运行的调试桥可执行程序。
[0175] 本申请上述步骤S514中,业务终端设备在本申请实施例中为远端设备的统称,例如数据中心的服务器。调试桥可执行程序为运行于业务终端设备中的调试桥相关进程的统称,表现为业务终端设备中的ADB.exe程序。调试桥数据包为调试桥可执行程序根据调试桥协议生成的业务数据,调试桥可执行程序解析用户输入的命令生成调试桥业务请求,并将该调试桥业务请求封装于调试桥数据包中。虚拟主机端运行于业务终端设备中,虚拟主机端为远端系统中虚拟出的主机,可以创建虚拟存储设备,并对虚拟出的存储设备进行管理。虚拟主机端可以通过网络接口,接收虚拟客户端发来的虚拟化服务数据包,并完成将虚拟化服务数据包按照存储设备虚拟化协议再转换为调试桥服务数据包,还可以通过虚拟存储设备接口,将调试桥服务数据包发送至调试桥可执行程序。
[0176] 由上可知,本申请上述步骤S512至步骤S514提供了一种中间终端设备将缓存的调试桥应答数据包发送至调试桥可执行程序的可选方案。基于上述步骤S512将调试桥应答数据包转换成虚拟化应答数据包,通过执行步骤S514,将虚拟化应答数据包传输至业务终端设备,最终实现了调试桥应答数据包向调试桥可执行程序的传输。
[0177] 本申请上述实施例提供的一种可选方案中,调试桥可执行程序至少包括:调试桥客户端和调试桥服务进程,其中,在将调试桥服务数据包发送至业务终端设备上运行的调试桥可执行程序之后,方法还包括:
[0178] 步骤S515:业务终端设备中运行的调试桥服务进程解析调试桥服务数据包。
[0179] 步骤S516:调试桥服务进程将解析后的调试桥服务数据包进行封装,生成业务类型的数据包。
[0180] 步骤S517:调试桥服务进程将生成的业务类型的数据包发送给调试桥客户端。
[0181] 本申请上述步骤S515至步骤S517中,调试桥可执行程序又具体的包括了调试桥客户端和调试桥服务进程,其中,调试桥客户端表现为业务终端设备中的ADB client,用于解析用户输入的命令后生成调试桥业务请求包,通过本地socket把请求发给调试桥服务进程;调试桥服务进程表现为业务终端设备中的ADB server,用于一方面负责解析应答ADB client的业务请求,另一方面如果过该业务请求需要终端配合完成,则向终端发起业务,并把该业务请求封装到传输协议包中,通过调试桥存储设备接口与终端进行交互。
[0182] 由上可知,本申请上述步骤S515至步骤S517提供了一种调试桥可执行程序生成调试桥数据包的可选方案。基于上述步骤S515发起业务请求,通过步骤S516生成业务数据包,并通过执行步骤S517将业务数据封装为传输协议包形式的调试桥数据包。
[0183] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0184] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
[0185] 实施例3
[0186] 根据本申请实施例,还提供了一种用于实施上述基于虚拟机的数据传输方法的基于虚拟机的数据传输装置,本申请上述实施例所提供的装置可以在计算机终端上运行。
[0187] 图6是根据本申请实施例三的基于虚拟机的数据传输装置的结构示意图。如图6所示,该基于虚拟机的数据传输装置包括:生成模块602、第一接收模块604、处理模块606以及第一发送模块608,其中:
[0188] 生成模块602,用于业务终端设备中运行的调试桥可执行程序生成调试桥数据包。
[0189] 第一接收模块604,用于所述业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收所述调试桥数据包。
[0190] 处理模块606,用于所述虚拟主机端缓存所述调试桥数据包,并生成反馈信息。
[0191] 第一发送模块608,用于所述虚拟主机端将所述反馈信息返回至所述调试桥可执行程序,使得所述调试桥可执行程序将新生成的调试桥数据包发送至所述虚拟主机端。
[0192] 其中,所述调试桥数据包由所述业务终端设备远程传输给目标终端设备。
[0193] 由上可知,本申请上述实施例三所提供的方案中,采用在业务终端设备中增设的虚拟主机端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟主机端在接收到调试桥数据包后立刻缓存在本地,并返回针对该调试桥数据包的反馈信息给在业务终端设备本地运行的调试桥可执行程序,调试桥可执行程序在接收到该反馈信息之后,即可以确定当前发送的调试桥数据包已经发送成功,从而立即发送下一个调试桥数据包,从而达到了提高调试桥可执行程序发送调试桥数据包的效率的目的,进而实现了业务终端设备中的调试桥数据向目标终端设备的快速下行传输。通过上述方案,实现了提高虚拟桌面中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果,解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0194] 此处需要说明的是,上述生成模块602、第一接收模块604、处理模块606以及第一发送模块608,对应于实施例一中的步骤S302至步骤S308,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0195] 可选地,图7是根据本申请图6所示实施例的一种可选的基于虚拟机的数据传输装置的结构示意图;如图7所示,根据本申请实施例的基于虚拟机的数据传输装置还包括:第一转换模块702以及第二发送模块704,其中:
[0196] 第一转换模块702,用于所述虚拟主机端将所述调试桥数据包转换成虚拟化数据包。
[0197] 第二发送模块704,用于所述虚拟主机端将所述虚拟化数据包传输至安装了虚拟客户端的中间终端设备。
[0198] 其中,在所述虚拟客户端解析所述虚拟化数据包得到所述调试桥数据包之后,通过所述中间终端设备的存储设备接口将所述调试桥数据包发送至所述目标终端设备,所述目标终端设备通过存储设备接入所述中间终端设备。
[0199] 由上可知,本申请上述第一转换模块702以及第二发送模块704提供了一种业务终端设备将调试桥数据包传输给目标终端设备的可选方案。通过在业务终端设备和中间终端设备中增设虚拟客户端,与业务终端设备中的虚拟主机端相互配合,实现了虚拟主机端将调试桥数据包发送至安卓设备的过程。
[0200] 此处需要说明的是,上述第一转换模块702以及第二发送模块704,对应于实施例一中的步骤S3092至步骤S3094,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0201] 可选地,根据本申请实施例的基于虚拟机的数据传输装置还包括:第二接收模块、第二转换模块以及第三发送模块,其中:
[0202] 第二接收模块,用于安装了所述虚拟主机端的所述业务终端设备接收所述虚拟客户端传输的虚拟化应答数据包。
[0203] 第二转换模块,用于解析所述虚拟化应答数据包得到调试桥应答数据包。
[0204] 第三发送模块,用于所述虚拟存储设备将所述调试桥应答数据包发送至所述调试桥可执行程序。
[0205] 其中,所述目标终端设备上运行的调试桥守护进程根据所述调试桥数据包生成调试桥应答数据包并通过所述存储设备传输至所述虚拟客户端,所述虚拟客户端缓存所述调试桥应答数据包,并生成反馈应答信息;所述虚拟客户端将所述反馈应答信息返回至所述调试桥守护进程,启动所述调试桥守护进程发送新生成的调试桥应答数据包,所述虚拟客户端将所述调试桥应答数据包转换成虚拟化应答数据包。
[0206] 此处需要说明的是,上述第二接收模块、第二转换模块以及第三发送模块所提供的技术方案,对应于实施例一中的步骤S312至步骤S318以及步骤S3192和步骤S3194所提供的技术方案,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0207] 可选地,图8是根据本申请图6所示实施例的一种可选的生成模块的结构示意图;如图8所示,根据本申请实施例的生成模块包括:请求单元802、解析单元804以及封装单元
806,其中:
[0208] 请求单元802,用于所述业务终端设备中运行的所述调试桥客户端向所述调试桥服务进程发起业务请求。
[0209] 解析单元804,用于所述调试桥服务进程解析所述业务请求,生成业务数据包。
[0210] 封装单元806,用于所述调试桥服务进程并将所述业务数据包按照调试桥传输协议进行封装,生成所述调试桥数据包。
[0211] 由上可知,本申请上述请求单元802、解析单元804以及封装单元806提供了一种调试桥可执行程序生成调试桥数据包的可选方案。基于上述请求单元802发起业务请求,通过解析单元804生成业务数据包,并通过执行封装单元806将业务数据封装为传输协议包形式的调试桥数据包。
[0212] 此处需要说明的是,上述请求单元802、解析单元804以及封装单元806,对应于实施例一中的步骤S3022至步骤S3026,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0213] 可选地,图9是根据本申请图6所示实施例的又一种可选的基于虚拟机的数据传输装置的结构示意图,如图9所示,根据本申请实施例的基于虚拟机的数据传输装置还包括:创建模块902,用于所述虚拟主机端在本地预先创建所述虚拟存储设备,并在本地创建第一缓存区,其中,所述第一缓存区用于缓存所述调试桥数据包。
[0214] 此处需要说明的是,上述创建模块902,对应于实施例一中的步骤S303,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0215] 本申请上述实施例三所提供的优选实施方案与实施例一所提供的方法实施例的可选方案以及应用场景实施过程相同,但不限于实施例一所提供的方案。
[0216] 实施例4
[0217] 根据本申请实施例,还提供了一种用于实施上述基于虚拟机的数据传输方法的基于虚拟机的数据传输装置,本申请上述实施例所提供的装置可以在计算机终端上运行。
[0218] 图10是根据本申请实施例四的基于虚拟机的数据传输装置的结构示意图。如图10所示,该装置包括:接收模块1002、处理模块1004以及第一发送模块1006,其中:
[0219] 接收模块1002,用于安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,所述目标终端设备通过调试桥守护进程生成所述调试桥服务数据包,并将所述调试桥服务数据包通过存储设备传输至所述虚拟客户端。
[0220] 处理模块1004,用于所述虚拟客户端缓存所述调试桥服务数据包,并生成第一反馈信息。
[0221] 第一发送模块1006,用于所述虚拟客户端将所述第一反馈信息返回至所述调试桥守护进程,启动所述调试桥守护进程发送新生成的调试桥服务数据包。
[0222] 其中,所述调试桥服务数据包由所述中间终端设备远程传输给业务终端设备。
[0223] 由上可知,本申请上述接收模块1002、处理模块1004以及第一发送模块1006提供了一种虚拟客户端与目标终端设备中的调试桥守护进程之间的数据传输的可选方案。采用在中间终端设备中增设的虚拟客户端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟客户端在接收到调试桥应答数据包后立刻缓存在本地,并返回针对该调试桥应答数据包的反馈应答信息给在目标终端设备中运行的调试桥守护进程,调试桥守护进程在接收到该反馈应答信息之后,即可以确定当前发送的调试桥应答数据包已经发送成功,从而立即发送下一个调试桥应答数据包,从而达到了提高调试桥守护进程发送调试桥应答数据包的效率的目的,进而实现了目标终端设备中的调试桥应答数据向业务终端设备的快速上行传输。通过上述方案,实现了提高远端系统中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果。进而解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0224] 此处需要说明的是,上述接收模块1002、处理模块1004以及第一发送模块1006,对应于实施例二中的步骤S502至步骤S506,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0225] 可选地,图11是根据本申请图10所示实施例的一种可选的基于虚拟机的数据传输装置的结构示意图;如图11所示,根据本申请实施例的基于虚拟机的数据传输装置还包括:创建模块1102,用于所述虚拟客户端在本地创建缓存区,其中,所述缓存区用于缓存所述调试桥服务数据包。
[0226] 本申请上述可选方案中,虚拟化客户端缓存上述调试桥服务数据包的其中一种可选的方式,是通过针对调试桥设备创建一个缓存区,例如cache池,来缓存调试桥守护进程向调试桥可执行程序上行传输的调试桥服务数据包。
[0227] 此处需要说明的是,目前的USB虚拟化方案中把安卓手机的ADB重定向到虚拟机中使用,其速度仅能达到KB级别,在虚拟机中使用手机助手等软件来进行管理时延时非常明显,用户体验很糟糕。因此,本申请实施例提供的方案对ADB的USB虚拟化传输设计了一套缓存机制,即在中间终端设备的虚拟客户端中实现一个对ADB服务数据包进行缓存的缓存池,内部通过物理USB接口返回第一反馈信息来预先获取ADB服务数据包填充缓存池,使得传输速度能够从KB级别提高到MB级别。
[0228] 此处需要说明的是,上述创建模块1102,对应于实施例二中虚拟客户端在本地创建缓存区的步骤,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0229] 可选地,图12是根据本申请图10所示实施例的又一种可选的基于虚拟机的数据传输装置的结构示意图;如图12所示,根据本申请实施例的基于虚拟机的数据传输装置还包括:转换模块1202以及第二发送模块1204,其中:
[0230] 转换模块1202,用于所述虚拟客户端将所述调试桥服务数据包转换成虚拟化服务数据包。
[0231] 第二发送模块1204,用于所述虚拟客户端将所述虚拟化服务数据包传输至安装了虚拟主机端的所述业务终端设备。
[0232] 其中,在所述虚拟主机端解析所述虚拟化服务数据包得到所述调试桥服务数据包之后,通过所述虚拟主机端预先创建的虚拟存储设备将所述调试桥服务数据包发送至所述业务终端设备上运行的调试桥可执行程序。
[0233] 由上可知,本申请上述转换模块1202以及第二发送模块1204提供了一种中间终端设备将缓存的调试桥应答数据包发送至调试桥可执行程序的可选方案。基于上述步骤S412将调试桥应答数据包转换成虚拟化应答数据包,通过执行步骤S414,将虚拟化应答数据包传输至业务终端设备,最终实现了调试桥应答数据包向调试桥可执行程序的传输。
[0234] 此处需要说明的是,上述转换模块1202以及第二发送模块1204,对应于实施例二中的步骤S512至步骤S514,两个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
[0235] 本申请上述实施例四所提供的优选实施方案与实施例二所提供的方法实施例的可选方案以及应用场景实施过程相同,但不限于实施例二所提供的方案。
[0236] 实施例5
[0237] 根据本申请实施例,还提供了一种基于虚拟机的数据传输系统,图13是根据本申请实施例五的基于虚拟机的数据传输系统的结构示意图。
[0238] 如图13所示,该虚拟机的数据传输系统包括:目标终端设备131、业务终端设备133以及中间终端设备135,其中:
[0239] 业务终端设备133,安装了调试桥可执行程序和虚拟主机端,用于在所述虚拟主机端接收并缓存由所述调试桥可执行程序生成的调试桥数据包之后,将所述调试桥数据包转换成虚拟化数据包并生成反馈信息,同时将所述反馈信息返回至所述调试桥可执行程序,使得所述调试桥可执行程序继续将新生成的调试桥数据包发送至所述虚拟主机端。
[0240] 中间终端设备135,安装了虚拟客户端,通过网络与所述业务终端设备连接,通过存储设备与所述目标终端设备连接,用于接收所述目标终端设备上运行的调试桥守护进程根据所述调试桥数据包生成调试桥应答数据包,在所述虚拟客户端缓存所述调试桥应答数据包,并生成反馈应答信息之后,所述虚拟客户端将所述反馈应答信息返回至所述调试桥守护进程,使得所述调试桥守护进程继续发送新生成的调试桥应答数据包至所述虚拟客户端。
[0241] 其中,所述业务终端设备通过所述中间终端设备将所述调试桥数据包远程传输至所述目标终端设备,且所述目标终端设备也通过所述中间终端设备将所述调试桥应答数据包远程传输至所述业务终端设备。
[0242] 图14是根据本申请实施例五的一种可选的基于虚拟机的数据传输系统的实现架构图;下面结合图14,以目标终端设备131为Android手机终端、业务终端设备133为远端虚拟机、中间终端设备135为本地虚拟终端为例,对本申请实施例五所提供的基于虚拟机的数据传输系统进行详细说明。如图14所示:
[0243] 在远端虚拟机中,增设虚拟主机端,其中,虚拟主机端运行在远端虚拟机中,主要功能是解析处理网络上的usb虚拟化协议,创建和管理虚拟出来的USB设备;此外对于ADB设备,会创建一个ADB cache池来缓存ADB server下行的ADB传输协议包。
[0244] 在本地虚拟终端中,增设虚拟客户端,其中,虚拟客户端运行在本地虚拟终端中,主要功能是解析处理网络上的usb虚拟化协议,监控插入的USB物理设备,发起和管理虚拟USB设备;此外对于ADB设备,会创建一个ADB cache池来缓存ADB deamon上行的ADB传输协议包。
[0245] 基于上述系统,ADB数据由远端虚拟机向Android手机终端下行发送的数据流程为:
[0246] 1)ADB client向ADB server发起业务请求,其中,ADB client在本申请实施例也可称为ADB客户端,ADB server在本申请实施例也可称为ADB服务进程。
[0247] 2)ADB server解析出该业务包后封装为ADB传输协议包,并通过虚拟出来ADB usb设备发给虚拟主机端。
[0248] 3)虚拟主机端接收到虚拟usb设备上的ADB传输协议包,立刻填充到本地缓存区中,即ADB cache,并生成反馈信息来通知ADB server此下行包已经完成传输,这样ADB server就可立即发起下一个下行的ADB传输协议包。
[0249] 4)虚拟主机端把ADB cache中的下行ADB传输协议包再封装成usb虚拟化协议包通过网络发给虚拟客户端。
[0250] 5)虚拟客户端解析该虚拟化协议包内容后,把里面的内容即ADB传输包通过USB物理设备发给ADB守护进程(ADB deamon),从而完成整个下行发送。
[0251] 基于上述系统,ADB数据由Android手机终端向远端虚拟机上行发送的数据流程为:
[0252] 1)ADB守护进程(ADB deamon)把业务应答包封装成ADB传输协议包发到物理USB设备中。
[0253] 2)虚拟客户端收到物理usb设备上的ADB传输协议包,立刻填充到其中的ADB cache中,并通知ADB daemon此上行包已经完成传输,这样ADB daemon就可立即发起下一个上行的ADB传输协议包。
[0254] 3)虚拟客户端把ADB cache中的上行ADB传输协议包再封装成usb虚拟化协议包通过网络发给虚拟主机端。
[0255] 4)虚拟主机端解析该虚拟化协议包内容后,把里面的内容即ADB传输包通过虚拟USB物理设备发给ADB server。
[0256] 5)ADB server再把收到的ADB传输包解析后封装为业务包发给ADB c l ient,从而完成整个上行发送。
[0257] 本申请上述实施例五所提供的优选实施方案与实施例一至实施例二所提供的可选方案以及应用场景实施过程相同,但不限于实施例一至实施例二所提供的方案。
[0258] 由上可知,本申请上述实施例五提供了一种系统方案,采用在业务终端设备中增设的虚拟主机端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟主机端在接收到调试桥数据包后立刻缓存在本地,并返回针对该调试桥数据包的反馈信息给在业务终端设备本地运行的调试桥可执行程序,调试桥可执行程序在接收到该反馈信息之后,即可以确定当前发送的调试桥数据包已经发送成功,从而立即发送下一个调试桥数据包,从而达到了提高调试桥可执行程序发送调试桥数据包的效率的目的,进而实现了业务终端设备中的调试桥数据向目标终端设备的快速下行传输。采用在中间终端设备中增设的虚拟客户端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟客户端在接收到调试桥应答数据包后立刻缓存在本地,并返回针对该调试桥应答数据包的反馈应答信息给在目标终端设备中运行的调试桥守护进程,调试桥守护进程在接收到该反馈应答信息之后,即可以确定当前发送的调试桥应答数据包已经发送成功,从而立即发送下一个调试桥应答数据包,从而达到了提高调试桥守护进程发送调试桥应答数据包的效率的目的,进而实现了目标终端设备中的调试桥应答数据向业务终端设备的快速上行传输。通过上述方案,实现了提高虚拟桌面中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果,解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0259] 实施例6
[0260] 本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
[0261] 可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0262] 在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:业务终端设备中运行的调试桥可执行程序生成调试桥数据包;业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包;虚拟主机端缓存调试桥数据包,并生成反馈信息;虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端;其中,调试桥数据包由业务终端设备远程传输给目标终端设备。
[0263] 可选地,图15是根据本申请实施例的一种计算机终端的结构框图。如图15所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器51、存储器53、以及传输装置55。
[0264] 其中,存储器53可用于存储软件程序以及模块,如本申请实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器51通过运行存储在存储器53内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器53可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器53可进一步包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0265] 上述的传输装置55用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置55包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置55为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0266] 其中,具体地,存储器53用于存储预设动作条件和预设权限用户的信息、以及应用程序。
[0267] 处理器51可以通过传输装置调用存储器53存储的信息及应用程序,以执行下述步骤:业务终端设备中运行的调试桥可执行程序生成调试桥数据包;业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包;虚拟主机端缓存调试桥数据包,并生成反馈信息;虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端;其中,调试桥数据包由业务终端设备远程传输给目标终端设备。
[0268] 可选的,上述处理器51还可以执行如下步骤的程序代码:虚拟主机端将调试桥数据包转换成虚拟化数据包;虚拟主机端将虚拟化数据包传输至安装了虚拟客户端的中间终端设备;其中,在虚拟客户端解析虚拟化数据包得到调试桥数据包之后,通过中间终端设备的存储设备接口将调试桥数据包发送至目标终端设备,目标终端设备通过存储设备接入中间终端设备。
[0269] 可选的,上述处理器51还可以执行如下步骤的程序代码:目标终端设备上运行的调试桥守护进程根据调试桥数据包生成调试桥应答数据包;调试桥守护进程将调试桥应答数据包通过存储设备传输至虚拟客户端;虚拟客户端缓存调试桥应答数据包,并生成反馈应答信息;虚拟客户端将反馈应答信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥应答数据包。
[0270] 可选的,上述处理器51还可以执行如下步骤的程序代码:虚拟客户端在本地创建第二缓存区,其中,第二缓存区用于缓存调试桥应答数据包。
[0271] 可选的,上述处理器51还可以执行如下步骤的程序代码:虚拟客户端将调试桥应答数据包转换成虚拟化应答数据包;虚拟客户端将虚拟化应答数据包传输至安装了虚拟主机端的业务终端设备;其中,在虚拟主机端解析虚拟化应答数据包得到调试桥应答数据包之后,通过虚拟存储设备将调试桥应答数据包发送至调试桥可执行程序。
[0272] 可选的,上述处理器51还可以执行如下步骤的程序代码:中间终端设备对生成的多个调试桥数据包依次打上时间戳;将具有时间戳的多个调试桥数据包散列成缓存队列中的数据包;对缓存队列中的数据包进行排序和/或筛选处理,并按照预先设置的传输策略发送缓存队列中的数据包至目标终端设备,其中,传输策略用于表征缓存队列中的数据包的传输优先级。
[0273] 可选的,上述处理器51还可以执行如下步骤的程序代码:业务终端设备中运行的调试桥客户端向调试桥服务进程发起业务请求;调试桥服务进程解析业务请求,生成业务数据包;调试桥服务进程并将业务数据包按照调试桥传输协议进行封装,生成调试桥数据包。
[0274] 可选的,上述处理器51还可以执行如下步骤的程序代码:虚拟主机端在本地预先创建虚拟存储设备,并在本地创建第一缓存区,其中,第一缓存区用于缓存调试桥数据包。
[0275] 采用本申请实施例,提供了一种基于虚拟机的数据传输控制方案。采用在业务终端设备中增设的虚拟主机端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟主机端在接收到调试桥数据包后立刻缓存在本地,并返回针对该调试桥数据包的反馈信息给在业务终端设备本地运行的调试桥可执行程序,调试桥可执行程序在接收到该反馈信息之后,即可以确定当前发送的调试桥数据包已经发送成功,从而立即发送下一个调试桥数据包,从而达到了提高调试桥可执行程序发送调试桥数据包的效率的目的,进而实现了业务终端设备中的调试桥数据向目标终端设备的快速下行传输。通过上述方案,实现了提高虚拟桌面中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果,解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。进而解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0276] 本领域普通技术人员可以理解,图15所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile I nternet Devices,MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。
[0277] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0278] 实施例7
[0279] 本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
[0280] 可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0281] 在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:业务终端设备中运行的调试桥可执行程序生成调试桥数据包;业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包;虚拟主机端缓存调试桥数据包,并生成反馈信息;虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端;其中,调试桥数据包由业务终端设备远程传输给目标终端设备。
[0282] 可选地,仍旧参照图15所提供的一种计算机终端的结构框图。如图15所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器51、存储器53、以及传输装置55。
[0283] 其中,存储器53可用于存储软件程序以及模块,如本申请实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器51通过运行存储在存储器53内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器53可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器53可进一步包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0284] 上述的传输装置55用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置55包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置55为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0285] 其中,具体地,存储器53用于存储预设动作条件和预设权限用户的信息、以及应用程序。
[0286] 处理器51可以通过传输装置调用存储器53存储的信息及应用程序,以执行下述步骤:安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,目标终端设备通过调试桥守护进程生成调试桥服务数据包,并将调试桥服务数据包通过存储设备传输至虚拟客户端;虚拟客户端缓存调试桥服务数据包,并生成第一反馈信息;虚拟客户端将第一反馈信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥服务数据包;其中,调试桥服务数据包由中间终端设备远程传输给业务终端设备。
[0287] 可选的,上述处理器51还可以执行如下步骤的程序代码:虚拟客户端在本地创建缓存区,其中,缓存区用于缓存调试桥服务数据包。
[0288] 可选的,上述处理器51还可以执行如下步骤的程序代码:虚拟客户端将调试桥服务数据包转换成虚拟化服务数据包;虚拟客户端将虚拟化服务数据包传输至安装了虚拟主机端的业务终端设备;其中,在虚拟主机端解析虚拟化服务数据包得到调试桥服务数据包之后,通过虚拟主机端预先创建的虚拟存储设备将调试桥服务数据包发送至业务终端设备上运行的调试桥可执行程序。
[0289] 可选的,上述处理器51还可以执行如下步骤的程序代码:业务终端设备中运行的调试桥服务进程解析调试桥服务数据包;调试桥服务进程将解析后的调试桥服务数据包进行封装,生成业务类型的数据包;调试桥服务进程将生成的业务类型的数据包发送给调试桥客户端。
[0290] 采用本申请实施例,提供了一种基于虚拟机的数据传输控制方案。采用在中间终端设备中增设的虚拟客户端中完成即时反馈应答的功能来提高数据传输的效率,首先,虚拟客户端在接收到调试桥应答数据包后立刻缓存在本地,并返回针对该调试桥应答数据包的反馈应答信息给在目标终端设备中运行的调试桥守护进程,调试桥守护进程在接收到该反馈应答信息之后,即可以确定当前发送的调试桥应答数据包已经发送成功,从而立即发送下一个调试桥应答数据包,从而达到了提高调试桥守护进程发送调试桥应答数据包的效率的目的,进而实现了目标终端设备中的调试桥应答数据向业务终端设备的快速上行传输。通过上述方案,实现了提高远端系统中调试桥可执行程序与目标终端设备中调试桥守护进程间数据交换速率的技术效果。进而解决了现有技术中由于存储设备虚拟化时调试桥模式下的传输速率慢,而导致的远端系统中对安卓设备管理效率低的技术问题。
[0291] 本领域普通技术人员可以理解,图15所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。
[0292] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0293] 实施例8
[0294] 本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的基于虚拟机的数据传输方法所执行的程序代码。
[0295] 可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
[0296] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:业务终端设备中运行的调试桥可执行程序生成调试桥数据包;业务终端设备上运行的虚拟主机端通过预先创建的虚拟存储设备接收调试桥数据包;虚拟主机端缓存调试桥数据包,并生成反馈信息;虚拟主机端将反馈信息返回至调试桥可执行程序,使得调试桥可执行程序将新生成的调试桥数据包发送至虚拟主机端;其中,调试桥数据包由业务终端设备远程传输给目标终端设备。
[0297] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:虚拟主机端将调试桥数据包转换成虚拟化数据包;虚拟主机端将虚拟化数据包传输至安装了虚拟客户端的中间终端设备;其中,在虚拟客户端解析虚拟化数据包得到调试桥数据包之后,通过中间终端设备的存储设备接口将调试桥数据包发送至目标终端设备,目标终端设备通过存储设备接入中间终端设备。
[0298] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:目标终端设备上运行的调试桥守护进程根据调试桥数据包生成调试桥应答数据包;调试桥守护进程将调试桥应答数据包通过存储设备传输至虚拟客户端;虚拟客户端缓存调试桥应答数据包,并生成反馈应答信息;虚拟客户端将反馈应答信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥应答数据包。
[0299] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:虚拟客户端在本地创建第二缓存区,其中,第二缓存区用于缓存调试桥应答数据包。
[0300] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:虚拟客户端将调试桥应答数据包转换成虚拟化应答数据包;虚拟客户端将虚拟化应答数据包传输至安装了虚拟主机端的业务终端设备;其中,在虚拟主机端解析虚拟化应答数据包得到调试桥应答数据包之后,通过虚拟存储设备将调试桥应答数据包发送至调试桥可执行程序。
[0301] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:中间终端设备对生成的多个调试桥数据包依次打上时间戳;将具有时间戳的多个调试桥数据包散列成缓存队列中的数据包;对缓存队列中的数据包进行排序和/或筛选处理,并按照预先设置的传输策略发送缓存队列中的数据包至目标终端设备,其中,传输策略用于表征缓存队列中的数据包的传输优先级。
[0302] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:业务终端设备中运行的调试桥客户端向调试桥服务进程发起业务请求;调试桥服务进程解析业务请求,生成业务数据包;调试桥服务进程并将业务数据包按照调试桥传输协议进行封装,生成调试桥数据包。
[0303] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:虚拟主机端在本地预先创建虚拟存储设备,并在本地创建第一缓存区,其中,第一缓存区用于缓存调试桥数据包。
[0304] 此处需要说明的是,上述计算机终端群中的任意一个可以与网站服务器和扫描器建立通信关系,扫描器可以扫描计算机终端上php执行的web应用程序的值命令。
[0305] 实施例9
[0306] 本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例二所提供的基于虚拟机的数据传输方法所执行的程序代码。
[0307] 可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
[0308] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:安装了虚拟客户端的中间终端设备接收目标终端设备传输的调试桥服务数据包,其中,目标终端设备通过调试桥守护进程生成调试桥服务数据包,并将调试桥服务数据包通过存储设备传输至虚拟客户端;虚拟客户端缓存调试桥服务数据包,并生成第一反馈信息;虚拟客户端将第一反馈信息返回至调试桥守护进程,启动调试桥守护进程发送新生成的调试桥服务数据包;其中,调试桥服务数据包由中间终端设备远程传输给业务终端设备。
[0309] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:虚拟客户端在本地创建缓存区,其中,缓存区用于缓存调试桥服务数据包。
[0310] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:虚拟客户端将调试桥服务数据包转换成虚拟化服务数据包;虚拟客户端将虚拟化服务数据包传输至安装了虚拟主机端的业务终端设备;其中,在虚拟主机端解析虚拟化服务数据包得到调试桥服务数据包之后,通过虚拟主机端预先创建的虚拟存储设备将调试桥服务数据包发送至业务终端设备上运行的调试桥可执行程序。
[0311] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:业务终端设备中运行的调试桥服务进程解析调试桥服务数据包;调试桥服务进程将解析后的调试桥服务数据包进行封装,生成业务类型的数据包;调试桥服务进程将生成的业务类型的数据包发送给调试桥客户端。
[0312] 此处需要说明的是,上述计算机终端群中的任意一个可以与网站服务器和扫描器建立通信关系,扫描器可以扫描计算机终端上php执行的web应用程序的值命令。
[0313] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0314] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0315] 在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0316] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0317] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0318] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0319] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。