Recently Google launched an IoT framework to compete head-on with the IoT framework of Amazon. For the user it is more important to know, why would you use an IoT framework? How do such frameworks minimize time to market? And what about security?
The current status of the frameworks is that Google launched its framework 16th of May 2017, whereas Amazon launched theirs 8th October 2015. The framework of Google is still in beta while AWS – Amazon Web Services is already used in production environments.
For now, we will focus on the frameworks itself and try to answer the following questions:
- Why would you use an IoT framework?
- How do they minimize time to market?
- What about security?
Why would you use an IoT framework?
The IoT value chain spans multiple domains, like hardware, firmware, software, processing/analytics and machine learning, which requires a considerable amount of effort to connect all these domains together and to make it scalable. If your focus is to solve a business case with help of IoT, you not necessarily have the resources to develop the whole chain yourself, then an off the shelve IoT framework is something for you. Is your business case benefited by a complete customized solution or is your value proposition more aimed towards a short time to market? What is the main intellectual property that drives your business? These are the questions you need to ask yourself before considering an IoT framework.
How do they minimize time to market?
Both Amazon and Google came up with a generic architecture, that is flexible enough to cope with most of the requirements that one can have for developing an IoT application. Within both framework architectures we can find many resemblances:
• Ability to manage devices (centralized)
• Configuration management
• Communication protocol from devices or gateways to the cloud
• Data storage (Database)
• Analytics, Artificial Intelligence, Machine Learning
• Serverless Infrastructure, so you do not need to maintain your own servers.
• Using MQTT, a simple publish and subscribe message protocol
• Fully Managed Infrastructure
Most of these functionalities are depicted in the architectural diagrams of the systems of the different vendors:
Both AWS and Google use a publish and subscribe messaging middleware, based on MQTT, to get the stream of messages across to the different modules in the framework. This protocol is light enough to run on constrained embedded devices. Additional features are offered to query the stream of messages real-time and if necessary send out alerts, at Amazon, this is called the Rules Engine and at Google the Cloud Dataflow. Moreover, the data can be stored for offline analytics in a database, or processed by Machine learning algorithms.
Amazon implemented a concept that is called device shadows that keeps a persistent device state even when the device is offline for a while, and comes back online later on. Also, Google promises to deliver messages, and changes in state, after devices connect again.
What about security?
The technology companies Amazon and Google have given emphasis on security. Both frameworks use a TLS certificate-based authentication method. TLS is known as an end to end security solution and is the successor of SSL. The communication between devices and services are fully encrypted. Moreover, these certificates are used to identify (authenticate) devices and give them rights (authorize) to publish on topics or read from topics. This whitelisting technique and possibility to create policies help to centrally manage the IoT network. The implemented security solutions are necessary, especially since more and more cyber attacks occur.
All in all most of the provided functionality in the frameworks look similar, i.e. different names for similar functionality. Because architectural decisions are well thought through, these services give a kind of standard/guideline in developing your IoT solution. The provided features by both frameworks are versatile and give a head start for developing your IoT applications!
— Bob Peters (Embedded System Engineer), Embedded Systems Enthusiast