向Web应用透露资源能力的制作方法

文档序号:6361955阅读:154来源:国知局
专利名称:向Web应用透露资源能力的制作方法
技术领域
本文档涉及计算设备的资源能力。
背景技术
计算机系统可以包括执行各种任务的多个本机(native)应用。这样的本机应用可以包括字处理器、电子邮件客户端、媒体播放器、图像或信号处理模块、文件管理工具等。为了有效运作,通常以诸如C或C++的通用编程语言和诸如汇编语言的低级语言的组合来编写本机应用。此外,本机应用可以通过诸如应用编程接口(API)的各种接口,能够访问系统资源,诸如图形硬件、电话硬件、相机硬件、声卡、文件系统和网络资源。因此,本机应用可以向本机应用被安装在其上的计算机系统的用户提供特定于资源的特征。Web应用是典型地以可以通过web浏览器可访问的脚本语言编写的软件应用。Web应用可以被嵌入在超文本标记语言(HTML)网页中并且已成为web设计者和开发者帮助为用户创建丰富体验的流行工具。一些示例web应用包括电子邮件、日历、拍卖、销售和客户支持等。尽管web应用在最近几年中已变得越来越普遍和交互,然而,安全协议一般限制其本机访问低级系统资源的能力,正因为如此,在利用对这样的系统资源的访问的情况下通常使用本机应用。浏览器可以包括提供对系统资源的这样访问的扩展或专用API,但是在标准浏览器中不存在这些扩展和API。此外,这样的扩展和API的开发通常可能是费时的,并且可能将web应用束缚于特定平台。

发明内容
总的来说,本文档描述了用于向在标准、非扩展的浏览器中执行的web应用透露诸如硬件设备能力的系统资源的技术。例如,根据在此描述的技术,web应用可以用来在没有利用内置于浏览器中的浏览器扩展或专用API的情况下,监视和/或控制系统级硬件组件或其他系统资源。如此,web应用是独立于浏览器和平台的,因此,可以被相对容易地移植到各种设备。可以通过使用标准超文本传输协议(HTTP)连接模式经由类似于典型web服务器运作的资源服务器向web应用透露系统资源(例如,电话硬件、相机硬件、文件系统等)的状态和操作能力。资源服务器接收并处理来自web应用的HTTP消息,并且使用HTTP消息来监视和/或控制适当的系统资源。由于资源服务器驻存于浏览器之外,因而在限制来自浏览器的直接访问的安全协议范围之外,所以资源服务器可以访问用来访问和控制系统资源的本机资源API。在一个示例中,计算机可读存储介质包括当被执行时促使一个或多个处理器在计算设备的web浏览器内执行web应用的指令。所述指令还促使一个或多个处理器执行web服务器,其具有用于从web应用接收超文本传输协议(HTTP)消息的第一接口和用于与计算设备的硬件组件通信的第二接口。所述指令进一步促使一个或多个处理器在web应用处接收影响硬件组件的操作的输入。所述指令还促使一个或多个处理器将影响硬件组件的操作的HTTP消息从web应用传输给web服务器。所述指令进一步促使一个或多个处理器在web服务器处将该HTTP消息处理成包括关于该操作的信息的硬件控制消息。所述指令还促使一个或多个处理器将该硬件控制消息从web服务器传输给该硬件组件以影响该硬件组件的操作。在另一个示例中,方法包括在计算设备的web浏览器内执行web应用。该方法还包括执行资源服务器,其带有用于从web应用接收HTTP消息的接口和用于与计算设备的系统资源通信的接口。该方法进一步包括在web应用处接收影响系统资源的操作的输入。该方法还包括将影响系统资源的操作的HTTP消息从web应用传输给资源服务器。该方法进一步包括将该HTTP消息处理成包括关于该操作的信息的资源控制消息。该方法还包括将该资源控制消息从资源服务器传输给该系统资源以影响该系统资源的操作。在另一个示例中,系统包括在计算设备的浏览器中可执行的web应用。该系统还包括被配置成控制计算设备的系统资源的资源服务器。该资源服务器具有用于从web应用接收超文本传输协议(HTTP)消息的第一接口和用于与系统资源通信的第二接口。该系统进一步包括用于通过资源服务器使用web应用来控制系统资源的装置。在此描述的技术可以提供以下益处中的一个或多个。在一些实施方式中,所述技术为在浏览器中执行的应用和设备的系统资源之间的双向命令协议提供独立于浏览器和平台的体系结构。该体系结构是灵活的,并且向web开发者提供使用熟悉的HTTP连接模式来访问系统资源的工具。另外,可以实现浏览器/服务器接口的安全特性以确保适当限制系统资源的恶意操作。在附图和下面描述中阐述了一个或多个实施例的细节。其他特征、目的和益处从描述和附图以及从权利要求将是显而易见的。


图1是图示用于向在计算设备上执行的浏览器透露计算设备的资源能力的示例体系结构的概念图。图2是图示在图1的体系结构中的组件之间的示例通信的框图。图3是图示用于使用在浏览器中运作的应用来控制系统资源的示例过程的泳道图。图4是图示用于使用在浏览器中运作的应用来控制系统资源的示例过程的流程图。图5是图示可以用来实现在本文档中描述的技术中的一个或多个的计算系统的示例组件的概念图。在各附图中相同的参考符号指示相同的元素。
具体实施例方式总的来说,本公开描述了用于向在运作于设备上的标准、非扩展的浏览器中执行的应用透露设备的资源能力的技术。基于浏览器的web应用典型地不能与存在于基于浏览器的应用以其运行的安全协议外的组件通信。如此,除非对浏览器作出专门扩展、应用编程接口(API)或其他这样的修改,在浏览器中执行的应用和设备的系统资源之间的双向命令协议一般不可用。根据在本公开中描述的技术,向在标准、非扩展的浏览器中执行的web应用提供这样的双向命令协议。如在此所使用的,词语“非扩展”并不意在意味着浏览器必定缺乏任何扩展或API,而是浏览器尚未被明确扩展成直接控制系统资源。替代地,web应用使用常见HTTP连接模式(例如,GET和POST消息)与资源服务器通信,以及该资源服务器进而与系统资源通信并且向web应用透露系统资源的能力。作为这些技术的一个示例,在标准浏览器中运作的电话相关web应用可以用于经由电话资源服务器来监视和/或操作移动设备的电话硬件能力。图1是图示用于向在计算设备上执行的浏览器透露计算设备的资源能力的示例体系结构100的概念图。如所示,计算设备110、115每一个包括能够执行web应用130的浏览器120。Web应用130被通信地耦接到一个或多个资源服务器,诸如相机服务器140和/或电话服务器145。进而,资源服务器被通信地耦接到计算设备的系统资源。例如,相机服务器140被通信地耦接到相机硬件160,以及电话服务器145被通信地耦接到电话硬件165。如所示,计算设备110、115分别对应于移动设备和膝上型计算机。然而,计算设备110、115可以是能够执行浏览器120的任何类型的计算设备。如此,示例计算设备可以包括任何类型的计算机(例如,台式计算机、工作站、平板电脑、笔记本、上网本、大型机、终端等)、任何类型的手持式设备(例如,智能手机、个人数字助理等)等。浏览器120是在例如计算设备110的计算设备上运作并且使能够通过一个或多个服务器访问信息的计算机软件应用。在一些情况下,例如web服务器(未示出)的服务器远离计算设备被托管,以及浏览器120通过诸如因特网的网络提供对远程服务器的访问。在其他情况下,服务器可以对计算设备是本地的,诸如在计算设备上运作的资源服务器140、145。在任一情况下,浏览器120和服务器使用常规HTTP连接模式来通信。浏览器120被配置成通过利用以位置、名称或两者识别资源的统一资源标识符(URI)来从本地或远程的服务器访问信息。浏览器120还被配置成使用已知为定义特定资源的位置以及可以如何访问该资源的统一资源定位符(URL)的URI形式来从服务器访问信息。浏览器120可以被配置成在一个或多个浏览器窗口或在浏览器内的浏览器标签中向用户展现网络可访问和/或其他信息。浏览器120可以使用户能够同时打开多个web浏览器窗口或在web浏览器窗口内的标签。总的来说,web应用是在基于浏览器的计算环境内执行的计算机软件应用。例如,示出了在浏览器120的情景内执行的web应用130。可以以任何数量的不同浏览器支持的语言(例如,JavaScript)对web应用进行编码。可以使用单个浏览器120来同时运行多个web应用。例如,电子邮件和日历web应用两者可以在浏览器120的不同页面或标签中显示、或可以在浏览器中的同一页面上显示。在示例体系结构100中,示出了通信地耦接到两个资源服务器140、145的web应用130。该耦接被示出为虚线以指示在web应用130和资源服务器140、145中的每一个之间的通信信道没有通过诸如API或浏览器扩展的直接接口。替代地,资源服务器140、145运作为在浏览器120之外运作的web服务器,以向在浏览器120中执行的web应用130供给资源。如在本公开中所描述的,该体系结构允许web应用130在标准、非扩展的web浏览器120内运作来访问诸如相机硬件160或电话硬件165的各种系统资源的能力。尽管web应用130在浏览器120内执行,然而,其可以被托管在远离浏览器120的地方。例如,web应用130可以被托管在资源服务器140、145中的一个或多个上,以及每一个资源服务器可以托管一个或多个web应用。例如,服务器140可以托管相机web应用,以及服务器145可以托管电话web应用。这些和其他web应用可以由浏览器120使用与适当服务器的HTTP连接来访问。例如,当浏览器120的用户导航到包含到被托管在资源服务器中的一个上的web应用的引用的HTML页面时,浏览器可以下载该web应用并且开始在浏览器内执行该应用。在一些实施方式中,web应用130可以替选地被托管在远离客户端设备的服务器上,诸如web服务器。在一些实施方式中,被配置成与特定资源服务器通信的web应用被托管在该资源服务器上。例如,如果web应用130是相机web应用,则其可以被托管在相机资源服务器140上。在这样的实施方式中,域源策略可以通过潜在阻止没有被托管在资源服务器上的恶意web应用访问资源服务器,资源服务器进而阻止潜在恶意web应用访问设备的系统资源,来提供安全层。在其他实施方式中,资源服务器可以通过提供web应用寄主的位置来充当代理,其也提供如上所述免遭恶意代码的安全保护级。还可以实现其他安全措施来确保不允许web应用和其他代码恶意访问设备的各种系统资源。例如,可以要求用户选择允许web应用访问各种系统资源的能力。例如,在启动正试图通过资源服务器访问系统资源的web应用时,在允许该动作进行之前,可以询问设备的用户是否允许这样的访问。在一些实施方式中,用户可以为每一个系统资源分别选择访问。在其他实施方式中,可以使用选择特征来覆盖对特定设备的多个或全部能力的访问。另外,可以分别或共同选择特定系统资源的特定能力。例如,用户可以选择允许web应用访问相机的照片拍摄能力,但是用户可能选择不允许使用web应用打开或关闭相机。可以在web应用、资源服务器或其组合中实现这些和其他安全措施。资源服务器140、145可以类似于传统web服务器运作,因为它们侦听、接收并处理标准HTTP命令。如上所述,在一些实施方式中,资源服务器140、145托管与特定资源(例如,分别相机硬件160或电话硬件165)有关的web应用、或用作对web应用的代理。如此,当浏览器可读页面(例如,HTML页面)指向资源服务器并且请求web应用时,其由资源服务器直接服务或通过代理提供。以这种方式,可以向浏览器120确保web应用不是恶意的,以及浏览器120可以将web应用作为信任进程运行。可以明确分配用于访问资源服务器所托管或代理的web应用的URL方案,以识别web应用提供对系统资源的访问。作为示例,可以将dev://www.fo0.com/telephone的URL定义为访问在资源服务器fo0.com上的电话web应用。URL的dev: //部分可以指示该URL与设备资源有关,使得可以使用已知搜索工具和协议(例如,通过搜索具有“dev”协议的URL)来容易地搜索类似标记的设备资源。 在上面的示例中,用于电话资源的命名空间可以包括两个URL——个用于监视该资源的状态,以及另一个用于控制该资源。例如,为了监视电话资源的状态,web应用(例如,web 应用 130)可以向 dev://www.fo0.com/telephone/state 传输 HTTP GET 调用,例如XMLHttpRequest (XHR)GET 调用,dev://www.fo0.com/telephone/state 可以在资源的状态改变之后返回状态响应对象。在一些实施方式中,可以使该GET调用保持打开作为长期运行的GET调用,其保持打开,直到GET期满(例如,在30秒钟、I分钟等之后)或直到从资源服务器(例如,电话服务器145)返回指示资源状态的更新的状态响应对象。例如,电话相关web应用可以通过向电话服务器145发出连续长期运行的GET来连续不断地监视电话硬件145的状态。保持GET请求打开一段时间,而不是连续不断轮询资源服务器,可以为设备提供延长的电池寿命,但是,在一些实施方式中,连续或间歇的轮询也可以用作长期运行的GET的替选。类似地,为了控制电话资源,web应用130可以向dev://www.fo0.com/telephone/cmd传输带有与来自web应用的输入相对应的命令的HTTP POST调用,例如XHR POST调用。例如,如果用户选择web应用130上的“呼叫”按钮,其指示“拿起”电话来拨打电话呼叫的期望,则web应用130可以生成指示资源服务器145控制电话硬件165来执行期望的操作的消息,例如JavaScript对象表示法(JSON)对象。仅出于说明目的,提供了上面的示例URL,并且其不应当被认为是限制。总的来说,可以使用其他适当的独立于平台的HTTP通信协议来实现本公开的方面。如上所述,资源服务器140、145运作为在浏览器120中运作的web应用130和例如相机硬件160和电话硬件165的一个或多个系统资源之间的桥梁。资源服务器在浏览器120的虚拟存储空间外运作,并且不受管辖浏览器120和在浏览器120内执行的应用的安全协议约束。如此,资源服务器140、145可以能够访问用来控制系统资源的本机API,同时阻止非扩展的浏览器和在该非扩展的浏览器中运行的应用直接访问这样的本机API。在一些实施方式中,可以使用单个资源服务器来提供对多个资源的访问。例如,可以将单个资源服务器用作为在web应用130和多个系统资源之间的桥梁,而不是分别使用单独的相机服务器140和电话服务器145来提供对相机硬件160和电话硬件165的访问。在其他实施方式中,可以使用多个资源服务器来提供对单个资源的访问。例如,单个系统资源可以具有多个能力或能力类型,其每一个可以使用独立资源服务器来访问。在其他实施方式中,不同的资源服务器可以在不同的处理器上执行。例如,相机服务器140可以在专用于相机硬件160的处理器上运作,以及电话服务器145可以在专用于电话硬件165的处理器上运作。计算设备110、115可以具有比图1中所示的那些更多、更少或不同类型的相关联的系统资源。例如,除了或不是相机硬件160和电话硬件165,计算设备可以包括一个或多个其他可访问的系统资源(例如,传感器、触觉反馈机制、陀螺仪等)。仅出于说明目的,本文档一般地描述了基于硬件的系统资源,并且应当理解的是,否则对在非扩展的web浏览器中执行的web应用来说不可访问的其他类型的系统资源也在本公开的范围内。图2是图示在图1的体系结构中的组件之间的示例通信的框图。在该框图中,web应用225在浏览器220中执行并且被配置成通过服务器240控制硬件260。如上所述,浏览器220可以是标准、非扩展的web浏览器、或尚未被扩展成包括控制诸如硬件260的系统资源的接口的任何其他适当浏览器。Web应用225被配置成使用标准HTTP连接模式来与服务器240通信。例如,如所示,web应用225向服务器240发送HTTP GET和POST消息,并且服务器240以HTTP RESPONSE消息作出响应。如上所述,web应用225可以被配置成使用对服务器240的HTTP GET调用来监视特定硬件资源的状态,以及使用对服务器240的HTTP POST调用来控制硬件资源。响应于这些调用中的任一个,服务器240可以用适当HTTP RESPONSE消息作出响应。例如,响应于监视消息,服务器240可以在硬件260改变状态时作出响应,并且可以用描述硬件260的更新状态的消息作出响应。作为另一个示例,响应于控制消息,服务器240可以响应接收了该特定消息并且成功执行了所请求的控制。服务器240还可以基于所执行的控制来用硬件260的更新状态作出响应。服务器240包括用来与硬件260的硬件控制器262对接的硬件接口控制器245。硬件接口控制器245可以包括描述如何处理来自web应用225的进来的HTTP调用的指令,以及还可以包括用于使用本机资源API或其他适当接口来访问并控制例如硬件设备265的系统资源的能力的指令。例如,响应于从web应用225接收的HTTP GET调用,硬件控制器接口 245可以利用硬件260的本机API来请求硬件设备265的状态。在一些实施方式中,服务器240可以用硬件265的当前状态对HTTP GET请求直接作出响应。在这样的实施方式中,web应用225可以利用对服务器240的连续轮询来监视硬件设备265的状态。在其他实施方式中,服务器240可以仅在已更新了硬件设备265的状态时才对HTTP GET请求作出响应。在这样的实施方式中,web应用225可以利用一系列长期运行的GET调用来监视硬件设备265的状态。在一些实施方式中,服务器240可以通过在硬件控制器接口 245中实现的命令集与硬件260通信。例如,响应于与硬件设备265的特定操作相对应的HTTP POST命令,硬件控制器接口 245可以解析该命令、处理该命令并且生成对应于期望操作的控制消息。服务器240然后可以将该消息传输给硬件260,其中硬件控制器262可以类似地接收该命令并且促使设备265按照请求执行操作。硬件控制器262然后可以例如用期望操作的状态——例如,通过指示该操作是否成功或通过返回状态码,对服务器240作出响应。在一些实施方式中,硬件控制器接口 245然后可以对来自硬件控制器262的状态或其他响应进行解释,以向浏览器220提供硬件设备265的更新状态。硬件260包括硬件控制器262和硬件设备265。硬件控制器262根据常规技术,诸如通过向硬件设备265提供一个或多个控制信号来操作硬件设备265。硬件控制器262可以具有向外部调用者提供对硬件设备265的功能的访问的一个或多个相关联的API。典型地,使这些API对在设备上运作的某些本机应用可用,但是不使这些API对在设备上运作的非扩展的浏览器内运作的web应用可用。如此,根据在本公开中描述的技术,将服务器240用作在浏览器220和硬件260之间的桥梁,以提供在web应用225和硬件设备265之间的双向命令协议。图3是图示用于使用在浏览器中运作的应用来控制系统资源的示例过程300的泳道图。过程300可以例如由体系结构100的各种组件执行,并且仅为了清楚陈述,随后描述将体系结构100用作为用于描述该过程的示例的基础。例如,在该过程中所示的步骤可以通过在浏览器120中运作的应用(例如,web应用130)、资源服务器(例如,电话服务器145)以及系统资源(例如,电话硬件165)来实现。然而,可以使用其他组件或组件组合来执行过程 300。过程300在非扩展的浏览器中运作的应用接收输入(305)时开始。该输入可以来自对应用来说是外部的源(诸如,用户输入或对应用的外部调用)、或可以是应用自身所生成的自动输入(诸如指示应用应当采取特定动作的时间的应用或任务计时器)。出于示例目的,可以假设用户已点击了在移动设备的浏览器中正显示的网页上的按钮,其指示用户的使用移动设备的电话硬件来拨打呼叫的期望。响应于该输入,应用向资源服务器传输消息(310)。在该特定示例中,由于用户的输入指示待由资源采取的动作(例如,“拿起”电话以为用户拨打呼叫作准备),因此,该消息可以以包括与期望操作相对应的命令(例如,CALL)的HTTP POST消息的形式。在接收所传输的消息之后,资源服务器对该消息进行处理(315),并且生成控制消息(320)。可以基于在POST消息中发送的命令,在该示例中其是CALL,来生成该控制消息。资源服务器可以将包括CALL命令的HTTP POST消息映射到用于系统资源的适当本机API。例如,如果该本机API不包括CALL操作,但是替代地包括对应的prepare Telephone和dialTelephone过程,则资源服务器可以生成利用该本机API所透露的过程的控制消息,并且可以适当填充与那些过程相关联的任何参数。资源服务器然后向资源传输该控制消息(325)。在接收所传输的控制消息之后,资源对该控制消息进行处理(330),并且执行在该控制消息中所指示的操作(335)。例如,电话资源的设备驱动器可以使电话硬件准备好拨打呼叫。该资源然后可以返回状态(340),其指示例如操作是否成功或已将电话硬件的状态从“挂机”状态更新成“连接”状态。在从资源接收状态之后,资源服务器对该状态进行处理(345)。例如,如果资源没有提供更新的状态信息,而是仅提供操作成功的指示符,则资源服务器可以将该状态解释成意味着已将电话硬件的状态从“挂机”状态更新成“连接”状态。以这种方式,可以将更复杂的处理和状态维护职责与资源服务器、资源或两者相关联。在从资源服务器接收状态之后,应用也可以对该状态进行处理(350 )。作为应用对状态进行处理的一个示例,应用可以基于资源的当前状态来向用户提供更新的显示以指示对用户可用的可能动作。例如,当电话硬件处于“挂机”状态时,可以向用户示出用于拿起电话拨号的按钮、拨号选项等,而当硬件处于“连接”状态时,可以向用户示出用于断开或取消呼叫的按钮。图4是图示用于使用在浏览器中运作的web应用来控制系统资源的示例过程400的流程图。过程400类似于过程300,但是包括关于web应用的处理的另外细节。如所示,过程400包括与监视系统资源(状态路径)和控制系统资源(动作路径)相对应的单独路径。仅出于说明目的,将路径示出为单个过程的单独线路。应当理解的是,在某些实施方式中,可以(例如,通过使用单独线程或进程)同时处理该两个路径来允许对系统资源的监视和对系统资源的控制同时发生。过程400在web应用接收操作输入(405)时开始。如上所述,该输入可以对应于用户输入或其他外部输入、或可以对应于来自应用自身的内部输入。过程400然后确定该操作是包括对系统资源的状态的请求还是包括资源待采取的动作(410)。如果操作包括对系统资源的状态的请求,则web应用向资源服务器传输HTTP GET消息(例如,XHR GET调用)(415)。可以使该GET调用保持打开作为长期运行的GET调用,其保持打开直到GET超时(例如,在30秒钟、I分钟等之后)或直到从资源服务器返回指示资源状态的更新的状态响应对象。如此,在传输GET消息之后,web应用可以等待待从资源服务器返回的状态更新(420)。如果确定GET已超时(425),则可以传输随后长期运行的GET消息(415)。在一些实施方式中,可以在web应用在运行的同时无限期重复在超时之后重新传输GET消息的循环。以这种方式,web应用可以连续不断监视系统资源的状态更新。在等待状态更新时,如果确定已从资源服务器接收了更新(430),则web应用可以视情况对该更新进行处理(440)。该更新可以包括资源的状态的指示符。例如,在电话系统资源的情况下,来自资源服务器的更新可以指示电话硬件处于“挂机”状态。Web应用可以基于状态信息向用户提供适当功能,诸如通过显示在电话硬件处于“挂机”状态时用户可以米取的各种动作。如果操作包括资源待采取的动作,则web应用生成待被传输给资源服务器的HTTPPOST消息(例如,XHR POST调用)(445),其进而促使资源服务器使资源执行所请求的动作。POST消息可以包括例如与待被控制的资源的API相对应的命令。使用电话资源的示例,如果用户选择在web应用上的“呼叫”按钮,则web应用可以生成指示电话资源服务器促使电话硬件按照指定拨打呼叫的消息。在该示例中,“呼叫”命令或类似过程可以被包括作为用来控制电话硬件的本机API的一部分。然后将该POST消息传输给资源服务器(450),其对该消息进行适当处理,并且促使对应资源执行所请求的操作。如上所述,资源服务器可以将来自web应用的原始POST消息映射到设备的适当API。响应于该POST消息,资源服务器可以提供由web应用接收的状态更新(455 )。如上所述,web应用然后可以对更新进行适当处理(440 )。图5是图示可以用来实现在本文档中描述的技术中的一个或多个的计算系统500的示例组件的概念图。如所示,计算系统500可以包括各种类型的计算设备,诸如台式计算机、膝上型计算机、网络服务器或大型计算机。尽管未被示出,然而,并入计算系统500的设备可以还或替选地包括被配置成通过网络进行计算和/或通信的任何数量的其他设备,包括移动设备,诸如移动电话、个人数字助理、智能手机或其他移动设备。任何这些计算设备可以代表在图1中所描绘的本地计算设备110、115。系统500包括处理器510、存储器520、存储设备530以及输入/输出组件540。组件510、520、530和540中的每一个可以通过用于组件间通信的系统总线550互连。处理器510可以被配置成处理用于在系统500内执行的指令。处理器510可以是单线程处理器、或可以是被配置成同时并行处理各种指令的多线程处理器。处理器510可以能够对存储在存储器520中的指令或存储在存储设备530上的指令进行处理。在一个示例中,处理器510可以被配置成对促使web应用130在浏览器120内执行来在系统500上依据在此描述的技术操作的指令进行处理。系统500进一步包括外围设备560。外围设备560可以包括例如用于向系统500的用户展现视觉信息的监视器或其他显示设备。外围设备560可以进一步包括使用户能够向系统500输入数据的一个或多个输入设备,例如键盘、鼠标、触摸板、轨迹板等。外围设备560可以进一步包括输出信息的打印机或其他设备。在一个示例中,处理器510可以被配置成对促使例如图1的浏览器120的浏览器通过外围设备560的显示器向用户显示的指令进行处理。浏览器120可以被配置成如在此所述地执行web应用130。浏览器120可以在上述任何计算设备的处理器上运作。存储器520可以被配置成在操作期间存储在系统500内的信息。可以将存储器520描述为计算机可读存储介质。在一些示例中,存储器520是暂时性存储器,意味着存储器520的主要目的不是长期存储。还可以将存储器520描述为易失性存储器,意味着存储器520在关闭计算机时不维持存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其他类型的易失性存储器。在一些示例中,可以使用存储器520来存储程序指令以供处理器510执行。在其他示例中,存储器520可以由运行于系统500上的软件或应用使用来在程序执行期间暂时存储信息。也可以将存储设备530描述为计算机可读存储介质。与存储器520相比,存储设备530可以被配置成存储比存储器520相对更大量的信息。存储设备530可以被进一步配置为对信息进行长期存储。在一些示例中,存储设备530是非易失性存储器组件。与易失性存储器组件相比,无论是否向存储设备530供应电力,非易失性存储器均可以存储数据。非易失性存储设备的示例包括磁硬盘、光盘、软盘、闪存以及其他形式的电可编程存储器(EPROM)或电可擦可编程(EEPROM)存储器。在此描述的技术可以根据如参考图5描述的计算系统500,以数字电子电路、计算机硬件、固件、软件或数字电子电路、计算机硬件、固件、软件的任何组合来实现。例如,任何在此描述的技术可以通过存储在计算机可读存储介质(例如,存储器520和/或存储设备530)中、处理器510可读取来促使处理器510执行本公开的技术的可执行程序指令来实现。在其他示例中,本公开的技术中的部分或全部可以替代或另外通过为特定目的配置的专用硬件来实现,例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)或另一个类似设备。词语“处理器”或“处理电路”一般可以指单独或结合其他逻辑电路的任何前述逻辑电路、或任何其他等价电路。可以在同一设备或单独设备内实现这样的硬件、软件和固件来支持在本公开中描述的各种操作和功能。另外,任何所述单元、模块或组件可以在一起实现或分别被实现为分离但是可共同操作的逻辑器件。将不同特征描述为模块或单元意在强调不同功能方面,并且并不一定暗指这样的模块或单元必须由单独的硬件或软件组件实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件执行、或被集成在共同或单独的硬件或软件组件内。所述特征可以以在可编程系统上可执行的一个或多个计算机程序来有利地实现,该可编程系统包括至少一个可编程处理器,其被耦接以从计算机可读存储介质接收数据和指令,以及向计算机可读存储介质传输数据和指令。计算机程序可以以任何形式的编程语言编写,包括编译或解释语言,并且其可以以任何形式被部署,包括作为独立程序或作为模块、组件、子程序或适于在计算环境中使用的其他单元。上述特征可以在包括下述的计算机系统中实现:后端组件,诸如数据服务器;或中间件组件,诸如应用服务器或因特网服务器;或前端组件,诸如具有图形用户界面或因特网浏览器的客户端计算机;或以上任何组合。系统的组件可以通过诸如通信网络的任何形式或介质的数字数据通信连接。通信网络的示例包括例如LAN、WAN以及形成因特网的计算机和网络。计算机系统可以包括客户端和服务器。诸如上述,客户端和服务器一般相互远离并且典型地通过网络交互。客户端和服务器的关系凭借运行于各个计算机上并且相互具有客户端-服务器关系的计算机程序而产生。已描述了多个实施例。然而,应当理解的是,在不背离本公开的精神和范围的情况下,可以进行各种修改。例如,参考受web应用控制的硬件设备描述了本文档的大部分,但是,根据在此描述的技术,还可以控制其他类型的系统资源。作为另一个示例,在附图中描绘的逻辑流不需要所示的特定顺序或连续顺序,来实现期望结果。另外,可以向所述流程提供其他动作、或可以从所述流程除去动作,以及可以将其他组件添加到所述系统、或从所述系统移除组件。因此,其他实施例在所附权利要求的范围内。
权利要求
1.一种包括指令的计算机可读存储介质,所述指令当被执行时促使一个或多个处理器: 在计算设备的web浏览器内执行web应用; 执行web服务器,所述web服务器具有用于从所述web应用接收超文本传输协议(HTTP)消息的第一接口和用于与所述计算设备的硬件组件通信的第二接口 ; 在所述web应用处,接收影响所述硬件组件的操作的输入; 将影响所述硬件组件的所述操作的HTTP消息从所述web应用传输给所述web服务器;在所述web服务器处,将所述HTTP消息处理成包括关于所述操作的信息的硬件控制消息;以及 将所述硬件控制消息从所述web服务器传输给所述硬件组件以影响所述硬件组件的所述操作。
2.根据权利要求 1所述的计算机可读存储介质,其中所述操作包括对所述硬件组件的状态的请求。
3.根据权利要求2所述的计算机可读存储介质,进一步包括指令,所述指令当被执行时促使所述一个或多个处理器:在所述web服务器处,接收所述硬件组件的所述状态的指/Jn ο
4.根据权利要求2所述的计算机可读存储介质,其中所述HTTP消息包括HTTPGET消肩、O
5.根据权利要求4所述的计算机可读存储介质,其中所述HTTPGET消息在所述web应用和所述web服务器之间保持打开,直到所述web服务器用所述硬件组件的更新状态的指示作出响应或直到所述消息在一段时间之后期满,无论哪个首先发生。
6.根据权利要求1所述的计算机可读存储介质,其中所述操作包括待由所述硬件组件采取的动作。
7.根据权利要求6所述的计算机可读存储介质,其中所述HTTP消息包括HTTPPOST消肩、O
8.根据权利要求7所述的计算机可读存储介质,其中所述HTTPPOST消息包括与所述硬件组件的应用编程接口相对应的命令。
9.根据权利要求8所述的计算机可读存储介质,其中当被执行时促使所述一个或多个处理器将所述HTTP消息处理成硬件控制消息的所述指令包括当被执行时促使所述一个或多个处理器将所述HTTP POST消息中的命令映射到所述硬件组件的所述应用编程接口的指令。
10.一种方法,包括: 在计算设备的web浏览器内执行web应用; 执行资源服务器,所述资源服务器具有用于从所述web应用接收超文本传输协议(HTTP)消息的第一接口和用于与所述计算设备的系统资源通信的第二接口 ; 在所述web应用处,接收影响所述系统资源的操作的输入; 将影响所述系统资源的所述操作的HTTP消息从所述web应用传输给所述资源服务器; 在所述资源服务器处,将所述HTTP消息处理成包括关于所述操作的信息的资源控制消息;以及 将所述资源控制消息从所述资源服务器传输给所述系统资源以影响所述系统资源的所述操作。
11.根据权利要求10所述的方法,其中所述系统资源包括所述计算设备的硬件组件。
12.根据权利要求10所述的方法,其中所述操作包括对所述系统资源的状态的请求。
13.根据权利要求12所述的方法,进一步包括:在所述资源服务器处,接收所述系统资源的所述状态的指示。
14.根据权利要求12所述的方法,其中所述HTTP消息包括HTTPGET消息。
15.根据权利要求14所述的方法,其中所述HTTPGET消息在所述web应用和所述资源服务器之间保持打开,直到所述资源服务器用所述系统资源的更新状态的指示作出响应或直到所述消息在一段时间之后期满,无论哪个首先发生。
16.根据权利要求10所述的方法,其中所述操作包括待由所述系统资源采取的动作。
17.根据权利要求16所述的方法,其中所述HTTP消息包括HTTPPOST消息。
18.根据权利要求17所述的方法,其中所述HTTPPOST消息包括与所述系统资源的应用编程接口相对应的命令。
19.根据权利要求18所述的方法,其中将所述HTTP消息处理成资源控制消息包括将所述HTTP POST消息中的所述命令映射到所述系统资源的所述应用编程接口。
20.—种系统,包括:` 在计算设备的浏览器中可执行的web应用; 资源服务器,所述资源服务器被配置成控制所述计算设备的系统资源,所述资源服务器具有用于从所述web应用接收超文本传输协议(HTTP)消息的第一接口和用于与所述系统资源通信的第二接口 ;以及 用于通过所述资源服务器使用所述web应用来控制所述系统资源的装置。
全文摘要
本文档的主题可以在包括在计算设备的web浏览器内执行web应用的方法等中实现。该方法还包括执行资源服务器,其带有用于从web应用接收HTTP消息的接口和用于与计算设备的系统资源通信的接口。该方法进一步包括在web应用处接收影响系统资源的操作的输入。该方法还包括将影响系统资源的操作的HTTP消息从web应用传输给资源服务器。该方法进一步包括将该HTTP消息处理成包括关于该操作的信息的资源控制消息。该方法还包括将该资源控制消息从资源服务器传输给该系统资源以影响该系统资源的操作。
文档编号G06F17/30GK103168301SQ201180048200
公开日2013年6月19日 申请日期2011年8月1日 优先权日2010年8月10日
发明者罗伯特·约翰·克勒格尔, 布赖恩·约恩格 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1