专利名称:零终端设备与桌面虚拟机之间的通信方法及系统的制作方法
技术领域:
本发明涉及通信技术领域,更具体地说,涉及一种零终端设备与桌面虚拟机之间的通信方法及系统。
背景技术:
近些年,随着人们对信息资源整合的需求日益增长,“云计算”的概念已逐渐被世人所接受,人们通过终端设备连入“云”,按需获取云端资源。“云+端”的模式已非常成熟,在这个模式中,“端”是必不可少的一个部件。零终端设备是作为“端”设备的最佳选择。典型的零终端设备由连接到键盘、鼠标、监控器和以太网的小盒子组成,常用于虚拟桌面基础架构环境中。由于零终端设备本身没有中央处理单元(简称CPU)、内存、存储器和操作系统等软硬件环境,因此它本身无法运行 任何软件形式的程序,导致它与桌面虚拟机之间的沟通成为最大的难题。
发明内容
本发明的发明目的是针对现有技术的缺陷,提出一种零终端设备与桌面虚拟机之间的通信方法及系统,用以提供一种适应目前云计算架构的零终端设备和桌面虚拟机之间互相通信的机制。根据本发明的一个方面,本发明提供了一种零终端设备与桌面虚拟机之间的通信方法,包括所述零终端设备与所述桌面虚拟机之间建立会话连接;在所述会话连接建立时,所述零终端设备与所述桌面虚拟机协商所能通信的数据类型;在所述会话连接建立后,所述零终端设备接收来自所述桌面虚拟机按照预设的协议机制封装的数据包,按照所述预设的协议机制解析所述数据包,根据数据类型将所述数据包包含的数据分别进行处理,然后分别输出给对应的外围设备;所述零终端设备将用户通过各种外围设备输入的数据按照所述预设的协议机制封装成数据包并反馈给所述桌面虚拟机,所述桌面虚拟机按照所述预设的协议机制解析所述数据包,并提交给对应的应用程序。进一步的,在所述零终端设备按照所述预设的协议机制解析所述数据包之后还包括所述零终端设备按照数据类型对所述数据包包含的数据进行分类,并对不同类型的数据分别进行标识;根据所述标识,所述不同类型的数据被分发给所述零终端设备中不同的输入/输出处理模块进行处理。进一步的,所述零终端设备按照数据类型对所述数据包包含的数据进行分类得到视频流数据、音频流数据、USB数据或硬件中断数据;处理视频流数据的输入/输出处理模块采用去重算法处理所述视频流数据;处理音频流数据的输入/输出处理模块采用哈夫曼算法处理所述音频流数据;
处理USB数据的输入/输出处理模块采用红黑树平衡算法处理所述USB数据;处理硬件中断数据的输入/输出处理模块采用最高优先级算法处理所述硬件中断数据。进一步的,在所述零终端设备将用户通过各种外围设备输入的数据按照所述预设的协议机制封装成数据包之前还包括所述零终端设备将用户通过各种外围设备输入的数据进行统一的格式化处理。进一步的,所述零终端设备与所述桌面虚拟机之间通过传输控制协议和/或用户数据报协议交互数据包。根据本发明的另一方面,本发明提供了一种零终端设备与桌面虚拟机之间的通信系统,包括零终端设备与桌面虚拟机,其中,所述零终端设备包括协议引擎和一个以上输入/输出处理模块,所述桌面虚拟机包括协议服务程序模块和操作系统;所述协议引擎与所 述协议服务程序模块通过交互建立会话连接,在所述会话连接建立时,所述零终端设备与所述桌面虚拟机协商所能通信的数据类型;所述协议引擎用于接收来自所述协议服务程序模块按照预设的协议机制封装的数据包,按照所述预设的协议机制解析所述数据包;以及,用于将用户通过各种外围设备输入的数据按照所述预设的协议机制封装成数据包并反馈给所述协议服务程序模块;所述一个以上输入/输出处理模块用于根据数据类型将所述协议引擎解析的数据包包含的数据分别进行处理,然后分别输出给对应的外围设备;所述协议服务程序模块用于按照所述预设的协议机制解析所述协议引擎反馈的数据包,并提交给所述操作系统中对应的应用程序。进一步的,所述协议引擎还用于按照数据类型对所述数据包包含的数据进行分类,并对不同类型的数据分别进行标识;所述一个以上输入/输出处理模块具体用于根据所述标识,将所述协议引擎解析的数据包包含的数据分别进行处理,然后分别输出给对应的外围设备。进一步的,所述一个以上输入/输出处理模块包括处理视频流数据的输入/输出处理模块,用于采用去重算法处理所述视频流数据;处理音频流数据的输入/输出处理模块,用于采用哈夫曼算法处理所述音频流数据;处理USB数据的输入/输出处理模块,用于采用红黑树平衡算法处理所述USB数据;处理硬件中断数据的输入/输出处理模块,用于采用最高优先级算法处理所述硬件中断数据。进一步的,所述协议引擎还用于将用户通过各种外围设备输入的数据进行统一的格式化处理。进一步的,所述系统还包括位于所述零终端设备和所述桌面虚拟机之间的一个或多个通信信道,所述通信信道通过传输控制协议和/或用户数据报协议传输数据包。本发明提供了一种零终端设备和桌面虚拟机之间互相通信的机制,零终端设备和桌面虚拟机都按照预设的协议机制对数据进行封装和解析,其中零终端设备解析得到数据后,根据数据类型对这些数据分别进行处理,然后分别输出给对应的外围设备;桌面虚拟机解析得到数据后,提交给对应的应用程序进行处理,这种通信机制适应目前的云计算架构。
图I为本发明中零终端设备内部组件的示意图;图2为本发明提供的零终端设备与桌面虚拟机之间的通信方法一实施例的流程图;图3为本发明提供的零终端设备与桌面虚拟机之间的通信系统一实施例的结构示意图。
具体实施方式
为充分了解本发明之目的、特征及功效,借由下述具体的实施方式,对本发明做详细说明,但本发明并不仅仅限于此。在本发明实施例中,零终端设备具体是一个小盒子,它可以连接键盘、鼠标、监控器、以太网设备和USB存储介质等外围设备。图I为本发明中零终端设备内部组件的示意图。如图I所示,零终端设备内部包括但不仅限于如下组件协议引擎、协议引擎总线、以太网介质访问控制层(简称MAC)、以太网物理层(简称PHY)、USB编解码器、USB控制器、USBHub、视频编解码器、视频数模转换器(简称DAC)、视频时钟同步模块、音频编解码器、音频DAC、内置扬声器、复位(Reset)按钮、帧缓冲接口(用于暂时存放桌面虚拟机发送至零终端设备的图像数据,可以理解为零终端设备的“显存”)等,其中协议引擎、以太网MAC、视频编解码器、USB编解码器、音频编解码器、复位按钮和帧缓冲接口等组件是在零终端设备的现场可编程门阵列(简称FPGA)上实现的。在本文中,将协议引擎与各端口之间连接的组件统称为输入/输出(I/O)处理模块。图I所示的零终端设备仅为一示例,本发明中的零终端设备不仅限于图I所示的结构。当零终端设备在网络化环境中运行时,需要逻辑连接到一个或多个桌面虚拟机,该桌面虚拟机可以是windows XP或者windows 7,本发明对此不做限制。这样的网络环境在办公室、企业范围的网络中是普遍的。在此网络环境中可以采用如下本发明提供的通信方法实现零终端设备与桌面虚拟机之间的通信。具体地,以下实施例提供的通信方法主要适用于一种标准为IEEE802. 3x的以太网环境中。图2为本发明提供的零终端设备与桌面虚拟机之间的通信方法一实施例的流程图。如图2所示,该方法包括以下步骤步骤101、零终端设备与桌面虚拟机之间建立会话连接。首先,零终端设备向桌面虚拟机发送连接请求建立消息,桌面虚拟机向零终端设备返回连接请求响应消息。由此建立零终端设备与桌面虚拟机之间建立会话连接。在会话连接建立时,零终端设备与桌面虚拟机协商后续所能通信的数据类型,所能通信的数据类型包括但不仅限于视频流数据类型、音频流数据类型、USB数据类型、以太网数据类型和硬件中断数据类型。在会话连接建立后,零终端设备与桌面虚拟机之间就可以进行通信,具体为桌面虚拟机可以向零终端设备发送数据包(如步骤102中详述),零终端设备也可以向桌面虚拟机反馈数据包(如步骤103中详述)。下述步骤102和步骤103没有执行顺序的限制,这两个步骤可以同时或交互执行。步骤102、零终端设备接收来自桌面虚拟机按照预设的协议机制封装的数据包,按照预设的协议机制解析所述数据包,根据数据类型将所述数据包包含的数据分别进行处理,然后分别输出给对应的外围设备。在本发明中,零终端设备和桌面虚拟机之间都按照预设的协议机制来进行通信,本发明对该预设的协议机制不做限定,只要零终端设备和桌面虚拟机都理解该协议机制即可。桌面虚拟机向零终端设备发送数据包的过程包括桌面虚拟机按照预设的协议机制将待发送的数据封装成数据包,将该数据包发送给零终端设备;零终端设备接收到该数据包后,按照同样的协议机制解析数据包,得到各种数据类型的数据;零终端设备可以按照 数据类型将这些数据进行分类,然后对不同类型的数据分别进行标识;根据标识,将不同类型的数据分发给零终端设备中不同的I/o处理模块进行处理。例如,零终端设备将数据包内包含的数据分为视频流数据、音频流数据、USB数据、以太网数据和硬件中断数据等几类,并分别对这几类数据进行不同的标识,同一类数据标识相同;根据标识,将视频流数据分发给处理视频流数据的I/O处理模块进行处理,如图I中的视频编解码器、视频DAC和视频时钟同步模块等组件;将音频流数据分发给处理音频流数据的I/O处理模块进行处理,如图I中的音频编解码器、音频DAC等组件^fUSB数据分发给处理USB数据的I/O处理模块进行处理,如图I中的USB编解码器、USB控制器和USB Hub等组件;将以太网数据分发给处理以太网数据的I/O处理模块进行处理,如图I中的以太网MAC和以太网PHY等组件;将硬件中断数据分发给处理硬件中断数据的I/O处理模块进行处理,该硬件中断数据就是指复位按钮被按下时发出的中断信号,处理硬件中断数据的I/O处理模块为包括复位按钮的模块。进一步的,零终端设备中的I/O处理模块对不同的数据可以采用不同的算法进行处理。具体说明如下对于视频流数据,I/O处理模块采用去重算法进行处理。该去重算法可以是基于哈希的去重算法,会对视频流数据进行分析,建立多级索引表,可去除相同的数据,只在显示缓冲区保留不同的数据,这样就减少了视频流数据的数据量,降低了对网络带宽的占用,提高了视频流数据的传输效率。对于音频流数据,I/O处理模块采用哈夫曼算法进行处理。桌面虚拟机中的协议服务程序将音频流数据生成一棵哈夫曼树,零终端设备将该哈夫曼树再转换成音频流数据。该算法有效的减少了音频流数据的数据量,降低了对网络带宽的占用,提高了音频流数据的传输效率。对于USB数据,I/O处理模块采用红黑树平衡算法进行处理。该算法将USB数据根据优先级生成一棵红黑树,树的每一个节点为一个数据,以使数据可以被快速地检索到,最终提高了 USB数据的传输效率。对于以太网数据,I/O处理模块可以采用现有技术中的常用算法进行处理,在此不再赘述。对于硬件中断数据,I/O处理模块采用最高优先级算法进行处理。零终端设备在接收到硬件中断数据后,立即将该数据置为最高优先级,使其能立刻被处理,从而提高了整个系统的响应速度,使用户与机器的人机交互感受得到提升。步骤103、零终端设备将用户通过各种外围设备输入的数据按照预设的协议机制封装成数据包并反馈给桌面虚拟机,桌面虚拟机按照预设的协议机制解析所述数据包,并提交给对应的应用程序。零终端设备向桌面虚拟机反馈数据包的过程包括零终端设备获取用户通过各种外围设备输入的数据,将这些数据按照预设的协议机制封装成数据包,将该数据包发送给桌面虚拟机;进一步的,零终端设备在将数据进行封装之前,可以将用户输入的各种数据进行统一的格式化处理。桌面虚拟机按照同样的协议机制解析该数据包,将解析得到的数据提交给对应的应用程序。本实施例所适用的网络环境中,零终端设备和桌面虚拟机可以通过一个或多个通信信道通信。当零终端设备和桌面虚拟机之间有多个通信信道时,不同的通信信道可以采用不同的传输协议来交互数据包,举例来说,通信信道可以采用传输控制协议(TCP )或用户数据报协议(UDP)传输数据包。其中采用TCP协议的通信信道可用于传输对可靠性要求较 高的数据,例如从桌面拷贝的资料或软件等数据,采用UDP协议的通信信号可用于传输音频或视频等数据。本实施例提供了一种零终端设备和桌面虚拟机之间互相通信的机制,零终端设备和桌面虚拟机都按照预设的协议机制对数据进行封装和解析,其中零终端设备解析得到数据后,根据数据类型对这些数据分别进行处理,然后分别输出给对应的外围设备;桌面虚拟机解析得到数据后,提交给对应的应用程序进行处理,这种通信机制适应目前的云计算架构。图3为本发明提供的零终端设备与桌面虚拟机之间的通信系统一实施例的结构示意图。如图3所示,该系统包括零终端设备I和桌面虚拟机2,其中零终端设备I包括协议引擎11和一个以上I/O处理模块12,桌面虚拟机2包括协议服务程序模块21和操作系统22。另外,该系统还包括位于零终端设备I和桌面虚拟机2之间的一个或多个通信信道3,该通信信道3具体与协议引擎11和协议服务程序模块21连接。该通信信道可以通过TCP协议和/或UDP协议传输数据包。在该系统中,协议引擎11与协议服务程序模块21通过交互建立会话连接,在会话连接建立时,所述零终端设备与所述桌面虚拟机协商所能通信的数据类型。协议引擎11主要负责用于按照预设的协议机制封装数据包或解析桌面虚拟机发送过来的数据包。具体地,协议引擎11用于接收来自协议服务程序模块21按照预设的协议机制封装的数据包,按照预设的协议机制解析所述数据包;以及,用于将用户通过各种外围设备输入的数据按照预设的协议机制封装成数据包并反馈给协议服务程序模块21。一个以上I/O处理模块12用于根据数据类型将协议引擎11解析的数据包包含的数据分别进行处理,然后分别输出给对应的外围设备。协议服务程序模块21用于按照预设的协议机制解析协议引擎11反馈的数据包,并提交给操作系统22中对应的应用程序。进一步的,协议引擎11还用于按照数据类型对数据包包含的数据进行分类,并对不同类型的数据分别进行标识。一个以上I/O处理模块12具体用于根据标识,将协议引擎11解析的数据包包含的数据分别进行处理,然后分别输出给对应的外围设备。进一步的,本实施例中I/O处理模块12可以包括处理视频流数据的输入/输出处理模块,用于采用去重算法处理所述视频流数据;处理音频流数据的输入/输出处理模块,用于采用哈夫曼算法处理所述音频流数据;处理USB数据的输入/输出处理模块,用于采用红黑树平衡算法处理所述USB数据;处理硬件中断数据的输入/输出处理模块,用于采用最高优先级算法处理所述硬件中断数据。进一步的,协议引擎11还用于将用户通过各种外围设备输入的数据进行统一的格式化处理。本实施例提供了一种 零终端设备和桌面虚拟机之间互相通信的系统,零终端设备和桌面虚拟机都按照预设的协议机制对数据进行封装和解析,其中零终端设备解析得到数据后,根据数据类型对这些数据分别进行处理,然后分别输出给对应的外围设备;桌面虚拟机解析得到数据后,提交给对应的应用程序进行处理,这种通信系统适应目前的云计算架构。最后,需要注意的是以上列举的仅是本发明的具体实施例子,当然本领域的技术人员可以对本发明进行改动和变型,倘若这些修改和变型属于本发明权利要求及其等同技术的范围之内,均应认为是本发明的保护范围。
权利要求
1.一种零终端设备与桌面虚拟机之间的通信方法,其特征在于,包括所述零终端设备与所述桌面虚拟机之间建立会话连接;在所述会话连接建立时,所述零终端设备与所述桌面虚拟机协商所能通信的数据类型;在所述会话连接建立后,所述零终端设备接收来自所述桌面虚拟机按照预设的协议机制封装的数据包,按照所述预设的协议机制解析所述数据包,根据数据类型将所述数据包包含的数据分别进行处理,然后分别输出给对应的外围设备;所述零终端设备将用户通过各种外围设备输入的数据按照所述预设的协议机制封装成数据包并反馈给所述桌面虚拟机,所述桌面虚拟机按照所述预设的协议机制解析所述数据包,并提交给对应的应用程序。
2.根据权利要求I所述的方法,其特征在于,在所述零终端设备按照所述预设的协议机制解析所述数据包之后还包括所述零终端设备按照数据类型对所述数据包包含的数据进行分类,并对不同类型的数据分别进行标识;根据所述标识,所述不同类型的数据被分发给所述零终端设备中不同的输入/输出处理模块进行处理。
3.根据权利要求2所述的方法,其特征在于,所述零终端设备按照数据类型对所述数据包包含的数据进行分类得到视频流数据、音频流数据、USB数据或硬件中断数据;处理视频流数据的输入/输出处理模块采用去重算法处理所述视频流数据;处理音频流数据的输入/输出处理模块采用哈夫曼算法处理所述音频流数据;处理USB数据的输入/输出处理模块采用红黑树平衡算法处理所述USB数据;处理硬件中断数据的输入/输出处理模块采用最高优先级算法处理所述硬件中断数据。
4.根据权利要求I所述的方法,其特征在于,在所述零终端设备将用户通过各种外围设备输入的数据按照所述预设的协议机制封装成数据包之前还包括所述零终端设备将用户通过各种外围设备输入的数据进行统一的格式化处理。
5.根据权利要求I所述的方法,其特征在于,所述零终端设备与所述桌面虚拟机之间通过传输控制协议和/或用户数据报协议交互数据包。
6.一种零终端设备与桌面虚拟机之间的通信系统,包括零终端设备与桌面虚拟机,其特征在于,所述零终端设备包括协议引擎和一个以上输入/输出处理模块,所述桌面虚拟机包括协议服务程序模块和操作系统;所述协议引擎与所述协议服务程序模块通过交互建立会话连接,在所述会话连接建立时,所述零终端设备与所述桌面虚拟机协商所能通信的数据类型;所述协议引擎用于接收来自所述协议服务程序模块按照预设的协议机制封装的数据包,按照所述预设的协议机制解析所述数据包;以及,用于将用户通过各种外围设备输入的数据按照所述预设的协议机制封装成数据包并反馈给所述协议服务程序模块;所述一个以上输入/输出处理模块用于根据数据类型将所述协议引擎解析的数据包包含的数据分别进行处理,然后分别输出给对应的外围设备;所述协议服务程序模块用于按照所述预设的协议机制解析所述协议引擎反馈的数据包,并提交给所述操作系统中对应的应用程序。
7.根据权利要求6所述的系统,其特征在于,所述协议引擎还用于按照数据类型对所述数据包包含的数据进行分类,并对不同类型的数据分别进行标识;所述一个以上输入/输出处理模块具体用于根据所述标识,将所述协议引擎解析的数据包包含的数据分别进行处理,然后分别输出给对应的外围设备。
8.根据权利要求7所述的系统,其特征在于,所述一个以上输入/输出处理模块包括 处理视频流数据的输入/输出处理模块,用于采用去重算法处理所述视频流数据;处理音频流数据的输入/输出处理模块,用于采用哈夫曼算法处理所述音频流数据; 处理USB数据的输入/输出处理模块,用于采用红黑树平衡算法处理所述USB数据; 处理硬件中断数据的输入/输出处理模块,用于采用最高优先级算法处理所述硬件中断数据。
9.根据权利要求6所述的系统,其特征在于,所述协议引擎还用于将用户通过各种外围设备输入的数据进行统一的格式化处理。
10.根据权利要求6所述的系统,其特征在于,所述系统还包括位于所述零终端设备和所述桌面虚拟机之间的一个或多个通信信道,所述通信信道通过传输控制协议和/或用户数据报协议传输数据包。
全文摘要
本发明公开了一种零终端设备与桌面虚拟机之间的通信方法及系统,属于通信技术领域。该通信方法包括零终端设备与桌面虚拟机之间建立会话连接;在会话连接建立后,零终端设备接收来自桌面虚拟机按照预设的协议机制封装的数据包,按照预设的协议机制解析数据包,根据数据类型将数据包包含的数据分别进行处理,然后分别输出给对应的外围设备;零终端设备将用户通过各种外围设备输入的数据按照预设的协议机制封装成数据包并反馈给桌面虚拟机,桌面虚拟机按照预设的协议机制解析数据包,并提交给对应的应用程序。本发明提供了一种适应目前云计算架构的零终端设备和桌面虚拟机之间互相通信的机制。
文档编号H04L29/06GK102932327SQ20121036276
公开日2013年2月13日 申请日期2012年9月25日 优先权日2012年7月17日
发明者赵新华, 谢卫蓉 申请人:上海金图信息科技有限公司