This is the second article in my series on IoT for Software developers. I trace my journey from embedded developer to Enterprise Integration Architect to IoT Consultant. IoT is many thing to many people. If you look at the diagram in my last post, that gives you a pretty good idea on how various industries are applying IoT dimensions to their specific problems. Indeed it will be these context rich applications that will drive adoption and be the fastest path to delivering value. That aside, the engineer within me is looking for the commonalities in all these implementations delve deeper on the technical front.
Like most hype the exact definition of IoT is still unclear. Everyone seems to want to ride the wave by attaching themselves somehow to the buzz. To give you some idea of what the length and breadth of IoT is now a days:
- You have your hardware and device manufacturers at the very bottom of the stack. They are corning out newer, cheaper, more powerful hardware. Making it easier to program and adding more sensors to it than ever before. Generally speaking, these are still things that you need an electrical engineer for. Understanding all the vendors, sensors, controllers and programming languages out there is a full time job and the space does not look like it will explode unless the industry standardizes this somewhat.
- These devices are then talking to each other directly and in other cases feeding their data to servers in the cloud that aggregate, filter and publish this data. Protocol like MQTT are noteworthy here that provide a standard way of getting information from sensors.
- These servers then in turn talk to other servers across standardized interface.
- Given that this is a lot of data you run into technologies like Big Data to parse this stack. Also things like Machine learning to recognize patterns and to understand the behaviour of systems better. So here you are looking at technologies like Hadoop, NoSQL etc.
- At the very top are analytics engines that can make this data visible to users in pretty looking graphs and dashboards. Microsoft Power BI tools are case in point here but there is many a solution out there.
Microsoft Azure ISS is actually aiming to show up at all these levels but it is still at its infancy right now. But talk about end to end solutions, when was the last time you say a developer who could design a circuit, program a micro-controller, do big data analytics and understand BI presentation platforms! Tall order but possible. Perhaps that is where the opportunity lies.