1.一种用于在网络上提供虚拟用户接口的系统,包括:
一个或多个服务器,其被部署在网络上,并被配置为管理多个虚拟帧缓冲器和多个用户接口应用的操作,所述一个或多个服务器进一步被配置为将所述用户接口应用的每一个与对应的其中一个虚拟帧缓冲器相关联,每个用户接口应用被配置为将对应的图形用户接口渲染到所述对应的虚拟帧缓冲器,所述一个或多个服务器进一步被配置为通过网络与多个客户端的每一个建立第一专用、持久、双向的连接以实施虚拟用户接口会话,将所述虚拟帧缓冲器之一分配给所述客户端的每一个,并且通过所述第一连接将来自每个虚拟帧缓冲器的所述图形用户接口的更新转发给所述对应的客户端,所述更新中的至少一些包括用于在所述对应的客户端处混合所述图形用户接口和附加视觉信息的透明信息,所述一个或多个服务器进一步被配置为通过所述第一连接从每个客户端接收用户输入,并将所述用户输入提供给所述对应的用户接口应用,所述用户输入代表和每个客户端相关联的用户与所述对应的图形用户接口的表示的交互;和
具有关联显示器的所述多个客户端,每个客户端被配置为通过所述第一连接从所述对应的虚拟帧缓冲器接收图形用户接口更新,并使用所述更新和所述透明信息在所述关联显示器上渲染具有所述附加视觉信息的所述对应的图形用户接口的表示,每个客户端进一步被配置为通过所述第一连接将所述用户输入发送给所述一个或多个服务器,其中所述对应的虚拟帧缓冲器与多个服务器实例中的一个服务器实例相关联,以及在所述虚拟用户接口会话完成时回收所关联的服务器实例,以及其中所述客户端中的一个或多个进一步被配置为使用中间件提供媒体播放控制功能,并且其中所述客户端中的所述一个或多个包括被配置为通过所述网络上的第二连接促进在所述对应的用户接口应用和所述中间件之间的通信的中间件提取层。
2.根据权利要求1所述的系统,其中所述客户端中的一个或多个在被配置为在所述关联显示器上提供交互电视业务的机顶盒中被实现。
3.根据权利要求2所述的系统,其中所述图形用户接口包括用于导航所述交互电视业务的交互菜单。
4.根据权利要求1所述的系统,其中所述客户端中的一个或多个被集成在具有所述关联显示器的单一设备中。
5.根据权利要求1所述的系统,其中所述第一连接包括虚拟网络计算(VNC)连接,并且其中所述一个或多个服务器被配置为响应于从所述对应的客户端接收的伪编码消息在所述更新的至少一些中包括所述透明信息。
6.根据权利要求1所述的系统,所述一个或多个服务器进一步被配置为响应于来自所述客户端的对应的连接请求通过网络与所述客户端的每一个建立第二连接,并且响应于所述第二连接的终止,终止所述对应的虚拟接口会话。
7.根据权利要求1所述的系统,其中每个更新仅包括自从在前更新后已改变的所述对应的图形用户接口的一个或多个部分。
8.一种提供虚拟用户接口的方法,包括:
管理多个虚拟帧缓冲器的操作;
响应于来自远程客户端的连接请求,将用户接口应用与分配的其中一个虚拟帧缓冲器相关联,所述用户接口应用被配置为将图形用户接口渲染到所述分配的虚拟帧缓冲器;
建立服务器和所述远程客户端之间的第一专用、持久、双向的连接以实施虚拟用户接口会话;
通过所述第一连接将所述图形用户接口的更新从所述分配的虚拟帧缓冲器转发给所述远程客户端,所述更新中的至少一些包括用于在所述远程客户端处混合所述图形用户接口和附加视觉信息的透明信息;和
通过所述第一连接从所述远程客户端接收用户输入,并将所述用户输入提供给所述用户接口应用,所述用户输入代表和所述远程客户端相关联的用户与所述图形用户接口的表示的交互,
其中所述分配的虚拟帧缓冲器与多个服务器实例中的一个服务器实例相关联,以及在所述虚拟用户接口会话完成时回收所关联的服务器实例,以及
其中所述远程客户端进一步被配置为使用中间件提供媒体播放控制功能,并且其中所述远程客户端包括被配置为通过网络上的第二连接促进在对应的用户接口应用和所述中间件之间的通信的中间件提取层。
9.一种用于与虚拟用户接口交互的方法,包括:
向远程服务器发送连接请求,所述服务器被配置为管理多个虚拟帧缓冲器的操作,并且响应于所述连接请求,将用户接口应用与分配的其中一个虚拟帧缓冲器相关联,所述用户接口应用被配置为将图形用户接口渲染到所述分配的虚拟帧缓冲器;
建立客户端和所述服务器之间的第一专用、持久、双向的连接以实施虚拟用户接口会话;
通过所述第一连接从所述分配的虚拟帧缓冲器接收所述图形用户接口的更新,所述更新中的至少一些包括用于混合所述图形用户接口和附加视觉信息的透明信息;
使用所述更新和所述透明信息在显示器上渲染结合所述附加视觉信息的所述图形用户接口的表示;和
通过所述第一连接向所述服务器转发用户输入以呈现给所述用户接口应用,所述用户输入代表用户与所述图形用户接口的表示的交互,
其中所述分配的虚拟帧缓冲器与多个服务器实例中的一个服务器实例相关联,以及在所述虚拟用户接口会话完成时回收所关联的服务器实例,以及
其中所述客户端进一步被配置为使用中间件提供媒体播放控制功能,并且其中所述客户端包括被配置为通过网络上的第二连接促进在对应的用户接口应用和所述中间件之间的通信的中间件提取层。
虚拟用户接口\n技术领域\n[0001] 本发明涉及提供一种用于机顶盒或类似客户端设备的虚拟用户接口。更特别地,本发明使用户接口虚拟化能够用于各种各样应用和计算环境中的任一种。\n背景技术\n[0002] 用于使用信息或采用机顶盒的娱乐系统促进用户的交互的一种传统方法包括提供一种在机顶盒上本地运行的用户接口应用。这种应用可以是例如展现菜单等级(menu hierarchy)的Flash播放器。不幸地是,由于机顶盒的典型性能,与这种接口相关联的动画(animation)通常以不满意的方式得以渲染,即播放器将花将近数秒来渲染它接收到的任何新信息(例如,从前一菜单屏幕渲染新的子菜单屏幕)。考虑到用户已经习惯于与桌上计算机系统上的用户接口交互,这种运行级别和用户体验是不可接受的。\n[0003] 由于与传统机顶盒相关联的性能限制和部署成本,希望提供在其中传送媒体的软件部件尽可能地是设备独立的解决方案。\n发明内容\n[0004] 根据本发明,提供了用于能够实现用户接口虚拟化的各种方法、设备和计算机程序产品。根据一个具体实施例,提供了一种在网络上提供虚拟用户接口的系统。该系统包括部署在网络上的一个或多个服务器,该一个或多个服务器被配置为管理多个虚拟帧缓冲器和多个用户接口应用的操作。该一个或多个服务器进一步被配置为将每个用户接口应用与对应的其中一个虚拟帧缓冲器相关联。每个用户接口应用被配置为将对应的图形用户接口渲染到(render to)对应的虚拟帧缓冲器。该一个或多个服务器进一步被配置为通过网络与多个客户端的每一个建立第一专用、持久、双向的连接以实施虚拟用户接口会话,将虚拟帧缓冲器之一分配给客户端的每一个,并通过第一连接将图形用户接口的更新从每个虚拟帧缓冲器转发给对应的客户端。这些更新中的至少一些包括用于在对应的客户端将图形用户接口与附加视觉信息相混合的透明信息。该一个或多个服务器进一步被配置为通过第一连接从每个客户端接收用户输入,并将该用户输入提供给对应的用户接口应用。该用户输入代表和每个客户端相关联的用户与对应图形用户接口的表示(representation)的交互。\n该系统还包括多个具有关联显示器的客户端。每个客户端被配置为通过第一连接从对应的虚拟帧缓冲器接收图形用户接口更新,并使用这些更新和透明信息在关联显示器上渲染具有附加视觉信息的对应图形用户接口的表示。每个客户端进一步被配置为通过第一连接将用户输入发送给该一个或多个服务器。\n[0005] 根据其他具体实施例,提供了用于在网络上提供虚拟用户接口的方法、设备和计算机程序产品。根据这些实施例,多个虚拟帧缓冲器的操作在部署在网络上的一个或多个服务器上得以管理。响应于来自远程客户端的连接请求,在该一个或多个服务器的第一个上运行的用户接口应用与分配的其中一个虚拟帧缓冲器相关联。该用户接口应用被配置为将图形用户接口渲染到分配的虚拟帧缓冲器。通过网络第一专用、持久、双向的连接在第一服务器和远程客户端之间得以建立以实施虚拟用户接口会话。通过第一连接将该图形用户接口的更新从分配的虚拟帧缓冲器转发到远程客户端。这些更新的至少一些包括用于在远程客户端将图形用户接口与附加视觉信息混合的透明信息。通过第一连接从远程客户端接收用户输入,并将用户输入提供给用户接口应用。该用户输入代表和远程客户端相关联的用户与图形用户接口的表示的交互。\n[0006] 仍然根据其他具体实施例,提供了用于通过网络与虚拟用户接口交互的方法、设备和计算机程序产品。通过网络将连接请求发送给服务器。该服务器被配置为管理多个虚拟帧缓冲器的操作,并且响应于连接请求,将运行在该服务器上的用户接口应用与分配的其中一个虚拟帧缓冲器相关联。用户接口应用被配置为将图形用户接口渲染到分配的虚拟帧缓冲器。通过网络建立与服务器的第一专用、持久、双向的连接以实施虚拟用户接口会话。通过第一连接从分配的虚拟帧缓冲器接收图形用户接口的更新。这些更新的至少一些包括用于将图形用户接口与附加视觉信息混合的透明信息。使用这些更新和透明信息,结合附加视觉信息的图形用户接口的表示在显示器上被渲染。用户输入通过第一连接被转发给服务器以呈现给用户接口应用。用户输入代表用户与图形用户接口的表示的交互。\n[0007] 参考本说明书的其余部分和附图,可实现本发明的特性和优点的进一步理解。\n附图说明\n[0008] 图1是示出在其中可实现本发明实施例的系统示例的简图。\n[0009] 图2是示出用于本发明具体实施例的各种系统部件的框图。\n[0010] 图3是示出本发明具体实施例的操作的流程图。\n具体实施方式\n[0011] 现在将详细地参考包括由发明人设想、用于实现本发明的最佳形式的本发明的具体实施例。这些具体实施例的示例在附图中得以示出。虽然结合这些具体实施例,本发明得以描述,但应当理解并非意欲将本发明限制为描述的实施例。相反,意欲覆盖可包括在由附加的权利要求限定的本发明的精神和范围内的替代、修改和等同物。在以下描述中,为了提供本发明的彻底理解阐述了具体的细节。可在没有这些具体细节的一些或全部的情况下实践本发明。并且已知的特征可能不详细地描述以避免不必要地模糊本发明。\n[0012] 根据本发明的各个实施例,在一个或多个服务器上运行的虚拟用户接口在远程客户端设备上得以呈现。这种实施例可表征为集中(pool)、管理并清除虚拟用户接口会话的服务。本发明的实施例参考与控制关联电视的操作(例如,菜单等级)的机顶盒相关联的用户接口而得以描述。然而,应当注意提及这种实施例并非意欲限制。更确切地,设想本发明的这样的实施例,在这些实施例中与各种各样应用的任一种相关联的接口可以以资源方面在客户端处需要非常少的方式得以呈现,并且可被配置为很大程度上独立于客户端设备硬件。\n[0013] 图1示出了在其中本发明的实施例可得以实现的网络环境的简图。网络102可表示使用各种各样的网络技术和通信协议中的任一种来实现的(多个)专有和/或公共局域或广域网络的任何组合。例如,网络102可表示一个或多个IP网络、电缆网络、电信网络、卫星电视网络、有线或无线网络,或其任何组合。在各种用户位置104中的硬件通过网络102被连接至可由一个或多个服务供应商操作和/或控制的服务器106、108和110(和关联的数据存储装置)。将理解服务器的每个表示可代表在其上可分布与本发明实施例相关联的各种过程和计算负载的多个服务器。在本描述中,服务器106、108和110可代表特殊实现的多个方面,例如虚拟用户接口服务器、媒体服务器等。\n[0014] 用户位置硬件可包括客户端设备(例如机顶盒112)和关联的显示器(例如电视\n114)。可替换地,显示器设备116可包括充足的集成计算资源以根据本发明与远程服务器交互,例如某些新一代数字电视。根据一些实施例,用户位置可以是例如在酒店环境(hospitality context)中的客房,具有是酒店私有网络基础设施一部分的居间网络。可替换地,用户位置可以是订购例如由线缆或卫星系统运营商提供的数字电视和/或信息业务的私人住宅和/或公司。根据另一个替换方式,用户位置可以是与诸如因特网这样的公共网络相连接的私人住宅和/或公司。参考这些示例,本领域技术人员将理解可能实施例的全部范围。\n[0015] 根据实施例的一个特殊分类,机顶盒的用户接口运行在系统中远离机顶盒的虚拟用户接口(UI)服务器上。如上所述,该虚拟UI服务器实际上可以是多个服务器。可使用诸如虚拟网络计算协议(VNC)、远程桌面协议(RDP)或Apple(苹果)远程桌面协议(ARD)这样的各种协议中的任一种,通过专用通信信道将该用户接口的增量图形更新转发至机顶盒。更一般地,在实施例的该分类中本发明的实施例可使用任何已知或专有协议得以实现,通过该协议接口的增量图形更新可被发送给客户端,并且在该协议中从客户端接收的用户输入驱使图形更新。\n[0016] 正如将理解的那样,传统的VNC系统典型地包括客户端、服务器和被称为RFB(即远程帧缓冲器)的相对简单的通信协议。帧缓冲器是包括在给定时刻组成显示图像的每个像素的颜色值的存储器缓冲器。由于帧缓冲器通过应用软件得以修改,VNC服务器向VNC客户端发送该帧缓冲器的小矩形以在关联的显示器上渲染,所述小矩形对应于自从最后的更新已经改变的区域。客户端向VNC服务器发送用户输入以驱使这些更新。\n[0017] 根据涉及机顶盒的一些实施例,机顶盒既处理视频流的播放,又处理用户接口的表示。正如将理解的那样,用户接口运行在远程平台上,并在该远程平台上被渲染(render)到帧缓冲器,该远程平台将该接口的图形更新发送给机顶盒。根据本发明的各个实施例,当更新由机顶盒接收时,它们与由该机顶盒正在播放的视频相“混合”。根据这些实施例的一些,通过识别在用户接口更新中的信息的多个部分是否是不透明的、透明的或半透明的来促进(facilitate)该混合操作,从而显示器的对应像素可以被渲染为图形、视频或者两者的结合。\n[0018] 现在将参考图2描述根据本发明实施例提供虚拟用户接口的特殊结构的一个示例。根据一些实施例,描述的部件可部署在与在图1中描述的计算环境类似的计算环境中。\n然而,示出了多种软件部件,而没有具体参考在其上运行这些软件部件的硬件或计算平台,因为本领域的技术人员将理解这种软件部件可以以各种各样的方式得以部署,而不脱离本发明的范围。例如,在服务器侧的系统部件可驻留在相同或不同的计算平台上。因此,对具体部件的位置或环境的具体引用的至少一些不应当被认为是限制本发明。\n[0019] 现在参考图2以及图3的流程图,当客户端设备上电时,远程UI客户端210启动(301)并尝试与在虚拟UI服务器上的远程用户接口守护进程(Daemon)202建立连接,例如制作TCP连接请求。远程用户接口守护进程202监听来自客户端的这种连接请求(302),并为每一个开启背景线程(304)。由守护进程202发起的背景线程在它们对应的虚拟用户接口会话(下文讨论)持续的期间持续。\n[0020] 守护进程202(其可以是互相结合运行的多个这种守护进程之一)负责管理系统中并发用户接口会话的集合。与关联的虚拟帧缓冲器206一起,守护进程202维持在服务器上运行的可用VNC服务器实例209的列表。当它接收到连接请求时,守护进程202将可用VNC服务器实例之一分配给该连接(308)(从列表中将它移除),并将会话信息返回给客户端(310),通过该会话信息会话可得以识别。根据一个具体实施例,会话信息包括IP地址和端口号,使用它们客户端可与分配的VNC服务器实例相连接。\n[0021] 守护进程202还创建运行在虚拟UI服务器上的用户接口壳(shell)实例208(312)。\n用户接口壳被创建并被渲染到与分配的VNC服务器实例相关联的帧缓冲器。根据具体的实施例,该壳是生成用户接口的Adobe Flash播放器。与本地运行在传统机顶盒上的播放器相对比,壳208将用户接口渲染到与分配的VNC服务器实例相关联的帧缓冲器(314),而不是在机顶盒中的帧缓冲器。由于在服务器上可用的较多的计算资源,用户接口帧可以以比在传统机顶盒上高很多的帧速率得以渲染(在特定实现中几乎快100倍)。\n[0022] 在描述的基于VNC的实现中,每个VNC服务器实例209是与X Windows服务器211(例如,Xvnc4)耦合的VNC服务器。XWindows服务器为X Windows客户端应用提供诸如用户接口应用(208)这样的渲染API,将每个这种应用渲染至与耦合的VNC服务器共享的帧缓冲器。在服务器(其可以是一个或多个服务器)上运行的每个VNC服务器实例209连续地监视它的关联帧缓冲器,并向VNC服务器实例被分配给的VNC客户端发送图形更新。根据具体实施例,这些更新响应于来自客户端的更新请求而得以发送,并且不必要与被渲染到缓冲器的帧相对应。更确切地,它们更典型地是自从最后的更新被发送给客户端后已改变的像素的某种集合(典型地是接口的一个或多个矩形部分)。根据具体实施例,由客户端来决定是请求帧缓冲器的全部内容还是仅请求增量更新。在后一种情况下,VNC服务器实例回想客户端最后请求更新时虚拟帧缓冲器的状态,并仅发送自从最后请求后已改变的信息。此外,VNC服务器可以不立即响应客户端的更新请求。即,VNC服务器可暂时地等待来聚集发送给客户端的更新,以提供更有带宽效率的响应。\n[0023] 如上所述,当客户端设备上电时,远程UI客户端210启动并与守护进程202建立连接。远程UI客户端210然后在客户端设备(例如机顶盒)上启动VNC客户端212(例如DirectVNC)的实现,它是从分配的VNC服务器实例请求接口更新的应用。使用会话信息,VNC客户端212与分配给客户端的VNC服务器实例建立直接VNC连接(316),通过该连接接口更新随后得以传送。\n[0024] 应当再次注意,虽然在一些实施例中客户端设备可以是机顶盒,但是设想了在其中在此描述的功能被集成于最终渲染接口的硬件的实现,例如具有充足处理和存储器资源的数字电视。可替换地,在此描述的功能的至少一些可在与电视、机顶盒或两者一起运行分离的、独立的设备中得以实现。\n[0025] 一旦VNC连接得以建立,VNC客户端212从对应的VNC服务器实例请求它在机顶盒上渲染的更新(318)。这通过在VNC客户端212和客户端设备渲染硬件214之间的连接得以完成。\n[0026] 根据实施例的特殊分类,提供了用于处理透明像素信息的对VNC协议的扩展。如已知的那样,在图形系统中,帧缓冲器是保存组成显示图像的像素颜色值的存储器的通常使用的区域。取决于帧缓冲器的目的,在帧缓冲器中存储像素的方式可采用许多不同的格式。\n例如,用于存储视频帧的帧缓冲器可以以平面(planar)YUV420格式存储像素,而用于驱动显示器设备的帧缓冲器可以以打包(packed)RGB格式存储像素。这些不同的格式由帧缓冲器的颜色空间和在该颜色空间中像素的预定义的二进制表示来确定。例如,RGB颜色空间可以存储在16比特字内的像素,其中5比特分配给红色和蓝色分量,6比特分配给绿色分量。可替换地,可使用24比特,其中为三种颜色分量的每个分配8个比特。然而,由于24比特(3个字节)在具有32比特自然(native)字大小的计算机系统中运行不方便,通常以32比特字存储RGB像素,其中为每个颜色分量分配8比特,剩下的另外8比特未使用。用来存储像素的比特数有时被称为帧缓冲器的颜色深度。\n[0027] 在一些图形系统中,特别是在其中设想将使用其他图像源(例如视频帧)合成显示图像的那些系统,与每个像素一起,帧缓冲器还可以存储透明信息。该透明信息有时被称为“阿尔法(α)通道”或“阿尔法(α)部件”。像素的阿尔法分量确定像素的透明度,从完全不透明到完全不可见。使用对本领域技术人员来说公知的标准图像合成规则,包括与阿尔法信息一起的像素数据的帧缓冲器可用来合成多个图像。其一个可能应用可以是“混合”视频帧和图形层,使得(被渲染到图形层的)图形用户接口可以以半透明的方式覆盖在视频上。\n[0028] 在RGB帧缓冲器中,其中在32比特字中使用24比特存储像素信息,未使用的8比特通常被用来为每个像素存储阿尔法通道信息。这种像素格式有时被称为ARGB:8888,然而包括阿尔法通道的其他像素格式也是可能的。\n[0029] 根据本发明的各种实施例,X Windows服务器被配置为渲染使用24比特在32比特字中保存RGB信息的、存储RGB格式像素的帧缓冲器。标准X Windows客户端应用将通过X Windows API渲染该RGB帧缓冲器。然而,诸如需要渲染透明信息的那些专门的应用能够直接访问X Windows帧缓冲器(使用对XWindows的标准XSHM扩展)。这些应用可使用在每个32比特像素中未使用的8比特来为每个像素存储阿尔法分量。不幸地,不采用这种方法的标准XWindows客户端将不必要在每个像素中正确地设置阿尔法分量(因为XWindows不直接支持它),因此将“继承”每个像素的任何预先存在的阿尔法分量。出于这个原因,必须修改标准的X Windows服务器,使得标准的客户端应用将渲染每个像素的阿尔法分量,产生完全不透明的像素。该改变确保标准的X Windows客户端应用将以不透明的方式渲染,而更专门的客户端应用可通过直接为每个像素设置阿尔法分量以半透明的方式来渲染。\n[0030] 因此,本发明的实施例采用与VNC服务器耦合的、如上所述修改的XWindows服务器。VNC服务器监视与X Windows服务器共享的帧缓冲器,并使用VNC协议向在网络中的其它地方的VNC客户端提供图形更新。VNC协议的固有部分是客户端和服务器之间图形更新即将使用的像素格式的协商。VNC协议定义了几个不同的像素格式,没有一个包括阿尔法分量,即标准的VNC协议不支持透明信息。因此,本发明的这些实施例扩展VNC协议以支持附加的像素格式。\n[0031] VNC协议的扩展可通过创建所谓的伪编码格式来实现。客户端然后将通过请求对应于该扩展的伪编码来发信号通知它支持给定的扩展。不支持该扩展的服务器将简单地忽视该请求,而适当增强的服务器将通过向客户端发送与该扩展关联的专用确认消息来响应。\n[0032] 根据本发明的这些实施例,VNC协议通过增加被称为“保持阿尔法通道(Preserve Alpha Channel)”的伪编码消息得以扩展。当客户端通过该伪编码请求服务器等待(abide)时,服务器通过向客户端发送专用确认消息来响应。客户端然后请求使用24比特在32比特字中存储RGB数据的RGB像素格式,服务器确保所有图形更新保持使用32比特字中剩余8比特的阿尔法分量数据,以传送每个像素的阿尔法分量。特别地,发送图形更新的“ZRLE”方法将不把32比特的像素压缩为24比特,这将导致阿尔法分量数据的丢失。\n[0033] 重提图3,根据一些实施例,VNC客户端212还向VNC服务器实例转发从机顶盒接收的各种类型的输入(例如,通过遥控、指示器或鼠标或键盘与虚拟接口的用户交互)(320),VNC服务器实例将它们通过X Windows服务器API传递给用户接口壳208。一旦接收到这些用户输入事件,用户接口应用208对这些事件作出反应,这可能引起对用户接口作出图形更新并因此图形更新被渲染到与分配的X Windows服务器相关联的帧缓冲器。\n[0034] 当客户端设备是运行的时,用户接口壳和分配给机顶盒的VNC服务器实例持续,甚至当机顶盒正在播放其他媒体并且用户没有观看或与虚拟用户接口交互时。被建立以发起用户接口会话的连接,例如TCP套接字,也维持会话的持续时间,以指示分配给该客户端(例如VNC服务器实例)的资源仍然是可用的(即使在该连接上传输很少或不传输)。当该会话结束时(例如客户端设备下电),该TCP连接终止(322),并且远程UI守护进程在服务器侧发起涉及终止用户接口壳(324)和回收VNC服务器实例(326)的整理。\n[0035] 值得注意得是,在使用机顶盒实现的实施例中,在用户接口中由用户选择的、在关联的电视上由机顶盒播放的实际媒体内容典型地通过在图2中未示出的其他信道(例如在远程媒体服务器和在机顶盒上运行的对应中间件之间的TCP或UDP连接)传输给该机顶盒。\n[0036] 根据实施例的具体分类,用户接口壳功能性从机顶盒到后端服务器(back end server)的移动涉及在机顶盒上原有的初始壳中的功能性的分叉。即,在以前的原有用户接口运行在机顶盒上的解决方案中,它与机顶盒的渲染硬件(即将接口拖曳到帧缓冲器中)和驻留中间件(例如215)对接,以控制媒体播放。根据本发明的特殊实现及如图2所示,用户接口被移动到后端,对渲染硬件的接口有效地由VNC客户端替代,对中间件的接口由运行在机顶盒上、处理与中间件215的通信的瘦居间“代理”代替。该“中间件远程提取层”(例如中间件网络代理216)通过网络连接(例如TCP套接字)接收来自用户接口壳的通信,并将它们转换为由中间件识别的进程间通信,例如得以建立并在机顶盒运行期间持续的、经由Unix套接字的通信。在壳和提取层之间的套接字例如可使用从守护进程202传递给壳208的客户端的IP地址来建立。\n[0037] 根据具体实施例,中间件远程提取层可表征为有效地作为对下层平台的媒体能力的提取层的事件传递和获取系统,即,它提供在下层硬件平台和在远程用户接口中控制它的逻辑之间的必要转换。由中间件远程提取层处理的调用(call)例如包括确定由于用户交互(例如调到新的电视频道)需要对媒体播放设备状态作出的变化的信息。例如,当用户按压其遥控上的“上一个频道”时,这产生由运行在远程服务器上的用户接口壳使用的远程按键按压事件。在用户接口壳中的逻辑然后确定在指南中下一个频道是什么并向用户呈现对应的细节。一旦选择那个频道,用户接口可通过中间件调用套接字发送具有命令的消息以开始选择频道的播放。中间件远程提取层因此仅需要提供可以以相同或类似方式在任何硬件上呈现的通用接口,从而揭示该平台的媒体播放能力。从中间件到用户接口壳的通知事件可包括任何种类的硬件或播放状态更新。这种事件的示例包括当前片段(clip)已结束的通知、当前片段的时间位置、错误状态信息或涉及目标平台的硬件能力或媒体的动态状态的任何事。\n[0038] 根据实施例的特定集合,由中间件远程提取层提供的提取机制采用一组本地端口,并且通过这些端口可向本地独立的软件提供终点服务。根据一个这种实施例,中间件远程提取层分别维持两个与中间件回调本地套接字相连接的Unix套接字和中间件事件传递套接字。中间件远程提取层还维持两个网络端口,使得远程服务能够通过远程协议访问该系统,就像它们是本地程序一样。根据一些实施例,中间件远程提取层还可以被用于促进机顶盒的遥控,例如用于测试或调试目的。\n[0039] 应当理解,中间件远程提取层不是根据本发明的虚拟用户接口的所有实现的必需部件。即,如上所述,中间件远程提取层被提供为在其中原始设计运行在机顶盒上的大部分软件功能被移动至后端服务器的解决方案的一部分。倘若该提取层允许这种解决方案,而不是必须修改在机顶盒上现有的中间件。然而,根据本发明的各种实施例呈现其他类型的虚拟用户接口(取决于它们的功能)可以不需要这种居间代理(例如不需要控制媒体播放的应用)或者不应当具有这种控制能力。\n[0040] 更一般地,设想了本发明的实施例,其中运行在虚拟UI服务器上的用户接口壳可用任何被配置为通过X Windows服务器渲染其自身到帧缓冲器的任何应用来代替。根据实施例的特殊分类,这种应用优选地不包括过多的任何视频内容,因为如果通过VNC连接传送,在远程客户端上视频的渲染可能不完全满足要求。即,正确渲染视频所需的帧速率一般地将不匹配用VNC类似方法进行的增量更新的速率,从而导致各种不想要的视频假象(video artifact),诸如“破裂”或者部分渲染的视频帧。用于传送这种视频内容的适当选择是于2009年5月27日申请的、美国专利申请号为No.12/473086的“虚拟桌面服务(VIRTUALDESKTOP SERVICES)”(代理卷号为STSNP012),为了所有目的,其全部公开内容通过引用结合于此。\n[0041] 鉴于前述内容,设想了实施例,其中根据本发明生成的虚拟用户接口包括音频内容。根据一些这种实施例,除了上述对接口的图形更新外,与接口相关联的音频流也被发送给客户端。这可以例如使用VNC协议的适当扩展来实现。可替换地,辅助音频信道也可由单独的协议来提供(例如,脉冲音频)。\n[0042] 根据本发明的一些实施例远程运行任意应用的能力有效地将嵌入式客户端设备转换为能够享有更广得多的范围的软件应用的第三方开发的开放式平台。即,与电缆或卫星电视系统或者与其他专有数字电视系统相关联的机顶盒的嵌入式、专有计算环境的本性呈现出对第三方开发者开发用于这种平台的应用的障碍。相反地,本发明的实施例能够通过在更多个标准服务器平台上实现任意应用的远程操作和传输来创建这种机会,从而使传统地仅在桌面计算系统上可用的应用在嵌入式计算平台上可用。\n[0043] 本发明的实施例可用于将广范围的功能性(例如光栅化(rasterization)、字体渲染、图形处理等)移动到后端服务。客户端设备的任务因此可显著地减少,例如转发用户输入、渲染提供的视觉更新和向接口揭示API的媒体播放能力。任何给定应用的响应性、渲染能力和逻辑能力可因此变得设备中立。通过除去对图形渲染系统的依赖并使用具有小资源基础的瘦客户端来代替它,移植到(porting to)其他平台的依赖也可得以消除。该瘦客户端可被配置为不需要支持库,并且仅需要最小标准特征,例如网络套接字和要更新的帧缓冲器。由于服务器结构(例如x86平台)典型地将运行具有所有必需库的充分突出的(featured)操作系统来运行任何新式的软件,因此中立于目标平台的新的软件特征和部件也可以快速和容易地得以集成。因此,设想本发明的实施例完全消除了必须移植、为其提供库或调试几乎任何人们可能希望在几乎任何客户端设备上提供给终端用户的软件,消除了包括专有机顶盒环境等。\n[0044] 虽然本发明参考其特定实施例得以特别地展示和描述,但本领域的技术人员将理解可对公开的实施例的形式和细节作出改变,而不脱离本发明的精神或范围。并且,尽管参考各个实施例在此讨论了本发明的各个优点、方面和目的,将理解本发明的范围不应当由对这些优点、方面和目的的引用限制。更确切地,本发明的范围应当参考所附权利要求得以确定。
法律信息
- 2020-01-03
未缴年费专利权终止
IPC(主分类): H04L 29/06
专利号: ZL 201110041831.X
申请日: 2011.01.14
授权公告日: 2016.12.14
- 2016-12-14
- 2014-08-27
专利申请权的转移
登记生效日: 2014.08.05
申请人由iBAHN综合控股公司变更为盖斯特泰克交互娱乐股份有限公司
地址由美国犹他州变更为美国加利福尼亚州
- 2014-08-27
专利申请权的转移
登记生效日: 2014.08.05
申请人由盖斯特泰克交互娱乐股份有限公司变更为盖斯特泰克交互娱乐有限公司
地址由美国加利福尼亚州变更为加拿大艾伯塔省
- 2013-02-27
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201110041831.X
申请日: 2011.01.14
- 2011-08-17
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-10-28
|
2008-06-11
| | |
2
| | 暂无 |
1996-10-11
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |