What is the cloud? Back in the early 1990s, engineers began using clouds as a metaphor for the Internet in diagrams. Seen from a distance, the details blur and the Internet looks amorphous like a cloud.
In practical terms, cloud computing is an array of networked computers that allow you to offload processing tasks or storage from your embedded system. It's a simple idea, but one that hides a lot of underlying complexity.
Many companies have launched services that try their best to simplify this complexity. These include Apple’s iCloud, Google Cloud Platform, Microsoft OneDrive, and many others. But these cloud computing systems are intended for use with personal computers. And embedded developers need something similar for embedded devices.
By the end of the decade, we will be surrounded by literally billions of IoT devices. And these devices will produce huge amounts of data. There are a few approaches for managing and processing all this data. Some companies will develop their own proprietary solutions. Others will rely on third parties.
If you're planning to build your own custom back-end service to support your IoT devices, it will have to become the backbone of your business. There will be no room for amateurs.
By one estimate, there will be over five thousand gigabytes of data for every human on the planet by the year 2020. This is part of the reason why some people say that every company will become a software company. The data that your products will create, and the systems that will manage that data, will soon have more value than your products themselves.
So, you have a choice. Your IoT system will need a back-end service. Will you deploy your own, or outsource it?
If you’re thinking about outsourcing your infrastructure for cloud computing, you’ll need to ask some hard questions of your service provider.
Do they provide design services to help you select communication hardware and software?
Do they support cloud protocols such as Websocket, RESTful, MQTT, CoAP, and so on?
Do they have support for remote and secure firmware upgrades?
What software do they have for viewing and processing your data, and for remote control of your devices?
Do they offer Web and mobile app development?
And what is their pricing structure?
And look for companies that allow you to test your system first with a free or low-cost account.
Here's another question: Will your application need access to third-party data?
Some services offer data from public sources to help you build a more useful application. For example, if you're building a smart energy application, you might need real-time access to weather data or utility prices.
Into the future, the amount of data generated by embedded devices will keep growing. So we'll have to start thinking differently about how we store and analyze all this information.
To keep up, data analytics will need systems that are smarter. We’ll need systems that can learn based on their own experiences, and from our interactions with them. These are called Cognitive Systems.
And thanks to cloud computing, they'll have immediate access to structured information, like databases, and unstructured information, like medical imaging and social media content. So this means you may want to learn about distributed database management systems, and analytics tools.
There are still unanswered questions about how these billions of interconnected devices will interact. All this data will need some common format, which is something we don't have yet. And what about protocols for network discovery? How will devices know how to connect to each other and to other networks?
There's much work left to do. And there are still places for innovative companies to make their mark.
In our final video, we'll look at the software running on your embedded device, the real-time operating system.