CN117424931A - 基于图像交互的云计算系统及方法 - Google Patents

基于图像交互的云计算系统及方法 Download PDF

Info

Publication number
CN117424931A
CN117424931A CN202310209104.2A CN202310209104A CN117424931A CN 117424931 A CN117424931 A CN 117424931A CN 202310209104 A CN202310209104 A CN 202310209104A CN 117424931 A CN117424931 A CN 117424931A
Authority
CN
China
Prior art keywords
data
virtual machine
local
mobile terminal
cloud server
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.)
Pending
Application number
CN202310209104.2A
Other languages
English (en)
Inventor
杨立群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CN117424931A publication Critical patent/CN117424931A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及基于云计算网络的数据交互方法,包括:建立本地终端与云服务器中的虚拟机之间的数据交互连接;在所述虚拟机和所述本地终端之间传送界面图像数据及同步操作。还涉及一种基于图像交互的云计算系统,包括:云服务器,其包括由集群式硬件虚拟化生成的至少一个虚拟机;至少一个本地终端,所述本地终端包括与云服务器连接的网络通信模块以及用于处理所述云服务器所发送的界面图像数据的图像处理模块。本发明的方案使硬件配置相对基础的本地终端获得丰富的云计算服务体验,满足用户在本地终端体验各种云端应用程序功能。此外,还通过本地终端和云服务器之间的资源调配和程序运作的重定向,实现更便捷和顺畅的操作交互体验。

Description

基于图像交互的云计算系统及方法
技术领域
本发明涉及交互式云计算系统、方法及装置,属于云计算、通信和软件技术领域。
背景技术
智能移动终端已经成为人们日常形影不离的网络终端设备。当前智能移动终端产品整机的换代更新周期短,然而,频繁的移动终端产品替换让消费者带来经济压力,而且更换的移动终端可能性能过剩,不利于节约和环保。此外,相对于PC平台的处理器芯片,移动终端的运算芯片受限于功耗要求或供应链限制,不容易使智能移动终端获得更快的运算速度。而且,在智能移动终端市场,还存在企业应用和安全保密服务的需求,往往需要将智能移动终端的应用程序运行数据存放于企业云端服务器以方便保密。
另一方面,随着移动通信技术的日益发展,第五代移动通信技术(5G)得到广泛应用,使得智能移动终端与外部服务器之间的互联更加快速和稳定。因此,保证了智能移动终端与服务器之间的图形交互的流畅性。
发明内容
本发明的主要方面提供基于云计算网络的数据交互方法和基于图像交互的云计算系统,旨在至少解决现有技术中存在的技术问题之一。
本发明的技术方案主要涉及一种基于云计算网络的数据交互方法,包括以下步骤:A、建立本地终端与云服务器中的虚拟机之间的数据交互连接;B、在所述虚拟机和所述本地终端之间传送界面图像数据及同步操作。
在一些实施例中,所述步骤A包括:基于长链接网络协议,建立本地终端与云服务器之间的数据连接,以及建立云服务器与第三方服务器之间的数据连接,其中,在云服务器中设有与所述本地终端进行数据交互的虚拟机;根据需要,以函数重定向或者修改数据接收地址的方式,将云服务器的虚拟机与第三方服务器之间的数据传输重定向为本地终端与第三方服务器之间的数据传输。
在一些实施例中,所述步骤A还包括:在本地终端和云服务器的虚拟机中有数据传输关联的应用程序之间建立数据缓冲区;根据历史接收数据,在数据缓冲区中补全生成连续的数据,用于从所述数据缓冲区读取数据的应用程序连续地执行数据读取。
在一些实施例中,所述步骤A还包括:在本地终端中,通过后台的消息机制,使云服务器的虚拟机中的云端应用程序的消息转发推送到移动终端的消息栏;使虚拟机中用于消息队列的服务程序通过长链接网络通道与本地终端的用于消息队列的服务程序同步数据。
在一些实施例中,所述步骤B包括:B100、建立本地移动终端与远程虚拟机之间的界面图像关联的接口和通道;B200、通过对比算法,在远程虚拟机识别动态区域中的分块对象,提取并记录分块对象及其自身的图元的位置信息,然后获取该分块对象及其自身的图元在图像库/缓冲区中的对应元素的ID;B300、跟随本地移动终端的输入指令,计算界面图像中受该输入指令影响的分块对象或图元的位置及缩放的变换参数;B400、根据本地移动终端的图像库和缓冲区,基于当前的界面图像以及受输入指令影响的图元的变换参数,在本地进行动态区域的图元的变换,并刷新界面图像;B500、本地移动终端接收远程虚拟机发送的图像、图元位置或图像库的ID数据,微调固定区域和动态区域的界面图像,使本地移动终端和远程虚拟机的界面图像同步。
在一些实施例中,所述步骤B还包括通过以下方式中的至少一种或多种,调整本地终端和/或云服务器虚拟机的数据传输配置:根据操作频率,动态调整本地终端与云服务器中的虚拟机之间的界面图像传输质量;根据本地终端的人机操控幅度,动态调整本地终端和云服务器之间的操控请求频率,或者增减至少一部分的操控请求数据;根据网络传输质量或本地终端的硬件运行情况,动态调整本地终端的显示帧率和/或刷新率;根据云服务器的硬件运行情况,动态调整一个或多个虚拟机的显示帧率和/或刷新率。
在一些实施例中,所述方法还包括以下步骤:C、在所述虚拟机和所述本地终端中有数据传输关联的多个应用程序之间,以函数重定向或者修改数据接收地址的方式,将所述多个应用程序中的至少一个应用程序中的至少一部分数据转发至另外的程序或另外的函数中执行。
在一些实施例中,所述步骤C包括:将本应运行的原函数切换为自定义函数,用于调用本地终端的本地函数执行所述原函数的至少一部分功能。
在一些实施例中,所述步骤C还包括:使虚拟机中设有钩子程序,用于将特定原函数的执行接口或者地址替换成自定函数的执行接口或者地址,其中所述特定原函数是虚拟机中的服务器程序原本需要调用的函数;使所述自定函数与本地终端的客户端子程序和本地函数对接;基于移动终端和虚拟机建立连接后,当虚拟机中的服务器程序执行所述特定原函数时,使得实际执行所述自定函数,进而触发移动终端的客户端程序和本地函数实施自定义功能。
本发明另一些方面可以涉及一种数据重定向的方法,所述方法包括以下步骤:基于长链接网络协议,建立本地终端与云计算服务器之间的数据连接,以及建立云计算服务器与第三方服务器之间的数据连接,其中,在云计算服务器中设有与所述本地终端进行数据交互的虚拟机;以函数重定向或者修改数据接收地址的方式,将云计算服务器的虚拟机与第三方服务器之间的数据传输重定向为本地终端与第三方服务器之间的数据传输。
本发明另一些方面可以涉及一种基于函数重定向的程序执行方法,所述方法包括以下步骤:将本应运行的原函数切换为自定义函数,用于调用本地终端的本地函数执行所述原函数的至少一部分功能。
本发明另一些方面可以涉及一种基于网络的数据缓冲方法,所述方法包括以下步骤:在本地终端和云计算服务器的虚拟机中有数据传输关联的应用程序之间建立数据缓冲区;根据历史接收数据,在数据缓冲区中补全生成连续的数据,用于从所述数据缓冲区读取数据的应用程序连续地执行数据读取。
本发明另一些方面可以涉及一种计算装置或计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施上述的方法。本发明另一些方面可以涉及一种移动终端,包括:与云服务器连接的网络通信模块;用于处理所述云服务器所发送的界面图像数据的图像处理模块;上述的计算机可读存储介质。
本发明另一些方面可以涉及一种云服务器,包括:由集群式硬件虚拟化生成的至少一个虚拟机;上述的计算装置或计算机可读存储介质。
本发明另一些方面可以涉及一种基于图像交互的云计算系统,包括:至少一个云服务器,所述云服务器包括第一计算机可读介质以及由集群式硬件虚拟化生成的至少一个虚拟机;至少一个本地终端,所述本地终端包括第二计算机可读介质、与云服务器连接的网络通信模块以及用于处理所述云服务器所发送的界面图像数据的图像处理模块;其中,所述第一计算机可读介质和/或第二计算机可读介质储存的程序指令被处理器执行时实施上述的方法。
本发明的有益效果在于:提供了涉及架构、方法、流程及软硬件的整套交互式云计算系统解决方案;让硬件配置相对低的智能移动终端获得高速和丰富的云计算体验,满足用户在同一移动终端使用各种云端操作系统的需求;通过移动终端和云服务器之间的资源调配和程序运作的重定向,实现更便捷和顺畅的交互体验。
附图说明
图1是一些根据本发明的实施例中的硬件架构的总体示意图。
图2是一些根据本发明的实施例中的硬件架构的基本示意图。
图3是一些根据本发明的实施例中的软件架构的总体示意图。
图4是一些根据本发明的实施例中的软件架构的细节示意图。
图5是一些根据本发明的实施例中的数据缓冲方法的基本示意图。
图6是一些根据本发明的实施例中的数据缓冲方法的细节示意图。
图7是一些根据本发明的实施例中的函数重定向方法的基本示意图。
图8是一些根据本发明的实施例中的函数重定向方法的细节示意图。
图9是另一些根据本发明的实施例中的函数重定向方法的细节示意图。
图10是一些根据本发明的实施例中的数据转发方法的细节示意图。
图11是一些根据本发明的实施例中的显示调整方法的基本示意图。
图12是实施例中的基于本地和远程之间的交互的图像传输方法流程图。
图13是根据本发明的实施例中的基于本地操控的方法的细节流程图。
图14是根据本发明的实施例中的图像调整方法的细节流程图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
1、硬件架构
1.1、整体系统架构
参照图1,根据本发明的云计算框架系统在广义上包括:用户操作端的本地终端(或者云计算本地终端)和服务提供端的云计算服务器(下文简称云服务器)。
本地终端可以是跨操作系统(比如,安卓、IOS、Windows、Linux)平台的智能手机、平板电脑、便携电脑、游戏机、PDA或其他可移动和联网的具有图形界面的可移动运算终端。云服务器包括多处理器系统、大型计算机、分布式计算系统、或集群计算系统等。应理解到,本地终端、云服务器和通信设备分别在数量上可以是多个。
本地终端与云服务器通过通信设备联网,所采用的联网方式可以是有线连接、无线连接、或者其任意组合。具体地,在本地终端与云服务器之间可以采用移动通信连接(优选采用5G或下一代移动通信技术的通信方式)、广域网或以太网等技术来组网。因此,通信设备可以包括网络适配器、网络交换机、路由器、调制解调器、光纤/双绞线线路、无线AP、天线、移动通信基站等。下文以移动终端作为本地终端的优选实例以深入描述本发明的方案。
根据本发明的云计算系统中,一般由提供云计算服务的云服务器直接连接第三方服务器。
1.2、移动终端的硬件细节
参照图2所示的移动终端的内部结构框。移动终端包括显示器、人机交互设备(比如,触控屏、鼠标、键盘等)、运算单元、存储器以及与云服务通信连接的通信模块。优选地,移动终端还可以包括硬件层面的图像处理模块,或者是专用于图像处理的定制化FPGA芯片,用于移动终端和云服务器虚拟机之间传输的图像进行切片、压缩、对比、整合或者并行处理等工作。
1.3、云服务器的硬件细节
参照图2,云服务器在狭义上包括CPU、内存、硬盘、显卡等各种计算机设备,在广义的云集群架构上可以包括网络管理器、处理器、调度器、存储器等。云集群架构还可以包含分布式冗余的多个云服务器。因此,一个或多个云服务器还可以由融合云端的各种硬件资源整合而成,为多组云系统提供物理运行环境。网络管理器处理相应的移动终端的通信以提供云计算服务。处理器可根据云服务器当前运行情况,促使调度器从云集群网络中的各种云计算设备或者从移动终端调度资源。在一个实例中,当云服务器存储容量紧张时,处理器可以分析云集群网络中的与云服务器连接的闲置存储资源(比如NAS)或者内存资源,通过调度器将该存储资源中的可用存储内容并址到云服务器的存储器中,或者通过调度器将该移动终端的可用闲置内存资源整合到云服务器中的内存池中,供云集群架构统一部署使用。
2、软件架构
2.1、移动终端的软件架构
参照图1和图2,移动终端的软件架构可以包含或者运行各种平台(比如,安卓、IOS、Windows、Linux)的操作系统(OS)。该操作系统可以在基础模式和云计算模式之间切换,其中:在操作系统的基础模式下,在移动终端中可以仅运行基本的通信功能(比如,电话通话、收发短信)和应用程序(比如,浏览器、摄像、音视频解码);在云模式下,移动终端可以通过高速网络(优选地通过5G或下一代的移动通信网络),基于移动终端上运行的云操作桌面与云服务器中运行的虚拟机的云系统交互,载入云系统的丰富的软硬件资源。例如,当用户操作移动终端的人机交互设备完成登陆验证后,移动终端连接至云服务器中模拟运行的虚拟机(VM)中的相应的云系统,使移动终端的用户界面从基础界面(比如,用于通话或短信功能的界面)切换至云操控桌面的界面,继而使移动终端的界面与云系统的虚拟生成的界面同步。
参照图3和图4,在一些实施例中,在移动终端的操作系统中运行的云操控桌面的实现形式包括独立APP(比如是,基于Native的APP,系统级内置的APP或者是需要安装的APP)、WebAPP(比如是基于HTML5框架的应用程序)、基于Python的应用程序、基于x86运行平台的应用程序、或者是基于移动终端的操作系统中的应用程序中的插件所插入的子程序,等等。
参照图3,若云操控桌面实施为独立APP或者WebAPP,云操控桌面可以包含浏览器控件、本地访问控件、一个或多个服务子程序和一个或多个客户端子程序。一个或多个服务子程序运行优化的本地与远程虚拟机的交互算法,比如一个或多个服务子程序中的图像交互子程序用于对接浏览器控件以实现图形交互,用于移动终端和云服务器虚拟机之间传输的图像进行切片、压缩、对比、整合或者并行处理等工作。客户端子程序与云操控桌面的本地访问控件对接,用于读取移动终端的硬件的传输数据。比如,客户端子程序中运行的通信函数可以让云操控桌面与云服务器的服务程序之间建立网络通信,然后通过本地访问控件读取网络硬件接收到云服务器的通信数据。应理解,在本实施例中,服务子程序优选地用于实施各种操控交互、图传、重定向、动态调整等优化算法,客户端子程序优选地用于实施与本地硬件有关的基本功能算法。
参照图4,若云操控桌面实施为基于移动终端的操作系统中原生的应用程序(比如,浏览器应用程序)中的插件所插入的子程序,该子程序包括界面控件,用以与虚拟机的远程虚拟界面进行图像交互。在一个实施例中,浏览器应用程序中的云操控桌面可包含图像交互服务子程序,用于移动终端和云服务器虚拟机之间传输的界面图像进行切片、压缩、对比、整合或者并行处理等工作。此外,在另一个实施例中,还可以通过其他插件,将图像交互服务子程序插入到浏览器应用程序中,以与浏览器应用程序中的云操控桌面的界面控件对接,从而用于移动终端和云服务器虚拟机之间传输的界面图像进行切片、压缩、对比、整合或者并行处理等工作。
2.2、云服务器的软件环境
参照图3,在云服务器中运行总操作系统,比如是x86模式的Windows或者优选是Linux系统。在总操作系统中以进程的方式运作虚拟机,多个虚拟机可以共享使用云服务器所融合的物理资源(比如,CPU、内存、硬盘、显卡等资源)。在虚拟机中可以模拟运行各种可远程操作的系统(比如,安卓、IOS、Windows、MAC、Linux等系统),其中可以不显示界面图形,比如图1中仅以云系统的虚拟生成的界面仅作为示意性的描述。
在一些实施例中,在总操作系统中可以运行一个总服务程序,用于与多个虚拟机分别传输数据,并且与多个移动终端对接数据,并负责数据转发。总服务程序可以包含多种交互服务程序或者子程序,用于实现移动终端和云服务器虚拟机之间的网络传输优化、图像交互优化、媒体数据编码解码等功能。优选地,参照图4,虚拟机也可以包含图像交互程序,其与前述的移动终端中的图像交互子程序对应,用于移动终端和云服务器虚拟机之间传输的界面图像进行切片、压缩、对比、整合或者并行处理等工作。
2.3、网络传输协议
移动终端和云服务器之间采用的应用层通信协议的框架可以包括但不限于HTTP、Socket、Webtransport等。优选地,移动终端和云服务器之间采用WebSocket、HTTP3.0等通信协议。其中,WebSocket协议使得客户端和服务器之间的数据交换变得更加简单和高效,还允许服务端主动向客户端推送数据。在WebSocket API中,移动终端的云操控桌面(或者浏览器)和云服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接并进行双向数据传输,因此该协议可以实现大并发量的数据传输。
参照图4,在移动终端和云服务器之间的基于WebSocket协议的传输可以复用了HTTP协议的握手通道。此外,还可以扩展性地允许多路复用,比如图4中的图像交互程序可以是基于WebSocket协议的通道进行图像数据传输。
在一个基于WebSocket协议的图像传输实例中,在虚拟机中以Socket作为主线程,用于处理图像源上传请求以及管理WebSocket会话。当Socket主线程收到图像上传请求时,服务端自动创建WebSocket服务,用于发送图像数据。WebSocket子服务收到图像浏览请求时,开始向移动终端的云操控桌面发送图像数据。其中,图像源的图像数据可以是来自虚拟机中的截屏线程所截取的至少一部分的或者全部的本虚拟机界面图像。
2.4、消息机制
在一些实施例中,移动终端和虚拟机都可以采用类似于MQTT的消息机制。在移动终端中,尽管云操控桌面在后台运行或者没有弹出操作界面时,也可以通过后台的消息机制,将云服务器的虚拟机中的云端应用程序的消息转发推送到移动终端的消息栏,从而节省移动终端的运行功耗。优选地,虚拟机中用于消息队列的服务程序可以通过WebSocket通道与移动终端的用于消息队列的服务程序直接同步数据,也可以直接将虚拟机中用于消息队列转发到移动终端以作为移动终端的本地消息队列,从而使移动终端快速高效地获取消息队列信息。
在另一些实施例中,可以采用至少一个WebSocket连接或使用HTML5Javascript将文件分割成较小的WebSocket消息,这将允许Psedo多路复用,因为可以在文件块之间发送不同的WebSocket消息。
3、交互
基于前述的云计算框架系统的硬件和软件框架,下面进一步描述该系统所实施的方法或者是对所述系统的至少一部分而实施的方法。
3.1、数据缓冲
参照图5,在一些实施例中,根据本发明的数据缓冲方法基本包括以下步骤:在本地终端和云服务器的虚拟机中有数据传输关联的应用程序(比如是图5所示的本地程序和云程序)之间建立数据缓冲区;根据历史接收数据,在数据缓冲区中补全生成连续的数据,用于从所述数据缓冲区读取数据的应用程序连续地执行数据读取。
参照图6,在一个实施例中,本地程序向云程序传输的数据先经过本地移动终端的数据缓冲区暂存,然后再传输到云服务器的缓冲区,再供云程序读取。在本地和云服务器的缓冲区都可以对每个数据包(参照图6中的d_n至d_n+4等)设置时间戳(参照图6中的t_n至t_n+4)。假如因为网络中断,导致本地程序本应在时间节点(比如t_n+3)传输到云服务器缓冲区的数据中断或者丢失,则在数据缓冲区中写入对应所述时间节点(比如t_n+3)的补充数据(d_n+2’),该补充数据(d_n+2’)可以等于上一时间节点(比如t_n+2)的数据(d_n+2),也可以是最近的多个数据的线性预测值。当本地程序恢复与云服务器的缓冲区的正常数据对接后,则可以在云服务器的缓冲区的新时间戳(比如t_n+4)下写入正常数据(d_n+4)。因此,能够在数据缓冲区保持数据连续性,从而使云程序可以有数据连续读取。在一个实例中,本地程序可以是移动终端的定位APP,而虚拟机云程序是地图APP,其中定位APP向云程序地图APP发送定位数据,才能使得地图APP能正常定位所述移动终端的地理位置。采用本实施例的数据缓冲方法,则可以让虚拟机的地图APP能够持续获得定位数据,至少在移动终端跟云服务断开连接时,仍然不会出现地图定位漂移。
同理,当云程序向本地程序传送数据时,也可以在移动终端的缓冲区生成连续数据,以避免本地程序接收的数据出现漂移。
3.2、函数重定向和数据重定向
根据本发明的基于函数重定向的程序执行方法是将本应运行的原函数切换为自定义函数,用于调用本地终端的本地函数执行所述原函数的至少一部分功能。在本发明的实施例中的函数重定向方法中主要采用钩子(Hook)技术。钩子是一个可以允许插入自定义程序的地方,通常是打包好的程序中提供的接口或者地址。比如,想要提供一段代码来分析程序中某段逻辑路径被执行的频率,或者想要在其中插入更多功能时就会用到钩子。通过钩子可以实现函数重定向,比如可以暂停系统层的原函数的调用,或者通过改变系统调用的参数来改变正常的输出结果,甚至可以中止一个当前运行中的进程并且将控制权转移。
下面结合图7至图9,以解释根据本发明的基于函数重定向的方法。
参照图7,在一些实施例中,在虚拟机中设有钩子程序,用于将特定的原函数的执行接口或者地址替换成自定函数的执行接口或者地址。然后,自定函数可以与移动终端的客户端子程序和本地函数对接。在一些实施例中,所述特定的原函数是虚拟机中的服务器程序原本需要调用的函数(比如,消息转发函数、定位函数、编解码函数等)。基于移动终端和虚拟机建立连接后,当虚拟机中的服务器程序执行所述原函数时,则会实际执行自定函数,进而能够触发移动终端的客户端程序和本地函数运行自定义功能。
参照图8,在一个实施例中,钩子程序将地图APP要调用的定位函数GetGPS()的执行接口替换为自定函数myGetGPS()的执行接口。而myGetGPS()可以被写入灵活的自定义功能代码,比如可以触发移动终端的客户端子程序来调用移动终端的本地定位函数GetGPS(),从而获取移动终端的GPS定位数据,再返送到虚拟机的地图APP。
参照图9,在一些实施例中,还可以通过函数重定向的方式,将云服务器的虚拟机与第三方服务器之间的数据传输(或者数据处理)重定向为本地移动终端与第三方服务器之间的数据传输(或者数据处理)。例如,在移动终端远程操控虚拟机的即时通讯(IM)APP(比如,微信)进行与第三方服务器进行即时数据传输的场景下,需要通过虚拟机的IM APP数据证书以与第三方服务器(比如,腾讯服务器)传输数据,其中IM APP和第三方服务器之间的即时通话语音数据原本要被IM APP调用的音频解压原函数进行音频解压,这个时候就可以通过钩子程序用自定函数来替换执行,从而可以通过该自定函数触发移动终端的本地音频解压函数来对接第三方服务器的即时通话语音数据。这样,就可以让移动终端和第三方服务器之间直接处理语音数据,且在能够实现本地播放,以减少移动终端与虚拟机之间的语音中介数据传输。
此外,在一些实施例中,建立本地终端与云服务器之间的数据连接,以及建立云服务器与第三方服务器之间的数据连接后,可以通过修改数据接收地址的方式,将云服务器的虚拟机与第三方服务器之间的数据传输重定向为本地终端与第三方服务器之间的数据传输。例如参照图10,可以在所述虚拟机和所述本地终端中有数据传输关联的多个应用程序之间,以修改数据接收网络地址(比如IP地址)为移动终端的网络地址,或者通过ARP技术将虚拟机的网络地址转换到移动终端,从而将本应从第三方服务器发送到虚拟机的数据转发到移动终端的本地应用程序。
应理解,对于上述函数重定向和数据重定向的替代方案,还可以在云服务器和/或移动终端中设置驱动程序(如图7所示),从而可以直接实现驱动层面的转发数据和执行关联函数。
3.3、界面图像处理
返回参照图2至图4,在一些实施例中,在移动终端和云服务器中的图像处理模块、图像交互子程序和图像交互程序中的任一者或多者可以实施的远程操作界面交互方法可以包括以下步骤:
B100、建立本地移动终端与远程虚拟机之间的界面图像关联的接口和通道;
B200、通过对比算法,在远程虚拟机识别动态区域中的分块对象,提取并记录分块对象及其自身的图元的位置信息,然后获取该分块对象及其自身的图元在图像库/缓冲区中的对应元素的ID;
B300、跟随本地移动终端的输入指令,计算界面图像中受该输入指令影响的分块对象或图元的位置及缩放的变换参数;
B400、根据本地移动终端的图像库和缓冲区,基于当前的界面图像以及受输入指令影响的图元的变换参数,在本地进行动态区域的图元的变换,并刷新界面图像;
B500、本地移动终端接收远程虚拟机发送的图像、图元位置或图像库的ID数据,微调固定区域和动态区域的界面图像,使本地移动终端和远程虚拟机的界面图像同步。
固定区域是指远程操作界面中在给定时间内基本不变的图像部分,比如在操作界面中示出应用程序的工具栏图像、任务栏图像等。动态区域是指远程操作界面中经常变化的、或者受用户操作而变化的图像部分,例如是用户浏览区域、编辑区域、网页动态图等。
在一些实施例中,固定区域也可以变成动态区域,比如用户拖动任务栏的时候,原本属于固定区域的任务栏可以转变成动态区域;动态区域也可以转换成固定区域,比如在文字浏览的动态区域中,如果用户长时间滚动阅读文字,而文字的背景图片在给定时间内都不改变或者无需刷新,则原动态区域的背景可以转换成固定区域。
分块对象是指按照给定的划分方式将界面图像分割出的局部图像,而这种局部图像可以包含一个或多个图元。给定的划分方式根据实际的用户所选的场景,可以是对界面图像的横切、列切、文字分离、矢量图分离等方式。图元是指组成界面图像的基础图像或图标,例如是应用程序图标、文件图标、网页中的插入图等。此外,图像元素(简称元素)是指储存在图像库和缓冲区中的图元。图像库和缓冲区中的元素都配置有ID。
步骤B100进一步包括以下步骤:B101、获取远程虚拟机的界面图像;B102、根据用户选取的远程交互场景(例如,办公场景、文字阅读场景、网页浏览场景、画图场景、视频或动画播放等),定义分块对象的划分方式(例如,横切、列切、文字分离、矢量图分离、图标划分、影像分离等);B103、使分块对象与图像库和缓冲区中的已有元素(通过哈希算法)进行对比和关联,如果没有在图像库和缓冲区中发现该元素,则将其作为新的元素存来储存于图像库中或者临时储存于缓冲区中;B104、获取输入指令的事件及其动作参数,判断与该指令关联的图元;B105、将动作参数转换为对应图元的位置/缩放变换参数,例如图元在后续动作帧中的像素位置坐标、缩放偏移矩阵;B106、在指令事件的时段内,以变换参数,在本地执行图元的变位和/或从缓冲区增加图元;B107、传送指令到远程虚拟机,在远程执行指令事件,刷新界面,确定相应图元的实际位置;B108、判断本地和远程图元是否有明显差异(例如,是否位置偏移量超过阈值,图元不一致、图元缺失等),是则执行下一步骤,否则执行步骤B110;B109、缓寸缺失的图元,在本地修正图元的位置或增加图元;B110、判断当前远程控制的网络传输是否空闲,如果是则执行下一步骤,否则结束本次流程;B111、同步远程虚拟机和本地移动终端的图像库和/或缓冲区,然后结束本次流程。
具体地,在步骤B101中,可以通过截图的方式获取界面图像。优选地,可以通过应用程序和浏览器的内部数据来调取界面图像。比如,通过调取界面上当前显示的应用程序中的UI(图形界面)数据来获取图元;还可以通过调取浏览器网页缓存中的图像和文字数据来获得图元。具体地,可以对截图的界面图像通过网格或者图元轮廓线划分出一个或多个区域,然后判断这些区域在给定时间内的变化频繁度,将基本不改变的区域识别为固定区域,将用户操作的区域或者经常有图像变化的区域识别为动态区域。优选地,也可以直接根据界面当前显示的应用程序中的UI数据来识别工具栏、背景图等区域作为固定区域,而用户操作的界面部分作为动态区域。
具体地,在步骤B102中,用户选取不同的交互场景的时候,界面(尤其是动态区域)的划分方式可以有所不同。例如,选取办公场景时,界面动态区域定义为办公编辑窗口,对应选取横切或者文字背景分离的划分方式;选取阅读场景时,可以采用纯文字的划分方式;浏览网页的场景时,如果是上下滚动页面,可以选取横切的划分方式,如果是左右滚动页面时,可以选取列分的划分方式;选取画图场景时,可以选取矢量图和背景分离的划分方式;选取视频或动画播放场景时,可以将播放窗口作为整个分块对象来区别于其它对象或图元。优选地,在横分或者列分的方式是,行与行或者列与列之间的间距可以与图元(例如文字行段、网页的网格段落高度)的尺寸匹配。根据不同场景来划分分块对象的技术方案,比传统的全页面小网格划分的技术方案效率更高速度更快。此外,还可以根据用户当前运行的应用程序的类型来自动切换场景。例如,运行办公软件的时候,自动切换到办公场景,运行浏览器程序的时候换到网页浏览场景。
具体地,步骤B103中,流程还可以包括:检索图像库中基于图像使用频率组建的常用图像子图像库;如果在常用图像子图像库中检索不到图像,检索图像库中其他图像。在本实施例中,优选地,图像库定期清空使用频率低于预设阈值的图像。在优选的实施例中,还可以基于散列函数的校验方式,检索/对比图像库和缓冲区中是否有元素对应界面中的图元。
具体地,在步骤B104中,输入设备的事件包括输入设备(例如,鼠标、键盘、触摸屏等)的按键点击、缩放、拖动、滚页等,或输入设备的操作间接产生的应用程序的焦点切换、窗口开启/关闭、等。对应上述事件的动作参数例如是,点击位置的坐标、缩放比例参数、拖动点的坐标偏移、滚页行数、焦点应用程序号、应用程序状态参数等。此外,可以通过一下方式判断某图元是否与某指令关联:1、指令直接作用于图元;2、图元位于动态区域中,并且指令导致该动态区域的变化;3、指令直接或者间接影响图元的激活或者取消激活。
具体地,在步骤B106中,可以脱离远程虚拟机而优先在本地执行图元的变位和/或从缓冲区增加图元。而且执行图元的变位要跟指令事件的时间同步,保持较高的响应性。
在本地移动终端运行的基于用户输入的界面交互流程如下:B301、建立本地移动终端对远程虚拟机的控制;B302、接收本地移动终端的输入设备的动作,转换为指令数据,然后匹配当前所选的交互场景(例如,办公场景、文字阅读场景、网页浏览场景、画图场景等);B303、将指令数据实时发送到远程虚拟机,然后首先利用与指令关联的相应图元的变换参数和本地的图像库和缓冲区,合成本地界面;B304、接收远程虚拟机的实际数据,更新修正本地分块对象或其图元的位置,或在界面补充图元,更新本地移动终端的应用程序数据、系统操作数据等;B3041、跟远程虚拟机进行分块对象或其图元的缓存数据同步;B305、如果没有结束远程控制,则返回步骤B302,否则执行以下一步骤;B306、清理本地移动终端的缓存数据,并同步本地移动终端和远程虚拟机的图像库。
相应地,远程虚拟机的基于用户输入的界面交互流程如下:B211、激活远程虚拟机的系统操作控制;B212、监视终端输入设备的远程操作端口,并且取认所选的交互场景;B213、根据接收到的用户指令和终端参数,运行和更新相应的应用程序和功能,生成对应的界面;B214、同步更新本地移动终端和远程虚拟机的应用程序数据,以及包含固定区域和动态区域的界面图像,用于对本地移动终端的界面进行微调或修正;B2141、跟本地主机进行分块对象或其图元的缓存数据同步;B215、如果没有结束远程控制,则返回步骤B212,否则执行以下一步骤;B216、清理本地移动终端的缓存数据,并同步本地移动终端和远程虚拟机的图像库。
3.4、动态显示调整或动态图像传输
参照图11,可以通过以下方式中的至少一种或多种,调整本地终端和/或云服务器虚拟机的显示配置和图像传输配置:根据操作频率,动态调整本地终端与云服务器中的虚拟机之间的界面图像传输质量;根据网络传输质量或本地终端的硬件运行情况,动态调整本地终端的显示帧率和/或刷新率;根据云服务器的硬件运行情况,动态调整一个或多个虚拟机的显示帧率和/或刷新率。
可以通过移动终端的本地子程序监测用户对人机交互设备的操作频率。在优选的实施例中:当操作频率较慢(比如低于第一阈值)时,可以提高云服务器向移动终端传输的图像质量和/或降低移动终端的显示器(或显示界面)的刷新率;当操作频率较快(比如高于第二阈值)时,可以降低云服务器向移动终端传输的图像质量和/或提高移动终端的显示器(或显示界面)的刷新率;当操作频率过快(比如高于第三阈值)时,可以传输虚拟机在该过快操作过程的最后一帧的界面所对应的图像至移动终端,然后对移动终端的过快操作过程中的其余界面图像数据不进行传输或压缩。
在一些实施例中,动态图像传输方法可以包括以下步骤:
S001、在本地移动终端和云服务器的虚拟机之间建立操控数据交互连接;
S002、在至少一时段内保持所述虚拟机的界面图像向所述本地移动终端的传输连接;
S003、根据所述云服务器向所述本地移动终端传输的界面图像的传输间隔,对所述云服务器待传送的界面图像进行动态调整。
对于步骤S001,由交互连接的本地移动终端发送的操控数据会引起云服务器的至少一部分界面的改变。这样的操控数据可以是本地移动终端的输入设备(比如,触摸屏、鼠标、键盘等)引起本地的点击、移动、缩放等操控动作所产生的数据。当本地的操控数据传递到云服务器后,再分配到与所述本地移动终端已建立连接的虚拟机,从而建立本地移动终端操控动作与虚拟机的界面交互。移动终端的操控可以引起虚拟机的整个界面的改变,也可以引起部分界面的改变,或者引起界面后台活动的变化。
对于步骤S002,基于本地移动终端和云服务器的虚拟机之间的传输连接,当本地移动终端每次产生的操控数据发送到虚拟机时,如果引起虚拟机的界面变化,则会使得云服务器将当次的界面图像向本地移动终端传输。换句话说,虚拟机收到的操控数据的频率越高,一般向本地移动终端传输的图像越多。优选地,在本地移动终端和云服务器之间的界面图像的传输可以基于长链接网络协议,以兼容高频率图像传输。优选地,移动终端和云服务器之间采用WebSocket、HTTP3.0等通信协议。其中,WebSocket协议使得客户端和服务器之间的数据交换变得更加简单和高效,还允许服务端主动向客户端推送数据。在WebSocketAPI中,移动终端的云操控桌面(或者浏览器)和云服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接并进行双向数据传输,因此该协议可以实现大并发量的数据传输。
对于步骤S003,对所述云服务器待传送的界面图像进行的动态调整包括,在一定的时段内,如果云服务器向本地移动终端传输图像的间隔过短(或者是图像传输过于频繁),在下一时段内,实施以下子步骤中的任一个或多个的子步骤:减少向本地移动终端的图像传输数量;以图像压缩的方式,减少整个或一部分的界面图像的质量;对界面图像中的动态变化的部分图像进行传输。
下面通过更详细的实施例来描述根据本发明的用于远程操控的图像传输方法在本地和远程各侧的方法流程步骤及其交互。
3.4.1、本地侧的方法流程
参照图12,根据本发明的用于远程操控的图像传输方法在本地移动终端侧可以包括以下步骤S110至S119。
S110、启动本地移动终端的云操控桌面程序,同时激活本地的操控进程,以实时捕获输入设备的操控数据并向远程计算机设备(云服务器的虚拟机)传输。优选地,可以通过云操控桌面程序接入云服务器的用户信息数据库,验证用户的登录信息(比如,账号、密码、指纹数据、人脸识别数据等),用于登录到云服务器中的该用户的虚拟机且建立本地向远程的安全的加密的操控数据传输。
S120、在移动终端的系统程序中,运行数据传输进程,并激活图像数据传输的专门通道,以允许接收云服务器所传输的界面图像数据。图像数据传输通道和操控数据传输通道各自独立,以允许持续传输操控数据时传输图像数据不被网络连接干扰。优选地,图像数据传输通道被配置的传输频率低于或等于操控数据传输通道的传输频率。
S130、通过本地移动终端和云服务器之间的长链接,在预设时段持续从云服务器接收虚拟机的界面图像。
S140、判断所接收的图像的频次是否过快(比如两次收到图像数据的时间间隔Δtr小于预设阈值Tr),是则执行步骤S150,否则跳转执行步骤S160。
S150、根据移动终端状态,筛选接收一部分自云服务器的界面图像或者对接收到的界面图像进行筛选,用于移动终端的界面更新和显示。优选地,还可以基于本地移动终端的电量、网络状态、应用场景等状态,对所接收的界面图像的筛选数量做调整。比如,当本地移动终端运行在节能模式或者基带芯片的工作负荷超过预设值时,使图像数据传输通道的传输频率降低,从而降低功耗和发热。比如,当本地移动终端连接的网络带宽较低或位于待机场景时,以更长的时间间隔,间隔地选取一部分的界面图像以用于显示。在另一些实例中,当监测到本地操控数据的发送频率低于阈值ft,则间隔地选择所接收的界面图像;如果监测到没有本地操控数据发送,却接收的图像的频次过快,则以间隔更长的时间来选择所接收的界面图像,以用于移动终端的界面更新。
S160、以选取的界面图像更新到移动终端的显示界面。优选地,还可以通过以下任一方式触发局部或全局地更新本地移动终端的显示界面:定时;本地移动终端的应用场景(比如,网页浏览、工作办公、游戏模式等)切换;本地移动终端的系统状态改变;收到用户特定的刷新操作指令。
S170、判断本地移动终端是否产生对远程的虚拟机的操控数据(比如,云操控桌面受到用户的操控是否结束),是则执行下一步骤S180,否则返回执行步骤S130。
S180、判断本地移动终端和远程服务器之间的图像数据传输是否结束(比如,传输通道是否关闭),是则执行下一步骤S190,否则返回执行步骤S130。
S190、向云服务器的虚拟机同步当前的操控数据,并以虚拟机的全局界面图像同步到本地移动终端的界面。最后结束本次流程。
3.4.2、远程侧的方法流程
参照图12,根据本发明的用于远程操控的图像传输方法在远程的云服务器侧可以包括以下步骤S210至S219。
S210、通过云服务器的传输进程,获取本地移动终端的用户登录数据,启动所述用户的远程计算机设备(在云服务器中生成的虚拟机),从而使该虚拟机对接本地移动终端的操控数据。优选地,在云服务器中分配到用户使用的虚拟机可以是多个,每个当前使用的虚拟机的操控数据传输通道与移动终端的云操控桌面的特定操控数据传输进程关联,从而允许云操控桌面可以切换操控该用户在云服务器中的各个虚拟机。
S220、在云服务器中或在虚拟机中运行图像交互服务程序,并激活图像数据传输的专门通道,以允许向本地移动终端传输虚拟机的界面图像数据。
S230、调用虚拟机的屏幕截屏进程,持续获取该虚拟机的界面图像。
S240、判断所发送的图像的频次是否过快(比如两次收到图像数据的时间间隔Δts小于预设阈值Ts),是则执行步骤S250,否则跳转执行步骤S260。
S250、对获取的虚拟机的界面图像的质量进行动态调整。
对于步骤S240至S250,在一些实施例中,对云服务器待传送到本地移动终端的界面图像进行动态调整包括以下步骤:检测同一界面范围的界面图像从所述云服务器向所述移动终端的当前传输间隔Δts;如果确定当前传输间隔Δts小于第一时间阈值Ts1,则使所述待传送的界面图像放弃当次的传输;如果确定当前传输间隔低于第二时间阈值Ts2,则使所述待传送的界面图像降低质量(例如,通过进一步的图像压缩的方式来降低至少一部分的界面图像的质量,也可以对界面图像降低分辨率处理);其中,所述第一时间阈值Ts1小于所述第二时间阈值Ts2。
在一些实例中,第一时间阈值Ts1可以是较小值,比如20ms,而第二时间阈值Ts2可以配置成多个较大的阈值(比如,40ms、60ms、80ms),以阶梯式地降低界面图像质量(或者,提高压缩率/降低分辨率)。例如,当传输间隔小于40ms时,把图像质量压缩到只有原文件体积的30%,当传输间隔小于60ms时,把图像质量压缩到只有原文件体积的60%,当传输间隔小于80ms时,把图像质量压缩到只有原文件体积的80%。
在另一些实施例中,对所述云服务器待传送的界面图像进行动态调整还可以包括以下步骤:检测同一界面范围的界面图像从所述云服务器向所述移动终端的当前传输间隔;确定当前传输间隔Δts高于第三时间阈值Ts3,则使待传送的界面图像质量恢复(比如降低图像压缩率、或者转换成无损压缩图像),或者从云服务器采集更高图像质量的界面图像,用于向所述移动终端传输。第三时间阈值Ts3一般大于第二时间阈值Ts2。优选地,第三时间阈值Ts3可以是100ms或者更大的值。
在另一些实施例中,对所述云服务器待传送的界面图像进行动态调整还可以包括以下步骤:检测整体的界面图像从所述云服务器向所述移动终端的当前传输间隔Δts;确定当前传输间隔Δts低于预设的某个阈值Ts0,则使所述待传送的界面图像降低分辨率或调整成灰度图像。
优选地,可以根据移动终端和云服务器之间的当前的网络传输状态、应用场景(比如,网页浏览、工作办公、游戏模式等)或用户指令,对所述云服务器向所述移动终端传输的界面图像进行预调整,所述预调整包括图像分辨率调整、色彩通道调整、调整成灰度图像等。比如,当云服务器对本地移动终端的网络传输速度或者带宽降幅较大,则直接执行上述预调整步骤,再执行步骤S250。
S260、通过本地移动终端和云服务器之间的长链接,在预设时段持续将筛选留下的界面图像向本地移动终端传输。优选地,可以建立操控数据和界面图像之间建立时间标识,使得每次来自本地移动终端的在某个时间节点的操控所触发(截屏)的云服务器虚拟机的界面图像可以附上所述时间节点的标识,使得本地移动终端收到的界面图像也附加了该时间节点标识,用于本地终端的操控动作与显示的界面图像对应。
S270、判断远程的虚拟机是否收到本地移动终端的操控数据,并且在虚拟机中由本地移动终端的操控数据引起的操控进程是否完成,是则执行下一步骤S280,否则返回执行步骤S230。
S280、判断本地移动终端和远程服务器之间的图像数据传输是否结束(比如,传输通道是否关闭),是则执行下一步骤S290,否则返回执行步骤S230。
S290、与本地移动终端的同步当前的操控数据,并以虚拟机的全局界面图像同步到本地移动终端的界面。最后结束本次流程。
3.4.3、操控数据与图像筛选
本地移动终端的操控数据影响到虚拟机的界面图像的生成和传输。在一些实施例中,根据本发明的方法还可以包括以下与操控有关的基本步骤:SA、根据本地操控的类型,当出现特定的操控、操控过快、异常操控等情况,使经过筛选或者调节后的操控数据再向云服务器发送,以避免云服务器产生不必要的界面图像;或者,SB、根据本地移动终端的操控数据的发送间隔,对本地移动终端所接收的多个界面图像进行动态筛选,以在移动终端显示所筛选的界面图像或者显示至少一部分图像。基本步骤SA是通过筛选本地操控数据而直接影响云服务器的虚拟机的界面变化,还可以直接影响云服务器向本地的图像传输频率,所以基本步骤SA属于“主动”步骤。基本步骤SB是对已接收的图像进行筛选,属于“被动”步骤。可以理解到,在本地接收的图像和远程发送的界面图像中,图像接收模块和图像传输模块都可以独立工作以进行图像筛选,同时配合上述的主动步骤SA和被动步骤SB,这是本发明的图像传输方法方案的灵活之处,能够兼容在各种基于操控的应用场景中进行图像传输优化。
在一些实施例中,参照图13,基本步骤SA可以结合到上述实施例的步骤S110中的操控进程。在这些实施例中,可以实施为以下步骤S111至S116。
S111、激活本地的操控进程,以实时捕获本地移动终端的输入设备的操控数据。
S112、在操控触发的时段内,捕获操控数据和进行分类。在一些实施例中,可以根据操控事件,分类成点击、双击、单指滑动、多指滑动、指纹识别动作、机身实体按键动作等等。
S113、判断是否出现特定类型的操控,或者是否出现操控过快或者操控异常,是则执行下一步骤S114,否则跳转执行步骤S115。在一些实施例中,对于每个分类,特定类型的操控可以是长时间的持续点击、远距离(比如,超过屏幕一半长度)的滑动等等。操控异常比如是频繁来回的触控拖动、多个按键同时按下等等。
S114、筛选或者调节本地移动终端的操控数据。参照图7,在一个实施例中,对于频繁来回的触控拖动的操控事件(如图7中的虚线箭头指示),所产生的操控数据包含较多的来回拖动的路径坐标,因此,可以对操控数据进行筛选,保留该触控拖动事件中的起始触控点的坐标和末尾触控点的坐标,以避免重复操控数据引起生成反复的虚拟机界面图像。在另一个实施例中,对于远距离滑动的操控事件,同样可以只保留滑动起始点的坐标和滑动结束点的坐标记录在操控数据中。此外,对于异常的操控事件,可以直接屏蔽其产生的操控数据,避免发送至远程服务器。
S115、向远程云服务器的虚拟机发送操控数据。
S116、等待一定的时间,判断是否有下一个操控事件发生,是则返回执行步骤S112,否则结束本次流程。
在一些实施例中,基本步骤SB可以结合到上述实施例的步骤S150中的操控进程。根据移动终端的操控间隔对所接收的多个界面图像进行动态筛选可以包括以下步骤:
S151、在至少一时间段内,确定移动终端的操控间隔Δtc小于第四时间阈值Tc4(优选地,第四时间阈值Tc4可以根据操控类型,取值为10ms至20ms范围);
S152、从所接收到的远程计算设备的界面图像中,至少丢弃一部分用于在本地终端显示的界面图像(如图7所示的因移动终端的频繁操控事件而重复产生的中间冗余图像),然后根据需要,可以减少本地终端向云服务器虚拟机发送的操控数据的频次。
在一些实施例中,根据移动终端的操控间隔对所接收的多个界面图像进行动态筛选还可以包括以下步骤:在至少一时间段内,确定移动终端的操控间隔Δtc大于第五时间阈值Tc5(对应于用户在普通情况下对移动终端的操控频次),则从所接收的多个界面图像中保留所有的用于在移动终端显示的界面图像;在至少一时间段内,确定移动终端的操控间隔Δtc大于第六时间阈值Tc6(对应于用户在较长时间不操控移动终端的情况),则从所接收的多个界面图像中间隔地选取用于在移动终端显示的界面图像,直至出现移动终端的下一次操控,这样可以实现本地待机的效果和减少移动终端的功耗。其中,第六时间阈值Tc6大于第五时间阈值Tc5,且第五时间阈值Tc5大于第四时间阈值Tc4。第五时间阈值Tc5的取值可以大于200ms,第六时间阈值Tc6的取值可以大于若干秒。
在一实施例中,根据本发明的方法还可以包括:在至少一时间段内,确定移动终端的操控间隔Δtc大于第七时间阈值Tc7,则减少移动终端的显示帧率,直至出现下一次操控,其中第七时间阈值Tc7大于第五时间阈值Tc5。本实施例可以适用于本地终端长期没有被操控时(比如是阅读场景),减少本地终端的显示功耗。
在一些实施例中,参照图7,根据本发明的方法还可以包括以下步骤:确定移动终端的操控点的移动幅度(或距离)超过预设的幅度阈值;在移动终端的操控点所产生的操控数据引起的云服务器向移动终端传送的多个界面图像中,保留与操控点的起始动作和结尾动作关联的界面图像,并且减少其余的用于在移动终端显示的界面图像。
此外,还可以通过移动终端的本地子程序监测用户对人机交互设备的操控频率。在优选的实施例中:当操控频率较慢(比如低于某阈值)时,可以提高云服务器向移动终端传输的图像质量和/或降低移动终端的显示器(或显示界面)的刷新率;当操控频率较快(比如高于某阈值)时,可以降低云服务器向移动终端传输的图像质量和/或提高移动终端的显示器(或显示界面)的刷新率;当操控频率过快(比如高于某阈值)时,可以传输虚拟机在该过快操控过程的最后一帧的界面图像至移动终端,然后对移动终端的过快操控过程中的其余界面图像数据不进行传输,或者以校高的压缩率对这些图像实施压缩(甚至是有损压缩)。
4、远程虚拟机和移动终端之间的交互
参照图12,本地移动终端侧的步骤S110、S120、S130、S170、S180和S190分别和云服务器侧的步骤S210、S220、S260、S270、S280和S290有双向数据传输和数据交换。
特别地,对于步骤S160和S260之间还存在定时的同步交互,以定时在移动终端和云服务器之间同步界面图像。这样,可以避免云服务器向本地移动终端传输筛选后的界面图像所导致的双方的界面显示偏差。
在一些实施例中,根据本发明的方法还可以包括以下步骤:可以通过云服务器中运行的硬件监测模块,判断移动终端导致的云服务器的硬件(含虚拟机的虚拟硬件)的运行情况(比如,网络传输质量、处理器负荷、内存占用率等)。比如,当监测到网络传输速度下降或者网络延迟增加超过阈值,则可以提高云服务器向移动终端传输的图像的压缩率,或者降低图像质量。
5、其他
参照图14,在其他的实施例中,根据本发明的方法还可以包括以下步骤,以在本地终端或者云服务器中实施。
S351、在云服务器向移动终端传输界面图像之前,使移动终端的界面分辨率与云服务器的界面显示分辨率同步一致。优选地,在云服务器和移动终端之间设置用于传输至少一部分的界面图像的数据缓冲区;根据历史传输数据,在数据缓冲区中补全生成连续的至少一部分的界面图像的数据,用于从数据缓冲区读取数据的应用程序连续地读取界面图像数据。
S352、判断是否出现网络问题(比如,当监测到网络传输速度下降或者网络延迟增加超过阈值)或者切换到高速图像交互模式,是则执行下一步骤S353。
S353、判断是否收到界面分辨率调节指令。是则执行步骤S354,否则执行步骤S355。
S354、降低界面显示分辨率。
S355、降低所传输的界面图像的分辨率。
4、其他
应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还可以包括计算机程序本身。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (10)

1.一种基于云计算网络的数据交互方法,其特征在于,所述方法包括以下步骤:
A、建立本地终端与云服务器中的虚拟机之间的数据交互连接;
B、在所述虚拟机和所述本地终端之间传送界面图像数据及同步操作。
2.根据权利要求1所述的方法,其中,所述步骤A包括:
基于长链接网络协议,建立本地终端与云服务器之间的数据连接,以及建立云服务器与第三方服务器之间的数据连接,其中,在云服务器中设有与所述本地终端进行数据交互的虚拟机;
根据需要,以函数重定向或者修改数据接收地址的方式,将云服务器的虚拟机与第三方服务器之间的数据传输重定向为本地终端与第三方服务器之间的数据传输。
3.根据权利要求1所述的方法,其中,所述步骤A包括:
在本地终端和云服务器的虚拟机中有数据传输关联的应用程序之间建立数据缓冲区;
根据历史接收数据,在数据缓冲区中补全生成连续的数据,用于从所述数据缓冲区读取数据的应用程序连续地执行数据读取。
4.根据权利要求1所述的方法,其中,所述步骤A包括:
在本地终端中,通过后台的消息机制,使云服务器的虚拟机中的云端应用程序的消息转发推送到移动终端的消息栏;
使虚拟机中用于消息队列的服务程序通过长链接网络通道与本地终端的用于消息队列的服务程序同步数据。
5.根据权利要求1所述的方法,其中,所述步骤B包括:
B100、建立本地移动终端与远程虚拟机之间的界面图像关联的接口和通道;
B200、通过对比算法,在远程虚拟机识别动态区域中的分块对象,提取并记录分块对象及其自身的图元的位置信息,然后获取该分块对象及其自身的图元在图像库/缓冲区中的对应元素的ID;
B300、跟随本地移动终端的输入指令,计算界面图像中受该输入指令影响的分块对象或图元的位置及缩放的变换参数;
B400、根据本地移动终端的图像库和缓冲区,基于当前的界面图像以及受输入指令影响的图元的变换参数,在本地进行动态区域的图元的变换,并刷新界面图像;
B500、本地移动终端接收远程虚拟机发送的图像、图元位置或图像库的ID数据,微调固定区域和动态区域的界面图像,使本地移动终端和远程虚拟机的界面图像同步。
6.根据权利要求1所述的方法,其中,所述步骤B包括通过以下方式中的至少一种或多种,调整本地终端和/或云服务器虚拟机的数据传输配置:
根据操作频率,动态调整本地终端与云服务器中的虚拟机之间的界面图像传输质量;
根据本地终端的人机操控幅度,动态调整本地终端和云服务器之间的操控请求频率,或者增减至少一部分的操控请求数据;
根据网络传输质量或本地终端的硬件运行情况,动态调整本地终端的显示帧率和/或刷新率;
根据云服务器的硬件运行情况,动态调整一个或多个虚拟机的显示帧率和/或刷新率。
7.根据权利要求1所述的方法,其中,所述方法还包括以下步骤:
C、在所述虚拟机和所述本地终端中有数据传输关联的多个应用程序之间,以函数重定向或者修改数据接收地址的方式,将所述多个应用程序中的至少一个应用程序中的至少一部分数据转发至另外的程序或另外的函数中执行。
8.根据权利要求7所述的方法,其中,所述步骤C包括:
将本应运行的原函数切换为自定义函数,用于调用本地终端的本地函数执行所述原函数的至少一部分功能。
9.根据权利要求7所述的方法,其中,所述步骤C包括:
使虚拟机中设有钩子程序,用于将特定原函数的执行接口或者地址替换成自定函数的执行接口或者地址,其中所述特定原函数是虚拟机中的服务器程序原本需要调用的函数;
使所述自定函数与本地终端的客户端子程序和本地函数对接;
基于移动终端和虚拟机建立连接后,当虚拟机中的服务器程序执行所述特定原函数时,使得实际执行所述自定函数,进而触发移动终端的客户端程序和本地函数实施自定义功能。
10.一种基于图像交互的云计算系统,其特征在于,包括:
至少一个云服务器,所述云服务器包括第一计算机可读介质以及由集群式硬件虚拟化生成的至少一个虚拟机;
至少一个本地终端,所述本地终端包括第二计算机可读介质、与云服务器连接的网络通信模块以及用于处理所述云服务器所发送的界面图像数据的图像处理模块;
其中,所述第一计算机可读介质和/或第二计算机可读介质储存的程序指令被处理器执行时实施如权利要求1至9中任一项所述的方法。
CN202310209104.2A 2022-03-08 2023-03-07 基于图像交互的云计算系统及方法 Pending CN117424931A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2022102269515 2022-03-08
CN202210226951 2022-03-08

Publications (1)

Publication Number Publication Date
CN117424931A true CN117424931A (zh) 2024-01-19

Family

ID=89527253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310209104.2A Pending CN117424931A (zh) 2022-03-08 2023-03-07 基于图像交互的云计算系统及方法

Country Status (1)

Country Link
CN (1) CN117424931A (zh)

Similar Documents

Publication Publication Date Title
AU2020233755B2 (en) Controlling display performance
CN108491275B (zh) 程序优化方法、装置、终端及存储介质
JP7072677B2 (ja) 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体
US10019213B1 (en) Composition control method for remote application delivery
CN106713485B (zh) 云计算移动终端
RU2368940C2 (ru) Синхронизированные графические данные и данные области для систем дистанционной работы с графическими данными
JP2021170354A (ja) モバイルアプリケーションのリアルタイム遠隔制御のためのシステムおよび方法
US8769011B2 (en) Survivable browsing in virtualized desktop environment when host connectivity is lost
AU2010341605B2 (en) Systems and methods for video-aware screen capture and compression
Verbelen et al. Leveraging cloudlets for immersive collaborative applications
EP2924999A1 (en) Context-aware streaming of digital content
US11750674B2 (en) Ultra-low latency remote application access
CN109298806B (zh) 一种基于对象识别的远程快速界面交互方法及装置
CN113286191B (zh) 内容协同方法、装置、电子设备以及存储介质
US20180295158A1 (en) Displaying group expressions for teleconference sessions
US11792245B2 (en) Network resource oriented data communication
CN111970565A (zh) 视频数据处理方法、装置、电子设备及存储介质
CN104685873A (zh) 编码控制设备以及编码控制方法
CN117611350A (zh) 一种应用于保险方案的同步交流方法及系统
CN113973224B (zh) 媒体信息的传输方法、计算设备及存储介质
CN116758201B (zh) 三维场景的渲染处理方法、设备、系统及计算机存储介质
CN114830615A (zh) 数据分发系统及数据分发方法
CN117424931A (zh) 基于图像交互的云计算系统及方法
CN109388457B (zh) 一种多场景的远程快速界面交互方法及装置
EP1821490A1 (en) Method for transmitting graphical data to a thin client

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