CN108733771A - 共享应用,包括允许检索、展示和遍历信息资源的共享应用 - Google Patents
共享应用,包括允许检索、展示和遍历信息资源的共享应用 Download PDFInfo
- Publication number
- CN108733771A CN108733771A CN201810368811.5A CN201810368811A CN108733771A CN 108733771 A CN108733771 A CN 108733771A CN 201810368811 A CN201810368811 A CN 201810368811A CN 108733771 A CN108733771 A CN 108733771A
- Authority
- CN
- China
- Prior art keywords
- video
- sharing application
- captured
- multiple devices
- shared
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
- H04L65/1089—In-session procedures by adding media; by removing media
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
Abstract
描述了支持共享应用的技术,包括允许检索、展示和遍历信息资源的共享应用。该创新技术使不同位置处的多位参与者能够观看资产并与资产交互,所述资产诸如为基于网络的内容。该创新技术使待共享的应用的功能集中化。共享应用在协作期间在集中位置处以不需要任何本地资源来创建应用实例的方式被执行。
Description
技术领域
共享工作空间可以经由网络实现以支持虚拟环境,在该虚拟环境中用户能够跨多台设备共享资产(asset,有用的资源),诸如应用、内容、视频会议、标注和其他媒介。共享工作空间因而使分布在不同地理位置的用户能够实时协作以共享想法和理念。
背景技术
从技术观点来看,在多个用户之间共享应用可能是具有挑战性的。例如,过去的一些方法需要必须在每个参与者的计算机上安装本地执行的软件。如果参与协作的一些参与者没有所需的软件,那么它们在获得并安装该软件之前不能参与共享。其他方法利用专门的插件、扩展或小程序,同样,如果参与者没有这些资源,则它们不能参与共享。允许应用共享的本地执行的软件还引起与使内容和状态在不同计算装置之间保持同步、管理控制权和交互、以及维护和提升安全性相关的挑战。
发明内容
根据本公开内容的一方面,提供了一种计算机实施的方法,包括:通过集中式服务提供者接收下述消息,所述消息指示允许检索、展示和遍历信息资源的共享应用要被创建作为多台设备之间的协作的一部分,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;响应于接收到所述消息,在所述集中式服务提供者处实例化一容器,所述容器被配置为执行所述共享应用;以及使用所述容器,以使所述多台设备共享所述共享应用。
根据本公开内容的另一方面,提供了一种在协作环境中实现的系统,在所述协作环境中,多台设备能够共享公共网络连接以参与能够在所述多台设备之间共享资产的协作,所述系统包括:集中式服务提供者;与所述集中式服务提供者相关联的一个或多个处理器;存储计算机可执行指令的一个或多个计算机可读介质,所述一个或多个计算机可读指令在由所述一个或多个处理器执行时执行包括下述的操作:通过所述集中式服务提供者接收指示共享应用要被创建作为多台设备之间的协作的一部分的消息,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;响应于接收到所述消息,由所述集中式服务提供者实例化一容器,所述容器被配置为执行所述共享应用;以及使用所述容器,以使所述多台设备共享所述共享应用。
根据本发明内容的又一方面,提供了存储计算机可执行指令的一个或多个计算机可读介质,所述一个或多个计算机可执行指令在由一个或多个处理器执行时执行包括下述的操作:通过集中式服务提供者接收指示共享应用要被创建作为多台设备之间的协作的一部分的消息,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;响应于接收到所述消息,实例化一容器,所述容器被配置成执行所述共享应用;以及使用所述容器,以使所述多台设备共享所述共享应用。
附图说明
参照附图描述具体实施方式。在附图中,附图标记的最左边的数字(一个或多个)标识该附图标记首次出现在其中的图。在说明书的不同实例中和在附图中使用的相同的附图标记可以指示相似或相同的项。附图中表示的实体可以指示一个或多个实体并且因而在讨论中可以互换地参照实体的单数形式或复数形式。
图1是可操作以采用本文描述的技术的协作系统的图示。
图2是图1的协作系统的通信基础设施的概念图,该通信基础设施使内容流跨设备共享。
图3更详细地描绘了图2的流式传输基础设施。
图4更详细地描绘了图2的消息传送基础设施。
图5描绘了通过协作服务器参与协作的两台设备。
图6描绘了可用于共享应用的示例系统,包括允许检索、展示和遍历信息资源的共享应用。
图7是描绘了根据一个或多个实施方式的示例实现中的过程的流程图。
图8图示了包括示例装置的各种组件的示例系统,该示例装置可以被实现为如参照图1至图6所描述的和/或使用的任何类型的计算装置,以实现本文描述的技术的实施方式。
具体实施方式
概述
在下面的讨论中,描述了创新技术以实现共享应用,包括允许检索、展示和遍历信息资源的共享应用。一种这样的应用是允许在万维网上检索、展示和遍历信息资源的Web浏览器。信息资源可以由统一资源标识符(URI/URL)来标识,所述信息资源可以是网页、图像、视频或其他内容。Web浏览器也可用于访问由专用网络中的Web服务器或文件系统中的文件提供的信息。创新技术使不同位置处的多位参与者能够观看资产并与资产互动,所述资产诸如为基于网络的内容。创新技术使待共享的应用的功能集中化。共享应用在协作期间由集中式服务器在集中位置以不需要任何本地资源来创建应用实例的方式来执行。利用软件摄像机捕获正在执行的应用的视频,然后将该视频流式传输至协作参与者,或者更准确地讲,流式传输至每台协作设备。然后,视频会在每台设备上被渲染,以便协作参与者可以以与应用交互相似的方式与该视频交互。在每台设备处的交互作为事件被捕获,然后被中继回集中式服务器。集中式服务器然后处理该事件并在共享应用上执行交互。这些被执行的交互然后被软件摄像机捕获并且流式传输回对其进行渲染的设备处。因而,在不同设备上执行的两个或多个客户端可以通过执行共享应用的集中式服务器来与共享应用交互。不同应用处的交互可以同时发生,或者交互可以被序列化,使得一次仅允许一个客户端与共享应用交互。也就是说,在至少一些实施方式中,可以采用控制机制,该控制机制使控制权在参与者之间传递以确保不存在冲突,诸如当两个参与者在同一时间并且以不同的、非一致的方式与视频交互时可能会出现的冲突。如上所述,交互作为事件被捕获,然后被中继回集中位置,由共享应用处理并执行。软件摄像机再次捕获该执行,然后将其流式传输至协作参与者,依此类推。
在至少一些实施方式中,当控制权在参与者之间传递时,通过使与控制权从其传出的特定用户相关联的状态信息冻结(dehydrate),来使安全性得以提升。只要下一参与者具有控制权,那么下一参与者的状态信息就由共享应用维护。然而,在将控制权传递给另外的参与者时,当前参与者的状态信息将从共享应用中冻结,依此类推。如果控制权返回给其状态信息已被冻结的参与者,则只要它们保持控制权,它们的特定状态信息就会被解除冻结(rehydrate)。在参与者退出特定协作会话的情况下,特定参与者的状态信息可以被保持,使得在返回时,如果该参与者接收到共享应用的控制权,则其状态信息可以被解除冻结。所以基本上,例如,当用户具有浏览器的控制权时,用户的状态信息将被加载到用户正在控制的浏览器中。当用户放弃控制权时,用户的状态信息被捕获并被存储(即冻结),使得一旦用户重新获得对浏览器的控制权,用户的状态信息可以被重新加载(即解除冻结)。
创新技术提供了易于扩展的解决方案,部分原因在于不需要本地计算资源来渲染共享应用的实例。因而,不需要为了共享应用而在计算设备上安装任何专用软件。此外,参与者状态信息和用户数据是受到保护的,因为当应用的控制权传递给新的参与者时,这些信息是不共享的。此外,因为应用交互的结果以视频流的形式传输,所以每台本地设备都可以免除不得不创建、修改和维护应用相关的结构的负担,所述应用相关的结构诸如为在应用是Web浏览器的情况下的文档对象模型(DOM)。减轻维护本地设备上的应用相关的结构的负担大大降低了本地设备的计算复杂性,并且因而提高了本地设备参与协作的效率。应用相关的结构是指通常在本地创建以支持应用的本地执行的各种软件支持基础结构。因此,例如,在Web浏览器的情况下,这将包括树结构的文档对象模型,在该树结构中每个节点都是表示文档的一部分的对象。可以以编程方式操作该对象,并且随后可以在对文档的显示中反映作为结果发生的任何可见变化。浏览器背景下的其他应用相关的结构可以包括将HTML解析为DOM的布局引擎。与浏览器不同的应用可以具有不同的应用相关的结构,作为本文描述的创新的结果,该应用相关的结构不一定需要本地创建、维护和操作。
然而,应该意识到和理解的是,创新技术可以运用在任何合适的流式传输环境中,并且不一定用于多个不同设备之间的虚拟协作。
共享工作空间实现了具有各种不同硬件特性的远程和本地连接的设备的虚拟协作,诸如平板电脑、壁挂式显示器、计算装置、移动电话等等。这些设备还可以包括具有不同特性的各种软件,这些软件可用于渲染作为共享工作空间的一部分的资产,诸如特定的文字处理器、展示软件、绘图应用等等。资产的示例包括文档、图像、视频会议等等,如下面进一步描述的那样。
利用共享工作空间的虚拟协作通常利用网络连接来使远程和本地连接的设备彼此通信。在许多情况下,网络连接可以利用互联网连接。因此,例如,位于一个位置的多个设备可以参与与位于单独的(separate,不同的、各自的)远程位置的多个设备的协作。每个位置都可以保持与互联网的网络连接。
在一些情况下,虚拟协作可以采用一个或多个大型设备和一个或多个简化型设备。例如,大型设备通常被配置为安装到墙上,并且可以功能丰富且被配置为支持高分辨率、网络带宽以及硬件资源诸如存储器和处理器。该大型设备还可以包括被配置为消费(consume)特定资产格式的应用,以支持诸如文字处理、绘图(例如,CAD)等等。然而,当与大型设备相比时,简化型设备诸如被配置为由用户的一只或多只手握住的平板或移动电话可能具有降低的分辨率、网络带宽和硬件资源。
在一些情况下,大型设备可以进行上传,例如,将资产流式传输至服务提供者以便共享,该服务提供者被配置为经由相应的应用例如特定的文字处理器来消费。另外,简化型设备也可以将资产上传或流式传输至服务提供者,以与参与协作的其他设备共享。本文描述的技术使得在不同位置的多个参与者能够观看资产并与资产交互,所述资产诸如为基于web的内容。创新技术使待共享的应用的功能集中化。共享应用在协作期间在集中位置处以不需要任何本地资源来创建应用实例的方式被执行。创新技术提供了一种易于扩展的解决方案,部分原因在于不需要本地计算资源来渲染共享应用的实例。因而,不需要为了共享应用而在计算设备上安装任何专用软件。在下面描述的实施方式中,描述了Web浏览器形式的共享应用。然而,应该意识到和理解的是,这仅仅是用于说明的目的。因此,除了Web浏览器以外的应用可以用来实现本文描述的创新技术。
在以下的讨论中,首先描述了可以采用本文描述的技术的示例环境。然后描述了可以在示例环境以及其他环境中执行的示例过程。因此,示例过程的执行不限于示例环境,并且示例环境不限于示例过程的执行。
示例环境
图1是被配置为实现本文描述的技术的一个或多个方面的示例实现中的协作系统100的图示。如所示出的,协作系统100包括但不限于服务提供者104和用于实现共享工作空间的设备,图示的该设备的示例包括大型设备106和简化型设备108,其中的每一台设备都可经由网络110被通信地耦接。尽管与以下示例相关地来描述大型设备106和简化型设备108,但明显的是,多台设备可以由仅支持大型或仅支持简化型的设备组成。
服务提供者104被图示为包括协作管理者模块112,并且设备被图示为包括相应的协作服务模块114、116,它们都代表被至少部分地以硬件实施以支持协作环境的共享工作空间的功能(functionality),如下面进一步描述的那样。例如,协作服务模块114、116可以被配置为支持参与成为共享工作空间的一部分的软件,诸如应用、第三方插件模块、网页、Web应用、Web平台等。协作管理者模块112代表可用于管理交互的功能(例如,经由软件实现),其示例与图2至图4相关地被进一步描述。尽管被分别地图示,但协作管理者模块112管理共享工作空间的功能也可以合并到设备自身。
例如,协作服务模块114、116可以被实现为结合网络内容工作的Web平台的一部分,例如,可经由“web”获得公共内容,以实现共享工作空间。Web平台可以包括并使用许多不同类型的技术,诸如作为示例而非限制的URL、HTTP、REST、HTML、CSS、JavaScript、DOM等。Web平台还可以用多种数据格式诸如XML、JSON等工作。Web平台可以包括各种Web浏览器、web应用(即“网络应用”)等。当被执行时,Web平台允许相应的设备从Web服务器(例如,服务提供者)检索资产(例如,网站内容)诸如网页形式的电子文档(或其他形式的电子文档,诸如文档文件、XML文件、PDF文件、XLS文件等),以显示在与共享工作空间相配合的显示装置上。
共享工作空间被配置为共享资产以及共享用户与那些资产的交互。在本公开内容的背景下,“资产”可以指能够在显示器上——诸如在大型设备106或简化型设备108的显示装置上等——显示的任何交互式可渲染的内容。交互式可渲染的内容通常从一个或多个持续(persistent,持久的)的或非持续的内容流获得,该内容流包括下述的连续帧:视频数据;相应的音频数据;元数据;可流动的/可回流的非结构化的内容;以及可能的其他类型的数据。
通常,资产可以显示在动态可调节的展示窗口内。这种情况的一个示例图示为用于大型设备106的展示窗口118、120和被显示用于简化型设备108的展示窗口122。为了简单起见,资产和相应的动态可调节的展示窗口在本文中通常指的是单一实体,即“资产”。资产可以包括基于文件、基于Web的内容源或者是Live Source的内容源。资产可以包括图像、视频、Web浏览器、文档、膝上型电脑屏幕的渲染工具、幻灯片、软件应用的任何其他图形用户界面(GUI)等。
资产通常包括由软件应用(诸如软件应用的GUI)生成的至少一个显示输出。在一个示例中,显示输出是内容流的一部分。另外,资产通常被配置为接收一个或多个软件应用输入。例如,简化型设备108可以包括具有姿势(gesture,手势)检测功能的显示装置124(例如,触敏显示装置、与被配置成捕获自然用户输入的一个或多个摄像机相关联的显示装置等等)以捕获姿势,诸如用于通过用户的手128的一个或多个手指来圈出文档中的文本的标注(annotation)126。
关于标注,该标注然后被传送并在大型设备106上显示为也在展示窗口118中圈出了相应文本的标注126',该展示窗口对该设备的用户130、132可见。因而,与固定图像不同,资产是使得能够与这样的软件应用交互的动态元素,所述软件应用与资产相关联以例如用于操纵资产。例如,资产可以包括与软件应用相关联并且可以向软件应用提供输入的选择按钮、下拉菜单、控制滑块等等。
如本文中还提到的,“共享工作空间”是其上具有与其相关联的资产的虚拟“数字画布”或“数字墨水画布”,并且它们的相应的内容流在合适的动态“视口窗口”内显示。因而,共享工作空间可以包括一个或多个关联的资产(每种资产都显示在展示窗口内),由此整个共享工作空间被显示在动态可调节的视口窗口内。共享工作空间可以被显示在大型设备106和/或简化型设备108的显示装置的整个可能的渲染区域/空间内,使得在其表面上仅显示单个共享工作空间。在这种情况下,显示共享工作空间的视口窗口的区域包括大型设备106和/或简化型设备108的整个渲染区域。然而,在其他实现中,共享工作空间和视口窗口可以显示在大型设备106和/或简化型设备108的总显示区域的子区域中,该子区域不包括这些设备的相应显示装置的整个渲染区域。例如,多个共享工作空间可以同时显示在大型设备106和/或简化型设备108上的多个视口窗口中,由此每个共享工作空间和视口窗口都不对应于整个显示表面。与共享工作空间相关的每种资产以及与该资产相对应的内容流根据共享工作空间和视口窗口内限定的尺寸(高度和宽度)和位置来显示在展示窗口中。资产和展示窗口的尺寸和位置也可以是用户可调节的。还如本文所提到的,“项目”可以包括一组一个或多个相关的共享工作空间。
示例中使用多个显示拼片(tile)134形成大型设备106,例如该多个显示拼片被布置以形成显示墙。服务提供者104包括数字图像内容136,该数字图像内容被图示为存储在例如使用一个或多个存储装置的协作数据存储装置136中,如关于图8进一步描述的那样。服务提供者104可以经由网络110(例如,网站)通过第三方源远程地从各种源诸如简化型设备108、大型设备106接收该数字图像内容136,或者可以从信息网络或其他数据路由装置接收该数字图像内容,并将输入转换为图像数据信号。因而,数字图像内容136可以用大型设备106或简化型设备108本地生成,或者从一些其他位置生成。例如,当协作系统100用于远程会议时,数字图像内容136可以经由允许数据交换的任何技术上可行的有线或无线的通信或信息网络被接收,所述通信或信息网络诸如为广域网(WAN)、局域网(LAN)、无线(Wi-Fi)网络和/或互联网等由网络110所代表的网络。服务提供者104、简化型设备108和大型设备106可以被实现为下述类型:多个计算装置中的一个,诸如实现为专用计算机的一部分;服务器群中的一个或多个服务器(例如,用于实现一个或多个web服务的服务提供者104);专用集成电路等等。这些计算装置被配置为维护计算机可读介质中的并且可由处理系统执行以运行一个或多个操作的指令,如关于图8进一步描述的那样。
大型设备106和/或简化型设备108的显示装置可以包括任何技术上可行的显示装置或系统类型的一个或多个显示表面,包括但不限于下述的显示表面:发光二极管(LED)显示器、数字光(DLP)或其他投影显示器、液晶显示器(LCD)、光学发光二极管显示器(OLED)、激光-荧光显示器(LPD)、和/或立体3D显示器,全部被布置为单个独立显示器、头戴式显示器或布置为单屏或多屏拼接显示器阵列。显示器大小可以从较小的手持式或头戴式显示装置变化到全壁式显示器。在图1所图示的示例中,大型设备106包括以阵列安装的多个显示光引擎和屏幕拼片,其由显示拼片134代表。
在操作中,大型设备106显示从服务提供者104接收的图像数据信号。对于拼接显示器,图像数据信号102适当地分布在显示拼片134之间,使得大型设备106的显示表面138上显示连贯的图像。显示表面140通常包括显示拼片134的组合式显示表面。另外,大型设备106的显示表面138是触敏的,其触敏性在显示拼片134的部分或全部表面区域上延伸。在一种实现中,显示表面140通过检测用户与一个或多个光束(包括例如红外激光束)之间的干涉来感测触摸。在其他实现中,显示表面140可以依赖于包括表面电容、投射电容或互电容的电容式触摸技术、以及光学技术(例如像素传感器)、基于声波的触摸检测、电阻式触摸方法等,但不限于此,并且因而可以检测例如作为自然用户接口的一部分的、不涉及真实物理接触的“触摸”输入。显示表面138的触摸灵敏性使用户能够以实施触摸姿势来与显示在墙壁上的资产交互,所述触摸姿势包括敲击、拖动、滑动和收聚。这些触摸姿势可以代替或增补典型外围I/O装置的使用,然后显示表面140也可以接收来自这样的装置的输入。就这一点而言,大型设备106还可以包括典型的外围I/O装置(未示出),诸如外部键盘或鼠标。
显示表面140可以是“多点触摸”表面,其可以识别大型设备106上的不止一个接触点,使得能够识别复杂的姿势,诸如两根或三根手指的滑动、收聚姿势,以及旋转姿势和多用户的二支、四支、六支等手的触摸或姿势。因而,多个用户130、132可以以实施触摸姿势来与显示表面140上的资产交互,诸如拖动以使资产在屏幕上重定位、轻敲资产以显示菜单选项、滑动以翻阅资产、或者实施收聚姿势以调整资产的大小。多个用户130、132也可以同时与屏幕上的资产交互。同样,资产的示例包括应用环境、图像、视频、Web浏览器、文档、膝上型电脑屏幕的镜像或渲染、幻灯片、内容流等等。触摸信号从显示表面140发送至服务提供者104以进行处理和解读。将理解,本文示出的系统仅仅是示例性的,并且变化和修改是可能的。
图2是图1的协作系统100的通信基础设施200的概念图,其通过与服务提供者104的交互来跨设备共享内容流,例如跨大型设备106和简化型设备108共享内容流。如所示出的,该通信基础设施200包括但不限于经由网络110通信地耦接到服务提供者104的大型设备106和简化型设备108。如图2所示,该示例实现的通信基础设施200包括作为协作管理者模块112的一部分而被包括的流式传输基础设施202和消息传送(message)基础设施204,以支持协作服务模块114、116的通信以实现共享工作空间。在该示例中,大型设备106包括协作服务模块114、一个或多个客户端应用206和共享浏览模块210。简化型设备108包括协作服务模块116、一个或多个客户端应用208和共享浏览模块212。当协作参与者希望在协作期间启动web浏览器的实例时,共享浏览模块210、212负责与集中式服务提供者(也被称为集中式服务器)进行通信。这使集中式服务提供者能够创建“容器”,在该“容器”中,浏览器例如Chrome在协作参与者之间被执行和共享。浏览器通过在每台设备上创建的用户界面元件被共享。当浏览器在容器中被执行时,浏览器执行的视频被捕获并共享,即流式传输至每台设备的用户界面元件,该用户界面元件继而播放视频并接受用户交互。用户交互以在视频上的位置处发生的事件的形式被捕获并随后被发送回容器,如下面更详细描述的那样。在各种实施方式中,视频流中没有任何内容是可编辑、可点击或可触摸的。更确切地讲,与所渲染的流中的一些坐标处发生的这种类型的输入相关联的事件被捕获,并被返回到容器以供容器中的浏览器执行。因而,每台设备上的用户界面元件捕获被中继回容器以供浏览器实际执行的用户交互及事件。因此,例如,如果用户点击屏幕上的不接受文本的某个随机区域并开始键入,则不会发生任何事情,因为用户正在与下述区域进行交互,这样的区域的相应坐标与接受文本的区域不对应。但是,如果用户点击屏幕中的其坐标包括文本框的区域,则任何按键动作(keystroke,键击)都将被捕获并作为事件发送到容器,以供在容器中运行的浏览器执行。这样做可以让不同位置处的多位参与者观看资产并与资产交互,所述资产诸如为基于网络的内容。也就是说,协作参与者可以主动选择创建共享浏览器。当这种情况发生时,参与者设备上的共享浏览模块接收用户的输入,并向集中式服务提供者传送创建共享浏览器的期望。然后浏览器由集中式服务提供者创建在容器中,并流式传输至请求者(即,使共享浏览器被创建的参与者)以及当前协作会话中的任何参与者。正在控制浏览器的参与者使事件被发出,然后被中继至集中式服务提供者处的容器,如下面更详细描述的那样。当容器接收到该事件时,容器创建所谓的合成(synthetic)用户界面事件,该合成用户界面事件被发送至浏览器。合成用户界面事件是发信号告知正在执行的浏览器发生了某个动作的事件。然后,与事件对应的动作可以由容器中的浏览器执行,并且随后流式传输回正在参与的设备。在至少一些实施方式中,如果所有权或控制权传递给另一参与者,则该新参与者使事件被发出,而会话的其他参与者是被动消费者。在一个或多个实施方式中,浏览器在容器中以全屏幕、固定分辨率被执行,使得浏览器的位置和其他坐标信息是已知的,例如X、Y、高度、宽度和大小。在参与设备的用户界面元件中生成的任何事件都将其坐标转换为在容器内运行的浏览器的坐标系。在一个或多个实施方式中,容器中的浏览器大小总是固定的,并且客户端侧视频被缩放以适配用户设置的大小,同时保持固定的纵横比例如6x9,使得与每台设备相关联的坐标可以被可靠地转换回容器。
因而,集中式服务提供者使以不需要任何本地资源来创建本地Web浏览器实例的方式被共享的Web浏览器的功能集中化。利用软件摄像机来捕获在集中式服务提供者处执行的Web浏览器的视频。软件摄像机是用软件实现的虚拟摄像机,用于捕获视频显示或视频显示的区域作为视频流。然后视频被流式传输至协作参与者,或者更准确地讲,流式传输至每台协作设备。该视频在每台设备上被渲染,以便协作参与者可以使用与Web浏览器交互相同的方式与视频交互。在一个或多个实施方式中,控制机制使控制权在参与者之间传递以确保不存在冲突,诸如当两个参与者同时以不同方式与视频交互时可能会出现的冲突。Web浏览器交互作为事件被捕获,然后被中继回集中式服务提供者,由共享Web浏览器处理并执行。同样,软件摄像机捕获该执行,然后将该执行流式传输至协作参与者。
大型设备106被图示为通过通信基础设施200与简化型设备108共享内容流A。作为响应,简化型设备108被配置为从通信基础设施200检索内容流A,并且将该内容流与其内容流B一起显示在简化型设备108的显示装置上。同样地,简化型设备108被配置为通过通信基础设施200与大型设备106共享内容流B。作为响应,大型设备106被配置为从通信基础设施200检索内容流B,并且将该内容流与其内容流A一起显示在大型设备106的显示装置上。
以这种方式,大型设备106和简化型设备108被配置为经由服务提供者104彼此协作以生成包括内容流A和B的共享工作空间。内容流A和B可以用于生成在共享工作空间内被渲染的不同资产。在一种实施方式中,大型设备106和简化型设备108中的每一台执行相似的过程以重建共享工作空间,由此生成该共享工作空间的本地版本,该本地版本与在其他设备处重建的共享工作空间的其他本地版本相似。一般而言,大型设备106和简化型设备108的功能分别由相应的协作服务模块114、116和客户端应用206、208来协调。
客户端应用206、208是通常驻留在与相应设备相关联的存储器内(如关于图8进一步描述的)的软件程序。客户端应用206、208可以由包括在相应设备内的处理系统执行。当被执行时,客户端应用206、208建立并管理上面结合图2讨论的同样包括内容流A和B的共享工作空间。在一种实现中,共享工作空间由可被大型设备106和简化型设备108二者访问的元数据限定。大型设备106和简化型设备108中的每一台都可以基于该元数据(下面关于图3所讨论的)生成共享工作空间的本地版本,该本地版本与其他本地版本基本上同步。
这样做时,客户端应用206被配置为将内容流A传输至流式传输基础设施200以用于随后流式传输至简化型设备108。客户端应用206还经由消息传送基础设施204将消息传输至简化型设备108,该消息向大型设备106指示内容流A可用并且可以在消息中反映的位置处被访问。以类似的方式,客户端应用208被配置为将内容流B传输至流式传输基础设施202以用于随后流式传输至大型设备106。客户端应用208还经由消息传送基础设施204向大型设备106传输消息,该消息向大型设备106指示内容流B可用并且可以在消息中反映的位置处被访问。该消息指示可以从流式传输基础设施202内的位置进行访问。
客户端应用206还可以经由消息传送基础设施204向简化型设备108广播消息,该消息具体说明(specify,指定)了可以用于显示内容流A的与内容流A相关的各种属性。该属性可以包括位置/方位、图片大小、纵横比或用其在简化型设备108上显示内容流A的分辨率等,并且可以被包括在下面关于图3所描述的元数据中。客户端应用208可以从消息传送基础设施204中提取属性,然后以如消息传送基础设施204所提供的特定图片大小、纵横比和分辨率在简化型设备108的显示装置上的特定位置处显示内容流A。通过该技术,大型设备106能够与简化型设备108共享内容流A。简化型设备108还被配置为执行互补技术以便与大型设备106共享内容流B。
客户端应用206、208因而被配置为执行相似的技术以便分别相互共享内容流A和B。当客户端应用206在大型设备106的显示装置上渲染内容流A并且还从流式传输基础设施202流式传输内容流B时,大型设备106因而构建该共享工作空间的包括内容流A和B的版本。相似地,当客户端应用208在简化型设备108的显示装置上渲染内容流B并且还从流式传输基础设施202流式传输内容流A时,大型设备106相似地构建该共享工作空间的包括内容流A和B的版本。
共享浏览模块210、212可以是客户端应用的一部分,或者可以是单独的组件。
本文讨论的设备(例如,大型设备106和简化型设备108)通常经由流式传输基础设施202和消息传送基础设施204耦接在一起。这些不同基础设施中的每一个都可以包括下述硬件,该硬件是基于云的和/或是与各种设备同地协作的就地部署(on-premise,本地部署、内部部署),两者都由网络110代表。然而,本领域技术人员将认识到,可以实现各种不同的方法以在显示系统之间流式传输内容流并传送讯息/消息。
图3描绘了更详细地示出图2的流式传输基础设施202的框图300。本示例中的流式传输基础设施202包括协作服务器302、数据库服务器304和文件服务器306。每个服务器都可以包括计算机装置,该计算机装置具有处理器(诸如关于图8描述的处理系统单元)和计算机可读介质诸如存储器,处理器执行软件以用于执行本文描述的功能和操作。协作服务器302、数据库服务器304和文件服务器306可以如所示的实现为彼此耦接且经由网络110耦接至设备的分开的且不同的计算装置/结构。可替代地,协作服务器302、数据库服务器304以及文件服务器306的功能可以被实现为在单独位置(例如,逻辑上或虚拟地)的单独计算装置/结构,或者实现成任何其他技术上可行的结构的组合。此外,协作服务器302、数据库服务器304和/或文件服务器306中的一个或多个可以被实现为分布式计算系统。网络110可以是允许数据交换的任何技术上可行的有线或无线的通信或信息网络,诸如广域网(WAN)、局域网(LAN)、无线(WiFi)网络和/或互联网等等。
协作服务器302协调各种设备(例如大型设备106和简化型设备108)、数据库服务器304和文件服务器306之间的信息流。因而,在一些实现中,协作服务器302是用于设备的流式传输服务器。在一些实施方式中,与流式传输基础设施202相关联的用于设备和/或业务逻辑的应用程序接口(API)端点驻留在协作服务器302中。另外,协作服务器302从设备接收请求并且可以向设备发送通知。因此,协作服务器302与每台设备(例如,大型设备106和简化型设备108)之间通常存在双向连接。可替代地或另外地,设备可以通过API在协作服务器302上提出请求。例如,在通过协作系统100对特定项目进行协作工作期间,设备可以向协作服务器302发送对与资产相关的信息的请求,以将资产显示在特定项目的共享工作空间中。
数据库服务器304(以及协作服务器302)可以存储与协作系统200相关联的元数据308,诸如专项资产、共享工作空间和/或项目的元数据。例如,这种元数据可以包括与特定共享工作空间相关联的资产,该共享工作空间与特定项目、每个共享工作空间的各种设置的状态、对特定资产做出的标注等相关联。元数据308还可以包括纵横比元数据和用于每种资产的资产元数据。在一些实现中,纵横比元数据可以包括分配给项目的纵横比(在本文中被称为“分配的纵横比”)。分配给项目的纵横比适用于项目的共享工作空间,使得项目的所有共享工作空间具有分配给该项目的相同的纵横比。用于资产的资产元数据可以具体说明相关联的共享工作空间内的资产的位置/方位和尺寸/大小。
资产元数据指示资产的位置和大小,例如实现水平和竖向(x和y)坐标值。在一些实施方式中,资产元数据可以以百分比值表示资产的位置和大小。在这样的实现中,资产的大小(宽度和高度)和位置(x,y)依照沿着相关的共享工作空间的x轴(水平轴)和y轴(竖向轴)的百分比位置表示。例如,资产的位置和大小可以表示为共享工作空间宽度和共享工作空间高度的百分比。水平和竖向(x和y)坐标值可以对应于资产上的预定点,诸如资产的左上角位置。因而,当设备的显示表面具有不同的大小和/或纵横比时,每种资产仍然可以被与正在显示其的特定共享工作空间成比例地定位和设计大小。当多台设备的多个显示装置分别显示共享工作空间时,每台设备都可以基于所接收的元数据来配置共享工作空间的本地版本。
文件服务器306是用于部分或全部资产内容310的物理存储位置,该部分或全部资产内容被渲染为文件诸如文档、图像和视频。在一些实施方式中,文件服务器306可以直接从设备接收对资产内容310的请求。例如,诸如文字处理文档之类的资产可以与在多个设备(例如,大型设备106和简化型设备108)的显示装置上显示的共享工作空间相关联。当资产由用户在大型设备106处修改时,与资产相关联的文件的元数据在文件服务器306中由协作服务器302更新,简化型设备108从文件服务器306下载文件的更新后的元数据,并且该资产随后以更新后的状态被显示在简化型设备108的姿势敏感型显示表面124上。因而,用于特定共享工作空间和项目的所有资产的文件副本可以被存储在文件服务器306处,以及存储在正在关于项目协作的每台设备上。
每台设备都是设置在协作系统100中的不同位置处的协作式多介质平台的实例。每台协作设备都被配置为提供数字系统,该数字系统可以在一台或多台另外的且远程定位的设备处被镜像。因而,协作客户端促进资产、共享工作空间、和/或完整的演示文稿(presentation,展示)或其他项目及其演示文稿的协同修改。
图4更详细地描绘了图2的消息传送基础设施204。如所示出的,消息传送基础设施204包括经由集中式缓存和存储装置406耦接在一起的服务器机器402和404。服务器机器402耦接至大型设备106并且包括消息传送应用408。服务器机器404耦接至简化型设备108并且包括消息传送应用410。
服务器机器402和404通常是基于云的计算装置或就地部署计算装置,这样的计算装置包括如关于图8进一步描述的那样被配置为分别存储和执行消息传送应用408和410的存储器和处理系统。消息传送应用408和410被配置为分别生成与大型设备106和简化型设备108的实时套接字(socket)连接,以允许消息在设备之间快速传输。在一种实现中,消息传送应用408和410被实现为ASP.NET应用并依赖signalR WebSocket来完成快速、实时的消息传送。
集中式缓存和存储装置406提供持续的消息传送后台,通过该消息后台可以在消息传送应用408和410之间交换消息。在一种实施方式中,集中式缓存和存储装置包括由SQL数据库支持的Redis缓存。消息传送应用408和410可以被配置为周期性地轮询集中式缓存和存储装置406以查询新消息,从而允许消息被快速地传递给那些应用。
在操作中,当大型设备106如上所述的那样传输指示内容流A在流式传输基础设施202上可用的消息时,大型设备106将该消息传输至消息传送应用408。然后消息传送应用408可以将消息中继至集中式缓存和存储装置406。消息传送应用410周期性地轮询集中式缓存和存储装置406,并且因而可以确定消息已经到达。消息传送应用410然后将消息中继至简化型设备108。简化型设备108然后可以解析该消息以检索与大型设备106相关联的标识符,并且然后从流式传输基础设施202流式传输与大型设备106相关联的内容。
图5示出了示例环境500,该示例环境包括诸如以上描述的协作服务器302,以及参与协作的来自公共位置的多台不同的简化型设备108。在这种情况下,简化型设备108中的每一台都共享公共网络连接,每台简化型设备都可以通过该公共网络连接与协作服务器302通信。尽管仅示出了两台设备,但是可以使不止两台设备位于任何一个特定位置。
由简化型设备108共享的公共网络连接允许内容,包括共享Web浏览器,在设备之间共享。
如上所述,描述了创新技术来实现共享应用,包括共享Web浏览器。在将要描述的示例中,Web浏览器在参与协作的参与者之间共享。创新技术提供了按需共享浏览器的体验,在该体验中协作参与者可以观看共享浏览器并与共享浏览器交互。也就是说,共享浏览器可以在需要或想要时被任何协作的参与者创建。创新技术使在不同位置的多位参与者能够观看资产并与该资产互动,所述资产诸如为基于网络的内容。在操作中,当参与者加入项目以便协作时,系统获知已加入项目的所有参与者正在工作空间中协作。工作空间提供了通过其数字画布可用于协作的机制。当用户在协作过程期间通过与共享浏览模块210或212交互来将web浏览器添加到相关联的工作空间上以打开web浏览器时,系统获知的是,由于参与者正试图在协作的情况下打开浏览器,所以系统必须实现共享浏览体验。
为了实现共享浏览体验,创新技术使待共享的Web浏览器的功能集中化。这是通过动态创建或重新创建集中渲染Web浏览器所需的所有后台资源来完成的,以便其可以在参与者中共享。
在操作中,集中式服务提供者使用“容器”。容器是一个将网络、文件和系统进程彼此隔离开的轻量级的虚拟化环境。容器允许部署分布式应用,诸如共享Web浏览器。分布式应用可以包括许多不同类型的应用,作为示例而非限制,包括3-D计算机辅助设计应用、多媒体编辑应用、文字处理应用、电子表格应用等。容器允许软件被封装成标准化单元,并包含软件运行所需的一切,包括代码、运行时间、系统工具、系统库等。容器运行待共享的Web浏览器的实例(或任何正在被集中执行的应用),并包括使容器能够接收然后仿真来自每个参与者的输入的自定义功能,所述输入诸如为触摸输入、鼠标输入、或键盘输入。以这种方式这样做,使每台参与设备免于必须使用任何本地资源来创建本地Web浏览器实例。
在一种或多种实施方式中,容器采用由下述软件摄像机实现的虚拟帧缓冲器捕获过程,该软件摄像机用于捕获正在执行的Web浏览器的视频。虚拟帧缓冲器以软件方式实现了帧缓冲器的概念——硬件视频卡使用该帧缓冲器来准备图像以在物理屏幕上显示。在一种或多种实施方式中,捕获的视频(作为原始YUV帧捕获的)然后被编码成H264视频流,然后被容器流式传输至实况视频流式传输引擎,在该实况视频流式传输引擎中视频被转码成不同的视频格式,例如Motion JPEG(MJPEG),并被广播给注册的参与者。虽然MJPEG用于该具体示例中,但是可以使用任何合适的格式,如本领域技术人员将理解的那样。在此具体示例中,实况视频流式传输引擎包括cam服务器模块和端口映射器模块。cam服务器模块被实现为接收、转码(例如,从H264视频流到MJPEG视频流)及广播实况视频流的软件组件。端口映射器模块被实现为协商与cam服务器模块的连接并分配实况视频流的软件组件。
因此,正在执行的Web浏览器的被捕获的视频被流式传输至协作参与者,或者更准确地讲,被流式传输至每台协作设备。在一些情况下,被流式传输的视频的分辨率可以根据接收流的设备的类型而更改。例如,在有限的带宽的情况下,可以使下游帧率和/或比特率节流以符合对下述用户可用的网络条件,例如通过蜂窝数据提供商使用3G、4G或LTE数据连接的移动装置的用户。另外,在一些实施方式中,为了促进较低带宽的情况,可以减小流式传输的视频的帧速率。例如,可以维护输出帧的队列。如果队列继续建立,则每秒的帧数可以减半以使连接节流。如果队列保持为空,则帧速率可以缓慢增加,直到队列开始建立,然后帧速率可以减半,进一步减小直到达到稳定状态。
视频然后在每台设备上被渲染,使得协作参与者然后可以以类似于它们与Web浏览器交互的方式来与视频交互。因此,例如,在一些实施方式中,协作参与者已经注册其对接收添加至工作空间的任何数据感兴趣。当创建共享浏览器时,资产被添加至工作空间并包含唯一标识符。每台设备都会收到关于该资产及其唯一标识符的通知。该资产可以被添加至每一个设备的工作空间。在这种情况下,所添加的资产是视频播放器,该视频播放器知晓如何渲染从服务中获取的流。资产获取流的URL,使得该资产可以获取并渲染流。
在所示出和描述的实施方式中,共享Web浏览器所需的全部功能由容器在集中式服务提供者处提供——其被实施为基于云的服务。用于共享Web浏览器的功能和资源被动态创建作为容器的一部分。也就是说,当创建容器时,还创建了虚拟触摸装置,该虚拟触摸装置用作待共享的浏览器将在其上执行的桌面。如果状态持续存储尚未被创建,则创建该状态持续存储。状态持续存储允许维护与共享浏览器相关联的状态,例如会话cookie等。然后创建并启动虚拟帧缓冲器,以及启动事件中继过程。事件中继过程使事件能够从设备中继至容器。然后容器启动待共享的Web浏览器,并且Web浏览器的执行可以被捕获、编码和流式传输,如上下文所描述的那样。这提供了细粒度(fine granular)可扩展性,因为每个共享的Web浏览器协作会话都具有关联的新的容器实例。此外,当参与者如通过与共享浏览模块210或212交互以希望调用Web浏览器时,可以非常快速地创建容器以提供无缝的用户体验。
在一种或多种实施方式中,提供控制机制并在参与者之间传递控制权以确保不存在冲突,诸如当两个参与者在同一时间且以不同的、非一致的方式与视频交互时可能会出现的冲突。例如,当用户诸如通过键入、触摸、点击视频流(如通过点击链接的视频渲染)等与所渲染的视频流交互时,用描述刚刚采取的动作的元数据来生成事件。该事件被发送至容器中的事件中继。然后,该事件中继在容器内生成被应用(本例中为Web浏览器)处理的合成事件,就好像该动作发生在本地一样。因此,如果用户呈现出点击了视频流中的超链接,则该事件将被发送至容器中的相应浏览器并发送至用户,使点击看上去像是发生在本地。
因而,在设备处与视频流的交互作为事件被捕获,然后该事件被中继回在集中式服务提供者处的事件监听器,被共享Web浏览器处理并执行。同样,容器处的软件摄像机捕获该执行,然后将该执行流式传输至协作参与者,如上所述。
在至少一些实施方式中,当通过使与从其传出控制权的特定用户相关联的状态信息冻结来在参与者之间传递控制权时,安全性得以提升。只要下一参与者拥有控制权,那么下一参与者的状态信息就由共享的Web浏览器维护。然而,当将控制权传递给另一参与者时,当前参与者的状态信息将从共享Web浏览器冻结,依此类推。如果控制权返回给其状态信息已经被冻结的参与者,则只要它们保持控制权,它们的特定状态信息就会被解除冻结。在参与者退出特定协作会话的情况下,可以维护特定参与者的状态信息,使得当返回时,如果参与者接收到对共享应用的控制权,它们的状态信息可以被解除冻结。
创新技术提供了易于扩展的解决方案,部分归因于这样的事实,即不需要本地计算硬件资源来渲染共享Web浏览器的实例,原因在于共享浏览器作为视频流以标准格式例如MJPEG被流式传输。因而,不需要为了共享Web浏览器而在计算设备上安装任何专用软件。此外,参与者状态信息和用户数据是受到保护的,因为当应用控制权传递给新的参与者时,这些信息是不共享的。例如,拥有控制权的参与者可以输入密码进入网站,浏览器在参与者拥有控制权时记住该密码。当控制权传递给另一个参与者时,该信息不会被共享,从而避免另一个参与者可以使用先前参与者的信息访问同一网站的情况。此外,因为应用交互的结果——即代表从协作参与者接收的、在容器中的浏览器处的事件的执行的结果——被作为视频流传输,所以每台本地设备都免除了必须创建、修改和维护应用相关的结构的负担,所述应用相关的结构诸如为Web浏览器的文档对象模型。减轻维护本地设备上的应用相关的结构的负担,大大降低了本地设备的计算复杂性,从而提高了本地设备参与协作的效率。
现在考虑图6,该图示出了根据一种实施方式的示例系统,大体以600指示。系统600包括大型设备106和两台简化型设备108。每台设备都包括诸如上述的那些组件,对于大型设备106包括协作服务模块114、客户端应用206和共享浏览模块210;并且对于简化型设备108包括协作服务模块116、客户端应用208和共享浏览模块212。另外,系统600包括容器602和端口映射器/cam服务器604。由集中式服务提供者支持的容器602包括一个或多个事件监听器606、软件摄像机608以及当实例化时可以在参与者(即设备106和108)之间共享的Web浏览器610。
在该示例中,三个用户正在参与协作,每个用户与一台设备相关联。假设大型设备106的用户希望启动浏览器并将其添加到协作中。在这种情况下,共享浏览模块210接收用户的输入并将指示共享浏览器被创建的消息发送给集中式服务提供者(其不是正在参与协作的多台设备中之一),诸如后台服务,即从大型设备106发出的“创建共享浏览器”消息。集中式服务提供者接收该消息,并且响应于所接收的消息,实例化新的容器602。容器602启动虚拟桌面,以启动浏览器610、事件监听器606和软件摄像机608。这使得容器能够使用软件摄像机608开始捕获虚拟桌面或浏览器610。软件摄像机608捕获浏览器610的帧,使得帧可以被流式传输至端口映射器/cam服务器604。在一些情况下,以与帧被播放时的播放速率相匹配的捕获速率来捕获帧。也就是说,在一些情况下,不存在超速率(transrate)转换。在其他情况下,可以使用超速率转换,使得捕获速率不需要与播放速率相匹配。因此,通过指示它们希望在大型设备106上启动浏览器,共享浏览模块210使容器被实例化并且使其中的组件(即,事件监听器606、软件摄像机608和浏览器610)被启动。
事件监听器606是容器602内的监听各种用户输入事件的组件。因此,例如,当用户与代表共享浏览器的视频流交互以模拟点击链接、在文本框键入、触摸屏幕等时,这种事件被报告至或被中继回容器602以由事件侦听器606处理执行。中继回容器的事件引起在浏览器610上被执行的动作。这些被执行的动作被软件照摄像机608捕获并被作为视频从容器602流式传输(即“流式传输的浏览器”箭头)至端口映射器/cam服务器604。然后由端口映射器/cam服务器604提供给每台设备106、108并渲染为视频(即,从端口映射器/cam服务器604到每台设备的“渲染共享浏览器”箭头)。提供了共享浏览器用户界面,通过该用户界面,各个参与者可以观看共享浏览器并与之交互,这受上下文所述的控制机制的影响。与渲染共享浏览器的交互作为事件被每台设备捕获,该事件随后被中继回容器602、被事件监听器606处理并且被浏览器610执行、被流式传输返回,以此类推。
如上所述,端口映射器协商到cam服务器的连接并分配实况视频流。cam服务器接收实况视频流、对实况视频流进行转码并将实况视频流广播至参与协作的设备。因此,当容器602启动时,软件摄像机608与端口映射器联系以指示其想为共享浏览器启动新的流。从某种意义上说,端口映射器用作负载均衡器,其位于所有cam服务器的实例之前。因此,为了使系统规模化以支持更多的用户,可以使用多个cam服务器。端口映射器基本上负责平衡可能被实例化的不同cam服务器上的所有负载。在一种或多种实施方式中,存在经由网状网络连接的N个端口映射器,使得当协商与cam服务器的连接时不存在单点故障。端口映射器从容器602中选择应被用于流式传输的cam服务器。端口映射器通知容器哪个cam服务器应该接收流。此时,摄像机608可以开始将浏览器流式传输至cam服务器。
在启动过程中,向参与项目或协作的每台设备发送单独的事件。该单独的事件告知每台设备已经创建了新的共享浏览器,并且告知在哪个cam服务器上共享浏览器是可访问的,即流的URL。由此,协作中的每台设备获知如何以及在哪里访问与共享浏览器相关联的流。
现在,浏览器610正在运行并被流式传输至cam服务器,在至少一些实施方式中,可以在设备之间传递控制权,以使得在任何同一时间,仅有单个参与者可以与共享浏览器交互。因此,例如,如果特定用户希望与共享浏览器交互,它们可以向当前拥有共享浏览器控制权的用户发信号请求(signal,向...发信号表示/告知)浏览器控制权。在所示出和描述的实施方式中,信号浏览器控制权被实现为经历事件中继过程的事件,该事件中继过程在协作中的各个设备之间基本上是多向的。信号浏览器控制权可以结合用户界面组件来实现,该组件使共享浏览器的当前控制者能够允许其他人接管控制权。也就是说,共享浏览器的当前控制者可以允许或拒绝控制权的传递。因此,例如,如果新用户希望控制浏览器,则它们可以点击按钮或通过用户界面工具以其他方式指示对控制浏览器的请求。将该请求作为事件中继给当前控制者。然后可以向当前控制者呈现指示新用户想要控制浏览器的提示。当前的控制者可以选择允许或拒绝控制权的传递。在至少一些实施方式中,信号浏览器控制权还可以启动计时器,在超时后其可以自动地将控制权转移给新用户。这使协作能够继续前进并保持动力。
在一种或多种实施方式中,当通过使与从其传出控制权的特定用户相关联的状态信息冻结来在参与者之间传递控制权时,安全性得以提升。只要下一参与者拥有控制权,那么下一参与者的状态信息就由共享浏览器维护。然而,当将控制权传递给另一参与者时,当前参与者的状态信息将从共享浏览器中冻结,以此类推。如果控制权返回给其状态信息已经被冻结的参与者,则只要它们保持控制权,它们的特定状态信息就会被解除冻结。在参与者退出特定协作会话的情况下,可以维护特定参与者的状态信息,使得在返回时,如果参与者接收到对共享浏览器的控制权,则其状态信息可以被解除冻结。因此,例如,如果特定参与者具有对共享浏览器610的控制权并登录到网站,则存在被存储在共享浏览器610中的一些状态。该状态可以包括特定用户是谁、用户可以在其驱动器中访问哪些文档等等。因而,用户可以被认证到多个不同的站点,并且关联的信息被存储在浏览器会话状态诸如例如会话cookie中。
在所示出和描述的实施方式中,控制共享Web浏览器的特定用户的所有会话cookie被保存在文件中,代表服务器上的该特定用户。该文件附接至协作中的一个且仅一个用户。当共享浏览器的控制权被传递时,该文件被保存并从浏览器会话中卸载。控制共享浏览器的新用户将无法访问任何先前用户的会话状态。然而,在控制权被进一步传递给其他用户的情况下,它们自己的状态将以类似的方式被维护和保存。
在事件控制权返回至其会话状态已以上述方式被保存的先前用户的情况下,这些信息可以被解除冻结,使得它们将再次登录到它们已经访问过的所有先前的网站中。在一些实施方式中,即使当用户退出特定协作时,与用户的会话状态相关联的文件也可以被维护。如果用户在未来某个时候返回协作,它们的会话状态可以按照上述方式解除冻结。
在一种或多种实施方式中,可以提供视觉指示以指示哪个参与者拥有共享Web浏览器的控制权。例如,可以在浏览器窗口上呈现小型用户界面工具以指示谁拥有当前控制权。作为示例而非限制,这种小型用户界面工具可以包括显示用户的照片、用户的姓名、用户的姓名首字母等的图标。在同一协作中共享多个浏览器的情况下,可以呈现多个不同的用户界面工具以指示谁拥有对特定相应的共享Web浏览器的当前控制权。
在上述实施方式中,在集中式服务提供者的支持下,设备之间的协作由专用于协作的协作服务模块和客户端应用支持。然而,需要意识到和理解的是,该协作可以由更加便携的HTML版本的客户端应用来支持。当相应的设备通过浏览器连接至协作时,HTML版本的应用允许共享浏览或共同浏览。从这个意义上说,HTML版本的应用在浏览器体验中提供浏览器。
考虑了上述实施方式之后,现在考虑根据一种或多种实施方式的示例过程。
示例过程
以下讨论描述了可以利用先前描述的系统和装置来实施的技术。每个过程的各方面可以用硬件、固件或软件或其组合来实现。这些过程被示出为具体说明了由一个或多个装置执行的操作的一组框,并且不一定限于由相应框示出的用于执行操作的顺序。在所图示和描述的实施方式中,在诸如上述那样的协作环境中执行操作,在该协作环境中多个设备可以共享公共网络连接以参与共享工作空间,在该共享工作空间中数据可以流式传输至共享工作空间内的其他也正在参与的设备。
图7描绘了示例实现中的过程700,其中应用可以在关联的设备之间在协作中的多个参与者之间共享。任何合适的应用都可以成为协作的主题,并因此可以被共享。仅举一例,可以在参与者之间共享Web浏览器形式的应用。
在框702处,由中央服务提供者接收消息,该消息指示共享应用将被创建作为多台设备之间的协作的一部分。上面提供了一个如何完成该过程的示例。在所示和描述的实施方式中,集中式服务提供者不是参与协作的多台设备中之一。这意味着集中式服务提供者不是具有人类参与者的设备,该人类参与者登录或以其他方式注册或参与作为协作的积极参与者。在框704处,响应于接收到消息,被配置成执行共享应用的容器被实例化。上面提供了如何完成该过程的示例,包括由容器使用以促进应用共享的各种组件。在框706处,容器被用于使多台设备共享该共享应用。上面提供了如何完成该过程的示例。
已经考虑了根据一种或多种实施方式的各种过程,现在考虑可以用来实所描述的实施方式的示例系统和装置。
示例系统和装置
图8图示了大体以800指示的包括示例计算装置802的示例系统,该示例计算装置代表可以实现本文描述的各种技术的一个或多个计算系统和/或装置。这通过包括共享浏览模块212来说明。计算装置802可以是例如服务提供者的服务器、与客户端(例如,客户端装置)相关联的装置、片上系统、和/或任何其他合适的计算装置或计算系统。
图示的示例计算装置802包括处理系统804、一个或多个计算机可读介质806以及一个或多个I/O接口808,它们彼此通信地耦接。尽管未示出,但是计算装置802还可以包括将各种组件彼此耦接的系统总线或其他数据和命令传输系统。系统总线可以包括不同总线结构中的任何一种或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任一种的处理器或局部总线。也可以预期各种其他示例,例如控制和数据线。
处理系统804代表使用硬件执行一个或多个操作的功能。因此,处理系统804被示出为包括可以被配置为处理器、功能块等等的硬件元件810。这可以包括以硬件的实现,如使用一个或多个半导体形成的应用专用集成电路或其他逻辑装置。硬件元件810不受形成其的材料或其中使用的处理机制的限制。例如,处理器可以包括半导体和/或晶体管(例如,电子集成电路(IC))。在这种情况下,处理器可执行指令可以是电子可执行指令。
计算机可读存储介质806被图示为包括存储器/存储装置812。存储器/存储装置812代表与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置组件812可以包括易失性介质(诸如随机访问存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等等)。存储器/存储装置组件812可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等等)。如下面进一步描述的,计算机可读介质806可以以各种其他方式配置。
输入/输出接口808表示允许用户向计算装置802输入命令和信息的功能,并且还允许使用各种输入/输出装置将信息呈现给用户和/或其他组件或装置。输入装置的示例包括键盘、光标控制装置(例如鼠标)、麦克风、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容式传感器或其他传感器)、摄像机(例如,其采用可见或不可见的波长诸如红外频率来将移动识别为不涉及触摸的姿势)等等。输出装置的示例包括显示装置(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应装置等等。因而,如下面进一步描述的那样,可以以各种方式来配置计算装置802以支持用户交互。
本文可以在软件、硬件元件或程序模块的通用背景下描述各种技术。通常,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等等。本文使用的术语“模块”、“功能”和“组件”通常代表软件、固件、硬件或其组合。本文描述的技术的特征是平台无关的,这意味着可以在具有各种处理器的各种商业计算平台上实现该技术。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者在其上传输。计算机可读介质可以包括可以被计算装置802访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”可以指与单纯的信号传输、载波或信号本身相比,能够使信息持续和/或非暂时性存储的介质和/或装置。因而,计算机可读存储介质是指非信号承载的介质。计算机可读存储介质包括硬件,诸如易失性和非易失性介质、可移动和不可移动的介质和/或以适于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据的信息的方法或技术实现的存储装置。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储装置、硬盘、磁带盒、磁带、磁盘存储装置或其他磁性存储装置、或其他存储装置、有形介质、或适于存储所需的信息并可以被计算机访问的制品。
“计算机可读信号介质”可以指被配置为诸如经由网络向计算装置802的硬件传输指令的信号承载介质。信号介质通常可以包含计算机可读指令、数据结构、程序模块或经调制的数据信号中的其他数据,诸如载波、数据信号或其他传输机制。信号介质还包括任何信息传递介质。术语“经调制的数据信号”是指以对信号中的信息进行编码的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质诸如有线网络或直接有线连接,以及无线介质诸如声音、RF、红外线和其他无线介质。
如前所述,硬件元件810和计算机可读介质806代表以硬件形式实现的模块、可编程装置逻辑和/或固定装置逻辑,其在一些实施方式中可用于实现本文描述的技术的至少一些方面,诸如执行一个或多个指令。硬件可以包括集成电路或片上系统的组件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅或其他硬件形式的其他实现。在这种情况下,硬件可以用作执行由该硬件包含的指令和/或逻辑定义的程序任务的处理装置,以及用作存储用于执行的指令的硬件,例如前述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术。相应地,软件、硬件或可执行模块可以被实现为在某种形式的计算机可读存储介质上的和/或由一个或多个硬件元件810体现的一个或多个指令和/或逻辑。计算装置802可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,可由计算装置802作为软件执行的模块可以至少部分地以硬件实现,例如通过使用处理系统804的计算机可读存储介质和/或硬件元件810来实现。指令和/或功能可以由一个或多个制品(例如,一个或多个计算装置802和/或处理系统804)来执行/操作以实现本文所描述的技术、模块和示例。
本文描述的技术可以由计算装置802的各种配置来支持,并且不限于本文描述的技术的具体示例。该功能还可以全部或部分地通过使用分布式系统来实现,诸如经由平台816通过“云”814来实现,如下所述。
云814包括和/或代表用于资源818的平台816。平台816概括(abstract,抽象化、抽象出)云814的硬件(例如,服务器)和软件资源的底层功能。资源818可以包括应用和/或当计算机处理在远离计算装置802的服务器上被执行时可以使用的数据。资源818还可以包括通过因特网和/或通过用户网络提供的服务,诸如蜂窝或Wi-Fi网络。
平台816可以概括资源和功能以使计算装置802与其他计算装置连接。平台816还可以用于概括资源的规模化,以向所遇到的对经由平台816实现的资源818的需求提供相应的规模水平。因此,在互连的装置实施方式中,本文描述的功能的实现可以分布在整个系统800。例如,功能可部分地在计算装置802上实现以及经由概括云814的功能的平台816来实现。
结论
虽然本发明已经以特定于结构特征和/或方法行为的语言进行了描述,但是应该理解,在所附权利要求中限定的本发明不一定限于所描述的具体特征或行为。更确切地讲,具体的特征和行为被公开作为实现所要求保护的发明的示例形式。
Claims (20)
1.一种计算机实施的方法,包括:
通过集中式服务提供者接收下述消息,所述消息指示允许检索、展示和遍历信息资源的共享应用要被创建作为多台设备之间的协作的一部分,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;
响应于接收到所述消息,在所述集中式服务提供者处实例化一容器,所述容器被配置为执行所述共享应用;以及
使用所述容器,以使所述多台设备共享所述共享应用。
2.根据权利要求1所述的方法,其中,所述使用包括:使用软件摄像机捕获所述共享应用的执行的视频,并且将所捕获的视频流式传输至被配置成与所述多台设备共享所捕获的视频的服务器。
3.根据权利要求1所述的方法,其中,所述使用包括:使用一个或多个事件监听器来监听同设备用户与所述共享应用的交互相关联的用户事件,并且使所述用户的交互在所述共享应用上执行。
4.根据权利要求1所述的方法,其中,所述使用包括:使用一个或多个事件监听器来监听同设备用户与所述共享应用的交互相关联的用户事件,并且使所述用户的交互在所述共享应用上执行;使用软件摄像机捕获所述设备用户与所述共享应用的交互的执行的视频;以及将所捕获的视频流式传输至被配置成与所述多台设备共享所捕获的视频的服务器。
5.根据权利要求1所述的方法,其中,所述使用包括:联系端口映射器以确定所捕获的所述共享应用的执行的视频要被流式传输至其的服务器。
6.根据权利要求1所述的方法,其中,所述使用包括:
联系端口映射器以确定所捕获的所述共享应用的执行的视频要被流式传输至其的服务器;
使用软件摄像机捕获所述共享应用的执行的视频;以及
将所捕获的视频流式传输至所述服务器,其中,所述服务器被配置为与所述多台设备共享所捕获的视频。
7.根据权利要求1所述的方法,其中,所述使用包括:
联系端口映射器以确定所捕获的所述共享应用的执行的视频要被流式传输至其的服务器;
向所述多台设备中的每一台设备发送事件,以向所述多台设备中的每一台设备通知能够从其处访问所捕获的视频的所述服务器;
使用软件摄像机捕获所述共享应用的执行的视频;以及
将所捕获的视频流式传输至所述服务器,其中,所述服务器被配置为与所述多台设备共享所捕获的视频。
8.根据权利要求1所述的方法,还包括:使控制权能够在所述多台设备之间传递,以使得一次仅有一个用户能够与所述共享应用交互。
9.根据权利要求1所述的方法,还包括:响应于对所述共享应用的控制权从一个用户传递至另一个用户,使与从其传递出控制权的特定用户相关联的状态信息冻结。
10.根据权利要求9所述的方法,还包括:响应于对所述共享应用的控制权传递回所述特定用户,使所述状态信息解除冻结。
11.一种在协作环境中实现的系统,在所述协作环境中,多台设备能够共享公共网络连接以参与能够在所述多台设备之间共享资产的协作,所述系统包括:
集中式服务提供者;
与所述集中式服务提供者相关联的一个或多个处理器;
存储计算机可执行指令的一个或多个计算机可读介质,所述一个或多个计算机可读指令在由所述一个或多个处理器执行时执行包括下述的操作:
通过所述集中式服务提供者接收指示共享应用要被创建作为多台设备之间的协作的一部分的消息,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;
响应于接收到所述消息,由所述集中式服务提供者实例化一容器,所述容器被配置为执行所述共享应用;以及
使用所述容器,以使所述多台设备共享所述共享应用。
12.根据权利要求11所述的系统,其中,所述使用包括:使用软件摄像机捕获所述共享应用的执行的视频,并且将所捕获的视频流式传输至被配置成与所述多台设备共享所捕获的视频的服务器。
13.根据权利要求11所述的系统,其中,所述使用包括:使用一个或多个事件监听器来监听同设备用户与所述共享应用的交互相关联的用户事件,并且使所述用户的交互在所述共享应用上执行。
14.根据权利要求11所述的系统,其中,所述使用包括:使用一个或多个事件监听器来监听同设备用户与所述共享应用的交互相关联的用户事件,并且使所述用户的交互在所述共享应用上执行;使用软件摄像机捕获所述设备用户与所述共享应用的交互的执行的视频;以及将所捕获的视频流式传输至被配置成与所述多台设备共享所捕获的视频的服务器。
15.根据权利要求11所述的系统,其中,所述使用包括:联系端口映射器以确定所捕获的所述共享应用的执行的视频要被流式传输至其的服务器。
16.根据权利要求11所述的系统,其中,所述使用包括:
联系端口映射器以确定所捕获的所述共享应用的执行的视频要被流式传输至其的服务器;
使用软件摄像机捕获所述共享应用的执行的视频;以及
将所捕获的视频流式传输至所述服务器,其中,所述服务器被配置成与所述多台设备共享所捕获的视频。
17.根据权利要求11所述的系统,其中,所述使用包括:
联系端口映射器以确定所捕获的所述共享应用的执行的视频要被流式传输至其的服务器;
向所述多台设备中的每一台设备发送事件,以向所述多台设备中的每一台设备通知能够从其处访问所捕获的视频的所述服务器;
使用软件摄像机捕获所述共享应用的执行的视频;以及
将所捕获的视频流式传输至所述服务器,其中,所述服务器被配置成与所述多台设备共享所捕获的视频。
18.根据权利要求11所述的系统,还包括:使控制权能够在所述多台设备之间传递,以使得一次仅有一个用户能够与所述共享应用交互。
19.存储计算机可执行指令的一个或多个计算机可读介质,所述一个或多个计算机可执行指令在由一个或多个处理器执行时执行包括下述的操作:
通过集中式服务提供者接收指示共享应用要被创建作为多台设备之间的协作的一部分的消息,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;
响应于接收到所述消息,实例化一容器,所述容器被配置成执行所述共享应用;以及
使用所述容器,以使所述多台设备共享所述共享应用。
20.根据权利要求19所述的一个或多个计算机可读介质,其中,所述共享应用包括允许检索、展示和遍历信息资源的应用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/493,962 US10129306B1 (en) | 2017-04-21 | 2017-04-21 | Shared applications including shared applications that permit retrieval, presentation and traversal of information resources |
US15/493,962 | 2017-04-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733771A true CN108733771A (zh) | 2018-11-02 |
CN108733771B CN108733771B (zh) | 2021-11-26 |
Family
ID=63854862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810368811.5A Active CN108733771B (zh) | 2017-04-21 | 2018-04-23 | 共享应用,包括允许检索、展示和遍历信息资源的共享应用 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10129306B1 (zh) |
CN (1) | CN108733771B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269516A (zh) * | 2020-11-16 | 2021-01-26 | Oppo广东移动通信有限公司 | 桌面元数据的显示方法、访问方法及相关装置 |
CN112463169A (zh) * | 2020-12-11 | 2021-03-09 | 北京橙色云科技有限公司 | 基于在线工作系统的文件处理方法、装置以及存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10853220B2 (en) | 2017-04-12 | 2020-12-01 | Microsoft Technology Licensing, Llc | Determining user engagement with software applications |
US10129306B1 (en) | 2017-04-21 | 2018-11-13 | Prysm, Inc. | Shared applications including shared applications that permit retrieval, presentation and traversal of information resources |
US10769233B2 (en) * | 2017-06-13 | 2020-09-08 | Open Text Corporation | Systems and methods for communication across multiple browser pages for an application |
US20190050378A1 (en) * | 2017-08-11 | 2019-02-14 | Microsoft Technology Licensing, Llc | Serializable and serialized interaction representations |
US11580088B2 (en) | 2017-08-11 | 2023-02-14 | Microsoft Technology Licensing, Llc | Creation, management, and transfer of interaction representation sets |
CN109523221A (zh) * | 2017-09-18 | 2019-03-26 | 溥美公司 | 使用网状可视化画布的不同工作流集成 |
US11461278B2 (en) * | 2017-09-18 | 2022-10-04 | Sococo, Llc | Disparate workflow integration using a meshed visualization canvas |
CA3022570C (en) * | 2017-10-30 | 2022-06-14 | Deltek, Inc. | Dynamic content and cloud based content within collaborative electronic content creation and management tools |
US10657032B2 (en) * | 2018-03-30 | 2020-05-19 | Atlassian Pty Ltd | Systems and methods for monitoring performance of applications |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1638338A (zh) * | 2003-12-22 | 2005-07-13 | 国际商业机器公司 | 会话共享的方法与系统 |
CN101329639A (zh) * | 2008-07-24 | 2008-12-24 | 武汉理工大学 | 一种在制造网格环境中实现应用程序共享的方法 |
US20110276619A1 (en) * | 2010-05-04 | 2011-11-10 | Microsoft Corporation | Desktop screen sharing over http |
CN102521407A (zh) * | 2011-12-28 | 2012-06-27 | 谢勇 | 一种多用户之间的文档协作方法 |
WO2013036920A1 (en) * | 2011-09-09 | 2013-03-14 | Cloudon, Inc. | Systems and methods for workspace interaction with cloud-based applications |
WO2013048229A1 (en) * | 2011-09-26 | 2013-04-04 | Mimos Berhad | A system and method for performing ad-hoc screen switching & sharing |
CN103180822A (zh) * | 2010-08-12 | 2013-06-26 | 谷歌公司 | 使用共享工作器的子组件实例和同步 |
CN103635892A (zh) * | 2011-07-07 | 2014-03-12 | 索尼电脑娱乐美国公司 | 自动创建用于分享照片的群体 |
CN103812915A (zh) * | 2012-11-15 | 2014-05-21 | 中兴通讯股份有限公司 | 资源共享方法、装置、系统及终端、资源管理中心 |
US20160140139A1 (en) * | 2014-11-17 | 2016-05-19 | Microsoft Technology Licensing, Llc | Local representation of shared files in disparate locations |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991916B2 (en) * | 2005-09-01 | 2011-08-02 | Microsoft Corporation | Per-user application rendering in the presence of application sharing |
US8595356B2 (en) * | 2006-09-28 | 2013-11-26 | Microsoft Corporation | Serialization of run-time state |
US8984530B2 (en) * | 2008-01-31 | 2015-03-17 | Microsoft Corporation | Queued message dispatch |
US20100223364A1 (en) * | 2009-02-27 | 2010-09-02 | Yottaa Inc | System and method for network traffic management and load balancing |
US8892628B2 (en) * | 2010-04-01 | 2014-11-18 | Microsoft Corporation | Administrative interface for managing shared resources |
US10230600B2 (en) * | 2014-12-19 | 2019-03-12 | Oracle International Corporation | Performance analysis and bottleneck detection in service-oriented applications |
US20170229102A1 (en) * | 2016-02-05 | 2017-08-10 | Prysm, Inc. | Techniques for descriptor overlay superimposed on an asset |
US10129306B1 (en) | 2017-04-21 | 2018-11-13 | Prysm, Inc. | Shared applications including shared applications that permit retrieval, presentation and traversal of information resources |
-
2017
- 2017-04-21 US US15/493,962 patent/US10129306B1/en active Active
-
2018
- 2018-04-23 CN CN201810368811.5A patent/CN108733771B/zh active Active
- 2018-10-03 US US16/151,150 patent/US10454981B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1638338A (zh) * | 2003-12-22 | 2005-07-13 | 国际商业机器公司 | 会话共享的方法与系统 |
CN101329639A (zh) * | 2008-07-24 | 2008-12-24 | 武汉理工大学 | 一种在制造网格环境中实现应用程序共享的方法 |
US20110276619A1 (en) * | 2010-05-04 | 2011-11-10 | Microsoft Corporation | Desktop screen sharing over http |
CN103180822A (zh) * | 2010-08-12 | 2013-06-26 | 谷歌公司 | 使用共享工作器的子组件实例和同步 |
CN103635892A (zh) * | 2011-07-07 | 2014-03-12 | 索尼电脑娱乐美国公司 | 自动创建用于分享照片的群体 |
WO2013036920A1 (en) * | 2011-09-09 | 2013-03-14 | Cloudon, Inc. | Systems and methods for workspace interaction with cloud-based applications |
WO2013048229A1 (en) * | 2011-09-26 | 2013-04-04 | Mimos Berhad | A system and method for performing ad-hoc screen switching & sharing |
CN102521407A (zh) * | 2011-12-28 | 2012-06-27 | 谢勇 | 一种多用户之间的文档协作方法 |
CN103812915A (zh) * | 2012-11-15 | 2014-05-21 | 中兴通讯股份有限公司 | 资源共享方法、装置、系统及终端、资源管理中心 |
US20160140139A1 (en) * | 2014-11-17 | 2016-05-19 | Microsoft Technology Licensing, Llc | Local representation of shared files in disparate locations |
Non-Patent Citations (1)
Title |
---|
邵艳丽: "综合型群件在协作群体信息共享中的应用及局限", 《现代情报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269516A (zh) * | 2020-11-16 | 2021-01-26 | Oppo广东移动通信有限公司 | 桌面元数据的显示方法、访问方法及相关装置 |
WO2022100309A1 (zh) * | 2020-11-16 | 2022-05-19 | Oppo广东移动通信有限公司 | 桌面元数据的显示方法、访问方法及相关装置 |
CN112463169A (zh) * | 2020-12-11 | 2021-03-09 | 北京橙色云科技有限公司 | 基于在线工作系统的文件处理方法、装置以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10129306B1 (en) | 2018-11-13 |
US20190036988A1 (en) | 2019-01-31 |
US20180309804A1 (en) | 2018-10-25 |
CN108733771B (zh) | 2021-11-26 |
US10454981B2 (en) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733771A (zh) | 共享应用,包括允许检索、展示和遍历信息资源的共享应用 | |
US11775246B2 (en) | Virtual workspace viewport following in collaboration systems | |
US9479549B2 (en) | Collaboration system with whiteboard with federated display | |
US9479548B2 (en) | Collaboration system with whiteboard access to global collaboration data | |
US20230004530A1 (en) | Disparate Workflow Integration Using a Meshed Visualization Canvas | |
US20220156030A1 (en) | Interactive display synchronisation | |
US10454976B2 (en) | Confidentiality-based file hosting | |
US9858027B2 (en) | Multiple display rendering of digital content | |
Fisher et al. | Designing peer-to-peer distributed user interfaces: Case studies on building distributed applications | |
US10241976B2 (en) | Techniques for peer-to-peer communication | |
CN109523221A (zh) | 使用网状可视化画布的不同工作流集成 | |
US8966595B1 (en) | Techniques for peer-to-peer communication using a “shared secret” | |
CN111033497A (zh) | 在远程观看的演示中提供超链接 | |
US20180227187A1 (en) | Automatic Network Connection Sharing Among Multiple Streams | |
Kim et al. | Cluster rendering on large high-resolution multi-displays using X3DOM and HTML | |
Kumar et al. | Implementation of interactive real time online co-shopping using Push AJAX | |
US20170230440A1 (en) | Transcoding and Control of Distribution of Assets as part of a Shared Workspace | |
WO2022250642A1 (ru) | Способ и система для совместного просмотра веб-страницы |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |