专利名称:一种鼠标的同步方法、系统和服务器的制作方法
技术领域:
本发明实施例涉及通信技术领域,特别涉及一种鼠标的同步方法、系统 和服务器。
背景技术:
在服务器的KVM (Keyboard Video Mouse,多计算机切换器)应用中, 需要把远程KVM客户端的鼠标动作送到服务器端,将^^莫拟为服务器的鼠标, 并实现远程控制,在远程客户端使用KVM鼠标控制服务器是KVM的重要内容 之一。
通常,KVM鼠标的数据流向是这样的KVM客户端捕获本地PC( Personal Computer,个人电脑)的鼠标动作,将之封装后通过LAN( Local Area Network, 本地区域网络)送到SMM ( Shelf Manage Module,机框管理板)板,SMM板 通过IPMB (Intelligent Platform Management Bus,智能平台管理总线)将数据 包送到服务器端的BMC (BaseboardManage Controller,单板管理控制器), 由BMC控制USB (Universal Serial Bus,通用串行总线)设备模拟USB鼠标。
同时,服务器系统输出的DVI (DigitalVisuallnterface,数字可斗见化界面) 视频经过处理后由BMC读出,通过IPMB总线送给SMM板,然后再通过网络 送到远程KVM客户端进行显示,即为KVM鼠标。
在上述过程中,KVM客户端的界面上可以看到两个鼠标KVM鼠标和 KVM客户端所在的PC系统的鼠标。
当KVM鼠标和KVM客户端所在的PC系统的鼠标进行同步时,以KVM客 户端所在的PC使用的操作系统是Windows操作系统为例,KVM客户端软件通 过Windows底层函数获得KVM客户端所在的PC系统的鼠标的绝对位置和动 作,将之封装后通过网络及SMM板送到服务器端的BMC。 BMC按照标准的鼠 标协议重新封装鼠标报文,通过USB设备将之模拟为服务器的USB鼠标。此时
的鼠标报文中,只包含鼠标位置偏移内容。在服务器进入Windows操作系统之 后进行鼠标同步操作。
在KVM客户端提供一个鼠标同步按钮,点击该按钮可以把本地鼠标复位 到KVM屏幕左上角位置,同时,将该操作传递给服务端的BMC, BMC通过构 造一个特别的鼠标报文(x、 y轴方向均负偏移2000个像素点),将KVM鼠标 也放置在屏幕左上角。
同时,开始在BMC上记忆此时的鼠标位置,之后,随着BMC收到来自KVM 客户端的鼠标动作、鼠标绝对位置不断更新这个位置值,在USB设备正常工 作的状况下,该位置与实际的KVM鼠标位置是一致的。
每当BMC收到来自KVM客户端的鼠标绝对位置时,都要把记忆的鼠标位 置和收到的远程位置进行比较,从而为构造鼠标位置偏移报文提供依据。
按照上述方法可以有效的规避网络丟帧,导致的鼠标丟失同步的问题。 但是,如果BMC记忆的鼠标位置丢失了或者出错了,将导致鼠标同步丟失, 必须进行手动同步。
并且,按照上述方法,在服务器没有进入操作系统之前不进行鼠标同步。 这是由于上述的同步方法要求运行KVM客户端软件的才喿作系统和服务器的操 作系统上设置相同的鼠标的指针移动精度、速度等参数,否则同样的鼠标偏 移报文会导致两个操作系统上鼠标的位移并不一致。在进入操作系统之前, BMC无法获得服务器操作系统上的鼠标的指针移动精度、速度等参数。
但是,现有的同步方法建立在USB设备不丟帧的前提下,仅用于解决网 络丢帧导致的鼠标失同步问题;SMM板与BMC之间的IPMB总线在承担KVM 图像业务的同时,还要额外承载KVM键盘、鼠标数据包,由于IPMB总线的带 宽所限,实现的KVM效果不佳,鼠标同步的速度比發隄。另外,由于该方法 需要额外在操作系统中配置鼠标工作参数,所以在服务器进入操作系统界面 之前无法实现鼠标同步,这也使该方法显得较为繁瑣。并且,鼠标同步需要 客户参与,使用同步按钮,客户体验度不佳。
发明内容
本发明实施例提供一种鼠标的同步方法、系统和服务器,以准确、快速、
自动地实现KVM鼠标同步。
为达到上述目的,本发明实施例一方面提供一种鼠标的同步方法,包括
接收键盘显示设备鼠标KVM客户端发送的数据包,所述数据包携带所述 KVM客户端所在个人电脑PC系统的鼠标位置信息;
对比KVM鼠标的鼠标位置信息和所述KVM客户端所在PC系统的鼠标 位置信息,根据对比结果调整所述KVM鼠标的位置。
另一方面,本发明实施例还提供一种鼠标的同步系统,包括
KVM客户端,用于发送数据包,所述数据包携带所述KVM客户端所在 PC系统的鼠标位置信息;
服务器,用于接收所述KVM客户端发送的数据包,对比从所述服务器的 鼠标位置寄存器上读取的KVM鼠标的鼠标位置信息和所述KVM客户端所在 PC系统的鼠标位置信息,并才艮据对比结果调整所述KVM鼠标的位置。
再一方面,本发明实施例还提供一种服务器,包括
接收模块,用于接收KVM客户端发送的数据包,所述数据包携带所述 KVM客户端所在PC系统的鼠标位置信息;
信息读取4莫块,用于读取KVM鼠标的鼠标位置信息;
控制模块,用于对比所述信息读取模块读取的KVM鼠标的鼠标位置信息 和所述接收模块接收的数据包中携带的所述KVM客户端所在PC系统的鼠标 位置信息,并一艮据对比结果调整所述KVM鼠标的位置。
与现有技术相比,本发明实施例具有以下优点通过本发明实施例,服 务器通过对比KVM鼠标的鼠标位置信息和KVM客户端所在PC系统的鼠标 位置信息,根据对比结果调整KVM鼠标的位置,从而实现在KVM客户端的 屏幕上显示KVM鼠标和KVM客户端所在PC系统的鼠标位置一致,准确、 快速、自动的实现了鼠标同步。并且,本发明实施例在服务器进入操作系统 前后,均可实现鼠标的实时同步。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前 提下,还可以才艮据这些附图获得其他的附图。
图1为本发明实施例服务器与KVM客户端的连接示意图2为本发明实施例鼠标的同步方法的流程图3为本发明鼠标的同步方法实施例一的流程图4为本发明实施例鼠标的同步系统的结构图5为本发明实施例服务器的一种结构图6为本发明实施例服务器的另一种结构图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有 做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例的服务器与KVM客户端的连接示意图,服 务器11上配置有南桥111、芯片/FPGA 112 (Field Programmable Gate Array, 现场可编程门阵列)等多种设备。在芯片/FPGA112上集成了显卡1121、 USB 设备1122、 MAC( Media Access Control,々某体接入控制)1123和控制模块1124 等设备。服务器11通过LAN与远程KVM客户端12进行通信。
其中,芯片/FPGA 112上的显卡1121集成有鼠标位置寄存器11211,用于 保存KVM鼠标的鼠标位置信息。本发明实施例中,控制模块1124可以直接 读取鼠标位置寄存器11211保存的KVM鼠标的鼠标位置信息。
远程KVM客户端12的鼠标数据通过网络直接发送给芯片/FPGA112,由 控制模块1124管理USB设备1122模拟USB鼠标,实现KVM鼠标与客户端 的鼠标同步。
请一同参照图2,图2所示为本发明实施例鼠标的同步方法的流程图,包
括
步骤S201,接收KVM客户端12发送的数据包,该数据包携带KVM客 户端12所在PC系统的鼠标位置信息。
在本发明实施例中,KVM客户端12获取该KVM客户端12所在PC系 统的鼠标位置信息,将该鼠标位置信息携带在数据包中,通过LAN将所述数 据包发送给服务器ll。
步骤S202,对比KVM鼠标的鼠标位置信息和KVM客户端12所在PC 系统的鼠标位置信息,才艮据对比结果调整KVM鼠标的位置。
其中,KVM鼠标的鼠标位置信息保存在服务器11的显卡1121中,服务 器11的控制模块1124可以直接读取显卡1121保存的KVM鼠标的鼠标位置 信息。
根据对比结果调整KVM鼠标的位置具体可以为当KVM鼠标的鼠标位 置信息和KVM客户端12所在PC系统的鼠标位置信息存在偏差时,生成鼠 标偏移报文,对KVM鼠标的位置进行调整。
另外,在KVM客户端12发送的数据包中还包括KVM客户端12所在 PC系统的鼠标动作,该鼠标动作包括鼠标右键单击、鼠标左键单击、鼠标 左键双击或对选定区域进行拖动等。
服务器11在接收KVM客户端12发送的数据包之后,可以根据该数据包 中的KVM客户端12所在PC系统的鼠标位置信息和鼠标动作生成鼠标报文, 控制服务器11的USB i殳备1122模拟一个USB鼠标的功能。
上述鼠标的同步方法,服务器11通过对比KVM鼠标的鼠标位置信息和 KVM客户端12所在PC系统的鼠标位置信息,根据对比结果调整KVM鼠标 的位置,从而实现在KVM客户端12的屏幕上显示KVM鼠标和KVM客户 端所在PC系统的鼠标位置一致,准确、快速、自动的实现了鼠标同步。并且, 本发明实施例不需设置操作系统下的鼠标工作参数,因此服务器11在进入操 作系统前后,均可实现鼠标的实时同步。本发明实施例方便并简化了 KVM客 户端的操作,使得KVM客户端更加友好。
请参照图1和图3,图3所示为本发明鼠标的同步方法实施例一的流程图,
具体包括
步骤S301 , KVM客户端12获取该KVM客户端12所在PC系统的鼠标 的位置和动作,打包后通过网络发送到远程的服务器11。
步骤S302,服务器11上的芯片/FPGA 112获得数据包后,由控制模块1124 根据该数据包中的KVM客户端12所在PC系统的鼠标位置信息和鼠标动作 生成鼠标报文,根据生成的鼠标报文控制USB设备1122,使之完全模拟一个 USB鼠标的功能。
步骤S303,控制^t块1124对比来自显卡1121的鼠标位置信息和来自远 程KVM客户端12的鼠标位置信息,根据对比结果对KVM鼠标进行调整。 控制模块1124读取显卡1121保存的KVM鼠标的鼠标位置信息,从KVM客 户端12发送的数据包中获取远程KVM客户端12的鼠标位置信息,定期对比 上述两种鼠标位置信息,若上述两种鼠标位置信息有偏差,控制模块1124立 即构造鼠标偏移报文对KVM鼠标的位置进行调整,从而实现了远程KVM客 户端12的屏幕上显示的KVM鼠标和KVM客户端12所在PC系统的鼠标位 置一致。
在本发明实施例中,控制模块1124可以随时获得真实的KVM鼠标位置, 并依据服务器端的鼠标位置信息和来自远程KVM客户端12的鼠标位置信息 之间的差值来调整KVM鼠标的位置,因此无论是服务器11进入操作系统之 后,还是处于DOS (Disk Operation System,磁盘操作系统)环境下,KVM 鼠标同步均可以不依赖鼠标参数的设置。所以网络丢帧或者USB设备1122 出错不会导致鼠标持续丢失同步,在网络恢复正常接收数据帧或USB设备 1122恢复正常工作后,鼠标同步即可恢复,并且这些动作完全由软件完成, 不需客户的参与。
当然,在服务器ll进入操作系统之后,正确设置鼠标参数,有利于提高 鼠标同步效率。
上述实施例中,芯片/FPGA112内的控制模块1124根据KVM客户端12 发送的数据包中的KVM客户端12所在PC系统的鼠标位置信息和鼠标动作 生成鼠标报文。但是本发明实施例并不局限于此,也可由远程KVM客户端
12本身根据KVM客户端12所在PC系统的鼠标位置信息和鼠标动作生成鼠 标报文,然后KVM客户端12再通过网络将生成的鼠标报文发送给服务器11, 由芯片/FPGA112内的控制模块1124控制USB设备1122,使之完全模拟一个 USB鼠标的功能。
如图4所示,为本发明实施例鼠标的同步系统的结构图,包括 KVM客户端41,用于发送数据包,该数据包携带KVM客户端41所在 PC系统的鼠标位置信息;
服务器42,用于接收KVM客户端41发送的数据包,在本发明实施例中, 该数据包携带KVM客户端41所在PC系统的鼠标位置信息。对比KVM鼠标 的鼠标位置信息和KVM客户端41所在PC系统的鼠标位置信息,并根据对 比结果调整KVM鼠标的位置。
上述鼠标的同步系统,服务器42通过对比KVM鼠标的鼠标位置信息和 KVM客户端41所在PC系统的鼠标位置信息,根据对比结果调整KVM鼠标 的位置,从而实现在KVM客户端41的屏幕上显示KVM鼠标和KVM客户 端41所在PC系统的鼠标位置一致,准确、快速、自动的实现了鼠标同步。 并且,由于本发明实施例是通过比对KVM客户端41的鼠标和服务器42的 KVM鼠标的位置的差异来调整和控制服务器42的鼠标移动,因此本发明实 施例提供的鼠标同步方法只需要服务器42与KVM客户端41相连即可进行, 不需要任何参数的调整和设置。
如图5所示,为本发明实施例中的服务器42的结构图,包括 接收模块421,用于接收KVM客户端41发送的数据包,该数据包携带 KVM客户端41所在PC系统的鼠标位置信息;
信息读取漢块422,用于读取KVM鼠标的鼠标位置信息; 控制模块423,用于对比信息读取^莫块422读取的KVM鼠标的鼠标位置 信息和接收模块421接收的数据包中携带的KVM客户端41所在PC系统的 鼠标位置信息,并根据对比结果调整KVM鼠标的位置。
在本发明的另一实施例中,如图6所示,服务器42还可以包括鼠标位 置寄存器424,用于保存KVM鼠标的鼠标位置信息。本发明实施例中,信息
读取模块422可以直接读取鼠标位置寄存器424保存的KVM鼠标的鼠标位置 信息。本实施例中,鼠标位置寄存器424可以集成在服务器42的显卡上。 其中,控制模块423可以包括
对比子模块4231 ,用于对比信息读^Mt块422读取的KVM鼠标的鼠标 位置信息和接收模块421接收的数据包中携带的KVM客户端41所在PC系 统的鼠标位置信息;
报文生成子模块4232,用于当对比子模块4231确定KVM鼠标的鼠标位 置信息和KVM客户端41所在PC系统的鼠标位置信息存在偏差时,生成鼠 标偏移纟艮文;
调整子模块4232,用于根据报文生成子模块4221生成的鼠标偏移报文, 对KVM鼠标的位置进行调整。
其中,服务器42还可以包括USB设备425,用于根据鼠标报文模拟 USB鼠标的功能,该鼠标报文由控制模块422根据数据包中的KVM客户端 41所在PC系统的鼠标位置信息和鼠标动作生成。
其中,接收模块421、信息读取模块422、控制模块423、鼠标位置寄存 器424和USB设备425可以集成在一块芯片/FPGA中,也可以集成在多块芯 片/FPGA中。
上述服务器42,控制模块423通过对比信息读取模块422读取的KVM 鼠标的鼠标位置信息和接收模块421接收的KVM客户端41所在PC系统的 鼠标位置信息,根据对比结果调整KVM鼠标的位置,从而实现在KVM客户 端41的屏幕上显示KVM鼠标和KVM客户端41所在PC系统的鼠标的同步, 网络丟帧或USB设备的鼠标报文丟失都不会导致鼠标丢失同步。并且,本发 明实施例中,在服务器42进入操作系统前后,均可实现鼠标的实时同步,可 以不设置操作系统下的鼠标工作参数。
本发明实施例实现了准确、快速、自动的鼠标同步效果,网络丟帧或USB 设备的鼠标报文丢失都不会导致鼠标丢失同步。并且,本发明实施例可以不 设置操作系统下的鼠标工作参数,因此在服务器进入操作系统前后,均可实 现鼠标的实时同步。本发明实施例方便并简化了 KVM客户端的操作,使得
KVM客户端更加友好。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。 基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软 件产品可以存储在一个非易失性存储介质(可以是CD-ROM, U盘,移动硬 盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服 务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的 模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述 进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一 个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆 分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种鼠标的同步方法,其特征在于,包括接收KVM客户端发送的数据包,所述数据包携带所述KVM客户端所在个人电脑PC系统的鼠标位置信息;对比KVM鼠标的鼠标位置信息和所述KVM客户端所在PC系统的鼠标位置信息,根据对比结果调整所述KVM鼠标的位置。
2、 如权利要求1所述鼠标的同步方法,其特征在于,所述鼠标的同步方 法还包括通过鼠标位置寄存器从服务器的显卡上读取KVM鼠标的鼠标位置 信息。
3、 如权利要求1所述鼠标的同步方法,其特征在于,所述根据对比结果 调整所述KVM鼠标的位置具体包括当所述KVM鼠标的鼠标位置信息和所述KVM客户端所在PC系统的鼠 标位置信息存在偏差时,生成鼠标偏移报文,对所述KVM鼠标的位置进行调 整。
4、 如权利要求1所述鼠标的同步方法,其特征在于,所述KVM客户端 发送数据包的步骤具体包括所述KVM客户端获取所述KVM客户端所在PC系统的鼠标位置信息, 将所述鼠标位置信息携带在所述数据包中,通过网络将所述数据包发送给服 务器。
5、 如权利要求l所述鼠标的同步方法,其特征在于,所述数据包中还包 括所述KVM客户端所在PC系统的鼠标动作,在所述接收KVM客户端发送的数据包之后,还包括根据所述数据包中的所述KVM客户端所在PC系统的鼠标位置信息和鼠标动作生成鼠标报文,控制服务器的通用串行总线USB设备模拟USB鼠标的功能。
6、 一种鼠标的同步系统,其特征在于,包括KVM客户端,用于发送数据包,所述数据包携带所述KVM客户端所在 PC系统的鼠标位置信息;服务器,接收所述KVM客户端发送的数据包,对比从所述服务器的鼠标位置寄存器上读取的KVM鼠标的鼠标位置信息和所述KVM客户端所在PC 系统的鼠标位置信息,并才艮据对比结果调整所述KVM鼠标的位置。
7、 一种服务器,其特征在于,包括接收模块,用于接收KVM客户端发送的数据包,所述数据包携带所述KVM客户端所在PC系统的鼠标位置信息;信息读取漠块,用于读取KVM鼠标的鼠标位置信息;控制模块,用于对比所述信息读取模块读取的KVM鼠标的鼠标位置信息和所述接收模块接收的数据包中携带的所述KVM客户端所在PC系统的鼠标位置信息,并纟艮据对比结果调整所述KVM鼠标的位置。
8、 如权利要求7所述服务器,其特征在于,还包括 鼠标位置寄存器,用于从显卡读取并保存所述KVM鼠标的鼠标位置信息,其中,所述信息读取模块从所述鼠标位置寄存器读取KVM鼠标的鼠标位 置信息。
9、 如权利要求7所述服务器,其特征在于,所述控制模块包括 对比子模块,用于对比所述信息读^^莫块读取的KVM鼠标的鼠标位置信息和所述接收模块接收的数据包中携带的所述KVM客户端所在PC系统的鼠 标位置信息;报文生成子模块,用于当所述对比子模块确定所述KVM鼠标的鼠标位置 信息和所述KVM客户端所在PC系统的鼠标位置信息存在偏差时,生成鼠标 偏移报文;调整子模块,用于根据所述报文生成子模块生成的鼠标偏移报文,对所 述KVM鼠标的位置进行调整。
10、 如权利要求7所述服务器,其特征在于,还包括USB设备,用于根据鼠标报文模拟USB鼠标的功能,所述鼠标报文由所 述控制模块根据所述数据包中的所述KVM客户端所在PC系统的鼠标位置信 息和鼠标动作生成。
全文摘要
本发明实施例公开了一种鼠标的同步方法、系统和服务器,所述鼠标的同步方法包括接收键盘显示设备鼠标KVM客户端发送的数据包,所述数据包携带所述KVM客户端所在个人电脑PC系统的鼠标位置信息;对比KVM鼠标的鼠标位置信息和所述KVM客户端所在PC系统的鼠标位置信息,根据对比结果调整所述KVM鼠标的位置。本发明实施例实现了准确、快速、自动的鼠标同步效果,并且,本发明实施例在服务器进入操作系统前后,均可实现鼠标的实时同步,方便并简化了KVM客户端的操作,使得KVM客户端更加友好。并且本发明实施例使用网络传输KVM鼠标数据,实现KVM鼠标同步的效果好。
文档编号H04L29/06GK101339473SQ200810214058
公开日2009年1月7日 申请日期2008年8月26日 优先权日2008年8月26日
发明者单建旗, 悦 周, 亮 唐, 柴方明, 殷富强, 王进成, 亮 赵 申请人:华为技术有限公司