CN112540816A - 一种远程页面渲染方法、装置、设备及计算机存储介质 - Google Patents

一种远程页面渲染方法、装置、设备及计算机存储介质 Download PDF

Info

Publication number
CN112540816A
CN112540816A CN202011377386.XA CN202011377386A CN112540816A CN 112540816 A CN112540816 A CN 112540816A CN 202011377386 A CN202011377386 A CN 202011377386A CN 112540816 A CN112540816 A CN 112540816A
Authority
CN
China
Prior art keywords
terminal
object model
document
request information
information
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
CN202011377386.XA
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.)
Beijing Feynman Software Technology Co ltd
Original Assignee
Beijing Feynman Software Technology Co ltd
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 Beijing Feynman Software Technology Co ltd filed Critical Beijing Feynman Software Technology Co ltd
Priority to CN202011377386.XA priority Critical patent/CN112540816A/zh
Publication of CN112540816A publication Critical patent/CN112540816A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

Abstract

本发明公开了一种远程页面渲染方法、装置、设备及计算机存储介质。远程页面渲染方法应用于第一终端,远程页面渲染方法包括:在显示应用的页面的情况下,接收操作;根据远程页面渲染操作,生成交互请求信息,向第二终端发送远程页面渲染交互请求信息,以用于远程页面渲染第二终端根据远程页面渲染交互请求信息生成文档变更信息;接收远程页面渲染第二终端发送的远程页面渲染文档变更信息;根据远程页面渲染文档变更信息和远程页面渲染应用的文档对象模型,渲染得到对应远程页面渲染操作的显示页面。能够在云应用运行时减少带宽的占用,且保证应用的页面显示效果,提高用户体验。

Description

一种远程页面渲染方法、装置、设备及计算机存储介质
技术领域
本发明属于计算机技术领域,尤其涉及一种远程页面渲染方法、装置、设备及计算机存储介质。
背景技术
云应用的一种实现方式是将控制应用逻辑的程序设置在云端运行,且通过终端和运行在云端的应用程序进行交互,实现用户可以通过终端运行该应用程序。
目前的云应用的实现方式中,一种是在云端将渲染好的画面转换为视频流,或者在视频流中还包括有声音等多媒体数据,并通过码流的形式发送到终端,用户可以通过终端使用该应用程序。虽然,高压缩比、低码流的视频流压缩算法越来越多,但通过对多媒体压缩的方法实现云应用,在传输过程中仍然占据较高的带宽,且当页面包括不频繁变化的图像,如,文字、图标时,在图像边缘等色彩变化剧烈的部位会出现明显的马赛克效应,降低用户的体验。另一种实现方式,是通过远程桌面的方式,此种方式在传输过程中同样会占据较高的带宽,而且在终端所显示的页面极易出现画质不清晰,反应迟滞等情况,降低用户体验的情况。
因此,如上所述的云应用实现方式在运行时会占据较高的带宽,不仅会限制云应用的使用范围,也会降低用户的使用体验。
发明内容
本发明实施例提供一种远程页面渲染方法、装置、设备及计算机存储介质,能够在云应用运行时减少带宽的占用,且保证应用的页面显示效果,提高用户体验。
第一方面,本发明实施例提供一种远程页面渲染方法,远程页面渲染方法应用于第一终端,远程页面渲染方法包括:
在显示应用的页面的情况下,接收操作;
根据远程页面渲染操作,生成交互请求信息,其中,远程页面渲染交互请求信息包括对应远程页面渲染操作的事件描述;
向第二终端发送远程页面渲染交互请求信息,以用于远程页面渲染第二终端根据远程页面渲染交互请求信息生成文档变更信息;
接收远程页面渲染第二终端发送的远程页面渲染文档变更信息;
根据远程页面渲染文档变更信息和远程页面渲染应用的文档对象模型,渲染得到对应远程页面渲染操作的显示页面。
在第一方面的一些可实现方式中,在接收操作之前,远程页面渲染方法还包括:
向远程页面渲染第二终端发送远程页面渲染应用的页面创建请求,以用于远程页面渲染第二终端根据远程页面渲染页面创建请求,创建应用实例,并生成文档对象模型;
接收远程页面渲染第二终端发送的远程页面渲染文档对象模型;
根据远程页面渲染文档对象模型,渲染得到远程页面渲染应用的页面。
在第一方面的一些可实现方式中,远程页面渲染根据远程页面渲染操作,生成交互请求信息,包括:
确定在远程页面渲染应用的页面接收到远程页面渲染操作的操作节点;
根据远程页面渲染操作节点,确定操作节点标识;
基于远程页面渲染操作和远程页面渲染操作节点,生成远程页面渲染交互请求信息,其中,远程页面渲染交互请求信息还包括远程页面渲染操作节点标识。
在第一方面的一些可实现方式中,在远程页面渲染接收远程页面渲染第二终端发送的远程页面渲染文档变更信息之后,远程页面渲染方法还包括:
根据远程页面渲染文档变更信息,更新远程页面渲染文档对象模型;
保存更新后的远程页面渲染文档对象模型。
在第一方面的一些可实现方式中,在远程页面渲染向第二终端发送远程页面渲染交互请求信息之后,远程页面渲染方法还包括:
若在第一预设时间内,未接收到远程页面渲染第二终端发送的接收应答信息,则确定远程页面渲染第一终端与远程页面渲染第二终端的连接状态为断开;
当远程页面渲染第一终端与远程页面渲染第二终端再次建立连接时,重新发送远程页面渲染交互请求信息。
在第一方面的一些可实现方式中,远程页面渲染方法还包括:
向远程页面渲染第二终端发送远程页面渲染第一终端的第一终端标识,以用于远程页面渲染第二终端建立远程页面渲染第一终端标识与远程页面渲染应用实例的关联关系。
在第一方面的一些可实现方式中,远程页面渲染方法还包括:
获取远程页面渲染第一终端的状态信息;
向远程页面渲染第二终端发送远程页面渲染第一终端的状态信息,以用于远程页面渲染第二终端根据远程页面渲染关联关系和远程页面渲染第一终端的状态信息,调整远程页面渲染应用实例的运行状态。
第二方面,本发明实施例提供一种远程页面渲染方法,远程页面渲染方法应用于第二终端,远程页面渲染方法包括:
接收第一终端发送的交互请求信息,其中,远程页面渲染交互请求信息包括对应操作的事件描述;
根据远程页面渲染交互请求信息和预设虚拟文档对象模型,或其他可以处理交互请求信息并根据交互请求信息生成文档变更信息的计算机程序装置,生成文档变更信息;
向远程页面渲染第一终端发送远程页面渲染文档变更信息,以用于远程页面渲染第一终端根据远程页面渲染文档变更信息渲染得到对应远程页面渲染操作的显示页面。
在第二方面的一些可实现方式中,在远程页面渲染接收第一终端发送的交互请求信息之前,远程页面渲染方法还包括:
接收远程页面渲染第一终端发送的应用的页面创建请求;
根据远程页面渲染页面创建请求和远程页面渲染预设虚拟文档对象模型,创建应用实例,并生成文档对象模型;
向远程页面渲染第一终端发送远程页面渲染文档对象模型,以用于远程页面渲染第一终端根据远程页面渲染文档对象模型渲染得到应用的页面。
在第二方面的一些可实现方式中,远程页面渲染交互请求信息还包括操作节点标识;
远程页面渲染根据远程页面渲染交互请求信息和预设虚拟文档对象模型,生成文档变更信息,包括:
根据远程页面渲染操作节点标识,确定远程页面渲染文档对象模型中的操作节点;
根据远程页面渲染操作的事件描述和远程页面渲染预设虚拟文档对象模型,生成远程页面渲染操作节点的文档变更信息;
根据远程页面渲染文档变更信息,更新远程页面渲染文档对象模型;以及,
保存更新后的远程页面渲染文档对象模型。
在第二方面的一些可实现方式中,在远程页面渲染向远程页面渲染第一终端发送远程页面渲染文档变更信息之后,远程页面渲染方法还包括:
若在第二预设时间内,未接收到远程页面渲染第一终端发送的接收应答信息,则确定远程页面渲染第一终端与远程页面渲染第二终端的连接状态为断开;
当远程页面渲染第一终端与远程页面渲染第二终端再次建立连接时,重新发送远程页面渲染文档变更信息。
第三方面,本发明提供一种远程页面渲染装置,远程页面渲染装置包括:
接收模块,用于在显示应用的页面的情况下,接收操作;
处理模块,用于根据远程页面渲染操作,生成交互请求信息,其中,远程页面渲染交互请求信息包括对应远程页面渲染操作的事件描述;
发送模块,用于向第二终端发送远程页面渲染交互请求信息,以用于远程页面渲染第二终端根据远程页面渲染交互请求信息生成文档变更信息;
远程页面渲染接收模块,还用于接收远程页面渲染第二终端发送的远程页面渲染文档变更信息;
渲染模块,用于根据远程页面渲染文档变更信息和远程页面渲染应用的文档对象模型,以及图片、视频、音频等多媒体信息,并结合样式信息(例如CSS)渲染得到对应远程页面渲染操作的显示页面。
第四方面,本发明提供一种远程页面渲染装置,远程页面渲染装置包括:
接收模块,用于接收第一终端发送的交互请求信息,其中,远程页面渲染交互请求信息包括对应操作的事件描述;
处理模块,用于根据远程页面渲染交互请求信息和预设虚拟文档对象模型,生成文档变更信息;
发送模块,用于向远程页面渲染第一终端发送远程页面渲染文档变更信息,以用于远程页面渲染第一终端根据远程页面渲染文档变更信息渲染得到对应远程页面渲染操作的显示页面。
第五方面,本发明提供一种远程页面渲染设备,该设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面或者第一方面任一可实现方式中或第二方面或者第二方面任一可实现方式中所述的远程页面渲染方法。
第六方面,本发明提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面或者第一方面任一可实现方式中或第二方面或者第二方面任一可实现方式中所述的远程页面渲染方法。
本发明实施例提供了一种远程页面渲染方法,应用可以在第一终端显示,当用户与第一终端上显示的应用的页面进行交互时,第一终端可以根据接收到的操作生成交互请求信息,并将该交互请求信息发送给第二终端,以使第二终端对操作进行相应的处理。第二终端根据交互请求信息,进行处理后,可以只向第一终端传输文档对象模型发生变化部分的信息,即文档变更信息。由于第二终端和第一终端设备之间只传输了应用的文档对象模型的变化部分,大幅降低了需要传输的数据,减少了对带宽的需求。第一终端接收到第二终端发送的文档变更信息后,只需要将文档变更信息结合已存的应用的文档对象模型,即可得到对应操作的显示页面。由于直接结合了应用自身的文档对象模型进行优化并渲染得到页面上对应操作的显示图像,因此可以有效提高页面的渲染效率,同时提高用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种远程页面渲染方法的流程示意图;
图2是本发明实施例提供的第一终端和第二终端连接示意图;
图3是本发明实施例提供的一种远程页面渲染装置的结构示意图;
图4是本发明实施例提供的另一种远程页面渲染装置的结构示意图;
图5是本发明实施例提供的一种远程页面渲染设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本发明,而不是限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
云应用的一种实现方式是将控制应用逻辑的程序设置在云端运行,且通过终端和运行在云端的应用程序进行交互,实现用户可以通过终端(例如智能手表、智能音箱、手机等)远程使用该应用程序。
目前的云应用的实现方式中,一方面是在云端将渲染好的画面转换为视频流,或者在视频流中还包括有声音等多媒体数据,并通过码流的形式发送到终端,用户可以通过终端使用该应用程序。虽然,高压缩比、低码流的视频流压缩算法越来越多,例如,H.264数字视频压缩格式,但通过对多媒体压缩的方法实现云应用,在传输过程中仍然占据较高的带宽。尤其是多媒体码流通常采用有损压缩算法来压缩变化的画面,当页面包括不频繁变化的图像时,图像例如,文字、图标等,在图像边缘等色彩变化剧烈的部位会出现明显的马赛克效应,降低用户的体验。另外,当终端需要实施支持接收或发送多媒体流时,尤其是视频流的解码器,这通常意味着更高的成本以及更高的耗电。
另一方面云应用的实现是通过远程桌面的方式,此种方式在传输过程中同样会占据较高的带宽,而且在终端所显示的页面极易出现画质不清晰,反应迟钝等情况,从而降低用户体验。
因此,云应用在运行时占据较高的带宽,不仅会限制云应用的使用范围,也会降低用户的使用体验。
为了解决现有技术问题,本发明实施例提供了一种远程页面的渲染方法,应用可以在第一终端显示,而程序逻辑在第二终端执行;第一终端和第二终端分别维护各自的文档对象模型(DOM)树;第一终端渲染该DOM树显示页面,接受用户交互操作,第二终端根据程序逻辑生成初始的DOM树并根据数据和用户的交互执行进一步的程序逻辑;第一终端和第二终端分别维护的DOM树由本发明实时提供的方法进行同步。当用户与第一终端上显示的应用进行交互时,第一终端可以根据接收到的用户操作生成交互请求信息,并将该交互请求信息发送给第二终端。第二终端根据交互请求信息,做相应的程序处理,当第二终端上运行的程序修改了文档对象模型之后,可以只向第一终端传输文档对象模型发生变化部分的信息,即文档变更信息。由于第二终端和第一终端设备之间只传输了应用的文档对象模型的变更部分,大幅降低了需要传输的数据,减少了对带宽的需求。当第一终端接收到第二终端发送的文档变更信息后,第一终端只需要将文档变更信息结合已存的应用的文档对象模型,即可得到对应操作的显示页面。
下面结合附图对本发明实施例所提供的远程页面渲染方法进行介绍。
图1示出了本发明一个实施例提供的远程页面渲染方法的流程示意图。参考图1所示,第一终端在显示应用的页面的情况下,第一终端可以执行S110-S130。
S110、第一终端接收操作。
在本发明实施例中,为了保证应用在运行时有良好的运行性能,同时,减少应用在第一终端运行时所需要的运行内存,第一终端只需要设置有一个超文本标记语言(Hypertext Markup Language,HTML)/可扩展标记语言(The Extensible MarkupLanguage,XML)的用户代理(User Agent)即可,而其中复杂的逻辑代码可以运行在第二终端。这样,第一终端上的用户代理,可去除传统用户代理中的HTML/XML解析器以及JavaScript引擎。
第一终端的用户代理可以通过渲染文档对象模型(Document ObjectModel,DOM)以及图片、视频、声音等多媒体信息,结合级联样式表(CSS)信息得到应用的页面,并在第一终端显示该页面。
在一些实施例中,远程页面渲染方法可以还在任何两台物理计算机之间实施,第一终端例如可以是手表、智能音箱、手机等带有显示界面的物联网设备,第二终端例如可以是逻辑运算能力比较高的手机、计算机或者专用服务器等设备,在此,对第一终端和第二终端并不进行具体限定。
在本发明实施例中,第二终端可以包括数据驱动的动态标记语言的(HVML)解释器,用于运行和维护应用的文档对象模型,亦可运行某个一般的计算机程序,可处理第一终端发送的交互请求信息并生成文档变更请求信息。对于同一个应用的在第一终端所显示的页面,在第一终端和第二终端同时保存有一致的文档对象模型。由于在第二终端实际动态生成和修改应用的DOM,为方便描述,可以将第二终端所保存应用实例的DOM描述为有效DOM(effective DOM,eDOM)。同时,由于第一终端维护一个最终的应用的文档对象模型,用户代理可以根据文档对象模型(DOM)渲染得到应用所显示的页面,为方便描述,将第一终端侧保存的DOM描述为最终DOM(ultimate DOM,uDOM)。
在一些实施例中,第一终端的HTML/XML用户代理可以只包括对DOM和级联样式表(Cascading Style Sheets,CSS)渲染的渲染器,还可以包括图片、音视频等的多媒体支持,用来渲染应用的uDOM得到应用需要显示的页面。
在本发明实施例中,在显示应用的页面的情况下,用户可以通过第一终端与应用进行交互,发生的交互事件为第一终端接收到的操作,例如:按钮的单击事件、文字输入事件等。第一终端在接收到操作之后,接下来,第一终端可以执行S120。
S120、第一终端根据操作,生成交互请求信息。
在一些实施例中,交互请求信息可以包括对应操作的事件描述。例如:例如:按钮的单击事件、文字输入事件等。
由于用户通过第一终端与应用进行交互,第一终端接收到的操作可以使应用的uDOM发生变化,从而得到交互请求信息,例如,输入框的内容发生改变、列表框中选择的内容发生改变等对应uDOM的部分节点的内容发生变化。
在一些实施例中,当用户代理通知解释器某个元素上发生特定事件时,例如点击按钮、输入框的内容变化、选择框的选中值发生变化、提交表单等。为了方便解释器快速定位文档对象模型中需要进行逻辑运算的节点对象,交互请求信息还可以包括操作节点标识,通过操作节点标识可以唯一确定一个目标节点。
具体地,生成交互请求信息,还可以包括以下步骤:首先,确定在应用的页面对应接收到操作的uDOM中的操作节点;然后,根据操作节点,确定操作节点标识;接下来,基于操作和操作节点,生成交互请求信息。
示例性的,为了保证操作节点标识的唯一性,操作节点标识可以使用存储节点数据的内存地址,用十六进制字符串来表示。操作节点标识还可以使用唯一性标识符,例如通用唯一识别码(Universally Unique Identifier,UUID)来表示,在此并不具体限定。
第一终端在生成交互请求信息之后,接下来可以执行S130。
S130、第一终端向第二终端发送交互请求信息。
在一些实施例中,第一终端向第二终端发送交互请求信息,可以用于第二终端根据交互请求信息生成文档变更信息。
为了确保交互请求信息成功发送给第二终端,在一些实施例中,第二终端在接收到交互请求信息之后,还可以向第一终端发送接收应答信息。第一终端若在第一预设时间内,未接收到第二终端发送的接收应答信息,则确定第一终端与第二终端的连接状态为断开;当第一终端与第二终端再次建立连接时,第一终端可以重新发送交互请求信息。
在一些实施例中,第一终端和第二终端之间可以基于网络套接字的通讯机制建立联系,例如基于传输控制协议(Transmission Control Protocol,TCP)的全双工通信协议(Web Socket)、即时通讯协议(Message Queuing Telemetry Transport,MQTT)、可扩展通讯和表示协议(Extensible Messaging and Presence Protocol,XMPP)等消息通讯协议建立联系。为了方便描述,在本发明实施例中,将第一终端和第二终端之间建立的通讯连接称为桥梁。
示例性的,第二终端通过桥梁向第一终端发送接收应答信息。例如,第一终端在发送交互请求信息之后30秒(第一预设时间)内,未接收到接收应答信息,则可以认为第一终端与第二终端的连接状态为断开,此时,交互请求信息可以存储到发送队列中,等待重新发送。为了保持应用的文档对象模块在第一终端和第二终端保持动态一致,在一些实施例中,第一终端只有在发送交互请求信息,并接收应答信息之后,才会发送下一个交互请求信息。
第二终端在接收到第一终端发送的交互请求信息后,接下来,第二终端可以执行步骤S140和S150。
S140、第二终端根据交互请求信息和预设虚拟文档对象模型,生成文档变更信息。
在一些实施例中,预设虚拟文档对象模型(virtual DOM,vDOM),是指由第二终端中的解释器维护HVML对应的虚拟DOM,vDOM可以包括模板标签、动作标签等定义的元素以及数据。其中,预设虚拟文档对象模型仅是对计算机程序的描述,可以理解的是,其他可以处理交互请求信息并根据交互请求信息生成文档变更信息的计算机程序,同样在本发明的保护范围之内。
为了提高页面的渲染效率,同时提高用户体验,第二终端的解释器结合交互请求信息中包括的对应操作的事件描述,结合预设虚拟文档对象模型可以直接基于eDOM进行逻辑计算,为操作生成相应的文档变更信息。
在另一些实施例中,可以使用一般的高级编程语言,如C++/Python等处理来自第一终端的交互请求信息,以执行远程应用的操作逻辑。
交互请求信息还包括操作节点标识,第二终端生成文档变更信息时,还可以包括以下步骤:第二终端中的解释器根据操作节点标识,确定文档对象模型中的操作节点;接下来,解释器根据操作的事件描述和预设虚拟文档对象模型,生成操作节点的文档变更信息。由于结合操作节点标识,解释器可以快速定位到文档对象模型中需要进行逻辑运算的节点。
第二终端在生成文档变更信息之后,可以执行S150。
S150、第二终端向第一终端发送文档变更信息。
在一些实施例中,第二终端可以通过桥梁向第一终端发送文档变更信息,第一终端可以根据接收到的文档变更信息和已存的文档对象模型(uDOM),进行渲染得到对应操作的显示页面。
为了保证第二终端的解释器维护的应用实例对应的eDOM与第一终端维护的uDOM保持一致,在一些实施例中,解释器根据文档变更信息,更新应用实例对应的文档对象模型(eDOM);以及保存更新后的文档对象模型,以方便再次根据交互请求信息生成文档变更信息时,使解释器侧维护应用实例对应的eDOM和第一终端维护的uDOM保持一致,保证第一终端应用显示的页面显示过程流畅。
为了确保第二终端成功地将文档变更信息发送给第一终端,在一些实施例中,第一终端在接收到文档变更信息之后,可以向第二终端发送接收应答信息。若在第二预设时间内,第二终端未接收到第一终端发送的接收应答信息,则确定第一终端与第二终端的连接状态为断开;当第一终端与第二终端再次建立连接时,第二终端重新发送文档变更信息。
为了保持应用的文档对象模块在第一终端和第二终端保持动态一致,在一些实施例中,第二终端只有在发送文档变更信息,并接收应答信息之后,才会发送下一个文档变更信息。
第一终端在接到收到第二终端发送的文档变更信息之后,接下来可以执行S160。
S160、第一终端根据文档变更信息和应用的文档对象模型,渲染得到对应操作的显示页面。
第一终端根据文档变更信息和应用的文档对象模型,可以渲染得到对应操作的显示页面。
为了保持应用在第一终端的最终文档对象模型(uDOM)和在第二终端的有效文档对象模型(eDOM)的一致性,第一终端在接收服务器发送的文档变更信息之后,方法还包括:根据文档变更信息,更新文档对象模型;保存更新后的文档对象模型。
根据本发明实施例提供的远程页面渲染方法,在第一终端可以显示应用的页面,当用户与第一终端上显示的应用进行交互时,第一终端可以根据接收到的操作生成交互请求信息,并将该交互请求信息发送给第二终端,以使第二终端根据操作执行程序处理逻辑。第二终端根据交互请求信息,进行处理后产生对文档的变更信息,此时,可以只向第一终端传输文档对象模型发生变化部分的信息,即文档变更信息。由于第二终端和第一终端设备之间只传输了应用的文档对象模型的变化部分,大幅降低了需要传输的数据,减少了对带宽的需求。第一终端接收到第二终端发送的文档变更信息后,只需要将文档变更信息结合已存的应用的文档对象模型,即可得到对应操作的显示页面。由于直接结合了应用自身的文档对象模型进行优化并渲染得到对应操作的显示页面可以有效提高页面的渲染效率,同时提高用户体验。
此外,在本发明实施例中,由于第一终端只需要根据接收到的文本对象模型或者结合文本对象模型的改变信息进行渲染,得到应用的显示页面,而不直接运行脚本文件,例如虚拟文档对象模型,因此,第一终端安全性也将大为提高。
在一些实施例中,第一终端在显示应用的页面,若为建立应用的显示页面,则在接收操作之前,可以先从第二终端获取应用的文档对象模型,从而根据文档对象模型在第一终端渲染得到新的应用的页面。具体可以包括以下步骤:
S210、第一终端向服务器发送应用的页面创建请求。
在一些实施例中,第一终端要显示的一个新的应用的页面时,可以生成应用的页面创建请求,以用于第二终端根据应用创建请求,创建应用实例,并生成文档对象模型。
页面创建请求可以包括指定会话操作(sessionOp)和会话标识符(sessionId)等内容。例如,指定会话操作例如可以是创建指定的会话(create)、销毁指定的会话(destroy)以及设置指定会话为活动会话(activate)中的一种。其中,第二终端的解释器可以根据会话标识符可以快速定位到当前接收到操作的页面对应的会话,即eDOM。
为了提高用户体验,方便用户了解页面的主要内容,在一些实施例中,页面创建请求还可以包括:会话的标题(title)。为了提高第一终端所显示页面的流畅度,页面创建请求还可以包括:是否为模态页面(modal)、父会话标识符(parentId)。
示例性的,当页面创建请求包括销毁指定的会话时,根据父会话标识符,当前会话被销毁后可以返回父会话标识符所标识会话对应的页面。
当第一终端与第二终端之间预设的传输协议是使用JS对象简记(JavaScriptObject Notation,JSON)格式的数据格式来表示一个对文本对象模型时,示例性的,应用的页面创建请求的HTML/XML文档片段可以包括以下内容。
Figure BDA0002808521910000131
Figure BDA0002808521910000141
可以理解的是,创建eDOM的过程就是从根节点开始创建一个个子节点的过程,而创建子节点的过程本身是对eDOM的改变行为。对于后续用户与第一终端上显示的应用的页面进行交互所产生的操作,为了减少信息的传输量,使第二终端可以只向第一终端传输文档对象模型(eDOM)发生变化部分的信息,在一些实施例中,可以预先设置第一终端和第二终端机型信息传输时的传输协议,示例性的,传输协议可以包括:(1)始终使用JSON格式来表示一个对DOM的改变操作。(2)始终使用由解释器生成的节点句柄来指代某个特定的节点。(3)始终使用root来指代根节点的句柄。
可以理解的是,JSON格式的文档对象模型变化表达方式,仅仅是一种可选途径,在实际的第二终端的解释器和第一终端的用户代理实现中,可以使用不同于JSON的二进制表达来降低用户代理因解析JSON格式数据带来的负担。
在一些实施例中,第一终端若在预设时间内,未接收到第二终端发送的接收应答信息,则确定第一终端与第二终端的连接状态为断开;当第一终端与第二终端再次建立连接时,第一终端可以重新发送页面创建请求。
第二终端在接收到第一终端发送的页面创建请求之后,接下来可以执行S220。
S220、第二终端根据页面创建请求和预设虚拟文档对象模型,创建应用实例,并生成文档对象模型。
其中,预设虚拟文档对象模型(vDOM)是指由第二终端中的解释器维护HVML对应的虚拟DOM,vDOM可以包括模板标签、动作标签等定义的元素以及数据。在本发明实施例中,预设虚拟文档对象模型仅是对计算机程序的描述,可以理解的是,其他可以处理交互请求信息并根据交互请求信息生成文档变更信息的计算机程序,同样在本发明的保护范围之内。
此外,第二终端也可以使用一般的高级编程语言,如C++/Python等生成文档对象模型,并处理来自第一终端的交互请求信息,以执行远程应用的操作逻辑,即,第二终端中的解释器。
第二终端中的解释器,可以通过执行数据驱动的HVML程序或者一般的计算机程序,根据页面创建请求,生成文档对象模型。由于第二终端可以生成文档对象模型由于该文档对象模型是在第二终端实际动态生成和修改应用的文档对象模型,为方便描述,可以将第二终端生成的该文档对象模型描述为有效DOM(eDOM)。
在一些实施例中,第二终端生成的eDOM可以包括:会话标识符(session)、序列号(sequence)、操作节点标识(handle)、操作类型(operation)、操作的附加信息(payload)。
其中,会话标识符(session)可以取零或正整数,可以用来表示接收操作的页面对应的文档对象模型。可以理解的是,在第一终端,每个应用都可以对应由多个可以显示的页面,每个页面对应有至少一个文档对象模型。第二终端的解释器可以根据会话标识符(session),识别不同的页面。
序列号(sequence)可以为正整数,并根据第一终端与第二终端的通讯次数依次增加。
操作节点标识(handle)可以唯一确定一个目标节点,可以方便解释器快速定位文档对象模型中需要进行逻辑运算的节点对象。示例性的,当操作节点标识(handle)取root表示在根节点上执行操作。
操作类型(operation)可以是字符串。示例性的,操作类型例如可以是append、prepend、insertBefore、insertAfter、displace、update、remove、empty以及payload等节点。
其中,append是指在指定节点内追加一个子节点;prepend是指在指定节点内前置(prepend)一个子节点;insertBefore是指在指定节点之前插入一个节点;insertAfter是指在指定节点之后插入一个节点;displace是指置换指定节点的内容;update是指更改指定节点的属性或内容;remove是指删除指定节点,可以包括子节点;empty是指清空指定节点的内容,将删除所有子节点。
示例性的,当需要重置当前页面时,可在root节点上执行empty操作。
payload是指指定操作的附加信息;例如要在根节点上创建的多个子元素,通常是一个字典数组。示例性的,当操作类型为append时,可以表示在根节点上追加payload指定的节点。
作为一个具体的示例,根据页面创建请求,生成的eDOM可以包括以下内容:
Figure BDA0002808521910000161
Figure BDA0002808521910000171
当第二终端的解释器第一次生成eDOM之后,接下来第二终端执行S230。
S230、第二终端向第一终端发送文档对象模型。
在一些实施例中,为了降低第一终端的用户代理的工作量,可以把eDOM通过桥梁整个传输给第一终端的用户代理。之后,第二终端的解释器和第一终端的用户代理之间可以仅就文档对象模型的改变进行通讯。
第一终端在接收到第二终端发送的文档对象模型之后,接下来可以执行S250。
S250、根据文档对象模型,渲染得到应用的页面。
第一终端接收到文档对象模型之后,由用户代理最终根据文档对象模型进行渲染得到应用显示的页面,为方便描述,可以将第一终端保存的文档对象模型描述为最终DOM(uDOM)。
在本发明实施例中,由于第二终端向第一终端发送的是eDOM而不是原始的HTML/XML源文档,因此,有效节省了第一终端的用户代理对HTML/XML源文档的解析工作,从而可以大大降低第一终端的用户代理的工作量,尤其是对于硬件配置较低的第一终端,可以有效提高与用户交互时的响应速度,提高用户体验。
结合图2所示,第二终端可以与多个第一终端进行通讯连接,为多个第一终端的应用建立应用实例,其中,每个第一终端可以有多个应用,对应每个第一终端的应用,在第二终端可以有至少一个应用实例。
为了方便第二终端管理与其通讯连接的每个第一终端,第一终端可以向第二终端发送第一终端的第一终端标识,以用于第二终端建立第一终端标识与应用实例的关联关系。
在一些实施例中,第一终端还可以获取第一终端的状态信息;以及向第二终端发送第一终端的状态信息,以用于第二终端根据关联关系和第一终端的状态信息,调整应用实例的运行状态。
第二终端接收第一终端的状态信息,可以根据关联关系和第一终端的状态信息,调整应用实例的运行状态。
在一些实施例中,第一终端的状态信息还可以包括第一终端标识。第二终端在接收到第一终端的状态信息之后,可以根据第一终端标识与应用实例的关联关系,确定需要调整应用实例,并结合状态信息,调整第一终端对应的应用实例的运行状态。
示例性的,第一终端的运行状态信息可以是包括以下信息中的一种:第一终端开机、第一终端关机、主动断开网络连接或者网络连接恢复等。第一终端的运行状态信息还可以包括主动请求应用实例暂停、主动请求应用实例恢复等信息。
当第一终端的运行状态信息为第一终端开机或者网络连接恢复,第二终端可以将应用实例的运行状态调整为恢复(resume),即启动应用实例。
在一些实施例中,第二终端在调整第一终端对应的应用实例的运行状态之前,第二终端可以先验证第一终端的身份信息。
在第一终端身份验证通过后,第二终端可以根据关联关系和第一终端的状态信息,调整应用实例的运行状态。若第一终端的未通过身份验证,则第二终端可以拒绝执行第一终端的请求,还可以向第一终端发送相应的拒绝服务信息。
示例性的,在第二终端接收到的第一终端的状态信息包括第一终端开机时,第一终端可以使用一个令牌(token),结合非对称加密算法生成签名来验证第一终端的身份,例如,第一终端可以包括一个加密芯片,其中,加密芯片保存有非对称加密算法中的公钥。第一终端可以使用公钥对token进行签名,并将签名后的token发送给第二终端,第二终端可以根据使用保存在第二终端上的私钥对签名后的token进行验证,如果签名验证通过,则可确认第一终端身份。如此,可完成第一终端的身份验证。
在一些实施例中,当第一终端的运行状态信息为第一终端关机或者为主动断开网络连接时,第二终端可以将应用实例的运行状态调整为暂停(pause),第二终端可以暂停服务,也就是说,第二终端可以将应用实例的进程转储(dump)到持久存储介质(例如磁盘、数据库等),以及结束应用实例的运行。或者第二终端于第一终端断开连接的时长超过预设的时长,第二终端也可以直接终结(destroy)应用实例的运行,之后第二终端还可以向第一终端发送相应的服务响应信息。
当第一终端的运行状态信息为主动请求应用实例恢复时,第二终端可以将转储到持久存储介质的应用实例进程重新启动,或者是第二终端可以拒绝执行第一终端的请求,以及向第一终端发送相应的拒绝服务信息。
当第一终端的运行状态信息为主动请求应用实例暂停时,第二终端可以将应用实例的进程转储到持久存储介质(例如磁盘、数据库等),以及结束应用实例的运行。第二终端还可以向第一终端发送相应的服务响应信息。
在一些实施例中,第一终端可以将发出去的信息进行封装,得到用于传输的第一数据包。例如,第一终端在将交互请求信息发送给第二终端之前,可以先对交互请求信息进行封装,得到用于传输的第一数据包。
第一数据包可以包括:第一终端标识(deviceId)、第一数据包的标识符(packageId)、第一终端的状态信息(status)、第一数据包代表的动作(action)、状态的附加信息(extra)、动作对应的数据(data)等。第二终端可以根据第一数据包中包括的内容,对第一终端的应用实例进行管理。
示例性的,第一终端标识(deviceId)是第一终端唯一性标识符,可以使用字符串。
第一数据包的标识符(packageId)可以基于第一终端标识、第一数据包的生成时间、序列号和随机值等内容的基础上进行加密处理后获得。例如,可以使用信息摘要算法(Message-Digest Algorithm,MD5)等哈希算法生成哈希值作为第一数据包的标识符。作为一个具体的实施例,当第二终端需要对接收到的消息进行应答时,第二终端可以将该消息中的第一数据包标识符将作为数据(data)字段发送给第一终端,以表明应答对应的源第一数据包(source package)。
第一数据包代表的动作(action),示例性的,action可以取start、stop、pause、resume、pong等动作,以用于第二终端的解释器根据第一数据包代表的动作执行相应的逻辑运算。例如,当action取update时,第二终端的解释器可以对应更新eDOM,以及对接收到的封装后的交互请求信息进行应答;当action取pong时,第二终端可以应答第一终端发送的心跳第一数据包;当action取ack时,第二终端的解释器可以对应用实例的eDOM进行管理或者是对uDOM更新请求做应答。
其中,当第一终端和第二终端之间无交互请求信息或者无文档变更信息进行接收或发送时,第一终端和第二终端可以按照预设时间时间间隔,发送一次,以确保第一终端和第二终端之间保持连接,保证用户与第一终端之间交互的流畅性。预定时间间隔例如可以是30秒,在此不做具体限定。
作为一个具体的实例,当第一终端和第二终端之间最后一次通讯时间超过30秒时,第二终端可以向第一终端发送ping数据包,第一终端在收到ping数据包之后,向第二终端应发送pong数据包,第二终端收到pong数据包之后,可以更新和该第一终端的最近一次通讯时间。若超过预定时间(例如60秒),第二终端未收到pong数据包,则可判断发生故障,其中,故障例如可能是网络连接丢失,第一终端用户代理停止响应等。对于第一终端,若超过给定时间(例如60秒),未收到来自第二终端的文档变更信息或者ping数据包,可判断发生故障,其中,故障例如可能是丢失网络连接,第二终端故障等。
第一终端的状态信息(status)可以用来表示第一终端的运行状态,例如,运行正常、运行资源受限等状态信息。可以理解的是,当action取ack时,第二终端的解释器可以对应用实例的eDOM进行管理或者是对uDOM更新请求做应答,此时,status取值可以包括具体的状态信息,为了减少数据的传输量,减少带宽占用,当action取其他当动作时,status的取值可以为空值。
此外,对于状态的附加信息(extra),当action取ack时,可以来表示额外的可打印字符串消息,为了减少数据的传输量,减少带宽占用,当action取其他当动作时,extra的取值也可以为空值。
示例性的,动作对应的数据(data)可以是JSON数据段,当action为update时,data可以包括交互请求信息;当action为ack时,data可以包括源第一数据包(source package)的标识符。在一些实施例中,data还可以包括用于验证第一终端身份的数据。为了减少数据的传输量,减少带宽占用,当action取其他当动作时,data的取值也可以为空值。
作为一个具体的示例,第一终端可以以下格式向第二终端发送第一数据包。
Figure BDA0002808521910000211
Figure BDA0002808521910000221
在一些实施例中,第二终端接收到第一终端的第一数据包之后,可以对第一数据包进行解析,并进行相应的逻辑运算,得到向第一终端反馈的第二数据包。
在第二数据包中可以包括:第一终端标识(deviceId)、第二数据包的标识符(packageId)、第二数据包代表的动作(action)、状态响应信息(status)、状态的附加信息(extra)、动作对应的数据(data)等。
示例性的,第一终端标识(deviceId)是第一终端唯一性标识符,可以使用字符串。
第二数据包的标识符(packageId)可以基于第一终端标识、第二数据包的生成时间、序列号和随机值等内容的基础上进行加密处理后获得。
第二数据包代表的动作(action),action可以取值为应答(ack)、更新(update)、响应(response)、create、destroy、activate或者ping等。例如,当action取值为ack时,第二数据包用于对来自第一设备的eDOM的更新数据或者用户交互事件做应答。当action取值为update时,第二数据包用于更新uDOM。当action取值为response时,第二数据包用于对来自第一终端的控制请求(例如start、stop、pause、resume)做出响应。当action取值为ping时,第二数据包可以是对第一终端发送的第一数据包中包括心跳数据包做出的响应。
第二数据包中的状态响应信息(status)可以在action为response或者ack时取值响应或应答状态信息。为了减少数据的传输量,减少带宽占用,当action取其他当动作时,status的取值可以为空值。
第二数据包中的状态的附加信息(extra)可以在action为response或者ack时表示额外的可打印字符串消息,为了减少数据的传输量,减少带宽占用,当action取其他当动作时,extra的取值也可以为空值。
第二数据包中的动作对应的数据(data)可以是JSON数据段,例如,当action为update时,data可以是文档变更信息,具体地,文档变更信息可以是eDOM的改变部分;data也可以是应用实例首次建立时的eDOM。当action为ack时,data可以包括源数据包标识符。为了减少数据的传输量,减少带宽占用,当action取其他当动作时,data的取值也可以为空值。
作为一个具体的示例,第二终端可以以下格式向第一终端发送第一数据包。
Figure BDA0002808521910000231
为了更加清楚的描述本发明提供的远程页面渲染方法,下面结合一个具体的实施例对本发明提供的远程页面渲染方法进行介绍。
S301、第一终端接收操作。
第一终端的用户代理通过渲染uDOM可以得到应用的页面,并在第一终端显示,当用户与第一终端上显示的应用进行交互时,第一终端接收到用户的操作。
在一些实施例中,第一终端可以是手表、智能音箱、手机等带有显示界面的物联网设备,在此并不具体限定。
接下来第一终端执行S302。
S302、第一终端根据操作,生成交互请求信息。
在一些实施例中,交互请求信息可以包括对应操作的事件描述,事件描述例如可以是点击按钮、输入框的内容变化、选择框的选中值发生变化、提交表单等。
作为一个具体的示例,对应操作的事件描述可以被打包成JSON格式的数据,JSON格式的事件描述可以包括:会话标识符(session)、序列号(sequence)、操作节点标识(handle)、事件名称(event)以及操作的附加信息(payload),其中,操作的附加信息(payload)具体内容可以对应不同的操作有不同的描述。
示例性的,当操作是点击时,JSON格式的事件描述可以如下所示:
Figure BDA0002808521910000241
当操作是输入框中输入内容时,尤其是当输入的内容较少,例如,输入的内容为“HVML is great!”,为了更加快速的响应用户的操作,在payload中直接包括用户编辑后的完整内容,JSON格式的事件描述可以如下所示:
Figure BDA0002808521910000242
当操作是输入框中输入内容时,为了更好监控每个编辑操作,尤其是当输入的内容较多时,降低第一终端和第二终端之间需要传输的数据量,可以在用户输入时,发送修改信息,例如在某个位置增加一个字符,在某个位置删除一个或者多个字符等,示例性的,可以使用insert作为事件名称,用来表示在指定输入框上的插入操作。JSON格式的事件描述可以如下所示:
Figure BDA0002808521910000251
可以理解的是,当解释器和用户代理之间的通讯桥梁建立在低带宽情形下,为了能保证第一终端接收到的所有编辑操作都可以精确发送,第一终端的用户代理可能会在一个数据包中打包多个同样的编辑操作。例如,上面的编辑操作应该是用户分别键入了H、V、M、L四个字符,可以被打包到交互请求信息中发送。
第一终端在得到交互请求信息之后,接下来可以执行S303。
S303、向第二终端发送交互请求信息。
在一些实施例中,第二终端接收交互请求信息,可以通过监听模块(observe)实时监听交互请求信息中是否存在文档节点的变化的渲染请求。
在一些实施例中,第二终端可以是逻辑运算能力比较高的手机、计算机或者专用服务器等设备,在此并不具体限定。
第二终端在接收到第一终端发送的交互请求信息后,接下来,第二终端可以执行步骤S140和S150。
S140、根据交互请求信息和预设虚拟文档对象模型,生成文档变更信息。
作为一个具体的示例,当交互请求信息为在页面中增加一个段落(paragraph),例如“HVML,您好!”,解释器可以生成以下JSON格式的文档变更信息。
Figure BDA0002808521910000261
作为另一个具体的示例,当页面中已有一个段落(paragraph),交互请求信息为要修改段落终端内容为“Hello,world!”,解释器可以生成以下JSON格式的文档变更信息。
Figure BDA0002808521910000262
Figure BDA0002808521910000271
可以理解的是,JSON格式的文档对象模型变化表达方式,仅仅是一种可选途径,在实际的第二终端的解释器和第一终端的用户代理实现中,可以使用不同于JSON的二进制表达来降低用户代理因解析JSON格式数据带来的负担。
第二终端的解释器在生成上述文档变更信息之后,接下来可以执行S304。
S304、第二终端向第一终端发送文档变更信息。
第一终端在接到收到第二终端发送的文档变更信息之后,接下来可以执行S305。
S305、第一终端根据文档变更信息和应用的文档对象模型,渲染得到对应操作的显示页面。
第一终端根据文档变更信息和应用的文档对象模型,可以渲染得到对应操作的显示页面。
根据本发明实施例提供的远程页面渲染方法,在第一终端可以显示应用的页面,当用户与第一终端上显示的应用进行交互时,第一终端可以根据接收到的操作生成交互请求信息,并将该交互请求信息发送给第二终端,以使第二终端根据操作执行相应的程序逻辑处理。第二终端根据交互请求信息,进行程序处理后,可以只向第一终端传输文档对象模型发生变化部分的信息,即文档变更信息。由于第二终端和第一终端设备之间只传输了应用的文档对象模型的变化部分,大幅降低了需要传输的数据,减少了对带宽的需求。第一终端接收到第二终端发送的文档变更信息后,只需要将文档变更信息结合已存的应用的文档对象模型,即可得到对应操作的显示页面。由于直接结合了应用自身的文档对象模型进行优化并渲染得到对应操作的显示页面可以有效提高页面的渲染效率,同时提高用户体验。
此外,根据本发明实施例的远程页面渲染方法,当第一终端需要调整显示效果或者功能时,也只需要第二终端文档对象模型的改变部分发送给第一终端,第一终端根据接收到的改变部分,并结合本身已经存储的文档对象模型,进行页面的渲染即可,从而避免了更新整个第一终端的固件(firmware)。其中,固件可以是操作系统、渲染器等在内的所有程序映像。
图3是本发明实施例提供的一种远程页面渲染装置的结构示意图,远程页面渲染装置300可以应用于第一终端,如图3所示,该远程页面渲染装置300可以包括:接收模块310、处理模块320、发送模块330、渲染模块340。
接收模块310,用于在显示应用的页面的情况下,接收操作;
处理模块320,用于根据操作,生成交互请求信息,其中,交互请求信息包括对应操作的事件描述;
发送模块330,用于向第二终端发送交互请求信息,以用于第二终端根据交互请求信息生成文档变更信息;
接收模块310,还用于接收第二终端发送的文档变更信息;
渲染模块340,用于根据文档变更信息和应用的文档对象模型,渲染得到对应操作的显示页面。
在一些实施例中,发送模块330还用于向第二终端发送应用的页面创建请求,以用于第二终端根据页面创建请求,创建应用实例,并生成文档对象模型;
接收模块310还用于接收第二终端发送的文档对象模型;
渲染模块340还用于根据文档对象模型,渲染得到应用的页面。
在一些实施例中,渲染模块340还用于确定在应用的页面接收到操作的操作节点;根据操作节点,确定操作节点标识;基于操作和操作节点,生成交互请求信息,其中,交互请求信息还包括操作节点标识。
在一些实施例中,远程页面渲染装置300还可以包括更新模块,用于根据文档变更信息,更新文档对象模型;保存更新后的文档对象模型。
在一些实施例中,发送模块330还用于若在第一预设时间内,未接收到第二终端发送的接收应答信息,则确定第一终端与第二终端的连接状态为断开;当第一终端与第二终端再次建立连接时,重新发送交互请求信息。
在一些实施例中,发送模块330还用于向第二终端发送第一终端的第一终端标识,以用于第二终端建立第一终端标识与应用实例的关联关系。
在一些实施例中,发送模块330还用于获取第一终端的状态信息;关系和第一终端的状态信息,调整应用实例的运行状态。
可以理解的是,本发明实施例的远程页面渲染装置300,可以对应于本发明实施例提供的远程页面渲染方法的执行主体,远程页面渲染装置300的各个模块/单元的操作和/或功能的具体细节可以参见上述本发明实施例提供的远程页面渲染方法中的相应部分的描述,为了简洁,在此不再赘述。
图4是本发明实施例提供的另一种远程页面渲染装置的结构示意图,远程页面渲染装置400可以应用于第二终端,如图4所示,该远程页面渲染装置400可以包括:接收模块410、处理模块420和发送模块430。
接收模块410,用于接收第一终端发送的交互请求信息,其中,交互请求信息包括对应操作的事件描述;
处理模块420,用于根据交互请求信息和预设虚拟文档对象模型,生成文档变更信息;处理模块420还可以用于或其他可以处理交互请求信息并根据交互请求信息生成文档变更信息的计算机程序。
发送模块430,用于向第一终端发送文档变更信息,以用于第一终端根据文档变更信息处理得到对应操作的显示页面。
在一些实施例中,接收模块410还用于接收第一终端发送的应用的页面创建请求;处理模块420还用于根据页面创建请求和预设虚拟文档对象模型,或其他可以生成文档对象模型的计算机程序,创建应用实例,并生成文档对象模型;发送模块430还用于向第一终端发送文档对象模型,以用于第一终端根据文档对象模型渲染得到应用的页面。
在一些实施例中,交互请求信息还包括操作节点标识;处理模块420还用于根据操作节点标识,确定文档对象模型中的操作节点;根据操作的事件描述和预设虚拟文档对象模型,生成操作节点的文档变更信息。
在一些实施例中,远程页面渲染装置400还可以包括更新模块,用于根据文档变更信息,更新文档对象模型;以及,保存更新后的文档对象模型。
在一些实施例中,发送模块430还用于若在第二预设时间内,未接收到第一终端发送的接收应答信息,则确定第一终端与第二终端的连接状态为断开;当第一终端与第二终端再次建立连接时,重新发送文档变更信息。
在一些实施例中,接收模块410还用于接收第一终端发送的第一终端标识;处理模块420还用于建立第一终端标识与应用实例的关联关系。
在一些实施例中,接收模块410还用于接收第一终端的状态信息;处理模块420还用于根据关联关系和第一终端的状态信息,调整应用实例的运行状态。
可以理解的是,本发明实施例的远程页面渲染装置400,可以对应于本发明实施例提供的远程页面渲染方法的执行主体,远程页面渲染装置400的各个模块/单元的操作和/或功能的具体细节可以参见上述本发明实施例提供的远程页面渲染方法中的相应部分的描述,为了简洁,在此不再赘述。
本发明实施例的远程页面渲染装置,应用可以在第一终端显示,当用户与第一终端上显示的应用的页面进行交互时,第一终端可以根据接收到的操作生成交互请求信息,并将该交互请求信息发送给第二终端,以使第二终端对操作进行相应的渲染。第二终端根据交互请求信息,进行处理后,可以只向第一终端传输文档对象模型发生变化部分的信息,即文档变更信息。由于第二终端和第一终端设备之间只传输了应用的文档对象模型的变化部分,大幅降低了需要传输的数据,减少了对带宽的需求。第一终端接收到第二终端发送的文档变更信息后,只需要将文档变更信息结合已存的应用的文档对象模型,即可得到对应操作的显示页面。由于直接结合了应用自身的文档对象模型进行优化并渲染得到页面上对应操作的显示图像,因此可以有效提高页面的渲染效率,同时提高用户体验。
图5是本发明实施例提供的一种远程页面渲染设备的硬件结构示意图。
如图5所示,本实施例中的远程页面渲染设备500包括输入设备501、输入接口502、中央处理器503、存储器504、输出接口505、以及输出设备506。其中,输入接口502、中央处理器503、存储器504、以及输出接口505通过总线510相互连接,输入设备501和输出设备506分别通过输入接口502和输出接口505与总线510连接,进而与远程页面渲染设备500的其他组件连接。
具体地,输入设备501接收来自外部的输入信息,并通过输入接口502将输入信息传送到中央处理器503;中央处理器503基于存储器504中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器504中,然后通过输出接口505将输出信息传送到输出设备506;输出设备506将输出信息输出到远程页面渲染设备500的外部供用户使用。
也就是说,图5所示的远程页面渲染设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合本发明实施例提供的远程页面渲染方法。
在一个实施例中,图5所示的远程页面渲染设备500包括:存储器504,用于存储程序;处理器503,用于运行存储器中存储的程序,以执行本发明实施例提供的远程页面渲染方法。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的远程页面渲染方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,做出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、只读存储器(Read-Only Memory,ROM)、闪存、可擦除只读存储器(Erasable ReadOnly Memory,EROM)、软盘、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光盘、硬盘、光纤介质、射频(Radio Frequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (15)

1.一种远程页面渲染方法,其特征在于,所述方法应用于第一终端,所述方法包括:
在显示应用的页面的情况下,接收操作;
根据所述操作,生成交互请求信息,其中,所述交互请求信息包括对应所述操作的事件描述;
向第二终端发送所述交互请求信息,以用于所述第二终端根据所述交互请求信息生成文档变更信息;
接收所述第二终端发送的所述文档变更信息;
根据所述文档变更信息和所述应用的文档对象模型,渲染得到对应所述操作的显示页面。
2.根据权利要求1所述的方法,其特征在于,在接收操作之前,所述方法还包括:
向所述第二终端发送所述应用的页面创建请求,以用于所述第二终端根据所述页面创建请求,创建应用实例,并生成文档对象模型;
接收所述第二终端发送的所述文档对象模型;
根据所述文档对象模型,渲染得到所述应用的页面。
3.根据权利要求1所述的方法,其特征在于,所述根据所述操作,生成交互请求信息,包括:
确定在所述应用的页面接收到所述操作的操作节点;
根据所述操作节点,确定操作节点标识;
基于所述操作和所述操作节点,生成所述交互请求信息,其中,所述交互请求信息还包括所述操作节点标识。
4.根据权利要求2所述的方法,其特征在于,在所述接收所述第二终端发送的所述文档变更信息之后,所述方法还包括:
根据所述文档变更信息,更新所述文档对象模型;
保存更新后的所述文档对象模型。
5.根据权利要求1所述的方法,其特征在于,在所述向第二终端发送所述交互请求信息之后,所述方法还包括:
若在第一预设时间内,未接收到所述第二终端发送的接收应答信息,则确定所述第一终端与所述第二终端的连接状态为断开;
当所述第一终端与所述第二终端再次建立连接时,重新发送所述交互请求信息。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
向所述第二终端发送所述第一终端的第一终端标识,以用于所述第二终端建立所述第一终端标识与所述应用实例的关联关系。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述第一终端的状态信息;
向所述第二终端发送所述第一终端的状态信息,以用于所述第二终端根据所述关联关系和所述第一终端的状态信息,调整所述应用实例的运行状态。
8.一种远程页面渲染方法,其特征在于,所述方法应用于第二终端,所述方法包括:
接收第一终端发送的交互请求信息,其中,所述交互请求信息包括对应操作的事件描述;
根据所述交互请求信息和预设虚拟文档对象模型,生成文档变更信息;
向所述第一终端发送所述文档变更信息,以用于所述第一终端根据所述文档变更信息渲染得到对应所述操作的显示页面。
9.根据权利要求8所述的方法,其特征在于,在所述接收第一终端发送的交互请求信息之前,所述方法还包括:
接收所述第一终端发送的应用的页面创建请求;
根据所述页面创建请求和所述预设虚拟文档对象模型,创建应用实例,并生成文档对象模型;
向所述第一终端发送所述文档对象模型,以用于所述第一终端根据所述文档对象模型渲染得到应用的页面。
10.根据权利要求8所述的方法,其特征在于,所述交互请求信息还包括操作节点标识;
所述根据所述交互请求信息和预设虚拟文档对象模型,生成文档变更信息,包括:
根据所述操作节点标识,确定所述文档对象模型中的操作节点;
根据所述操作的事件描述和所述预设虚拟文档对象模型,生成所述操作节点的文档变更信息;
根据所述文档变更信息,更新所述文档对象模型;以及,
保存更新后的所述文档对象模型。
11.根据权利要求8所述的方法,其特征在于,在所述向所述第一终端发送所述文档变更信息之后,所述方法还包括:
若在第二预设时间内,未接收到所述第一终端发送的接收应答信息,则确定所述第一终端与所述第二终端的连接状态为断开;
当所述第一终端与所述第二终端再次建立连接时,重新发送所述文档变更信息。
12.一种远程页面渲染装置,其特征在于,所述装置包括:
接收模块,用于在显示应用的页面的情况下,接收操作;
处理模块,用于根据所述操作,生成交互请求信息,其中,所述交互请求信息包括对应所述操作的事件描述;
发送模块,用于向第二终端发送所述交互请求信息,以用于所述第二终端根据所述交互请求信息生成文档变更信息;
所述接收模块,还用于接收所述第二终端发送的所述文档变更信息;
渲染模块,用于根据所述文档变更信息和所述应用的文档对象模型,渲染得到对应所述操作的显示页面。
13.一种远程页面渲染装置,其特征在于,所述装置包括:
接收模块,用于接收第一终端发送的交互请求信息,其中,所述交互请求信息包括对应操作的事件描述;
处理模块,用于根据所述交互请求信息和预设虚拟文档对象模型,生成文档变更信息;
发送模块,用于向所述第一终端发送所述文档变更信息,以用于所述第一终端根据所述文档变更信息渲染得到对应所述操作的显示页面。
14.一种远程页面渲染设备,其特征在于,所述设备包括:处理器,以及存储有计算机程序指令的存储器;
所述处理器读取并执行所述计算机程序指令,以实现如权利要求1-11任意一项所述的远程页面渲染方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-11任意一项所述的远程页面渲染方法。
CN202011377386.XA 2020-11-30 2020-11-30 一种远程页面渲染方法、装置、设备及计算机存储介质 Pending CN112540816A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011377386.XA CN112540816A (zh) 2020-11-30 2020-11-30 一种远程页面渲染方法、装置、设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011377386.XA CN112540816A (zh) 2020-11-30 2020-11-30 一种远程页面渲染方法、装置、设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN112540816A true CN112540816A (zh) 2021-03-23

Family

ID=75016573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011377386.XA Pending CN112540816A (zh) 2020-11-30 2020-11-30 一种远程页面渲染方法、装置、设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN112540816A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704824A (zh) * 2021-08-31 2021-11-26 平安普惠企业管理有限公司 页面引导标记的同步生成方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1682183A (zh) * 2002-08-02 2005-10-12 Sap股份公司 在客户机-服务器通信中处理增量数据的方法和计算机系统
CN111639287A (zh) * 2020-04-29 2020-09-08 深圳壹账通智能科技有限公司 一种页面处理方法、装置、终端设备及可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1682183A (zh) * 2002-08-02 2005-10-12 Sap股份公司 在客户机-服务器通信中处理增量数据的方法和计算机系统
CN111639287A (zh) * 2020-04-29 2020-09-08 深圳壹账通智能科技有限公司 一种页面处理方法、装置、终端设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704824A (zh) * 2021-08-31 2021-11-26 平安普惠企业管理有限公司 页面引导标记的同步生成方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10805380B2 (en) Data transmission method and device
JP4363847B2 (ja) インタラクティブ・テレビ用のデジタル・テレビ・アプリケーション・プロトコル
US10834031B2 (en) Information exchange method, client, and apparatus
CN102761564B (zh) 图形共享方法、系统与终端
JP3654360B2 (ja) 制御システムおよび方法、情報処理装置および方法、情報処理端末および方法、記録媒体、並びにプログラム
US7089311B2 (en) Methods, systems and computer program products for resuming SNA application-client communications after loss of an IP network connection
CN113181646A (zh) 游戏数据方法及装置、电子设备、存储介质
CN113973125A (zh) 联邦学习中的通信方法及装置、电子设备、存储介质
CN110650097B (zh) 一种数据传播方法、装置以及计算机可读存储介质
CN112540816A (zh) 一种远程页面渲染方法、装置、设备及计算机存储介质
CN107147561B (zh) 一种基于xmpp协议的即时通讯方法及系统
WO2019095388A1 (zh) 一种远程协助处理方法及设备
US20230336494A1 (en) Data processing method and apparatuses, devices, computer-readable storage medium, and computer program product
WO2017129107A1 (zh) 一种图像绘制的方法、相关设备及系统
CN112689020A (zh) 一种消息传输方法、消息中间件、电子设备及存储介质
CN112699326A (zh) 一种网页页面渲染控制方法及装置
CN114500243B (zh) 数据通信方法、装置、计算机可读介质及电子设备
CN113810264B (zh) 信息传输方法、装置、电子设备和存储介质
CN114900489B (zh) 一种消息处理方法、装置、电子设备及存储介质
CN106453573A (zh) 一种http服务器中cgi请求的处理方法和系统
CN110816435A (zh) 一种远程控制车辆的方法及装置
CN117082124B (zh) 数据传送方法、装置、设备、介质及产品
CN113032123B (zh) 一种远程npl运行环境的线程调度方法、系统及相关装置
CN116226566B (zh) 一种渲染内嵌客户端界面至网页的方法和系统
CN114202947B (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