通过本地服务器的对于本地客户机应用的事件服务.pdf

上传人:柴****2 文档编号:4428007 上传时间:2018-10-01 格式:PDF 页数:24 大小:620.11KB
返回 下载 相关 举报
通过本地服务器的对于本地客户机应用的事件服务.pdf_第1页
第1页 / 共24页
通过本地服务器的对于本地客户机应用的事件服务.pdf_第2页
第2页 / 共24页
通过本地服务器的对于本地客户机应用的事件服务.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《通过本地服务器的对于本地客户机应用的事件服务.pdf》由会员分享,可在线阅读,更多相关《通过本地服务器的对于本地客户机应用的事件服务.pdf(24页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103975301 A (43)申请公布日 2014.08.06 C N 1 0 3 9 7 5 3 0 1 A (21)申请号 201280061010.5 (22)申请日 2012.10.11 61/546,049 2011.10.11 US 61/617,474 2012.03.29 US 13/650,022 2012.10.11 US G06F 9/06(2006.01) G06F 9/44(2006.01) G06F 15/16(2006.01) (71)申请人微软公司 地址美国华盛顿州 (72)发明人 A.巴-兹夫 G.金基 B.C.贝克曼 S.艾萨克斯。

2、 M.本-伊泰 E.亚里夫 B.A.伊阿卡斯 (74)专利代理机构中国专利代理(香港)有限公 司 72001 代理人李舒 汪扬 (54) 发明名称 通过本地服务器的对于本地客户机应用的事 件服务 (57) 摘要 在服务器/客户机架构中,服务器应用和客 户机应用常常被用不同的语言开发以及在专门用 于每个应用的不同上下文的不同环境中执行(例 如,服务器上的低级、高性能、平台专用的且无状 态的指令,以及客户机上的高级、灵活的、平台无 关的且有状态的语言),以及常常在不同的设备 上被执行。这些环境(例如,使用Node.js的服务 器端JavaScript)的会聚使能提供对在相同的设 备上执行的客户机应。

3、用服务的服务器。本地服务 器可以监控在设备上发生的本地事件,并且可以 代表(例如,经由订阅模型)订阅本地事件的本地 客户机来执行与特定本地事件相关联的一个或多 个服务器脚本。这些技术可以使能本地事件服务 与客户机应用以相同的语言和环境的开发,以及 使能在本地事件服务的提供中服务器端代码的使 用。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.06.11 (86)PCT国际申请的申请数据 PCT/US2012/059832 2012.10.11 (87)PCT国际申请的公布数据 WO2013/055973 EN 2013.04.18 (51)Int.Cl. 权利要求书2页 。

4、说明书13页 附图8页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书13页 附图8页 (10)申请公布号 CN 103975301 A CN 103975301 A 1/2页 2 1.一种在具有处理器的设备上履行请求的方法,所述处理器执行至少一个本地客户机 应用,所述方法包括: 在设备上执行指令,所述指令被配置成: 生成使至少一个服务器脚本与至少一个本地事件相关联的本地服务器; 在从本地客户机应用接收到指定所选择的本地事件的订阅请求之后,使所选择的本地 事件与本地客户机应用相关联;以及 在检测到与至少一个服务器脚本和本地客户机应用相关联的本地事件之后,在本。

5、地服 务器内代表本地客户机应用执行与本地事件相关联的并且与本地事件有关的服务器脚本。 2.根据权利要求1所述的方法: 本地服务器包括web服务器,所述web服务器包括Node.js模块;以及 至少一个服务器脚本包括JavaScript,其代表本地客户机应用调用web服务器的 Node.js模块。 3.根据权利要求1所述的方法,选自本地事件集合的本地事件包括: 指示设备的输入构件对本地输入的接收的本地输入事件; 指示设备的检测器构件对本地用户的检测的本地用户事件; 指示设备对本地数据处理实例的完成的本地处理事件;以及 由客户机应用导向本地服务器的客户机请求。 4.根据权利要求1所述的方法: 本地。

6、事件包括在第三应用在设备上的执行期间出现的本地应用事件;以及 检测本地事件包括:监控第三应用的执行以便检测本地应用事件。 5.根据权利要求4所述的方法: 第三应用定义特定于应用的事件;以及 所述指令被进一步配置成:在从本地客户机应用接收到指定第三应用的特定于应用的 事件的订阅请求之后,使特定于应用的事件与第三应用相关联。 6.根据权利要求5所述的方法,所述指令被进一步配置成在从本地客户机应用接收到 指定目标的订阅请求之后: 确定目标是否包括设备上的本地服务器; 在确定目标包括设备上的本地服务器之后,将订阅请求呈现给本地服务器;以及 在确定目标包括在设备外的远程服务器之后,将订阅请求发送到远程服。

7、务器。 7.根据权利要求4所述的方法: 所述指令被进一步配置成:在从在第二设备上执行的远程客户机应用接收到订阅请求 之后,使所选择的本地事件与远程客户机应用相关联;以及 在检测到与至少一个服务器脚本和远程客户机应用相关联的本地事件之后,在本地服 务器内代表远程客户机应用执行与本地事件相关联的服务器脚本。 8.根据权利要求4所述的方法: 本地服务器对分别指定地址的订阅请求进行响应; 相应的本地事件与本地事件地址相关联;以及 从客户机接收订阅请求包括:从客户机应用接收指定与本地事件相关联的本地事件地 址的订阅请求。 权 利 要 求 书CN 103975301 A 2/2页 3 9. 根据权利要求8。

8、所述的方法: 相应的本地事件与设备的可由构件名称识别的至少一个构件相关联;以及 本地事件的本地事件地址包括与本地事件相关联的构件的构件名称。 10. 根据权利要求1所述的方法,所述指令被进一步配置成: 在检测本地事件之前,减少给设备的至少一个处理构件的功率;以及 在检测到本地事件之后,恢复给至少一个处理构件的功率。 权 利 要 求 书CN 103975301 A 1/13页 4 通过本地服务器的对于本地客户机应用的事件服务 背景技术 0001 在计算的领域内,许多场景牵涉用于使能应用在客户机上的执行的服务器-客户 机架构。作为第一例子,web服务器设备可以将包括web应用的指令和/或内容提供给。

9、第 二设备以用于在web浏览器内执行。作为第二例子,应用商店可以提供包括可部署本地应 用的指令,所述可部署本地应用可以完全地在第二设备上执行。作为第三例子,数据库服务 器可以提供数据以便于应用在第二设备上的执行。 0002 鉴于这些和其它场景,服务器/客户机架构已导致在每个设备上执行的专门技 术。在一些情况下,鉴于服务器和客户机的不同情况,这样的专门化导致直接相反的开发。 例如,服务器设备常常牵涉专门用于服务器上下文的代码,诸如代表若干客户机同时执行 应用;以可执行的且可扩展的事项(matter)履行请求(例如,执行高度优化的代码以便促 进请求的履行,以及减少或消除对用户接口的依赖);减少有状。

10、态的交互,其中服务器存储 与第一事务相关联的数据以便履行第二事务;以及验证和隔离从不同的客户机接收到的请 求的执行上下文以便减少安全漏洞。类似地,客户机设备常常牵涉专门用于客户机上下文 的代码,诸如以不取决于特定设备配置的平台无关语言对指令的编码;对用来在web浏览 器内执行的指令的配置;鲁棒的用户接口的提供;以及信息在客户机上的存储(例如,以存 储在web浏览器高速缓存中的 cookie的形式存储)以便为促成第二事务存留来自第一事 务的信息。以这些和其它方式,服务器和客户机上下文的专门化已导致在这些不同的设备 上执行的非常不同的类型的指令。 发明内容 0003 本概要被提供来以简化的形式介绍。

11、在下面具体实施方式中被进一步描述的概念 的选择。本概要不旨在识别所要求保护的主题的关键因素或必要特征,也不旨在被用来限 制所要求保护的主题的范围。 0004 虽然服务器和客户机上下文的相异的专门化已推动了每个类型的设备的性能,但 是这样的相异引起各种困难。作为一个这样的例子,如果服务器执行一种类型的代码(例 如,针对服务器的能力被特别配置的指令)并且客户机执行第二类型的代码(例如,可以 在许多设备上等同地执行的灵活的且平台无关的指令),则这样的差异可能由于语言、应用 编程接口(API)以及数据标准中的差异而使服务器应用和客户机应用的互操作式开发复 杂化。附加地,开发者必须理解两种不同的语言和执。

12、行环境,以及用于转换在其间交换的 数据类型和对象的技术。结果,最近的开发已在这些环境的开发中牵涉到会聚,诸如Node. js模型的开发和普及,其牵涉具有专门用于服务器上下文的语言构造和API的服务器端 JavaScript代码,从而使能服务器代码和客户机代码用相同的语言的开发并且共享API和 数据类型。然而,这样的会聚服务器和客户机开发环境典型地被应用于在服务器设备上执 行的服务器应用和在一个或多个客户机设备上执行的客户机应用的交互中。 0005 本文中所呈现的是用于应用会聚(convergent)的服务器和客户机开发环境以供 在单个设备上使用的技术。特别地,这样的技术可以使得设备能够通过在相。

13、同的设备上提 说 明 书CN 103975301 A 2/13页 5 供的本地服务器代表在该设备上执行的客户机应用来执行与本地事件有关的处理。例如, 设备可以执行本地服务器(诸如web服务器),所述本地服务器被配置成监控本地设备事 件,并且被配置成接受在相同的设备上的客户机应用的订阅一个或多个本地事件的请求。 本地服务器还可以关联一个或多个服务器脚本,并且在检测到客户机应用所订阅的本地事 件的发生之后,本地服务器可以代表本地设备执行与本地事件相关联的(一个或多个)服 务器脚本。 0006 例如,本地事件可以包括诸如传入的语音通信会话之类的移动事件,并且客户机 应用可以针对语音通信会话请求某种特。

14、定处理,诸如记录会话。然而,在移动设备上执行的 客户机应用在传入语音通信会话时可能不正在执行,以及因此可能没有正在监控这样的本 地事件的发生。替换地,移动设备的安全模型通常可能禁止客户机应用与如安全或服务质 量测量这样的本地事件交互(例如,本地应用可能正在设备的隔离构造内(诸如在web浏 览器内)执行)。相反,并且根据本文中所呈现的技术,客户机应用可以向在相同的设备上 的本地服务器(连续地执行并且在web浏览器外)发出识别传入的语音通信会话本地事件 的订阅请求。在检测到这样的事件之后,本地服务器可以代表客户机应用执行与本地事件 有关的一个或多个服务器脚本。而且,服务器脚本可以与客户机应用在类似。

15、的开发环境中 被设计(例如,服务器脚本和本地客户机应用两者都可以用JavaScript编写,其中服务器 脚本利用Node.js服务器端API),从而便于以一致的且兼容的方式开发这些交互式应用。 这样的优点可以通过本文中所呈现的服务器/客户机架构的变例是可实现的。 0007 为了实现前面的和相关的目的,以下描述和附图阐述了特定的说明性方面和实施 方案。这些仅指示了一个或多个方面可以被采用的各种方式中的一些。本公开内容的其它 方面、优点以及新颖特征当被结合附图考虑时从以下具体实施方式将变得明显。 附图说明 0008 图1是图示了用于履行与在客户机设备和服务器设备上出现的事件有关的客户 机应用的请求。

16、的客户机/服务器架构的示范性场景的图解。 0009 图2是图示了用于依照本文中所呈现的技术来履行与本地事件有关的客户机应 用的请求的客户机/服务器架构的示范性场景的图解。 0010 图3是将设备配置成依照本文中所呈现的技术来履行与本地事件有关的客户机 应用的请求的示范性方法的图解。 0011 图4是图示了用于依照本文中所呈现的技术来履行与本地事件有关的客户机应 用的请求的示范性系统的构件框图。 0012 图5是包括处理器可执行指令的示范性计算机可读介质的图解,所述处理器可执 行指令被配置成体现本文中所阐述的规定中的一个或多个。 0013 图6是特写事件订阅模型的示范性场景的图解,其使得本地应用。

17、能够订阅由设备 的构件所生成的本地事件,相应的构件由构件地址来识别。 0014 图7是特写设备网的示范性场景的图解,所述设备网包括分别执行本地服务器的 设备的集合,所述本地服务器被配置成接收和履行从本地客户机应用和在设备网的其它设 备上执行的远程客户机应用接收到的事件订阅请求。 0015 图8图示了其中本文中所阐述的规定中的一个或多个可以被实施的示范性计算 说 明 书CN 103975301 A 3/13页 6 环境。 具体实施方式 0016 现参考附图来描述所要求保护的主题,其中同样的附图标记贯穿全文被用来指同 样的元素。在以下描述中,出于解释的目的,许多具体细节被阐述以便提供对所要求保护的。

18、 主题的彻底理解。然而,可能显然的是,所要求保护的主题可以在没有这些具体细节的情况 下被实践。在其它实例中,结构和设备被以框图形式示出以便便于对所要求保护的主题进 行描述。 0017 A. 引言 在计算领域内,许多场景牵涉服务器/客户机架构,所述服务器/客户机架构包括服务 器应用(例如,web服务器),其代表一个或多个客户机应用提供一个或多个服务。作为第 一例子,服务可以包括提供要在客户机设备的web浏览器内被再现的web内容(包括网页 和web应用)。作为第二例子,服务可以包括应用商店,所述应用商店被配置成存储可在各 种设备上执行的一组应用,并且被配置成向特定设备提供可以在其上被执行的一个或。

19、多个 应用。作为第三例子,服务可以包括存储数据(例如,在数据库中)和提供这样的数据以供 在在相应的客户机设备上执行的各种“数据驱动的”应用内使用。在传统的模型中,服务器 应用作为设备的驻留进程运行以便等待由客户机应用所发起的连接,接收客户机应用的请 求,并且履行这样的请求以便将服务提供给客户机应用。 0018 在许多这样的场景中,服务器应用在服务器设备上执行,以及客户机应用在一个 或多个客户机设备上执行。设备可以呈现适合于每个角色的不同能力。例如,客户机设备可 以包括代表用户执行客户机应用的面向用户的设备(例如,工作站、膝上型电脑、平板、移 动电话或其它器具),并且可以被专门用于这样的交互(例。

20、如,包括能够触摸的输入设备以 及高质量显示器和声音构件)。相反,服务器设备可以包括面向服务的设备(例如,缺少专 用显示构件的“无外设”服务器构件),并且可以被专门用于以高性能的方式(例如,具有高 吞吐量处理器、大容量数据高速缓存以及丰富的网络资源)满足服务请求。服务器设备可 以包括以服务器群的方式互操作的若干服务器设备。也就是说,客户机设备可以被配置成 提供吸引人的用户体验,然而服务器设备可以被配置成促进对服务请求的处置(handling) 和这样的设备的可靠性(例如,通过在服务器群中提供的故障转移能力来实现)。 0019 鉴于这些和其它考虑事项,用于开发服务器应用的技术典型地在若干显著的方面。

21、 不同于用于开发客户机应用的技术。作为第一例子,客户机应用常常被设计成在各种各样 的客户机设备上执行,并且因此可以用平台无关的语言(例如,JavaScript,其能够在任何 web浏览器内执行)开发。相反,服务器应用常常使用针对服务器的特定配置被高度地调 优(tune)和定制的开发技术来开发以便提升性能。作为第二例子,客户机应用可以被设计 为“有状态的”,即,存留关于由客户机应用向服务器所发出的第一请求的一些信息以便为 由客户机应用向服务器设备所发出的第二请求提供上下文和连续性。例如,web浏览器常 常被配置成将“cookies”存储在用户的机器上以便使得服务器以后能够再次识别客户机设 备。相。

22、反,服务器应用常常被以“无状态的”方式设计,借此,关于任何特定的第一事务所存 储的数据被减少以便在代表许多客户机应用履行时提高服务器应用的可扩展性。 0020 图1呈现了特写在服务器设备102上执行的服务器应用104和在客户机设备106 说 明 书CN 103975301 A 4/13页 7 上执行的客户机应用108的交互的示范性场景100的图解。服务器设备102可以被连接到 网络(例如,互联网或局域网(LAN)并且被配置成等待来自一个或多个客户机应用108的 连接。在这样的连接之后,客户机应用108可以将一个或多个请求提供给服务器应用104, 诸如对web内容、可在客户机设备106上执行的应。

23、用或由“数据驱动的”应用所利用的数据 的请求。服务器应用104可以代表客户机应用108履行这样的请求,并且客户机设备106 可以将这样的服务的结果呈现给用户110。为了满足这些设备的不同角色,服务器应用104 常常被特别配置成利用服务器设备102的特定能力。相反,客户机应用108常常被用高级 语言(诸如JavaScript)来提供,所述高级语言可以在各种各样的客户机设备106上执行, 而不管特定客户机设备106的能力如何。 0021 作为特定例子,服务器应用104可以被提供来向客户机应用108和/或客户机设 备106通知由服务器设备102所检测到的服务器事件112,诸如服务器设备102对新的数。

24、据 的接收或对本地环境条件的监控(例如,对服务器设备102被定位于其中的环境的天气监 控或图像捕获)。客户机应用108可以请求这样的服务器事件112的通知,并且在检测到 服务器事件112之后,服务器应用104可以将服务器事件通知114发送到客户机应用108。 附加地,客户机设备106可以监控客户机设备事件116,诸如从用户110或输入构件所接收 到的用户输入,并且可以执行客户机设备事件监控118来检测和报告这样的服务。例如,客 户机设备106可以包括硬件驱动器,所述硬件驱动器被配置成监控硬件事件并且将报告这 样的硬件事件的客户机设备事件通知120提供给客户机应用108。以这种方式,以不同的角 。

25、色并且在不同的设备上执行的服务器应用104和客户机应用108可以互操作以便向客户机 应用108告知由服务器应用104所检测的服务器事件112和由客户机设备事件监控118所 检测到的客户机设备事件116。 0022 然而,在图1的示范性场景100中所呈现的架构可能呈现一些缺点。特别地,鉴于 服务器设备102的专门属性而开发服务器应用104可以大大地不同于针对各种各样设备用 通用方式语言开发客户机应用108。由于不同的开发环境和语言,开发者可能必须理解双方 开发环境并且针对服务器应用104和客户机应用108的互操作而协商差异(例如,应付可 用的应用编程环境(API)和数据格式转换中的差异)。为了调。

26、和这样的差异,较新的服务 器应用开发模型已与客户机应用开发会聚以便在这样的互操作应用的开发中提供一致性。 作为第一例子,对于服务器应用来说JavaScript在传统上已被认为是不够好性能的,但在 开发社区之中对JavaScript的广泛熟悉已导致了Node.js的开发,JavaScript模块提供 JavaScript代码的服务器端执行。作为第二例子,技术已被设计成使得服务器能够例如通 过将JavaScript编译成可以在服务器设备102上更快地执行的本机代码(native code)来 以更高性能的方式执行更高级语言(诸如JavaScript)。开发者因此可以使用相同的语言 和类似的API来。

27、开发服务器应用104和客户机应用108两者。鉴于这样的会聚技术,技术 可以被设计成在新的场景中利用服务器端代码。 0023 B. 呈现的技术 本文中所呈现的是一个这样的场景,其中服务器应用104可以提供与客户机设备事件 116有关的服务,客户机设备事件116和客户机设备106相关联。特别地,服务器应用104可 以在设备106上执行以便将本地事件有关的服务提供给在相同的设备上执行的一个或多 个客户机应用108。例如,传统的web服务器可以在客户机设备107上被动但连续地执行, 说 明 书CN 103975301 A 5/13页 8 并且可以等待由在相同的客户机设备106上的web浏览器内执行的一。

28、个或多个本地客户机 web应用所发起的对本地事件服务的请求。这样的请求可以包括例如向客户机设备106通 知本地事件,或代表客户机应用108来应用与本地事件有关的某种处理。通过使得服务器 应用104能够监控这样的客户机设备事件116并且对设备事件116应用执行,这种模型可 以从客户机应用108卸载这种监控和计算负担,这可以应用户110的请求以高度交互式的 特设(ad hoc)方式执行(例如,即便在客户机应用108被用户110终止之后,客户机设备 事件116的监控和处置也可以继续)。附加地,这种模型可以使能服务器应用104与客户 机设备事件116的交互,其中这样的交互可能未被客户机应用108许可。。

29、例如,客户机应用 108可以在web浏览器内执行,所述web浏览器由于安全原因使客户机应用108与本地客户 机设备事件116隔离;然而,客户机应用108可以请求服务器应用104 (其在web浏览器外 面执行并且具有更大的容许的能力集)以可验证的且可信的方式与客户机设备事件116交 互。 0024 图2呈现了特写根据本文中所呈现的技术配置的客户机/服务器架构的示范性场 景200的图解。在这个示范性场景200中,客户机设备106执行服务器应用104和一个或多 个客户机应用108,并且可以使得客户机应用108能够通过与客户机服务器应用104的交互 来与本地事件206交互。特别地,服务器应用104可以。

30、包括一个或多个服务器脚本202,所 述一个或多个服务器脚本202当在各种本地事件206的上下文中被执行时提供不同类型的 处理。客户机应用108可以将事件订阅请求204呈现给服务器应用104,事件订阅请求204 识别可能在客户机设备106内出现的一个或多个特定本地事件206。服务器应用104可以 通过使一个或多个服务器脚本202与本地事件206相关联来履行事件订阅请求204,使得当 这样的本地事件206发生时,服务器应用104可以代表所订阅的客户机应用108来执行服 务器脚本202的服务器脚本执行208。 0025 在图2的示范性场景200中所呈现的架构模型相对于其它本地事件处理模型可以 使能各。

31、种优点。作为第一例子,这种架构可以使得服务器应用104能够执行对本地事件206 的连续后台监控和可信服务器脚本202的执行从而提供本地事件206的可信处理,然而不 可信客户机应用104可以被间歇地且以不可信方式执行(例如,在web浏览器的隔离构造 内)。作为第二例子,提供一个服务器应用104以便监控许多各种不同的本地事件206并且 对其应用处理可能是比将若干客户机应用108中的每一个配置成监控本地事件206的相同 集合更高效的。作为第三例子,服务器脚本202可以与客户机应用104在类似的开发环境 中被开发(例如,服务器脚本202可以利用Node.js JavaScript服务器端编程模型,以及。

32、 客户机应用104可以作为在客户机设备102的web浏览器内执行的客户机端JavaScript 被开发)。例如,本地事件206可以包括客户机应用104常常未被许可直接地处理的事件, 诸如低级硬件事件或在客户机应用104被禁止从其进行交互的、客户机设备102的不同进 程内出现的事件。作为第四例子,通过在相同用户设备上处理信息而不是发送信息作为对 在远程设备上的服务的调用,这些技术促使了用户可能不希望传播的信息的隔离,所述信 息诸如用户个人的信息(例如,用户的身份和位置)和/或安全信息(例如,密码)。作为 第五例子,要被服务器在相同设备上执行的客户机应用的服务中执行的应用的编程场景可 以提供新颖的。

33、计算场景,并且可以使能围绕这样的应用的新的市场的开发。这些和其它优 点可能可通过在图2的示范性场景200中所图示的架构和本文中所呈现的技术实现。 说 明 书CN 103975301 A 6/13页 9 0026 C. 示范性实施例 图3呈现了本文中所呈现的技术的第一示范性实施例,其被图示为在具有处理器并且 执行至少一个本地客户机应用108的设备上履行请求的示范性方法300。示范性方法300 可以例如作为在设备的存储器构件中存储的指令的集合被实施,所述存储器构件诸如存储 器电路、硬盘驱动器的盘片、固态存储设备或磁盘或光盘,并且可以被组织成:当在设备上 执行时使设备根据本文中所呈现的技术来操作。示。

34、范性方法300在302处开始,并且牵涉在 设备的处理器上执行304指令。具体地,这些指令可以被配置成生成306使至少一个服务 器脚本202与可能在设备上出现的至少一个本地事件206相关联的本地服务器。指令还被 配置成:在从本地客户机应用108接收到指定所选择的本地事件206的事件订阅请求204 之后,使所选择的本地事件206与本地客户机应用108相关联308。指令还被配置成:在检 测到与至少一个服务器脚本202和本地客户机应用108相关联的本地事件之后,代表本地 客户机应用108在本地服务器内执行310与本地事件206相关联并且与本地事件206有关 的服务器脚本202。已经通过利用在相同的设备。

35、上执行的本地服务器代表本地客户机应用 108实现了本地事件206的处理,示范性方法300实现了本文中所呈现的技术,并且所以在 312处结束。 0027 图4呈现了本文中所呈现的技术的第二示范性实施例,其被图示为示范性场景 400,示范性场景400特写了被配置成在具有执行至少一个本地客户机应用108的处理器 404的设备402上履行请求的示范性系统406。示范性系统406可以例如作为被存储在设 备402的存储器构件中的指令被实施并且被配置成:当在处理器404上被执行时,使设备 402根据本文中所呈现的技术来操作。示范性系统406包括被配置成使至少一个服务器脚 本202与至少一个本地事件206相关。

36、联的本地服务器构件408。示范性系统406还包括本 地服务器绑定构件410,所述本地服务器绑定构件410被配置成:在从客户机应用108接收 到指定所选择的本地事件206的事件订阅请求204之后,使所选择的本地事件206与本地 客户机应用108相关联;以及,在检测到与至少一个服务器脚本202和客户机应用108相关 联的本地事件206之后,代表客户机应用108在本地服务器构件408内执行与本地事件206 相关联并且与本地事件206有关的服务器脚本202。通过监控本地事件206的发生并且代 表客户机应用108响应于本地事件206来执行服务器脚本202,示范性系统406在设备402 内实现了本文中所呈。

37、现的技术的应用。 0028 再一个实施例牵涉计算机可读介质,其包括被配置成应用本文中所呈现的技术的 处理器可执行指令。这样的计算机可读媒体可以包括例如牵涉对计算机可读指令的集合进 行编码的有形设备的计算机可读存储媒体,诸如存储器半导体(例如,利用静态随机存取 存储器(SRAM)、动态随机存取存储器(DRAM)和/或同步动态随机存取存储器(SDRAM)技 术的半导体)、硬盘驱动器的盘片、闪速存储器设备,或磁盘或光盘(诸如CD-R、DVD-R或软 盘),所述计算机可读指令当被设备的处理器执行时,使设备实施本文中所呈现的技术。这 样的计算机可读媒体还可以包括(作为不同于计算机可读存储媒体的一类技术)。

38、各种类型 的通信媒体,诸如可以通过各种物理现象被传播的信号(例如,电磁信号、声波信号或光学 信号)以及在各种有线场景(例如,经由以太网或光纤电缆)和/或无线场景(例如,诸如 WiFi这样的无线局域网(WLAN)、诸如蓝牙这样的个人局域网(PAN)、或蜂窝或无线电网络) 中被传播的信号,并且所述信号对计算机可读指令的集合进行编码,所述计算机可读指令 说 明 书CN 103975301 A 7/13页 10 当被设备的处理器执行时,使设备实施本文中所呈现的技术。 0029 可以被以这些方式设计的示范性计算机可读介质在图5中被图示,其中实施方案 500包括计算机可读数据504在其上被编码的计算机可读。

39、介质502 (例如,CD-R、DVD-R或 硬盘驱动器的盘片)。这种计算机可读数据504进而包括被配置成根据本文中所阐述的原 理来操作的计算机指令的集合506。在一个这样的实施例中,处理器可执行指令506可以被 配置成执行履行与本地事件105有关的客户机应用108的请求的方法508,诸如图3的示范 性方法300。在另一这样的实施例中,处理器可执行指令506可以被配置成实施用于履行与 本地事件206有关的客户机应用108的请求的系统,诸如图4的示范性系统406。这种计算 机可读介质的一些实施例可以包括被配置成存储以这种方式所配置的处理器可执行指令 的计算机可读存储介质(例如,硬盘驱动器、光盘或闪。

40、速存储器设备)。被配置成依照本文 中所呈现的技术来操作的许多这样的计算机可读媒体可以被本领域的普通技术人员设计。 0030 D. 变例 本文中所讨论的技术可以在许多方面设计有变例,并且一些变例可以相对于这些和其 它技术的其它变例而呈现附加的优点和/或减少缺点。而且,一些变例可以被相结合地实 施,以及一些组合可以通过协同合作特写附加的优点和/或减少的缺点。变例可以被并入 在各种实施例(例如,图3的示范性方法300和图4的示范性系统406)中,以便将单独的 和/或协同的优点授予这样的实施例。 0031 D1. 场景 可以在这些技术的实施例之中不同的第一方面涉及其中这样的技术可以被利用的场 景。 0。

41、032 作为这个第一方面的第一变例,本文中所呈现的技术可以与许多类型的设备402 一起被利用,所述设备402诸如服务器、服务器群、工作站、膝上型电脑、平板、移动电话、游 戏控制台以及网络器具。这样的设备402还可以提供各种各样的计算构件,诸如有线或无 线通信设备;人为输入设备,诸如键盘、鼠标、触摸板、触敏显示器、话筒以及基于手势的输 入构件;自动化输入设备,诸如静止或运动相机、全球定位服务(GPS)设备以及其它传感 器;诸如显示器和扬声器之类的输出设备;以及通信设备,诸如有线和/或无线网络构件。 0033 作为这个第一方面的第二变例,本文中所呈现的技术可以与各种类型的服务器应 用104一起被利。

42、用,所述服务器应用104诸如web服务器、文件服务器、应用服务器、媒体服 务器、对等共享协调服务器、数据库服务器、电子邮件服务器、物理度量监控服务器以及监 视控制和数据采集(SCADA)自动化服务器。 0034 作为这个第一方面的第三变例,本文中所呈现的技术可以被利用来服务许多类型 的客户机应用108,诸如web浏览器、文件共享应用、媒体再现应用以及数据驱动的客户机 应用。而且,客户机应用108可以在各种上下文中执行,诸如在设备402上的本机执行;由 一个或多个管理运行时所便利的受管理的执行;在虚拟环境内的虚拟执行,诸如在web浏 览器内执行的web应用;以及在隔离构造内的隔离执行。这样的客户。

43、机应用108还可以被 设备402通过各种技术接收到,诸如与设备402捆绑的客户机应用108;从各种服务中检索 到的客户机应用,诸如由网络所提供的应用服务器;嵌入在web页面中的内容;由设备402 的构件所提供的硬件或软件驱动器;或由服务器应用104所提供的客户机应用108。这些 和其它场景可以是兼容的并且可以有利地利用本文中所呈现的技术。 说 明 书CN 103975301 A 10 8/13页 11 0035 D2. 本地事件和服务器脚本类型 可以在本文中所呈现的技术的实施例之中不同的第二方面牵涉可以被服务器应用104 监控的本地事件206的类型,以及服务器应用104可以在发生这样的本地事件。

44、206之后代 表一个或多个客户机应用108执行的服务器脚本202的类型。 0036 作为这个第二方面的第一变例,本文中所呈现的技术可以和对设备402上的许多 类型的本地事件206的监控有关,诸如牵涉到设备402的输入构件对本地输入的接收的本 地输入事件;指示设备的检测器构件对本地用户的存在、本地用户的身份或从本地用户所 接收到的交互的检测的本地用户事件;指示设备对本地数据处理实例的完成的本地处理 事件;或由客户机应用108导向服务器应用104的事件订阅请求204。作为一个这样的例 子,本地事件206可以包括在第三应用(而不是服务器应用104和客户机应用108)在设 备402上的执行期间出现的本。

45、地应用事件,其诸如硬件驱动器、操作系统构件、另一服务器 应用104或另一客户机应用108。服务器应用104因此可以监控第三应用在设备402上 的执行以便检测本地应用事件的发生(例如,第三应用的实例化;第三应用的挂起、完成或 终止;或在第三应用内出现的逻辑异常),并且可以执行与本地应用事件相关联的一个或 多个服务器脚本202。而且,第三应用可以定义对第三应用定制的一个或多个特定于应用 (application-specific)的事件,并且服务器应用104可以使一个或多个服务器脚本202 与特定于应用的事件相关联以供代表另一客户机应用108执行。 0037 作为这个第二方面的第二变例,服务器脚本。

46、202可以指定与本地事件206有关的 许多类型的处理,诸如将本地事件206报告给客户机应用108、记录本地事件206的发生、 或在本地事件206的处置期间应用附加的逻辑。附加地,服务器脚本202可以被从许多源 接收;例如,服务器脚本202可以与服务器应用104包括在一起,可以由用户110来提供,可 以随设备402提供和/或自动地由设备402生成,或者可以被从客户机应用108或外部源 接收。而且,服务器应用104可以被配置成在服务器脚本202的完成之后通知客户机应用 108。例如,由客户机应用108所提供的事件订阅请求204可以指定在检测到本地事件206 之后和/或在完成与本地事件206相关联的。

47、(一个或多个)服务器脚本202的执行之后要 被调用的应用回调。 0038 作为这个第二方面的第三变例,本文中所呈现的技术可以牵涉许多类型的服务器 脚本202的执行。作为这个第三变例的第一例子,这样的服务器脚本202可以使用各种 各样的技术来设计,包括调用Node.js模块的并且要被本地web服务器执行的服务器端 JavaScript。 0039 作为这个第三变例的第二例子,服务器脚本202可以牵涉可能中断设备402的进 程的操作的阻塞请求。例如,服务器脚本202可以牵涉到涉及超长计算的复杂逻辑,或者可 以牵涉对被另一进程当前排他地利用的数据或资源的访问。这样的阻塞请求在客户机应用 108中可能。

48、是无法维持的(例如,发出阻塞请求的web应用可以被暂时地或者无限期地挂 起,从而中断用户接口和/或包含 web应用的web浏览器,和/或可能超过处理超时门限从 而导致web应用的终止)。替代地,客户机应用108可以将这样的阻塞请求委托给服务器应 用104,其中服务器脚本202指定阻塞请求和/或在阻塞请求之后要被执行的逻辑。在后台 中执行的服务器应用104可以持续地将这样的阻塞请求作为可阻塞线程来执行而不用中 断设备402的任何前台进程,和/或可以可接受地继续处理阻塞请求(例如,等待长时间运 说 明 书CN 103975301 A 11 9/13页 12 行进程的完成或资源的可用性)达延长的持续。

49、时间。 0040 作为这个第三变例的第三例子,服务器脚本202可以指定在实现异步进程的完成 之后要被调用的服务器脚本回调。服务器脚本回调可以由服务器脚本202、由服务器应用 104、由用户110和/或由客户机应用108来指定。作为一个这样的例子,客户机应用108的 订阅请求可以被与客户机用户接口事件相关联(例如,客户机应用108可以等待来自用户 110的某种形式的输入),并且客户机应用108可以指定在检测到输入之后要被调用的应用 回调。在接收到订阅请求204之后,服务器应用108可以配置或者生成服务器脚本202来 调用客户机应用108的应用回调,并且可以使服务器脚本202与牵涉对用户输入的检测的 本地事件206相关联。设备402可以继续客户机应用108的执行,其包括本文中所呈现的 客户机用户接口事件,从而使得客户机应用108能够被通知对用户输入事件的检测,而不 必针对这样的检测(例如,经由轮询)监控输入构件。这些和其它类型的本地事件206和 /或服务器脚本202可以在本文中所呈现的服务器/客户机架构和技术中被牵涉到。 0041 D3. 服务器脚本订阅和执行 可以在这些技术的实施例之中不同的第三方面牵涉这样的方式,借此服。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1