用于协作远程应用程序共享和会议的方法和系统的制作方法
【专利摘要】用于提供协作会议能力给由客户端计算装置远程访问的应用程序的系统和方法。客户端媒体共享应用程序被提供在客户端层中且所述客户端媒体共享应用程序允许所述客户端计算装置中的至少一个与所述客户端计算装置共享媒体。接收共享媒体的会议管理器应用程序被提供给服务器层。所述会议管理器应用程序使所述共享媒体可用于所述客户端计算装置。
【专利说明】用于协作远程应用程序共享和会议的方法和系统
【背景技术】
[0001]普遍存在的远程访问服务、应用程序和数据由于宽带和无线网络访问的增长和可用性而变得愈来愈平凡。因此,用户使用种类不断增长的客户端装置(例如,移动装置、平板计算装置、手提电脑/上网本/台式电脑等等)访问应用程序和数据。数据可以通过多种网络(包含3G和4G移动数据网络、诸如WiFi和WiMax的无线网络、有线网络等等)从远程服务器传达到装置。客户端可以跨许多不同网络带宽和延时性连接到提供服务、应用程序和数据的服务器。
[0002]在这样的环境中,协作会话中的远程参与者之间也可以共享应用程序。然而,当协作时,参与者可以只被限于由共享应用程序提供的功能,因此限制协作会话。具体来说,可以限制参与者,因为其不能与协作会话中的其它参与者共享媒体,即音频、视频、桌面屏幕抓取、图像库等等。
【发明内容】
[0003]本文公开了用于提供协作会议能力给远程访问的应用程序的系统和方法。一种提供协作会议能力给远程访问的应用程序的方法可以包括:提供包括应用程序层、服务器层和客户端层的分层远程访问框架,所述分层远程访问框架传达关于客户端计算装置之间的远程访问的应用程序的第一信息,所述客户端计算装置在用来显示所述客户端计算装置处的所述远程访问的应用程序的状态模型内访问所述远程访问的应用程序;在所述服务器层中提供服务器远程访问应用程序,所述服务器远程应用程序能够修改所述状态模型;在所述客户端层或所述应用程序层中提供客户端远程访问应用程序;在所述客户端层中提供客户端媒体共享应用程序,所述客户端媒体共享应用程序允许所述客户端计算装置中的至少一个与所述客户端计算装置共享媒体;提供会议管理器应用程序给所述服务器层,所述会议管理器应用程序接收所述共享媒体;和修改所述状态模型以进一步包括所述共享媒体使得所述共享媒体被提供在所述客户端计算装置中的至少一个中。
[0004]在另一实施方式中,一种提供协作会议能力的方法可以包括:提供包括服务器层和客户端层的分层远程访问框架,所述分层远程访问框架传达关于客户端计算装置之间的共享媒体的信息,所述客户端计算装置在用来显示所述客户端计算装置处的所述共享媒体的状态模型内访问所述共享媒体;在所述服务器层中提供服务器远程访问应用程序,所述服务器远程应用程序能够修改所述状态模型;在所述客户端层中提供客户端媒体共享应用程序,所述客户端媒体共享应用程序允许所述客户端计算装置中的至少一个与所述客户端计算装置共享所述共享媒体;提供会议管理器应用程序给所述服务器层,所述会议管理器应用程序接收所述共享媒体;和修改所述状态模型以进一步包括所述共享媒体使得所述共享媒体被提供在所述客户端计算装置中的至少一个中。
[0005]本领域一般技术人员在检查以下附图和详述之后将会或可以明白其它系统、方法、特征和/或优点。希望所有这些额外系统、方法、特征和/或优点包括在这份说明内且受随附权利要求保护。【专利附图】
【附图说明】
[0006]附图中的组件无需相互按比例绘制。相同参考数字指代多个图中的对应部分。
[0007]图1是示出了用于经由计算机网络对远程装置处的应用程序提供远程访问的简化方框图;
[0008]图2是根据本公开内容的状态模型;
[0009]图3示出了 XML状态模型文档内的树;
[0010]图4示出了图1的系统的额外方面;
[0011]图5A是示出了用于提供围绕远程访问的应用程序的会议的系统的简化方框图;
[0012]图5B是示出了用于在远程环境中提供会议的系统的简化方框图;
[0013]图6A至图6B示出了在图5A至图5B的系统内执行的示例性操作的流程图;
[0014]图7示出了协作会议会话期间的观看参与者的客户端计算装置的示例性用户界面;
[0015]图8示出了协作会议会话期间的共享参与者的客户端计算装置的示例性用户界面;
[0016]图9示出了协作会议会话期间的观看参与者的客户端计算装置的第二示例性用户界面;
[0017]图10示出了协作会议会话期间的观看参与者的客户端计算装置的第三示例性用户界面;
[0018]图11示出了包括协作会议会话期间的共享参与者的客户端计算装置的会议管理器视图的示例性用户界面;和
[0019]图12示出了示例性计算装置。
【具体实施方式】
[0020]除非另有定义,否则本文使用的所有科学技术术语具有的意义均与通常为本领域一般技术人员所理解的意义相同。类似或等效于本文描述的方法和材料的方法和材料可用于实践或测试本公开内容。虽然将描述用于远程访问的应用程序的实施方式,但是本领域一般技术人员应明白实施方式不限于这些实施方式,且可应用于经由远程装置远程访问任何类型的数据或服务。
[0021]参考图1,系统100用于经由计算机网络对应用程序、数据或其它服务提供远程访问。系统包括客户端计算机112A或112B,诸如无线手持装置,诸如(例如)经由计算机网络110 (诸如(例如)互联网)耦接到服务器102B的苹果112A或黑莓112B。类似地,客户端计算装置还可以包括由通信网络110连接到服务器102B的台式/上网本个人计算机112C或平板装置112N。应注意,到通信网络110的连接可以是任何类型的连接,例如W1-Fi (IEEE802.llx)、WiMax (IEEE802.16)、以太网、3G、4G 等等。
[0022]服务器102B是(例如)经由计算机网络110连接到局域网(LAN) 109或可以直接连接到计算机网络110。例如,LAN109是公共机构(诸如医院、银行、大型商业或政府部门)的内部计算机网络。通常,这些公共机构仍然使用连接到LAN109的大型计算机102A和数据库108。多种应用程序107A可以存储在大型计算机102A的存储器106A中且对处理器104A执行。类似地,多种应用程序107B可以存储在服务器102B的存储器106B中且对处理器104B执行。应用程序107A和107B可以是提供用于远程访问的“服务”。大型计算机102A、服务器102B和客户端计算机112A、112B、112C或112N可以使用诸如图12的通用计算装置中示出的硬件来实施。
[0023]客户端远程访问应用程序121A、121B、121C、121N可以被设计来分别使用(例如)具有触屏114A的图形显示器或客户端计算机112A、112B、112C、112N的图形显示器114B/114N和键盘116B/116C提供用于以人类可理解的方式显示数据和/或影像的用户交互且取决于用于与应用程序交互的所接收用户指令确定用户输入数据。例如,通过使用分别存储在客户端计算机112A、112B、112C、112N的存储器120A、120B、120C、120N中的命令对处理器118A、118B、118C、118N执行可执行命令来执行客户端远程访问应用程序。
[0024]替代地或此外,对服务器102B执行用户界面程序(作为应用程序107B之一),所述服务器102B然后经由URL被泛用型客户端应用程序(诸如(例如)对客户端计算机112AU12B执行的网页浏览器)访问。使用(例如)超文本标记语言HTML5实施用户界面。在一些实施方式中,服务器102B可以和客户端计算机112A、112B、112C……112N参与协作会话。例如,应用 程序107B中的前文提及的一个可以使服务器102B能够与应用程序107A或另一应用程序107B和客户端远程访问应用程序121A、121B、121C、121N协作交互。因此,服务器102B和正在参与的客户端计算机112A、112B、112C……112N中的每个可以呈现应用程序的显示的同步视图。
[0025]如图2中示出,协同状态模型200执行服务器远程访问应用程序11IB和客户端远程访问应用程序(112A、112B、112C、112N中的任何一个或应用程序107B之一)的操作。月艮务器远程访问程序的实例是可购自加拿大艾伯塔省Calgary Scientific公司的PUREWEB。当执行时,客户端远程访问应用程序根据接收自用户界面程序的用户输入数据更新状态模型200。远程访问应用程序可以根据已更新的状态模型200生成控制数据,且提供控制数据给正在服务器102B上运行的服务器远程访问应用程序111B。
[0026]当从应用程序107A或1097B接收到应用程序数据时,服务器远程访问应用程序IllB根据屏幕或应用程序数据更新状态模型200、根据已更新的状态模型200生成呈现数据,且提供呈现数据给正在客户端计算装置上运行的客户端远程访问应用程序121AU21B、121CU21N。状态模型200包括应用程序的逻辑元件与应用程序的对应状态的关联,其中逻辑元件处于层级次序中。例如,逻辑元件可以是组成应用程序用户界面的平面、菜单、子菜单、按钮等等。这使客户端装置能够(例如)本地显示逻辑元件。因此,呈现于移动电话上的应用程序的菜单看起来将与移动电话的本地菜单一样。类似地,呈现于台式电脑上的应用程序的菜单看起来将与台式电脑操作系统的本地菜单一样。
[0027]确定状态模型200使得逻辑元件中的每个与应用程序107A或107B的对应状态相关联。可以确定状态模型200使得逻辑元件与用户界面相关联。例如,确定应用程序的逻辑元件使得逻辑元件包括过渡元件,其中每个过渡元件使状态模型200的变化与控制数据和与控制数据相关联的应用程序表示数据相关。
[0028]在一些实施方式中,客户端计算装置112A、112B、112C......112N中的两个或更多个
和/或服务器102B可以与应用程序107A或107B协作交互。因此,通过传达客户端计算装置112A、112B、112C......112N中的每个和/或服务器102B和/或参与协作会话的大型计算机102A之间的状态信息,正在参与的客户端计算装置112A、112B、112C……112N中的每个可以呈现应用程序107A或107B的显示的同步视图。
[0029]根据一些实施方式,系统100可以提供解耦应用程序扩展。这些扩展被提供作为服务器远程访问应用程序IllB的部分(例如,作为插件)、客户端计算装置112AU12B、112CU12N (例如,作为客户端软件开发包(SDK)的部分)、应用程序107B之一(例如,作为服务器SDK的部分)或其组合以提供应用程序107A或107B没有以其它方式提供的特征和功能。下文关于图4更完整地描述这些特征和功能。可以提供这些特征和功能且无需修改应用程序107A或107B,因为其与远程访问应用程序集成在一起。因此,解耦应用程序扩展独立于应用程序本身,即,应用程序扩展并不取决于显示在服务器远程访问应用程序IllB和客户端远程访问应用程序121A、121B、121C、121N内的应用程序。此外,可以在由服务器远程访问应用程序IllB或客户端远程访问应用程序121A、121B、121C、121N呈现的控制内使用应用程序扩展且其总是可以用。
[0030]例如,“交互式数字表面层”可以被提供作为应用程序扩展以使协作会话中的参与者能够在正在会话中运行的应用程序的顶部上做注释。交互式数字表面层用作涂鸦工具以使用户能够在应用程序的顶部上画线、箭头、符号、涂鸦等等以使应用程序与交互式数字表面层两者协作。如下文将参考图4A和图4B描述,交互式数字表面层可用作图1的环境内的控制。
[0031]图3示出了描述解耦应用程序扩展(诸如可以结合本公开内容的各个方面实施的交互式数字表面层)的XML状态模型文档的树。美国临时专利申请第61/541,540号和美国专利申请第13/632,245号中描述交互式数字表面层(或“乙酸层”)的实施方式,所述案是以引用方式全部并入本文。在XML树内,定义包括一个或多个会话的协作节点。会话与应用程序扩展(诸如交互 式数字表面层)相关联。会话中的参与者是由UserInfo标签识别且可以是(例如)Glen和Jacquie。每个参与者被指派默认颜色(DefaultColor)以表示用户在交互式数字表面层内的注释(例如,Glen指派蓝色且Jacquie指派绿色)。可以选择任何可显示颜色作为协作会话的参与者的默认颜色。可以定义颜色的优先次序,使得第一用户被指派蓝色、第二用户被指派绿色、第三用户被指派橙色等等。
[0032]在协作节点下还定义了一个或多个视图。在图3的实例中,Glen和Jacquie可以在医学成像应用程序内协作。因此,可以定义两个视图一轴向视图和冠状视图。会话与视图中的每个相关联,其中会话包括多个用户以进行协作。对于轴向视图,Glen会话与光标位置(CP)和某些标记(例如,涂鸦、箭头和圆圈)相关联。在轴向视图中,Jacquie具有相关联的光标位置,但是因为她没有对交互式数字表面层做任何标记,所以不存在与Jacquie的轴向会话视图相关联的任何额外信息。在冠状会话下,每个用户只具有与其相关联的光标位置。
[0033]上述信息是由客户端远程访问应用程序显示,所述信息可以显示在分别与Glen和Jacquie相关联的客户端计算装置上。例如,Glen可以观看具有中型显示器的客户端计算装置(诸如手提电脑)上的应用程序。因此,Glen能够同时观看轴向视图和冠状视图两者。相比之下,Jacquie可以观看较小计算装置(诸如手持无线装置)上的应用程序。因此,由于这种装置的显示区域更有限,所以可能只能呈现轴向视图。
[0034]以下是根据图3的树的状态模型200的示例性部分。状态模型200可以由(例如)扩展标记语言(XML)文档表示。可以使用状态模型200的其它表示。状态模型200中传达关于应用程序和交互式数字表面层的信息。因为交互式数字表面层与应用程序解耦,所以关于交互式数字表面层的信息并非应用程序状态的部分(即,其与应用程序分离)。相反,交互式数字表面层信息单独维持在状态模型200中。
[0035]
【权利要求】
1.一种提供协作会议能力给远程访问的应用程序的方法,其包括: 提供包括应用程序层、服务器层和客户端层的分层远程访问框架,所述分层远程访问框架传达关于客户端计算装置之间的所述远程访问的应用程序的第一信息,所述客户端计算装置在用来显示所述客户端计算装置处的所述远程访问的应用程序的状态模型内访问所述远程访问的应用程序; 在所述服务器层中提供服务器远程访问应用程序,所述服务器远程应用程序能够修改所述状态模型; 在所述客户端层或所述应用程序层中提供客户端远程访问应用程序; 在所述客户端层中提供客户端媒体共享应用程序,所述客户端媒体共享应用程序允许所述客户端计算装置中的至少一个共享可由所述客户端计算装置中的所述至少一个访问的媒体; 提供会议管理器应用程序给所述服务器层,所述会议管理器应用程序接收所述共享媒体;和 修改所述状态模型以进一步包括所述共享媒体使得所述共享媒体被提供在所述客户端计算装置中的至少一个中。
2.根据权利要求1所述的方法,其还包括: 在所述服务器层中为所述客户端计算装置中的每个提供会议存根应用程序,每个会议存根应用程序介接所述 服务器远程访问应用程序以修改所述状态模型。
3.根据权利要求1至2中任一项所述的方法,所述会议管理器应用程序直接从所述客户端媒体共享应用程序接收所述共享媒体。
4.根据权利要求2所述的方法,所述会议管理器应用程序经由所述会议存根应用程序间接从所述客户端远程访问应用程序接收所述共享媒体。
5.根据权利要求1至4中任一项所述的方法,所述共享媒体是音频、视频、图像、桌面屏幕抓取或短信。
6.根据权利要求1所述的方法,所述共享媒体由所述客户端计算装置中的至少两个同时共享,所述共享媒体源自于所述客户端计算装置中的所述至少两个。
7.根据权利要求2至5中任一项所述的方法,所述会议管理器应用程序通过使来自所述至少一个客户端计算装置的所述共享媒体可用于所述会议存根应用程序中的所述每个而用作多工器。
8.一种提供协作会议能力的方法,其包括: 提供包括服务器层和客户端层的分层远程访问框架,所述分层远程访问框架传达关于客户端计算装置之间的共享媒体的信息,所述客户端计算装置在用来显示所述客户端计算装置处的所述共享媒体的状态模型内访问所述共享媒体; 在所述服务器层中提供服务器远程访问应用程序,所述服务器远程应用程序能够修改所述状态模型; 在所述客户端层中提供客户端媒体共享应用程序,所述客户端媒体共享应用程序允许所述客户端计算装置中的至少一个与所述客户端计算装置共享所述共享媒体; 提供会议管理器应用程序给所述服务器层,所述会议管理器应用程序接收所述共享媒体;和修改所述状态模型以进一步包括所述共享媒体使得所述共享媒体被提供在所述客户端计算装置中的至少一个中。
9.根据权利要求8所述的方法,其还包括: 在所述服务器层中为所述客户端计算装置中的每个提供会议存根应用程序,每个会议存根应用程序介接所述服务器远程访问应用程序以修改所述状态模型。
10.根据权利要求8至9中任一项所述的方法,所述会议管理器应用程序直接从所述客户端媒体共享应用程序接收所述共享媒体。
11.根据权利要求9所述的方法,所述会议管理器应用程序经由所述会议存根应用程序间接从客户端远程访问应用程序接收所述共享媒体,所述客户端远程访问应用程序被提供在所述客户端层中。
12.根据权利要求8至11中任一项所述的方法,所述共享媒体是音频、视频、图像、桌面屏幕抓取或短信。
13.根据权利要求8所述的方法,所述共享媒体由所述客户端计算装置中的至少两个同时共享,所述共享媒体源自于所述客户端计算装置中的所述至少两个。
14.根据权利要求9至12中任一项所述的方法,所述会议管理器应用程序通过使来自所述至少一个客户端计算装置的所述共享媒体可用于所述会议存根应用程序中的所述每个而用作多工器。
15.一种在其上存储用于提供协作会议能力给包括应用程序层、服务器层和客户端层的分层远程访问框架中的远程访问的应用程序的计算机可执行指令的有形计算机可读存储介质,所述分层远程访问框架被配置来传达关于客户端计算装置之间的所述远程访问的应用程序的第一信息,所述客户端计算装置在用来显示所述客户端计算装置处的所述远程访问的应用程序的状态模型内访问所述远程访问的应用程序,所述计算机可执行指令在由计算装置执行时使所述计算装置进行以下项: 在所述服务器层中提供服务器远程访问应用程序,所述服务器远程应用程序能够修改所述状态模型; 提供会议管理器应用程序给所述服务器层,所述会议管理器应用程序能够从客户端媒体共享应用程序接收可被所述客户端计算装置中的至少一个访问的共享媒体;和 修改所述状态模型以进一步包括所述共享媒体使得所述共享媒体被提供在所述客户端计算装置中的至少一个中。
16.根据权利要求15所述的有形计算机可读存储介质,在其上还存储计算机可执行指令,所述计算机可执行指令在由所述计算装置执行时使所述计算装置进行以下项: 在所述服务器层中为所述客户端计算装置中的每个提供会议存根应用程序,每个会议存根应用程序能够介接所述服务器远程访问应用程序以修改所述状态模型。
17.根据权利要求15至16中任一项所述的有形计算机可读存储介质,所述会议管理器应用程序直接从所述客户端媒体共享应用程序接收所述共享媒体。
18.根据权利要求16所述的有形计算机可读存储介质,所述会议管理器应用程序经由所述会议存根应用程序间接从客户端远程访问应用程序接收所述共享媒体,所述客户端远程访问应用程序被提供在所述客户端层或所述应用程序层中。
19.根据权利要求15至18中任一项所述的有形计算机可读存储介质,所述共享媒体是音频、视频、图像、桌面屏幕抓取或短信。
20.根据权利要求15所述的有形计算机可读存储介质,所述共享媒体由所述客户端计算装置中的至少两个同时共享,所述共享媒体源自于所述客户端计算装置中的所述至少两个。
21.根据权利要求16至19中任一项所述的有形计算机可读存储介质,所述会议管理器应用程序通过使来自所述至少一个客户端计算装置的所述共享媒体可用于所述会议存根应用程序中的所述每个而用作多工器。
22.一种用于在包括服务器层和客户端层的分层远程访问框架中提供协作会议能力的有形计算机可读存储介质,所述分层远程访问框架传达关于客户端计算装置之间的共享媒体的信息,所述客户端计算装置在用来显示所述客户端计算装置处的所述共享媒体的状态模型内访问所述共享媒体,所述有形计算机可读存储介质在由计算装置执行时使所述计算装置进行以下项: 在所述服务器层中提供服务器远程访问应用程序,所述服务器远程应用程序能够修改所述状态模型; 提供会议管理器应用程序给所述服务器层,所述会议管理器应用程序能够从客户端媒体共享应用程序接收可被所述客户端计算装置中的至少一个访问的共享媒体;和 修改所述状态模型以进一步包括所述共享媒体使得所述共享媒体被提供在所述客户端计算装置中的至少一个中。
23.根据权利要求22所述的有形计算机可读存储介质,在其上还存储计算机可执行指令,所述计算机可执行指令在由所述计算装置执行时使所述计算装置进行以下项: 在所述服务器层中为所述客户端计算装置中的每个提供会议存根应用程序,每个会议存根应用程序能够介接所述服务器远程访问应用程序以修改所述状态模型。
24.根据权利要求22至23中任一项所述的有形计算机可读存储介质,所述会议管理器应用程序直接从所述客户端媒体共享应用程序接收所述共享媒体。
25.根据权利要求23所述的有形计算机可读存储介质,所述会议管理器应用程序经由所述会议存根应用程序间接从客户端远程访问应用程序接收所述共享媒体,所述客户端远程访问应用程序被提供在所述客户端层中。
26.根据权利要求22至25中任一项所述的有形计算机可读存储介质,所述共享媒体是音频、视频、图像、桌面屏幕抓取或短信。
27.根据权利要求22所述的有形计算机可读存储介质,所述共享媒体由所述客户端计算装置中的至少两个同时共享,所述共享媒体源自于所述客户端计算装置中的所述至少两个。
28.根据权利要求23至26中任一项所述的有形计算机可读存储介质,所述会议管理器应用程序通过使来自所述至少一个客户端计算装置的所述共享媒体可用于所述会议存根应用程序中的所述每个而用作多工器。
【文档编号】H04L12/18GK104040946SQ201280057759
【公开日】2014年9月10日 申请日期:2012年11月20日 优先权日:2011年11月23日
【发明者】M·M·托马斯, M·J·斯特菲尔, S·A·利奇, D·A·皮加特 申请人:卡尔加里科学公司