During our journey we noticed that in our team there is some confussion about the differences between an Event hub and an IoT hub. After some research we find out that there are a lot of similarities but also differences. In this blog I will explain the concept of an Event/IoT hub and a best practice when to use an event hub and when to use an IoT hub.
The goal of this article is to give a global image of the Event hub and IoT hub. Please follow the links for more in-depth information.
Solution
Before we
can find out what the differences and similarities are, the first question that
is: “what is an event hub, and how do we use it?”
1) Event hub
An Event hub is a gateway to the Azure cloud. It’s main purpose is to collect the incoming
data and pas it to the Azure cloud, as seen in figure 1. An Event hub
process the income data, but on a low profile scale. It doesn’t have advanced sequencing or delivery guaranties.
Therefore Event hubs are a high scale messaging service, with a low latency and
a high reliability. In our cases we use an event hub to collect the data from
the raspberry, but it can also be used
in other cases, like collecting data from console games or other telemetry.
Protocol
The connected devices/entities are
called: Event publisher
Connecting Event publisher
to the Azure event hub is easy, because it support the HTTP/AMQP protocols. The most used
protocol is AMQP protocol. See here for more information about this subject
Partition
The Event hub uses partitions. Partitions are an ordered
sequences that keep events in the Event hub. This sequence is based on the ‘first
in first out’ principal. The number of partitions that can be used at the same
time is between 2 and 32. Please note
that when you create an event hub, you have to set the number of partitions. Strangely
it cannot be changed afterwards. Mostly the number of partitions are ased
on the amount of readers you are going to use (meaning the use of partitions
further in the process). The default number of partitions is 4. In short an Event hub is a high scale telemetry, one way, service, using the HTTP/AMQP protocol and is generally available worldwide.
For more information ‘how to
develop with event hub’ see the programming guide
Setting up an Event hub follows in an other blog (comming soon).
Setting up an Event hub follows in an other blog (comming soon).
2) IoT Hub
But with the ‘grow of Iot’ there came additional needs: control,
device authentication and authorization, protocol translation, etc.
Since an Event hub is an one way point
of entry it’s limited in the additional needs as mentioned before..
Figure2: IoT hub |
And this is where the IoT Hub kick in. The IoT hub can do the
same things as an Event hub, but it’s capable of much more. The most important
thing, it can handle bi directional traffic, meaning that an IoT hub is capable
of sending data back to the connected devices.
Now it’s possible to command and
control the devices, e.g. you can send a disconnect event to the device or a threshold
event, e.g. when the machine reach a certain temperature that you can shutdown
the machine.
Devices can be registered, so you
can identify devices to check whether they are allowed to connect. It’s possible to connect
more than 10 million devices (where the Event hub can handle up to 1 million
devices) , it is also easy to import bulk device identities (which is easy when
you are use 10 million devices ) .
The IoT hub can handle device error reporting, e.g. you can check the failed connection attempts per device. This can result in disconnection/disabling the device/Sensor in the IoT hub (so the sensor isn’t allowed to connect to the hub anymore).
It also support the AMQP over
webSockets en MQTT protocol whereby the latter no protocol gateway is needed (when using Azure IoT SDKs).
For more in-depth information about
the IoT hub, please see also the reference architecture
For setting up the IoT hub see our earlier blogspot: Setting up IoT hub
For setting up the IoT hub see our earlier blogspot: Setting up IoT hub
Summary
The IoT Hub can do the same as an Event hub,
but much more. Mostly because the bi-directional communication possibility, ergo an IoT hub is 'Event Hub plus'.
So why not all use the IoT hub
instead of the Event hub? Well one thing we didn’t mentioned was the pricing. With
all the extra capabilities of the IoT hub the pricing is also a lot higher. Sometimes
up to 40 times higher. So for simple event, like reading data from a weather
station, or counting how many times a door is opening a IoT hub is not necessary.
Wow!! nice explanation.
ReplyDeleteThanks a lot.