The architecture of a connected word
Let’s start with high level view of an IoT Cognitive Systems Architecture. The real value of IOT applications is realized by enabling them as part of existing applications and higher value added services to create new innovative business solutions.
We have described the capabilities of an Enterprise IoT Stack in earlier article.
While existing IoT platforms provide a kick start, there is a need for a higher level of abstraction for devices, protocols, lifecycle management and deployment in the near future.
With respect to IoT protocols, during the course of the book, we talked about standards like MQTT & CoAP which are better suited for constrained environments than the standard web protocol (HTTP) and choosing a protocol depends on your application needs. There are evolving proposals like HPACK – Header Compression for HTTP/2 for compressing header fields in the requests which can be looked at for constrained devices. The point is with existing, or new protocols, the IoT platform, and sender/receiver need to be aware of the protocol.
Also supporting a new device/hardware configuration requires an effort to make a set of libraries (device SDKs) available, which helps to get started on the device. The programming model supported for each device would be different. Also, management of billions of devices, life-cycle, code updates and firmware upgrades are still to be solved at large.
Secondly, with devices being an integral part of our lives in a connected world, I envision a much stronger interconnect not just between machines, but also machine to human interaction and the whole cognitive aspects around it, where machines and humans (as well as machine to machine interaction) interacts using natural language, understand the context (based on the domains where IoT is applied), learns over a period of time from your behavioral patterns and suggest recommendations.
With the above aspects in mind, I propose the following architecture –
- An abstract communication protocols for devices.
- A Twitter-based architecture model for IoT with sophisticated event-driven capabilities.
- A deployment model similar to container solutions like Docker for IoT.
A New Cognitive IoT Architecture
Don’t you think it would be cool if a device can tweet about their status using natural language (instead of signals) and followers could pick up their status and do the next level of processing or take no action?
How about a car engine oil component communicating #change oil, which is followed by your maintenance engine guy which comes and changes the car oil? Here individual components can be followed by device or humans who may end up taking a corrective action.
How about you communicating to device #Wakeup at 7:00 after checking PNR #XXX or once you start your car, you get all reports of your car components in your dashboard –
#oilcc ok
#cartyrefront1 ok
#cartyrefront2 ok
#cartyrefront3 ok
#cartyrefront4 less by 2%
#enginecc ok
How about you asking question about your car via an iTweet –
@nb -> what is the mileage @xyz so far.
How about your car learning from your behavior and data and providing suggestions via iTweets –
@xyz -> @nb you can improve the mileage by the following…
The implementations and deployment can vary. You can have a private community to receive/restrict messages and follow various public communities (weather forecasts etc.) to utilize the data and act on it.
With respect to protocol, the application/device doesn’t need to worry about underlying protocols (MQTT, CoAP, etc.) and communicate via the highest level of abstraction -> the natural language. The device can be equipped to take care of underlying implementations or hand off all communications to a controller (or edge/device/intelligent gateway) which decides the next course of action and provides the next step for these devices. The device itself may not be equipped to handle context, understanding languages and context and have the lowest power consumption and totally rely on the controller which communicates the right signals for devices to carry out.
Even a simple curl like implementation can be used by the device to send messages and bulk of processing happening in controllers, like
#devicexx icurl “engine being shut down”
Note – curl is a tool to transfer data from or to a server using supported protocols. The tool is designed to work without user interaction.
As we deploy IoT in different domains, the devices, controllers and underlying implementation would be well equipped to handle languages and context for that domain. The controller can leverage cognitive services to understand the language and the context in that domain. A connected home would use a different terminology than a connected car.
This is just one aspect, how about a private WhatsApp group for your devices, sharing their status and taking corrective action or a social community of connected cognitive devices, interconnected with your actual social profiles. Gartner predicts Customer experience innovation is one of Top Trends for 2015 and coming up with innovate solutions would be a key going forward.
I have talked about the consumer perspective only, but the same concepts can be extended to any service lifecycle of an object in any industry, right from its inception to its predictive maintenance as described in manufacturing use cases earlier and using this information as part of an existing application or new value added solutions to create innovative products and make lives safer and simpler.
Docker for IoT (Deployment, Upgrades and more)
Docker is an open platform for developers and system administrators to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud.
As we look at developing new IoT-based applications, deploying it to millions of devices and supporting multiple hardware configurations, rolling out new changes, we need a container technology like docker to take care of many such challenges. Docker is gaining momentum as it solves a key problem. I have seen some early traction already, and companies are coming up with solutions to deploy Docker containers to constraint devices. Imagine you can use your existing skills like Node.js, Python to build out applications and deploy to connected device. Also, roll out and upgrades mean changing docker images, which would make it a whole lot easier. Watch out for this space as we see new technology enablers which would make it easier for rapid IoT deployments.
Hope this short introduction gave you enough insights and food for thought for a connected world. Stay tuned, exciting times ahead.