Internet of Things (IoT) is one of the areas in IT industry which is growing rapidly last several years and will continue to grow next years. It is expected from 2015 to 2025 the number of connected devices to grow 5 times and to have 75 billion connected devices in 2025 (15 billion in 2015) regarding Statista.
In a series of blogs will be shared experience in design of IoT Solutions (best practices). Most of the content will be related to solutions, based on Microsoft Azure.
The modern IoT solutions could be very complex and need expertise in different areas:
- Solution design
- Application development
- Business intelligence and data analytics
- Machine learning and artificial intelligence (AI)
In the heart of IoT are the billions of interconnected “things,” or devices with attached sensors and actuators that sense and control the physical world. Now technology offers many imbedded devices (many of them quite powerful) , “smart” devices, used in different industries: automotive, energy area, healthcare, logistics, wearables etc.
2. Networking/ Connectivity:
The is another one of the key aspect of IoT. Growing of internet and global connectivity allows much easier to connect embedded devices with back end servers worldwide. Now there are much less limitations, related to connectivity between devices and server applications, but network design is a major part of the solution architecture of each Internet of Things system.
In addition to network design, developers should have a working knowledge of network standards, protocols, and technologies. These include wifi, Low Energy Bluetooth, Zigbee, cellular, and RFID technologies used in consumer applications, as well as Low Power Wide-Area Network (LPWAN) technologies like LoRa.
Security is one of the biggest concerns in IoT. Communication between embedded devices and back-end servers via internet can give many options for vulnerability. Security must be built-in at every step of the design of the system. Other critical issues that are closely related to security include data ethics, privacy and liability.
The biggest challenges in IoT security are:
- The physical and network access to embedded devices and their data
- Back-end security
- Communication between embedded devices and the solution back-end
Most of the embedded devices are still not so powerful to be possible to encrypt/decrypt data if for communication is used some cryptography algorithm. This make these devices more vulnerable and it is need to put it behind firewall.
The approach how to establish the communication (part of the solution design) is also very critical for the security of Internet of Things solutions.
4. Business intelligence and data analytics:
As the number of IoT devices transmitting data increases, big data turns into really big data. Design and implementation needs big time data management skills to securely, fast and reliably ingest, store, and query big amount of heterogeneous data collated from these devices. This data management need to allow scalability and extensibility.
Many IoT devices generate latency or time-sensitive data, so it is necessary to filter or discard irrelevant data. Key technologies and platforms for data analytics that IoT developers should develop skills in include Hadoop / HDInsight, Spark, and NoSQL databases like CosmosDB, MongoDB, IBM Cloudant.
5. Machine Learning and AI:
Machine learning and AI skills are the final must-have skill for IoT developers and architects. Intelligent big data analytics involves applying cognitive computing techniques drawn from data mining, modeling, statistics, machine learning, and AI. These techniques are not appropriate for real-time data processing, but it can be applied in real-time to sensor data streams for predictive analysis or to autonomously make decisions in response to incoming data and can also be applied to historical data to identify patterns or anomalies in the data.
6. Application design and development:
This series of articles, starting with the current one are actually focused on architecture and design of IoT Solutions. These two aspects are the most important for an solution. Design is critical to have properly working, reliable and well performing solution. Technology is having progress very fast and the solutions design should be actual for the next several years. Developers should keep track of emerging frameworks and developer kits that they can leverage for rapid prototyping, as well as IoT platforms that provide infrastructure and tools to help automate building, deploying, managing, and operating IoT applications.
Next several articles from this series will be focused on the best practices in IoT slutions design and implementation.