I finally decided to delve in this wave that everyone seems to be talking about – Internet of Things! Through this series, I will describe my experience with each of the components that I get to play with. After speaking to a lot of startups, attending several IOT architecture sessions, reading about the various associated technologies – I have developed an understanding and more importantly an interest to dive into IoT. I ll start with a reference architectures and will dive into details in subsequent posts.
The above diagram gives a pretty holistic description of what an IOT project may look like. I will describe each component separately as it needs some explanation but will divide it into 3 basic components: (1) Event Producers –‘The Things’ (2) Business Analytics – Collection to Long Term Storage, I will call this ’The Magic Component’ (3) Business Connectivity – ‘Present and action’
1. Event Producers:
On the left most diagram are the ‘THINGS’ or Event Producers. This is the key element of our architecture – think sensors: devices that are generating data referred to as events based on the stimuli and associated sensor to capture that data. In the various examples I have come across it can be a weather sensor, light detection sensor, motion sensor and many more examples. This is also where you will hear about Raspberry Pi, Arduino and Galileo-s of the IoT world which act as devices to connect your sensors to the cloud or other devices to transmit and process data.
Ideally, the devices should be IP capable – low powered. These can have several different kinds of processing capabilities such as metadata processor, notification processor, rules processor, stream transformation processor, raw telemetry processor, etc. An App backend to process and transmit this data also helps. Infact the examples that I ll play with would be a simple app backend that I ll program to write to and read from these devices connected sensors.
2. The Magic:
The middle section (Collection to Long Term Storage) is where the magic happens. These ‘things’ need to connect to a Cloud gateway to relay the stream of messages (the events) that they produce. Often this is done either through a Raspbery Pi or an Arduino or a Galileo device or the sensor itself may have a cloud gateway/wifi/internet capability to do so.
This stream of messages are relayed to an Event Hub which is like a specialized component of a Service Hub – which can be thought of as an enhanced queuing service. The event hub does not store data –however just consumes it passes it on to the next step – either (1) Store it in a SQL Store or (2) Stream Analytics to derive insights from the stream of data.
(1) This is for Long Term Storage – which can be later used for training a machine learning algorithm to generate patterns for prediction or anomaly detection (just to name few of the possibilities).
(2) Using Stream Analytics, you derive insights and select only the information that is relevant to you. Think of a stream of data flowing through and the Stream Analytics component acting as a filter (or a sieve) picking out only the information that is required.
3. Presentation and Action:
There are quite a few options here – the output of Stream Analytics can be directed to a PowerBI interface to get a comprehensive, visually appealing dashboard to represent the insights. These insights further drive business impact and action.
That’s it – that is how an reference architecture or flow looks like in an IoT scenario. In subsequent posts I ll dive deeper with a real life example using
a Detection Sensor (Event Producer)
hooked up to a Raspberry Pi 2 (The Gateway)
Streaming Data to an Event Hub (The service bus – enhanced messaging service to consume the stream of messages – data)
Stream Analytics querying data from the Event Hub
Output of the query result being visually displayed on a PowerBI dashboard
Stay Tuned! We are living in exciting times and I am really looking forward to share my experiences experimenting with IoT. Please reach out to me @AdarshaDatta and share your IoT stories with me.