The best way to look at DeviceHive is from a bird's eye view and then down to the finer details of it. On this page you will find the high-level architecture of DeviceHive, the links to underlying libraries for devices and clients, and 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 to do is configure access, routing and networks and then focus on the 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.


  • 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. The DeviceHive module for the device provides network connectivity and command/notification dispatching. Device does not necessarily 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. Its main tasks are to provide message transmission between devices, support device networks and manage user access policies.
  • Clientis a software, like a web application or mobile client that connects to the DeviceHive server to obtain information or control a device or group of devices. Library modules for clients include structures for device interaction, and device and network management.

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
Java no no yes
C++ yes yes no
J2ME yes yes no
Python yes yes no
iOS yes no yes
Android yes no yes
Web (JS) yes no yes
Arduino yes no no
C (Microcontrollers) yes no no
RTOS yes no no
PHP no no yes

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