首页> 中国专利> 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展

包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展

摘要

系统和方法,其用于向远程访问应用提供非耦合应用扩展。所述应用扩展被提供为所述远程访问应用的部分,以提供不由底层应用程序另外提供且可通过所述远程访问程序获得的特征和功能。可提供这些特征和功能,而无需修改所述底层应用程序,因为它们与所述远程访问应用成一体。

著录项

  • 公开/公告号CN103959708A

    专利类型发明专利

  • 公开/公告日2014-07-30

    原文格式PDF

  • 申请/专利权人 卡尔加里科学公司;

    申请/专利号CN201280058265.6

  • 申请日2012-10-01

  • 分类号H04L12/16;G06F15/16;H04W4/18;

  • 代理机构北京三友知识产权代理有限公司;

  • 代理人吕俊刚

  • 地址 加拿大阿尔伯塔省

  • 入库时间 2023-12-17 00:55:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-17

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):H04L12/16 申请日:20121001

    实质审查的生效

  • 2014-07-30

    公开

    公开

说明书

背景技术

由于宽带和无线网络访问的增长和可用性,对服务、应用程序和数据的泛在远程 访问已经变得司空见惯。因此,用户正使用日益增长的各种客户端设备(例如,移动 设备、平板计算设备、膝上型计算机/笔记本/台式计算机等)来访问应用程序和数据。 可通过各种网络(包括3G和4G移动数据网络、诸如WiFi和WiMax的无线网络、 有线网络等)将数据从远程服务器传送到设备。客户端可连接至跨许多不同的网络带 宽和延迟提供服务、应用程序和数据的服务器。

在这样的环境中,应用也可在协作会话中的远程用户之间共享。然而,当协作时, 用户可仅限于共享应用提供的功能,因此限制该协作会话。

发明内容

本文公开的是用于在远程访问框架中提供非耦合应用扩展的系统和方法。根据本 公开,提供一种向远程访问应用提供非耦合应用扩展的方法。该方法可包括:提供包 括应用层、服务器层和客户端层的分层远程访问框架,该分层远程访问框架在访问远 程访问应用的客户端计算设备之间传送关于远程访问应用的第一信息;在服务器层中 提供服务器远程访问应用;在客户端层中提供客户端远程访问应用;在客户端层中提 供非耦合应用扩展,该非耦合应用扩展在客户端计算设备处提供独立于远程访问应用 的功能;以及更新扩展状态模型以包括关于非耦合应用扩展的第二信息,使得在客户 端计算设备的至少一个中实现与非耦合应用扩展相关联的功能。

根据其它方面,提供一种向远程访问应用提供非耦合应用扩展的方法。该方法可 包括:提供包括应用层、服务器层和客户端层的分层远程访问框架,该分层远程访问 框架在协作会话中的正在访问远程访问应用的客户端计算设备之间传送关于远程访 问应用的第一信息;在服务器层中提供服务器远程访问应用;在客户端层中提供客户 端远程访问应用;在服务器层、客户端层和应用层的至少一个中提供非耦合应用扩展, 该非耦合应用扩展在客户端计算设备处提供独立于远程访问应用的功能;以及在扩展 状态模型中传送关于非耦合应用扩展的第二信息,使得在客户端计算设备处实现与非 耦合应用扩展相关联的功能。

根据另外其它方面,提供一种有形计算机可读介质,其包括计算机可执行指令使 得当指令被计算设备的处理器执行时,执行向远程访问应用提供非耦合应用扩展的方 法。指令可包括:提供包括应用层、服务器层和客户端层的分层远程访问框架,该分 层远程访问框架在访问远程访问应用的客户端计算设备之间传送关于远程访问应用 的第一信息和关于非耦合应用扩展的第二信息;在客户端层中提供客户端远程访问应 用;在客户端层中提供非耦合应用扩展,该非耦合应用扩展在客户端计算设备处提供 独立于远程访问应用的功能;以及更新扩展状态模型以包括关于非耦合应用扩展的第 二信息,使得在客户端计算设备的至少一个中实现与非耦合应用扩展相关联的功能。

在查看以下附图和详细描述后,其它系统、方法、特征和/或优点对于本领域技 术人员而言将是明显的或可变得明显。意图将所有此类附加系统、方法、特征和/或 优点包括在该描述内且受随附权利要求保护。

附图说明

附图中的组件不一定相对彼此按比例绘制。在贯穿若干视图中,相同的参考数字 指代对应的部件。

图1是图示用于经由计算机网络而在远程设备处提供对应用的远程访问的系统 的简化框图;

图2是根据本公开的状态模型;

图3A图示图1的系统的附加方面;

图3B图示在图1和图2的环境内的扩展状态模型和应用状态模型的数据流;

图4A图示XML状态模型文档内的树;

图4B和4C图示与图4A的XML状态模型相关联的示例性轴向医学图像视图和 冠向医学图像视图;

图5A和5B图示包含可在客户端计算设备的用户之间的协作会话中共享的应用 的示例性用户界面;

图6A图示在图1-图5的系统内执行的示例性操作的流程图;

图6B图示在图1-图5的系统内执行的其它示例性操作的流程图;以及

图7图示示范性计算设备。

具体实施方式

除非另有定义,本文使用的所有技术和科学术语具有与本领域的普通技术人员通 常所理解的相同的含义。与本文所描述的那些方法和材料类似或等效的方法和材料可 用于本公开的实践或测试。虽然将描述远程访问应用的实施方式,但是对本领域技术 人员而言将变得明显的是所述实施方式不限于此,而适用于经由远程设备对任何类型 的数据或服务进行远程访问。

参看图1,用于经由计算机网络提供对应用、数据或其它服务的远程访问的系统 100。该系统包括经由计算机网络110(诸如例如互联网)连接至服务器102B的客户 端计算设备112A或112B,诸如无线手持设备,诸如例如IPHONE112A或 BLACKBERRY112B。类似地,客户端计算设备也可包括通过通信网络110连接至服 务器102B的台式机/笔记本式个人计算机112C或平板设备112N。应注意,至通信网 络110的连接可以是任何类型的连接,例如,Wi-Fi(IEEE802.11x)、WiMax(IEEE 802.16)、以太网、3G、4G等。

服务器102B例如经由计算机网络110连接至局域网(LAN)109或可直接连接至计 算机网络110。例如,LAN109是机构(诸如,医院、银行、大型企业或政府部门) 的内部计算机网络。通常,此类机构仍使用连接至LAN109的大型计算机102A和数 据库108。许多应用程序107A可存储在大型计算机102A的存储器106A中且在处理 器104A上执行。类似地,许多应用程序107B可存储在服务器102B的存储器106B 中且在处理器104B上执行。应用程序107A和107B可以是被提供用于远程访问的“服 务”。可使用硬件(诸如在图7的通用计算设备中示出的硬件)来实施大型计算机102A、 服务器102B和客户端计算设备112A、112B、112C或112N。

客户端远程访问应用121A、121B、121C、121N可被设计分别使用例如客户端 计算设备112A、112B、112C、112N的有触摸屏的图形显示器114A或图形显示器 114B/114N和键盘116B/116C来提供用户交互从而以人类可理解的方式来显示数据和 /或成像,并且根据接收的用户指令确定用户输入数据以与应用程序交互。例如,通 过在处理器118A、118B、118C、118N上执行可执行命令来执行客户端远程访问应 用,其中所述命令分别存储在客户端计算设备112A、112B、112C、112N的存储器 120A、120B、120C、120N中。

替代地或另外地,用户界面程序(作为应用程序107B中的一个)在服务器102B 上执行,接着,通用一般客户端应用(诸如例如在客户端计算设备112A、112B上执 行的网络浏览器)经由URL访问服务器102B。用户界面使用例如超文本标记语言 HTML5来实施。在一些实施方式中,服务器102B可参与和客户端计算设备112A、 112B、112C…112N的协作会话。例如,上述应用程序107B中的一个可使服务器102B 能够协作地与应用程序107A或另一应用程序107B和客户端远程访问应用121A、 121B、121C、121N交互。因此,服务器102B与参与的客户端计算设备112A、112B、 112C…112N中的每一个可呈现显示应用程序的同步视图。

服务器远程访问应用111B和客户端远程访问应用(121A、121B、121C、121N 中的任一个或应用程序107B中的一个)的操作与状态模型200合作地执行,如图2 所示。在可从Calgary Scientific,Alberta,Canada获得的PUREWEB中提供服务器远程 访问程序的实例。客户端远程访问应用在被执行时根据从用户界面程序接收的用户输 入数据来更新状态模型200。远程访问应用可根据更新的状态模型200产生控制数据, 并且将该控制数据提供给在服务器102B上运行的服务器远程访问应用111B。

在从应用程序107A或1097B接收应用数据后,服务器远程访问应用111B根据 屏幕数据或应用数据来更新状态模型200、根据更新的状态模型200提供演示数据并 且将该演示数据提供给客户端计算设备上的客户端远程访问应用121A、121B、121C、 121N。状态模型200包括应用程序的逻辑元件与应用程序的对应状态的关联,其中 逻辑元件按层级顺序显示。例如,逻辑元件可以是组成应用程序用户界面的屏幕、菜 单、子菜单、按钮等。这使得客户端设备能够例如本地显示逻辑元件。因此,呈现在 移动电话上的应用程序的菜单将看起来像移动电话的本地菜单。类似地,呈现在台式 计算机上的应用程序的菜单将看起来像台式计算机操作系统的本地菜单。类似地,呈 现在台式计算机上的应用程序的菜单将看起来像台式计算机操作系统的本地菜单。

确定状态模型200,使得逻辑元件的每一个与应用程序107A或107B的对应状 态相关联。可确定状态模型200,使得逻辑元件与用户交互相关联。例如,确定应用 程序的逻辑元件,使得逻辑元件包括过渡元件,其中每个过渡元件使状态模型200 的改变与控制数据和与之相关联的应用表示数据中的一个相关。

在一些实施方式中,客户端计算设备112A、112B、112C…112N中的两个或多 个和/或服务器102B可协作地与应用程序107A或107B交互。因此,通过在客户端 计算设备112A、112B、112C…112N中的每一个和/或服务器102B和/或参与协作会 话的大型计算机102A之间传送状态信息,参与的客户端计算设备112A、112B、 112C…112N中的每一个可呈现显示应用程序107A或107B的同步视图。

根据一些实施方式,系统100可提供非耦合或解耦应用扩展。此类扩展被提供为 服务器远程访问应用111B的部分(例如,作为插件)、客户端远程访问应用121A、 121B、121C、121N(例如,作为客户端软件开发包(SDK)的部分)、应用107B中 的一个(例如,作为服务器SDK的部分)或其组合,从而提供应用程序107A或107B 未提供的其它特征和功能。以下关于图3A-图3B更全面地描述这些内容。可提供这 些特征和功能,而无需修改应用程序107A或107B,因为它们与远程访问应用成一 体。因此,非耦合应用扩展对于该应用本身是不可知的,即应用扩展不取决于在服务 器远程访问应用111B和客户端远程访问应用121A、121B、121C、121N内显示的应 用。进一步地,应用扩展可在服务器远程访问应用111B或客户端远程访问应用121A、 121B、121C、121N呈现的控件内是可用的。

例如,“交互式数字表层”可被提供为应用扩展,使协作会话的参与者能够在运行 于会话中的应用之上作注释。这样的层可作为“acetate层”,因为其透明地覆盖在运行 于会话中的应用之上。交互式数字表层就像涂写工具一样,使用户能够在应用之上绘 制线、箭头、符号、涂写等,从而提供应用和交互式数字表层二者的协作。如以下将 参考图4A和图4B进行描述,交互式数字表层可作为图1的环境内的控件使用。

图3A-图3B更详细地图示图1-图2的系统100的方面。图3A将系统100图示 为具有分层软件栈。客户端远程应用121A、121B、121C、121N可位于客户端层中 的客户端软件开发包(SDK)304之上。客户端层与服务器层中的服务器远程访问应 用111B进行通信。服务器层与位于应用层中的应用107A/107B和服务器SDK312 之上的状态管理器308进行通信。如上所述,应用扩展可在任何层(即在服务器层内 作为插件306、在客户端层内作为客户端应用扩展302、在应用层内作为应用扩展310 或其组合)中实施。状态模型200在所述层之间被传送,并且可在任何层中被应用扩 展302和310及插件306修改。

在又一实例中,在应用层中,应用扩展310可以是单独的可执行程序,其包括新 特征以增强应用107A/107B。应用扩展310可消耗该状态模型200并产生其自己的文 档314(即,应用扩展310的状态模型),文档314可包括:(1)来自状态模型200 的信息和与应用扩展310相关联的信息,(2)仅与应用扩展310相关联的信息,或(3) 一些状态模型信息和与扩展状态模型314相关联的信息的组合。扩展状态模型314 可与服务器远程访问应用111B进行通信,其中服务器远程访问应用111B可构成更 新的状态模型200以包括扩展状态模型314中的信息。替代地或另外地,客户端远程 访问应用121A、121B、121C、121N可接收状态模型200和扩展状态模型314二者, 以及客户端远程访问应用可构成更新的状态模型200以包括扩展状态模型314中的信 息。

图3B图示图1和图2的环境内的扩展状态模型314和应用状态模型200的数据 流。如图示,应用扩展302在客户端计算设备(例如,客户端计算设备121A和客户 端计算设备121B)之间传送扩展状态模型314。例如,客户端远程访问应用121A和 121B可以是由应用扩展310用来实现扩展状态模型314的同步的通信机制。同时, 在客户端计算设备121A、客户端计算设备121B与例如服务器102之间传送应用状 态模型200。因此,根据图3B的数据流,扩展310和应用107B的状态可在协作会话 中的各个参与者之间同步。另外地或替代地,单独维持所述状态以将扩展310从应用 107B解耦。

一般而言,交互式数字表层可用于任何目的以向用户提供信息和/或提供独立于 协作会话中用户共享的应用的特征和功能。交互式数字表层可在应用执行的同时提供 此类特征,或作为独立的应用提供。例如,可使用交互式数字表层以使用户能够在应 用正在执行时对显示作注释、使用户能够进行指示操作并且提供关于状态或用户可用 性的通知。交互式数字表层可由用户控件启动和禁用,并且可由会话领导者或协作会 话内的每个参与者控制。可在上文讨论的框架内提供附加特征。现将提供上述特征的 细节。

图4A图示描述非耦合应用扩展(诸如交互式数字表层)的XML状态模型文档 内的树。图4B和图4C图示与图4A的XML状态模型相关联的示例性轴向医学图像 视图和冠向医学图像视图,以图示呈现给协作会话内的用户的视图。在XML树内, 存在被定义为包括一个或多个会话的协作节点。会话与应用扩展(诸如,交互式数字 表层)相关联。会话中的参与者通过UserInfo标签来识别,并且可以是例如Glen和 Jacquie。为每个参与者分配一种默认颜色(DefaultColor)以在交互式数字表层内表 示用户的注释(例如,蓝色为Glen,而绿色为Jacquie)。任何可显示的颜色均可被选 为协作会话的参与者的默认颜色。可定义颜色的优先级,使得第一用户被分配蓝色, 第二用户被分配绿色,第三用户被分配橙色等。

在协作节点下,也存在被定义的一个或多个视图。在图4A的实例中,Glen和 Jacquie可在医学成像应用内相互协作。因此,可存在被定义的两个视图--轴向视图和 冠向视图(参见图4B和图4C)。会话与每个视图相关联,其中会话包括协作的用户。 对于轴向视图,Glen的会话具有与之相关联的光标位置(CP)和某些标记,诸如涂 写、箭头和圆。在轴向视图中,Jacquie具有相关联的光标位置,但是因为她尚未对 交互式数字表层作任何标记,所以不存在与Jacquie的轴向会话视图相关联的附加信 息。在冠向会话下,每个用户仅具有与之相关联的光标位置。

如图4B和图4C的轴向视图中示出,以上信息通过客户端远程访问应用显示, 可以显示在分别与Glen和Jacquie相关联的客户端计算设备上。在图4B中,Glen可 正在具有中型显示器的客户端计算设备(诸如膝上型计算机)上查看应用。因此, Glen能够同时查看轴向视图和冠向视图二者。参考图4C,Jacquie可正在较小的计算 设备(诸如手持无线设备)上查看应用。因此,由于这种设备的更有限的显示区域, 仅可呈现轴向视图。

以下为根据图4A的树的状态模型200的示例性区段。状态模型200可由例如可 扩展标记语言(XML)文档表示。可使用状态模型200的其它表示。在状态模型200 中传送关于应用程序和交互式数字表层的信息。因为交互式数字表层与应用解耦,所 以关于交互式数字表层的信息不是应用状态的部分(即,其从应用中提取出)。相反, 交互式数字表层信息(即扩展状态信息)在状态模型200中被单独维护,如在协作标 签之间示出。可在状态模型200中类似地定义其它非耦合应用扩展。

在XML状态模型的第一部分中的ApplicationState节点中维护关于应用(107A 或107B)的信息。定义与轴向视图和冠向视图相关联的应用程序的不同状态以及相 关触发器。例如,在轴向视图中,“字段”被定义为用于接收名称作为用户输入数据并 显示该名称。在XML文档的第二部分中维护非耦合协作状态和应用扩展状态(例如, 交互式数字表层)。

状态模型200可因此包含关于应用本身的会话信息、应用扩展信息(例如,交互 式数字表层)、关于视图的信息以及如何将注释结合到特定视图(例如,结合到轴向 视图的涂写、箭头、圆)。

图5A和图5B图示包含可在协作会话中共享的应用502的示例性用户界面500。 在图5A和图5B的实例中,用户可与演示应用(诸如用户界面502中的MICROSOFT  POWERPOINT)协作。在实例中,用户例如为会议创建用餐的时间表。如图5A所 示,在第一客户端计算设备处的用户可使用客户端远程访问应用激活共享控件504。 共享控件504可提供可在用户之间共享的所有可用应用的列表。在实例中,可共享五 个应用(例如,事件查看器、演示应用、电子制表软件、影片播放器和文字处理器)。 根据本公开的方面,共享控件504包括激活上文描述的交互式数字表层的绘制功能 508。共享控件504可以可选地包括远程视镜510,其显示在协作会话中的另一用户 的远程客户端计算设备上示出的用户界面。

如果用户激活绘制功能508,那么交互式数字表层可操作来接收用户输入,以协 作地显示会话中用户的注释输入。如上所述,注释可被颜色编码到协作会话中的每个 用户。参考图5B,用户界面500被示出为包含交互式数字表层中的应用502的注释。 例如,Glen已划掉“大”字并用铅笔写上“小”字。作为另一个实例,Jacquie已划掉午 餐的地点,并且用“?”来代替,因为地点是不确定的。因此,鉴于上述内容,本领域 的普通技术人员将理解,可使用交互式数字表层来作出任何类型的注释。

图5B进一步图示指示器520,例如,用以示出有与协作会话中的参与者中的至 少一个相关联的网络延迟的指示器。例如,当延迟低于预定阈值时,可呈现响应性指 示器,诸如旋轮、灰色区域(greyed-out area)等。此类指示器可能在协作期间是有 用的,在协作期间个人用户具有不同的网络响应特性。例如,可向所有用户呈现指示 器,因此他们知道协作会话中有人滞后。指示器可能是由检查扩展状态模型314以查 找例如定时信息的过程引发的,该定时信息可用来计算特定的链路具有低于阈值的数 据率。

根据交互式数字表层的特征,用户可以看到彼此的鼠标光标。每个客户端可擦除 在交互式数字表层内所作的注释。交互式数字表层可与应用分开保存,或可被原始应 用消耗并以有意义的方式保存。在协作会话出故障的情况下,也可将交互式数字表层 加入书签,使之可以被恢复。

在协作会话期间,用户可能想要指向用户界面500的区域,而不与底层应用程序 107A/107B交互。例如,用户可能正在做幻灯片卡片组的演示,并且可能想要“指”向 用户界面200中显示的幻灯片上的项目。交互式数字表层可用来向协作会话中的其他 用户提供此类指示。

为了适应上述内容,可分开向应用107A/107B发送鼠标光标位置数据和发送鼠 标输入事件,使得位置和事件数据可彼此独立地被触发。因此,光标位置工具可被定 向发送光标信息而没有输入事件,否则当平板设备112N的用户不期望与应用程序 107A/107B的交互时,所述输入事件将引起此类交互。可通过将关于光标位置更新交 互式数字表层的单个方法分成两个方法来实现上述内容,其中一个方法执行光标位置 更新,而另一个方法使输入事件排队。可选地或另外地,当以此种模式操作时,鼠标 光标可改变特性。例如,在鼠标光标正用于指示目的的情况下,光标可变粗、改变颜 色、改变形状、闪烁等以向其他用户指示光标正被用作指示器。

虽然可为所有类型的客户端计算机实现上述内容,但是特定的使用情况是具有触 摸感应界面的移动设备(例如,平板设备112N)的用户想要向其他用户指示他或她 当前正在显示器上查看什么的情况。通常,触摸平板设备表示与应用程序107A/107B 的交互。根据上文,使鼠标光标位置数据(即,触摸位置)与发送鼠标输入事件(即, 实际触摸)分开使平板设备112N的用户能够类似于客户端计算机具有指向设备而作 出此类指示。

在可结合上文或单独实现的另一方面中,可在交互式数字表层中创建注释,而不 与底层应用程序107A/107B交互,以及与底层应用程序107A/107B的交互不一定在 交互式数字表层内创建注释。例如,参考图5B,当Glen划掉“大”字并用铅笔写上“小” 字时,他可能不想要突出或改变底层电子制表软件(即,应用程序107A/107B)。因 此,可为共享控件504提供选项以禁止与底层应用107A/107B的交互。另一方面, Glen想要在如何编辑相同的电子制表软件的教程中引导Jacquie。在该情况下,通过 使用共享控件504来不禁止与应用程序的交互,交互式数字表层可显示光标以指示 Glen目前将他的鼠标指向何处,并且继续与底层应用程序107A/107B交互。

另外或替代地,对于以上绘制功能,在一些实施方式中,交互式数字表层可用来 提供其它指示器,诸如会话内用户的指示、正在控制交互式数字表层的用户、用户已 经加入或退出协作会话的指示器、是否对图像质量进行改变(JPEG缩小)等。一般 而言,可通过提供扩展状态模型314中用于触发指示器的出现和/或消失的信息来启 动指示器。在一些实施方式中,可暂时地向用户显示指示器。在其它实施方式中,可 保留指示器直到用户采取行动,诸如在平板设备112N上的手势、单击鼠标等。

根据其它实施方式,可为交互式数字表层提供对参与协作会话的用户的名称的访 问。可将名称信息包含在扩展状态模型314中,并且使用交互式数字表层扩展310 将名称信息显示给协作会话中的其他用户。如上所述,每个用户可与可用于交互式数 字表层内的指针位置和标记的独特颜色相关联。每个用户可切换其他用户的光标位置 的可见性。用户可清除他们自己的标记,并且切换其他用户的标记的可见性。可在用 户中选择领导者或默认为初始的创建者。领导者可清除所有标记并移交领导权。如果 领导者从协作会话中掉线,那么领导权可移交给会话中的下一位参与者。

为了实现上述内容,可为客户端侧API提供对扩展状态模型314中的改变的响应, 从而提供适当的显示和控制。例如,可提供API来构建用户界面组件、渲染交互式数 字表层中的图像、提供捕获/剪贴板特征、提供撤销/重做特征、提供对图像/线的粗细 的改变、提供字体选择/大小/属性、选择颜色、提供文本框、提供表情符号/图标并且 提供水印(例如,机密、草稿、工作副本)。

基于配置设置,API可确定在一个用户打开交互式数字表层时交互式数字表层对 于每个人是否是“开”的、个人用户是否可独立于其他用户切换交互式数字表层的可见 性或交互式数字表层是否将只在领导者打开时是开的。某一配置可使API能够确定个 人客户端是否可以切换其他用户的标记的可见性或是否仅领导者可代表每个人来控 制客户端的可见性。而其它配置可使API能够确定个人客户端是否可切换其他用户的 光标位置的可见性或是否仅领导者可代表每个人来控制客户端的光标可见性。可指定 仅领导者可清除所有其他用户的标记;然而,任何人可随时清除他们自己的标记。

在一些实施方式中,可保存交互式数字表层的状态。例如,可在客户端计算设备 112A、112B、112C或112N处保存扩展状态模型314以供后期检索。可提供回放选 项以“回放”扩展状态模型314内的状态,所述状态在交互式会话期间的一段时间内接 收。用户可能够将交互式数字表层中的绘图保存并从保存的图像的列表中选择。在一 些实施方式中,可将图像保存为XML文件中的一组矢量,该XML文件被加载使得 用户可继续编辑该绘图。

因此,如上所述,本公开提供可被独立提供且由用户协作使用以在应用之上提供 注释的交互式数字表层。此外,更一般而言,本公开提供可通过远程访问机制获得的 应用扩展。该应用扩展通过远程访问机制向应用提供增强功能,而不需要修改应用本 身。

图6A图示在图1-图5的系统内执行的示例性操作的流程图600。如上所述,服 务器102B的服务器远程访问应用111B提供对一个或多个应用107A或107B的访问, 这通过客户端远程访问应用121A、121B、121C、121N显示。在602处,协作会话 中的用户激活由客户端远程访问应用提供的控件。该控件可以是例如共享控件504。

在604处,接收选择以激活交互式数字表层。例如,用户可选择共享控件604 中的绘制功能508。在606处,在交互式数字表层中接收用户输入。用户输入可被接 收为协作会话中一个或多个用户在交互式数字表层上绘制的线、箭头、波形曲线、圆 等。交互式数字表层可用于协作地从会话中的一个或多个用户接收输入。

在608处,更新扩展状态模型。例如,可更新扩展状态模型314以表示协作会话 中的每个用户所作的注释。在用户输入是预定义形状(诸如圆、线、方形或其它几何 形状)的情况下,扩展状态模型314可使用XY坐标来表示此类形状。对于线,XY 坐标可定义原点并连同可定义该线的长度。对于圆,坐标点可以是中心,且半径可从 中心定义来表示圆。可通过在组合时定义波形曲线的形状的一系列小矢量来表示波形 曲线。使用坐标而不是像素来提供对参与协作会话中的客户端计算设备的各种显示器 中的形状的缩放。

在610处,将扩展状态模型传送到协作会话中的参与者。如图3A和图3B所描 述,扩展状态模型314可在客户端计算设备之间传递,使得每个客户端计算设备被同 步。状态模型200也可在客户端计算设备和服务器之间传递,使得相对于应用,每个 客户端计算设备和服务器被同步。在612处,更新参与者显示以反映该状态模型的内 容。更新每个客户端计算设备和服务器的显示以反映扩展状态模型314和/或状态模 型200的当前状态。

图6B图示在图1-图5的系统内执行的示例性操作的流程图650。如上所述,服 务器102B的服务器远程访问应用111B提供对一个或多个应用107A或107B的访问, 这通过客户端远程访问应用121A、121B、121C、121N显示。在652处,协作会话 的用户激活由客户端远程访问应用提供的控件。该控件可以是例如共享控件504。

在654处,激活交互式数字表层。例如,用户可在共享控件604中选择功能,或 交互式数字表层可在步骤652处自动激活。

在656处,处理通知相关的信息。例如,在客户端计算设备处接收扩展状态模型 314,以及应用可处理扩展状态模型314中包含的信息以确定是否应该呈现该通知。 例如,可检查扩展状态模型314中的定时信息,以确定协作会话中的参与者是否正遭 遇网络延迟。作为另一实例,可指示协作会话的新用户的身份。

在658处,必要时,显示通知。如果在656处的处理确定应该呈现通知,那么可 在交互式数字表层中向用户呈现该通知。例如,网络延迟可能大于预定阈值;因此, 可向用户呈现指示器520。

可重复656和658处的过程,以确定是否应该移除通知或是否可在预定超时时段 已期满之后移除该通知。

图7示出示范性计算环境,其中可实施示例性实施方案和方面。计算系统环境仅 是合适的计算环境的一个实例,且不意图暗示有关于使用或功能性的范围的任何限 制。

可使用许多其它通用或专用计算系统环境或配置。可适于使用的公知计算系统、 环境和/或配置的实例包括但不限于:个人计算机、服务器计算机、手持或膝上型计 算机设备、多处理器系统、基于微处理器的系统、网络个人计算机(PC)、小型计算 机、大型计算机、嵌入式系统、包括任何上述系统或设备的分布式计算环境等。

可使用由计算机执行的计算机可执行指令,诸如程序模块。一般而言,程序模块 包括例程、程序、对象、组件、数据结构等,其执行特定的任务或实施特定的抽象数 据类型。可使用分布式计算环境,其中任务由通过通信网络或其它数据传输介质链接 的远程处理设备来执行。在分布式计算环境中,程序模块和其它数据可位于本地和远 程计算机存储介质(包括存储器存储设备)中。

参考图7,用于实施本文描述的方面的示范性系统包括计算设备,诸如计算设备 700。在其最基本配置中,计算设备700通常包括至少一个处理单元702和存储器704。 取决于计算设备的确切配置和类型,存储器704可以是易失性的(诸如随机存取存储 器(RAM))、非易失性的(诸如只读存储器(ROM)、闪存等)或两者的某个组合。 在图7中通过虚线706图示了该最基本配置。

计算设备700可具有附加特征/功能。例如,计算设备700可包括附加存储(可 移动和/或不可移动),其包括但不限于磁或光盘或带。此类附加存储在图7中通过可 移动存储708和不可移动存储710图示。

计算设备700通常包括各种计算机可读介质。计算机可读介质可以是可由设备 700访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。

计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或 其它数据等信息的任何方法或技术实施的易失性和非易失性、和可移动和不可移动介 质。存储器704、可移动存储708和不可移动存储710都是计算机存储介质的实例。 计算机存储介质包括但不限于RAM、ROM、电可擦除编程只读存储器(EEPROM)、 闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、 磁带、磁盘存储或其它磁性存储设备或可用于存储期望信息且可以由计算设备700 访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备700的一部分。

计算设备700可包含允许设备与其它设备进行通信的通信连接712。计算设备700 也可具有输入设备714,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。也 可包括诸如显示器、扬声器、打印机等输出设备716。所有这些设备在本领域中是公 知的,并且不需要在本文进行详细讨论。

应理解,本文描述的各种技术可结合硬件或软件或在适当时使用二者的组合来实 施。因此,本公开主题的方法和装置或其某些方面或部分可以采取程序代码(即,指 令)的形式,程序代码体现在有形介质,诸如软盘、CD-ROM、硬盘驱动器或任何其 它机器可读存储介质中,其中当程序代码被载入机器(诸如计算机)并由机器执行时, 机器成为用于实践本公开主题的装置。在程序代码在可编程计算机上执行的情况下, 计算设备通常包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和 /或存储元件)、至少ー个输入设备以及至少ー个输出设备。一个或多个程序可例如通 过使用应用编程接口(API)、可重复使用的控制件等来实施或利用结合本公开主题描 述的过程。此类程序可以用高级程序或面向对象的编程语言来实施以与计算机系统通 信。然而,如果期望的话,程序可以用汇编语言或机器语言实施。在任何情况下,语 言可为编译语言或解释语言,并且其可与硬件实施方式结合。

虽然已经用特定于结构特征和/或方法行为的语言来描述了主题,但是应理解, 在随附权利要求中定义的主题不一定受限于上文描述的具体特征或行为。相反,上文 描述的具体特征和行为被公开为实施权利要求的示例性形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号