CN120035981A - 跨平台的云操作系统及其方法 - Google Patents
跨平台的云操作系统及其方法 Download PDFInfo
- Publication number
- CN120035981A CN120035981A CN202380012535.8A CN202380012535A CN120035981A CN 120035981 A CN120035981 A CN 120035981A CN 202380012535 A CN202380012535 A CN 202380012535A CN 120035981 A CN120035981 A CN 120035981A
- Authority
- CN
- China
- Prior art keywords
- data
- local terminal
- interface
- local
- computing device
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种设置在远程计算设备中的云操作系统,所述远程计算设备与本地终端通过网络关联并且以所述本地终端作为用户操作端,所述云操作系统包括:基础内核,用于根据请求来调用所述远程计算设备的物理和/或虚拟化的硬件资源;运行时库,基于所述基础内核以提供至少一个的操作系统平台的运行时环境;接口服务模块,所述接口服务模块对应所述运行时库以提供应用程序接口;应用服务模块,用于向所述本地终端提供应用程序的界面和服务对接。
Description
本发明涉及基于云计算的操作系统及其方法,属于软件和通信技术领域。
智能终端,比如智能手机、汽车中控设备、智能穿戴设备、智能家电等,已经成为人们日常形影不离的网络服务终端。这些智能设备的操作系统不仅类型不同而且版本差异大、碎片化严重,导致开发、安装、升级和使用用户应用程序时需要兼顾各类型各版本的操作系统平台的要求和习惯,给程序开发者和用户带来越来越多的困扰。另一方面,各种智能终端的硬件配置和更换周期均差异较大,难以同步提升用户体验。比如,由于日益体积臃肿APP,需要更频繁地更换智能手机整机以获得更多本地存储容量,但手机的其他硬件的升级却性能过剩,造成浪费。又比如,汽车中控或智能家电的更换频率低,而其中运行的需要人机交互的用户应用程序的升级频率和获得的体验也远落后智能手机的同类程序。
因此,有需要一种跨平台的基于网络的操作系统,可以兼容各种智能终端使用,提供统一的用户应用程序生态链,且用户体验丰富、程序开发简易。另外,得益于新一代移动通信技术的持续发展以及网络基站设施的全面覆盖,智能终端与外部服务器之间的数据互联更加快速、低延迟和稳定,为基于网络搭建的操作系统提供技术基础和运作保障。
本发明提供跨平台的云操作系统及相关的方法、浏览器、存储介质、终端、服务器等,旨在至少解决现有技术中存在的技术问题之一。
本发明一方面涉及一种云操作系统,设置在远程计算设备中但不部署在本地终端,所述远程计算设备与本地终端通过网络关联并且以所述本地终端作为用户操作端。所述云操作系统包括:基础内核,用于根据请求来调用所述远程计算设备的物理和/或虚拟化的硬件资源;运行时库,基于所述基础内核以提供至少一个的操作系统平台的运行时环境;接口服务模块,所述接口服务模块对应所述运行时库以提供应用程序接口;应用服务模块,用于向所述本地终端提供应用程序的界面和服务对接。
本发明另一方面涉及一种远程界面生成方法,用于所述云操作系统。其中,所述远程界面生成方法包括以下步骤:建立远程计算设备与本地终端之间的网络关联并且以所述本地终端作为用户操作端;从所述本地终端获取用户账号和硬件配置参数,所述硬件配置参数包括本地操作系统类型、屏幕尺寸、屏幕分辨率和输入设备类型;从远程计算设备所关联的用户数据库中获取所述用户账号或本地操作系统类型所对应的界面风格和操作习惯,在远程计算设备的浏览器框架中以所获取的本地终端的屏幕尺寸或屏幕分辨率生成一浏览器窗口,配置渲染器基于所述界面风格生成界面布局,并以所述操作习惯确定所述浏览器窗口的操作手势,从而作为基于浏览器框架运行的用户应用程序的界面环境;截取所述浏览器窗口的界面图像并传输至所述本地终端作为界面图像显示。
本发明另一方面涉及一种界面图像传输方法,可用于上述的云操作系统。所述界面图像传输方法包括以下步骤:在本地终端和远程计算设备之间建立操控数据交互连接,其中所述远程计算设备的至少一部分界面的改变是由交互连接的本地终端发送的操控数据引起;在至少一时段内保持所述远程计算设备的界面图像向所述本地终端的传输连接;根据所述远程计算设备向所述本地终端传输的界面图像的传输间隔,对所述远程计算设备向所述本地终端的待传送的界面图像进行动态调整,所述动态调整包括:确定在一时段内出现低于间隔阈值的图像传输后,在下一时段内,减少图像传输数量和/或减少所述至少一部分的界面图像的质量。
本发明另一方面涉及一种远程浏览器,运行于上述的云操作系统。所述远程浏览器包括:客户端单元,用于远程浏览器与云操作系统运行的其他应用程序通信,并且与本地终端通信,以获取本地终端和远程计算设备的数据;界面图像获取单元,用于从远程浏览器运行的基于网页的用户应用程序的用户界面中获取至少一部分界面图像;其中,客户端单元和界面图像获取单元分别与云操作系统中的图像交互服务程序连接,所述图像交互服务程序实施上述的远程界面生成方法。
本发明另一方面涉及一种本地浏览器,运行于本地操作系统。所述本地浏览器包括:客户端单元,用于本地浏览器与本地操作系统运行的其他应用程序通信,并且与远程计算设备通信,以获取本地终端和远程计算设备的数据;显示组件,用于对来自远程计算设备的界面图像进行显示;与所述显示组件连接的图像交互服务单元,用于实施上述的界面图像传输方法。
本发明另一方面涉及一种数据传输方法,用于云操作系统,所述云操作系统部署在远程计算设备中,所述远程计算设备与本地终端通过网络关联并且以所述本地终端作为所述云操作系统的用户操作端和系统界面显示端,所述本地终端和所述远程计算设备分别设有一个或多个客户端单元,所述远程计算设备设有常驻后台运行的代理单元。所述数据传输方法包括以下步骤:通过订阅协议传输通道,使设置在所述本地终端或所述远程计算设备的客户端单元通过所述代理单元发布一个或多个数据消息包,以允许设置在所述本地终端或所述远程计算设备的预先订阅所述数据消息包的一个或多个另外的客户端单元拉取所述数据消息包以完成所有数据消息包的消费。
本发明另一方面涉及一种基于上述的云操作系统的数据重定向方法,包括以下步骤:可选地基于长链接网络协议,建立本地终端与远程计算设备之间的通信连接,获取与本地终端连接的第一通信对接地址,并发送本地终端标识至远程计算设备;采用所述本地终端标识建立所述远程计算设备与第三方服务器之间的通信连接,并获取与第三方服务器连接的第二通信对接地址;将所述第一通信对接地址和所述第二通信对接地址修改为一致,使所述远程计算设备与第三方服务器之间的至少一部分数据传输重定向为本地终端与第三方服务器之间的数据传输。
本发明另一方面涉及一种数据重定向方法,基于上述的云操作系统,其中第一本地终端和第二本地终端分别作为第一远程计算设备和第二远程计算设备的至少一个用户的操作端。所述数据重定向方法包括以下步骤:根据第一远程计算设备和第二远程计算设备之间建立的通信连接,确定第一本地终端向第二本地终端发起的直接通信连接的事件;从第一本地终端与第一远程计算设备之间的数据连接,获取与第一本地终端连接的第一通信对接地址;从第二本地终端与第二远程计算设备之间的数据连接,获取与第二本地终端连接的第二通信对接地址;将所述第一通信对接地址和所述第二通信对接地址修改为一致,使所述第一远程计算设备与所述第二远程计算设备之间的至少一部分数据传输重定向为第一本地终端与第二本地终端之间的数据传输。
本发明另一方面涉及一种数据缓冲方法,用于上述的云操作系统。所述数据缓冲方法包括以下步骤:在本地终端和远程计算设备中通过网络传输的多个节点之间建立一个或多个数据缓冲区;根据所述节点的历史接收数据,在数据缓冲区中补全生成连续的数据,用于从所述数据缓冲区读取数据的节点连续地执行数据读取。
本发明另一方面涉及一种代理服务方法,用于上述的云操作系统,其中,所述远程计算设备包括云服务器和在所述云服务器中生成的至少一个虚拟机。所述代理服务方法包括以下步骤:根据本地用户终端的所属用户账号,从云服务器中的用户数据库获取所述用户账号对应的云操作系统数据和应用程序存储数据,用于向用户账户分配对应的具有所述云操作系统数据和应用程序存储数据的至少一个虚拟机,并提供多个虚拟机之间的系统调度;向每个虚拟机提供用于本地终端与该虚拟机通信的代理单元,并在多个虚拟机的代理单元之间交换数据传输包。
本发明另一方面涉及一种基于上述的云操作系统的用户应用程序的生成方法,所述方法包括以下步骤:通过所述应用服务模块在远程计算设备中提供应用商城客户端,所述应用商城客户端与应用商城服务端连接以获取用户应用程序的图标和安装链接;接收所述本地终端用户操作所触发的新用户应用程序的新增请求,通过所述应用商城服务端获取图标和安装链接;从用户数据库获取与用户账号关联的所述新用户应用程序的存储数据;基于应用服务模块在远程计算设备中以所述安装链接载入所述的新用户应用程序,并导入所述存储数据。
本发明另一方面涉及一种基于云操作系统的输入方法,其中所述云操作系统设置在远程计算设备中,所述远程计算设备与本地终端通过网络关联以传输界面图像至所述本地终端作,并且以所述本地终端作为用户操作端。所述输入方法包括以下步骤:采集用户在所述本地终端的用户输入操作,所述用户输入操作包括用户语音或本地界面上的操作点;在所述远程计算设备中,将所述用户输入操作转换成语音识别词句或运行界面的操作指令; 基于所述语音识别词句或所述操作指令触发输入面板,生成第一语言数据;从远程词库中检索与所述第一语言数据关联的第二语言数据,以在所述运行界面呈现第一语言数据和/或第二语言数据;其中,所述远程词库从所述本地终端的本地词库接收本地输入数据,并且所述远程词库与用户数据库中存储的用户输入数据同步。
本发明另一方面涉及一种用户应用程序的打开方法,用于上述的云操作系统。所述用户应用程序的打开方法包括以下步骤:捕捉用户在所述本地终端的用户输入操作,所述用户输入操作包括用户语音指令或本地界面上的操作点;在所述远程计算设备中,判断所述用户输入操作在当前第一用户应用程序的运行界面中的操作对象;确定所述操作对象与第二用户应用程序关联,在捕获到允许所述第二用户应用程序启动的消息后,生成所述第二用户应用程序的运行界面,并允许叠加覆盖所述第一用户应用程序至少一部分界面,且允许所述第一用户应用程序保持运行。
本发明另一方面涉及一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施上述的任一方法。
本发明另一方面涉及一种移动计算终端,包括:与云服务器连接的网络通信模块;用于处理远程计算设备所发送的界面图像数据的图像处理器;用于显示所述界面图像数据的屏幕;所述的计算机可读存储介质。
本发明另一方面涉及一种云计算服务器,包括:至少一个远程计算设备,所述远程计算设备包括一个或多个虚拟机;与所述一个或多个虚拟机连接的总代理服务中心,用于进行多个虚拟机之间的系统调度以及云操作系统数据分配;所述的计算机可读存储介质。
因此,本发明提供了整套的跨平台的云操作系统的解决方案,可以兼容各种智能终端使用,提供统一的用户应用程序生态链,且用户体验丰富、程序开发简易。本发明还提供基于云操作系统的各种方法,实现本地和远程之间的稳定和高效的界面交互及数据传输。
图1示出一些实施例中的根据本发明的云操作系统的架构示意图。
图2示出实施例中的云操作系统的界面生成单元与各种本地终端的关联。
图3示出实施例中的云操作系统的界面生成单元与本地终端的交互。
图4示出实施例中的本地终端的云操控桌面的组成部分以及云操作系统的图像交互关联。
图5示出实施例中的云操作系统对应各种类型终端生成界面和布局界面的方案。
图6示出实施例中部署在云服务器的基于云操作系统对应各种本地终端生成各种界面。
图7示出实施例中的云操作系统的通用驱动重定向。
图8示出实施例中的云操作系统的驱动重定向的实例。
图9示出实施例中的本地终端与云服务器之间的传输方法。
图10示出实施例中的本地终端与云服务器之间的传输方法细节。
图11示出实施例中的本地终端与云服务器之间的定位数据的传输方法细节。
图12示出实施例中的本地终端与云服务器之间的用户应用程序数据的传输方法。
图13示出实施例中的本地终端与云服务器之间的多媒体数据的重定向传输方法。
图14示出实施例中的用户应用程序的上架过程。
图15示出实施例中的用户应用程序的上架实例。
图16示出实施例中的用户应用程序的上架和安装方法流程。
图17示出实施例中的用户应用程序的功能融合方法。
图18示出实施例中的本地终端与云服务器之间的远程输入法。
图19示出实施例中的基于云操作系统的用户应用程序的界面切换。
图20示出实施例中的基于云操作系统的多个用户应用程序之间的打开和切换。
图21示出实施例中的基于云操作系统的远程用户应用程序触发调用本地应用程序。
以下结合图1至图21,在以多个示例性的实施例中对本发明的整套技术方案所涉及的终端、设备、系统、架构、方法、流程及各个软硬件部分进行详细的描述。
1. 云操作系统的部署和架构
参照图1,根据本发明的云操作系统不部署在本地终端而是设置在远程计算设备。远程计算设备与本地终端通过网络关联并且以所述本地终端作为用户操作端。
1.1本地终端与远程计算设备
在一些实施例中,本地终端具有显示屏幕、网络通信硬件和本地操作系统。具体地,本地终端可以包括跨操作系统(比如,安卓、IOS、Windows、Linux)平台的智能手机、平板电脑、便携电脑、游戏机、汽车中控设备、智能家电或其他可联网的具有显示屏的运算终端。在一些实施例中,远程计算设备可以包括云计算服务器(简称云服务器)、虚拟机、容器和个人计算机中的任一者或多者。优选地,根据本发明的云操作系统部署在云服务器,而云服务器生成至少一个虚拟机,用于与用户的本地终端交互。此外,在一些实施例中,至少一部分的云操作系统可以部署在虚拟机或容器中。下文主要以远程计算设备实施为云服务器和虚拟机的方式来描述本发明的技术方案。应理解,在本发明技术方案体系内,虚拟机可以随时由容器或物理计算设备替换来实施本发明的方案。
云服务器在基于云集群架构的层面可以包括基础设施、计算服务器、调度器、自动化组件、网络管理器等。云集群架构可以支持分布式冗余的多个服务器,因此云服务器还可以由融合云端的各种硬件资源整合而成,为多个云操作系统提供分布式的物理运行环境。
具体地,基础设施是云服务器的硬件和软件的基础架构,其包括计算机硬件(比如,CPU、内存、硬盘、显卡、交换机等)、云计算底层操作系统、数据库或其他软件组件。计算服务器通过虚拟化、集群技术进行资源整合,还通过云端控制平台按需生成相关主机资源。具体地,通过虚拟化技术,将计算资源和存储资源分解为小型的、独立的虚拟机,使其可以独立地运行和管理。计算服务器一般安装有云计算机软件,还优选地部署有总代理服务中心。自动化组件用于实施自动化重复性的工作,例如负载均衡、备份和恢复等。网络管理器提供云计算网络服务,连接云服务器和本地终端的网络通道,还可被总代理服务中心调动以对整个云集群架构的所有计算服务器、共享存储、网络进行管理。优选地,云服务器提供稳定的、具有备份同步机制的、高安全级别的用户数据库,其对应每个用户账号划分数据存储空间,且能够被总代理服务中心调动。
云服务器与本地终端通过通信设备联网,所采用的联网方式可以是有线连接、无线连接、或者其任意组合。具体地,在本地终端与云服务器之间可以采用移动通信(优选采用4G、5G或下一代技术的移动通信)、广域网或以太网等通信网络。在一实施例中,本发明的技术方案可以涉及一种用于云操作系统的网络切换的方法,包括:根据信号强度和/或通信延迟,触发本地终端切换通信网络或云服务器的通信地址。在一实施例中,可以通过运行场景、用户指令或定时的方式触发本地终端监测当前连接的第一通信通信网络(比如5G网络)的信号强度,还可以通过本地终端后台运行Ping命令获取云服务器的第一网络地址的通信延迟;当信号强度低于一信号强度阈值(阈值取值在-100dbm至-75dbm之间)或者通信延迟大于一延迟阈值(阈值取值在100ms至200ms之间),可以切换至网络频率更低的第二通信通信网络(比如4G网络),或者切换至云服务器的第二网络地址。
1.2 云操控桌面
在一些实施例中,本地终端可以包含和运行各种类型(比如,Android、iOS、Windows、Linux等)的本地操作系统(OS)。本地操作系统可以在基础模式和云计算模式之间切换。在操作系统的基础模式下,可以仅运行基本的通信功能(比如,电话通话、收发短信)和本地基础应用程序(比如,浏览器、摄像、音视频播放器);在云模式下,通过高速网络,本地终端可以基于云操作桌面与云服务器中部署的云操作系统交互,以体验丰富的软硬件资源和用户应用程序(User APP,本文简称UAPP)。
在一些实施例中,云操作桌面包括:界面控件或插件,基于浏览器单元提供用户操作界面和与该界面关联的功能扩展;本地访问单元,所述本地访问单元与所述界面控件或插件连接,并且用于捕获用户的实时操控数据以及访问本地终端的本地应用程序的信息和硬件信息;一个或多个服务单元,所述服务单元与所述界面控件或插件连接,用于本地与远程之间的各种交互功能和方法流程;一个或多个客户端单元,所述客户端单元分别与所述服务单元和所述本地访问单元连接,用于与远程计算设备中的代理服务程序通信以及传输。服务单元和客户端单元可以实施为子程序、程序模块等形式。
云操控桌面的实施形式包括独立APP(比如是,原生型APP、系统级内置APP或者是需要安装的独立APP)、Web APP(比如是基于HTML5框架的JavaScript(简称JS)应用程序)或者是基于本地OS中的应用程序(比如浏览器)中的插件程序,等等。
参照图2和图3,在一实施例中,云操控桌面实施为原生型APP(Native App)或者混合型APP(Hybrid App),云操控桌面可以包含浏览器单元、本地访问单元、一个或多个服务子程序以及一个或多个客户端子程序。浏览器单元可以是集成在云操控桌面APP中的(网页)浏览器框架或浏览器子程序,其中设有各种浏览器控件和插件。服务子程序运行优化的本地与远程间的交互算法,比如多个服务子程序中的图像交互子程序对接浏览器单元中的界面控件以实现界面图像交互,用于本地终端和云服务器虚拟机之间传输的图像进行筛选、切片、压缩、对比、整合或者并行处理等工作。应理解,在本实施例中,其他服务子程序还用于实施本地和远程之间的各种操控交互、界面图像传输和显示、数据重定向、数据动态调整等方法。本地访问单元可以实施为子程序,用于调用基于本地OS的本地应用程序接口(Local API)。本地访问单元还可以对接云操控桌面外部的本地管理单元,用于获取本地数据,其中本地管理单元可以实施为本地终端的后台服务程序,其向云服务器后台运行的设备监控程序保持传输本地数据。而客户端子程序与本地访问单元对接,用于读取本地终端的硬件的传输数据。客户端子程序中实施的通信方法可以让云操控桌面与云服务器的服务程序之间建立网络通信,然后通过本地访问控件读取网络硬件接收到云服务器的通信数据。
参照图4,在一实施例中,云操控桌面实施为基于本地终端的浏览器(框架)中运行的Web APP、插件程序等。浏览器框架中的云操控桌面同样包括界面控件,用以与虚拟机的远程界面进行图像交互。此外,云操控桌面可包含图像交互服务子程序,用于本地终端和云服务器虚拟机之间传输的界面图像进行切片、压缩、对比、整合或者并行处理等工作。此外,在另一个实施例中,还可以通过其他插件,将其他服务子程序插入到浏览器应用程序中,以与浏览器应用程序中的云操控桌面对接,其中,通过本地浏览器框架中的JS引擎(比如,V8、WebKit等)解释该服务子程序中的脚本,以调用Local API或者来自WEB服务器的Web API,从而实施本地和远程之间的各种操控交互、界面图像传输和显示、数据重定向、数据动态调整等方法。
可以理解,上文和下文提及的API可定义在调用应用程序和提供服务、提供数据或者执行操作或计算的其他软件代码(例如,操作系统、库存程序、函数)之间传递的参数。API可实现为程序代码中的一个或多个调用,这些调用基于在API规范文档中所定义的调用约定通过参数列表或其他结构来发送或接收一个或多个参数。参数可为常数、键、数据结构、目标、目标类、变量、数据类型、指针、数组、列表或者另一个调用。API调用和参数可在任何编程语言中实现。编程语言可定义编程者将用以访问支持API的功能的词汇和调用约定。
1.3云操作系统基本架构
参照图1,在一些实施例中,根据本发明的云操作系统包括基础内核、运行时库、接口服务模块和应用服务模块。
基础内核包括进程管理、驱动程序、内存管理、虚拟文件系统等,以根据请求来调用云服务器的物理和/或虚拟化的硬件资源。云操作系统的基础内核由云服务器的底层操作系统的内核构成,优选为Linux内核。
运行时库基于基础内核以提供各种的操作系统平台的应用程序的运行时环境。在一实施例中,运行时库是一种计算机程序库,能被各种操作系统平台的编程语言的编译器用来实现该编程语言内置函数,以提供该编程语言的程序运行时(或执行)支持。优选地,根据本发明的云操作系统默认设有Linux运行时库之外,还可以安装和提供Android、Windows、或macOS的运行时库,从而可以在云操作系统中运行Android、Windows、或macOS的应用程序,尤其运行各种平台各种内核的浏览器框架(比如,Safari、Edge、Firefox、Chrome、开源的Chromium等)。
接口服务模块对应运行时库以提供应用程序接口(API)。接口服务模块还可以包括用于解释和执行UAPP的代码(比如JS脚本代码)的解释器、引擎(比如,V8、WebKit等)或运行时模块(比如,Node.js或定制的精简版JS运行时)。此外,接口服务模块还可以提供Web API,用于从Web服务器(Web Server)获取网络服务、资源或功能,如图12所示。
应用服务模块向本地终端提供操控界面服务和UAPP服务,并提供这些服务在本地和远程之间的对接。应用服务模块包括:通信单元、设备监测单元、界面生成单元、云操控对接单元和驱动对接单元,其中这些单元可以实施为后台服务程序、子程序、程序模块等形式。
通信单元用于本地终端与云服务器的虚拟机之间,以及云服务器中的与本地终端关联的多个设备(或虚拟机)之间的通信。下文将在第4部分以多个实施例详细描述数据传输方法。
设备监测单元获取本地终端的硬件参数和实时运行状态数据。参照图3,在一实施例中,设备监测单元可以实施为云服务器后台服务的设备监控程序,在本地终端与远程计算设备之间的认证连接后,获取本地终端的硬件配置参数(网络类型、内存大小、储存容量、处理器类型、多媒体设备类型等)、本地OS类型(比如,iOS、安卓、Windows、Linux、轻量级物联网操作系统等)和版本、屏幕尺寸、屏幕分辨率、显示刷新率、输入设备的类型(比如,触控、鼠标、键盘、录音设备、操作器等)。设备监测单元还接收本地应用程序(包括本地OS内置程序和本地应用程序)的当前状态和数据,比如网络通信质量、本地性能、本地应用程序动作数据、地理定位数据、用户指令数据等等。
参照图3、图5和图6,界面生成单元根据本地终端的硬件参数生成UAPP的运行界面。在一些实施例中,界面生成单元根据用户账号所对应的界面风格和预设的操作习惯,且基于设备监测单元所获取的硬件配置参数生成一界面环境,用于呈现UAPP,其中所述UAPP的运行界面被云服务器的虚拟机后台服务程序截获界面图像后传输至本地终端的云操控桌面。界面生成单元可以基于运行时库中的界面管理器生成UAPP的运行界面。优选地,界面生成单元运行在浏览器框架中,通过浏览器的渲染器和解释器(或引擎)生成UAPP的运行界面。下文将在第3部分以多个实施例详细描述界面生成方法。
云操控对接单元被后台服务程序调用以从本地终端实时接收用户的操控数据(比如触摸屏、鼠标、键盘等设备的操作数据),并将其转换成云服务器中的虚拟机的操控数据。
驱动对接单元响应UAPP的硬件资源请求,使远程计算设备的用于硬件执行的源数据重定向至本地终端的硬件。参照图7,在一些实施例中,本发明涉及一种驱动重定向方法,包括以下步骤:响应UAPP通过API发起硬件资源请求,调用第一数据转换程序生成源数据以缓存在内存区,驱动对接单元从远程计算设备的内存区中对源数据进行捕获,该源数据是由驱动程序触发远程计算设备硬件将要从内存区接收的数据(比如,显卡驱动程序需要读取的位图(bitmap)、声卡驱动程序需要读取的标准数字音频文件(wav)),然后将源数据通过远程侧数据转发单元(加压及)转发至本地终端;响应驱动对接单元的指令,本地终端后台的服务单元通过API发起硬件资源对接,调用第二数据转换程序,通过本地侧数据转发单元接收(及解压)所述源数据,替换作为第二数据转换程序的输出数据,并通过本地驱动程序触发本地硬件执行所述源数据。优选地,第一和第二数据转换程序是相同类型和功能的程序。同理,从本地终端向远程计算设备方向的驱动重定向方法可以包括以下步骤:响应UAPP通过API发起硬件资源请求,使驱动程序触发远程计算设备硬件采集空白源数据,调用第三数据转换程序将源数据生成空白文件以缓存在内存区;响应驱动对接单元的指令,同步使本地终端的驱动程序触发本地硬件采集源数据,调用第四数据转换程序将源数据生成目标文件,以被数据转发单元转发至远程计算设备,并且替换所述的空白文件为目标文件;使UAPP获取该目标文件。优选地,第三和第四数据转换程序是相同类型和功能的程序。
参照图8,在一个具体的实施例中,云服务器的虚拟机中运行一音频应用程序(Voice APP),同时本地终端显示Voice APP的界面以允许用户远程操作Voice APP。当本地终端的用户以交互方式触发Voice APP播放存储单元中的音频文件(比如mp3文件)时,Voice APP调用API触发音频解码器解码得到的wav音频流暂存在内存区,其原本用于虚拟机的驱动程序调用虚拟机硬件播放,实际上会被转发至本地终端。由于驱动对接单元同步发送指令调用本地终端后台的服务单元通过API触发本地音频解码器工作,而本地音频解码器实际上没有解码出wav音频流,而是通过本地侧的数据转发单元使来自远程的wav音频流数据重定向为本地音频解码器的输出结果,从而供本地OS的驱动程序触发硬件进行播放。继续参照图8,在另一个具体的实施例中,当用户以交互方式触发Voice APP进行本地录音时,
Voice APP通过API发起硬件资源请求,使驱动程序触发虚拟机的硬件进行录音(实际上录音得到的是空白的音频流),调用虚拟机中的编码器将源数据生成空白文件以缓存在内存区;响应驱动对接单元的指令,同步通过本地API使本地终端的驱动程序触发本地Mic硬件录音得到wav音频流,调用编码器生成加压的音频文件(比如mp3文件),以被数据转发单元转发至远程计算设备,并且替换所述的空白文件;然后使Voice APP获取该目标音频文件,完成录音文件的储存。
在一些实施例中,还可以通过本地和远程的浏览器框架之间的交互来实现驱动对接,下文将在第2部分以实施例进行详细描述。
可以理解,基于本地终端与远程计算设备之间基于网络搭建的跨平台系统环境,本发明的云操作系统使得传统操作系统架构中的应用程序框架层简化和调整为接口服务模块,且定制了应用服务模块,从而实现本地终端与远程计算设备之间的操控、硬件资源和界面的交互,提高程序运行效率和保证用户远程操作体验。
在这些实施例中,本发明的云操作系统的特点在于,至少一部分的云操作系统部署在云服务器、虚拟机和容器中的任一者或多者,比如云操作系统的基础内核由云服务器和虚拟机的操作系统内核提供,接口服务模块和运行时库可以在虚拟机中安装和提供,应用服务模板可以在虚拟机和/或容器中部署。容器(或称为云服务容器)和虚拟机都是基于虚拟化技术,方便生成和迁移。虚拟机是通过虚拟化硬件来创建一个完整的本机操作系统和硬件环境,而容器则是在计算设备(也可以是虚拟机)创建一个隔离的运行环境,不需要模拟硬件,更加轻量级,启动速度更快,资源占用更少,因此更适合于部署轻量级应用程序。因此,本发明的云操作系统能够依靠庞大的服务器算力,能够为每个用户提供跨平台的多个设备环境运行UAPP,且使UAPP的开发过程更加灵活、高效和统一。
在这些实施例中,本发明的云操作系统的特点还在于,在远程计算设备向本地终端传输界面图像以用作用户在本地终端操控UAPP。相对于传输界面录屏视频,传输界面图像的方案节省网络带宽,且无需本地终端耗费算力进行视频解码,而且高清图像的压缩算法成熟,从而在用户使用云操作系统时能获得清晰的界面视感,又能保持流畅的操控反馈体验。
2.浏览器框架
参照图9,基于云操作系统,可以为云服务器中生成的每个虚拟机提供远程浏览器框架(或Web浏览器框架)。相应地,在本地终端的本地OS可以自带本地浏览器框架,以与远程浏览器框架交互。无论远程还是本地的浏览器框架,其基础架构都可以包括浏览器界面、浏览器内核和后端服务层。浏览器界面用于显示页面或窗口。浏览器内核可以包括浏览器引擎和用于呈现页面的渲染引擎,其中,浏览器引擎可以是V8、WebKit等,渲染引擎可以包括HTML解释器、CSS解释器和布局(layout)。一般,Safari浏览器的内核和渲染引擎是WebKit;而Chrome/Chromium/Edge浏览器的内核为Chromium,渲染引擎是Blink(WebKit的分支)。后端服务层用于连接网络、数据存储或通过API调用本机服务。
优选地,参照图10,后端服务层可以设有支持JS在浏览器外运行的后端运行时模块(比如,JS运行时),比如,可以在浏览器之外采用V8引擎运行JS脚本以实现诸如文件系统、模块、系统API、网络通信、常规应用程序等功能。后端运行时模块可以整合现有的JS运行环境工具(比如,Node.js)或者整合定制的保留特定功能的轻量化JS运行时。在一个实施例中,后端运行时模块可以包括JS引擎、本地模块、标准库,可以直接调用Native API。
2.1 本地浏览器
一般,大部分智能平台的本地终端内置的浏览器可以配置成与云操作系统配合。如果本地浏览器不具备合适的浏览器引擎,可以安装额外的工具包以实现基于特定浏览器引擎的本地运行环境,从而配置一个与本发明的云操作系统配合的本地浏览器。
在一些实施例中,与本发明的云操作系统配合的本地浏览器可以包括:客户端单元,用于本地浏览器与本地操作系统运行的其他应用程序通信,并且与远程计算设备通信,以获取本地终端和远程计算设备的数据;显示组件,用于对来自远程计算设备的界面图像进行显示;与显示组件连接的图像交互服务单元,用于实施界面图像传输和交互方法。具体地,显示组件可以包括WebView控件,能够兼容Linux、安卓、平谷和谷歌等本地系统和浏览器。本地浏览器框架提供后端运行时模块,支持运行客户端单元和图像交互服务单元,此外,还可以运行云操控桌面的以JS脚本编写的各个子程序、程序模块等。
2.2 远程浏览器
在一些实施例中,由于本发明的云操作系统可以提供多个运行时库(比如Android、Mac),云服务器中生成的虚拟机中可以内置各种浏览器(比如,Chrome/Chromium、Safari),以匹配本地浏览器的内核类型(比如,Chromium、WebKit),获得更好的兼容性和UAPP运行效率。此外,由于Chromium内核与WebKit内核同源,可以在云服务器生成的虚拟机中默认内置一个基于Chromium内核的Linux版本的浏览器,使得在虚拟机中配置的浏览器(框架)可以与云操作系统的Linux基础内核和默认运行时库匹配。
在一些实施例中,远程浏览器可以包括:客户端单元,用于远程浏览器与云操作系统运行的其他应用程序通信,并且与本地终端通信,以获取本地终端和远程计算设备的数据;界面图像获取单元,用于从远程浏览器运行的基于网页的UAPP的用户界面中获取至少一部分界面图像;其中,客户端单元和界面图像获取单元分别与云操作系统中的图像交互服务程序连接,图像交互服务程序实施界面图像传输和交互方法。远程浏览器框架提供后端运行时模块,支持运行客户端单元、界面图像获取单元和图像交互程序。
2.3 基于浏览器框架的应用服务对接
在优选的实施例中,当远程和本地浏览器框架的内核一致或匹配时,并且配置和使用相同的后端运行时模块,使云操作系统的应用服务对接和驱动重定向变得灵活和简单。例如,在远程浏览器框架运行的UAPP中调用API的脚本同样可以在本地浏览器中复用代码,以实现同步调用相同类型或功能的本地API,从而为远程运行的UAPP调用本地终端的资源提供极大的方便。
参照图7和图8,以UAPP调用本地终端的硬件资源的工作过程为例,描述通过远程和本地浏览器框架实现API和驱动重定向的方法。首先,运行于虚拟机远程浏览器框架的UAPP由渲染引擎产生页面以在浏览器界面显示,该页面作为UAPP运行界面被界面图像获取单元截图后发送到本地浏览器并显示未本地界面;然后用户基于本地界面的操控数据传送至虚拟机,以远程交互的方式操作UAPP;由于远程浏览器配置有后端运行时模块,当响应UAPP的指令脚本,通过虚拟机本机的API发起浏览器外的虚拟机的硬件资源请求(比如,音视频解码播放、开启摄像头等)时,驱动对接单元以相同的指令脚本,触发本地浏览器的后端运行时模块,以同样的API发起本地的硬件资源请求;然后使原本是虚拟机硬件资源返回的数据被本地硬件资源产生的数据替换,再返回至UAPP,由此实现UAPP调用本地终端的硬件资源的效果。
3. 界面方法
3.1 界面生成和布局
参照图2,在一些实例中,远程界面生成方法可以包括:建立云服务器与每个本地终端之间的网络关联;从每个本地终端获取用户账号和硬件配置参数,所述硬件配置参数包括本地操作系统类型、屏幕尺寸、屏幕分辨率和输入设备类型等等;在云服务器中以所获取的每个本地终端的屏幕尺寸或屏幕分辨率在分别在浏览器生成一界面窗口,从而作为UAPP的界面环境;截取界面窗口的界面图像并传输至本地终端作为界面图像显示。在本实施例中,可以使云服务器的每个虚拟机分别对应每个用户账号的本地终端生成界面。此外,参照图2和图6,可以根据本地终端的类型分配的相应的操作系统或运行时的虚拟机,比如,对应安卓系统的本地终端分配安卓或者Linux操作系统或运行时的虚拟机,使界面生成单元默认生成本地终端的界面风格。
参照图3,在一些实例中,可以通过与云操控桌面连接的本地管理单元获取本地硬件配置参数,其中本地管理单元可以实施为本地终端的后台服务程序,其向云服务器后台运行的设备监控程序保持传输本地硬件配置参数。此外,在远程计算设备的浏览器框架的渲染器设有HTML解释器和CSS解释器,以JS引擎对UAPP的在本机缓存的或者从WEB服务器接收的网页脚本文件(如图12和图13所示),生成UAPP的运行界面。具体地,显示控件所呈现的界面窗口的长宽比与本地终端的屏幕长宽比一致,而界面窗口的DPI值大于或等于本地终端的屏幕DPI,以允许使用云服务器的更高的运算能力生成高清图像或解码播放高清视频以在界面窗口中完整显示。然后,可以通过远程计算设备的浏览器框架中运行的截图的插件或子程序,将运行界面转换成界面图像(根据网络传输需要,还以进一步被压缩)。而本地终端可以提供浏览器框架,以允许运行浏览器显示控件(比如,WebView)接收界面图像以在本地终端的屏幕显示。优选地,还可以提供视频播放控件。当监测到云服务器的虚拟机的界面具有视频播放窗口时,对云服务器待传送的界面图像调整成只保留视频播放窗口的图像,而后续可以将视频流重定向至本地界面的视频控件窗口中进行播放。因此,在远程界面生成后,本地终端可以接收视频播放窗口的尺寸和位置数据,使本地的视频控件按该尺寸和位置以排布和覆盖在所接收的界面图像上。
参照图5和图6,远程界面生成方法可以包括:从云服务器的用户数据库中获取用户账号或本地操作系统类型所对应的界面风格和操作习惯,在云服务器虚拟机的浏览器框架中以所获取的本地终端的屏幕尺寸或屏幕分辨率生成一浏览器窗口,配置渲染器基于所述界面风格生成界面布局,并以操作习惯确定浏览器窗口的操作手势,从而作为基于浏览器框架运行的UAPP的界面环境。在具体的实施例中,一用户可以拥有多个本地终端,比如智能手机、智能汽车、穿戴设备和便携式PC,可以使多个虚拟机以分别对应此用户的每个本地终端的硬件配置参数生成浏览器窗口,其中同时采用同一套的CSS标准布局界面,以方便只需同一UAPP的脚本代码也能在单独的虚拟机运行环境呈现各种本地终端风格的界面。比如,同样是地图APP,在一个虚拟机可以生成满足手机的竖屏小尺寸的界面,在另一个虚拟机中生成满足车载导航的大尺寸界面。此外,参照图6,还可以在同一个虚拟机(如图6中的VM2)的浏览器框架的多个窗口分别生成本地终端风格的界面(如图6中的GUI2和GUI3),以允许同一用户账号登录虚拟机后快速访问所需的本地终端风格的界面,这对于需要切换不同的终端而又要使用同一个APP的场景,带来优秀的用户体验。例如,用户提前使用穿戴设备接收界面GUI3,并操作一个地图APP(实际运行于虚拟机VM2),通过语音提前设置导航目的地,此时地图APP切换至车载导航的地图界面GUI2并发送至用户登录的智能汽车,以方便在用户进入智能汽车时,汽车的显示屏直接显示地图APP的导航去该目的地的界面信息。所以,在开发UAPP时,实现UAPP界面生成方法的基于CSS标准的页面代码与实现UAPP功能的脚本代码分开。
3.2 界面图像传输
参照图4,在一些实施例中,用于云操作系统的界面图像传输方法可以包括以下步骤:
S001、在本地终端和云服务器的虚拟机之间建立操控数据交互连接;
S002、在至少一时段内保持所述虚拟机的界面图像向所述本地终端的传输连接;
S003、根据所述云服务器向所述本地终端传输的界面图像的传输间隔,对所述云服务器待传送的界面图像进行动态调整。
对于步骤S001,由交互连接的本地终端发送的操控数据会引起云服务器的至少一部分界面的改变。这样的操控数据可以是本地终端的输入设备(比如,触摸屏、鼠标、键盘等)引起本地的点击、移动、缩放等操控动作所产生的数据。当本地的操控数据传递到云服务器后,再分配到与本地终端已建立连接的虚拟机,从而建立本地终端操控动作与虚拟机的界面交互。本地终端的操控可以引起虚拟机的整个界面的改变,也可以引起部分界面的改变,或者引起界面后台活动的变化。
对于步骤S002,基于本地终端和云服务器的虚拟机之间的传输连接,当本地终端每次产生的操控数据发送到虚拟机时,如果引起虚拟机的界面变化,则会使得云服务器将当次的界面图像向本地终端传输。换句话说,虚拟机收到的操控数据的频率越高,一般向本地终端传输的图像越多。优选地,在本地终端和云服务器之间的界面图像的传输可以基于长链接网络协议,以兼容高频率图像传输。
对于步骤S003,对云服务器待传送的界面图像进行的动态调整包括,在一定的时段内,如果云服务器向本地终端传输图像的间隔过短(或者是图像传输过于频繁),在下一时段内,实施以下子步骤中的任一个或多个的子步骤:减少向本地终端的图像传输数量;以图像压缩的方式,减少整个或一部分的界面图像的质量;对界面图像中的动态变化的部分图像进行传输。
对于步骤S003,在一个特定的实施例中,当监测到虚拟机的界面具有视频播放窗口时,对云服务器待传送的界面图像调整成只保留视频播放窗口的图像。因为后续可以将视频流重定向至本地界面的视频控件窗口中进行播放。优选地,如果虚拟机的界面是全屏播放视频,则暂停向本地终端传送界面图像,只需直接传送视频流到本地终端播放即可。
下面通过更详细的实施例来描述用于云操作系统的图像传输方法在本地和远程各侧的界面图像传输所涉及的方法流程及其交互步骤。
3.2.1 本地侧的方法流程
用于云操作系统的图像传输方法在本地终端侧可以包括以下步骤S110至S119。
S110、启动本地终端的云操控桌面程序,同时激活本地的操控进程,以实时捕获输入设备的操控数据并向远程计算机设备(云服务器的虚拟机)传输。优选地,可以通过云操控桌面程序接入云服务器的用户信息数据库,验证用户的登录信息(比如,账号、密码、指纹数据、人脸识别数据等),用于登录到云服务器中的该用户的虚拟机且建立本地向远程的安全的加密的操控数据传输。
S120、在本地终端的后台程序中,运行数据传输进程,并激活图像数据传输的专门通道,以允许接收云服务器所传输的界面图像数据。图像数据传输通道和操控数据传输通道各自独立,以允许持续传输操控数据时传输图像数据不被网络连接干扰。优选地,图像数据传输通道被配置的传输频率低于或等于操控数据传输通道的传输频率。
S130、通过本地终端和云服务器之间的长链接,在预设时段持续从云服务器接收虚拟机的界面图像。
S140、判断所接收的图像的频次是否过快(比如两次收到图像数据的时间间隔Δtr小于预设阈值Tr),是则执行步骤S150,否则跳转执行步骤S160。
S150、根据本地终端状态,筛选接收一部分自云服务器的界面图像或者对接收到的界面图像进行筛选,用于本地终端的界面更新和显示。优选地,还可以基于本地终端的电量、网络状态、应用场景等状态,对所接收的界面图像的筛选数量做调整。比如,当本地终端运行在节能模式或者基带芯片的工作负荷超过预设值时,使图像数据传输通道的传输频率降低,从而降低功耗和发热。比如,当本地终端连接的网络带宽较低或位于待机场景时,以更长的时间间隔,间隔地选取一部分的界面图像以用于显示。在另一些实例中,当监测到本地操控数据的发送频率低于阈值ft,则间隔地选择所接收的界面图像;如果监测到没有本地操控数据发送,却接收的图像的频次过快,则以间隔更长的时间来选择所接收的界面图像,以用于本地终端的界面更新。
S160、以选取的界面图像更新到本地终端的显示界面。优选地,还可通过以下任一方式触发局部或全局更新本地终端的显示界面:定时;本地终端的应用场景(比如,网页浏览、工作办公、游戏模式等)切换;本地终端的系统状态改变;收到用户特定的刷新操作指令。
S170、判断本地终端是否产生对远程的虚拟机的操控数据(比如,云操控桌面受到用户的操控是否结束),是则执行下一步骤S180,否则返回执行步骤S130。
S180、判断本地终端和远程服务器之间的图像数据传输是否结束(比如,传输通道是否关闭),是则执行下一步骤S190,否则返回执行步骤S130。
S190、向云服务器的虚拟机同步当前的操控数据,并以虚拟机的全局界面图像同步到本地终端的界面。最后结束本次流程。
3.2.2 远程侧的方法流程
用于云操作系统的图像传输方法在远程的云服务器侧可以包括以下步骤S210至S290。
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.2.3 操控数据与图像筛选
本地终端的操控数据影响到虚拟机的界面图像的生成和传输。在一些实施例中,所述方法还可以包括以下与操控有关的基本步骤:A、根据本地操控的类型,当出现特定的操控、操控过快、异常操控等情况,使经过筛选或者调节后的操控数据再向云服务器发送,以避免云服务器产生不必要的界面图像;或者,B、根据本地终端的操控数据的发送间隔,对本地终端所接收的多个界面图像进行动态筛选,以在终端显示所筛选的界面图像或者显示至少一部分图像。基本步骤A是通过筛选本地操控数据而直接影响云服务器的虚拟机的界面变化,还可以直接影响云服务器向本地的图像传输频率,所以基本步骤A属于“主动”步骤。基本步骤B是对已接收的图像进行筛选,属于“被动”步骤。可以理解到,在本地接收的图像和远程发送的界面图像中,图像接收模块和图像传输模块都可以独立工作以进行图像筛选,同时配合上述的主动步骤A和被动步骤B,这是本发明的图像传输方法方案的灵活之处,能够兼容在各种基于操控的应用场景中进行图像传输优化。
在一些实施例中,基本步骤A可以结合到上述实施例的步骤S110中的操控进程。在这些实施例中,可以实施为以下步骤S111至S116。
S111、激活本地的操控进程,以实时捕获本地终端的输入设备的操控数据。
S112、在操控触发的时段内,捕获操控数据和进行分类。在一些实施例中,可以根据操控事件,分类成点击、双击、单指滑动、多指滑动、指纹识别动作、机身实体按键动作等等。
S113、判断是否出现特定类型的操控,或者是否出现操控过快或者操控异常,是则执行下一步骤S114,否则跳转执行步骤S115。在一些实施例中,对于每个分类,特定类型的操控可以是长时间的持续点击、远距离(比如,超过屏幕一半长度)的滑动等等。操控异常比如是频繁来回的触控拖动、多个按键同时按下等等。
S114、筛选或者调节本地终端的操控数据。在一个实施例中,对于频繁来回的触控拖动的操控事件(如图7中的虚线箭头指示),所产生的操控数据包含较多的来回拖动的路径坐标,因此,可以对操控数据进行筛选,保留该触控拖动事件中的起始触控点的坐标和末尾触控点的坐标,以避免重复操控数据引起生成反复的虚拟机界面图像。在另一个实施例中,对于远距离滑动的操控事件,同样可以只保留滑动起始点的坐标和滑动结束点的坐标记录在操控数据中。此外,对于异常的操控事件,可以直接屏蔽其产生的操控数据,避免发送至远程服务器。
S115、向远程云服务器的虚拟机发送操控数据。
S116、等待一定的时间,判断是否有下一个操控事件发生,是则返回执行步骤S112,否则结束本次流程。
在一些实施例中,基本步骤B可以结合到上述实施例的步骤S150中的操控进程。根据本地终端的操控间隔对所接收的多个界面图像进行动态筛选可以包括以下步骤:
S151、在至少一时间段内,确定本地终端的操控间隔Δtc小于第四时间阈值Tc4(优选地,第四时间阈值Tc4可以根据操控类型,取值为10ms至20ms范围);
S152、从所接收到的远程计算设备的界面图像中,至少丢弃一部分用于在本地终端显示的界面图像(如图7所示的因本地终端的频繁操控事件而重复产生的中间冗余图像),然后根据需要,可以减少本地终端向云服务器虚拟机发送的操控数据的频次。
在一些实施例中,根据本地终端的操控间隔对所接收的多个界面图像进行动态筛选还可以包括以下步骤:在至少一时间段内,确定本地终端的操控间隔Δtc大于第五时间阈值Tc5(对应于用户在普通情况下对本地终端的操控频次),则从所接收的多个界面图像中保留所有的用于在本地终端显示的界面图像;在至少一时间段内,确定本地终端的操控间隔Δtc大于第六时间阈值Tc6(对应于用户在较长时间不操控本地终端的情况),则从所接收的多个界面图像中间隔地选取用于在本地终端显示的界面图像,直至出现本地终端的下一次操控,这样可以实现本地待机的效果和减少本地终端的功耗。其中,第六时间阈值Tc6大于第五时间阈值Tc5,且第五时间阈值Tc5大于第四时间阈值Tc4。第五时间阈值Tc5的取值可以大于200ms,第六时间阈值Tc6的取值可以大于若干秒。
在一实施例中,还可以在至少一时间段内,确定本地终端的操控间隔Δtc大于第七时间阈值Tc7,则减少本地终端的显示帧率,直至出现下一次操控,其中第七时间阈值Tc7大于第五时间阈值Tc5。本实施例可以适用于本地终端长期没有被操控时(比如是阅读场景),减少本地终端的显示功耗。
在一些实施例中,所述方法还可以包括以下步骤:确定本地终端的操控点的移动幅度(或距离)超过预设的幅度阈值;在本地终端的操控点所产生的操控数据引起的云服务器向本地终端传送的多个界面图像中,保留与操控点的起始动作和结尾动作关联的界面图像,并且减少其余的用于在本地终端显示的界面图像。
此外,还可以通过本地终端的本地子程序监测用户对人机交互设备的操控频率。在优选的实施例中:当操控频率较慢(比如低于某阈值)时,可以提高云服务器向本地终端传输的图像质量和/或降低本地终端的显示器(或显示界面)的刷新率;当操控频率较快(比如高于某阈值)时,可以降低云服务器向本地终端传输的图像质量和/或提高本地终端的显示器(或显示界面)的刷新率;当操控频率过快(比如高于某阈值)时,可以传输虚拟机在该过快操控过程的最后一帧的界面图像至本地终端,然后对本地终端的过快操控过程中的其余界面图像数据不进行传输,或者以校高的压缩率对这些图像实施压缩(甚至是有损压缩)。
3.2.4 远程虚拟机和本地终端之间的交互
本地终端侧的步骤S110、S120、S130、S170、S180和S190分别和云服务器侧的步骤S210、S220、S260、S270、S280和S290有双向数据传输和数据交换。
特别地,对于步骤S160和S260之间还存在定时的同步交互,以定时在本地终端和云服务器之间同步界面图像。这样,可以避免云服务器向本地终端传输筛选后的界面图像所导致的双方的界面显示偏差。
在一些实施例中,可以通过云服务器中运行的硬件监测模块,判断本地终端导致的云服务器的硬件(含虚拟机的虚拟硬件)的运行情况(比如,网络传输质量、处理器负荷、内存占用率等)。比如,当监测到网络传输速度下降或者网络延迟增加超过阈值,则可以提高云服务器向本地终端传输的图像的压缩率,或者降低图像质量。
3.2.5 其他涉及界面图像传输的方法
在其他的实施例中,涉及界面图像传输的方法还可以包括以下步骤,以在本地终端或者云服务器中实施。
S351、在云服务器向本地终端传输界面图像之前,使本地终端的界面分辨率与云服务器的界面显示分辨率同步一致。优选地,在云服务器和本地终端之间设置用于传输至少一部分的界面图像的数据缓冲区;根据历史传输数据,在数据缓冲区中补全生成连续的至少一部分的界面图像的数据,用于从数据缓冲区读取数据的应用程序连续地读取界面图像数据。
S352、判断是否出现网络问题(比如,当监测到网络传输速度下降或者网络延迟增加超过阈值)或者切换到高速图像交互模式,是则执行下一步骤S353。
S353、判断是否收到界面分辨率调节指令。是则执行步骤S354,否则执行步骤S355。
S354、降低界面显示分辨率。
S355、降低所传输的界面图像的分辨率。
4. 数据传输
除了传输界面图像和操控数据的专属传输通道,本发明的云操作系统的数据传输机制还需要应对传输用户文件、本地应用程序数据、通话数据等,下面在一些实施例中详细描述。
4.1 基础传输方法
本地终端和云服务器之间的直连传输的应用层通信协议的框架可以包括但不限于HTTP、Socket、Webtransport等。优选地,本地终端和云服务器之间采用WebSocket、HTTP3.0等通信协议。在本地终端和云服务器之间的传输可以复用了HTTP协议的握手通道。此外,还可以扩展性地允许多路复用,比如图4中的图像交互程序可以是基于WebSocket协议的通道进行图像数据传输。在一个基于WebSocket协议的图像传输实例中,在虚拟机中以Socket作为主线程,用于处理图像源上传请求以及管理WebSocket会话。当Socket主线程收到图像上传请求时,服务端自动创建WebSocket服务,用于发送图像数据。WebSocket子服务收到图像浏览请求时,开始向本地终端的云操控桌面发送图像数据。
在优选的实施例中,用于本发明的云操作系统的数据传输方法可以包括以下步骤:通过操控数据直连通道,从本地终端向远程计算设备传输用户操控数据,通过操控数据直连通道具有第一传输优先级;基于长链的网络通信协议建立的图像数据直连通道,以从远程计算设备向本地终端传输界面图像,图像数据直连通道具有第二传输优先级;订阅协议传输通道具有第三传输优先级,其中第一传输优先级高于第二传输优先级或第三传输优先级。
4.2 基于订阅方式的数据传输方法
参照图9至图11,在一些实施例中,本地终端和云服务器之间采用基于订阅的通信协议(比如,MQTT)。基于订阅的通信方式使得本地终端和云服务器之间、云服务器内部的虚拟机、甚至是浏览器之间的数据交换变得更加简单和高效,还允许服务端主动向客户端推送数据。此外,基于订阅的通信方式可以以极少的代码和有限的带宽,且以异步通信,为连接远程计算设备提供实时可靠的消息服务。在这些实施例中,本地终端和远程计算设备(比如,云服务器、虚拟机或容器)分别设有一个或多个客户端单元,所述远程计算设备设有常驻后台运行的代理单元。可以通过订阅协议传输通道,使设置在本地终端或远程计算设备的客户端单元通过代理单元发布一个或多个数据消息包,以允许设置在本地终端或远程计算设备的预先订阅所述数据消息包的一个或多个另外的客户端单元拉取所述数据消息包以完成所有数据消息包的消费。应理解,在上述实施例中,代理单元可以设置和运行在云服务器的虚拟机中,更可以设置和运行在云服务器的云计算底层操作系统中,作为云服务器的后台服务程序。具体地,参照图9,云服务器部署的总代理服务中心还可以用于统一管理多个代理单元。
继续参照图9,在一些实施例中,本地终端包括分别设置于云操控桌面内的第一本地客户端单元和云操控桌面外的第二本地客户端单元,虚拟机包括代理单元以及设置于浏览器框架内的第一远程客户端单元和浏览器框架外的第二远程客户端单元。
可以使第一本地客户端单元或第二本地客户端单元通过代理单元发布的第一数据消息包以允许第一远程客户端单元或第二远程客户端单元拉取第一数据消息包。因此,能够实现本地终端的浏览器数据或者本地应用程序的数据被虚拟机的浏览器或者虚拟机中运行的其他程序获取(对数据消息包的消费)。
同理,可以使第一远程客户端单元或第二远程客户端单元通过代理单元发布的第二数据消息包以允许第一本地客户端单元或第二本地客户端单元拉取第二数据消息包。因此,能够实现虚拟机的浏览器数据(含UAPP运行数据)或者虚拟机中运行的应用程序的数据被本地终端的浏览器或者本地终端中运行的其他程序获取(对数据消息包的消费)。
此外,还可以使第二本地客户端单元直接获取本地数据,所述本地数据包括本地存储数据、本地应用程序数据、本地硬件数据和本地用户特征数据中的任一种或多种;并且,使第一本地客户端单元与第二本地客户端单元直接通信,以获取本地数据,并将获取的至少一部分数据生成第一数据消息包。这里的第一数据消息包可以被本地浏览器框架运行的子程序使用,也可以被发布到代理单元,供远程客户端单元拉取或消费。
例如参照图10,在一实施例中,上述的第二本地客户端单元集成到本地终端一部分后台服务,可以调用本地基础应用程序获取相片、短信、电话记录、解码数据等本地数据,然后生成数据消息包发布到代理单元,供远程客户端单元拉取或消费。参照图10,在另一个实施例中,在本地终端后台服务通过调用本地系统程序获取操控、运行状态(比如,网络状态、电量、CPU占用率等)的本地数据,可以被传输至第一本地客户端单元,然后再生成数据消息包发布到代理单元,供远程客户端单元拉取或消费。该实施例的区别在于,可以通过本地浏览器框架(或云操控桌面)中运行的子程序,根据本地数据实施各种方法流程(比如上文第3.2.1和3.2.3部分的方法)。
参照图11,在一实施例中,在远程浏览器框架中运行的地图APP发送位置请求(配以请求ID)被云操作系统的定位应用服务层所关联的本地对接单元捕捉,触发本地客户端单元发布定位数据消息包,然后在本地终端后台服务(比如,Lacation Manager)以本地定位程序或进程获取的定位数据被传输至第一本地客户端单元,然后再生成数据消息包发布到代理单元。远程客户端单元按照对应所述请求ID从代理单元预先订阅本地终端的定位数据消息,当代理单元存在该消息时,即可消费该消息并获取定位数据。其中,第一本地客户端单元所获取的定位数据可以被本地浏览器框架运行的子程序使用以在特定情况下利用该定位数据在本地接收的地图界面上生成定位点。例如,在使用地图APP进行车载导航时,如果本地终端和云服务器的网络连接受限或断开,本地浏览器框架运行的子程序可以利用网络缓存的界面图像继续进行导航地图界面显示,同时采用本地终端当前的定位数据在界面显示定位点,因此能够维持一段时间的导航体验;由于采用订阅协议的异步通信方式,当本地终端与云服务器恢复网络时,本地客户端单元恢复发送断网期间的定位数据至代理单元,从而能够推送所有导航时段的定位数据消息至远程客户端单元,供地图APP获取完整的定位数据。
此外,在一些实施例中,基于订阅方式的数据传输方法还可以包括以下步骤:使登录用户账号的虚拟机的第一或第二远程客户端单元获取远程数据,所述远程数据包括虚拟机存储数据、虚拟机硬件数据或者云服务器的用户数据库中与所述用户账户关联的数据;将获取的远程数据的至少一部分数据生成第二数据消息包。因此,能够实现虚拟机中运行的UAPP能够跨程序或跨浏览器框架,获取虚拟机外的用户数据库,或者虚拟机中的硬件数据。
此外,在一些实施例中,基于订阅方式的数据传输方法还可以包括以下步骤:使用户账号关联的多个虚拟机中的每个虚拟机的代理单元均与云服务器的总代理服务中心保持通信连接;使多个虚拟机的代理单元之间交换数据传输包,所述数据传输包包括UAPP数据以及一个或多个数据消息包;确定代理单元中的数据消息包被所述用户账户关联的多个虚拟机中的客户端单元消费完毕。因此,能够实现本发明的云操作系统环境下的多个虚拟机之间的数据传输、同步、迁移等。
4.3 数据缓冲方法
由于本发明的云操作系统的应用服务模块往往需要经过互联网对接本地终端和远程计算设备,或者需要从第三方服务器调用服务和资源,因此在网络传输的两侧可以采用优化的数据缓冲方法。
参照图12,在一些实施例中,在虚拟机的浏览器框架设有WEB页面文件缓存区,用于缓存UAPP从第三方服务器(比如,Web服务器)获取的页面文件;而本地终端的浏览器框架设有界面图像缓存区,用于缓存UAPP的界面图像。可以理解,只在云服务/虚拟机中缓存数量较多和更碎片化的页面数据(还可能含有用户的涉密信息),而本地终端只需缓存图像数据,因此不会对本地终端的存储造成压力,也方便清理缓存,而且该方案还更安全,能完全杜绝用户数据从本地缓存泄露的可能。
在另一些实施例中,根据本发明的数据缓冲方法基本包括以下步骤:在本地终端和云服务器的虚拟机中有数据传输关联的应用程序(比如本地程序和云程序)之间建立数据缓冲区;根据历史接收数据,在数据缓冲区中补全生成连续的数据,用于从数据缓冲区读取数据的应用程序连续地执行数据读取。数据缓冲区包括界面图像数据缓冲、多媒体数据缓冲、定位数据缓冲等。
在一实施例中,本地程序向云程序传输的数据先经过本地终端的数据缓冲区暂存,然后再传输到云服务器的缓冲区,再供云程序读取。在本地和云服务器的缓冲区都可以对每个数据包(设为d_n至d_n+4等)设置时间戳(设为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为例,而虚拟机中的UAPP可以是地图APP,其中定位APP向云程序地图APP发送定位数据,才能使得地图APP能正常定位本地终端的地理位置。采用本实施例的数据缓冲方法,则可以让虚拟机的地图APP能够持续获得定位数据,至少在本地终端跟云服务断开连接时,仍然不会出现地图定位漂移。同理,当云程序向本地程序传送数据时,也可以在本地终端的缓冲区生成连续数据,以避免本地程序接收的数据出现漂移。
4.4 数据重定向方法
在一些实施例中,用于云操作系统的数据重定向方法一般可以包括以下步骤:建立本地终端与远程计算设备之间的通信连接,获取与本地终端连接的第一通信对接地址,并发送本地终端标识至远程计算设备;采用本地终端标识建立远程计算设备与第三方服务器之间的通信连接,并获取与第三方服务器连接的第二通信对接地址;断开远程计算设备与第三方服务器之间的通信连接,并且将第一通信对接地址和第二通信对接地址修改为一致,使远程计算设备与第三方服务器之间的至少一部分数据传输重定向为本地终端与第三方服务器之间的数据传输。
在一些实施例中,可以从第三方服务器向远程计算设备发送的数据中截获多媒体数据(比如,视频和/或音频数据),使远程计算设备与第三方服务器之间的多媒体数据传输重定向为本地终端与第三方服务器之间的流数据传输。例如,参照图13,在一个实例中,以新闻APP为例的UAPP从门户WEB服务器调用服务和获取数据文件,其中包含新闻内容数据、网页布局、多媒体流播放地址等,当用户远程浏览至新闻APP的视频页面时,通过多媒体截取单元从视频页面获取第三方服务器的视频流播放地址。同时,使本地终端的视频控件的播放地址被重定向为所述第三方服务器的视频流播放地址,然后使本地的视频控件按新闻APP的视频页面的视频窗口的尺寸和位置排布和覆盖在本地界面。优选地,如果云服务器运行的UAPP进行全屏播放视频,则直接传送视频流到本地终端全屏播放,并暂停向本地终端传送界面图像。
在另一些实施例中,当第一本地终端和第二本地终端分别作为第一远程计算设备和第二远程计算设备的至少一个用户的操作端时,用于云操作系统的数据重定向方法可以包括以下步骤:根据第一远程计算设备和第二远程计算设备之间建立的通信连接,确定第一本地终端向第二本地终端发起的直接通信连接的事件;从第一本地终端与第一远程计算设备之间的数据连接,获取与第一本地终端连接的第一通信对接地址;从第二本地终端与第二远程计算设备之间的数据连接,获取与第二本地终端连接的第二通信对接地址;将第一通信对接地址和第二通信对接地址修改为一致,使第一远程计算设备与第二远程计算设备之间的至少一部分数据传输重定向为第一本地终端与第二本地终端之间的数据传输。优选地,至少一部分数据包括实时通话数据,因此能够实现第一本地终端和第二本地终端之间的直接通话(假如第一和第二终端具有通话功能),而无需经过远程计算设备的转发。
5. 用户数据库和总代理服务中心
用户数据库具有备份同步机制、高安全级别的特点,其对应每个用户账号划分数据存储空间。用户数据库可以对应每个用户账号储存的数据包括:用户终端列表、UAPP列表、UAPP数据、用户个人文件、用户操作习惯记录、用户Key等。
可以利用云服务器的用户数据库和通过总代理服务中心进行多个虚拟机之间的系统调度,用于向本地终端的所属用户账户分配对应的云操作系统数据和至少一个虚拟机。
在一些实施例中,用于云操作系统的代理服务方法可以包括以下步骤:根据本地用户终端的所属用户账号,从云服务器中的用户数据库获取所述用户账号对应的云操作系统数据和应用程序存储数据,用于向用户账户分配对应的具有云操作系统数据和应用程序存储数据的至少一个虚拟机,并提供多个虚拟机之间的系统调度;向每个虚拟机提供用于本地终端与该虚拟机通信的代理单元,并在多个虚拟机的代理单元之间交换数据传输包(如图9所示)。其中,多个虚拟机之间的系统调度包括:系统迁移、计算机资源调度、跨虚拟机的应用程序调度执行、或用户数据同步存储。
6. 用户应用程序(UAPP)
首先解释UAPP的工作模式或方法。参照图13,以新闻APP为例的UAPP一般包含界面布局代码和程序功能代码,当该UAPP在WEB浏览器框架中运行时,界面布局代码由渲染引擎生成界面布局,浏览器框架中的操控对接单元传递本地终端的操控指令以操作UAPP,而程序功能代码能调用本机API和Web API,从本地终端获取用户特征数据、用户个性数据、用户请求等,以发送至新闻门户的Web服务器,以获得与该用户账号关联的新闻内容、媒体流等数据,用于在新闻APP的界面中呈现用户定制的新闻内容。其中,本地客户端单元和远程客户端单元之间建立传输通道,以使本地终端的用户文件(比如本地拍摄的照片)传递到UAPP。参照上文的第2部分描述的浏览器框架的实施例,UAPP优选地基于JS脚本编写,可以采用Native APP或者尤其适合Web APP的开发方式,且能够夸多平台(比如Windows、Linux/Android、Mac/iOS)以 Electron 框架(一个跨平台的、基于 Web 前端技术的桌面 GUI 应用程序开发框架)统一开发代码,极大便利了UAPP的开发。下面以多个实施例描述基于本发明的云操作系统的UAPP方案。
6.1 生成方法
参照图14至图16,基于云操作系统运行的UAPP的生成方法包括以下步骤:通过应用服务模块在远程计算设备中提供应用商城客户端,所述应用商城客户端与应用商城服务端连接以获取UAPP的图标和安装链接;接收本地终端用户操作所触发的新UAPP的新增请求,通过应用商城服务端获取图标和安装链接;从用户数据库获取与用户账号关联的新UAPP的存储数据;基于应用服务模块在远程计算设备中以所述安装链接载入所述的新UAPP,并导入存储数据。其中,应用商城服务端可以设置在云服务器中,也可以设置在其他运营商的服务器中。
基于云操作系统运行的UAPP的生成方法,还包括以下步骤:通过应用服务模块以远程计算设备的浏览器框架提供新UAPP的运行环境、对接本地硬件资源和界面图像,并且访问用户数据库;将新UAPP的界面图像传输至本地终端的本地浏览器框架运行云操控桌面,并且根据用户配置的权限请求表,向新UAPP分配本地资源。权限请求表将在下文实施例中详细描述。
6.2 上架和安装
参照图14至图16,结合图16中的步骤S411-S416,UAPP的上架方法包括以下步骤: S411、获取UAPP的上架请求资料,所述上架请求资料包括图标文件、WEB地址、权限请求表、所需浏览器内核的类型和原代码;S412、确定浏览器内核类型;S413、确定上架请求资料符合应用程序审核规则,然后将图标文件、WEB地址和原代码打包并上架至应用商城服务端,并分配安装链接。如果不能通过审核,则上架失败。
参照图14,在一些实施例中,上架请求资料还可以包括:应用程序的各种key,作为开启程序功能或者访问Web服务器的凭据;页面风格和操控习惯的类型,比如安卓的或者iOS的界面风格和手势习惯等;对浏览器框架的所需安装的插件类型;版权信息证明资料。参照图15,在一些实施例中,权限请求表为保障UAPP的功能实现与安全稳定运行目的,需要申请或使用云操作系统的相关权限,比如短信与联系人信息、设备定位信息、用户手机号、读写本地存储、通知等等。然后,在UAPP安装时,在用户操作确认授权的权限后,从而生成一目标权限表(如S416)。
在优选的实施例中,(如S414)当所需浏览器的类型与本地终端或远程计算设备提供的浏览器框架的内核类型不匹配时,使远程计算设备提供的浏览器框架切换内核以符合所需浏览器的类型,或者重载所述原代码中的函数以使安装后的UAPP匹配浏览器框架的内核。(如S415)需要配置UAPP的主题和操作方式,使得运行UAPP时,使浏览器框架所提供的页面切换成所述UAPP的所需浏览器的类型的页面主题和操作方式。
UAPP上架审核可以包含以下流程:(1)内容审核——应用商城服务端会对应用的内容进行审核,确保应用的内容符合应用商城服务端的要求。例如,应用商城服务端禁止不符合当地法规的内容的应用程序。因此审核程序将对应用的内容关键词进行仔细的检查,以确保应用的内容不会对用户造成任何伤害。(2)功能审核——应用商城服务端会对应用的功能进行审核,以确保应用的功能符合应用商城服务端的要求。例如,应用商城服务端可要求应用程序不得包含任何恶意代码、病毒、木马等内容。审核程序将对应用的功能进行仔细的检查,以确保应用的功能不会对用户的设备造成任何伤害。(3)用户体验审核——应用商城服务端会对应用的用户体验进行审核,以确保应用的用户体验符合应用商城服务端的要求。例如,应用商城服务端可能要求应用程序的界面设计简洁明了、易于使用,同时应用程序的功能也必须易于使用。审核程序将对应用的用户体验进行仔细的检查,以确保应用的用户体验符合应用商城服务端的要求。(4)版权审核——应用商城服务端会对应用的版权进行审核,以确保应用的版权符合应用商城服务端的要求。例如,应用商城服务端可能要求应用程序不得侵犯任何第三方的知识产权。审核程序将对应用的版权材料进行仔细的检查,以确保应用的版权符合应用商城服务端的要求。(5)安全审核——应用商城服务端会对应用的安全进行审核,以确保应用的安全性符合应用商城服务端的要求。例如,应用商城服务端可能要求应用程序所使用的网络通信协议和第三方服务器进行测试和甄别,以确保用户的隐私安全。
6.3 应用程序内容融合
在一些实施例中,可以利用Userkey从Web服务器获取资源和功能,以整合到同一个UAPP中。例如,参照图17,用户使用的本地终端存有用户个人特征信息(比如,指纹、人脸数据、个人安全密码、手机号验证码、云服务器用户账号等),其需要的安全保密级别较高,所以需要转成或者额外提取出与个人特征信息关联的Userkey(比如,二级用户账号密码、服务请求密钥等)。基于用户已通过一个或多个服务提供商注册了账号并获得Userkey,可以通过本地用户终端让用户授权而取得所注册得到的Userkey,然后代理发送该Userkey至服务提供商的Web服务器,以获取该用户的个性化资源并融合到同一个UAPP中进行呈现。因此,基于Userkey的方案,为本发明的云操作系统的UAPP的开发和生态链带来较大的灵活性和丰富性。
6.4 云输入法
参照图18,在一些实施例中,用于云操作系统的云输入方法可以包括以下步骤:采集用户在本地终端的用户输入操作,用户输入操作包括用户语音或本地界面上的操作点;在远程计算设备中,将用户输入操作转换成语音识别词句或运行界面的操作指令; 基于语音识别词句或操作指令触发输入面板,生成第一语言数据;从远程词库中检索与第一语言数据关联的第二语言数据,以在运行界面呈现第一语言数据和/或第二语言数据;其中,远程词库从本地终端的本地词库接收本地输入数据,并且远程词库与用户数据库中存储的用户输入数据同步。远程词库从第三方WEB服务器接收与用户账号关联的个性化云词库。
优选地,用于云操作系统的云输入方法,还可以包括以下步骤:通过AI服务器的应用程序接口,调用AI功能,以将第一语言数据转换成第三语言数据,以在远程计算设备呈现第三语言数据,其中,AI服务器部署大规模预训练语言模型(比如,GPT、BERT、BLOOM、XLNet、ERNIE Bot等)。
6.5 应用内打开其他应用
参照图19,在一些实施例中,用于云操作系统的UAPP的打开方可以包括以下步骤:捕捉用户在本地终端的用户输入操作,用户输入操作包括用户语音指令或本地界面上的操作点;在远程计算设备中,判断用户输入操作在当前第一UAPP的运行界面中的操作对象;确定操作对象与第二UAPP关联,在捕获到允许第二UAPP启动的消息后,生成第二UAPP的运行界面,并允许叠加覆盖第一UAPP至少一部分界面,且允许第一UAPP保持运行。
参照图20,用于云操作系统的UAPP的打开方法还可以包括以下步骤:预先配置操作对象与UAPP的关联列表,用于确定每个操作对象被对应的UAPP打开,操作对象包括文件类型、硬件资源或网站地址;或者,在确定待打开的UAPP所需的权限与本地终端分配的权限类型一致后,生成允许UAPP启动的消息。具体地,操作对象和UAPP的关联列表可以是文件打开方式表,比如在中配置了MP3文件的默认打开的应用程序是本地播放器,而点击了未配置打开的应用程序的文件时,会发出询问窗口,提示用户是否需要从应用商城下载能打开该文件的应用程序。具体地,当待打开的UAPP或者链接需要操作系统权限时,调用该UAPP的目标权限表或者询问用户是否同意授权该打开事件所需的权限,待确认享有权限后,才允许打开操作。
参照图21,在一些实施例中,在远程计算设备中确定操作对象与第三UAPP或系统栏关联时,在本地终端调用同类型的UAPP或进程,第三UAPP的类型包括摄像应用程序、电话应用程序、短信应用程序、通讯录应用程序或其他基于本地功能的基础应用程序,系统栏包括远程计算设备状态栏或硬件控制中心栏。比如,在云服务器虚拟机的运行界面设有多个第三UAPP的图标和操作界面,每个第三UAPP对应的APP ID与本地的基础APP或进程(比如,摄像、通讯录、短信、定位)关联;当监测到用户操作第三UAPP的图标时(比如,点击电话),弹出操作界面(比如拨号盘),然后通过操作界面获取用户操作指令(比如拨打某个手机号码),再返回至本地终端以触发本地程序或者进程(本地的手机拨号程序)工作。在一个实施例中,可以使用户操作指令通过本地浏览器框架中的JS程序利用后端运行时模块(比如,JS运行时),触发本地的基础APP或者进程工作。因此,能够满足云端UAPP和需要本地硬件的应用程序的切换需求。
7、其他
本发明实施例中的架构、框架、模块、组件、单元、控件、插件、方法步骤等,可在数字电子电路中或在计算机硬件、固件、软件中或在它们的组合中实现其特征。该特征可在计算机程序产品中呈现,该计算机程序产品有形地体现在信息载体中(例如在机器可读存储设备中),以便由可编程处理器执行;并且方法步骤可由可编程处理器执行,该可编程处理器通过对输入数据进行操作并生成输出来执行指令程序以执行具体实施的功能。
所描述的特征可有利地在能够在可编程系统上执行的一个或多个计算机程序中实现,该可编程系统包括至少一个输入设备、至少一个输出设备以及被耦接以从数据存储系统接收数据和指令并且将数据和指令传输到数据存储系统的至少一个可编程处理器。计算机程序是在计算机中可以直接或间接使用以执行某种活动或者产生某种结果的指令集。计算机程序可以包括编译和解释语言在内的任何形式的编程语言(例如,C++、Java)来编写,并且其可以任何形式部署,包括作为独立程序或者作为程序段、子程序或适于在计算环境中使用的其他单元。为此目的计算机程序能够在编程的专用集成电路上运行。
例如,用于执行指令的程序的合适处理器包括通用微处理器和专用微处理器两者、以及任何类型的计算机的多个处理器或内核中的一者或者唯一的处理器。一般来讲,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储介质。一般来讲,计算机可与海量存储设备进行通信以存储数据文件。这些海量存储设备可包括磁盘,诸如内部硬盘和可移除磁盘;磁光盘;以及光盘。处理器和存储器可由专用集成电路补充,或者被并入其中。
虽然上文描述了具体实施的各个方面,但是应当显而易见的是,上述具体实施的各种特征可通过各种各样的形式体现,并且上述任何特定结构和/或功能仅是例示性的。基于本公开,本领域的技术人员应当理解,本文所述的方面可以独立于任何其他方面来实现,并且这些方面中的两个或更多个可以采用各种方式组合。例如,可以使用本文阐述的任何数量的方面来实现装置和/或可以实践方法。另外,除了本文阐述的一个或多个方面之外或者不同于本文阐述的一个或多个方面,可以使用其他结构和/或功能来实现这样的装置和/或可以实践这样的方法。还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点。本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。
Claims (50)
- 一种云操作系统,设置在远程计算设备中,所述远程计算设备与本地终端通过网络关联并且以所述本地终端作为用户操作端和用户应用程序界面接收端,其特征在于,所述云操作系统包括:基础内核,用于根据请求来调用所述远程计算设备的物理和/或虚拟化的硬件资源;运行时库,基于所述基础内核以提供至少一个的操作系统平台的运行时环境;接口服务模块,所述接口服务模块对应所述运行时库以提供应用程序接口;应用服务模块,用于向所述本地终端提供应用程序的界面和服务对接。
- 根据权利要求1所述的云操作系统,其中,所述应用服务模块包括:设备监测单元,用于获取所述本地终端的硬件参数和实时运行状态数据;界面生成单元,用于根据所述本地终端的硬件参数生成用户应用程序的运行界面;云操控对接单元,用于与所述本地终端保持操控交互;驱动对接单元,用于处理所述远程计算设备中的应用程序所需的硬件驱动请求与所述本地终端之间的硬件驱动请求之间的重定向。
- 根据权利要求1或2所述的云操作系统,其中,所述本地终端具有显示屏幕、网络通信硬件和本地操作系统,所述远程计算设备包括云服务器、虚拟机、容器和个人计算机中的任一者或多者,其中,至少一部分的所述云操作系统部署在远程的服务器、虚拟机或容器中。
- 根据权利要求1至3中任一权利要求所述的云操作系统,其中,所述本地终端包括云操控桌面,所述云操控桌面基于本地终端的本地操作系统中的浏览器框架运行,所述云操控桌面包括:界面控件或插件,基于所述浏览器框架上提供用户操作界面和与该界面关联的功能扩展;本地访问单元,所述本地访问单元与所述界面控件或插件连接,并且用于捕获用户的实时操控数据以及访问本地终端的本地应用程序的信息和硬件信息;一个或多个服务单元,所述服务单元与所述界面控件或插件连接,用于本地与远程之间的界面图像、视频和音频的交互;一个或多个客户端单元,所述客户端单元分别与所述服务单元和所述本地访问单元连接,用于与远程计算设备中的代理服务程序通信以及传输。
- 根据权利要求2至4中任一权利要求所述的云操作系统,其中,在远程基于所述应用服务模块的环境中运行至少一个用户应用程序和至少一个后台服务程序,其中:所述设备监测单元在所述本地终端与所述远程计算设备之间的认证连接后,获取本地终端的包含屏幕和输入设备的硬件数据,并接收所述本地终端的本地应用程序的数据;所述界面生成单元根据用户账号所对应的界面风格和预设的操作习惯,且基于所述设备监测单元所获取的硬件配置参数生成一界面环境,用于呈现所述用户应用程序,其中所述用户应用程序的运行界面被所述后台服务程序截获界面图像后传输至所述本地终端的云操控桌面;云操控对接单元被所述后台服务程序调用以从所述本地终端实时接收用户的操控数据转换成所述远程计算设备的操控数据;驱动对接单元响应所述用户应用程序的硬件资源请求,使所述远程计算设备的用于硬件执行的源数据重定向至所述本地终端的硬件。
- 根据权利要求2至5中任一权利要求所述的云操作系统,其中:所述界面生成单元中的至少一部分是由远程计算设备的浏览器框架的界面渲染引擎提供,以对用户应用程序从WEB服务器接收的网页文件生成该用户应用程序的运行界面。
- 根据权利要求2至6中任一权利要求所述的云操作系统,其中:响应所述用户应用程序通过应用程序接口发起硬件资源请求后,所述驱动对接单元从远程计算设备的内存区中对源数据进行捕获,该源数据是由驱动程序触发远程计算设备硬件将要从内存区接收的数据,然后将所述源数据转发至所述本地终端;响应所述驱动对接单元的指令,本地终端后台的服务单元通过应用程序接口发起硬件资源对接,以接收所述源数据,并通过本地驱动程序触发本地硬件执行所述源数据。
- 根据权利要求1至7中任一权利要求所述的云操作系统,其中:所述远程计算设备包括云服务器和在所述云服务器中生成的至少一个虚拟机,所述虚拟机中至少部署所述云操作系统的运行时库、接口服务模块和应用服务模块;利用云服务器的用户数据库和通过总代理服务中心进行多个虚拟机之间的系统调度,用于向所述本地终端的所属用户账户分配对应的虚拟机和云操作系统数据。
- 根据权利要求1至8中任一权利要求所述的云操作系统,其中,所述基础内核为Linux内核,所述运行时库包括Linux运行时组件、安卓运行时组件、Windows运行时组件和iOS运行时组件中的任一者或多者。
- 根据权利要求1至9中任一权利要求所述的云操作系统,其中,所述接口服务模块包括用于解释和执行所述用户应用程序代码的解释器或引擎。
- 一种远程界面生成方法,其中,所述方法包括以下步骤:建立远程计算设备与本地终端之间的网络关联并且以所述本地终端作为用户操作端;从所述本地终端获取用户账号和硬件配置参数,所述硬件配置参数包括本地操作系统类型、屏幕尺寸、屏幕分辨率和输入设备类型;从远程计算设备所关联的用户数据库中获取所述用户账号或本地操作系统类型所对应的界面风格和操作习惯,在远程计算设备的浏览器框架中以所获取的本地终端的屏幕尺寸或屏幕分辨率生成一浏览器窗口,配置渲染器基于所述界面风格生成界面布局,并以所述操作习惯确定所述浏览器窗口的操作手势,从而作为基于浏览器框架运行的用户应用程序的界面环境;截取所述浏览器窗口的界面图像并传输至所述本地终端作为界面图像显示。
- 根据权利要求11所述的方法,其中:在远程计算设备的浏览器框架的渲染器设有HTML解释器和CSS解释器,通过JS引擎,以对所述用户应用程序从WEB服务器接收的网页文件和JS脚本,生成用户应用程序的运行界面;通过远程计算设备的浏览器框架中运行的插件,将所述运行界面转换成界面图像;在本地终端提供浏览器框架,以允许浏览器控件接收所述界面图像以显示。
- 根据权利要求11或12所述的方法,其中,包括以下步骤:根据本地终端当前的网络传输状态、应用场景状态、用户指令、操控状态或显示分辨率,对所述远程计算设备待向所述本地终端传输的界面图像进行预调整,以传输至少一部分动态生成的界面图像,所述预调整包括至少一部分图像的切割、压缩或对比。
- 一种界面图像传输方法,用于如权利要求1至10中任一权利要求所述的云操作系统,其中,所述方法包括以下步骤:在本地终端和远程计算设备之间建立操控数据交互连接,其中所述远程计算设备的至少一部分界面的改变是由交互连接的本地终端发送的操控数据引起;在至少一时段内保持所述远程计算设备的界面图像向所述本地终端的传输连接;根据所述远程计算设备向所述本地终端传输的界面图像的传输间隔,对所述远程计算设备向所述本地终端的待传送的界面图像进行动态调整,所述动态调整包括:确定在一时段内出现低于间隔阈值的图像传输后,在下一时段内,减少图像传输数量和/或减少所述至少一部分的界面图像的质量。
- 根据权利要求14所述的方法,其中,对所述远程计算设备向所述本地终端的待传送的界面图像进行动态调整的步骤包括:实时检测同一界面范围的界面图像从所述远程计算设备向所述本地终端的图像传输间隔;确定当前的图像传输间隔低于第一时间阈值,则对应所述待传送的界面图像放弃当次的传输;确定当前的图像传输间隔低于第二时间阈值,则对应所述待传送的界面图像降低质量;其中,所述第一时间阈值小于所述第二时间阈值。
- 根据权利要求14或15所述的方法,其中,对所述远程计算设备向所述本地终端的待传送的界面图像进行动态调整的步骤包括:检测同一界面范围的界面图像从所述远程计算设备向所述本地终端的当前传输间隔;确定当前传输间隔高于第三时间阈值,则恢复所述待传送的界面图像的质量,或者从远程计算设备采集更高图像质量的界面图像用于向所述本地终端传输。
- 根据权利要求14所述的方法,包括以下步骤:使所述本地终端从所述远程计算设备接收界面图像;根据所述本地终端上的实时监测到的操控间隔,对来自所述远程计算设备的界面图像进行动态筛选,以在本地终端显示所筛选的界面图像的至少一部分。
- 根据权利要求17所述的方法,包括以下步骤:在至少一时间段内,确定本地终端的操控间隔小于第四时间阈值;从所接收到的所述远程计算设备的界面图像中,至少丢弃一部分用于在所述本地终端显示的界面图像;减少所述本地终端向所述计算设备发送的操控数据的频次。
- 根据权利要求17所述的方法,其中,对来自所述远程计算设备的界面图像进行动态筛选的步骤包括:在至少一时间段内,确定本地终端的操控间隔大于第五时间阈值,则从所接收的多个界面图像中保留所有的用于在所述本地终端显示的界面图像;在至少一时间段内,确定本地终端的操控间隔大于第六时间阈值,则从所接收的多个界面图像中至少间隔地选取界面图像以显示在所述本地终端,直至出现所述本地终端的下一次操控;其中,所述第六时间阈值大于所述第五时间阈值。
- 根据权利要求14至19中任一权利要求所述的方法,其中,包括以下步骤:在至少一时间段内,确定本地终端的操控间隔大于第七时间阈值,则减少所述本地终端的显示帧率,直至出现所述本地终端的下一次操控。
- 根据权利要求14至20中任一权利要求所述的方法,其中,所述方法包括以下步骤:确定本地终端的操控点的移动幅度超过预设的幅度阈值;在所述本地终端的所述操控点所产生的操控数据引起的远程计算设备向所述本地终端传送的多个界面图像中,保留与所述操控点的起始动作和结尾动作关联的界面图像,并且减少其余的用于在本地终端显示的界面图像;定时在所述本地终端和所述远程计算设备之间同步界面图像。
- 一种远程浏览器,运行于云操作系统,其中,所述远程浏览器包括:客户端单元,用于远程浏览器与云操作系统运行的其他应用程序通信,并且与本地终端通信,以获取本地终端和远程计算设备的数据;界面图像获取单元,用于从远程浏览器运行的基于网页的用户应用程序的用户界面中获取至少一部分界面图像;其中,客户端单元和界面图像获取单元分别与云操作系统中的图像交互服务程序连接,所述图像交互服务程序实施如权利要求14至16中任一权利要求所述的方法。
- 一种本地浏览器,运行于本地操作系统,其中,所述本地浏览器包括:客户端单元,用于本地浏览器与本地操作系统运行的其他应用程序通信,并且与远程计算设备通信,以获取本地终端和远程计算设备的数据;显示组件,用于对来自远程计算设备的界面图像进行显示;与所述显示组件连接的图像交互服务单元,用于实施如权利要求17至21中任一权利要求所述的方法。
- 一种数据传输方法,用于云操作系统,所述云操作系统部署在远程计算设备中,所述远程计算设备与本地终端通过网络关联并且以所述本地终端作为所述云操作系统的用户操作端和系统界面显示端,所述本地终端和所述远程计算设备分别设有一个或多个客户端单元,所述远程计算设备设有常驻后台运行的代理单元,其中,所述方法包括以下步骤:通过订阅协议传输通道,使设置在所述本地终端或所述远程计算设备的客户端单元通过所述代理单元发布一个或多个数据消息包,以允许设置在所述本地终端或所述远程计算设备的预先订阅所述数据消息包的一个或多个另外的客户端单元拉取所述数据消息包以完成所有数据消息包的消费。
- 根据权利要求24所述的方法,其中:通过操控数据直连通道,从所述本地终端向所述远程计算设备传输用户操控数据,所述通过操控数据直连通道具有第一传输优先级;基于长链的网络通信协议建立的图像数据直连通道,以从所述远程计算设备向所述本地终端传输界面图像,所述图像数据直连通道具有第二传输优先级;所述订阅协议传输通道具有第三传输优先级,其中所述第一传输优先级高于所述第二传输优先级或第三传输优先级。
- 根据权利要求24或25所述的方法,其中:所述远程计算设备包括云服务器和在所述云服务器中生成的至少一个虚拟机,利用云服务器的用户数据库和通过总代理服务中心进行多个虚拟机之间的系统调度,用于向所述本地终端的所属用户账户分配对应的云操作系统数据和至少一个虚拟机;通过所分配的虚拟机中的浏览器框架运行的进程,提供用户应用程序的界面环境,以及用于访问所述用户数据库;所述本地终端包括基于本地浏览器框架运行的云操控桌面,用于接收所述虚拟机的浏览器框架生成的界面图像;所述本地终端包括分别设置于所述云操控桌面内和外的第一本地客户端单元和第二本地客户端单元,所述虚拟机包括所述代理单元以及设置于浏览器框架内和外的第一远程客户端单元和第二远程客户端单元;并且其中,所述方法包括以下步骤:使所述第一本地客户端单元或所述第二本地客户端单元通过所述代理单元发布的第一数据消息包以允许所述第一远程客户端单元或所述第二远程客户端单元拉取所述第一数据消息包;或者使所述第一远程客户端单元或所述第二远程客户端单元通过所述代理单元发布的第二数据消息包以允许所述第一本地客户端单元或所述第二本地客户端单元拉取所述第二数据消息包。
- 根据权利要求26所述的方法,包括以下步骤:使所述第二本地客户端单元直接获取本地数据,所述本地数据包括本地存储数据、本地应用程序数据、本地硬件数据和本地用户特征数据中的任一种或多种;使所述第一本地客户端单元与所述第二本地客户端单元直接通信,以获取所述本地数据,并将获取的至少一部分数据生成所述第一数据消息包。
- 根据权利要求26或27所述的方法,包括以下步骤:使登录用户账号的虚拟机的第一远程客户端单元或第二远程客户端单元获取远程数据,所述远程数据包括虚拟机存储数据、虚拟机硬件数据或者所述云服务器的用户数据库中与所述用户账户关联的数据;将获取的远程数据的至少一部分数据生成所述第二数据消息包。
- 根据权利要求26至28中任一权利要求所述的方法,包括以下步骤:使所述用户账号关联的多个虚拟机中的每个虚拟机的代理单元均与所述云服务器的总代理服务中心保持通信连接;使所述多个虚拟机的代理单元之间交换数据传输包,所述数据传输包包括用户应用程序数据以及一个或多个数据消息包;确定所述代理单元中的数据消息包被所述用户账户关联的多个虚拟机中的客户端单元消费完毕。
- 一种数据重定向方法,基于如权利要求1至10中任一权利要求所述的云操作系统,其中所述方法包括以下步骤:建立本地终端与远程计算设备之间的通信连接,获取与本地终端连接的第一通信对接地址,并发送本地终端标识至远程计算设备;采用所述本地终端标识建立所述远程计算设备与第三方服务器之间的通信连接,并获取与第三方服务器连接的第二通信对接地址;将所述第一通信对接地址和所述第二通信对接地址修改为一致,使所述远程计算设备与第三方服务器之间的至少一部分数据传输重定向为本地终端与第三方服务器之间的数据传输。
- 根据权利要求30所述的方法,其中,从所述第三方服务器向所述远程计算设备发送的数据中截获多媒体数据,使所述远程计算设备与第三方服务器之间的多媒体数据传输重定向为本地终端与第三方服务器之间的流数据传输。
- 一种数据重定向方法,基于如权利要求1至10中任一权利要求所述的云操作系统,其中第一本地终端和第二本地终端分别作为第一远程计算设备和第二远程计算设备的至少一个用户的操作端,其中所述方法包括以下步骤:根据第一远程计算设备和第二远程计算设备之间建立的通信连接,确定第一本地终端向第二本地终端发起的直接通信连接的事件;从第一本地终端与第一远程计算设备之间的数据连接,获取与第一本地终端连接的第一通信对接地址;从第二本地终端与第二远程计算设备之间的数据连接,获取与第二本地终端连接的第二通信对接地址;将所述第一通信对接地址和所述第二通信对接地址修改为一致,使所述第一远程计算设备与所述第二远程计算设备之间的至少一部分数据传输重定向为第一本地终端与第二本地终端之间的数据传输。
- 根据权利要求32所述的方法,其中,所述至少一部分数据包括用户实时通话数据。
- 一种数据缓冲方法,用于如权利要求1至10中任一权利要求所述的云操作系统,其中所述方法包括以下步骤:在本地终端和远程计算设备中通过网络传输的多个节点之间建立一个或多个数据缓冲区;根据所述节点的历史接收数据,在数据缓冲区中补全生成连续的数据,用于从所述数据缓冲区读取数据的节点连续地执行数据读取。
- 根据权利要求34所述的方法,其中,所述数据缓冲区包括界面图像数据缓冲、多媒体数据缓冲和定位数据缓冲中的任一者或多者。
- 一种代理服务方法,用于如权利要求1至10中任一权利要求所述的云操作系统,其中,所述远程计算设备包括云服务器和在所述云服务器中生成的至少一个虚拟机,所述代理服务方法包括以下步骤:根据本地用户终端的所属用户账号,从云服务器中的用户数据库获取所述用户账号对应的云操作系统数据和应用程序存储数据,用于向用户账户分配对应的具有所述云操作系统数据和应用程序存储数据的至少一个虚拟机,并提供多个虚拟机之间的系统调度;向每个虚拟机提供用于本地终端与该虚拟机通信的代理单元,并在多个虚拟机的代理单元之间交换数据传输包。
- 根据权利要求36所述的方法,其中,所述的多个虚拟机之间的系统调度包括:系统迁移、计算机资源调度、跨虚拟机的应用程序调度执行、或用户数据同步存储。
- 一种用户应用程序的生成方法,基于如权利要求1至10中任一权利要求所述的云操作系统,其中所述方法包括以下步骤:通过所述应用服务模块在远程计算设备中提供应用商城客户端,所述应用商城客户端与应用商城服务端连接以获取用户应用程序的图标和安装链接;接收所述本地终端用户操作所触发的新用户应用程序的新增请求,通过所述应用商城服务端获取图标和安装链接;从用户数据库获取与用户账号关联的所述新用户应用程序的存储数据;基于应用服务模块在远程计算设备中以所述安装链接载入所述的新用户应用程序,并导入所述存储数据。
- 根据权利要求38所述的方法,其中,包括以下步骤:通过所述应用服务模块以远程计算设备的浏览器框架提供所述的新用户应用程序的运行环境、对接本地硬件资源和界面图像,并且访问所述用户数据库;将所述的新用户应用程序的界面图像传输至所述本地终端的本地浏览器框架运行云操控桌面,并且根据用户配置的权限请求表,向所述的新用户应用程序分配本地资源。
- 根据权利要求38或39所述的方法,包括以下步骤:获取用户应用程序的上架请求资料,所述上架请求资料包括图标文件、WEB地址、权限请求表和原代码;确定所述上架请求资料符合应用程序审核规则,然后将图标文件、WEB地址和原代码打包并上架至所述应用商城服务端,并分配安装链接。
- 根据权利要求40所述的方法,其中所述上架请求资料包括所需浏览器的类型,所述方法包括以下步骤:当所需浏览器的类型与所述本地终端或远程计算设备提供的浏览器框架的内核类型不匹配时,使远程计算设备提供的浏览器框架切换内核以符合所需浏览器的类型,或者重载所述原代码中的函数以使安装后的用户应用程序匹配所述的浏览器框架的内核;运行用户应用程序时,使浏览器框架所提供的页面切换成所述用户应用程序的所需浏览器的类型的页面主题和操作方式。
- 一种基于云操作系统的输入方法,其中所述云操作系统设置在远程计算设备中,所述远程计算设备与本地终端通过网络关联以传输界面图像至所述本地终端作,并且以所述本地终端作为用户操作端,所述方法包括以下步骤:采集用户在所述本地终端的用户输入操作,所述用户输入操作包括用户语音或本地界面上的操作点;在所述远程计算设备中,将所述用户输入操作转换成语音识别词句或运行界面的操作指令;基于所述语音识别词句或所述操作指令触发输入面板,生成第一语言数据;从远程词库中检索与所述第一语言数据关联的第二语言数据,以在所述运行界面呈现第一语言数据和/或第二语言数据;其中,所述远程词库从所述本地终端的本地词库接收本地输入数据,并且所述远程词库与用户数据库中存储的用户输入数据同步。
- 根据权利要求42所述的方法,其中,所述远程词库从第三方WEB服务器接收与用户账号关联的个性化云词库。
- 根据权利要求42或43所述的方法,其中,包括以下步骤:通过AI服务器的应用程序接口,调用AI功能,以将第一语言数据转换成第三语言数据,以在所述远程计算设备呈现所述第三语言数据,其中,所述AI服务器部署大规模预训练语言模型。
- 一种用户应用程序的打开方法,用于如权利要求1至10中任一权利要求所述的云操作系统,包括以下步骤:捕捉用户在所述本地终端的用户输入操作,所述用户输入操作包括用户语音指令或本地界面上的操作点;在所述远程计算设备中,判断所述用户输入操作在当前第一用户应用程序的运行界面中的操作对象;确定所述操作对象与第二用户应用程序关联,在捕获到允许所述第二用户应用程序启动的消息后,生成所述第二用户应用程序的运行界面,并允许叠加覆盖所述第一用户应用程序至少一部分界面,且允许所述第一用户应用程序保持运行。
- 根据权利要求45所述的方法,包括以下步骤:预先配置所述操作对象与用户应用程序的关联列表,用于确定每个操作对象被对应的用户应用程序打开,所述操作对象包括文件类型、硬件资源或网站地址;或者,在确定待打开的用户应用程序所需的权限与本地终端分配的权限类型一致后,生成允许用户应用程序启动的消息。
- 根据权利要求45或46所述的方法,包括以下步骤:在远程计算设备中确定所述操作对象与第三用户应用程序或系统栏关联时,在本地终端调用同类型的用户应用程序或进程,所述第三用户应用程序的类型包括摄像应用程序、电话应用程序、短信应用程序、通讯录应用程序或其他基于本地功能的基础应用程序,所述系统栏包括远程计算设备状态栏或硬件控制中心栏。
- 一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施如权利要求4至16以及24至47中任一项所述的方法。
- 一种移动计算终端,其特征在于,包括:与云服务器连接的网络通信模块;用于处理远程计算设备所发送的界面图像数据的图像处理器;用于显示所述界面图像数据的屏幕;根据权利要求48所述的计算机可读存储介质。
- 一种云计算服务器,其特征在于,包括:至少一个远程计算设备,所述远程计算设备包括一个或多个虚拟机;与所述一个或多个虚拟机连接的总代理服务中心,用于进行多个虚拟机之间的系统调度以及云操作系统数据分配;根据权利要求48所述的计算机可读存储介质。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/105975 WO2025007320A1 (zh) | 2023-07-05 | 2023-07-05 | 跨平台的云操作系统及其方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120035981A true CN120035981A (zh) | 2025-05-23 |
Family
ID=94171148
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202380012535.8A Pending CN120035981A (zh) | 2023-07-05 | 2023-07-05 | 跨平台的云操作系统及其方法 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN120035981A (zh) |
| WO (1) | WO2025007320A1 (zh) |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102075546A (zh) * | 2011-02-18 | 2011-05-25 | 北京积木恒硕科技有限公司 | 一种基于云计算的在线操作系统 |
| CN106713485B (zh) * | 2017-01-11 | 2020-08-04 | 杨立群 | 云计算移动终端 |
| CN111729293B (zh) * | 2020-08-28 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
| CN114327355A (zh) * | 2021-12-30 | 2022-04-12 | 科大讯飞股份有限公司 | 语音输入方法、电子设备以及计算机存储介质 |
| CN115914198A (zh) * | 2022-03-08 | 2023-04-04 | 杨立群 | 用于远程操控的图像动态传输方法及装置 |
-
2023
- 2023-07-05 CN CN202380012535.8A patent/CN120035981A/zh active Pending
- 2023-07-05 WO PCT/CN2023/105975 patent/WO2025007320A1/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025007320A1 (zh) | 2025-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12170807B2 (en) | Techniques for managing generation and rendering of user interfaces on client devices | |
| US9723067B2 (en) | Prioritized content transmission | |
| US10331769B1 (en) | Interaction based prioritized retrieval of embedded resources | |
| US9009219B2 (en) | Native viewer use for service results from a remote desktop | |
| US10002115B1 (en) | Hybrid rendering of a web page | |
| US10296558B1 (en) | Remote generation of composite content pages | |
| US9740791B1 (en) | Browser as a service | |
| KR102690066B1 (ko) | 5g 공통 미디어 애플리케이션 포맷 기반 미디어 스트리밍을 위한 콘텐츠 준비 템플릿들을 위한 방법 | |
| US9197505B1 (en) | Managing network connections for processing network resources | |
| WO2023093429A1 (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
| US9785619B1 (en) | Interaction based display of visual effects | |
| US10223458B1 (en) | Automatic magazine generator for web content | |
| US11784887B1 (en) | Bandwidth throttling | |
| CN116601546A (zh) | 将动态5g ar/mr体验流式传输到具有可更新场景的5g设备的方法 | |
| CN110209964A (zh) | 一种页面显示方法、装置及设备 | |
| US20230111113A1 (en) | Page loading method and display apparatus | |
| US9164817B2 (en) | Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal | |
| US20250258587A1 (en) | Systems, methods, and devices for optimized web content delivery | |
| CN120035981A (zh) | 跨平台的云操作系统及其方法 | |
| CN119276852A (zh) | 云操作系统和通讯方法 | |
| CN110568996A (zh) | 基于设备驱动程序的本地存储容量扩充系统 | |
| JP7721673B2 (ja) | 情報インタラクション方法、装置及び電子機器 | |
| CN117424931A (zh) | 基于图像交互的云计算系统及方法 | |
| CN112612531A (zh) | 应用程序启动方法、装置、电子设备及存储介质 | |
| CN118828047B (zh) | 一种显示设备及媒资播放方法 |
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 |