This is a series of articles on IOT and we have covered things like basic working of IOT and the use of sensors and actuators in the IOT ecosystem. Let me be very clear that IOT is a very broad term and it comprises of lot of inter related things. It is an area where basic knowledge about electronics is very important but as an IT architect, we should also know the level to which we need to get exposed to electronics.
Let us strip an IOT system and understand how it looks
- Sensors and actuators, camera, relays etc – Electronics
- Embedded systems that connects to sensors and actuators, cameras, relays etc (boards, chipset)- Electronics
- Protocols to connect to the Internet (WIFI/ZigBee etc) – Electronics/IT
- Data collection/processing – IT
- Data transfer (TCP/IP) – IT
- Display and analytics- IT
- Controlling other devices – Electronics/IT
We can see a big amount of collaboration between IT and electronics. This article will focus on designing an IOT system from an IT architect’s perspective.
As an IT architect, when you are asked to design an IOT system, you should be interested mainly on the following aspects
- Data collection (Collecting the data from electronic devices like sensors, camera etc)
- Data processing (Process the data)
- Data reporting and analytics (What you do with the data)
The above are from the software perspective. We should also consider the IT networking and other infrastructure items like internet connectivity, server configuration etc
I will try to put things in perspective in the following way.
Any IOT architecture must consist of the following basic components.
Instruments – This is predominantly related to electronics. Imagine that you want to read data from a set of sensors and camera. You need not look at them as electronic things with circuits, IC’s etc. You need to imagine them as a single “Thing” that can be plugged into your IT network with a particular IP. It is very similar to how you would look at a computer connected to your IT. These”Things” will keep pinging and streaming data in a specific format.
Infrastructure – You need servers and network connectivity so that you will keep the entire thing up and running. It is very similar to your LAN, WAN or Internet. You can either have these servers in house connected to the internet or look at a virtualized cloud environment. Microsoft, IBM, Amazon and most of the big player provide infrastructre for IOT. The choice depends on your particular need
Programming – This consists of the programming language that you will use to process the business logic associated with the IOT system. For example, if you have a scenario wherein you need to alert your doctor when your systolic pressure shoots above 150, then you should have a programming construct that will handle this logic. It will read data, and if the systolic value is above 150, it will trigger an alert through SMS or app message. You can use any programming language that you are comfortable with. C++, Python, Java are some good choices
Security – This is of utmost importance when it comes to IOT. As you connect more number of devices together, it opens up lot of vulnerabilities. There is always a threat to personal data as it could be compromised if not taken care properly. Assume that a camera sends in video feeds from the living room of your house and you have kept it without securing on the public internet. Imagine what would happen? All the major security nuances in IT applications apply to IOT as well
Data management – This is the key. You get massive amounts of data to be processed in IOT. If it is a simple system, your RDBMS will do the job. But if tera and peta bytes of information is streamed, you need big data systems like Hadoop and Apache Storm to be in place for data management and processing.
Data analytics – Once the data is processed and managed, what are you going to do with it? Do you know there are several vital things that can be deciphered from the so called “unused data”. This is where data analytics comes into the fray. Data intelligence, Data mining etc are some of the techniques you can use for analysing data and coming out with meaningful information which would drive the IOT ecosystem
Image source : http://forklog.net/
This image below depicts a very standard IOT architecture. It is all about improvisation as per the need. So, if you want to become an IOT architect, you need to be good in the following
- Cloud computing infrastructure
- Big data technology (any one)
- Programming (preferably scala, python, C++ or Java)
- Data management and security
- Data analytics
Learn these 5 things and try to understand how they would be used in the context of IOT. Once you gain some amount of knowledge, try to do a small prototype with a basic sensor like the one that could measure temperature. You can play around with the temperature data. Remember, unless you are hands-on at least with the basics, you can never claim to be an IOT architect!