CN103975301B - 通过本地服务器对本地客户机应用进行事件服务的方法 - Google Patents

通过本地服务器对本地客户机应用进行事件服务的方法 Download PDF

Info

Publication number
CN103975301B
CN103975301B CN201280061010.5A CN201280061010A CN103975301B CN 103975301 B CN103975301 B CN 103975301B CN 201280061010 A CN201280061010 A CN 201280061010A CN 103975301 B CN103975301 B CN 103975301B
Authority
CN
China
Prior art keywords
server
local
application
event
equipment
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.)
Active
Application number
CN201280061010.5A
Other languages
English (en)
Other versions
CN103975301A (zh
Inventor
A.巴-兹夫
G.金基
B.C.贝克曼
S.艾萨克斯
M.本-伊泰
E.亚里夫
B.A.伊阿卡斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201710332812.XA priority Critical patent/CN107515791B/zh
Priority claimed from US13/650,022 external-priority patent/US9363334B2/en
Publication of CN103975301A publication Critical patent/CN103975301A/zh
Application granted granted Critical
Publication of CN103975301B publication Critical patent/CN103975301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在服务器/客户机架构中,服务器应用和客户机应用常常被用不同的语言开发以及在专门用于每个应用的不同上下文的不同环境中执行(例如,服务器上的低级、高性能、平台专用的且无状态的指令,以及客户机上的高级、灵活的、平台无关的且有状态的语言),以及常常在不同的设备上被执行。这些环境(例如,使用Node.js的服务器端JavaScript)的会聚使能提供对在相同的设备上执行的客户机应用服务的服务器。本地服务器可以监控在设备上发生的本地事件,并且可以代表(例如,经由订阅模型)订阅本地事件的本地客户机来执行与特定本地事件相关联的一个或多个服务器脚本。这些技术可以使能本地事件服务与客户机应用以相同的语言和环境的开发,以及使能在本地事件服务的提供中服务器端代码的使用。

Description

通过本地服务器对本地客户机应用进行事件服务的方法
技术领域
本申请主要涉及事件服务,更具体地,涉及通过本地服务器的对于本地客户机应用的事件服务。
背景技术
在计算的领域内,许多场景牵涉用于使能应用在客户机上的执行的服务器-客户机架构。作为第一例子,web服务器设备可以将包括web应用的指令和/或内容提供给第二设备以用于在web浏览器内执行。作为第二例子,应用商店可以提供包括可部署本地应用的指令,所述可部署本地应用可以完全地在第二设备上执行。作为第三例子,数据库服务器可以提供数据以便于应用在第二设备上的执行。
鉴于这些和其它场景,服务器/客户机架构已导致在每个设备上执行的专门技术。在一些情况下,鉴于服务器和客户机的不同情况,这样的专门化导致直接相反的开发。例如,服务器设备常常牵涉专门用于服务器上下文的代码,诸如代表若干客户机同时执行应用;以可执行的且可扩展的事项(matter)履行请求(例如,执行高度优化的代码以便促进请求的履行,以及减少或消除对用户接口的依赖);减少有状态的交互,其中服务器存储与第一事务相关联的数据以便履行第二事务;以及验证和隔离从不同的客户机接收到的请求的执行上下文以便减少安全漏洞。类似地,客户机设备常常牵涉专门用于客户机上下文的代码,诸如以不取决于特定设备配置的平台无关语言对指令的编码;对用来在web浏览器内执行的指令的配置;鲁棒的用户接口的提供;以及信息在客户机上的存储(例如,以存储在web浏览器高速缓存中的cookie的形式存储)以便为促成第二事务存留来自第一事务的信息。以这些和其它方式,服务器和客户机上下文的专门化已导致在这些不同的设备上执行的非常不同的类型的指令。
发明内容
本概要被提供来以简化的形式介绍在下面具体实施方式中被进一步描述的概念的选择。本概要不旨在识别所要求保护的主题的关键因素或必要特征,也不旨在被用来限制所要求保护的主题的范围。
虽然服务器和客户机上下文的相异的专门化已推动了每个类型的设备的性能,但是这样的相异引起各种困难。作为一个这样的例子,如果服务器执行一种类型的代码(例如,针对服务器的能力被特别配置的指令)并且客户机执行第二类型的代码(例如,可以在许多设备上等同地执行的灵活的且平台无关的指令),则这样的差异可能由于语言、应用编程接口(API)以及数据标准中的差异而使服务器应用和客户机应用的互操作式开发复杂化。附加地,开发者必须理解两种不同的语言和执行环境,以及用于转换在其间交换的数据类型和对象的技术。结果,最近的开发已在这些环境的开发中牵涉到会聚,诸如Node.js模型的开发和普及,其牵涉具有专门用于服务器上下文的语言构造和API的服务器端JavaScript代码,从而使能服务器代码和客户机代码用相同的语言的开发并且共享API和数据类型。然而,这样的会聚服务器和客户机开发环境典型地被应用于在服务器设备上执行的服务器应用和在一个或多个客户机设备上执行的客户机应用的交互中。
本文中所呈现的是用于应用会聚(convergent)的服务器和客户机开发环境以供在单个设备上使用的技术。特别地,这样的技术可以使得设备能够通过在相同的设备上提供的本地服务器代表在该设备上执行的客户机应用来执行与本地事件有关的处理。例如,设备可以执行本地服务器(诸如web服务器),所述本地服务器被配置成监控本地设备事件,并且被配置成接受在相同的设备上的客户机应用的订阅一个或多个本地事件的请求。本地服务器还可以关联一个或多个服务器脚本,并且在检测到客户机应用所订阅的本地事件的发生之后,本地服务器可以代表本地设备执行与本地事件相关联的(一个或多个)服务器脚本。
例如,本地事件可以包括诸如传入的语音通信会话之类的移动事件,并且客户机应用可以针对语音通信会话请求某种特定处理,诸如记录会话。然而,在移动设备上执行的客户机应用在传入语音通信会话时可能不正在执行,以及因此可能没有正在监控这样的本地事件的发生。替换地,移动设备的安全模型通常可能禁止客户机应用与如安全或服务质量测量这样的本地事件交互(例如,本地应用可能正在设备的隔离构造内(诸如在web浏览器内)执行)。相反,并且根据本文中所呈现的技术,客户机应用可以向在相同的设备上的本地服务器(连续地执行并且在web浏览器外)发出识别传入的语音通信会话本地事件的订阅请求。在检测到这样的事件之后,本地服务器可以代表客户机应用执行与本地事件有关的一个或多个服务器脚本。而且,服务器脚本可以与客户机应用在类似的开发环境中被设计(例如,服务器脚本和本地客户机应用两者都可以用JavaScript编写,其中服务器脚本利用Node.js服务器端API),从而便于以一致的且兼容的方式开发这些交互式应用。这样的优点可以通过本文中所呈现的服务器/客户机架构的变例是可实现的。
为了实现前面的和相关的目的,以下描述和附图阐述了特定的说明性方面和实施方案。这些仅指示了一个或多个方面可以被采用的各种方式中的一些。本公开内容的其它方面、优点以及新颖特征当被结合附图考虑时从以下具体实施方式将变得明显。
附图说明
图1是图示了用于履行与在客户机设备和服务器设备上出现的事件有关的客户机应用的请求的客户机/服务器架构的示范性场景的图解。
图2是图示了用于依照本文中所呈现的技术来履行与本地事件有关的客户机应用的请求的客户机/服务器架构的示范性场景的图解。
图3是将设备配置成依照本文中所呈现的技术来履行与本地事件有关的客户机应用的请求的示范性方法的图解。
图4是图示了用于依照本文中所呈现的技术来履行与本地事件有关的客户机应用的请求的示范性系统的构件框图。
图5是包括处理器可执行指令的示范性计算机可读介质的图解,所述处理器可执行指令被配置成体现本文中所阐述的规定中的一个或多个。
图6是特写事件订阅模型的示范性场景的图解,其使得本地应用能够订阅由设备的构件所生成的本地事件,相应的构件由构件地址来识别。
图7是特写设备网的示范性场景的图解,所述设备网包括分别执行本地服务器的设备的集合,所述本地服务器被配置成接收和履行从本地客户机应用和在设备网的其它设备上执行的远程客户机应用接收到的事件订阅请求。
图8图示了其中本文中所阐述的规定中的一个或多个可以被实施的示范性计算环境。
具体实施方式
现参考附图来描述所要求保护的主题,其中同样的附图标记贯穿全文被用来指同样的元素。在以下描述中,出于解释的目的,许多具体细节被阐述以便提供对所要求保护的主题的彻底理解。然而,可能显然的是,所要求保护的主题可以在没有这些具体细节的情况下被实践。在其它实例中,结构和设备被以框图形式示出以便便于对所要求保护的主题进行描述。
A.引言
在计算领域内,许多场景牵涉服务器/客户机架构,所述服务器/客户机架构包括服务器应用(例如,web服务器),其代表一个或多个客户机应用提供一个或多个服务。作为第一例子,服务可以包括提供要在客户机设备的web浏览器内被再现的web内容(包括网页和web应用)。作为第二例子,服务可以包括应用商店,所述应用商店被配置成存储可在各种设备上执行的一组应用,并且被配置成向特定设备提供可以在其上被执行的一个或多个应用。作为第三例子,服务可以包括存储数据(例如,在数据库中)和提供这样的数据以供在在相应的客户机设备上执行的各种“数据驱动的”应用内使用。在传统的模型中,服务器应用作为设备的驻留进程运行以便等待由客户机应用所发起的连接,接收客户机应用的请求,并且履行这样的请求以便将服务提供给客户机应用。
在许多这样的场景中,服务器应用在服务器设备上执行,以及客户机应用在一个或多个客户机设备上执行。设备可以呈现适合于每个角色的不同能力。例如,客户机设备可以包括代表用户执行客户机应用的面向用户的设备(例如,工作站、膝上型电脑、平板、移动电话或其它器具),并且可以被专门用于这样的交互(例如,包括能够触摸的输入设备以及高质量显示器和声音构件)。相反,服务器设备可以包括面向服务的设备(例如,缺少专用显示构件的“无外设”服务器构件),并且可以被专门用于以高性能的方式(例如,具有高吞吐量处理器、大容量数据高速缓存以及丰富的网络资源)满足服务请求。服务器设备可以包括以服务器群的方式互操作的若干服务器设备。也就是说,客户机设备可以被配置成提供吸引人的用户体验,然而服务器设备可以被配置成促进对服务请求的处置(handling)和这样的设备的可靠性(例如,通过在服务器群中提供的故障转移能力来实现)。
鉴于这些和其它考虑事项,用于开发服务器应用的技术典型地在若干显著的方面不同于用于开发客户机应用的技术。作为第一例子,客户机应用常常被设计成在各种各样的客户机设备上执行,并且因此可以用平台无关的语言(例如,JavaScript,其能够在任何web浏览器内执行)开发。相反,服务器应用常常使用针对服务器的特定配置被高度地调优(tune)和定制的开发技术来开发以便提升性能。作为第二例子,客户机应用可以被设计为“有状态的”,即,存留关于由客户机应用向服务器所发出的第一请求的一些信息以便为由客户机应用向服务器设备所发出的第二请求提供上下文和连续性。例如,web浏览器常常被配置成将“cookies”存储在用户的机器上以便使得服务器以后能够再次识别客户机设备。相反,服务器应用常常被以“无状态的”方式设计,借此,关于任何特定的第一事务所存储的数据被减少以便在代表许多客户机应用履行时提高服务器应用的可扩展性。
图1呈现了特写在服务器设备102上执行的服务器应用104和在客户机设备106上执行的客户机应用108的交互的示范性场景100的图解。服务器设备102可以被连接到网络(例如,互联网或局域网(LAN))并且被配置成等待来自一个或多个客户机应用108的连接。在这样的连接之后,客户机应用108可以将一个或多个请求提供给服务器应用104,诸如对web内容、可在客户机设备106上执行的应用或由“数据驱动的”应用所利用的数据的请求。服务器应用104可以代表客户机应用108履行这样的请求,并且客户机设备106可以将这样的服务的结果呈现给用户110。为了满足这些设备的不同角色,服务器应用104常常被特别配置成利用服务器设备102的特定能力。相反,客户机应用108常常被用高级语言(诸如JavaScript)来提供,所述高级语言可以在各种各样的客户机设备106上执行,而不管特定客户机设备106的能力如何。
作为特定例子,服务器应用104可以被提供来向客户机应用108和/或客户机设备106通知由服务器设备102所检测到的服务器事件112,诸如服务器设备102对新的数据的接收或对本地环境条件的监控(例如,对服务器设备102被定位于其中的环境的天气监控或图像捕获)。客户机应用108可以请求这样的服务器事件112的通知,并且在检测到服务器事件112之后,服务器应用104可以将服务器事件通知114发送到客户机应用108。附加地,客户机设备106可以监控客户机设备事件116,诸如从用户110或输入构件所接收到的用户输入,并且可以执行客户机设备事件监控118来检测和报告这样的服务。例如,客户机设备106可以包括硬件驱动器,所述硬件驱动器被配置成监控硬件事件并且将报告这样的硬件事件的客户机设备事件通知120提供给客户机应用108。以这种方式,以不同的角色并且在不同的设备上执行的服务器应用104和客户机应用108可以互操作以便向客户机应用108告知由服务器应用104所检测的服务器事件112和由客户机设备事件监控118所检测到的客户机设备事件116。
然而,在图1的示范性场景100中所呈现的架构可能呈现一些缺点。特别地,鉴于服务器设备102的专门属性而开发服务器应用104可以大大地不同于针对各种各样设备用通用方式语言开发客户机应用108。由于不同的开发环境和语言,开发者可能必须理解双方开发环境并且针对服务器应用104和客户机应用108的互操作而协商差异(例如,应付可用的应用编程环境(API)和数据格式转换中的差异)。为了调和这样的差异,较新的服务器应用开发模型已与客户机应用开发会聚以便在这样的互操作应用的开发中提供一致性。作为第一例子,对于服务器应用来说JavaScript在传统上已被认为是不够好性能的,但在开发社区之中对JavaScript的广泛熟悉已导致了Node.js的开发,JavaScript模块提供JavaScript代码的服务器端执行。作为第二例子,技术已被设计成使得服务器能够例如通过将JavaScript编译成可以在服务器设备102上更快地执行的本机代码(native code)来以更高性能的方式执行更高级语言(诸如JavaScript)。开发者因此可以使用相同的语言和类似的API来开发服务器应用104和客户机应用108两者。鉴于这样的会聚技术,技术可以被设计成在新的场景中利用服务器端代码。
B.呈现的技术
本文中所呈现的是一个这样的场景,其中服务器应用104可以提供与客户机设备事件116有关的服务,客户机设备事件116和客户机设备106相关联。特别地,服务器应用104可以在设备106上执行以便将本地事件有关的服务提供给在相同的设备上执行的一个或多个客户机应用108。例如,传统的web服务器可以在客户机设备107上被动但连续地执行,并且可以等待由在相同的客户机设备106上的web浏览器内执行的一个或多个本地客户机web应用所发起的对本地事件服务的请求。这样的请求可以包括例如向客户机设备106通知本地事件,或代表客户机应用108来应用与本地事件有关的某种处理。通过使得服务器应用104能够监控这样的客户机设备事件116并且对设备事件116应用执行,这种模型可以从客户机应用108卸载这种监控和计算负担,这可以应用户110的请求以高度交互式的特设(adhoc)方式执行(例如,即便在客户机应用108被用户110终止之后,客户机设备事件116的监控和处置也可以继续)。附加地,这种模型可以使能服务器应用104与客户机设备事件116的交互,其中这样的交互可能未被客户机应用108许可。例如,客户机应用108可以在web浏览器内执行,所述web浏览器由于安全原因使客户机应用108与本地客户机设备事件116隔离;然而,客户机应用108可以请求服务器应用104(其在web浏览器外面执行并且具有更大的容许的能力集)以可验证的且可信的方式与客户机设备事件116交互。
图2呈现了特写根据本文中所呈现的技术配置的客户机/服务器架构的示范性场景200的图解。在这个示范性场景200中,客户机设备106执行服务器应用104和一个或多个客户机应用108,并且可以使得客户机应用108能够通过与客户机服务器应用104的交互来与本地事件206交互。特别地,服务器应用104可以包括一个或多个服务器脚本202,所述一个或多个服务器脚本202当在各种本地事件206的上下文中被执行时提供不同类型的处理。客户机应用108可以将事件订阅请求204呈现给服务器应用104,事件订阅请求204识别可能在客户机设备106内出现的一个或多个特定本地事件206。服务器应用104可以通过使一个或多个服务器脚本202与本地事件206相关联来履行事件订阅请求204,使得当这样的本地事件206发生时,服务器应用104可以代表所订阅的客户机应用108来执行服务器脚本202的服务器脚本执行208。
在图2的示范性场景200中所呈现的架构模型相对于其它本地事件处理模型可以使能各种优点。作为第一例子,这种架构可以使得服务器应用104能够执行对本地事件206的连续后台监控和可信服务器脚本202的执行从而提供本地事件206的可信处理,然而不可信客户机应用104可以被间歇地且以不可信方式执行(例如,在web浏览器的隔离构造内)。作为第二例子,提供一个服务器应用104以便监控许多各种不同的本地事件206并且对其应用处理可能是比将若干客户机应用108中的每一个配置成监控本地事件206的相同集合更高效的。作为第三例子,服务器脚本202可以与客户机应用104在类似的开发环境中被开发(例如,服务器脚本202可以利用Node.js JavaScript服务器端编程模型,以及客户机应用104可以作为在客户机设备102的web浏览器内执行的客户机端JavaScript被开发)。例如,本地事件206可以包括客户机应用104常常未被许可直接地处理的事件,诸如低级硬件事件或在客户机应用104被禁止从其进行交互的、客户机设备102的不同进程内出现的事件。作为第四例子,通过在相同用户设备上处理信息而不是发送信息作为对在远程设备上的服务的调用,这些技术促使了用户可能不希望传播的信息的隔离,所述信息诸如用户个人的信息(例如,用户的身份和位置)和/或安全信息(例如,密码)。作为第五例子,要被服务器在相同设备上执行的客户机应用的服务中执行的应用的编程场景可以提供新颖的计算场景,并且可以使能围绕这样的应用的新的市场的开发。这些和其它优点可能可通过在图2的示范性场景200中所图示的架构和本文中所呈现的技术实现。
C.示范性实施例
图3呈现了本文中所呈现的技术的第一示范性实施例,其被图示为在具有处理器并且执行至少一个本地客户机应用108的设备上履行请求的示范性方法300。示范性方法300可以例如作为在设备的存储器构件中存储的指令的集合被实施,所述存储器构件诸如存储器电路、硬盘驱动器的盘片、固态存储设备或磁盘或光盘,并且可以被组织成:当在设备上执行时使设备根据本文中所呈现的技术来操作。示范性方法300在302处开始,并且牵涉在设备的处理器上执行304指令。具体地,这些指令可以被配置成生成306使至少一个服务器脚本202与可能在设备上出现的至少一个本地事件206相关联的本地服务器。指令还被配置成:在从本地客户机应用108接收到指定所选择的本地事件206的事件订阅请求204之后,使所选择的本地事件206与本地客户机应用108相关联308。指令还被配置成:在检测到与至少一个服务器脚本202和本地客户机应用108相关联的本地事件之后,代表本地客户机应用108在本地服务器内执行310与本地事件206相关联并且与本地事件206有关的服务器脚本202。已经通过利用在相同的设备上执行的本地服务器代表本地客户机应用108实现了本地事件206的处理,示范性方法300实现了本文中所呈现的技术,并且所以在312处结束。
图4呈现了本文中所呈现的技术的第二示范性实施例,其被图示为示范性场景400,示范性场景400特写了被配置成在具有执行至少一个本地客户机应用108的处理器404的设备402上履行请求的示范性系统406。示范性系统406可以例如作为被存储在设备402的存储器构件中的指令被实施并且被配置成:当在处理器404上被执行时,使设备402根据本文中所呈现的技术来操作。示范性系统406包括被配置成使至少一个服务器脚本202与至少一个本地事件206相关联的本地服务器构件408。示范性系统406还包括本地服务器绑定构件410,所述本地服务器绑定构件410被配置成:在从客户机应用108接收到指定所选择的本地事件206的事件订阅请求204之后,使所选择的本地事件206与本地客户机应用108相关联;以及,在检测到与至少一个服务器脚本202和客户机应用108相关联的本地事件206之后,代表客户机应用108在本地服务器构件408内执行与本地事件206相关联并且与本地事件206有关的服务器脚本202。通过监控本地事件206的发生并且代表客户机应用108响应于本地事件206来执行服务器脚本202,示范性系统406在设备402内实现了本文中所呈现的技术的应用。
再一个实施例牵涉计算机可读介质,其包括被配置成应用本文中所呈现的技术的处理器可执行指令。这样的计算机可读媒体可以包括例如牵涉对计算机可读指令的集合进行编码的有形设备的计算机可读存储媒体,诸如存储器半导体(例如,利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和/或同步动态随机存取存储器(SDRAM)技术的半导体)、硬盘驱动器的盘片、闪速存储器设备,或磁盘或光盘(诸如CD-R、DVD-R或软盘),所述计算机可读指令当被设备的处理器执行时,使设备实施本文中所呈现的技术。这样的计算机可读媒体还可以包括(作为不同于计算机可读存储媒体的一类技术)各种类型的通信媒体,诸如可以通过各种物理现象被传播的信号(例如,电磁信号、声波信号或光学信号)以及在各种有线场景(例如,经由以太网或光纤电缆)和/或无线场景(例如,诸如WiFi这样的无线局域网(WLAN)、诸如蓝牙这样的个人局域网(PAN)、或蜂窝或无线电网络)中被传播的信号,并且所述信号对计算机可读指令的集合进行编码,所述计算机可读指令当被设备的处理器执行时,使设备实施本文中所呈现的技术。
可以被以这些方式设计的示范性计算机可读介质在图5中被图示,其中实施方案500包括计算机可读数据504在其上被编码的计算机可读介质502(例如,CD-R、DVD-R或硬盘驱动器的盘片)。这种计算机可读数据504进而包括被配置成根据本文中所阐述的原理来操作的计算机指令的集合506。在一个这样的实施例中,处理器可执行指令506可以被配置成执行履行与本地事件105有关的客户机应用108的请求的方法508,诸如图3的示范性方法300。在另一这样的实施例中,处理器可执行指令506可以被配置成实施用于履行与本地事件206有关的客户机应用108的请求的系统,诸如图4的示范性系统406。这种计算机可读介质的一些实施例可以包括被配置成存储以这种方式所配置的处理器可执行指令的计算机可读存储介质(例如,硬盘驱动器、光盘或闪速存储器设备)。被配置成依照本文中所呈现的技术来操作的许多这样的计算机可读媒体可以被本领域的普通技术人员设计。
D.变例
本文中所讨论的技术可以在许多方面设计有变例,并且一些变例可以相对于这些和其它技术的其它变例而呈现附加的优点和/或减少缺点。而且,一些变例可以被相结合地实施,以及一些组合可以通过协同合作特写附加的优点和/或减少的缺点。变例可以被并入在各种实施例(例如,图3的示范性方法300和图4的示范性系统406)中,以便将单独的和/或协同的优点授予这样的实施例。
D1.场景
可以在这些技术的实施例之中不同的第一方面涉及其中这样的技术可以被利用的场景。
作为这个第一方面的第一变例,本文中所呈现的技术可以与许多类型的设备402一起被利用,所述设备402诸如服务器、服务器群、工作站、膝上型电脑、平板、移动电话、游戏控制台以及网络器具。这样的设备402还可以提供各种各样的计算构件,诸如有线或无线通信设备;人为输入设备,诸如键盘、鼠标、触摸板、触敏显示器、话筒以及基于手势的输入构件;自动化输入设备,诸如静止或运动相机、全球定位服务(GPS)设备以及其它传感器;诸如显示器和扬声器之类的输出设备;以及通信设备,诸如有线和/或无线网络构件。
作为这个第一方面的第二变例,本文中所呈现的技术可以与各种类型的服务器应用104一起被利用,所述服务器应用104诸如web服务器、文件服务器、应用服务器、媒体服务器、对等共享协调服务器、数据库服务器、电子邮件服务器、物理度量监控服务器以及监视控制和数据采集(SCADA)自动化服务器。
作为这个第一方面的第三变例,本文中所呈现的技术可以被利用来服务许多类型的客户机应用108,诸如web浏览器、文件共享应用、媒体再现应用以及数据驱动的客户机应用。而且,客户机应用108可以在各种上下文中执行,诸如在设备402上的本机执行;由一个或多个管理运行时所便利的受管理的执行;在虚拟环境内的虚拟执行,诸如在web浏览器内执行的web应用;以及在隔离构造内的隔离执行。这样的客户机应用108还可以被设备402通过各种技术接收到,诸如与设备402捆绑的客户机应用108;从各种服务中检索到的客户机应用,诸如由网络所提供的应用服务器;嵌入在web页面中的内容;由设备402的构件所提供的硬件或软件驱动器;或由服务器应用104所提供的客户机应用108。这些和其它场景可以是兼容的并且可以有利地利用本文中所呈现的技术。
D2.本地事件和服务器脚本类型
可以在本文中所呈现的技术的实施例之中不同的第二方面牵涉可以被服务器应用104监控的本地事件206的类型,以及服务器应用104可以在发生这样的本地事件206之后代表一个或多个客户机应用108执行的服务器脚本202的类型。
作为这个第二方面的第一变例,本文中所呈现的技术可以和对设备402上的许多类型的本地事件206的监控有关,诸如牵涉到设备402的输入构件对本地输入的接收的本地输入事件;指示设备的检测器构件对本地用户的存在、本地用户的身份或从本地用户所接收到的交互的检测的本地用户事件;指示设备对本地数据处理实例的完成的本地处理事件;或由客户机应用108导向服务器应用104的事件订阅请求204。作为一个这样的例子,本地事件206可以包括在第三应用(而不是服务器应用104和客户机应用108)在设备402上的执行期间出现的本地应用事件,其诸如硬件驱动器、操作系统构件、另一服务器应用104或另一客户机应用108。服务器应用104因此可以监控第三应用在设备402上的执行以便检测本地应用事件的发生(例如,第三应用的实例化;第三应用的挂起、完成或终止;或在第三应用内出现的逻辑异常),并且可以执行与本地应用事件相关联的一个或多个服务器脚本202。而且,第三应用可以定义对第三应用定制的一个或多个特定于应用(application-specific)的事件,并且服务器应用104可以使一个或多个服务器脚本202与特定于应用的事件相关联以供代表另一客户机应用108执行。
作为这个第二方面的第二变例,服务器脚本202可以指定与本地事件206有关的许多类型的处理,诸如将本地事件206报告给客户机应用108、记录本地事件206的发生、或在本地事件206的处置期间应用附加的逻辑。附加地,服务器脚本202可以被从许多源接收;例如,服务器脚本202可以与服务器应用104包括在一起,可以由用户110来提供,可以随设备402提供和/或自动地由设备402生成,或者可以被从客户机应用108或外部源接收。而且,服务器应用104可以被配置成在服务器脚本202的完成之后通知客户机应用108。例如,由客户机应用108所提供的事件订阅请求204可以指定在检测到本地事件206之后和/或在完成与本地事件206相关联的(一个或多个)服务器脚本202的执行之后要被调用的应用回调。
作为这个第二方面的第三变例,本文中所呈现的技术可以牵涉许多类型的服务器脚本202的执行。作为这个第三变例的第一例子,这样的服务器脚本202可以使用各种各样的技术来设计,包括调用Node.js模块的并且要被本地web服务器执行的服务器端JavaScript。
作为这个第三变例的第二例子,服务器脚本202可以牵涉可能中断设备402的进程的操作的阻塞请求。例如,服务器脚本202可以牵涉到涉及超长计算的复杂逻辑,或者可以牵涉对被另一进程当前排他地利用的数据或资源的访问。这样的阻塞请求在客户机应用108中可能是无法维持的(例如,发出阻塞请求的web应用可以被暂时地或者无限期地挂起,从而中断用户接口和/或包含web应用的web浏览器,和/或可能超过处理超时门限从而导致web应用的终止)。替代地,客户机应用108可以将这样的阻塞请求委托给服务器应用104,其中服务器脚本202指定阻塞请求和/或在阻塞请求之后要被执行的逻辑。在后台中执行的服务器应用104可以持续地将这样的阻塞请求作为可阻塞线程来执行而不用中断设备402的任何前台进程,和/或可以可接受地继续处理阻塞请求(例如,等待长时间运行进程的完成或资源的可用性)达延长的持续时间。
作为这个第三变例的第三例子,服务器脚本202可以指定在实现异步进程的完成之后要被调用的服务器脚本回调。服务器脚本回调可以由服务器脚本202、由服务器应用104、由用户110和/或由客户机应用108来指定。作为一个这样的例子,客户机应用108的订阅请求可以被与客户机用户接口事件相关联(例如,客户机应用108可以等待来自用户110的某种形式的输入),并且客户机应用108可以指定在检测到输入之后要被调用的应用回调。在接收到订阅请求204之后,服务器应用108可以配置或者生成服务器脚本202来调用客户机应用108的应用回调,并且可以使服务器脚本202与牵涉对用户输入的检测的本地事件206相关联。设备402可以继续客户机应用108的执行,其包括本文中所呈现的客户机用户接口事件,从而使得客户机应用108能够被通知对用户输入事件的检测,而不必针对这样的检测(例如,经由轮询)监控输入构件。这些和其它类型的本地事件206和/或服务器脚本202可以在本文中所呈现的服务器/客户机架构和技术中被牵涉到。
D3.服务器脚本订阅和执行
可以在这些技术的实施例之中不同的第三方面牵涉这样的方式,借此服务器应用108接受来自相应的客户机应用108的订阅请求204和/或代表一个或多个客户机应用108执行与本地事件206相关联的(一个或多个)服务器脚本202。
作为这个第三方面的第一变例,服务器应用104可以通过提供关于客户机应用108可以订阅的可用本地事件206的信息来便于客户机应用108订阅本地事件206。例如,在从客户机应用108接收到识别可订阅的本地事件206的集合的请求之后,服务器应用104可以枚举可由客户机应用108订阅的本地事件206。替换地,服务器应用104可以简单地维护可由客户机应用108查询的可订阅的本地事件206的目录。
作为这个第三方面的第二变例,本地服务器应用104可以以许多方式识别可订阅的本地事件206。作为一个这样的例子,相应的本地事件206可以被与本地事件地址相关联,所述本地事件地址例如是客户机应用108可以通过其从本地服务器应用104请求资源的超文本传输协议(HTTP)地址。在接收到指定特定地址的客户机请求之后,本地服务器应用104可以确定该地址是否是与针对本地事件206的订阅请求相关联的本地事件地址,并且如果是这样的话,则可以将客户机请求作为由本地客户机应用108所发起的事件订阅请求204来处置。作为另一个这样的例子,设备402的相应的构件可以由包括该构件的构件名称的本地事件地址来识别,并且本地客户机应用108可以通过发起指定了包括构件的构件名称的本地事件地址的客户机请求来订阅牵涉这样的构件的本地事件206。
图6呈现了特写本文中所呈现的技术的这些变例中的若干个的示范性场景600的图解。在这个示范性场景600中,设备402包括可以生成一个或多个本地客户机应用108可以订阅的本地事件206的一组构件,诸如:可由用户110操作来生成指针输入的鼠标构件602;可由用户110操作来捕获静止或运动图像的相机构件604;以及被配置成执行专门类型的处理的处理器构件606(例如,光线跟踪图形处理器)。设备402可以利用本地服务器应用104通过使相应的构件与构件地址612相关联来履行这样的事件订阅请求204。客户机应用108可以将事件枚举请求608(例如,对本地服务器应用104的、枚举本地客户机应用108可以订阅的本地事件206的类型的请求,包括本地客户机应用108可访问的构件)发送到本地服务器应用104,并且本地服务器应用104可以用可订阅的事件枚举610做出响应,所述可订阅的事件枚举610识别针对相应的构件的、本地客户机应用108可以指定来订阅由构件所生成的本地事件206的构件地址612。如果本地客户机应用108将指定构件的构件地址614的事件订阅请求204发送到服务器应用104,则本地服务器应用104然后可以使本地应用108与由构件所生成的本地事件206相关联,以及,在检测到这样的本地事件206之后,可以执行与由设备402的构件所生成的本地事件206相关联的并且与本地事件206有关的服务器脚本202。以这种方式,本地服务器应用104可以使能并且居间促成(mediate)本地客户机应用108与设备402的构件的交互。
作为这个第三方面的第三变例,除提供将本地事件订阅服务提供给一个或多个本地客户机应用108的本地服务器应用104之外,设备402还可以包括在其它设备402上执行的其它应用(例如,扩展本文中所提供的本地服务模型以便同样包括传统的多设备服务器/客户机架构)。作为第一这样的例子,设备402可以使得本地客户机应用108能够确定订阅请求的目标为本地服务器应用104或在远程设备上执行的远程服务器应用。在确定了本地客户机应用108的事件订阅请求204的目标是本地服务器应用104之后,设备402可以将事件订阅请求204呈现给本地服务器应用104;但在确定了事件订阅请求204的目标包括远程设备的远程服务器应用之后,设备402可以将订阅请求204转发到远程设备。替换地或附加地,除接收和服务由本地客户机应用108所提供的事件订阅请求204之外,本地服务器应用104可以接收从在第二设备上执行的远程客户机应用接收到的事件订阅请求204,并且可以通过在检测到远程应用所订阅的本地事件206之后代表在第二设备上执行的远程客户机应用执行与本地事件206相关联并且与本地事件206有关的一个或多个服务器脚本202来履行这样的事件订阅请求204。作为一个这样的例子,在作为设备网互操作的设备的集合的每一个上提供本地服务器应用104可能是非常有利的,其中每个本地服务器应用104都被配置成代表在相同的设备402上本地执行的本地客户机应用108以及在设备网的其它设备402上执行的远程客户机应用来服务对本地事件206的事件订阅请求204。
图7呈现了根据本文中所呈现的技术的、包括设备网702的特写若干设备704的互操作的示范性场景700的图解。在这个示范性场景700中,设备网702的相应的设备704可以(例如,通过有线或无线网络)互通来共享关于在每个设备704内出现的本地事件206的信息。为此目的,每个设备704都可以包括的服务器应用104,其被配置成接收和履行不仅由在相同的设备704上执行的本地客户机应用108所提供的而且由在设备网702的另一设备704上执行的远程客户机应用所提供的事件订阅请求204。附加地,在第一设备704从本地客户机应用108接收到将在设备网702的第二设备704上执行的远程服务器应用指定为请求的目标的事件订阅请求204之后,第一设备704可以将事件订阅请求204转发到第二设备。在检测到本地事件206的发生之后,服务器应用104可以识别本地客户机应用108和在其它设备704上执行的远程客户机应用,并且可以代表每个这样订阅的客户机应用108发起与本地事件206相关联的一个或多个服务器脚本202的服务器脚本执行208。这个变例因此将本文中所呈现的本地事件服务模型扩展成包括依照本文中所呈现的技术在其它设备704上执行的其它客户机应用106。
作为这个第三方面的第四变例,设备402可以以节省设备402的资源的方式来调整本地服务器应用104和/或(一个或多个)本地客户机应用108的执行,所述设备402诸如操作容量有限的电池组和/或在低瓦特功率约束内的移动设备,或在处理和/或存储器被节省的条件下产生较高设备性能的处理器。
作为这个第四变例的第一例子,本地服务器应用108可以仅当来自一个或多个客户机应用108的事件订阅请求204待处理时才被执行。例如,在接收到事件订阅请求204之后,设备402可以确定本地服务器应用104是否正在执行,并且如果不是,则可以调用本地服务器应用104的执行以便履行事件订阅请求204。替换地或附加地,在检测到缺乏对本地服务器应用204能够检测到的本地事件206的事件订阅请求之后,设备402可以暂时地或者无限期地结束本地服务器应用104的执行。以这种方式,设备402可以以特设(ad hoc)方式操作本地服务器应用104,并且否则可以在本地服务器应用104不在使用中时节省设备402的资源。
作为这个第四变例的第二例子,设备402的相应的处理构件可以仅当本地事件206已被检测到时才被利用。例如,如果本地事件206包括对通过输入构件所接收到的用户输入的处理,则设备402可以在这样的本地事件206不正在出现时抑制(withhold)来自处理构件的功率。而且,这样的处理可以取决于一个或多个客户机应用108对与处理构件相关联的本地事件206的订阅。例如,如果设备402包括被配置成解释通过触敏显示构件所接收到的触摸输入的处理构件,则当触敏显示构件不在接收触摸输入时以及可选地进一步取决于任何客户机应用108是否当前被配置成通过触敏显示构件来接收和处理触摸输入,设备402可以减少或者消除提供给处理构件的功率。这样的技术可以依照本文中所呈现的技术来便于设备资源(诸如功率、处理器、存储器以及通信容量)的节省。服务器脚本202的订阅和执行的这些和其它变例可以被服务器应用104依照本文中所呈现的技术代表响应于对各种本地事件206的检测的并且与对各种本地事件206的检测相关联的一个或多个客户机应用108利用。
E.计算环境
图8和以下讨论提供了对用来实施本文中所阐述的规定中的一个或多个的实施例的适合的计算环境的简要的一般性描述。图8的操作环境仅是适合的操作环境的一个例子,并且不旨在就操作环境的使用或功能性的范围提出任何限制。示例性计算设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放机等等)、多处理器系统、消费电子装置、小型计算机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等等。
虽然不是必需的,但是实施例在正由一个或多个计算设备所执行的“计算机可读指令”的一般性上下文中被描述。计算机可读指令可以经由计算机可读媒体(在下面讨论)被分布。计算机可读指令可以被实施为执行特定任务或者实施特定抽象数据类型的程序模块,诸如函数、对象、应用编程接口(API)、数据结构等。典型地,计算机可读指令的功能性可以被组合或者视需要被分布在各种环境中。
图8图示了系统800的例子,系统800包括被配置成实施本文中所提供的一个或多个实施例的计算设备802。在一个配置中,计算设备802包括至少一个处理单元806和存储器808。取决于计算设备的确切配置和类型,存储器808可以是易失性的(例如,诸如RAM)、非易失性的(例如,诸如ROM、闪速存储器等)或两者的某种组合。这种配置在图8中由虚线804来图示。
在其它实施例中,设备802可以包括附加的特征和/或功能性。例如,设备802还可以包括附加的存储装置(例如,可拆卸的和/或不可拆卸的),所述存储装置包括但不限于磁存储装置、光学存储装置等等。这样的附加存储装置在图8中由存储装置810来图示。在一个实施例中,用来实施本文中所提供的一个或多个实施例的计算机可读指令可以是在存储装置810中。存储装置810还可以存储其它计算机可读指令以便实施操作系统、应用程序等等。例如,计算机可读指令可以被加载在存储器808中以供处理单元806执行。
如本文中所使用的术语“计算机可读媒体”包括计算机存储媒体。计算机存储媒体包括被以任何方法或技术实施以用于存储诸如计算机可读指令或其它数据之类的信息的易失性和非易失性、可拆卸和不可拆卸媒体。存储器808和存储装置810是计算机存储媒体的例子。计算机存储媒体包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、磁盒、磁带、磁盘存储装置或其它磁存储设备,或能够被用来存储所期望的信息并且能够被设备802访问的任何其它介质。任何这样的计算机存储媒体可以是设备802的一部分。
设备802还可以包括允许设备802与其它设备进行通信的(一个或多个)通信连接件816。(一个或多个)通信连接件816可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外端口、USB连接,或用于将计算设备802连接到其它计算设备的其它接口。(一个或多个)通信连接件816可以包括有线连接件或无线连接件。(一个或多个)通信连接件816可以传送和/或接收通信媒体。
术语“计算机可读媒体”可以包括通信媒体。通信媒体典型地将计算机可读指令或其它数据具体化为诸如载波或其它传输机制之类的“调制数据信号”,并且包括任何信息递送媒体。术语“调制数据信号”可以包括这样的信号,所述信号使其特性中的一个或多个以这样一种方式被设置或者改变以便将信息编码在所述信号中。
设备802可以包括(一个或多个)输入设备814,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其它输入设备。诸如一个或多个显示器、扬声器、打印机和/或任何其它输出设备之类的(一个或多个)输出设备812也可以被包括在设备802中。(一个或多个)输入设备814和(一个或多个)输出设备812可以经由有线连接、无线连接或其任何组合被连接到设备802。在一个实施例中,来自另一计算设备的输入设备或输出设备可以被用作针对计算设备802的(一个或多个)输入设备814或(一个或多个)输出设备812。
计算设备802的构件可以被各种互连线(诸如总线)连接。这样的互连线可以包括外围构件互连线(PCI)(诸如PCI Express)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等等。在另一实施例中,计算设备802的构件可以被网络互连。例如,存储器808可以由位于由网络所互连的不同物理位置中的多个物理存储器单元组成。
本领域的技术人员将认识到,被利用来存储计算机可读指令的存储设备可以跨越网络被分布。例如,可经由网络818访问的计算设备820可以存储计算机可读指令以便实施本文中所提供的一个或多个实施例。计算设备802可以访问计算设备820并且下载计算机可读指令的一部分或全部以供执行。替换地,计算设备802可以按需下载多条计算机可读指令,或者一些指令可以在计算设备802处被执行以及一些在计算设备820处被执行。
F.术语的使用
尽管已经用特定于结构特征和/或方法动作的语言描述了本主题,但是应当理解,所附权利要求中定义的主题未必限于上面所描述的特定特征或动作。相反,上面所描述的特定特征和行为作为实施权利要求的示例性形式被公开。
如在本申请中所使用的那样,术语“构件”、“模块”、“系统”、“接口”等等通常旨在指的是计算机相关实体,要么硬件、硬件和软件的组合、软件,要么执行中的软件。例如,构件可以是但不限于是在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过说明,在控制器上运行的应用和控制器两者都可以是构件。一个或多个构件可以驻留在执行的进程和/或线程内,并且构件可以位于一个计算机上和/或分布在两个或更多个计算机之间。
此外,所要求保护的主题可以使用产生软件、固件、硬件或其任何组合的标准编程和/或工程技术被实施为方法、装置或制品以便控制计算机实施所公开的主题。如本文中所使用的术语“制品”旨在包含可从任何计算机可读设备、载体或媒体访问的计算机程序。当然,本领域的技术人员将认识到,在不背离所要求保护的主题的范围或精神的情况下可以对这种配置做出许多修改。
本文提供了实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以构成在一个或多个计算机可读媒体上存储的计算机可读指令,所述计算机可读指令如果被计算设备执行,则将使计算设备执行所描述的操作。操作中的一些或全部被描述的顺序不应该被解释为暗示这些操作必定是顺序相关的。供替换的排序将被得益于本描述的本领域的技术人员了解。进一步地,应理解,并非所有操作都必定存在于本文中所提供的每个实施例中。
而且,单词“示范性”在本文中被用来意指用作例子、实例或图解。本文中描述为“示范性”的任何方面或设计未必将被解释为优于其它方面或设计。相反,单词示范性的使用旨在以具体的方式呈现概念。如在本申请中所使用的那样,术语“或”旨在意指包括性的“或”而不是排他性的“或”。也就是说,除非另外指定,或从上下文是清楚的,否则“X采用A或B”旨在意指自然的包括性的排列中的任一个。也就是说,如果X采用A;X采用B;或X采用A和B两者,则在前面的实例中的任一个下“X采用A或B”被满足。此外,除非另外指定或从上下文清楚的是针对单数形式,否则如在本申请和所附权利要求中所使用的冠词“一”和“一个”通常可以被解释为意指“一个或多个”。
并且,尽管已经相对于一个或多个实施方案示出和描述了本公开内容,但是等同变更和修改将被本领域的技术人员基于对本说明书和附图的阅读和理解而想到。本公开内容包括所有这样的修改和变更,并且仅由以下权利要求的范围所限定。特别地,关于由上面描述的构件(例如,元件、资源等)所执行的各种功能,除非另外指示,否则用来描述这样的构件的术语旨在对应于执行所描述的构件的所指定的功能的任何构件(例如,其是功能上等效的),即使在结构上不等同于所公开的执行本公开内容的本文中说明的示范性实施方案中的功能的结构。此外,虽然可能已经相对于若干实施方案中的仅一个公开了本公开内容的特定特征,但是这样的特征可以被与其它实施方案的如对于任何给定或特定应用而言可能是期望的且有利的一个或多个其它特征组合。此外,就术语“包括”、“具有”、“有”、“带有”或其变例被用在具体实施方式或权利要求中来说,这样的术语旨在以类似于术语“包括”的方式为包括性的。

Claims (9)

1.一种在具有处理器的设备上履行请求的方法,所述处理器执行至少一个本地客户机应用,所述方法包括:
在设备上执行指令,所述指令被配置成:
生成使至少一个服务器脚本与至少一个本地事件相关联的本地服务器;
在从本地客户机应用接收到指定所选择的本地事件的订阅请求之后,使所选择的本地事件与本地客户机应用相关联;
在检测到与至少一个服务器脚本和本地客户机应用相关联的本地事件之后,在本地服务器内代表本地客户机应用执行与本地事件相关联的并且与本地事件有关的服务器脚本;
在从本地客户机应用接收到指定目标的订阅请求之后:
确定目标是否包括设备上的本地服务器;
在确定目标包括设备上的本地服务器之后,将订阅请求呈现给本地服务器;以及
在确定目标包括在设备外的远程服务器之后,将订阅请求发送到远程服务器。
2.根据权利要求1所述的方法:
本地服务器包括web服务器,所述web服务器包括Node.js模块;以及
至少一个服务器脚本包括JavaScript,其代表本地客户机应用调用web服务器的Node.js模块。
3.根据权利要求1所述的方法,选自本地事件集合的本地事件包括:
指示设备的输入构件对本地输入的接收的本地输入事件;
指示设备的检测器构件对本地用户的检测的本地用户事件;
指示设备对本地数据处理实例的完成的本地处理事件;以及
由客户机应用导向本地服务器的客户机请求。
4.根据权利要求1所述的方法:
本地事件包括在第三应用在设备上的执行期间出现的本地应用事件;以及
检测本地事件包括:监控第三应用的执行以便检测本地应用事件。
5.根据权利要求4所述的方法:
第三应用定义特定于应用的事件;以及
所述指令被进一步配置成:在从本地客户机应用接收到指定第三应用的特定于应用的事件的订阅请求之后,使特定于应用的事件与第三应用相关联。
6.根据权利要求4所述的方法:
所述指令被进一步配置成:在从在第二设备上执行的远程客户机应用接收到订阅请求之后,使所选择的本地事件与远程客户机应用相关联;以及
在检测到与至少一个服务器脚本和远程客户机应用相关联的本地事件之后,在本地服务器内代表远程客户机应用执行与本地事件相关联的服务器脚本。
7.根据权利要求4所述的方法:
本地服务器对分别指定地址的订阅请求进行响应;
相应的本地事件与本地事件地址相关联;以及
从客户机接收订阅请求包括:从客户机应用接收指定与本地事件相关联的本地事件地址的订阅请求。
8.根据权利要求7所述的方法:
相应的本地事件与设备的可由构件名称识别的至少一个构件相关联;以及
本地事件的本地事件地址包括与本地事件相关联的构件的构件名称。
9.根据权利要求1所述的方法,所述指令被进一步配置成:
在检测本地事件之前,减少给设备的至少一个处理构件的功率;以及
在检测到本地事件之后,恢复给至少一个处理构件的功率。
CN201280061010.5A 2011-10-11 2012-10-11 通过本地服务器对本地客户机应用进行事件服务的方法 Active CN103975301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710332812.XA CN107515791B (zh) 2011-10-11 2012-10-11 通过本地服务器对本地客户机应用进行事件服务的方法

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201161546049P 2011-10-11 2011-10-11
US61/546,049 2011-10-11
US61/546049 2011-10-11
US201261617474P 2012-03-29 2012-03-29
US61/617,474 2012-03-29
US61/617474 2012-03-29
US13/650022 2012-10-11
US13/650,022 US9363334B2 (en) 2011-10-11 2012-10-11 Event service for local client applications through local server
US13/650,022 2012-10-11
PCT/US2012/059832 WO2013055973A1 (en) 2011-10-11 2012-10-11 Event service for local client applications through local server

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710332812.XA Division CN107515791B (zh) 2011-10-11 2012-10-11 通过本地服务器对本地客户机应用进行事件服务的方法

Publications (2)

Publication Number Publication Date
CN103975301A CN103975301A (zh) 2014-08-06
CN103975301B true CN103975301B (zh) 2017-06-09

Family

ID=50548846

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710332812.XA Active CN107515791B (zh) 2011-10-11 2012-10-11 通过本地服务器对本地客户机应用进行事件服务的方法
CN201280061010.5A Active CN103975301B (zh) 2011-10-11 2012-10-11 通过本地服务器对本地客户机应用进行事件服务的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710332812.XA Active CN107515791B (zh) 2011-10-11 2012-10-11 通过本地服务器对本地客户机应用进行事件服务的方法

Country Status (11)

Country Link
EP (2) EP4105777A1 (zh)
JP (1) JP6088531B2 (zh)
KR (1) KR101955744B1 (zh)
CN (2) CN107515791B (zh)
AU (1) AU2012322684B2 (zh)
BR (1) BR112014008762B1 (zh)
CA (1) CA2851514C (zh)
IN (1) IN2014CN02434A (zh)
MX (1) MX345059B (zh)
RU (1) RU2616162C2 (zh)
WO (1) WO2013055973A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130091197A1 (en) 2011-10-11 2013-04-11 Microsoft Corporation Mobile device as a local server
US9876849B2 (en) * 2014-11-05 2018-01-23 Google Llc Opening local applications from browsers
US9876852B2 (en) * 2015-07-23 2018-01-23 Microsoft Technology Licensing, Llc Coordinating actions across platforms
KR101865343B1 (ko) * 2017-05-29 2018-07-13 김희민 웹 서비스 애플리케이션 개발을 위한 서버측 프레임워크 장치, 이에 의해 개발된 웹 서비스 애플리케이션의 실행 방법 및 이를 위한 컴퓨터 프로그램

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625804B1 (en) * 2000-07-06 2003-09-23 Microsoft Corporation Unified event programming model
US7559065B1 (en) * 2003-12-31 2009-07-07 Emc Corporation Methods and apparatus providing an event service infrastructure
CN101849228A (zh) * 2007-01-16 2010-09-29 吉兹莫克斯有限公司 用于创建面向IT的基于服务器的Web应用的方法和系统
CN101854371A (zh) * 2009-03-31 2010-10-06 华为技术有限公司 JavaScript对象的调用及处理的方法、装置
CN102158516A (zh) * 2010-08-19 2011-08-17 华为技术有限公司 服务组合实现方法及系统、服务组合编译方法及编译器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728736A (ja) * 1993-07-15 1995-01-31 Hitachi Ltd マルチウィンドウ制御方式
JPH09167097A (ja) * 1995-12-15 1997-06-24 Mitsubishi Electric Corp リモート・プロシジャ・コールシステム
US6268852B1 (en) * 1997-06-02 2001-07-31 Microsoft Corporation System and method for facilitating generation and editing of event handlers
US8001232B1 (en) * 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US7752214B2 (en) * 2000-09-01 2010-07-06 Op40, Inc. Extended environment data structure for distributed digital assets over a multi-tier computer network
US7509651B2 (en) * 2003-05-23 2009-03-24 Hewlett-Packard Development Company, L.P. System and method for providing event notifications to information technology resource managers
US7461134B2 (en) * 2004-11-19 2008-12-02 W.A. Krapf, Inc. Bi-directional communication between a web client and a web server
JP5017785B2 (ja) * 2005-03-18 2012-09-05 富士通株式会社 情報処理装置、高速起動方法、及びプログラム
CN101005396B (zh) * 2006-01-16 2010-07-28 中国科学院计算技术研究所 一种网格环境下支持网格资源动态集成和协作的方法
JP2008158637A (ja) * 2006-12-21 2008-07-10 Hitachi Ltd 情報処理装置、プログラム及び情報処理方法
US8443346B2 (en) * 2007-01-18 2013-05-14 Aol Inc. Server evaluation of client-side script
CN101309165B (zh) * 2007-05-14 2012-04-04 华为技术有限公司 信息报告的控制方法、装置和设备
CN101110822B (zh) * 2007-07-06 2011-11-02 华为技术有限公司 基于网络配置协议的事件通知发送方法、系统及设备
CN101855883A (zh) * 2007-10-19 2010-10-06 皇家Kpn公司 用于管理服务交互的系统
US8161160B2 (en) * 2008-02-28 2012-04-17 Microsoft Corporation XML-based web feed for web access of remote resources
US8762759B2 (en) * 2008-04-10 2014-06-24 Nvidia Corporation Responding to interrupts while in a reduced power state
CN201210690Y (zh) * 2008-05-06 2009-03-18 上海海事大学 基于浏览器和服务器结构的船舶动态和海运服务查询系统
JP4748819B2 (ja) * 2009-01-28 2011-08-17 インターナショナル・ビジネス・マシーンズ・コーポレーション クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム
US20110239108A1 (en) * 2010-03-26 2011-09-29 Microsoft Corporation Configurable dynamic combination of html resources for download optimization in script based web page

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625804B1 (en) * 2000-07-06 2003-09-23 Microsoft Corporation Unified event programming model
US7559065B1 (en) * 2003-12-31 2009-07-07 Emc Corporation Methods and apparatus providing an event service infrastructure
CN101849228A (zh) * 2007-01-16 2010-09-29 吉兹莫克斯有限公司 用于创建面向IT的基于服务器的Web应用的方法和系统
CN101854371A (zh) * 2009-03-31 2010-10-06 华为技术有限公司 JavaScript对象的调用及处理的方法、装置
CN102158516A (zh) * 2010-08-19 2011-08-17 华为技术有限公司 服务组合实现方法及系统、服务组合编译方法及编译器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Node.js: Using JavaScript to Build High-Performance Network Programs;Tilkov S等;《Internet Computing, IEEE》;20101130;第14卷(第6期);80-83 *

Also Published As

Publication number Publication date
CN107515791A (zh) 2017-12-26
EP4105777A1 (en) 2022-12-21
AU2012322684B2 (en) 2017-05-25
CA2851514A1 (en) 2013-04-18
RU2616162C2 (ru) 2017-04-12
JP2015501479A (ja) 2015-01-15
MX345059B (es) 2017-01-16
MX2014004482A (es) 2014-08-01
EP2766806A4 (en) 2015-11-11
IN2014CN02434A (zh) 2015-06-19
RU2014114277A (ru) 2015-10-20
AU2012322684A1 (en) 2014-05-01
WO2013055973A1 (en) 2013-04-18
CN107515791B (zh) 2021-03-02
CA2851514C (en) 2020-04-21
BR112014008762B1 (pt) 2021-08-17
JP6088531B2 (ja) 2017-03-01
EP2766806A1 (en) 2014-08-20
KR20140077170A (ko) 2014-06-23
EP2766806B1 (en) 2022-08-24
BR112014008762A2 (pt) 2018-06-05
KR101955744B1 (ko) 2019-03-07
CN103975301A (zh) 2014-08-06

Similar Documents

Publication Publication Date Title
US11223704B2 (en) Event service for local client applications through local server
US11172042B2 (en) Platform-independent application publishing to a front-end interface by encapsulating published content in a web container
JP6137505B2 (ja) ウェブアプリケーションのための軽量フレームワーク
US11611633B2 (en) Systems and methods for platform-independent application publishing to a front-end interface
US9513979B2 (en) Mobile communication device providing interconnectivity between apps based on storage scope
JP2016076216A (ja) アプリケーション試用システム、方法及びそのサーバとユーザデバイス
US20180025450A1 (en) Property management method and property management system and machine using the same
US9037757B2 (en) Device action service
US10284670B1 (en) Network-controlled device management session
WO2019201340A1 (zh) 处理器核心调度方法、装置、终端及存储介质
CN103975301B (zh) 通过本地服务器对本地客户机应用进行事件服务的方法
US10504277B1 (en) Communicating within a VR environment
US10679391B1 (en) Mobile phone notification format adaptation
US20180300160A1 (en) Host and Component Relationship between Applications
US11456983B2 (en) Interactive operation method, and transmitter machine, receiver machine and interactive operation system using the same
EP2972825B1 (en) Hybrid service-oriented computing architecture
CN117742726A (zh) 程序的处理方法及装置、电子设备
CN112422692A (zh) 一种网络请求方法及相关装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150706

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150706

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant