Accessing hardware devices using web server abstractions

US9716743B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9716743-B2
Application numberUS-201113224337-A
CountryUS
Kind codeB2
Filing dateSep 2, 2011
Priority dateSep 2, 2011
Publication dateJul 25, 2017
Grant dateJul 25, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In the new architecture, a client that desires access to a piece of hardware sends HTTP requests to a device server. The server receives a HTTP requests, accesses a device on behalf of the client, and send the device's response back to the client in the form of an HTTP response. This architecture has three primary advantages. First, it offers a clean interface for clients where all devices are accessed as if they are web servers. Second, it helps make devices more secure whereby clients can be prevented from accessing hardware directly, and all device access is forced through the narrow HTTP access protocol and checked for compliance with a desired security policy. Third, since HTTP allows local and remote servers to be contacted, the proposed architecture makes it easy for clients to communicate with devices that are not physically co-resident with the client but which are accessible via a network connection.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for accessing hardware devices by a hardware device server, the method comprising: receiving a Hypertext Transfer Protocol (HTTP) request by the hardware device server from a device protocol translator that accepts application programming interface (API) calls from a requesting application for initiating hardware device access and receiving any resulting status and data, the request including a requested action to be taken and an identified hardware device for performing the requested action to be taken, the hardware device server being local to the identified hardware device; authenticating the HTTP request from the device protocol translator by the hardware device server; sending commands for the requested action to be taken to the identified hardware device from the hardware device server; receiving a response from the identified hardware device by the hardware device server, the response including a status indication of whether the requested action succeeded and any received device data as a result of the requested action; and sending a HTTP result to the device protocol translator by the hardware device server, the result including the received status indication and the received device data, the device protocol translator being included in the requesting application. 2. The method of claim 1 , wherein the hardware device server is selected from the group consisting of a local hardware device server that is located locally to the requesting application and the device protocol translator and a remote hardware device server that is located remotely from the requesting application and the device protocol translator. 3. The method of claim 1 , wherein: receiving the HTTP request includes receiving device specific parameters and a data request, and sending commands for the requested action to be taken includes sending the device specific parameters and the data request. 4. The method of claim 1 , wherein the identified hardware device is selected from the group consisting of sensors, processors, storage devices, cameras, microphones, GPS units, accelerometers, other processor cores, graphical processing units, internal memory devices and removable memory devices. 5. The method of claim 1 , further comprising: authenticating that the request from the requesting application is allowed. 6. The method of claim 5 , wherein: authenticating that the request from the requesting application is allowed includes authenticating the HTTP request from the requesting application and providing security, including using manifest authorization, security token exchanges, sensor widget notification and iframes for device handling encapsulation. 7. The method of claim 1 , wherein: receiving the HTTP request from the application comprises receiving HTTP commands as a hardware access protocol. 8. The method of claim 1 , wherein: authenticating the HTTP request from the device protocol translator by the hardware device server includes checking a referrer field included in the HTTP request. 9. The method of claim 8 , wherein the device protocol translator is configured to access local hardware device servers and remote hardware device servers. 10. The method of claim 1 , wherein: the requested action to be taken includes a requested action of fetching a single sample from an identified sensor. 11. The method of claim 1 , wherein: the requested action to be taken includes a requested action of starting a periodic query of an identified sensor by turning on an identified sensor for a predetermined period of time and by turning off the identified sensor after the predetermined period of time. 12. The method of claim 1 , wherein: The requested action to be taken includes a requested action of queuing a computation kernel for execution by an identified processor, setting input data for a computation pipeline, and running a computation of queued kernels on the input data. 13. The method of claim 1 , wherein: the requested action to be taken includes a requested action for putting a value by key in an identified storage device. 14. The method of claim 1 , wherein: the requested action to be taken includes a requested action for getting a value by key in an identified storage device. 15. A system for accessing one or more hardware devices using arbitrary network protocols, the system comprising: one or more device processors; and a non-volatile memory storing computer-executable instructions for execution by the one or more device processors, for implementing: a hardware device server that is operable to provide mediation, via at least one of the one or more device processors, for enabling hardware devices that are local to the hardware device server to respond to network protocol commands, by: receiving requests, as network protocol commands, using Hypertext Transfer protocol (HTTP) requests, from a device protocol translator that accepts application programming interface (API) calls from a requesting application for initiating hardware device access via the HTTP requests and receiving any resulting status and data, the requests including requested actions to be taken by the hardware devices, the device protocol translator being included in the requesting application, authenticating the HTTP requests from the device protocol translator by the hardware device server, sending commands for the requested actions to be taken to the hardware devices, and sending results, in network protocol format, as results in HTTP format, to the device protocol translator, the results including status indications and device data received from the hardware devices. 16. The system of claim 15 , wherein: the hardware device server is operable to execute as a simple native code application in a separate process on a local machine and to export a web server interface on the local machine. 17. The system of claim 15 , wherein the hardware device server is operable to receive the network protocol commands for performing operations on attached hardware devices and returning requested data via the network protocol commands.

Assignees

Inventors

Classifications

  • Protocols for interworking; Protocol conversion · CPC title

  • H04L67/025Primary

    for remote control or remote monitoring of applications · CPC title

  • for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32) · CPC title

  • for managing network security; network security policies in general (filtering policies H04L63/0227) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9716743B2 cover?
In the new architecture, a client that desires access to a piece of hardware sends HTTP requests to a device server. The server receives a HTTP requests, accesses a device on behalf of the client, and send the device's response back to the client in the form of an HTTP response. This architecture has three primary advantages. First, it offers a clean interface for clients where all devices are …
Who is the assignee on this patent?
Mickens James, Chu David, Zhuang Li, and 2 more
What technology area does this patent fall under?
Primary CPC classification H04L67/025. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 25 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).