Integration IoT

IoT Introduction for software developers: Part 2 – Layers

This is the second article in my series on IoT for Software developers. Read Part 1

I trace my journey from embedded developer to Enterprise Integration Architect to IoT Consultant. IoT is many things to many people. If you look at the diagram in my last post, that gives you a pretty good idea of 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 to delve deeper into the technical front.

On Layers

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 are nowadays:

  • 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. A protocol like MQTT is noteworthy here because that provides a standard way of getting information from sensors.
  • These servers then in turn talk to other servers across the standardized interfaces.
  • 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 behavior 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 a case in point here but there is many a solution out there.

Microsoft Azure ISS is aiming to show up at all these levels but it is still in its infancy right now. But talk about an end-to-end solution, when was the last time you saw a developer who could design a circuit, program a micro-controller, do big data analytics and understand BI presentation platforms? A tall order but possible. Perhaps that is where the opportunity lies.