用于远程操作的快速界面交互方法及装置与流程

文档序号:14990273发布日期:2018-07-20 22:04阅读:186来源:国知局

本发明涉及计算机通信领域,尤其涉及一种用于远程操作的快速界面交互方法及装置。



背景技术:

远程控制是计算机技术领域中常用的技术。例如在软件的开发和测试过程中,软件开发商通常需要在测试服务器或移动终端等远程主机上安装多台虚拟机。每台虚拟机上可以运行不同环境参数的操作系统实例,以验证软件在多种配置环境下的运行状况。此时,测试人员和开发人员可以通过远程登陆到上述远程主机以执行具体的测试任务。基于上述技术方案,由于相关人员与物理设备无需处于相同的工作场所,且远程登陆的方式可以方便相关人员验证、复现和回归软件开发过程中的各类问题,为软件的开发和测试工作带来了便利。

然而,目前各类远程控制的技术方案都依赖于本地设备与远程主机的网络连接状况。例如基于javaappletvnc客户端和代理服务器的虚拟机远程控制方案。具体地,javaappletvnc客户端基于rfb协议通过代理服务器请求打开xen服务器的虚拟机控制台。而当客户端通过互联网访问xenserver虚拟机图形化控制台之后,将虚拟机刷新后的页面返回至客户端。由于刷新后的页面需要整体发送回客户端,所以当网络连接状况较差或多台本地设备并发连接到远程主机时,在本地设备上将出现明显的网络延时。这使得本地设备对远程主机的操作不流畅,用户不能从本地设备上实时获得其向远程主机上发出的指令,从而影响了远程控制的实际使用效果。



技术实现要素:

本发明的目的是解决现有技术的不足,提供一种用于远程操作的快速界面交互方法及装置,能够获得提高本地设备远程操作远程主机流畅度的效果。

第一方面,本发明提出一种用于远程操作的界面交互方法,包括以下步骤:

s100、建立本地设备与远程主机之间的界面图像关联的接口和通道;

s200、在远程主机所生成的界面图像中,提取固定区域的图元、动态区域的图元的位置,然后识别出该图元在图像库和/或缓冲区中的对应元素的id;

s300、本地设备接收远程主机发送的图像、图元位置或图像库的id数据,根据本地图像库和缓冲区,合成出固定区域和动态区域的图界面像。

在进一步的实施例中,所述步骤s200包括:获取远程主机的界面图像;根据当前的界面属性参数,在界面图像中划分出固定区域和动态区域,以及识别这两区域中的图元及其位置,其中,所述界面属性参数包括界面所属的应用程序id、界面轮廓位置或用户操作窗口位置;使固定区域图元与远程主机的图像库中的已有元素关联,使动态区域图元与远程主机的缓冲区已有元素关联;向本地设备发送图元的位置数据以及该图元对应的元素的id。

在进一步的实施例中,所述步骤s200还包括:当固定区域和动态区域中所识别的图元没有在图像库和缓冲区中匹配对应的元素,则将识别的图元作为新的元素储存在图像库中或者缓存在缓冲区中。

在进一步的实施例中,所述步骤s200还包括:如果检测到当前网络空闲,则同步远程主机和本地设备的图像库和/或缓冲区。

在进一步的实施例中,所述方法还包括对图像库和缓冲区定期清空使用频率低于预设阈值的元素。

在进一步的实施例中,所述步骤s300还包括:建立本地设备对远程主机的控制,激活远程主机的系统操作控制;接收本地设备的输入设备的动作,并转换为指令数据;将指令数据实时发送到远程主机,使得远程主机根据用户指令和终端参数运行和更新相应的应用程序和功能;同步更新本地设备和远程主机的应用程序数据,以及包含固定区域和动态区域的界面图像;在结束远程控制的时候分别处理本地设备和远程主机的缓存数据,并同步本地设备和远程主机的图像库。

在进一步的实施例中,在步骤s300中,本地设备基于动态区域中图元的位置和图元在图像库中对应的元素id,合成动态区域中的所有图像。

在优选的实施例中,所述方法还包括:在本地设备和远程主机中,在图像库中储存图元前或者在缓冲区缓存图元前,对图元进行矢量化转换;或者在远程主机中,将动态区域中包含文字的图元转换为文字数据和文段排版格式数据,用于直接传输至本地设备。

在一些实施例中,所述方法还包括基于散列函数的校验方式从图像库中检索图元。

第二方面,本发明提供一种用于远程操作的界面交互装置,其包括以下模块:

第一模块,用于建立本地设备与远程主机之间的界面图像关联的接口和通道;

第二模块,用于在远程主机所生成的界面图像中提取固定区域的图元、动态区域的图元的位置,然后识别出该图元在图像库和/或缓冲区中的对应元素的id;

第三模块,用于使本地设备接收远程主机发送的图像、图元位置或图像库的id数据,根据本地图像库和缓冲区,合成出固定区域和动态区域的图界面像。

第三方面,本发明还涉及一种计算机可读存储介质,其上存储有计算机指令。该计算机指令被处理器执行时实现上述的方法步骤。

本发明的有益效果为:在远程控制期间,极大地减少本地设备和远程主机之间传输的界面图像数据量,从而提高界面交互操作流畅度、提升用户输入体验。

附图说明

图1所示为根据本发明的方法的总体流程图;

图2所示为根据本发明的方法的细节流程图;

图3所示为根据本发明的方法的本地设备与远程主机之间的输入操作的流程图;

图4所示为根据本发明的方法和装置的应用场景示意图;

图5所示为根据本发明的一个实施例的应用场景示意图;

图6所示为根据本发明的另一个实施例的应用场景示意图;

图7所示为根据本发明的再一个实施例的应用场景示意图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

图1所示为根据本发明的用于远程操作的界面交互方法的总体流程。该流程包括以下步骤:s100、建立本地设备与远程主机之间的界面图像关联的接口和通道;s200、在远程主机所生成的界面图像中,提取固定区域的图元、动态区域的图元的位置,然后识别出该图元在图像库和/或缓冲区中的对应元素的id;s300、本地设备接收远程主机发送的图像、图元位置或图像库的id数据,根据本地图像库和缓冲区,合成出固定区域和动态区域的图界面像。

远程主机是处于互联网或局域网中的远程受控主机,例如是个人计算机、分布式服务器、云计算机、网络受控终端等。远程主机还可以是虚拟化的主机,其同时被多个用户登陆控制。本地设备是由用户操作的主控本地机,例如是个人计算机、移动通信终端、web主控端等。

固定区域是指远程操作界面中在给定时间内基本不变的图像部分,比如在操作界面中示出应用程序的工具栏图像、任务栏图像等。例如参考5至7,应用程序界面中的上任务栏和左侧任务栏的图像、图标所构成的界面部分为固定区域。

动态区域是指远程操作界面中经常变化的、或者受用户操作而变化的图像部分,例如是用户浏览区域、编辑区域、网页动态图等。例如参考5至7,应用程序界面中,由用户经常操作翻译、点击浏览、画图操作的区域一般定义为动态区域。

在一些实施例中,固定区域也可以变成动态区域,比如用户拖动任务栏的时候,原本属于固定区域的任务栏可以转变成动态区域;动态区域也可以转换成固定区域,比如在图5的文字浏览的动态区域中,如果用户长时间滚动阅读文字,而文字的背景图片在给定时间内都不改变或者无需刷新,则原动态区域的背景可以转换成固定区域。

图元是指组成界面图像的基础图像或图标,例如是应用程序图标、文件图标、网页中的插入图等。此外,图像元素(简称元素)是指储存在图像库和缓冲区中的图元。图像库和缓冲区中的元素都配置有id。

如图2所示,在根据本发明的方法的进一步的实施例中,远程主机可以执行以下步骤:

s201、获取远程主机的界面图像;

s202、根据当前的界面属性参数,在界面图像中划分出固定区域和动态区域,以及识别这两区域中的图元及其位置,其中,所述界面属性参数包括界面所属的应用程序id、界面轮廓位置或用户操作窗口位置;

s203、使固定区域图元与远程主机的图像库中的已有元素关联,当固定区域中所识别的图元没有在图像库中匹配对应的元素,则将识别的图元作为新的元素储存在图像库中;

s204、使动态区域图元与远程主机的缓冲区已有元素关联,动态区域中所识别的图元没有在图像库和缓冲区中匹配对应的元素,则将识别的图元作为新的元素缓存在缓冲区中;

s205、向本地设备发送图元的位置数据以及该图元对应的元素的id;

s206、判断当前远程控制的网络传输是否空闲,如果是则执行下一步骤,否则结束本次流程;

s207、同步远程主机和本地设备的图像库和/或缓冲区。

具体地,在步骤s201中,可以通过截图的方式获取界面图像。优选地,可以通过应用程序和浏览器的内部数据来调取界面图像。比如,通过调取界面上当前显示的应用程序中的ui(图形界面)数据来获取图元;还可以通过调取浏览器网页缓存中的图像和文字数据来获得图元。

具体地,在步骤s202中,可以对截图的界面图像通过网格或者图元轮廓线划分出一个或多个区域,然后判断这些区域在给定时间内的变化频繁度,将基本不改变的区域识别为固定区域,将用户操作的区域或者经常有图像变化的区域识别为动态区域。优选地,也可以直接根据界面当前显示的应用程序中的ui数据来识别工具栏、背景图等区域作为固定区域,而用户操作的界面部分作为动态区域。

优选地,步骤s203或s204中,所述流程还可以包括:检索图像库中基于图像使用频率组建的常用图像子图像库;如果在常用图像子图像库中检索不到图像,检索图像库中其他图像。在本实施例中,优选地,图像库定期清空使用频率低于预设阈值的图像。在优选的实施例中,还可以基于散列函数的校验方式,检索图像库和缓冲区中是否有元素对应界面中的图元。

优选地,在步骤s207中,还包括对图像库和缓冲区定期清空使用频率低于预设阈值的元素。

图3所示为根据本发明的方法的本地设备与远程主机之间的输入操作的流程图。

在一个实施例中,在本地设备运行的基于用户输入的界面交互流程如下:

s301、建立本地设备对远程主机的控制;

s302、接收本地设备的输入设备的动作,并转换为指令数据;

s303、将指令数据实时发送到远程主机,利用图像库和缓冲区合成本地界面;

s304、更新本地设备的应用程序数据、系统操作数据等;

s305、如果没有结束远程控制,则返回步骤s302,否则执行以下一步骤;

s306、清理本地设备的缓存数据,并同步本地设备和远程主机的图像库。

相应地,远程主机的基于用户输入的界面交互流程如下:

s211、激活远程主机的系统操作控制;

s212、监视终端输入设备的远程操作端口;

s213、根据接收到的用户指令和终端参数,运行和更新相应的应用程序和功能,生成对应的界面;

s214、同步更新本地设备和远程主机的应用程序数据,以及包含固定区域和动态区域的界面图像;

s215、如果没有结束远程控制,则返回步骤s212,否则执行以下一步骤;

s216、清理本地设备的缓存数据,并同步本地设备和远程主机的图像库。

在本实施例中,通过本地设备和远程主机之间传送输入设备(例如鼠标、键盘、触摸屏等)的指令来进行界面的更新和交互。例如,用户在本地设备移动鼠标点击某图标时,首先通过驱动程序将鼠标硬件传输的hid数据转换为操作系统识别的指令数据,同时将该数据发送到本地设备和远程主机的操作系统层;然后,直接反映在本地设备的界面上有鼠标光标移动和点击反馈动画;同样在远程主机中的操作系统层可以根据该指令数据,在远程主机中更新界面和鼠标轨迹,确定鼠标点击坐标所对应的图标,以及该图标对应的应用程序功能。因为本地设备和远程主机之间仅需要传输字节级别的少量数据,而且分别在本地设备和远程主机中利用本机资源更新界面,因此在本实施例中的界面交互方法可以减少远程控制中的图像传输数据,同时提供快速、实时用户操作交互。

根据本发明的方法可以通过程序或进程来实施。该程序或进程可以运行于本地设备的操作系统中或者远程主机的操作系统中,还可以运行在第三方管理设备中,用于监视和控制本地设备和远程主机的各个界面交互单元工作。在图4所示的实施例中,界面合成单元可以被配置为执行动态区域中的图元合成;指令处理单元被配置为执行图3所示的流程中的指令传输和处理;界面分解单元可以被配置为执行图2所示的流程中的图元识别。本领域技术人员应理解到,远程主机可以内部生产虚拟的界面,而不在实际的显示器中显示界面。例如,利用虚拟化技术,可以使远程主机虚拟出多个操作系统的虚拟界面。

图5-7所示为根据本发明的多个实施例的应用场景示意图。

参照图5,在远程主机中,可以将动态区域中包含文字的图元转换为文字数据和文段排版格式数据,用于直接传输至本地设备。例如,用户操作本地设备阅读文档时进行鼠标翻页操作,本地设备直接读取缓冲区中已缓存的该文档数据,然后直接在本地设备的界面的动态区域中更新文字图元。而远程主机接收到鼠标的翻页操作指令,在远程主机内的阅读应用程序中处理文字翻页操作,这样就可以同步本地设备和远程主机界面,但是不用传输屏幕图片。

参照图6,用户在浏览资源管理器的时候,新建了文件夹。如果新建的文件夹采用了自定义的图标(如图6中指示的三角形图标),并且该图标没有储存在图像库和缓冲区,则将该图标单独在本地设备和远程主机中传输和同步,然后储存在缓冲区中。还可以将该图标转换成元素保持在图像库中。这样就可以在用户下一次浏览该文件夹路径的时候,只需采用贴图的方式,在本地设备的图像库或缓冲区导出对应的图元叠加到已有的界面中。

在优选的实施例中,在图像库中储存图元前或者在缓冲区缓存图元前,可以对对图元进行矢量化转换。参考图7,用户在本地设备操作画图时,可以将几何图形矢量化后缓存到缓冲区,然后远程主机同步缓冲区数据后,就可以读取缓冲区中的矢量图来还原界面中的图元。

在一实施例中,根据本发明的用于远程操作的界面交互装置,包括:第一模块,用于建立本地设备与远程主机之间的界面图像关联的接口和通道;第二模块,用于在远程主机所生成的界面图像中提取固定区域的图元、动态区域的图元的位置,然后识别出该图元在图像库和/或缓冲区中的对应元素的id;第三模块,用于使本地设备接收远程主机发送的图像、图元位置或图像库的id数据,根据本地图像库和缓冲区,合成出固定区域和动态区域的图界面像。

应当认识到,上述装置的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

进一步,该方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

上述实施例仅仅是为清楚理解本发明的原则而提出的实现方式的示例性说明。在不偏离本发明的范围的情况下,许多变化、组合、修改或等同变换可以替代本发明的元件。因此,本发明旨在不限制于所公开的用于实施本发明的最佳模式的具体实施方案,但是本发明将包括落入所附权利要求范围内的所有实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1