CN106664307B - 硬件资源访问系统和技术 - Google Patents
硬件资源访问系统和技术 Download PDFInfo
- Publication number
- CN106664307B CN106664307B CN201580045706.2A CN201580045706A CN106664307B CN 106664307 B CN106664307 B CN 106664307B CN 201580045706 A CN201580045706 A CN 201580045706A CN 106664307 B CN106664307 B CN 106664307B
- Authority
- CN
- China
- Prior art keywords
- application
- pairing
- computing device
- request
- token
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
- G06F21/335—User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Telephonic Communication Services (AREA)
Abstract
在此公开了用于硬件资源访问的系统和技术。在一些实施例中,一种装置可以通过无状态协议消息从应用程序处接收用于与远离所述装置的计算设备的硬件资源进行配对的请求。所述装置可以通过无状态协议消息向所述计算设备提供所述应用程序和所述硬件资源的标识符,并且可以通过无状态协议消息从所述计算设备接收配对许可。响应于接收到所述配对许可,所述装置可以生成配对令牌,所述配对令牌可以由所述应用程序用来将所述应用程序与所述硬件资源进行配对。可公开和/或要求保护其他实施例。
Description
相关申请
本申请要求2014年9月26日提交的题为“HARDWARE RESOURCE ACCESS SYSTEMSAND TECHNIQUES(硬件资源访问系统和技术)”的美国申请号14/497,581的权益。
技术领域
本公开的实施例总体上涉及计算设备领域,并且更具体地涉及硬件资源访问。
背景技术
许多计算设备包括支持计算设备的运行的硬件资源,比如传感器和存储器设备。对这些硬件资源的访问通常受私有协议的控制或被手动地配置为企业设备组的一部分。
附图说明
结合附图,借助于以下详细描述将很容易理解实施例。为了方便本描述,相同的参考标号指代相同的结构元件。在附图的各图中通过举例而非通过限制的方式来展示实施例。
图1是根据各实施例的资源访问管理系统的框图。
图2是根据各实施例的、可以包括在图1的资源访问管理系统中的反射器的框图。
图3是根据各实施例的、可以包括在图1的资源访问管理系统中的能力代理的框图。
图4是根据各实施例的用于调节与硬件资源的配对的过程的流程图。
图5是根据各实施例的用于调节对硬件资源的访问的过程的流程图。
图6和图7是根据各实施例的、图1的用于调节应用程序于硬件资源之间的配对的资源访问管理系统的部件之间的各信号交换的信号流程图。
图8是根据各实施例的、图1的用于交换硬件资源元数据的资源访问管理系统的部件之间的各信号交换的信号流程图。
图9至图10是根据各实施例的、图1的用于调节应用程序对硬件资源的访问的资源访问管理系统的部件之间的各信号交换的信号流程图。
图11是可以用于实践在此所公开的各实施例的示例计算设备的框图。
具体实施方式
在一些实施例中,一种装置可以通过无状态协议消息(例如,表述性状态转移(REST)调用)从应用程序处接收用于与远离所述装置的计算设备的硬件资源进行配对的请求。所述装置可以通过无状态协议消息向所述计算设备提供所述应用程序和所述硬件资源的标识符,并且可以通过无状态协议消息从所述计算设备接收配对许可。响应于接收到所述配对许可,所述装置可以生成配对令牌,所述配对令牌可以由所述应用程序用来将所述应用程序与所述硬件资源进行配对。如在此所使用的,“配对”可以指以下过程:通过该过程,应用程序可以被授权访问硬件资源,并且可以与硬件对所述硬件资源的访问动作分开。
一些实施例中,一种装置可以通过无状态协议消息从计算设备接收请求数据。所述请求可以标识所述装置的硬件资源和应用程序,所述应用程序已经提供了用于与所述硬件资源配对的配对请求。响应于接收到所述请求数据,所述装置可以通过无状态协议消息向所述计算设备提供对所述配对请求的许可或对所述配对请求的拒绝。所述装置还可以通过无状态协议消息从所述应用程序接收对所述硬件资源进行访问的访问请求。所述访问请求可以包括配对令牌,所述配对令牌是由所述计算设备响应于所述计算设备接收到对所述配对请求的许可而生成并提供给所述应用程序的。所述装置可以使所述令牌生效或无效,并且响应于使所述令牌生效或无效(例如,通过无状态协议消息,比如REST调用)而从所述硬件资源提供数据以便提供给所述应用程序。
在此所公开的实施例可以特别有利于云环境下的应用程序,比如其中硬件作为服务被提供的那些环境。如上文所表明的,在此所公开的实施例中的许多在通信过程中可以利用REST协议。在REST协议中,可以使用统一资源标识符来讨论资源(比如硬件资源),并且标准命令比如GET(获得)、POST(投寄)、PUT(推放)、和DELETE(删除)可以用于与这些资源交互。这可以提供统一接口,通过所述统一接口,许多不同类型的应用程序可以访问许多不同类型的资源。对REST调用进行处理所需的全部信息可以包括在REST调用中,在这个意义上,所述REST协议可以称为“无状态”协议。如在此所使用的,术语“无状态协议消息”可以指根据无状态通信协议规定格式的消息,从而使得接收设备对所述无状态协议消息进行处理所需的全部信息包括在所述无状态协议消息中。本领域技术人员将理解的是,在此仅出于示例性目的讨论REST,并且使用HTTP、XML或其他传输或标记语言的其他无状态协议消息可以用于实现所公开的实施例。在合适的时候,还可以适当地修改有状态协议(比如SOAP),以便用于在此所公开的实施例。
使用统一接口来管理对硬件资源的访问可以使得开发者能够以之前不可实现的方式提供这种访问。例如,许多常规设备利用软件环境或栈(例如,专有操作系统),其中,应用程序(本地的和/或远程的)不可能访问某些硬件资源。在一些实施例中,这种对访问的限制由软件栈的开发者施加,开发者可能简单地未开发任何可以发射这种访问的适当通路。例如,一些二合一系统可以具有传感器,所述传感器可以判断所述系统处于平板模式还是台式模式。然而,所述传感器所生成的数据不可用于标准操作环境下的应用程序,因此应用程序不能基于当前模式改变用户体验。在另一示例中,用户可以具有不包括全球定位系统(GPS)接收器的膝上计算机,但所述用户可以具有带有这种接收器的智能电话。常规地,所述用户不能够从其膝上计算机访问其智能电话内的GPS接收器。
在此所公开的各个实施例可以使用一直存在于计算环境中的标准联网通道来访问此类资源。在具体实施例中,硬件资源可以作为可REST的服务或另一无状态通信协议的服务公开。如果到达硬件资源的本地路径可用,可以在本地进行REST调用或其他无状态协议消息。否则,远程部件(例如,下文参照图1所讨论的远程计算设备102)可以将请求路由至正确位置(或者本地地或者在另一计算设备上)并且还可以被配置成用于在多设备通信的情况下建立设备到设备的通道。
在此所公开的各实施例可以使得应用程序能够访问有用的硬件功能,并且可以使得开发者更容易考虑到并利用这种访问。此外,在此所公开的各实施例提供公共协议,许多不同类型的应用程序可以借助所述公共协议访问许多不同类型的硬件资源,与现有的高度专有系统不同。
在以下详细描述中,参考形成其一部分并且通过可实践的说明实施例示出的附图,其中,相同的标号指示相同的部件。应当理解,可以在不脱离本公开的范围的情况下利用其他实施例并且可以进行结构或逻辑上的改变。
可以采用对理解所公开的主题最有帮助的方式来将各种操作依次描述为多个分立动作或操作。然而,描述的顺序不应被解释为暗示这些操作一定依赖于顺序。具体地,可以不按所呈现的顺序来执行这些操作。可以按与所描述的实施例不同的顺序来执行所描述的操作。可以执行各种附加的操作和/或可以在附加实施例中省略所描述的操作。
为了本公开的目的,短语“A和/或B”是指(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。本说明可能使用短语“在实施例中(in an embodiment)”或“在多个实施例中(in embodiments)”,这些短语可以各自是指相同或不同的实施例中的一个或多个。此外,如关于本公开的实施例使用的术语“包括(comprising)”、“包括(including)”、“具有(having)”等是同义的。
如在本文中所使用的,术语“逻辑”可以指代是包括执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享、专用或组)、和/或存储器(共享、专用或组)、组合逻辑电路、和/或提供所描述的功能的其他适当硬件部件或者作为其中的一部分。在此所公开的逻辑和计算设备中的任何一个可以包括或可以访问存储设备,以便存储用于提供所述功能的任何适当数据或指令。
图1是根据各实施例的资源访问管理系统100的框图。资源访问管理系统100可以包括计算设备104、计算设备106和远程计算设备102。远程计算设备102可以远离计算设备104和计算设备106两者。虽然图1仅展示了两个彼此通信并与远程计算设备102通信的计算设备104和106,资源访问管理系统100可以包括以任何组合彼此通信并与远程计算设备102通信的、被以类似于在此所述的计算设备104和106的方式配置的任何数量的计算设备。
下面参照其中计算设备104的应用程序访问计算设备106的硬件资源的示例用例、以及其中计算设备104的应用程序访问计算设备104的硬件资源的用例描述了资源访问管理系统100的操作。如在此所使用的,应用程序可以被说成:当所述应用程序控制硬件资源的操作时或当所述应用程序接收所述硬件资源所生成的数据时,“访问”硬件资源。然而,这仅仅是为了方便说明,并且根据在此所公开的技术(例如,被描述为由计算设备104执行的那些技术)中的任何一种,计算设备106可以访问其他计算设备(例如,计算设备104)的硬件资源。另外,以下讨论将聚焦于计算设备104的各部件,但可以类似地配置计算设备106的类似部件。
计算设备104可以包括硬件132。硬件132可以包括任何计算设备硬件,比如下面参照图11所讨论的硬件中的任何一种。硬件132可以包括硬件资源134,在计算设备104(或其他计算设备,比如计算设备106)上执行的应用程序可以请求访问所述硬件资源。这种硬件资源134的示例可以包括传感器、用于将媒体文件从一种格式转换成另一种格式的转码设备、成像设备(比如3D相机)、音频记录设备、定位设备(比如全球定位系统(GPS)接收器)、显示设备、机器人设备、一次性密码能力(例如,根据美国加利福尼亚州圣克拉拉市的因特尔公司(Intel Corporation,Santa Clara,CA)的身份保护技术)、感知计算能力(例如,根据美国加利福尼亚州圣克拉拉市的因特尔公司的实感技术),但这些仅为示例,并且可以根据在此所公开的实施例管理对任何适当硬件资源的访问。另外,虽然硬件资源134可以被单数地提及,这仅是为了方便讨论,并且计算设备104可以包括可以被授权访问的两个或更多个硬件资源。硬件142可以根据硬件132的实施例中的任何一个。
计算设备104的硬件132可以支持操作系统(OS)126、应用程序122、和联网应用程序编程接口(API)130的运行。OS 126可以是任何适当OS,比如基于UNIX的OS、移动设备OS、膝上计算机或平板OS、桌面计算机OS、或服务器OS。应用程序122可以在计算设备104上执行(例如,使用硬件132中所包括的的处理器)。在一些实施例中,应用程序122可以在OS 126内执行,而在其他实施例中,应用程序122可以在OS 126外执行。联网API 130可以充当OS 126与硬件132之间的接口,和/或充当应用程序122与硬件132之间的接口。联网API 132还可以便于计算设备104与计算设备106之间通过远程计算设备102(例如,通过流量服务器120,如下文所讨论的)的通信。联网API 150可以根据联网API 130的实施例中的任何一个,并且OS136可以根据OS 126的实施例中的任何一个。
在一些实施例中,应用程序122可以包括或可以访问软件开发工具包(SDK)124。所述SDK 124可以是预定指令的封装包,所述预定指令使得开发者更容易对应用程序122进行编程从而使用资源访问管理系统100的能力。在一些实施例中,SDK 124可以支持多种编程语言。SDK 124可以特定于一种或多种具体硬件资源(例如,GPS设备或相机),并且可以辅助开发者配置应用程序122使用在此所公开的技术访问这些类型的硬件资源。例如,如果开发者期望配置应用程序122访问GPS接收器,SDK 124可以提供关于具体GPS接收器能力的语法(例如,纬度、精度、和准确度格式),开发者可以使用所述语法更轻易地访问和利用来自GPS接收器的数据。在一些实施例中,SDK 124可以包括预定指令,开发者可以使用所述预定指令使应用程序122能够检测应用程序122与期望硬件资源之间的“最佳”通路(例如,判断本地或远程通路是否最高效)。SDK 148可以根据SDK 124的实施例中的任何一个。
硬件132还可以支持能力代理128的运行。在一些实施例中,能力代理128可以被分区或另外与计算设备104中的OS 126隔开。例如,能力代理128可以被嵌入硬件132并与OS126隔离。根据在此所公开的实施例,能力代理128可以耦联至联网API 130和硬件资源134,并且可以辅助调节对硬件资源134和/或堆其他计算设备的硬件资源(例如,计算设备106的硬件资源144)的访问。例如,能力代理128可以被配置成用于(例如,通过无状态协议消息,比如REST调用)接收标识具体硬件资源134和已经请求与所述具体硬件资源134配对的应用程序(例如,应用程序122或应用程序146)的请求数据。响应于接收到所述请求数据,能力代理128可以被配置成用于提供(例如,通过无状态协议消息,比如REST调用)对所述配对请求的许可或对所述配对请求的拒绝。在另一示例中,能力代理128可以被配置成用于(例如,通过无状态协议消息,比如REST调用)从应用程序(例如,应用程序122或应用程序146)接收用于访问具体硬件资源134的请求,并且对配备有访问请求的配对令牌进行评估。如果能力代理128使所述配对令牌生效,能力代理128可以被配置成用于提供(例如,通过无状态协议消息,比如REST调用)来自硬件资源134的数据以便提供给所述应用程序(由此允许访问硬件资源)。
如下面进一步详细讨论的,能力代理128可以被配置成用于以诸多方式中的任意一种使配对令牌生效。例如,在请求访问硬件资源134的应用程序打算位于计算设备104的本地的实施例中,如果应用程序的IP地址与计算设备104的IP地址匹配,能力代理128可以被配置成用于使所述配对令牌生效(并且,否则使所述配对令牌无效)。在一些实施例中,反射器116可以将此IP地址信息提供给能力代理128。在一些实施例中,如果配对令牌包括计算设备104的正确标识符,能力代理128可以被配置成用于使配对令牌生效(并且否则使配对令牌无效)。以下参照图3讨论能力代理128的各实施例。
当计算设备104的应用程序122期望访问计算设备104的硬件资源134时,可以通过能力代理128执行对此访问的管理。应用程序122可以通过诸多方式中的任意一种与能力代理128通信。在一些实施例中,应用程序122可以与联网API 130通信,所述联网API可以进而通过设备到设备的通路与能力代理128通信。可以使用的设备到设备的通路的一个示例可以是网络实时通信(WebRTC)通路。在一些实施例中,应用程序122可以与联网API 130通信,联网API可以进而与远程计算设备102的反射器116通信(例如,通过API管理网关114,如所示的)。以下参照图2讨论反射器116的各实施例。联网API 130与API管理网关114之间的通信可以通过云通路或设备到设备的云通路(比如,REST通路)发生。反射器116可以进而与能力代理138通信(例如,通过流量服务器120)。流量服务器120与能力代理138之间的通信可以通过云通路或设备到设备的云通路(比如,可扩展通讯和表示协议(XMPP)通路)发生。
当计算设备104的应用程序122期望访问计算设备106的硬件资源144时,可以通过能力代理138执行对此访问的本地管理。在一些实施例中,应用程序122可以通过联网API130与能力代理138通信,所述联网API可以进而通过本地通路与能力代理138通信。一旦能力代理138从应用程序122接收到的访问相关数据,能力代理138可以与反射器116通信从而管理对具体硬件资源144的访问。在一些实施例中,能力代理138可以通过联网API 130和API管理网关114与反射器116通信。这种通信可以通过云通路或设备到设备的云通路(比如,REST通路)发生。在一些实施例中,能力代理128可以通过流量服务器120与反射器116通信。这种通信可以通过云通路(比如,XMPP通路)发生。
在一些实施例中,能力代理128可以访问硬件资源134并且可以将硬件资源134作为可REST的服务或另一无状态通信协议的服务公开。能力代理128可以被实例化为常规计算设备中的逻辑(例如,处理器可访问的或嵌入式专用硬件中实现的存储器中的已存储指令)。如下面进一步详细讨论的,能力代理128可以保持与远程计算设备102(例如,反射器116)的连接,并且可以使用此连接为来自不能直接到达能力代理128(例如,由于防火墙问题、网络地址转换(NAT)问题、代理问题等)的应用程序的请求服务。
能力代理128可以在计算设备104的任何适当水平实现。例如,在一些实施例中,能力代理128可以包括在计算设备104的内核应用程序中(并且由此可以具有访问硬件资源的特殊权限)。在一些实施例中,能力代理128可以包括在具有已编程处理器的网络接口卡中,所述已编程处理器对计算设备104所接收和传输的所有数据包进行监测。在这种实施例中,能力代理128可以被配置成用于根据在此所公开的技术对数据包进行路由。在一些实施例中,能力代理128可以包括在计算设备104的管理引擎中。管理引擎可以包括在计算设备104上运行的处理器,该处理器比(这些)主处理器具有更多的硬件访问权限并且可以管理键盘、各硬件驱动器、电源、和其他必要硬件功能。
如上文所表明的,远程计算设备102可以包括反射器116。反射器116可以被实现为一个或多个计算设备,并且可以被配置成用于在资源访问管理系统100中辅助对硬件资源的配对和管理。例如,反射器116可以被配置成用于(例如,通过无状态协议消息,比如REST调用)从应用程序(例如,应用程序122或应用程序146)接收请求,用于与远离反射器116的计算设备的硬件资源(例如,分别为计算设备104和106的硬件资源134和144中的硬件资源)配对。反射器116可以(例如,通过无状态协议消息,比如REST调用)向所述计算设备提供所述应用程序和所述硬件资源的标识符,并且可以(例如,通过无状态协议消息,比如REST调用)从所述计算设备接收配对许可。响应于接收到所述配对许可,反射器116可以生成配对令牌,所述配对令牌可以由所述应用程序用来与所述硬件资源进行配对。
反射器116可以被配置成用于生成多个不同类型的令牌以用于各种应用程序。例如,反射器116可以被配置成用于:响应于从应用程序接收到配对请求,生成临时令牌以便提供给此应用程序(例如,应用程序122或应用程序146)。所述临时令牌可以由所述应用程序提供(例如,通过无状态协议消息,比如REST调用)给与硬件资源相关联的硬件设备,期望与所述硬件资源配对。响应于接收到所述临时令牌,所述计算设备可以针对上文所讨论的请求数据向所述反射器116发送(例如,通过无状态协议消息,比如REST调用)请求,包括所述临时令牌。在一些实施例中,反射器116可以被配置成用于要求所述应用程序为反射器116提供临时令牌(例如,通过无状态协议消息,比如REST调用),并且要求在将配对令牌提供给应用程序之前接收到配对许可。反射器116还可以被配置成用于将其他的适当信息提供给资源访问管理系统100的各部件。例如,在一些实施例中,反射器116可以被配置成用于向计算设备提供(例如,通过无状态协议消息,比如REST调用)所述计算设备的IP地址
如以上所指出的,并入下文另外详细讨论的,在一些实施例中,反射器116可以被配置成用于将配对和访问请求从应用程序路由至能力代理。当应用程序和硬件资源保留在同一计算设备上时和/或当应用程序和硬件资源保留在不同计算设备上时,反射器116可以被配置成这样做。在一些实施例中,每当应用程序于管理硬件资源的能力代理之间的直接路径不可用时,反射器116可以提供此路由功能。在一些实施例中,反射器116可以提供计算设备上不可用的硬件能力,请求是从该计算设备下发的。例如,反射器116可以在此功能在另一计算设备上不可用时生成一次性密码,并且在一些实施例中可以仿真基于硬件的一次性密码生成技术。以下参照图2讨论反射器116的各实施例。
如上文所表明的,远程计算设备102可以包括流量服务器120。流量服务器120可以被配置成用于在资源访问管理系统100的各部件之间路由信号。在一些实施例中,流量服务器120可以是XMPP服务器,并且可以提供基于可扩展标记语言(XML)的协议进行消息传递。在一些实施例中,流量服务器120可以支持任何适当的流量传输机制,比如尤其排队、websocket(可以通过传输控制协议(TCP)连接提供全双工通信)、和WebRTC。
如上文所表明的,远程计算设备102可以包括API管理网关114。API管理网关114在资源访问管理系统100中可以用于管理API。API管理网关114可以采取常规API管理网关的形式,并因此不做进一步详细讨论。
远程计算设备102可以包括诸多附加部件用来支持资源访问管理系统100的运行。例如,在一些实施例中,远程计算设备102可以包括开发者入口108。开发者入口108可以被实现为一个或多个计算设备,并且可以与API管理网关114耦合。开发者入口108可以被配置成用于向应用程序开发者提供API密钥以用于所述应用程序。所述API密钥可以标识应用程序,并且在应用程序提供配对请求时可以被资源访问管理系统100的各部件(例如,被反射器116)用来标识应用程序(并因而可以用来使应用程序的身份生效)。在一些实施例中,API密钥可以用于标识应用程序,以便针对资源访问管理系统100的使用要求应用程序开发者支付(例如,通过对下发给相关联的API密钥的应用程序的令牌数进行计数)。
在一些实施例中,远程计算设备102可以包括设备分析器110。设备分析器110可以被实现为一个或多个计算设备,并且可以耦合至反射器116。设备分析器可以被配置成用于允许经授权实体(例如,所有者,如下文参照图6和图7所讨论的)管理对经授权实体所负责的一个或多个计算设备的访问。例如,负责具体计算设备的实体可以访问设备分析器110,从而允许资源访问管理系统100的选定的用户访问计算设备的各硬件资源。在一些实施例中,经授权实体可以将设置存储在设备分析器110中,从而使得当经授权实体之前曾经手动地许可具体用户访问具体硬件资源时设备分析器110被配置成用于自动地许可具体用户访问所述具体硬件资源。可以使用登录名和密码、或任何其他适当机制为经授权实体授予证书。设备分析器110还可以被配置成用于管理访问许可的撤销,并且可以将所有硬件资源的列表存储至资源访问管理系统100中可用的各计算设备。
因而,在一些实施例中,设备分析器110可以提供中央储存库,所述中央储存库用于记录硬件资源并存储对此类资源的访问许可。可以通过诸多方式中的任意一种使用设备分析器110,如上文所表明的。例如,计算设备的持有者可以登录设备分析器110并且给予朋友的智能电话访问存储设备或计算设备的其他硬件资源的许可。
在一些实施例中,远程计算设备102可以包括身份代理112。身份代理112可以被实现为一个或多个计算设备,并且可以与反射器116耦合并与第三方身份平台(未示出)耦合。身份代理112可以被配置成用于管理用户证书并执行其他认证功能,用于调节各用户对资源访问管理系统100的使用。例如,在一些实施例中,身份代理112可以允许用户使用来自另一网络服务的登录信息(例如,社交媒体登录信息、电子邮件登录信息等)登录设备分析器110。在一些实施例中,设备分析器110和身份代理112可以联合起来维持各计算设备与其持有者之间的关系,并管理授权和许可的撤销。
图2是根据各实施例的、可以包括在图1的资源访问管理系统100的远程计算设备102中的反射器116的框图。
反射器116可以包括配对请求接收逻辑202。配对请求接收逻辑202可以被配置成用于从应用程序(例如,应用程序122或应用程序146)接收配对请求。配对请求可以指定应用程序请求与其配对的具体硬件资源(例如,硬件资源134或硬件资源144)。配对请求可以通过包括具体硬件资源的标识符(例如,根据已知架构生成的统一资源名称标识符,或专有标识符)来指定此硬件资源。作为配对请求的主题的硬件资源可以远离反射器116(例如,当硬件资源是硬件资源134或硬件资源144时)。配对请求可以包括用于辅助反射器116和/或与所请求的硬件资源相关联的计算设备(例如,计算设备的能力代理)确定是否许可配对请求的任何其他适当信息。在一些实施例中,配对请求还可以包括提供配对请求的应用程序的标识符,或者可以被配对请求接收逻辑202用来识别应用程序的信息。在一些实施例中,可以通过无状态协议消息(比如,REST调用)从应用程序向配对请求接收逻辑202提供配对请求。
反射器116可以包括中间逻辑204。中间逻辑204可以耦合至配对请求接收逻辑202,并且可以被配置成用于将请求数据提供给与所请求的硬件资源相关联的计算设备(例如,提供给计算设备的能力代理)。请求数据可以包括硬件资源的标识符和应用程序的标识符。如在此所使用的,“硬件资源的标识符”可以指定具体硬件设备(例如传感器)或具有多种能力的硬件设备的具体能力(例如,沿着多轴加速度计所生成的第一轴线的加速度测量结果)。请求数据可以包括用于辅助相关联的计算设备(例如,计算设备的能力代理)确定是否许可配对请求的任何其他适当信息。例如,在一些实施例中,请求数据可以包括应用程序的IP地址。在一些实施例中,中间逻辑204可以被配置成用于向相关联的计算设备提供所述计算设备的IP地址(例如,与请求数据一起或与请求数据分开)。在一些实施例中,可以通过无状态协议消息(比如,REST调用)向相关联的计算设备提供请求数据。
中间逻辑204还可以被配置成用于从相关联的计算设备(例如,从计算设备的能力代理)接收配对许可或配对拒绝。所述配对许可或配对拒绝可以由相关联的计算设备(例如,由计算设备的能力代理)基于中间逻辑204提供给相关联的计算设备的请求数据的至少一部分生成。在一些实施例中,可以通过无状态协议消息(比如,REST调用)向中间逻辑204提供配对许可或配对拒绝。
反射器116可以包括令牌生成逻辑206。令牌生成逻辑206可以与中间逻辑204耦合并且可以被配置成用于:响应于从相关联的计算设备(例如,从计算设备的能力代理)接收到配对许可,生成配对令牌以便提供给应用程序。如下文进一步详细讨论的,所述应用程序可以接收配对令牌并且可以将配对令牌提供给相关联的计算设备(例如,提供给计算设备的能力代理),从而与硬件资源配对。在一些实施例中,可以通过无状态协议消息(比如,REST调用)将配对令牌提供给应用程序。在一些实施例中,应用程序可以通过无状态协议消息(比如,REST调用)向相关联的计算设备提供配对令牌。
在一些实施例中,令牌生成逻辑206可以被配置成用于生成配对令牌以外的令牌。例如,令牌生成逻辑206可以耦合至配对请求接收逻辑202,并且可以被配置成用于:响应于从应用程序接收到配对请求,生成临时令牌以便提供给应用程序。如下文进一步详细讨论的,所述应用程序可以接收临时令牌并且可以将临时令牌提供给相关联的计算设备(例如,提供给计算设备的能力代理),从而触发从相关联的计算设备到中间逻辑204的针对请求数据的请求。在一些实施例中,从计算设备到中间逻辑204的针对请求数据的请求可以包括由应用程序提供给相关联的计算设备的临时令牌。在一些实施例中,令牌生成逻辑216可以被配置成用于通过无状态协议消息(比如,REST调用)将临时令牌提供给应用程序。在一些实施例中,应用程序可以通过无状态协议消息(比如,REST调用)向相关联的计算设备提供临时令牌。
在一些实施例中,令牌生成逻辑206可以被配置成不生成配对令牌,除非反射器116从应用程序接收到了临时令牌并且中间逻辑从相关联的计算设备(例如,从计算设备的能力代理)接收到了配对许可。在一些此类实施例中,一旦满足这些条件,令牌生成逻辑206可以将配对令牌提供给应用程序(例如,通过无状态协议消息,比如REST调用)。在一些实施例中,应用程序可以通过无状态协议消息(比如,REST调用)向反射器116(例如,配对请求接收逻辑202)提供临时令牌。
图3是根据各实施例的、可以包括在图1的资源访问管理系统100的计算设备104中的能力代理128的框图。如上文参照图1所提及的,虽然以下的讨论聚焦于当另一计算设备期望访问硬件资源134时反射器116与能力代理128之间的通信,这仅仅是为了便于说明,并且能力代理138(以及其硬件资源由资源访问管理系统100管理的其他计算设备中所包括的能力代理)中可以包括类似逻辑。
能力代理128可以包括配对请求评估逻辑302。配对请求评估逻辑302可以被配置成用于从远程计算设备102的反射器116接收请求数据。如上文参照反射器116的中间逻辑204所讨论的,请求数据可以包括计算设备104的硬件资源134的标识符。请求数据可以包括应用程序(例如,应用程序122或应用程序146)的标识符,所述应用程序已经向反射器116提供了用于与硬件资源配对的配对请求。在一些实施例中,配对请求评估逻辑302可以通过无状态协议消息(比如,REST调用)接收请求数据。
配对请求评估逻辑302还可以被配置成用于:响应于接收到请求数据,向反射器116提供对配对请求的许可或拒绝。在一些实施例中,配对请求评估逻辑302可以被配置成用于通过无状态协议消息(比如,REST调用)将所述许可或拒绝提供给反射器116。
能力代理128可以包括令牌评估逻辑304。令牌评估逻辑304可以被配置成用于从所述应用程序接收对所述硬件资源134进行访问的访问请求。所述访问请求可以包括配对令牌,所述配对令牌是响应于反射器116接收到(配对请求评估逻辑302所提供的)对所述配对请求的许可而由反射器116生成并提供给所述应用程序的。在一些实施例中,令牌评估逻辑304可以被配置成用于通过无状态协议消息(比如,REST调用)接收访问请求。
令牌评估逻辑304还可以被配置成用于使接收到的配对令牌生效或无效。例如,在请求访问硬件资源134的应用程序打算位于计算设备104的本地的实施例中,如果应用程序的IP地址与计算设备104的IP地址匹配,令牌评估逻辑304可以被配置成用于使所述配对令牌生效(并且,否则使所述配对令牌无效)。在一些实施例中,如果配对令牌包括计算设备104的正确标识符,令牌评估逻辑304可以被配置成用于使配对令牌生效(并且否则使配对令牌无效)。
能力代理128可以包括资源管理逻辑306。资源管理逻辑306可以与令牌评估逻辑304耦合并且可以被配置成用于:响应于令牌评估逻辑304使配对令牌生效而向应用程序提供对硬件资源134的访问。提供对硬件资源134的访问可以例如包括从硬件资源提供数据以便提供给应用程序。在一些此类实施例中,资源管理逻辑306可以被配置成用于通过无状态协议消息(比如,REST调用)将来自硬件资源134的数据提供给应用程序。
在一些实施例中,能力代理128可以具有可插拔的体系结构。例如,能力代理128可以包括能力插件,可以动态地安装这些能力插件。这些可以由任何适当的来源(例如,硬件或平台制造商、原始设备制造商、第三方等)开发,并且各自可以提供对具体一种或多种功能(例如,GPS功能、一次性密码功能等)的访问。
图4是根据各实施例的用于调节与硬件资源的配对的过程的流程图400。为了便于说明,下文参照流程图400所讨论的操作大部分可以被描述为由资源访问管理系统100的反射器116执行,以便调节应用程序122与计算设备104的硬件资源134之间的配对。然而,任何一个或多个适当计算设备可以相对于任何适当操作和硬件资源执行这些操作。具体地,以下讨论可以适用于多个实施例,在这些实施例中,反射器116执行流程图500的操作来调节应用程序122对计算设备106的硬件资源144的访问。下文参照流程图400所讨论的操作可以采取在此所公开的实施例中的任何一个的形式(如上文参照图1和图3所讨论的)。
流程图400可以开始于402,其中,反射器116(例如,配对请求接收逻辑202)可以判断是否已经从应用程序122接收到了用于与硬件资源134配对的配对请求。在一些实施例中,可以通过无状态协议消息(比如,REST调用)接收所述配对请求。如果反射器116在402确定了尚未接收到配对请求,则该过程可以结束。
如果反射器116在402确定了已经接收到配对请求,反射器116(例如,令牌生成逻辑206)可以前进至404并且可以生成并提供临时令牌以便提供给应用程序122。在一些实施例中,可以通过无状态协议消息(比如,REST调用)提供临时令牌。应用程序122可以将所示临时令牌提供给计算设备104(例如,提供给能力代理128),从而触发计算设备104向反射器116提供(例如,通过无状态协议消息,比如REST调用)针对请求数据的请求。在一些实施例中,所述针对请求数据的请求可以包括临时令牌。因而,在406,反射器116(例如,中间逻辑204)可以确定是否从计算设备104(例如,从能力代理128)接收到了临时令牌作为针对请求数据的请求的一部分。如果反射器116在406确定了尚未接收到针对请求数据的请求,则该过程可以结束。如果反射器116在406确定了已经接收到了临时令牌作为针对请求数据的请求的一部分,反射器116可以前进至408。在一些实施例中,反射器116可以不被配置成用于生成和接收临时令牌,并因此上文参照404和406所描述的操作可以不执行。
在408,反射器116(例如,中间逻辑204)可以向计算设备102提供请求数据。在一些实施例中,可以通过无状态协议消息(比如,REST调用)提供请求数据。如上所述,请求数据可以包括应用程序122的标识符和硬件资源134的标识符。
在410,反射器116(例如,中间逻辑204)可以确定是否从计算设备104接收到了配对许可,许可应用程序122与硬件资源134之间的配对请求。在一些实施例中,可以通过无状态协议消息(比如,REST调用)接收配对许可的指示符。如果反射器116在410确定了尚未接收到配对许可(例如,当已经接收到配对拒绝时,或当计算设备104未对请求数据做出相应时),则该过程可以结束。
如果反射器116在410确定了已经接收到配对许可,反射器116(例如,令牌生成逻辑206)可以前进至412并且判断是否已经从应用程序122接收到了临时令牌。在一些实施例中,可以通过无状态协议消息(比如,REST调用)接收临时令牌。如果反射器116在412确定了尚未从应用程序122接收到临时令牌,则该过程可以结束。
如果反射器116在412确定了已经从应用程序122接收到了临时令牌,反射器116(例如,令牌生成逻辑206)可以前进至414并生成配对令牌以便提供给应用程序122用于应用程序122与硬件资源134的配对。在一些实施例中,令牌生成逻辑206可以(例如,通过无状态协议消息,比如REST调用)将临时令牌提供给应用程序122。所述过程然后可以结束。在其中反射器116未被配置成用于生成或使用临时令牌的实施例中,上文参照412所讨论的操作可以不执行。
图5是根据各实施例的用于调节对硬件资源的访问的方法的流程图500。为了便于说明,下文参照流程图500所讨论的操作大部分可以被描述为:由与反射器116通信的计算设备104的能力代理128执行,以便调节应用程序122对硬件资源134的访问。然而,任何一个或多个适当计算设备可以相对于任何适当操作和硬件资源执行这些操作。具体地,以下讨论可以适用于多个实施例,在这些实施例中,能力代理138执行流程图500的操作来调节应用程序146对硬件资源144的访问。下文参照流程图500所讨论的操作可以采取在此所公开的实施例中的任何一个的形式(如上文参照图1和图3所讨论的)。
流程图500可以开始于502,在此处,能力代理128(例如,配对请求评估逻辑302)可以判断是否已经从反射器116接收到了请求数据。在一些实施例中,可以通过无状态协议消息(比如,REST调用)接收请求数据。如上文所讨论的,请求数据可以包括硬件资源134的标识符和应用程序122的标识符,所述应用程序已经通过提供给反射器116的配对请求(例如,通过无状态协议消息,比如REST调用)请求与硬件资源134配对。在一些实施例中,可以如上文参照图4的402-408所讨论的从反射器116向能力代理128提供请求数据(例如,响应于反射器116从应用程序122接收的配对请求)。
在504,能力代理128(例如,配对请求评估逻辑302)可以判断是否许可配对请求。许可或拒绝可以基于能力代理128可访问的存储设备中所存储的适当标准,比如预定的硬件资源使用政策、对硬件资源的当前需求、做出请求的申请的身份、硬件资源的期望计划、以及用于硬件资源的可用电源、或任何其他适当标准。如果能力代理128在504确定了不许可配对请求,能力代理128(例如,配对请求评估逻辑302)在506可以向反射器116提供拒绝(例如,通过无状态协议消息,比如REST调用),并且该过程然后可以结束。
如果能力代理128在504确定了许可配对请求,能力代理128(例如,配对请求评估逻辑302)在508可以向反射器116提供许可。在一些实施例中,可以通过无状态协议消息(比如,REST调用)提供许可。
在510,能力代理128(例如,令牌评估逻辑304)可以判断是否已从应用程序122接收到了访问请求。在一些实施例中,可以通过无状态协议消息(比如,REST调用)接收所述访问请求。访问请求可以包括由反射器116生成并被提供给应用程序122(例如,根据上文参照图4的414所讨论的操作)的配对令牌。如果能力代理128在510确定了尚未从应用程序122接收到访问请求,则该过程可以结束。
如果能力代理128在510确定了已经从应用程序122接收到了访问请求,能力代理128(例如,令牌评估逻辑304)可以前进至512并判断是否使(510的访问请求中所包括的)配对令牌生效。令牌评估逻辑304可以使用任何其他标准来判断是否使配对令牌生效,比如上文参照图3的令牌评估逻辑304所讨论的标准。如果能力代理128在512确定了不使配对令牌生效,则该过程可以结束。
如果能力代理128在512确定了使配对令牌生效,能力代理128(例如,资源管理逻辑306)可以前进至514并提供来自硬件资源134的数据以便提供给应用程序122。在一些实施例中,可以通过无状态协议消息(比如,REST调用)提供所述数据。在一些实施例中,能力代理128可以将所述数据直接提供给应用程序122。在其他实施例中,能力代理128可以将所述数据提供给反射器116或另一中间计算设备,所述另一中间计算设备然后可以向应用程序122提供数据。所述过程然后可以结束。
图6至图10是使用过程中的资源访问管理系统100的部件之间的各信号交换的示例的信号流程图。图6至图10可以根据上文参照图4和图5所讨论的流程图表现所交换的信号。图6至图10中所描绘的信号被展示未REST信号,但如上文所提及的,在各实施例中可以使用任何适当协议。
图6和图7分别是根据各实施例的、用于调节应用程序于硬件资源之间的配对的资源访问管理系统100的部件之间的各信号交换的信号流程图600和700。为了便于说明,图6和图7中所展示的信号代表当计算设备104的应用程序122期望与计算设备104的硬件资源134配对时可以交换的示例信号。然而,这仅仅是示意性的,并且例如当应用程序122期望与计算设备106的硬件资源144配对时,或当应用程序146期望与硬件资源134或硬件资源144配对时,可以交换类似的信号。
图6和图7包括应用程序122、反射器116、能力代理128、和持有者602之间交换的信号。持有者602可以是与所请求的计算资源相关联的计算设备(例如,计算设备104)的用户或管理员,或者可以是在计算设备104上执行的管理型应用程序或控制应用程序。人或自动化持有者602可以基于任何期望的标准确定是批准配对请求还是拒绝配对请求,比如预定的硬件资源使用政策、对硬件资源的当前需求、做出请求的申请的身份、硬件资源的期望计划、以及用于硬件资源的可用电源、或任何其他适当标准。在某些实施例中,持有者602的功能可以包括在能力代理128中。
图6的信号流交换可以开始于从应用程序122到反射器116的配对请求POST调用。配对请求POST调用可以包括应用程序122的标识符(例如,报文头中的应用程序名(AppName)数据)并且可以包括API密钥(例如,如上文参照开发者入口108所讨论的)。配对请求POST调用的主体可以包括硬件资源134的标识符(例如,主体中的HW资源(HWResource)数据)。
响应于接收到配对请求POST调用,反射器116可以存储配对请求POST调用的数据,下发配对请求标识符(例如,路由票号,RTN),并且可以借助供稍后由应用程序122使用的配对请求标识符对配对请求POST调用做出响应,如下文所讨论的。RTN可以例如是具有预定尺寸(例如,128位数字)或任何其他适当格式的唯一字符串。在一些实施例中,配对请求标识符(例如RTN)可以充当临时令牌,如上文所讨论的。
响应于接收到配对请求标识符,应用程序122可以使用配对请求标识符来启动能力代理128。在一些实施例中,应用程序122可以通过使能力代理128与反射器116建立连接来启动能力代理128。在能力代理128已经与反射器116连接的背景下,应用程序122可以不启动能力代理128。一旦被启动,能力代理128可以向反射器116提供POST调用,识别配对请求标识符并指示能力代理128目前正在处理配对请求(如POST调用的主体中的状态(Status)数据所指示的)。能力代理128还可以向反射器116提供GET调用,识别配对请求标识符,从而获得反射器116所存储的关于配对请求的全部数据(例如,相关联的应用程序的标识符、相关联的硬件资源的标识符等)。
间歇地,在如上文所讨论的提供配对请求POST调用之后,应用程序122可以查询反射器116以检查配对请求的状态。所述状态检查可以采取图6和图7中标记为“x”的信号所指示的形式,并且可以包括向反射器116提供GET调用(包括配对请求标识符)并从反射器116接收指示配对请求的状态(例如,响应的主体中的状态未决(PENDING))的响应。
响应于从能力代理128接收到GET调用(用标记为“6”的信号所表示),反射器116可以用关于配对请求的数据做出响应。此数据可以包括具有配对请求的应用程序122所提供的数据(例如,应用程序名、API密钥、和HW资源)。此数据还可以包括反射器116所生成的数据。例如,反射器116可以确定配对请求所源自的IP地址,并且可以将此信息提供给能力代理128(例如,响应的主体中的appIP)。
如果能力代理128期望附加信息,能力代理128可以从反射器116请求此信息。例如,能力代理128可以向反射器116提供GET调用,从而请求能力代理128本身的IP地址(由标记为“8”的信号所表示)。作为响应,反射器116可以提供能力代理128的IP地址(例如,响应的主体中的cpIP)。能力代理128可以对比应用程序122的IP地址与能力代理128的IP地址来判断这两个IP地址是否相同。
在能力代理128被配置成用于仅允许从在计算设备104上执行的应用程序对硬件资源134的访问的实施例中,这种检测可以确认应用程序122的确在计算设备104上执行,并且可以是继续配对过程的先决条件。如果此对比失败,能力代理128可以向反射器116传递拒绝信号(图6中未示出)。在能力代理128被配置成用于允许从在计算设备104以外的计算设备上执行的应用程序(例如,从应用程序146,该应用程序在计算设备106上执行)访问硬件资源134的实施例中,能力代理128可以不执行此对比,并且因此能力代理128可以不从反射器116请求IP信息。
图6所表示的信号流在图7中继续。如所示的,应用程序122可以执行另一状态检查(如标记为“x”的信号所指示的并入上文所讨论的)。
如果能力代理128确定了应用程序122的IP地址与能力代理128的IP地址匹配(如果需要这种确定的话),能力代理128可以提示持有者602配对请求的许可。此提示可以标识请求配对的应用程序(例如,应用程序122)、与应用程序相关联的计算设备(例如,如果计算设备不同于能力代理128在其上执行的计算设备的话)、所请求的具体硬件资源(例如,硬件资源134)、或602会觉得有助于判断是否许可配对请求的任何其他关于配对请求的信息。所述提示可以采取屏上消息(例如,与计算设备104相关联的显示设备上)、电子消息(例如,被传输至于持有者602相关联的另一设备的文本消息)、纯粹在内部传输至计算设备104并被自动化持有者602用来判断是否许可配对请求的信号。
如果持有者602确定了要拒绝配对请求,持有者602可以向能力代理128提供拒绝信号(未示出)。如果持有者602许可配对请求,持有者602可以向能力代理128提供许可信号。响应于接收到对配对请求的许可,能力代理128可以向反射器116提供POST调用,从而指示配对请求已被许可(例如,主体中的被接受(ACCEPTED)状态)。
POST调用还可以包括能力代理128的标识符(例如,主体中的cpID=GUID数据),当请求访问硬件资源134时,所述标识符可以被反射器116用于生成令牌以供应用程序122使用(如下文参照图8至图10所讨论的)。在一些实施例中,能力代理128的标识符可以唯一地标识资源访问管理系统100内的能力代理128,在这个意义上,它可以是能力代理128的全球唯一标识符。如果令牌是基于能力代理128的标识符所生成的(例如,用这种标识符签名的),能力代理128可能能够判断呈现给能力代理128的令牌是否的确由反射器116提供,这样应用程序122可以访问能力代理128;如果令牌未通过此检查,此令牌会是无效的。在一些实施例中,所述令牌可以具有一组属性和值,以及签名;能力代理128的标识符可以是这些属性之一。在一些实施例中,令牌可以对一次访问或不只一次访问有效。在一些实施例中令牌可以针对具体的时间窗(例如,90分钟或一年)有效,此后它可能无效。在一些实施例中,令牌可以是由反射器116和/或能力代理128可更新的。此令牌截止信息可以被编码在令牌本身中,以供能力代理128用来判断是否使所述令牌生效。反射器116可以然后生成令牌(例如,标记为“14”的操作的RAT)。
当应用程序122接下来执行状态检查(如标记为“15”的信号所指示的)时,反射器116可以通过指示配对请求已被许可(例如,主体内的已接受状态)来做出响应。在接收到状态信息时,应用程序122可以向反射器116提供包括配对请求标识符的GET调用,反射器116可以通过为应用程序122提供令牌(例如,在响应的主体中)来对此调用做出响应。这样可以完成应用程序122与硬件资源134之间的配对。
在配对请求已经被许可之后,应用程序会寻求关于现在正与其配对的硬件资源的附加信息。在一些实施例中,反射器116可以将此信息提供给应用程序。此信息可以采取关于硬件资源的元数据的形式,并且可以被应用程序用来例如使架构今早失败(例如,通过SDK),判断硬件资源是否支持代替池化的一些事件,和/或确定硬件资源的类型。图8是根据各实施例的、图1的用于交换硬件资源元数据的资源访问管理系统100的部件之间的各信号交换的信号流程图800。为了便于说明,图8至10中所展示的信号代表当配对之后计算设备104的应用程序122期望访问计算设备104的硬件资源134时可以交换的示例信号。然而,这仅仅是示意性的,并且例如当应用程序122期望访问计算设备106的硬件资源144时,或当应用程序146期望访问硬件资源134或硬件资源144时,可以交换类似的信号。
如图8中所示,应用程序122可以向反射器116提供GET调用,指明应用程序122期望做出对于能力代理128相关联的硬件资源134(hw_resource)的访问请求(arequest)。在一些实施例中,GET调用可以标识管理对硬件资源134的访问的能力代理128。这种标识可以采取伪标识符的形式,所述伪标识符可以是如上文参照图7中由反射器116生成令牌所讨论的全球唯一标识符。在一些实施例中,伪标识符可以由反射器116在批准配对请求时提供给应用程序122(未示出),并且使用所述伪标识符可以防止对能力代理128的全球唯一标识符的误用。反射器116可以被配置成用于识别伪标识符并判断它与哪个能力代理相关联。在一些实施例中,GET调用可以识别硬件资源的域(domain)。域可以是聚集了相关设备能力的命名空间。例如,“域=传感器”可以聚集计算设备的所有硬件传感器,而“域=安全”可以聚集此计算设备的所有硬件安全能力。
响应于来自应用程序122的GET调用,反射器116可以提供描述硬件资源134的元数据(例如,在主体中)。元数据的示例可以包括架构(例如,描述硬件资源134的配置的可选参数)和IO(例如,输入/输出通信机制的列表,比如“事件”、istream、ostream、iostream等)。
图9至图10分别是根据各实施例的、图1的用于调节应用程序对硬件资源的访问的资源访问管理系统100的部件之间的各信号交换的信号流程图900和1000。如上文所提及的,为了便于说明,图9至10中所展示的信号代表当配对之后计算设备104的应用程序122期望访问计算设备104的硬件资源134时可以交换的示例信号。然而,这仅仅是示意性的,并且例如当应用程序122期望访问计算设备106的硬件资源144时,或当应用程序146期望访问硬件资源134或硬件资源144时,可以交换类似的信号。
具体地,图9是用于通过反射器116和流量服务器120调节应用程序122对硬件资源134的访问的各信号的交换的信号流程图900。应用程序122可以向反射器116提供GET调用,指明应用程序122期望做出对于能力代理128相关联的硬件资源134(hw_resource)的访问请求(arequest),并且应用程序122从硬件资源134请求数据(value)。GET调用可以包括由反射器116提供给应用程序122的令牌(例如,报文头中的RAT),如上文参照图7所讨论的。
在从应用程序122接收到GET调用时,反射器116可以提取应用程序122的IP地址,并将XMPP请求中的所提取的IP地址、令牌、域、和硬件资源134的标识符提供给流量服务器120。作为响应,流量服务器120可以将XMPP转发至能力代理128。总体上,流量服务器120可以负责使用最佳可用协议处理与能力代理128的通信。
在接收到XMPP请求时,能力代理128可以使令牌生效(例如,使用上文所讨论的验证技术中的任意一种、或任何其他适当验证技术),并且如果期望的话,确认应用程序122的IP地址与能力代理128的IP地址匹配(如上文参照图6所讨论的)。如果这些检查失败,能力代理128可以向反射器116提供拒绝信号(例如,通过流量服务器120)(未示出)。
在使令牌生效时,能力代理128可以访问硬件资源134从而生成应用程序122所请求的数据。例如,如果硬件资源134是传感器,能力代理128可以访问传感器并检索传感器所生成的数据以便提供给应用程序122。能力代理128可以响应于来自流量服务器120的XMPP请求向流量服务器120提供数据,并且流量服务器120可以响应于来自反射器116的XMPP请求向反射器116提供数据。反射器116然后进而可以通过向应用程序122提供数据(例如,在主体中)来对初始GET调用做出响应。以这种方式,应用程序122可以访问硬件资源134。
在一些实施例中,一旦实现了配对,应用程序可以访问与其配对的硬件资源,而不经过反射器116和/或流量服务器120。相反,在一些实施例中,应用程序可以直接与相关联的能力代理通信。这种通信可以通过例如嵌入式网络服务器(EWS)通路发生。图10是在不经过反射器116或流量服务器120的情况下调节应用程序122对硬件资源134的访问的各信号的交换的信号流程图1000。
应用程序122可以向能力代理128提供GET调用,指明应用程序122期望做出对于能力代理128相关联的硬件资源134(hw_resource)的访问请求(arequest),并且应用程序122从硬件资源134请求数据(value)。GET调用可以包括由反射器116提供给应用程序122的令牌(例如,报文头中的RAT),如上文参照图9所讨论的。在接收到GET调用时,能力代理128可以访问硬件资源134以生成数据,如上文参照图9所讨论的,并且可以响应于GET调用向应用程序122提供数据。以这种方式,应用程序122可以访问硬件资源134。
图11是适合用于实践所公开的个实施例的示例计算设备1100的框图。例如,计算设备1100可以充当远程计算设备102、计算设备104、和/或图1的计算设备106。在一些实施例中,计算设备1100的部件可以跨多个物理设备壳体或位置分布,而在其他实施例中,计算设备1100的部件可以包括在单个壳体或位置中。
计算设备1100可以包括诸多部件,包括一个或多个处理器1104和至少一个通信芯片1106。在各实施例中,处理器1104可以包括处理内核。在各实施例中,至少一个通信芯片1106还可以物理地且电学地耦合至处理器1104。在进一步实现方式中,通信芯片1106可以是处理器1104的一部分。在各实施例中,计算设备1100可以包括印刷电路板(PCB)1102。针对这些实施例,处理器1104和通信芯片1106可以被安置在其上。在替代实施例中,可以在不采用PCB 1102的情况下将所述各部件耦合。
根据其应用程序(例如,硬件资源访问应用程序),计算设备1100可以包括可以或可以不物理地和电学地耦合至PCB 1102的其他组件。这些其他部件包括但不限于随机存取存储器(RAM)1108、易失性存储器(比如动态RAM(DRAM))、非易失性存储器(例如,只读存储器1110,还称为“ROM,”一个或多个硬盘驱动、一个或多个固态驱动、一个或多个光盘驱动、和/或一个或多个数字通用盘驱动)、闪存存储器1112、输入/输出(I/O)控制器1114、数字信号处理器(未示出)、加密处理器(未示出)、图形处理器1116、一个或多个天线1118、触摸屏显示器1120、触摸屏控制器1122、其他显示器(比如液晶显示器、阴极射线管显示器、和电子油墨显示器,未示出)、电池1124、音频编解码器(未示出)、视频编解码器(未示出)、全球定位系统(GPS)设备1128、罗盘1130、加速度计(未示出)、陀螺仪(未示出)、扬声器1132、相机1134、和大容量存储设备(比如硬盘驱动、固态驱动、光盘(CD)、数字通用盘(DVD))(未示出)、任何其他期望的传感器(未示出)等。在各实施例中,处理器1104可以与其他部件集成在同一管芯上,用于形成片上系统(SoC)。
在各实施例中,易失性存储器(例如,DRAM)、非易失性存储器(例如ROM 1110)、闪存存储器1112、和大容量存储设备可以包括编程指令,这些编程指令被配置成用于使计算设备1100能够响应于被所述(这些)处理器1104执行而能够实践在此所述的过程的所有或选定方面。例如,这些存储器部件中的一个或多个,比如易失性存储器(例如DRAM)、非易失性存储器(例如ROM 1110)、闪存存储器1112、和大容量存储设备可以是机器可读介质,所述机器可读介质包括指令的暂时和/或永久(例如,非瞬态)副本,当被所述一个或多个处理器1104执行时,所述指令使计算设备1100能够实践在此所描述的过程的全部或选定方面。计算设备1100可访问的存储器可以包括在物理上是其上安装有计算设备1100的设备的一部分的一个或多个存储资源,和/或计算设备1100可访问但不一定是其一部分的一个或多个存储资源。例如,存储资源可以由计算设备1100在网络上通过通信芯片1106访问。
通信芯片1106可以使得向和从计算设备1100传递数据的有线和/或无线通信成为可能。术语“无线”及其派生词可以用于描述可以通过使用通过非固体介质的经调制的电磁辐射来传达数据的电路、设备、系统、方法、技术、通信通道等。所述术语并不意味着相关联的设备不包含任何导线,尽管在一些实施例中它们可能不包括。在此所描述的实施例中的许多可以用于WiFi和3GPP/LTE通信系统,如上文所提及的。然而,通信芯片1106可以实现诸多无线标准或协议中的任何一种,包括但不限于IEEE02.20、通用分组无线业务(GPRS)、演进数据优化(Ev-DO)、演进式高速分组接入(HSPA+)、演进式高速下行分组接入(HSDPA+)演进式高速下行分组接入(HSUPA+)、全球移动通信四通(GSM)、针对GSM演进的增强型数据速率(EDGE)、码分多址(CDMA)、时分多址(TDMA)、数字增强无绳电信(DECT)、蓝牙、其衍生物、以及被指定为3G、4G、5G等的任何其他无线协议。计算设备1100可以包括多个通信芯片1106。例如,第一通信芯片1106可以专用于如Wi-Fi和蓝牙的较短程无线通信,并且第二通信芯片1106可以专用于较长程无线通信,如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO、以及其他。
在各种实现中,计算设备1100可以是膝上型计算机、上网本、笔记本、超极本、智能电话、计算平板、个人数字助理、超移动PC、移动电话、台式计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如,游戏机)、数字相机、便携式音乐播放器、或数字视频记录器。在进一步实现方式中,计算设备1100可以是对数据进行处理的任何其他电子设备。
以下段落描述了各个实施例的示例。
示例1是一种或多种其上具有指令的计算机可读介质,所述指令响应于由装置的一个或多个处理设备执行而使所述装置:通过无状态协议消息从应用程序处接收配对请求,其中,所述配对请求指定远离所述装置的计算设备的硬件资源,所述应用程序请求与所述硬件资源配对;通过无状态协议消息向所述计算设备提供请求数据,其中,所述请求数据包括所述应用程序的标识符以及所述硬件资源对所述计算设备的标识符;通过无状态协议消息从所述计算设备接收配对许可,其中,所述配对许可是由所述计算设备基于所述请求数据中的至少一部分生成的;并且响应于接收到所述配对许可而生成配对令牌以便提供给所述应用程序,其中,所述配对令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,以便将所述应用程序与所述硬件资源配对。
示例2可以包括如示例1所述的主题,并且可以进一步指定:所述应用程序在所述计算设备上执行。
示例3可以包括如示例1至2中任一项所述的主题,并且其上可以进一步具有指令,所述指令当被所述装置的所述一个或多个处理设备执行时使所述装置:响应于接收到所述配对请求而生成临时令牌以便提供给所述应用程序,其中,所述临时令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,从而针对所述请求数据、通过包括所述临时令牌的无状态协议消息触发从所述计算设备向所述装置的请求。
示例4可以包括如示例3所述的主题,并且其上可以进一步具有指令,所述指令当被所述装置的所述一个或多个处理设备执行时使所述装置:响应于来自所述应用程序的包括所述临时令牌的无状态协议消息以及接收到所述配对许可,通过无状态协议消息将所述配对令牌提供给所述应用程序。
示例5可以包括如示例1至4中任一项所述的主题,并且可以进一步指定:所述请求数据包括所述应用程序的网际协议(IP)地址。
示例6可以包括如示例5所述的主题,并且其上可以进一步具有指令,所述指令当被所述装置的所述一个或多个处理设备执行时使所述装置:通过无状态协议消息向所述计算设备提供所述计算设备的IP地址。
示例7是一种或多种其上具有指令的计算机可读介质,所述指令响应于由装置的一个或多个处理设备执行而使所述装置:通过无状态协议消息从计算设备接收请求数据,其中,所述请求数据包括所述装置的硬件资源的标识符和应用程序的标识符,所述应用程序已经提供了用于与所述硬件资源配对的配对请求;响应于接收到所述请求数据,通过无状态协议消息向所述计算设备提供对所述配对请求的许可或对所述配对请求的拒绝;通过无状态协议消息从所述应用程序接收对所述硬件资源进行访问的访问请求,其中,所述访问请求包括配对令牌,所述配对令牌是响应于所述计算设备接收到对所述配对请求的许可而由所述计算设备生成并提供给所述应用程序的;使所述配对令牌生效或无效;并且响应于使所述配对令牌生效,通过无状态协议消息从所述硬件资源提供数据以便提供给所述应用程序。
示例8可以包括如示例7所述的主题,并且可以进一步指定:所述应用程序在所述装置上执行。
示例9可以包括如示例7所述的主题,并且可以进一步指定:所述访问请求是从所述计算设备接收的,并且所述应用程序在不同于所述计算设备的第二设备上执行。
示例10可以包括如示例9所述的主题,并且可以进一步指定:所述访问请求包括所述应用程序的网际协议(IP)地址,并且其中,使所述配对令牌生效或无效包括确定所述应用程序的所述IP地址与所述装置的IP地址分别匹配或不匹配。
示例11可以包括如示例10所述的主题,并且可以进一步指定:所述访问请求是从第三计算设备接收的,所述第三计算设备不同于所述计算设备并且不同于所述应用程序在其上执行的第二计算设备。
示例12可以包括如示例7至11中任一项所述的主题,并且可以进一步指定:使所述配对令牌生效或无效包括确定所述配对令牌标识或不标识所述装置。
示例13是一种用于调节与硬件资源的配对的装置,包括:配对请求接收逻辑,所述配对请求接收逻辑用于通过无状态协议消息从应用程序处接收配对请求,其中,所述配对请求指定远离所述装置的计算设备的硬件资源,所述应用程序请求与所述硬件资源配对;中间逻辑,与所述配对请求接收逻辑耦合,所述中间逻辑用于:通过无状态协议消息向所述计算设备提供请求数据,其中,所述请求数据包括所述应用程序的标识符以及所述硬件资源对所述计算设备的标识符,并且通过无状态协议消息从所述计算设备接收配对许可,其中,所述配对许可是由所述计算设备基于所述请求数据中的至少一部分生成的;以及令牌生成逻辑,与所述中间逻辑耦合,所述令牌生成逻辑用于:响应于接收到所述配对许可而生成配对令牌以便提供给所述应用程序,其中,所述配对令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,以便将所述应用程序与所述硬件资源配对。
示例14可以包括如示例13所述的主题,并且可以进一步指定:所述应用程序在所述计算设备上执行。
示例15可以包括如示例13至14中任一项所述的主题,并且可以进一步指定:所述令牌生成逻辑耦合至所述配对请求接收逻辑,并且进一步用于:响应于接收到所述配对请求而生成临时令牌以便提供给所述应用程序,其中,所述临时令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,从而针对所述请求数据通过包括所述临时令牌的无状态协议消息触发从所述计算设备向所述装置的请求。
示例16可以包括如示例15所述的主题,并且可以进一步指定:所述令牌生成逻辑进一步用于:响应于来自所述应用程序的包括所述临时令牌的无状态协议消息以及接收到所述配对许可,通过无状态协议消息将所述配对令牌提供给所述应用程序。
示例17可以包括如示例13至16中任一项所述的主题,并且可以进一步指定:所述请求数据包括所述应用程序的网际协议(IP)地址。
示例18可以包括如示例17所述的主题,并且可以进一步指定:所述中间逻辑进一步用于:通过无状态协议消息向所述计算设备提供所述计算设备的IP地址。
示例19是一种用于调节对硬件资源的访问的装置,包括:配对请求评估逻辑,所述配对请求评估逻辑用于:通过无状态协议消息从计算设备接收请求数据,其中,所述请求数据包括所述装置的硬件资源的标识符和应用程序的标识符,所述应用程序已经提供了用于与所述硬件资源配对的配对请求,并且响应于接收到所述请求数据,通过无状态协议消息向所述计算设备提供对所述配对请求的许可或对所述配对请求的拒绝;令牌评估逻辑,所述令牌评估逻辑用于:通过无状态协议消息从所述应用程序接收对所述硬件资源进行访问的访问请求,其中,所述访问请求包括配对令牌,所述配对令牌是响应于所述计算设备接收到所述配对请求评估逻辑所提供的对所述配对请求的许可而由所述计算设备生成并提供给所述应用程序的,并且使所述配对令牌生效或无效;以及资源管理逻辑,与所述令牌评估逻辑耦合,所述资源管理逻辑用于:响应于使所述配对令牌生效,通过无状态协议消息从所述硬件资源提供数据以便提供给所述应用程序。
示例20可以包括如示例19所述的主题,并且可以进一步指定:所述应用程序在所述装置上执行。
示例21可以包括如示例19所述的主题,并且可以进一步指定:所述访问请求是从所述计算设备接收的,并且其中,所述应用程序在不同于所述计算设备的第二设备上执行。
示例22可以包括如示例21所述的主题,并且可以进一步指定:所述访问请求包括所述应用程序的网际协议(IP)地址,并且其中,使所述配对令牌生效或无效包括确定所述应用程序的所述IP地址与所述装置的IP地址分别匹配或不匹配。
示例23可以包括如示例19所述的主题,并且可以进一步指定:所述访问请求是从第三计算设备接收的,所述第三计算设备不同于所述计算设备并且不同于所述应用程序在其上执行的第二计算设备。
示例24可以包括如示例19至23中任一项所述的主题,并且可以进一步指定:所述配对请求评估逻辑包括在内核应用程序、网络接口卡、或管理引擎中。
示例25可以包括如示例19至24中任一项所述的主题,并且可以进一步指定:使所述配对令牌生效或无效包括确定所述配对令牌标识或不标识所述装置。
示例26是一种用于由装置调节与硬件资源的配对的方法,包括:通过无状态协议消息从应用程序处接收配对请求,其中,所述配对请求指定远离所述装置的计算设备的硬件资源,所述应用程序请求与所述硬件资源配对;通过无状态协议消息向所述计算设备提供请求数据,其中,所述请求数据包括所述应用程序的标识符以及所述硬件资源对所述计算设备的标识符;通过无状态协议消息从所述计算设备接收配对许可,其中,所述配对许可是由所述计算设备基于所述请求数据中的至少一部分生成的;并且响应于接收到所述配对许可,生成配对令牌以便提供给所述应用程序,其中,所述配对令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,以便将所述应用程序与所述硬件资源配对。
示例27可以包括如示例26所述的主题,并且可以进一步指定:所述应用程序在所述计算设备上执行。
示例28可以包括如示例26至27中任一项所述的主题,并且可以进一步包括:响应于接收到所述配对请求,生成临时令牌以便提供给所述应用程序,其中,所述临时令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,从而针对所述请求数据、通过包括所述临时令牌的无状态协议消息触发从所述计算设备向所述装置的请求。
示例29可以包括如示例28所述的主题,并且可以进一步包括:响应于来自所述应用程序的包括所述临时令牌的无状态协议消息以及接收到所述配对许可,通过无状态协议消息将所述配对令牌提供给所述应用程序。
示例30可以包括如示例26至29中任一项所述的主题,并且可以进一步指定:所述请求数据包括所述应用程序的网际协议(IP)地址。
示例31可以包括如示例30所述的主题,并且可以进一步包括:通过无状态协议消息向所述计算设备提供所述计算设备的IP地址。
示例32是一种用于由装置调节对硬件资源的访问的方法,包括:通过无状态协议消息从计算设备接收请求数据,其中,所述请求数据包括所述装置的硬件资源的标识符和应用程序的标识符,所述应用程序已经提供了用于与所述硬件资源配对的配对请求;响应于接收到所述请求数据,通过无状态协议消息向所述计算设备提供对所述配对请求的许可或对所述配对请求的拒绝;通过无状态协议消息从所述应用程序接收对所述硬件资源进行访问的访问请求,其中,所述访问请求包括配对令牌,所述配对令牌是响应于所述计算设备接收到对所述配对请求的许可而由所述计算设备生成并提供给所述应用程序的;使所述配对令牌生效或无效;并且响应于使所述配对令牌生效,通过无状态协议消息从所述硬件资源提供数据以便提供给所述应用程序。
示例33可以包括如示例32所述的主题,并且可以进一步指定:所述应用程序在所述装置上执行。
示例34可以包括如示例32所述的主题,并且可以进一步指定:所述访问请求是从所述计算设备接收的,并且其中,所述应用程序在不同于所述计算设备的第二设备上执行。
示例35可以包括如示例34所述的主题,并且可以进一步指定:所述访问请求包括所述应用程序的网际协议(IP)地址,并且其中,使所述配对令牌生效或无效包括确定所述应用程序的所述IP地址与所述装置的IP地址分别匹配或不匹配。
示例36可以包括如示例32所述的主题,并且可以进一步指定:所述访问请求是从第三计算设备接收的,所述第三计算设备不同于所述计算设备并且不同于所述应用程序在其上执行的第二计算设备。
示例37可以包括如示例32至36中任一项所述的主题,并且可以进一步指定:使所述配对令牌生效或无效包括确定所述配对令牌标识或不标识所述装置。
示例38包括一种或多种其上具有指令的计算机可读介质,所述指令响应于由装置的一个或多个处理设备执行而使所述装置执行如权利要求26至37中任一项所述的方法。
示例39是一种用于调节与硬件资源的配对的装置,包括:用于通过无状态协议消息从应用程序处接收配对请求的装置,其中,所述配对请求指定远离所述装置的计算设备的硬件资源,所述应用程序请求与所述硬件资源配对;用于通过无状态协议消息向所述计算设备提供请求数据的装置,其中,所述请求数据包括所述应用程序的标识符以及所述硬件资源对所述计算设备的标识符;用于通过无状态协议消息从所述计算设备接收配对许可的装置,其中,所述配对许可是由所述计算设备基于所述请求数据中的至少一部分生成的;以及用于响应于接收到所述配对许可而生成配对令牌以便提供给所述应用程序的装置,其中,所述配对令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,以便将所述应用程序与所述硬件资源配对。
示例40可以包括如示例39所述的主题,并且可以进一步指定:所述应用程序在所述计算设备上执行。
示例41可以包括如示例39至40中任一项所述的主题,并且可以进一步包括:用于响应于接收到所述配对请求而生成临时令牌以便提供给所述应用程序的装置,其中,所述临时令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,从而针对所述请求数据、通过包括所述临时令牌的无状态协议消息触发从所述计算设备向所述装置的请求。
示例42可以包括如示例41所述的主题,并且可以进一步包括:用于响应于来自所述应用程序的包括所述临时令牌的无状态协议消息以及接收到所述配对许可,通过无状态协议消息将所述配对令牌提供给所述应用程序的装置。
示例43可以包括如示例39至42中任一项所述的主题,并且可以进一步指定:所述请求数据包括所述应用程序的网际协议(IP)地址。
示例44可以包括如示例43所述的主题,并且可以进一步包括:用于通过无状态协议消息向所述计算设备提供所述计算设备的IP地址的装置。
示例45是一种用于调节对硬件资源的访问的装置,包括:用于通过无状态协议消息从计算设备接收请求数据的装置,其中,所述请求数据包括所述装置的硬件资源的标识符和应用程序的标识符,所述应用程序已经提供了用于与所述硬件资源配对的配对请求;用于响应于接收到所述请求数据,通过无状态协议消息向所述计算设备提供对所述配对请求的许可或对所述配对请求的拒绝的装置;用于通过无状态协议消息从所述应用程序接收对所述硬件资源进行访问的访问请求的装置,其中,所述访问请求包括配对令牌,所述配对令牌是响应于所述计算设备接收到对所述配对请求的许可而由所述计算设备生成并提供给所述应用程序的;用于使所述配对令牌生效或无效的装置;以及用于响应于使所述配对令牌生效,通过无状态协议消息从所述硬件资源提供数据以便提供给所述应用程序的装置。
示例46可以包括如示例45所述的主题,并且可以进一步指定:所述应用程序在所述装置上执行。
示例47可以包括如示例45所述的主题,并且可以进一步指定:所述访问请求是从所述计算设备接收的,并且其中,所述应用程序在不同于所述计算设备的第二设备上执行。
示例48可以包括如示例47所述的主题,并且可以进一步指定:所述访问请求包括所述应用程序的网际协议(IP)地址,并且其中,用于使所述配对令牌生效或无效的装置包括用于确定所述应用程序的所述IP地址与所述装置的IP地址分别匹配或不匹配的装置。
示例49可以包括如示例45所述的主题,并且可以进一步指定:所述访问请求是从第三计算设备接收的,所述第三计算设备不同于所述计算设备并且不同于所述应用程序在其上执行的第二计算设备。
示例50可以包括如示例45至49中任一项所述的主题,并且可以进一步指定:所述用于使所述配对令牌生效或无效的装置包括用于确定所述配对令牌标识或不标识所述装置的装置。
示例51可以包括如示例1至50中任一项所述的主题,并且可以进一步指定:所述无状态协议消息是REST调用。
Claims (25)
1.一种用于调节与硬件资源的配对的装置,所述装置包括:
配对请求接收逻辑,所述配对请求接收逻辑用于经由无状态协议消息从应用程序处接收配对请求,其中,所述配对请求指定远离所述装置的计算设备的硬件资源,所述应用程序请求与所述硬件资源配对以使得所述应用程序被授权访问所述硬件资源;
中间逻辑,与所述配对请求接收逻辑耦合,所述中间逻辑用于:
经由无状态协议消息向所述计算设备提供请求数据,其中,所述请求数据包括所述应用程序的标识符以及所述硬件资源对所述计算设备的标识符,并且
经由无状态协议消息从所述计算设备接收配对许可,其中,所述配对许可是由所述计算设备基于所述请求数据中的至少一些生成的;以及
令牌生成逻辑,与所述中间逻辑耦合,所述令牌生成逻辑用于:响应于接收到所述配对许可而生成配对令牌以便提供给所述应用程序,其中,所述配对令牌将由所述应用程序经由无状态协议消息提供给所述计算设备,以便将所述应用程序与所述硬件资源配对。
2.如权利要求1所述的装置,其中,所述无状态协议消息是表述性状态转移(REST)调用。
3.如权利要求1所述的装置,其中,所述令牌生成逻辑耦合至所述配对请求接收逻辑,并且进一步用于:响应于接收到所述配对请求而生成临时令牌以便提供给所述应用程序,其中,所述临时令牌将由所述应用程序经由无状态协议消息提供给所述计算设备,从而针对所述请求数据经由包括所述临时令牌的无状态协议消息触发从所述计算设备向所述装置的请求。
4.如权利要求3所述的装置,其中,所述令牌生成逻辑进一步用于:响应于来自所述应用程序的包括所述临时令牌的无状态协议消息以及接收到所述配对许可,经由无状态协议消息将所述配对令牌提供给所述应用程序。
5.如权利要求1至4中任一项所述的装置,其中,所述请求数据包括所述应用程序的网际协议(IP)地址。
6.一种用于调节对硬件资源的访问的装置,所述装置包括:
配对请求评估逻辑,所述配对请求评估逻辑用于:
经由无状态协议消息从与所述装置分开的计算设备接收请求数据,其中,所述请求数据包括所述装置的硬件资源的标识符和应用程序的标识符,所述应用程序已经提供了用于与所述硬件资源配对的配对请求,并且
响应于接收到所述请求数据,经由无状态协议消息向所述计算设备提供对所述配对请求的许可或对所述配对请求的拒绝;
令牌评估逻辑,所述令牌评估逻辑用于:
经由无状态协议消息从所述应用程序接收对所述硬件资源进行访问的访问请求,其中,所述访问请求包括配对令牌,所述配对令牌是响应于所述计算设备接收到所述配对请求评估逻辑所提供的对所述配对请求的许可而由所述计算设备生成并提供给所述应用程序的,并且
使所述配对令牌生效或无效;以及
资源管理逻辑,与所述令牌评估逻辑耦合,所述资源管理逻辑用于:响应于使所述配对令牌生效,经由无状态协议消息从所述硬件资源提供数据以便提供给所述应用程序。
7.如权利要求6所述的装置,其中,所述访问请求是从所述计算设备接收的,并且其中,所述应用程序在不同于所述计算设备的第二设备上执行。
8.如权利要求7所述的装置,其中,所述访问请求包括所述应用程序的网际协议(IP)地址,并且其中,使所述配对令牌生效或无效包括确定所述应用程序的所述IP地址与所述装置的IP地址分别匹配或不匹配。
9.如权利要求6所述的装置,其中,所述访问请求是从第三计算设备接收的,所述第三计算设备不同于所述计算设备并且不同于所述应用程序在其上执行的第二计算设备。
10.如权利要求6至9中任一项所述的装置,其中,使所述配对令牌生效或无效包括确定所述配对令牌标识或不标识所述装置。
11.一种用于由装置调节与硬件资源的配对的方法,所述方法包括:
经由无状态协议消息从应用程序处接收配对请求,其中,所述配对请求指定远离所述装置的计算设备的硬件资源,所述应用程序请求与所述硬件资源配对以使得所述应用程序被授权访问所述硬件资源;
经由无状态协议消息向所述计算设备提供请求数据,其中,所述请求数据包括所述应用程序的标识符以及所述硬件资源对所述计算设备的标识符;
经由无状态协议消息从所述计算设备接收配对许可,其中,所述配对许可是由所述计算设备基于所述请求数据中的至少一些生成的;以及
响应于接收到所述配对许可,生成配对令牌以便提供给所述应用程序,其中,所述配对令牌将由所述应用程序通过无状态协议消息提供给所述计算设备,以便将所述应用程序与所述硬件资源配对。
12.如权利要求11所述的方法,其中,所述应用程序在所述计算设备上执行。
13.如权利要求11所述的方法,进一步包括:
响应于接收到所述配对请求而生成临时令牌以便提供给所述应用程序,其中,所述临时令牌将由所述应用程序经由无状态协议消息提供给所述计算设备,从而针对所述请求数据经由包括所述临时令牌的无状态协议消息触发从所述计算设备向所述装置的请求。
14.如权利要求13所述的方法,进一步包括:
响应于来自所述应用程序的包括所述临时令牌的无状态协议消息以及接收到所述配对许可,经由无状态协议消息将所述配对令牌提供给所述应用程序。
15.如权利要求11至14中任一项所述的方法,其中,所述请求数据包括所述应用程序的网际协议(IP)地址。
16.如权利要求15所述的方法,进一步包括:
经由无状态协议消息向所述计算设备提供所述计算设备的IP地址。
17.一种用于由装置调节对硬件资源的访问的方法,所述方法包括:
经由无状态协议消息从与所述装置分开的计算设备接收请求数据,其中,所述请求数据包括所述装置的硬件资源的标识符和应用程序的标识符,所述应用程序已经提供了用于与所述硬件资源配对的配对请求;
响应于接收到所述请求数据,经由无状态协议消息向所述计算设备提供对所述配对请求的许可或对所述配对请求的拒绝;
经由无状态协议消息从所述应用程序接收对所述硬件资源进行访问的访问请求,其中,所述访问请求包括配对令牌,所述配对令牌是响应于所述计算设备接收到对所述配对请求的许可而由所述计算设备生成并提供给所述应用程序的;
使所述配对令牌生效或无效;以及
响应于使所述配对令牌生效,经由无状态协议消息从所述硬件资源提供数据以便提供给所述应用程序。
18.如权利要求15所述的方法,其中,所述应用程序在所述装置上执行。
19.如权利要求15所述的方法,其中,所述访问请求是从所述计算设备接收的,并且其中,所述应用程序在不同于所述计算设备的第二设备上执行。
20.如权利要求19所述的方法,其中,所述访问请求包括所述应用程序的网际协议(IP)地址,并且其中,使所述配对令牌生效或无效包括确定所述应用程序的所述IP地址与所述装置的IP地址分别匹配或不匹配。
21.如权利要求17所述的方法,其中,所述访问请求是从第三计算设备接收的,所述第三计算设备不同于所述计算设备并且不同于所述应用程序在其上执行的第二计算设备。
22.如权利要求17至21中任一项所述的方法,其中,使所述配对令牌生效或无效包括确定所述配对令牌标识或不标识所述装置。
23.一种或多种其上具有指令的计算机可读介质,所述指令响应于由装置的一个或多个处理设备执行而使所述装置执行如权利要求11至22中任一项所述的方法。
24.一种用于调节与硬件资源的配对的装置,所述装置包括:
用于经由无状态协议消息从应用程序处接收配对请求的装置,其中,所述配对请求指定远离所述装置的计算设备的硬件资源,所述应用程序请求与所述硬件资源配对以使得所述应用程序被授权访问所述硬件资源;
用于经由无状态协议消息向所述计算设备提供请求数据的装置,其中,所述请求数据包括所述应用程序的标识符以及所述硬件资源对所述计算设备的标识符;
用于经由无状态协议消息从所述计算设备接收配对许可的装置,其中,所述配对许可是由所述计算设备基于所述请求数据中的至少一些生成的;以及
用于响应于接收到所述配对许可而生成配对令牌以便提供给所述应用程序的装置,其中,所述配对令牌将由所述应用程序经由无状态协议消息提供给所述计算设备,以便将所述应用程序与所述硬件资源配对。
25.如权利要求24所述的装置,进一步包括:
用于响应于接收到所述配对请求而生成临时令牌以便提供给所述应用程序的装置,其中,所述临时令牌将由所述应用程序经由无状态协议消息提供给所述计算设备,从而针对所述请求数据经由包括所述临时令牌的无状态协议消息触发从所述计算设备向所述装置的请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/497,581 | 2014-09-26 | ||
US14/497,581 US9762676B2 (en) | 2014-09-26 | 2014-09-26 | Hardware resource access systems and techniques |
PCT/US2015/041797 WO2016048441A1 (en) | 2014-09-26 | 2015-07-23 | Hardware resource access systems and techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106664307A CN106664307A (zh) | 2017-05-10 |
CN106664307B true CN106664307B (zh) | 2020-07-07 |
Family
ID=55581723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580045706.2A Active CN106664307B (zh) | 2014-09-26 | 2015-07-23 | 硬件资源访问系统和技术 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9762676B2 (zh) |
EP (1) | EP3198832B1 (zh) |
CN (1) | CN106664307B (zh) |
TW (1) | TWI617166B (zh) |
WO (1) | WO2016048441A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016105044A1 (en) * | 2014-12-22 | 2016-06-30 | Samsung Electronics Co., Ltd. | Method of establishing connection between mobile device and image forming apparatus, and image forming apparatus and mobile device for performing the method |
KR20160076371A (ko) | 2014-12-22 | 2016-06-30 | 삼성전자주식회사 | 워크플로우를 처리하는 방법 및 이를 수행하는 모바일 디바이스 |
EP3037954B1 (en) | 2014-12-22 | 2019-02-20 | HP Printing Korea Co., Ltd. | Method of generating workform by using byod service and mobile device for performing the method |
US9749310B2 (en) * | 2015-03-27 | 2017-08-29 | Intel Corporation | Technologies for authentication and single-sign-on using device security assertions |
US10009899B2 (en) * | 2015-03-31 | 2018-06-26 | Dell Products, Lp | System and method for policy based wireless docking access and prioritization |
US9888070B2 (en) * | 2015-06-29 | 2018-02-06 | Microsoft Technology Licensing, Llc | Brokered advanced pairing |
CN105243318B (zh) * | 2015-08-28 | 2020-07-31 | 小米科技有限责任公司 | 确定用户设备控制权限的方法、装置及终端设备 |
US10382203B1 (en) * | 2016-11-22 | 2019-08-13 | Amazon Technologies, Inc. | Associating applications with Internet-of-things (IoT) devices using three-way handshake |
US10819586B2 (en) * | 2018-10-17 | 2020-10-27 | Servicenow, Inc. | Functional discovery and mapping of serverless resources |
US11190514B2 (en) * | 2019-06-17 | 2021-11-30 | Microsoft Technology Licensing, Llc | Client-server security enhancement using information accessed from access tokens |
US11425107B2 (en) * | 2020-09-09 | 2022-08-23 | Springcoin, Inc. | Method and apparatus for third-party managed data transference and corroboration via tokenization |
CN116635837A (zh) * | 2020-12-10 | 2023-08-22 | 斯纳普公司 | 摄像装置能力api框架和共享oem存储库系统 |
US11921842B2 (en) | 2021-06-14 | 2024-03-05 | Kyndryl, Inc. | Multifactor authorization on accessing hardware resources |
WO2024030348A1 (en) * | 2022-08-02 | 2024-02-08 | Centurylink Intellectual Property Llc | Enhanced pre-loading for edge gateways in communications networks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976441A (zh) * | 2005-11-18 | 2007-06-06 | 阿尔卡特公司 | 请求媒体资源传递的方法、媒体服务器、应用服务器和客户机设备 |
CN102984199A (zh) * | 2011-09-12 | 2013-03-20 | 微软公司 | 资源访问授权 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587867B1 (en) * | 1997-05-22 | 2003-07-01 | Mci Communications Corporation | Internet-based subscriber profile management of a communications system |
US20050182966A1 (en) * | 2004-02-17 | 2005-08-18 | Duc Pham | Secure interprocess communications binding system and methods |
US7567573B2 (en) * | 2004-09-07 | 2009-07-28 | F5 Networks, Inc. | Method for automatic traffic interception |
US8127024B2 (en) * | 2004-10-29 | 2012-02-28 | Oracle International Corporation | Parameter passing in web based systems |
US20070153813A1 (en) * | 2005-12-29 | 2007-07-05 | Level 3 Communications, Inc. | Traffic distribution in a communications network |
US20080095165A1 (en) * | 2006-02-16 | 2008-04-24 | Intelliserv, Inc. | Net-Layer Parsing and Resynchronization |
US7844187B2 (en) * | 2006-12-12 | 2010-11-30 | Intel Corporation | Optical communications circuit current management |
US8825999B2 (en) * | 2007-10-20 | 2014-09-02 | Blackout, Inc. | Extending encrypting web service |
US8239340B2 (en) * | 2008-04-11 | 2012-08-07 | Trevor Hanson | Message conduit systems with algorithmic data stream control and methods for processing thereof |
JP4691146B2 (ja) | 2008-08-05 | 2011-06-01 | 三菱電機インフォメーションシステムズ株式会社 | 飲食店における顧客の飲食管理分析システム |
EP2376261B1 (en) * | 2008-12-19 | 2020-04-15 | BIC Violex S.A. | Razor cartridge and mechanical razor comprising such a cartridge |
US8285681B2 (en) * | 2009-06-30 | 2012-10-09 | Commvault Systems, Inc. | Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites |
US8681970B2 (en) * | 2010-02-08 | 2014-03-25 | Genesys Telecommunications Laboratories, Inc. | Portable continuity object |
JP5429667B2 (ja) | 2010-03-31 | 2014-02-26 | 国立大学法人 長崎大学 | 摂食機能評価用スプーン、摂食機能評価システム及び摂食機能評価方法 |
US8606306B2 (en) * | 2010-04-07 | 2013-12-10 | Apple Inc. | Multiple client computing device invitations for online communication sessions |
US8631482B2 (en) | 2010-05-28 | 2014-01-14 | Apple Inc. | Method for managing computer resources accessed by a program operating in a restricted environment |
JP5129313B2 (ja) * | 2010-10-29 | 2013-01-30 | 株式会社東芝 | アクセス認可装置 |
US8868915B2 (en) | 2010-12-06 | 2014-10-21 | Verizon Patent And Licensing Inc. | Secure authentication for client application access to protected resources |
US20130086669A1 (en) | 2011-09-29 | 2013-04-04 | Oracle International Corporation | Mobile application, single sign-on management |
US8484363B2 (en) * | 2011-10-21 | 2013-07-09 | Motorola Mobility Llc | Device provisioning or pairing using graphical representation of device identifier |
US9160739B2 (en) * | 2012-05-21 | 2015-10-13 | Invisible Text, LLC | Secure data transmission system |
US9380018B2 (en) * | 2012-05-29 | 2016-06-28 | Openet Telecom Ltd. | System and method for communicating in a telecommunication network via common key routing and proxies |
US8844026B2 (en) | 2012-06-01 | 2014-09-23 | Blackberry Limited | System and method for controlling access to secure resources |
US9256722B2 (en) * | 2012-07-20 | 2016-02-09 | Google Inc. | Systems and methods of using a temporary private key between two devices |
TWM451895U (zh) | 2012-11-27 | 2013-05-01 | Univ Minghsin Sci & Tech | 偵測用餐進度之餐具 |
US9491266B2 (en) | 2012-12-03 | 2016-11-08 | Sap Se | Representational state transfer communications via remote function calls |
US10193993B2 (en) * | 2013-05-30 | 2019-01-29 | Ebay Inc. | Systems and methods of token piggybacking |
TWM465706U (zh) * | 2013-07-19 | 2013-11-11 | Ozaki Int Co Ltd | 連接埠擴充裝置 |
EP3087497A4 (en) * | 2013-12-26 | 2017-08-23 | Intel Corporation | Device pairing |
JP6364496B2 (ja) * | 2014-02-07 | 2018-07-25 | オラクル・インターナショナル・コーポレイション | モバイルクラウドサービスアーキテクチャ |
US20150288667A1 (en) * | 2014-04-08 | 2015-10-08 | Samsung Electronics Co., Ltd. | Apparatus for sharing a session key between devices and method thereof |
US9813379B1 (en) * | 2014-05-09 | 2017-11-07 | Amazon Technologies, Inc. | Virtual private gateways using compute instances |
-
2014
- 2014-09-26 US US14/497,581 patent/US9762676B2/en active Active
-
2015
- 2015-07-23 CN CN201580045706.2A patent/CN106664307B/zh active Active
- 2015-07-23 WO PCT/US2015/041797 patent/WO2016048441A1/en active Application Filing
- 2015-07-23 EP EP15843797.0A patent/EP3198832B1/en active Active
- 2015-08-24 TW TW104127513A patent/TWI617166B/zh not_active IP Right Cessation
-
2017
- 2017-09-07 US US15/698,575 patent/US10334056B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976441A (zh) * | 2005-11-18 | 2007-06-06 | 阿尔卡特公司 | 请求媒体资源传递的方法、媒体服务器、应用服务器和客户机设备 |
CN102984199A (zh) * | 2011-09-12 | 2013-03-20 | 微软公司 | 资源访问授权 |
Also Published As
Publication number | Publication date |
---|---|
US9762676B2 (en) | 2017-09-12 |
EP3198832A1 (en) | 2017-08-02 |
US20160094664A1 (en) | 2016-03-31 |
TWI617166B (zh) | 2018-03-01 |
WO2016048441A1 (en) | 2016-03-31 |
EP3198832A4 (en) | 2018-06-13 |
US10334056B2 (en) | 2019-06-25 |
US20180183880A1 (en) | 2018-06-28 |
TW201633762A (zh) | 2016-09-16 |
CN106664307A (zh) | 2017-05-10 |
EP3198832B1 (en) | 2021-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106664307B (zh) | 硬件资源访问系统和技术 | |
US20200304485A1 (en) | Controlling Access to Resources on a Network | |
US9686287B2 (en) | Delegating authorization to applications on a client device in a networked environment | |
US9769266B2 (en) | Controlling access to resources on a network | |
US9819668B2 (en) | Single sign on for native and wrapped web resources on mobile devices | |
RU2018143987A (ru) | Система объединения токенов для многосторонних транзакций | |
WO2017124620A1 (zh) | 一种用于共享无线接入点的方法与设备 | |
EP2932390B1 (en) | Inversion-of-control component service models for virtual environments | |
US10122697B2 (en) | Native authentication experience with failover | |
US20140109194A1 (en) | Authentication Delegation | |
KR20190069574A (ko) | 무선 네트워크 유형 검출 방법과 장치, 및 전자 디바이스 | |
AU2018395523B2 (en) | Multi-level bot architecture for data access | |
WO2023241060A1 (zh) | 数据访问方法和装置 | |
US10218700B2 (en) | Authorizations for computing devices to access a protected resource | |
CN114866247B (zh) | 一种通信方法、装置、系统、终端及服务器 | |
US20230370461A1 (en) | Intercloud service gateway | |
US20240056455A1 (en) | User authentication based on periodic sampling of location coordinates |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |