Documentation

The best way to look at DeviceHive is from bird's eye view and then down to the very details of it. On this page you will find the high-level architecture of DeviceHive, the links to underlying libraries for devices and clients, as well as the descriptions of underlying RESTful and Binary protocols, for those of you who want to know everything.

The diagram below illustrates the components that make up DeviceHive and how they talk to each other. Think of it as Internet for devices. All you need is to configure access, routing and networks and then focus on programming of actual apps, instead of spending time on plumbing.

For further reference, click on any part of the diagram or read below for platform breakdown.

preview2.png

  • Deviceis a piece of hardware that is connected to the network using RESTful or binary protocol. The software running on this device implements custom logic. DeviceHive module for the device provides network connectivity and command/notification dispatching. Device does not nesessary have to be a microcontroller or system-on-chip.
  • Gatewayis a bridge between devices and the cloud data network. It can aggregate or dispatch messages between devices and the network. The default implementation of a gateway provides simple relaying of binary to RESTful protocol. Gateway may also have custom message processing logic to provide more sophisticated message processing actions.
  • Serveris the core of message processing. It can be located either in the cloud or on local network. Main tasks of the server are to provide message transmission between devices, support device networks and user access policies.
  • Clientis a software, like a web application or mobile client that connects to DeviceHive server to obtain information or control a device or group of devices. Library modules for clients include structures for device interaction, device and network management as well.

Below is a tabular view of all the components that make up the DeviceHive. Click on a cell of the technology/component of interest to navigate to its reference.

Device Gateway Client
.NET Framework yes yes yes
.NET Micro Framework yes no no
C++ yes yes no
J2ME yes yes no
Python yes yes no
iOS yes no yes
Android yes no yes
Web (JS) no no yes
Arduino yes no no
C (Microcontrollers) yes no no

The core of DeviceHive framework is the exchange protocol which describes network connectivity and message routing.
There are two versions of the protocol already implemented:


RESTful HTTP Protocol

for devices or computers that support TCP/IP connections and have enough hardware capabilities to serialize/deserialize JSON. Find out more


Binary Protocol

for small and simple devices that do not have enough processing capabilities or have no TCP/IP support and are connected to other devices via simple protocols (RS-232, I2C, etc.). Find out more