By Naveen Balani ( )
Copyright @ 2015 by Naveen Balani.
All rights reserved. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, including photocopying, printing, recording, or other electronic or mechanical methods, without the prior written permission of the publisher.
All other trademarks or registered trademarks are the property of their respective owners.
December 2015: First Edition
Last Updated: 5th December 2015
Although the author and publisher have made every effort to ensure that the information in this book was correct at press time, the author and publisher do not assume and hereby disclaim any liability to any party for any loss, damage, or disruption caused by errors or omissions, whether such errors or omissions result from negligence, accident, or any other cause. Use of the information and instructions contained in this work is at your own risk.
This is a short ebook under 15 pages targeted to get an overview on Internet of Things and Cognitive Computing and synergies between them.
The book has 4 sections -
1.Introduction to Internet of Things.
2.Introduction to Cognitive Computing.
3.Cognitive Internet of Things
4.The architecture of a connected world.
It’s 5:30 am in the morning, I have a flight to catch at 7:00 am, I wake up, get ready and rush to catch up the flight to see its late by 1 hour, I didn’t receive any SMS on the flight delay. I wish I could have checked the flight status before leaving or would be better my alarm could have rung after checking my flight status, changed my taxi booking and given me sufficient time to sleep. Well, I am not day dreaming and welcome to the world of IoT, where such kind of experiences is a reality. These are just one of the many experiences. The real experiences would be technology touching our everyday lives and making it easier and a better place to live.
If you haven’t heard about IoT, IoT is -
“Internet of Things is a vision where every object in the world has the potential to connect to the Internet and provide their data so as to derive actionable insights on its own or through other connected objects“
The object can be anything – a vehicle, machinery, airport, city, people, phone, shoe or the clock I described earlier. From a connected vehicle solution, you can understand the driver behaviour and vehicle usage patterns, from a connected machines solution you can determine when do machines need servicing, from a connected airport solution you can understand many things like – how much time the passenger needs to wait for check-in and security, from an operational perspective it could help to optimize the passenger movement and ensure the right equipment are available at the right time to ensure quick serviceability and finally say, from a connected footwear solution you can understand how much you have run so far and your app can automatically purchase a new pair of shoes based on the remaining shoe life. From a technical perspective to track the data and send/receive information, the object should be equipped with some kind of sensors and controllers, plus connected to the some medium (internet) to send/receive information. IoT can be thought of Object + Sensor/Controller’s + Medium (Internet) + Analytics to derive the business outcome. Though technologies have been around, it’s now under a new umbrella, to take care of new possibilities and opportunities.
As we can see, it’s not just about connectivity, but how to use the connected data in the context of your application or for that matter other connected solutions to derive insights which can’t be uncovered before. Today we are seeing data (both structured and unstructured) growing by leaps and bounds available through mediums like blogs, social media, transactional systems, etc. With advent of the IoT, you will see a large volume of raw data emitting from devices like sensors. Such huge and complex set of data, if not attended to, can go wasted and opportunity lost in terms of building a smart environment around us.
Today we are living in the world of disruptive technologies where every kind of technology is connected to form a solution. IoT is no exception. With over 100+ vendors providing 100+ devices, services and platforms to build IoT applications, and plus we have existing systems having already employed some connectivity and automation, like manufacturing plants, it is going to take a huge effort in making this vibrant heterogeneous environment of devices talk to each other. While focusing on the issue of addressing this web of complexity, understanding the real benefit of IoT and most importantly how to get started on IoT is lost. If you are looking to get started on and building IoT applications, I would like to recommend my book on Enterprise IoT – A Definitive handbook ( )
Cognitive computing are systems that are designed to make computers think and learn like a human brain. Similar to an evolution of a human mind from a newborn to teenager to an adult, where new information is learned and existing information augmented, cognitive system learn through the vast amount of information fed to it. Such a system is trained on a set of information or data so that it can understand the context and help in making informed decisions.
For example, if you look at any learning methodology, a human mind learns and understands the context. It is able to answer questions based on learning’s and also make an informed judgement based on prior experiences. Similarly, cognitive systems are modelled to learn from past set of reference data set (or learning’s) and enable users to make informed decisions. Cognitive systems can be thought of non-programming systems which learn through the set of information, training, interactions and a reference data set.
Cognitive Internet of Things is about enabling current IoT technologies with human-like intelligence.
Cognitive systems in the context of IoT would play a key role in future. Imagine 10 years down the line where every piece of a system is connected to the internet and probably an integral part of everyday lives and information being shared continuously, how you would like to interact with these smart devices which surround you. It would be virtually talking to smart devices and devices responding to you based on your action and behaviour.
Let’s take an example of a cognitive IoT application. I have taken a very simple example to get the technology and benefits across.
1.I step out of my home and the home electricity turns into a power saver mode.
2.I step into the car and the car recognizes me.
3.My car seats are automatically adjusted.
4.My favourite music station is set and the play list is started.
5.Aggregated news for the day is available and tailored for me on my dashboard and read it out by the dashboard device. If I am travelling, weather forecast and news related to the place I am travelling is available as an add-on.
6.As I pass by malls, my car reminds to purchase stuff.
7.I sync my digital cart and get my purchases quickly. No need to move around, find things and put it to a physical cart.
8.I come back to my car, I start interacting with the Car in Natural human language instead of typing in numbers and searching for things.
9.I ask for good places for lunch which I haven’t visited. Based on my past experiences and cuisine preference, ratings from third party sites, a set of recommendations are provided. I choose one of them.
10.GPS devices are synced up based on my response and direction’s changed.
11.An alternative route is automatically selected based on traffic sensors and weather condition which the GPS device is subscribed to.
12.I have lunch, I don’t need to carry cards, I am being recognized. The best credit card (after checking available offers for that restaurant) from my digital wallet is automatically selected and used for the payment. Welcome to smart cashless transactions.
13.I come back home, lights are back up again, all devices started
14.I say “good night”, lights are dimmed and tell my clock to wake me up at 7:00 am after checking my flight status.
As you see in the above example, the real value is derived from how data from sensors are used as part of the broader ecosystem and how cognitive capabilities and learning are used to provide value added services. This is not programmed but learned over time. For instance, the connected car over a period of time should also provide recommendations on how to improve the mileage based on your driving patterns.
In future, you should be able to speak to devices through tweets, spoken words, gestures and devices would be able to understand the context and respond accordingly. For instance, a smart device as part of connected home would react differently as compared to devices in a connected car.
For a connected home, a cognitive IoT system can learn from you, set things up for you based on your patterns and movements, be it waking you up at the right time, start your coffee vending machines, sending you a WhatsApp message to start washing machine if you missed to start it based on your routine or take care of the home lighting system based on your family preferences. Imagine putting a smart controller and set of devices around your home, which observes you over a period of time and start making intelligent decisions on Day 10 and continuously learn from you and your family interactions.
This is one of the areas where we would see a lot of innovation and investment happening in future and would be a key differentiator for connected products and extension to one’s digital lives.
Next, we will look at how to realize the cognitive IoT architecture.
Let’s start with a 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.
Let’ start with what exists today. Creating an IoT Solution, requires a fundamental set of capabilities which is provided by an IoT platform. An IoT platform enables creating IoT solutions rapidly and at a minimum provides the following base set of capabilities.
•An ability to register and connect things (devices)
•Ability to send and receive messages using some protocol.
•Manage subscription of these devices.
•Storage of messages.
•Visualization of messages.
•Analyzing the messages.
•Taking action after analyzing the messages.
•Security and Privacy
•Life cycle and governance.
The following figure describes some of the key components of an Internet of Things application. An IoT platform should enable building out an IoT application by providing a set of services that can be composed to form an end solution.
For instance, an IoT solution would rely on device SDKs to enable heterogeneous devices to connect securely to the platform, services to store, analyze and filter messages, creating process flows and rules to determine what action needs to be executed, along with real-time monitoring and analysis.
With respect to IOT protocols, standards like MQTT & CoAP have evolved which are better suited for constraint 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 needs to be aware of the protocol.
Also supporting a new device/hardware configuration requires an effort to make a set of libraries 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 not is solved at large.
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.
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 behavioural 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.
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 –
#cartyrefront4 less by 2%
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 behaviour 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 to 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 use by device to send messages and bulk of processing happening in controllers, like
#devicexx icurl “engine being shut down”
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 and using this information as part of an existing application or new value added solutions to create innovate products and make lives safer and simpler.
How about developing a code which runs on a constrained device as well as run on our Laptop?
As we look at developing new IoT-based applications, deploying it to 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 ebook gave you enough insights and food for thoughts for a connected world. We plan to realize the architecture as part of our upcoming book on Cognitive IoT – A Definitive handbook. Stay tuned, exciting times ahead.
â€œInternet of Things is a vision where every object in the world has the potential to connect to the Internet and provide their data so as to derive actionable insights on its own or through other connected objectsâ€œ "Cognitive computing are systems that are designed to make computers think and learn like a human brain. Similar to an evolution of a human mind from a newborn to teenager to an adult, where new information is learned and existing information augmented, cognitive system learn through the vast amount of information fed to it. Such a system is trained on a set of information or data so that it can understand the context and help in making informed decisions." Cognitive Internet of Things is about enabling current IoT technologies with human-like intelligence. This is a short ebook under 15 pages targeted to get an overview on Internet of Things and Cognitive Computing and synergies between them. The book has 4 sections - 1.Introduction to Internet of Things. 2.Introduction to Cognitive Computing. 3.Cognitive Internet of Things 4.The architecture of a connected world.