CN109523221A - 使用网状可视化画布的不同工作流集成 - Google Patents
使用网状可视化画布的不同工作流集成 Download PDFInfo
- Publication number
- CN109523221A CN109523221A CN201811083086.3A CN201811083086A CN109523221A CN 109523221 A CN109523221 A CN 109523221A CN 201811083086 A CN201811083086 A CN 201811083086A CN 109523221 A CN109523221 A CN 109523221A
- Authority
- CN
- China
- Prior art keywords
- video
- captured
- sharing application
- 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.)
- Pending
Links
- 238000010422 painting Methods 0.000 title description 7
- 238000012800 visualization Methods 0.000 title description 4
- 238000000034 method Methods 0.000 claims description 48
- 230000003993 interaction Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 abstract description 34
- 238000003860 storage Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 27
- 239000002609 medium Substances 0.000 description 27
- 230000005540 biological transmission Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 16
- 238000009877 rendering Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000002452 interceptive effect Effects 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000007790 scraping Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 235000015110 jellies Nutrition 0.000 description 2
- 239000008274 jelly Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100353517 Caenorhabditis elegans pas-2 gene Proteins 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 206010009696 Clumsiness Diseases 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000030808 detection of mechanical stimulus involved in sensory perception of sound Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000009969 flowable effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009527 percussion Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009418 renovation Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- XGVXKJKTISMIOW-ZDUSSCGKSA-N simurosertib Chemical compound N1N=CC(C=2SC=3C(=O)NC(=NC=3C=2)[C@H]2N3CCC(CC3)C2)=C1C XGVXKJKTISMIOW-ZDUSSCGKSA-N 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
描述了支持共享应用的技术,包括允许检索、展示和遍历信息资源的共享应用。该创新技术使不同位置处的多位参与者能够观看资产并与资产交互,所述资产诸如为基于网络的内容。该创新技术使待共享的应用的功能集中化。共享应用在协作期间在集中位置处以不需要任何本地资源来创建应用实例的方式被执行。
Description
要求优先权
本申请根据35U.S.C.§119(e)要求2017年9月18日提交的并且名称为“DisparateWorkflow Integration Using a Meshed Visualization Canvas”的美国临时专利申请No.62/560,062的优先权,其全部公开内容通过引用结合于此。
技术领域
共享工作空间可以经由网络实现以支持虚拟环境,在该虚拟环境中用户能够跨多台设备共享资产(asset,有用的资源),诸如应用、内容、视频会议、标注和其他媒介。共享工作空间因而使分布在不同地理位置的用户能够实时协作以共享想法和理念。
背景技术
从技术观点来看,在多个用户之间共享应用可能是具有挑战性的。例如,过去的一些方法需要必须在每个参与者的计算机上安装本地执行的软件。如果参与协作的一些参与者没有所需的软件,那么它们在获得并安装该软件之前不能参与共享。其他方法利用专门的插件、扩展或小程序,同样,如果参与者没有这些资源,则它们不能参与共享。允许应用共享的本地执行的软件还引起与使内容和状态在不同计算装置之间保持同步、管理控制和交互、以及维护和提升安全性相关的挑战。
发明内容
根据本公开内容的一方面,提供了一种计算机实施的方法,包括:通过集中式服务提供者接收下述消息,所述消息指示允许检索、展示和遍历信息资源的共享应用要被创建作为多台设备之间的协作的一部分,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;响应于接收到所述消息,在所述集中式服务提供者处实例化一容器,所述容器被配置为执行所述共享应用;以及使用所述容器,以使所述多台设备共享所述共享应用。
根据本公开内容的另一方面,提供了一种在协作环境中实现的系统,在所述协作环境中,多台设备能够共享公共网络连接以参与能够在所述多台设备之间共享资产的协作,所述系统包括:集中式服务提供者;与所述集中式服务提供者相关联的一个或多个处理器;存储计算机可执行指令的一个或多个计算机可读介质,所述一个或多个计算机可读指令在由所述一个或多个处理器执行时执行包括下述的操作:通过所述集中式服务提供者接收指示共享应用要被创建作为多台设备之间的协作的一部分的消息,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;响应于接收到所述消息,由所述集中式服务提供者实例化一容器,所述容器被配置为执行所述共享应用;以及使用所述容器,以使所述多台设备共享所述共享应用。
根据本发明内容的又一方面,提供了存储计算机可执行指令的一个或多个计算机可读介质,所述一个或多个计算机可执行指令在由一个或多个处理器执行时执行包括下述的操作:通过集中式服务提供者接收指示共享应用要被创建作为多台设备之间的协作的一部分的消息,其中,所述集中式服务提供者不是参与所述协作的所述多台设备中之一;响应于接收到所述消息,实例化一容器,所述容器被配置成执行所述共享应用;以及使用所述容器,以使所述多台设备共享所述共享应用。
附图说明
参照附图描述具体实施方式。在附图中,附图标记的最左边的数字(一个或多个)标识该附图标记首次出现在其中的图。在说明书的不同实例中和在附图中使用的相同的附图标记可以指示相似或相同的项。附图中表示的实体可以指示一个或多个实体并且因而在讨论中可以互换地参照实体的单数形式或复数形式。
图1是可操作以采用本文描述的技术的协作系统的图示。
图2是图1的协作系统的通信基础设施的概念图,该通信基础设施使内容流跨设备共享。
图3更详细地描绘了图2的流式传输基础设施。
图4更详细地描绘了图2的消息传送基础设施。
图5描绘了通过协作服务器参与协作的两台设备。
图6描绘了可用于共享应用的示例系统,包括允许检索、展示和遍历信息资源的共享应用。
图7是描绘了根据一个或多个实施方式的示例实现中的过程的流程图。
图8图示了包括示例装置的各种组件的示例系统,该示例装置可以被实现为如参照图1至图6所描述的和/或使用的任何类型的计算装置,以实现本文描述的技术的实施方式。
具体实施方式
概述
在下面的讨论中,描述了创新技术以实现共享应用,包括允许检索、展示和遍历信息资源的共享应用。创新技术可以应用于任何适合类型的应用。在操作中,在至少一些实施方式中,客户端设备正在运行的任何应用可以由服务器管理,以便与参与协作的一组其他客户端设备上的应用进行共享交互。任何其他单独的客户端设备都能够与应用交互,而不必执行应用的本地版本。也就是说,服务器充当应用运行的管理器,并且参与协作的客户端设备则是该应用的“视频镜像”,如下面更详细地描述的那样。应当知晓和理解,应用可以由协作客户端设备之一托管。可替换地或另外,应用可以由服务器托管。在一些实施方式中,客户端设备注意在显示器上用户点击或执行功能的位置,并且服务器获知用户指针动作以及位置并执行来自服务器托管的应用的功能。可替换地或另外,在客户端设备托管应用的情况下,服务器可以捕获在客户端设备托管的应用上执行的客户端活动。在一些实施方式中,应用在客户端设备上出现的区域由服务器或客户端确定,并且所标识的区域经历被提供给服务器的屏幕捕获视频。然后,服务器将该视频共享给协作中的其他客户端设备处于由托管客户端确定的画布的同一位置。由于服务器获知任何交互在画布上出现的位置,因此该信息可以与托管客户端应用共享,如同个人用户在该应用中本地提供输入,例如,点击、拖动等。因此,服务器捕获活动的视频,然后与协作中的所有客户端设备共享视频。然后在各种其他客户端设备上渲染视频,以提供与协作被标识的工作空间内的x-y位置相关的共享交互体验。任何客户端设备都可以提供输入,然后该输入由服务器接收、处理和共享,如下面更详细地描述的那样。如上所述,该体验可以应用于可以由客户端设备执行的任何应用,包括基于网络的应用和非基于网络的应用。因此,本文描述的创新可以将人、其应用及其数据带入单个环境中,而不管对应的客户端设备所采用的工具如何。应用可以用于任何目的,并且可以在网络诸如因特网上由多方共享并进行交互。应用不必是基于云的,并且也不必是同一生态系统的一部分。在一个或多个实施方式中,创新的解决方案是多线程的并且支持异构的、开放的生态系统工具。这意味着这些解决方案可以应用于不同的平台上,并且在这个意义上是与平台无关的。创新的解决方案不一定需要会议,这改进了为以本文描述的方式进行共享而需要会议的过去的方法。也就是说,可以在不需要正式协作的情况下应用这些创新。例如,同一用户可以具有用于提供共享体验的两个不同显示器。创新的解决方案是持久的,并允许同时渲染持久数据与实时应用。
一种这样的基于网络的应用是允许在万维网上检索、展示和遍历信息资源的Web浏览器。信息资源可以由统一资源标识符(URI/URL)来标识,所述信息资源可以是网页、图像、视频或其他内容。Web浏览器也可用于访问由专用网络中的Web服务器或文件系统中的文件提供的信息。创新技术使不同位置处的多位参与者能够观看资产并与资产互动,所述资产诸如为基于网络的内容。创新技术使待共享的应用的功能集中化。共享应用在协作期间由集中式服务器在集中位置以不需要任何本地资源来创建应用实例的方式来执行。利用软件摄像机捕获正在执行的应用的视频,然后将该视频流式传输至协作参与者,或者更准确地讲,流式传输至每台协作设备。然后,视频会在每台设备上被渲染,以便协作参与者可以以与应用交互相似的方式与该视频交互。在每台设备处的交互作为事件被捕获,然后被中继回集中式服务器。集中式服务器然后处理该事件并在共享应用上执行交互。这些被执行的交互然后被软件摄像机捕获并且流式传输回对其进行渲染的设备处。因而,在不同设备上执行的两个或多个客户端可以通过执行共享应用的集中式服务器来与共享应用交互。不同应用处的交互可以同时发生,或者交互可以被序列化,使得一次仅允许一个客户端与共享应用交互。也就是说,在至少一些实施方式中,可以采用控制机制,该控制机制使控制权在参与者之间传递以确保不存在冲突,诸如当两个参与者在同一时间并且以不同的、非一致的方式与视频交互时可能会出现的冲突。如上所述,交互作为事件被捕获,然后被中继回集中位置,由共享应用处理并执行。软件摄像机再次捕获该执行,然后将其流式传输至协作参与者,依此类推。
在至少一些实施方式中,当控制权在参与者之间传递时,通过使与控制权从其传出的特定用户相关联的状态信息冻结(dehydrate),来使安全性得以提升。只要下一参与者具有控制权,那么下一参与者的状态信息就由共享应用维护。然而,在将控制权传递给另外的参与者时,当前参与者的状态信息将从共享应用中冻结,依此类推。如果控制权返回给其状态信息已被冻结的参与者,则只要它们保持控制权,它们的特定状态信息就会被解除冻结(rehydrate)。在参与者退出特定协作会话的情况下,特定参与者的状态信息可以被保持,使得在返回时,如果该参与者接收到共享应用的控制权,则其状态信息可以被解除冻结。所以基本上,例如,当用户具有浏览器的控制权时,用户的状态信息将被加载到用户正在控制的浏览器中。当用户放弃控制权时,用户的状态信息被捕获并被存储(即冻结),使得一旦用户重新获得对浏览器的控制权,用户的状态信息可以被重新加载(即解除冻结)。
创新技术提供了易于扩展的解决方案,部分原因在于不需要本地计算资源来渲染共享应用的实例。因而,不需要为了共享应用而在计算设备上安装任何专用软件。此外,参与者状态信息和用户数据是受到保护的,因为当应用的控制权传递给新的参与者时,这些信息是不共享的。此外,因为应用交互的结果以视频流的形式传输,所以每台本地设备都可以免除不得不创建、修改和维护应用相关的结构的负担,所述应用相关的结构诸如为在应用是Web浏览器的情况下的文档对象模型(DOM)。减轻维护本地设备上的应用相关的结构的负担大大降低了本地设备的计算复杂性,并且因而提高了本地设备参与协作的效率。应用相关的结构是指通常在本地创建以支持应用的本地执行的各种软件支持基础结构。因此,例如,在Web浏览器的情况下,这将包括树结构的文档对象模型,在该树结构中每个节点都是表示文档的一部分的对象。可以以编程方式操作该对象,并且随后可以在对文档的显示中反映作为结果发生的任何可见变化。浏览器背景下的其他应用相关的结构可以包括将HTML解析为DOM的布局引擎。不同于浏览器的应用,诸如其他基于网络或非基于网络的应用,可以具有不同的应用相关的结构,作为本文描述的创新的结果,该应用相关的结构不一定需要本地创建、维护和操作。
然而,应该意识到和理解的是,创新技术可以运用在任何合适的流式传输环境中,并且不一定用于多个不同设备之间的虚拟协作。
共享工作空间实现了具有各种不同硬件特性的远程和本地连接的设备的虚拟协作,诸如平板电脑、壁挂式显示器、计算装置、移动电话等等。这些设备还可以包括具有不同特性的各种软件,这些软件可用于渲染作为共享工作空间的一部分的资产,诸如特定的文字处理器、展示软件、绘图应用等等。资产的示例包括文档、图像、视频会议等等,如下面进一步描述的那样。
利用共享工作空间的虚拟协作通常利用网络连接来使远程和本地连接的设备彼此通信。在许多情况下,网络连接可以利用互联网连接。因此,例如,位于一个位置的多个设备可以参与与位于单独的(separate,不同的、各自的)远程位置的多个设备的协作。每个位置都可以保持与互联网的网络连接。
在一些情况下,虚拟协作可以采用一个或多个大型设备和一个或多个简化型设备。在再一其他实例中,虚拟协作可以涉及多个简化型设备,诸如来自多个雇员的桌面或膝上型计算机装置的多个雇员之间的协作。因此,协作用户之间的显示可以不同。工作空间本身限定了刮削(scrape,收集)应用的位置出现的地方。“刮削应用”是指作为共享主体的应用。应用被“刮削”,在一定意义上是指在托管应用的设备上提供的输入被捕获为视频,然后该视频被转发到其他参与设备,如上下文所述。例如,大型设备通常被配置为安装到墙上,并且可以具备功能丰富且被配置为支持高分辨率、网络带宽以及硬件资源诸如存储器和处理器。该大型设备还可以包括被配置为消费(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。共享浏览模块210在本文描述的发明技术用于共享除网络浏览器之外的或除基于网络的应之外的应用时可以更一般地被认为是“应用模块”。简化型设备108包括协作服务模块116、一个或多个客户端应用208和共享浏览模块212。再次,共享浏览模块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处,容器被用于使多台设备共享该共享应用。上面提供了如何完成该过程的示例。
现在考虑根据一个或多个实施方式的一些示例用例。
示例用例
在用例示例的环境下,内容包括至少a)所有直播应用或整个直播Windows桌面b)应用屏幕、桌面或剪贴板数据的快照c)对直播应用或数据进行的标注d)共享网站和e)能够渲染特定工作空间的数据文件。
用例1:新的人力资源(HR)雇员收到来自信息技术(IT)的电子邮件,指示下载并了解公司选择的协作工具,即Prysm应用程序套件(PAS)。与他的其他Microsoft工具一样,他导航到Windows应用商店,并查找、下载和安装PAS桌面客户端。当PAS第一次启动时,它会引导他完成一系列面板,其中包含该工具背后的价值主张的高级别概述以及如何开始使用它。然后,PAS向他呈现他的个人主屏幕,在那里可以选择预定义的项目以更多地了解该工具。
用例2:新的人力资源(HR)雇员收到来自信息技术(IT)的电子邮件,下载并了解公司选择的协作工具,即Prysm应用套件(PAS)。与他的其他Microsoft工具一样,他导航到Windows应用程序商店,并查找、下载和安装PAS桌面客户端。当PAS第一次启动时,它会提示他个性化他的存在设置,允许他更改他的图库照片,添加优选的昵称,并提供一空间,在该空间中他可以让每个人都能些许了解他工作以外的生活。PAS然后向他呈现他的个人主屏幕,该个人主屏幕具有一系列选项:1)了解PAS 2)转到他的PAS“部门主页工作空间”3)浏览他可能感兴趣的消息渠道或4)创建视觉工作空间。新雇员能够按照自己的进度学习并尝试使用这个新工具,通过其部门的主页工作空间中放置的丰富互动媒介了解他的公司和部门的程序和政策,与部门内外的人员联系,并最终开启自己的工作空间以与这些人协作。
用例3:财务分析师在准备与她的团队进行即将召开的会议,该会议将使用PAS。她使用Windows文件资源管理器浏览她的数据文件,选择内容,并通过点击一下,立刻向财务部门的季末审计项目发送最多达10个文件。
用例4:即使是在会议之前存在对所有这些文件的最后一刻的修改的情况,她也不担心,因为自动文件更新特征功能将负责更新,而无需登录PAS或PAS Web Admin网站手动上传它们。
用例5:工程师打开她的个人笔记本电脑,在网上搜索与她当前参加的会议相关的信息。她找到了内容,并且因为它只是一个静态图表,所以她通过使用她的浏览器窗口上的快照功能,点击一下就直接将其发送到当前项目和工作空间。它立刻在会议室的大型显示屏上打开的工作空间上出现。如果它是团队所需的直播网站,她只需复制URL并在通过网站共享功能在工作空间中打开浏览器,所有这些都无需起身离开桌子,也无需使用笨拙的屏幕键盘或寻找室内键盘。
用例6:图形艺术家正在远程工作,并且他希望向办公室会议室中在进行的协作会话共享内容并提供内容。该团队正在使用S4B连接音频和视频,并且他使用他的软件实时共享、修改和标注市场材料。图形艺术家在需要单独的私人工作空间时,交替地在他的桌面上、整个桌面本身和他的辅助桌面上的分享应用。另外,会议室中显示屏上共享的任何内容,从经由WSS的个人装置或经由HDMI或QuadLynk的插件装置到项目内容,都可通过可视化工具共享给图形艺术家。图形艺术家正在使用一台新的MS Surface Studio计算机,使用MS笔和Surface Dial并且在没有桌面上的用户界面的情况下创建丰富、美观的内容。
用例7:供应商和买方位于地理上分开的位置,并且买方是Prysm PAS顾客。他们使用Google Docs同时编辑BOM,并且他们希望与在第三位置处的会议室中的买方老板就提议的组成变更达成一致。他们中的三人使用S4B进行音频和视频,讨论内容,并且因为买家打开了文档,他们使用协作软件与老板分享并实时进行更改。即使供应商没有协作软件,协作软件也可用于将当前的协作工具集连接到更广泛的受众。
用例8:两个天文学家位于地理上分开的位置,正在各自的办公桌上使用不是基于网络或以其他方式被同时查看更不用说编辑的不同(disparate,全异的、迥然不同的)工具集。他们使用S4B进行音频、视频、聊天和文件传输,并且他们均直播共享他们的应用到可视化工具中。他们可以实时查看彼此的工作。一旦他们对各自的观察进行了核查、标注、修订和协调,他们就会将更新的材料快照上传到工作空间,以便项目中的其他人可以稍后查看有关星系间尘埃的最新发现。
用例9:我们新的人力资源雇员已经掌握了PAS,并希望为作为全面建筑改造的一部分而正在进行的新办公空间设计做出贡献。在被邀请参加PAS“HQ Remodel”项目之后,他相信他可能会对正被提议的过时的隔间办公室提出一些其他想法。他使用PAS与人力资源团队的几个年轻成员聊天,他们在通道(channel)中交换照片和平面图,将它们与现有计划进行比较和对比,并意识到他们需要一个空间来并排地比较计划,并使替代计划是如何适应设施布局的约束可视化。他们创建了Prysm工作空间来使实现可视化,并且因为它进行得出奇地顺利,他们通过发送他们创建的项目/工作空间的链接邀请他们的老板来查看他们的工作。当Boss看到它时,她使用项目中的PAS音频能力(capability)与作者实时讨论改进。她很快就确定它可能是可以吸引他们试图吸引的年轻工人的一强大空间,应该被视为总部改造(HQ Remodel)的一部分。作为PAS总部改造项目的所有者,她能够使替代计划导入新的工作空间,并使其与其他工作空间一起被考虑。
在考虑了根据一个或多个实施方式的示例用例之后,现在考虑可用于实现所描述的实施方式的示例系统和装置。
示例系统和装置
图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 |
---|---|---|---|
US201762560062P | 2017-09-18 | 2017-09-18 | |
US62/560,062 | 2017-09-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109523221A true CN109523221A (zh) | 2019-03-26 |
Family
ID=65771328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811083086.3A Pending CN109523221A (zh) | 2017-09-18 | 2018-09-17 | 使用网状可视化画布的不同工作流集成 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109523221A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163838A (zh) * | 2020-10-01 | 2021-01-01 | 曹春华 | 基于大数据和云计算的信息处理方法及电子商务协同平台 |
CN115865871A (zh) * | 2023-02-27 | 2023-03-28 | 北京广联达天下科技有限公司 | 基于SignalR的会议控制方法、系统、介质及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407576B1 (en) * | 2008-09-02 | 2013-03-26 | Sitscape, Inc. | Situational web-based dashboard |
US20180309804A1 (en) * | 2017-04-21 | 2018-10-25 | Prysm, Inc. | Shared Applications Including Shared Applications that Permit Retrieval, Presentation and Traversal of Information Resources |
-
2018
- 2018-09-17 CN CN201811083086.3A patent/CN109523221A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407576B1 (en) * | 2008-09-02 | 2013-03-26 | Sitscape, Inc. | Situational web-based dashboard |
US20180309804A1 (en) * | 2017-04-21 | 2018-10-25 | Prysm, Inc. | Shared Applications Including Shared Applications that Permit Retrieval, Presentation and Traversal of Information Resources |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163838A (zh) * | 2020-10-01 | 2021-01-01 | 曹春华 | 基于大数据和云计算的信息处理方法及电子商务协同平台 |
CN115865871A (zh) * | 2023-02-27 | 2023-03-28 | 北京广联达天下科技有限公司 | 基于SignalR的会议控制方法、系统、介质及设备 |
CN115865871B (zh) * | 2023-02-27 | 2023-05-30 | 北京广联达天下科技有限公司 | 基于SignalR的会议控制方法、系统、介质及设备 |
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 | |
US12038876B2 (en) | Disparate workflow integration using a meshed visualization canvas | |
US8577839B2 (en) | Method and apparatus of dynamic updating web portals | |
US9479548B2 (en) | Collaboration system with whiteboard access to global collaboration data | |
US9448697B2 (en) | Method and apparatus for information exchange over a web based environment | |
US20110119594A1 (en) | Method and apparatus for information exchange over a web based environment | |
EP3466023B1 (en) | Interactive display synchronisation | |
Bürger et al. | Introduction of a web service for cloud computing with the integrated hydrologic simulation platform ParFlow | |
Fisher et al. | Designing peer-to-peer distributed user interfaces: Case studies on building distributed applications | |
CN109523221A (zh) | 使用网状可视化画布的不同工作流集成 | |
CN111033497A (zh) | 在远程观看的演示中提供超链接 | |
US20200104024A1 (en) | Communication terminal, information sharing system, display control method, and non-transitory computer-readable medium | |
US20240223642A1 (en) | Method and Apparatus For Information exchange Over a Web Based Environment | |
Khadka et al. | Support collaboration across geographically distributed users using heterogeneous virtual reality systems | |
JP2017523541A (ja) | ソーシャルネットワークを構築、拡張する方法及びこの方法を応用する記憶媒体 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190326 |
|
WD01 | Invention patent application deemed withdrawn after publication |