Internet of Things (IoT) development in a fractured and complex environment
The Wild West was certainly an exciting time in American history. The world of IoT development is proving to be just as exciting. IoT covers a huge range of industries and consists of massive cross-platform deployments of embedded technologies and cloud systems.
The Challenges of IoT Development
These cross-platform deployments force developers to work with devices that use different messaging formats. Modeling these different message formats presents a difficult development challenge that needs to be addressed during the development cycle.
Some protocols you might have to work with include:
- Infrastructure (6LowPAN, IPv4/IPv6, RPL)
- Identification (EPC, uCode, IPv6, URIs)
- Comms / Transport (Wifi, Bluetooth, LPWAN)
- Discovery (Physical Web, mDNS, DNS-SD)
- Data Protocols (MQTT, CoAP, AMQP, Websocket, Node)
- Device Management (TR-069, OMA-DM)
- Semantic (JSON-LD, Web Thing Model)
- Multi-layer Frameworks (Alljoyn, IoTivity, Weave, Homekit)
What an alphabet soup of protocols! To add to the complexity, many industrial environments contain imbedded legacy devices that must work with new technologies.
The Standardization Problem
Think about a chemical manufacturing plant. To maximize production efficiency, thousands of IoT devices and sensors are needed. The devices send temperature, weight and pH data to a single central node. The central node then passes the data to an app that determines the optimal times to add component chemicals for maximum yields. Each device could connect using different types of network protocols, and each protocol uses different messaging formats. There are organizations that are attempting to unify the fractured and complex IoT landscape, but standards don’t exist right now.
This lack of standardization makes IoT device messaging and translation incredibly difficult to grasp. A developer needs expertise across all the protocols in an environment to identify message type fields and cluster messages based on message type, identify keywords as small as two characters, and accurately identify the relationships between message fields and types.
How much time will need to be added to your development schedule to capture this information? Depending on the complexity of the environment, this could be an impossible problem for a single developer to solve.
Virtual IoT Devices
So what solutions can help a lone cowboy?… I mean developer. Adaptive virtual devices can significantly ease the pain associated with modeling message formats. While they do not solve the multiple protocols problem, they can help by abstracting device communications, allowing developers to focus on the application and business logic of their IoT systems.
Adaptive virtual devices are able to simulate hundreds of thousands of individual data sensors, device inputs, and their interactions with the cloud. They combine the ease of virtual device duplication with the realistic data and algorithms associated with machine learning. So now, large quantities of realistic data and devices are available for app testing. Gone are concerns about prohibitive setup costs, or the struggle to determine app scalability with limited devices to test against. Happy trails for developers.