首页 / 专利库 / 电脑零配件 / 计算机系统 / 具有广义屏幕描述的屏幕内容共享系统的框架

具有广义屏幕描述的屏幕内容共享系统的框架

阅读:44发布:2024-01-10

专利汇可以提供具有广义屏幕描述的屏幕内容共享系统的框架专利检索,专利查询,专利分析的服务。并且描述了一种具有广义屏幕描述的屏幕内容共享系统的 框架 。在一种方法中,将屏幕内容更新消息从客户端设备发送到控制面,其中,在所述控制面上,所述客户端设备期望与远程设备共享其屏幕内容。所述远程设备发送指示对接收所述更新感兴趣的消息。所述控制面随后从所述客户端设备检索具体描述。可基于所述远程设备的计算上下文将所述具体描述 修剪 为更兼容的格式。在一些 实施例 中,将所述具体描述发送给所述远程设备,且所述具体描述包括屏幕描述和内容描述。对共享屏幕内容进行描述,之后从业务路由器中检索所述内容。基于所述屏幕描述和从所述业务路由器中检索出的所述内容组装所述共享屏幕内容。,下面是具有广义屏幕描述的屏幕内容共享系统的框架专利的具体信息内容。

1.一种设备与远程设备共享屏幕上屏幕内容的方法,其特征在于,包括:
在控制面接收来自第二客户端设备的兴趣消息;
在所述控制面接收来自第一客户端的更新消息的具体描述,其中,所述具体描述包括屏幕描述和内容描述;
将所述具体描述发送给所述第二客户端设备;
检索来自业务路由器的内容,其中,所述内容描述中描述了所述内容;
基于所述屏幕描述和从所述业务路由器中检索出的所述内容组装共享屏幕内容。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述第二客户端设备呈现所述共享屏幕内容。
3.根据权利要求2所述的方法,其特征在于,还包括:
基于所述第二客户端设备的计算上下文修剪所述具体描述。
4.根据权利要求2所述的方法,其特征在于,还包括:在所述第一客户端设备收集鼠标移动;
将所述鼠标移动作为屏幕内容更新发送到所述控制面;
将所述鼠标移动集成到所述共享屏幕内容。
5.根据权利要求2所述的方法,其特征在于,组装共享屏幕内容由屏幕内容共享控制服务器来执行。
6.根据权利要求1所述的方法,其特征在于,还包括:
捕捉所述共享屏幕内容的多个像素图,并将所述像素图作为流式视频发送给所述第二客户端设备。
7.一种计算机可用介质,其特征在于,具有体现在其中的计算机可读程序代码,所述计算机可读程序代码用于使计算机系统执行与远程设备共享设备屏幕内容的方法,包括在控制面接收来自第二客户端设备的兴趣消息;
在所述控制面接收来自第一客户端的更新消息的具体描述,其中,所述具体描述包括屏幕描述和内容描述;
将所述具体描述发送给所述第二客户端设备;
检索来自业务路由器的内容,其中,所述内容描述中描述了所述内容;
基于所述屏幕描述和从所述业务路由器中检索出的所述内容组装共享屏幕内容。
8.根据权利要求7所述的计算机可用介质,其特征在于,还包括:在所述第二客户端设备呈现所述共享屏幕内容。
9.根据权利要求8所述的计算机可用介质,其特征在于,还包括:
基于所述第二客户端设备的计算上下文修剪所述具体描述。
10.根据权利要求8所述的计算机可用介质,其特征在于,组装共享屏幕内容由消息处理器或屏幕内容共享控制服务器来执行。
11.根据权利要求7所述的计算机可用介质,其特征在于,还包括:捕捉所述共享屏幕内容的多个像素图,并将所述像素图作为流式视频发送给所述第二客户端设备。
12.一种系统,其特征在于,包括:
控制面,用于接收涉及屏幕内容更新的更新消息,所述更新消息包括来自第一客户端设备的发布者ID;通知第二客户端设备可更新屏幕内容;
耦合到所述控制面的业务面,用于接收来自所述第二客户端设备的兴趣消息,所述兴趣消息指示期望接收所述屏幕内容更新;
耦合到所述业务面的数据面,用于存储和/或检索将所述屏幕内容更新呈现到所述第二客户端设备所需要的内容;
耦合到所述控制面、所述业务面和所述数据面的消息处理器,用于请求和接收来自所述第一客户端设备的所述屏幕内容更新的具体描述,并将所述具体描述发送给所述第二客户端设备,其中,
基于所述具体描述在所述第二客户端设备上呈现共享屏幕内容。
13.根据权利要求12所述的系统,其特征在于,所述消息处理器用于基于所述第二客户端设备的特权修改所述具体描述。
14.根据权利要求12所述的系统,其特征在于,所述消息处理器用于基于所述第二客户端设备的计算上下文修改所述具体描述。
15.根据权利要求12所述的系统,其特征在于,所述具体描述包括屏幕描述和内容描述。
16.根据权利要求15所述的系统,其特征在于,所述共享屏幕是基于所述屏幕描述和从业务路由器中检索出的所述内容描述中所描述的内容进行呈现的。
17.根据权利要求12所述的系统,其特征在于,所述更新消息包括时间戳和/或所述屏幕内容更新的描述的哈希。
18.根据权利要求12所述的系统,其特征在于,所述控制面、业务面和数据面属于信息为中心的网络(简称ICN)。
19.根据权利要求12所述的系统,其特征在于,屏幕内容共享控制服务器用于接收屏幕内容控制消息、屏幕描述、鼠标移动消息和内容数据包。
20.根据权利要求12所述的系统,其特征在于,所述具体描述包括树形结构,其描述屏幕上一个或多个内容对象之间的关系。

说明书全文

具有广义屏幕描述的屏幕内容共享系统的框架

[0001] 相关申请案交叉申请
[0002] 本发明要求于2013年10月11日递交的、发明名称为“具有广义屏幕描述的屏幕共享系统的框架”的第61/890,140号临时专利申请案的在先申请优先权,其发明人与本发明
的发明人相同。以上参考的临时申请案的全部内容以引用的方式并入本文本。

技术领域

[0003] 本发明大体涉及远程屏幕内容共享领域。更具体地说,本发明涉及在多个设备间提供具有广义描述文件的屏幕内容共享。

背景技术

[0004] 远程端主机间的屏幕内容共享是为人们克服空间障碍并实现各种任务的一项重要工具,包括但不限于世界各地用户间的访问、远程控制和实时协作。为支持远程屏幕内容共享,已开发出许多现有技术和产品。它们基本上可以分成两大类:共享数据以在远程显示器上进行绘制和连续捕捉VGA(视频图形阵列)流或者将屏幕作为一系列像素图进行捕捉。
[0005] 考虑下面的场景:Alice想与Bob共享她的当前屏幕,屏幕上显示的是名为“HelloWorld.ppt”的幻灯片文件的第一张幻灯片。她可以通过网络将该文件以及指示当前页码的消息发送给Bob。之后,Bob可以通过播放所述文件的指定页来呈现Alice的屏幕。这一场景中,Alice通过共享内容数据和辅助信息共享其屏幕内容。这种方法有效消耗了网络带宽。但这对参与者的操作系统和应用程序安装有严格的要求。在本例中,如果Bob没有合适的软件打开幻灯片文件,他就无法呈现Alice的屏幕内容。
[0006] 一种可选的方法是连续共享捕捉到的像素图。在本示例场景中,Alice将其屏幕作为像素阵列进行捕捉,并将一系列像素图发送给Bob,Bob随后像播放视频一样呈现这些像
素图。与共享数据相比,这一方法的软件要求较灵活。但这还是会占用大量的网络资源,并且可能会降低显示的清晰度。考虑下面的情况:Alice想与Bob共享她全屏播放视频的当前
屏幕。若她直接共享捕捉到的屏幕像素图,则会大量消耗Alice的上行带宽。或者,Alice可以在共享像素图之前将其进行压缩,从而减少带宽消耗,但编码和解码期间视频的分辨率
质量会降低。具体地,若Alice的屏幕上播放的视频来自网站,如YouTube,那么Alice设备的路由会给Alice的计算资源和网络资源增加不必要的负载。
[0007] 一般而言,不考虑屏幕内容而捕捉整个屏幕会导致屏幕内容共享机制效率低,因为没有保证适合各种屏幕内容的统一的编码和压缩方法。考虑这样一种情况:远程参与者
共享屏幕内容,屏幕上是包含一段文字和视频的网页。直接发送该文本比将该屏幕作为
进行捕捉并发送该帧的开销要小。同时,与共享原始视频文件相比,使用屏幕捕捉机制的视频清晰度降低。此外,若视频为网络资源,屏幕内容共享发送器的迂回会增加带宽消耗和传输时延。
[0008] 在参与者间发送原始对象和呈现命令是共享屏幕内容最省时的机制。微软远程桌面协议(简称MS RDP)使用MS图形设备接口(简称GDI)、重定向文本文件、音频、视频、鼠标移动和其它文件对屏幕内容进行重建。但需要在MS Windows或Linux系统上建立RDP服务器
有了苹果Airplay的支持,苹果电视可以串流播放来自iPhone、iPad和其他设备的视频和音频。然而,特定情况下需要使用比如Airplay的设备。
[0009] 为应用于更广泛的情境,许多屏幕内容共享机制和系统选择捕捉从端主机到终端的显示信号。例如,
[0010] NCast捕捉VGA流,将捕捉到的流作为视频流进行编码并在接收器侧播放。NCast以固定速率捕捉屏幕内容。VNC使用远程帧缓冲协议(简称RFB)将屏幕内容作为一系列像素图
更新进行捕捉。

发明内容

[0011] 为理解屏幕、屏幕上内容对象以及内容对象之间的关系,要认真研究显示属性和内容。一个目标是以一般格式描述屏幕内容,所述格式可以在具有不同应用程序和其他计
算上下文的不同操作系统中读取和呈现。通过使用抽象的屏幕描述,具有不同能和上下
文的参与者可以重播同一共享屏幕内容。此外,他们可以在会话期间灵活订阅屏幕内容对
象,并修剪描述从而只播放感兴趣的屏幕内容。
[0012] 用于发布、传输和呈现共享屏幕内容的自适应屏幕内容共享框架也已经设计出来。该框架由四个组件构成:端主机上运行的应用程序、控制面、业务面和内容面。共享屏幕内容被建模为一棵树,其由许多内容对象构成。此外,树中节点子节点包含在该节点所表示的内容对象中。
[0013] 在一描述的实施例中,该树中的每个节点均由屏幕中的屏幕内容对象映射而来。两个屏幕内容对象间的包含关系在该树中表现为父子关系。树的根是包含屏幕上任何其他
内容对象的屏幕内容对象的桌面。
[0014] 在一种方法中,将更新消息从客户端设备发送到控制面,其中,在所述控制面上,所述客户端设备期望与远程设备共享屏幕内容。所述远程设备发送指示对接收所述更新感兴趣的消息。所述控制面随后从所述客户端设备检索具体描述。可基于所述远程设备的计
算上下文将所述具体描述修剪为更兼容的格式。在一些实施例中,将所述具体描述发送给
所述远程设备,且所述具体描述包括屏幕描述和内容描述。对共享屏幕的内容进行了描述,且
[0015] 随后从业务路由器中检索出所述内容。基于所述屏幕描述和从所述业务路由器中检索出的所述内容组装所述共享屏幕内容。
[0016] 另一方式描述了一种系统,包括:控制面,用于接收涉及屏幕内容更新的更新消息,所述更新消息包括来自第一客户端设备的发布者ID,并通知第二客户端设备可更新屏
幕内容;耦合到所述控制面的业务面,用于接收来自所述第二客户端设备的兴趣消息,所述兴趣消息指示期望接收所述屏幕内容更新;耦合到所述业务面的数据面,用于存储和/或检索将所述屏幕内容更新呈现到所述第二客户端设备所需要的内容;耦合到所述控制面、所
述业务面和所述数据面的屏幕内容共享控制服务器,用于请求和接收来自所述第一客户端
设备的所述屏幕内容更新的具体描述,并将所述具体描述发送给所述第二客户端设备。基
于所述具体描述在所述第二客户端设备上呈现共享屏幕内容。
附图说明
[0017] 附图包含在并且构成本说明书的一部分,示出了本发明的各种实施例,并且与描述内容一起用于解释本发明的原则:
[0018] 图1为可实现本发明实施例的示例性计算系统的图;
[0019] 图2为本发明实施例提供的基于微软Windows OS进行共享的示例性屏幕及相关联的树形结构描述的图;
[0020] 图3为本发明实施例提供的图2中屏幕内容的示例性描述的伪代码;
[0021] 图4A为本发明实施例提供的打开新项目时屏幕内容更新的示例性描述的伪代码;
[0022] 图4B为本发明实施例提供的对象的特权设置变化时屏幕内容更新的示例性描述的伪代码;
[0023] 图4C为本发明实施例提供的调整对象大小时屏幕内容更新的示例性描述的伪代码;
[0024] 图4D为本发明实施例提供的用户向下滚动时屏幕内容更新的示例性描述的伪代码;
[0025] 图4E为本发明实施例提供的对象的内容变化时屏幕内容更新的示例性描述的伪代码;
[0026] 图5为本发明实施例提供的屏幕内容共享系统的示例性组件及各组件间通信的图;
[0027] 图6为本发明实施例提供的屏幕内容共享控制服务器的示例性结构图;
[0028] 图7为本发明实施例提供的胖客户端的示例性结构图;
[0029] 图8A为本发明实施例提供的瘦客户端的示例性结构图;
[0030] 图8B为本发明实施例提供的零客户端的示例性结构图;
[0031] 图9A为本发明实施例提供的使用屏幕描述播放器显示共享屏幕内容的行为的示例性顺序的流程图
[0032] 图9B为本发明实施例提供的使用屏幕描述播放器显示屏幕内容对象的行为的示例性顺序的流程图;
[0033] 图10为本发明实施例提供的建立在ICN的屏幕内容共享框架的示例性结构图;
[0034] 图11A为本发明实施例提供的发布来自胖客户端的更新的行为的示例性顺序的流程图;
[0035] 图11B为本发明实施例提供的发布来自瘦客户端的更新的行为的示例性顺序的流程图;
[0036] 图12A为本发明实施例提供的发布来自零客户端的更新的行为的示例性顺序的流程图;
[0037] 图12B为本发明实施例提供的发布来自胖客户端的屏幕描述更新的行为的示例性顺序的流程图;
[0038] 图13为本发明实施例提供的在线讲座中共享的屏幕内容的示例性完整描述的伪代码;
[0039] 图14A为本发明实施例提供的调整对象大小时屏幕内容更新的示例性描述的伪代码;
[0040] 图14B为本发明实施例提供的为运行Ubuntu 12的笔记本电脑而翻译的示例性描述的伪代码;
[0041] 图14C为本发明实施例提供的为运行Android的平板电脑而翻译的示例性描述的伪代码;
[0042] 图15A为本发明实施例提供的处于在线合作的用户Alice发布的屏幕内容的完整描述的示例性描述的伪代码;
[0043] 图15B为本发明实施例提供的处于在线合作的Bob发布的屏幕内容对象更新的示例性描述的伪代码;
[0044] 图16为本发明实施例提供的处于在线协商的用户Alice发布的屏幕内容的示例性完整描述的伪代码;
[0045] 图17A为本发明实施例提供的处于在线协商的公司A成员的示例性修剪后的描述的伪代码;
[0046] 图17B为本发明实施例提供的处于在线协商的公司B成员的示例性修剪后的描述的伪代码;
[0047] 图18为本发明实施例提供的用于描述共享屏幕内容的示例性方法的流程图。

具体实施方式

[0048] 现在将详细地给出一些实施例的参考。虽然结合可替代的实施例描述该主题,但应该理解它们不是旨在将请求保护的主题限制于这些实施例。相反,请求保护的主题旨在
覆盖可以包括在由附加的权利要求书限定的请求保护的主题的精神和范围内的替代物、修
改和等同物。
[0049] 另外,在以下具体描述中,阐述了许多特定细节以便提供对请求保护主题的透彻理解。然而,所属领域的技术人员将认识到,可以在没有这些具体细节或对等物的情况下实践实施例。在其它实例中没有具体描述的众所周知的方法、流程、组件和电路,以免对本请求保护的主题的各方面和特征造成不必要地模糊。
[0050] 下面具体描述的部分以方法的方式表示和讨论。虽然本文的图公开了步骤及其顺序,用于描述该方法的操作,但所述步骤和顺序均是示例性的。实施例适合执行各其他步骤或此处流程图中(如图18)描述的所述步骤的变化,除此处描述的之外,均以顺序描述。
[0051] 具体描述的某些部分以流程、步骤、逻辑、处理的形式来表现,以及以其他能够在计算机存储器上执行的对数据位的操作的象征性陈述来表现。数据处理领域的技术人员利用这些描述和陈述,向本领域的其他技术人员最有效地传达其工作的内容。这里,流程、计算机执行的步骤、逻辑块、过程等在一般认为是有条理顺序的步骤或指令,带来预期的结果。所述步骤是需要物理量的物理操作。通常,但不一定,这些量的形式为能够在计算机系统中进行存储、传输、组合、比较和其他操作的电信号或磁信号。已经得到证明的是,主要出于通常原因,有时将这些信号称作比特、值、元素、符号、字符、术语、数字等是很方便的。
[0052] 但应知道的是,所有这些和类似术语均与适当的物理量相关联,且仅是适用这些量的便利标签。除非特别说明,否则从以下讨论中很显然地看出,整个讨论所使用术语,如“访问”、“写入”、“包括”、“存储”、“传输”、“遍历”、“关联”、“识别”等是指计算机系统或类似电子计算设备的动作和过程,所述动作和过程操作并将表示为计算机系统的寄存器和存储
器内的物理(电子的)量的数据转换为类似地表示为计算机系统存储器或寄存器或其他这
类信息存储、传输或显示设备内的物理量的其他数据。
[0053] 计算设备,如计算机系统112,通常包括至少一些形式的计算机可读介质。计算机可读介质可以是计算设备能够访问的任何可用介质。例如但不限于,计算机可读介质可包
括计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性介质、可移动和不
可移动介质,其以任何方法或技术实现如计算机可读指令、数据结构、程序模块或其他数据等信息的存储。计算机存储介质包括但不限于RAM、ROM、NVRAM、EEPROM,闪存或其他存储技术,CD-ROM、数字多功能光盘(简称DVD)或其他光存储器,磁盒、磁带、磁盘存储器或其它磁存储设备,或能用来存储所需信息和计算设备能够访问的其他介质。通信介质通常体现调
制数据信号,如载波或其他传输机制等中的计算机可读指令、数据结构、程序模块或其他数据,且包含任何信息下发介质。所述术语“调制数据信号”是指具有一个或多个该信号特点集合的信号或按该特点集合进行变化从而对信号中的信息进行编码的信号。例如但不限
于,通信介质包括有线介质,如有线网或直接有线连接,以及无线介质,如声学无线介质、RF无线介质、红外无线介质和其他无线介质。任何上述介质的组合也应该包含在计算机可读
取介质的范围内。
[0054] 图1的例子中,示例性计算机系统112包括中央处理器(简称CPU)101,用于运行软件应用程序或操作系统。存储器102/103存储所述CPU 101使用的应用程序和数据。储存器
104为应用程序和数据提供非易失性存储,且包括固定磁盘驱动器、可移动磁盘驱动器、闪存设备以及CD-ROM、DVD-ROM或其他光存储设备。可选用户输入106和107包括将输入从一个或多个用户发送到所述计算机系统112的设备,所述设备可包括键盘、鼠标、轨迹球、摄像头、触摸屏和/或麦克
[0055] 一些实施例可以是在以一个或多个计算机或其他设备执行的计算机可执行指令例如程序模块为背景进行描述。通常,程序模块包括用来执行特定任务或实现特定抽象数
据类型的例程、程序、对象、组件、数据结构等。
[0056] 通常,该程序模块的功能可根据各实施例需要进行组合或分配。
[0057] 具有广义屏幕描述的屏幕内容共享系统的框架
[0058] 下列实施例描述了使用广义屏幕描述在多个设备间共享屏幕内容的方法。该方法中,将更新消息从客户端设备发送到控制面,其中,在所述控制面上,所述客户端设备期望与远程设备共享其屏幕内容。所述远程设备发送指示对接收所述更新感兴趣的消息。所述
控制面随后从所述客户端设备检索具体屏幕描述。可基于所述远程设备的计算上下文将所
述具体描述修剪为更兼容的格式。在一些实施例中,将所述具体描述发送给所述远程设备,且所述具体描述包括屏幕描述和内容描述。对共享屏幕的内容进行描述,且随后从业务路
由器中检索所述内容。基于所述屏幕描述和从所述业务路由器中检索出的所述内容组装所
述共享屏幕内容。
[0059] 对屏幕上的内容对象进行建模
[0060] 现参考图2,树201中的每个节点均由屏幕202中的屏幕内容对象映射而来。两个屏幕内容对象间的包含关系在该树中表现为父子关系。该树的根203是包含屏幕上任何其他
内容对象的屏幕内容对象的桌面204。所述桌面包括205和206两个窗口、图标207、任务栏
208和其他内容对象,IE浏览器所包含的菜单209抽象为节点210的子节点211。
[0061] 需注意,一个对象可包含在其他对象中。在上述IE浏览器的例子中,当用户右击鼠标时,菜单会显示。该菜单可视为包含在IE浏览器中的新对象。基于这些观察,共享屏幕内容被建模为一棵树,其由许多内容对象构成。此外,树中节点的子节点包含在该节点所表示的内容对象中。图2阐述了如何将屏幕内容(左侧)抽象为一棵树(右侧)。
[0062] 所述树形结构抽象了屏幕内容对象间的包含关系。除这些关系外,需要具体的显示属性和每个对象的真实内容来描述和呈现共享屏幕内容。根据一实施例,一个对象需要
从五个方面进行描述:谁做的,做了什么,在哪里做的,为谁做,怎样做。虽然一些特定的属性已示出,但属性列表可以扩展,且不同场景可以考虑更多或不同属性。
[0063] 谁:会话ID、组ID、对象创建者ID、对象ID
[0064] 做了什么:打开/关闭窗口、移动/调整窗口大小、向上/下滚动、将窗口移到前面/将窗口移到后面、变更内容
[0065] 在哪里:OS、所需应用程序、OS/应用程序中的环境设置
[0066] 为谁:模式(一对多、多对一)、不同参与者的特权
[0067] 怎样做:地点、Z轴次序、透明,内容,开始时间、持续时间、时间戳(简称PST),父节点,对象的图像
[0068] 这些方面的色和属性的解释如下:“谁”表明创建对象和提供该对象ID的参与者,从而其他参与者能够查询该对象。由于一个人可以涉及多个屏幕内容共享会话且可参
与到会话中的多个组,因此需要会话ID、组ID以及全球唯一的用户ID和对象ID来命名或者
搜索该对象。
[0069] 为避免重复的下载工作,可通过指示共享屏幕上“什么”的变化来启动增量更新。所述变化可以为创建或移动对象、改变现有对象的显示属性或更新现有对象的内容。会话
的参与者可具有不同能力和上下文因此,描述的发布者需要详细说明“中哪里”方面中合适的上下文。屏幕内容共享服务器可在与接收者共享之前将发布者上下文的显示属性转化为
接收者的上下文。这里,操作系统是描述参与者上下文的主要属性。然而,基于“在哪里”方面中列出的所需应用程序和环境设置,接收者能选择合适的呈现方法来显示共享屏幕。以
下将更详细的讨论使用这些属性和呈现共享屏幕的细节。
[0070] 考虑到多个组可能涉及具有不同角色的同一会话,就需要指定“为谁”有资格接收共享屏幕。在线演讲和多组会议是两个经典的使用场景,分别代表一对多模式(或主从模式)和多对多模式。在一对多的默认设置中,只有主节点能够创建、发布和改变屏幕描述,而其他参与者只有查看共享屏幕的特权。但主节点能够为个人参与者或者组分配编辑特定对
象的特权。在多对多模式中,对象的创建者需要指定所发布对象的特权。所述特权可以为所有可见、不可见、组可见、个人可见、所有可编辑、组可编辑和个人可编辑。对于组可见和组可编辑,需要进一步指示哪个组能够检查或编辑该对象,而对于个人可见和个人可编辑,需要进一步指示哪个参与者能够检查或编辑该对象。
[0071] “怎样做”方面的属性指导共享屏幕中对象的显示。具体地,发布者提供显示相关的属性,包括地点(左、右、上、下坐标)、z轴次序(窗口中对象间的覆盖关系)、透明度,内容(名称和URL)、多媒体对象同步的参数,其包括开始时间、持续时间和时间戳(显示时间标签(简称PTS))。此外,当参与者发布现有共享屏幕的变化时,在描述树中给出该对象的父节点。然后屏幕控制服务器知道哪个对象已变更。发布者还需要捕捉并存储该对象的图像。当接收者没有所需OS或应用程序时,他/她能够通过捕捉到的图像重播该对象。呈现共享对象的星系内容将在下面进行进一步解释。
[0072] 需注意,给出的显示属性和内容是以“在哪里”方面中指定的背景下进行捕捉的。因此,它们不可能被具有不同上下文的参与者直接使用。为解决这一问题,屏幕内容共享控制服务器提供转化和修剪共享屏幕描述的服务,从而具有不同上下文的接收者能够在其显
示器上恰当地显示共享屏幕。呈现和重播屏幕的详细内容将在下面的部分进行说明。
[0073] 图3描述了图2中屏幕的完整描述300的例子,而图4A、4B、4C、4D和4E为屏幕对象更新的描述的例子特别地,具有特权的接收者能够改变对象(图4A至4D)的控制信息或改变对象(图4E)中播放或显示的真实内容。在这些例子中,屏幕描述以明文给出。但在实际中,可扩展标记语言(简称XML)能够用于指定这些属性。屏幕描述可以为屏幕的完整抽象或已发
布屏幕内容的更新。
[0074] 例如,Alice发布了其屏幕(图2左侧)的完整描述(图3中)。如图3所示,这是多对多会话。此外,共享屏幕上有四个屏幕对象,包括:一个桌面,其为图2中的屏幕描述树的根,记事本窗口,IE窗口以及包含在IE窗口中的菜单。记事本窗口设置为组2可编辑,而除创建者以外的其他参与者只能观看其他对象。由于这四个对象均不包含多媒体信息,所有同步属性均为空白。
[0075] 在共享屏幕中,Bob打开新窗口并发布这一变化,如图4A中的描述400A中所描述。所发布的对象为文字文件且放在屏幕的顶端。该对象的内容位于(URL:)/
HelloGroup1.docx。Bob还捕捉该对象的像素图并存储到(URL:)/001305E4_1.jpg。这一变
化被设置为该会话中的每个人均可见。之后,Bob想改变新对象的特权,使其只能被组1查
看。他发布如图4B中所示的描述400B,指示特权的变化。Bob还改变了窗口的大小并向下滚动。这些变化通过图4C和4D中的描述400C和400D进行公开。需注意,当对象的视图变化时,例如,调整窗口的大小,为具有有限能力的接收者捕捉并记录新像素图。
[0076] 系统模型
[0077] 屏幕内容共享框架由四个组件构成:具有各种能力(应用程序侧)的端主机;控制面,处理更新发布相关事情;业务面,提供一组服务器以使屏幕共享更加灵活且适应不同上下文;
[0078] 数据面,协助传输对象内容。所述业务面提供的服务包括维持会话视图描述、自适应地修剪会话视图描述以基于所述端主机的计算上下文和网络上下文对所述视图描述进行分组。此外,对于零客户端,所述业务面基于组视图描述生成像素图,并将压缩的视频发送给所述零客户端。
[0079] 图5呈现了屏幕内容共享框架的结构和四个组件间的通信情况。需注意,图5描述了胖客户端、瘦客户端和零客户端三种客户端来解释框架如何自适应地服务具有不同能力
和上下文的客户端。不同客户端的对应上下文和能力概括如下:
[0080] 胖客户端:常规OS,如MS Windows、Mac OS、Linux等;处理文本、图像、视频和其他常规格式文件的常见应用程序,如MS word、MAC iWork、Ubuntu vim等。
[0081] 瘦客户端:修剪后的OS,如iOS、Android等;具有一定图形处理能力的媒体播放器。
[0082] 零客户端:Bios和具有有限图形处理能力的媒体播放器。
[0083] 控制面501、业务面503和数据面502可在数据中心的同一个端主机上实现。但这三个面在逻辑上可分开,以避免网络僵化并提高传输效率。下面对在信息为中心的网络(简称ICN)中建立这三个面的方法进行讨论,但所述构架的实现并不限于ICN。
[0084] 图5描述了根据一实施例的四个示例性组件的功能和其间通信。如图5所述,胖客户端504发布了描述,其为完整屏幕描述或现有共享屏幕的变化。
[0085] (1)他/她发送消息通知所述控制面501他/她具有更新。该消息可以为摘要,包括描述的哈希以及用在命名的数据组网[4]中的发布者ID和时间戳。
[0086] (2)所述控制面501通知其他参与者,即该例中的瘦客户端505和零客户端506,关于该更新的情况以及所述发布者ID。
[0087] (3)这两个参与者(如所述客户端505和506)将对该更新的兴趣发送给所述业务面中的屏幕内容共享处理服务器。
[0088] (4)屏幕内容共享服务器503请求并接收来自发布者(如所述客户端504)的有关该更新的具体描述。
[0089] (5)基于端主机的计算上下文,所述屏幕内容共享服务器503可基于所述瘦客户端的特权修剪接收到的描述,并将处理后的描述发送给所述瘦客户端505。
[0090] (6)所述瘦客户端505能够从其角度通过接收的屏幕描述和来自业务路由器的必要内容组装共享屏幕。
[0091] (7)另一方面,对于不能组装共享屏幕的所述零客户端506,所述屏幕内容共享控制服务器组装屏幕、以一定采样率捕捉所述屏幕的像素图,并将所述像素图作为流式视频
发送给所述零客户端506。
[0092] (8)此外,可通过独立的数据包收集和更新鼠标移动,并在呈现阶段将其集成到共享屏幕中。
[0093] 从图5所示例子可知,自适应共享屏幕的主要流程概括为三个步骤:信息收集和屏幕描述生成、描述和内容的发布及传输、屏幕呈现和参与者的同步。每一阶段完成的任务及涉及到的组件概括如下:
[0094] 信息收集和屏幕描述生成:
[0095] -收集屏幕上所有对象的属性以识别现有对象的变化;
[0096] -使用收集到的属性生成标准格式的屏幕描述;
[0097] -对于胖客户端,这些任务可由其本身完成,而对于瘦客户端和零客户端,这些任务由屏幕内容共享控制服务器远程完成。
[0098] 描述和内容的发布及传输:
[0099] -发布者通过发送摘要通知所述控制面501关于更新的情况;
[0100] -所述控制面501将所述摘要分发给会话的所有参与者;
[0101] -所述参与者发送兴趣到所述业务面503中的屏幕内容共享控制服务器;
[0102] -屏幕内容共享控制服务器(如,控制服务器503)检查所请求的更新是否在本地复制;若还未在本地复制,则联系这些更新的发布者并检索所述更新;
[0103] -所述屏幕内容共享控制服务器503随后修剪接收到的会话视图描述以基于端主机的上下文将所述视图描述进行分组,并将修剪后的描述发送给客户端;
[0104] -特别地,若端主机为零客户端,则所述屏幕内容共享控制服务器503将屏幕作为像素图视频进行捕捉并记录,最后将所述像素图以流式视频形式发送给零客户端。
[0105] 屏幕呈现和参与者的同步:
[0106] -胖客户端和瘦客户端在接收到组视图描述后可能需要请求来自数据面的一定内容;当它们得到所有必要内容时,即准备通过相应应用程序或屏幕内容共享描述播放器在
其桌面上呈现屏幕;
[0107] -可将PST或其他时间戳嵌入描述中以协助多个端主机间的同步。
[0108] 现转向图6,其描述了为示例性屏幕内容共享控制服务器的具体结构,包括胖/瘦/零客户端。具有屏幕内容共享消息处理器605的屏幕内容共享控制服务器612接收四种消
息:控制消息、屏幕描述、鼠标移动消息和内容数据包。所述屏幕内容共享消息处理器处理这些消息,将属性传给其他模块,并将
[0109] 合适响应发送给胖客户端604和瘦客户端603、将视频流发送给零客户端602。当接收到来自客户端的对屏幕描述的请求时,所述屏幕内容共享消息处理器检查该描述是否在
本地存储器复制。若否,则所述屏幕内容共享消息处理器将该请求转发到合适的网络位置
并保留发送该请求的客户端的上下文信息。之后将该信息传到会话屏幕描述生成器。
[0110] 当接收到所请求描述的响应时,所述消息处理器将其传给屏幕更新器609。所述消息处理器还负责将鼠标移动信息传给鼠标移动消息处理器612。
[0111] 另外,所述消息处理器协助所述零客户端602请求屏幕内容,接收到的屏幕内容将传到虚拟OS 608。此外,所述屏幕内容共享消息处理器将压缩的像素图视频流式传给请求
屏幕内容的所述零客户端602。
[0112] 所述鼠标移动处理器612从鼠标移动消息中提取鼠标位置,并将这些属性传到所述屏幕更新器609。
[0113] 所述屏幕更新器609基于接收到的屏幕描述、更新消息和鼠标属性更新会话视图屏幕描述611。更新的会话视图屏幕描述连同鼠标位置一起用于生成组视图屏幕描述。此
外,所述会话视图屏幕描述611将在本地存储器中缓存一定时间以节省重复的下载工作和
离线网络开销。
[0114] 组视图描述生成器610基于客户端的组ID以及为所述会话视图屏幕描述611中的每个屏幕对象设置的特权来修剪会话视图屏幕描述。若请求描述的客户端为所述胖客户端
604或所述瘦客户端603,则通过所述屏幕内容共享消息处理器605将修剪后的组视图描述
发送给所述请求客户端。或者,若请求客户端为所述零客户端602,则将修剪后的组视图描述传给所述虚拟OS以生成像素图视频。
[0115] 所述虚拟OS 608、屏幕像素图生成器607和屏幕像素图压缩模块606基于组视图描述和所述屏幕内容共享消息处理器605检索出的内容恢复屏幕,
[0116] 将所述屏幕作为像素图进行捕捉,压缩所述像素图,并将压缩的像素图发送给所述屏幕内容共享消息处理器605,其会设置到述零客户端602的连接并传输所述像素图。
[0117] 同步定时器613用于协助视频和音频间的同步且其还协助同一会话中的客户端间的同步。胖客户端、瘦客户端和零客户端的结构在图7、8A和8B中呈现。这些图与屏幕内容共享控制服务器具有一些共用模块,包括屏幕内容共享消息处理器704、鼠标移动消息处理器
707和同步定时器709。它们一般提供与所述屏幕内容共享控制服务器相同的功能。此外,所有类型的客户端均具有鼠标移动捕捉器708。该模块捕捉并记录鼠标坐标和包括右击、左
击、滚动和拖动等的事件。将捕捉到的鼠标移动传给所述屏幕内容共享消息处理器704并封装成鼠标移动消息。
[0118] 用于发布更新的模块是分离的且发送其对于将这些更新订阅到摘要控制模块711中的兴趣。对于访问控制,所有兴趣会提交到屏幕内容共享控制服务器,其进一步请求来自其他屏幕控制服务器或胖客户端的屏幕描述。所述摘要控制模块711部署在所有类型的客
户端,使得客户端能够灵活地确定将接收哪些屏幕/更新。
[0119] 对于配备完整版本OS和所需应用程序的胖客户端,屏幕内容共享描述播放器能够使用所述OS或所述应用程序的本地库和样式,并使用通过所述屏幕内容共享消息处理器
704接收到的来自业务面的屏幕内容共享控制服务器的屏幕描述以及接收到的来自数据面
的内容重建原始屏幕。此外,所述屏幕内容共享描述播放器能够在所述鼠标移动消息处理
器707的协助下处理来自其他客户端的鼠标移动。另一方面,由于胖客户端具有完整OS和应用程序,其能够在没有屏幕内容共享控制服务器协助的情况下生成屏幕描述。
[0120] 如图7所示,在一些实施例中,屏幕信息收集器710绘制运行过程的必要属性,并将这些属性传给会话屏幕描述生成器705,其合成所述屏幕描述。
[0121] 参考图8A,根据本发明实施例描述了与业务面701、数据面702和控制面703连接的示例性瘦客户端。所述瘦客户端上部署了屏幕内容共享描述播放器706。但所述瘦客户端只有修剪的OS,且通常没有所需应用程序。若所述瘦客户端具有样式库,其能够使用所述样式库来绘制框架并使用其他替代应用来显示内容。例如,MS word文件能够通过Linux VIM打
开,并以MS样式的框架显示。若所述瘦客户端上未部署样式库,则其能够使用捕捉到的屏幕像素图来恢复屏幕对象的框架。但为了节省带宽,该屏幕对象的内容能通过其他替代应用
程序打开。如图8A所述,所述瘦客户端还可包括屏幕内容共享消息处理器704、鼠标移动捕捉器708、鼠标移动消息处理器707、同步定时器709和摘要控制模块711。
[0122] 图8B描述了本发明实施例提供的与业务面701和控制面703连接的零客户端。所述瘦客户端可包括屏幕内容共享消息处理器704、鼠标移动捕捉器708、同步定时器709和摘要控制模块711。所述瘦客户端还可包括屏幕像素图解压和播放模块715,用于解压共享像素
图和/或呈现共享屏幕内容。
[0123] 图9A示出了屏幕描述播放器的流程图。图9B示出了屏幕描述播放器显示屏幕对象时的行为流程图。对于只有BIOS和具有一定图像处理能力的零客户端,需要模块来解压和
播放接收到的来自屏幕内容共享控制服务器的捕捉到的屏幕像素图的流式视频。
[0124] 现参考图9A,在步骤901中,接收屏幕描述。在步骤902中,确定是否每个屏幕对象都有显示。若是,则该过程进入步骤903,
[0125] 显示来自所述屏幕描述中的陈述的屏幕对象。若每个屏幕对象都未显示,在步骤905中移动屏幕上的鼠标位置。在步骤906中,确定是否有鼠标移动要处理。若是,在步骤904中接收鼠标移动消息且所述过程在步骤905继续。若没有鼠标移动要处理,则所述过程在步骤907结束。
[0126] 现参考图9B,在步骤908中,接收屏幕对象a的描述。继续到步骤909,确定a的坐标、布局及同步信息。在步骤910中,确定是否安装了所有所需应用程序。若是,则在步骤911中下载a的内容并通过所需应用程序将其打开。若所有所需应用程序都未安装,则在步骤913中确定是否部署了所有所需样式库。若是,则该过程继续到步骤914,通过所需样式库绘制框架。接着,在步骤15中,下载a的内容并通过替代应用程序打开。若所有所需样式库都未呈现,则在步骤912中下载捕捉到的a的屏幕截图并用其恢复a的框架。
[0127] 描述和内容的发布及传输
[0128] 如上呈现,自适应屏幕内容共享框架的主要流程可概括为三个步骤:信息收集和屏幕描述生成、描述和内容的发布及传输、屏幕呈现和同步。信息收集和屏幕描述生成以及屏幕呈现和同步在本地主机完成,而屏幕描述和内容的发布及传输需要网络协助。
[0129] 不同类型的网络、拓扑和技术可用来支持自适应屏幕内容共享系统。图10描述了根据一实施例使用ICN来发布和传输屏幕内容。但公开的构架实现并不限于ICN。
[0130] 如图10所示,当胖客户端1010具有屏幕更新或其发布新屏幕内容时,其通过包含所述胖客户端1010标识的摘要通知ICN代理1007关于这一变化的情况。根据ICN路由策略,
将被通知的所述ICN代理1007可以为最近的一个、最少过载的一个或其他。然后,所选择的ICN代理1007将所述摘要连同其标识转发给ICN控制器1010,所述控制器计算新摘要并将所
述摘要推送给所有ICN代理(如ICN代理1003)。
[0131] 当接收到来自控制器(如,控制服务器1002或1006)的摘要时,ICN代理(ICN代理1007)将该摘要推送给逻辑上与所述ICN代理连接的客户端(如客户端1010)。这些客户端自
行决定是否订阅更新。若客户端想要接收更新,他/她会将兴趣发送给屏幕内容共享控制服务器1006,所述屏幕内容共享控制服务器之后联系该更新的发布者以请求该更新的描述。
屏幕内容共享控制服务器的选择可基于不同策略,如最近的一个、最少过载的一个等。若屏幕内容共享控制服务器接收到对同一更新的多个兴趣时,其只联系一次所述发布者。一旦
服务器接收到该更新的描述,其缓存该描述并通过缓存的描述满足所有兴趣。这样,避免了拥塞且节省了重复的下载工作。
[0132] 当客户端已接收到屏幕描述时,所述客户端解析所述描述并发现建立原始屏幕需要的一些内容。基于ICN命名策略命名所述内容以实现高效的域间路由,内容服务器1004和
1005支持网络间缓存,以实现高效且快速的网络传输。只有内容服务器为内容c接收的第一请求会转向网络中c的复制位置。c的副本会拉送到所述客户端。同时,为了减少带宽消耗,网络间内容服务器可以为今后同一内容的可能请求缓存c的副本。
[0133] 在图11A、11B、12A和12B中,具有不同能力和上下文的客户发布典型的更新。这里,典型的更新可以为共享屏幕的完整描述或对现有描述的更新。
[0134] 如图11A中的图表1100A所示,胖客户端发布更新并发送摘要给ICN代理。所述ICN代理通过转发所述摘要通知ICN控制器。通过代理将所述摘要从所处ICN控制器推送给每个
客户端。对所述更新感兴趣的客户端联系屏幕内容共享控制服务器,所述屏幕内容共享控
制服务器请求来自发布者的更新/描述。在图11A的例子中,发布者为胖客户端。当接收到所述更新/描述时,所述屏幕内容共享控制服务器为不同端客户端处理所述更新/描述,将处
理的更新/描述发送给胖/瘦客户端,并将流式视频发送给零客户端。所述胖/瘦客户端可进一步联系内容服务器以得到真实内容。
[0135] 由于瘦客户端运行修剪的OS且通常没有所需应用程序,其将鼠标移动消息发送给屏幕内容共享控制服务器,如图11B中的图表1100B所示。然后,屏幕内容共享控制服务器更新屏幕,并将更新的屏幕描述文件发送给所述瘦客户端。当所述瘦客户端重播所述更新的
描述时需要下载来自内容服务器的一些内容。同时,所述屏幕内容共享控制服务器而不是
所述瘦客户端作为发布者通过将摘要发送给ICN代理来发布该更新。下面的过程与来自胖
客户端的更新的过程类似。
[0136] 如图12A中的图表1200A所示,发布来自零客户端的更新的工作流与发布来自瘦客户端的更新的工作流类似。唯一不同的是屏幕内容共享控制服务器会从内容服务器中检索
必要的内容并将视频发送给零客户端。
[0137] 此外,若公布的更新只是显示属性的变化,或者是对象而不是屏幕内容的特权,客户端或屏幕内容共享控制服务器不需要查询内容服务器以再次下载内容。图12B中的图表1200B呈现了更新来自胖客户端的屏幕描述的具体时间轴。更新来自瘦客户端或零客户端
的屏幕描述的流程类似,因此在该报告中省略。
[0138] 示例性场景
[0139] 这一部分阐述了如何在以下三种示例场景中使用屏幕内容共享系统:在线演讲、在线合作和在线协商。
[0140] A.在线演讲
[0141] Alice老师给来自世界各地的一组学生做在线演讲。所述演讲开始于2013年7月29日下午两点。老师以一对多模式与所有学生共享屏幕和声音。只有老师有权发布和改变屏
幕对象。在这一场景中,学生可通过另一个屏幕内容共享会话或其他渠道进行讨论和提出
问题,如在线聊天工具、邮件等。或Alice能为个人参与者或组分配编辑特定对象的特权。
[0142] 如图13所述,Alice发布屏幕描述1300,其描述桌面对象、MS PowerPoint2007窗口和两个声音对象。此外,共享屏幕包含三个内容:HelloWorld.pptx、HelloWorld1.mp3和HelloWorld2.mp3。
[0143] 当客户端或屏幕内容共享控制服务器接收到屏幕描述时,其可以检索内容并呈现共享屏幕。音频或视频对象基于屏幕描述中给定的开始时间、PST和持续时间进行播放以达到同步。
[0144] Alice使所述Power Point窗口全屏,并将这一变化在图14A中的描述1400A中进行发布。当被通知这一变化时,每个学生可以选择是否应用此变化。
[0145] 需注意,Alice使用的是具有MS windows 7的笔记本电脑,而学生使用的是具有不同能力和上下文的不同设备。为了缩小这一差距,屏幕共享控制服务器不得不修剪原始描
述并将其翻译成适合不同端主机的不同版本。在所述场景中,修剪图14A中描述的更新并为图14B中运行Ubuntu 12的笔记本电脑(具有不同上下文的胖客户端)、图14C中运行Android OS的智能手机和WPS Office(具有替代应用程序的瘦客户端)将所述更新翻译为描述
1400B。在修剪和翻译的描述中,屏幕内容共享控制服务器为每个屏幕对象建议合适的应用程序,并改变一些显示属性以适合不同端主机。
[0146] 有可能地,学生为零客户端。在这一情况下,编码的流式视频流而非所述描述不会发送给客户端,所述客户端随后解码共享频幕的像素图的流式视频。
[0147] 在线合作
[0148] 图15A描述了根据本发明实施例的示例性屏幕描述。屏幕描述1500A表示多对多会话,其中每组均可创建、检查和更新共享屏幕中的内容对象。为简单起见,在该例中,将参与者划分为组A和组B这两组。组A中有参与者Alice,而Alice使用运行MS windows 7的笔记本电脑。
[0149] 图15B描述了根据本发明实施例的示例性屏幕描述。屏幕描述1500B表示对多对多会话的响应。如图所述,组B中有参与者Bob,其使用运行Android OS的智能手机。
[0150] 在线协商
[0151] 参考图16,在线协商是一种多对多会话。在会话中,发布者可以为每个创建的对象设置特权。为方便起见,所述会话有公司A和公司B两组,且其中每个均有两个组成员。Alice和Bob是公司A的代表,Charlie和Dave是公司B的代表。
[0152] 为更好的关注屏幕描述中的特权管理,假设所有参与者均通过所需应用程序运行MS Windows。
[0153] 如图16所描述,Alice通过发布完整描述1600共享其屏幕。在所述描述中,她将ID为“00150918”的对象的特权设置为该会话所有参与者均可见,而将ID为“006504C6”的另一对象设置为公司A的成员可编辑。
[0154] 基于所述特权,屏幕内容共享控制服务器为公司A和公司B描述1700A和1700B,分别如图17A和17B所呈现。如图17B所示,将ID为“006504C6”的对象从为公司B成员准备的描述中移除,
[0155] 从而公司B的成员甚至感知不到ID为“006504C6”的对象的存在。
[0156] 在这一情况下,Alice使用个人照片作为她的桌面壁纸,并希望保留隐私。她只给出桌面的位置,并将其设置为不可见。屏幕内容共享控制服务器能够基于每个参与者的设
置将任何图片或颜色填充到背景中。在该会话中,“sample.jpg”填充在对象描述桌面中。同时,该对象的特权变为所有参与者均可见,如图17A和17B所示。
[0157] 参考图18,根据本发明实施例描述了用于共享屏幕内容的示例性方法的流程图1800。所述方法开始于步骤1801:在控制面接收来自第二客户端设备的兴趣消息。在步骤
1802中,在控制平面接收来自第一客户端的更新消息的具体描述,其中,所述具体描述包括屏幕描述和内容描述。在步骤1803中,将所述具体描述发送给所述第二客户端设备。在步骤
1804中,检索来自业务路由器的内容,其中,所述内容描述中描述了所述内容。在步骤1805中,基于所述屏幕描述和从所述业务路由器中检索出的所述内容组装共享屏幕内容。
[0158] 本发明实施例因此得以描述。虽然本发明已经在特定实施例中进行描述,但是应理解,本发明不应该被解释为这些实施例的限制,而是根据以下权利要求书进行解释。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈