Software determines the role the IoT device, gateway and cloud platform play in your solution. For example, an IoT device may decide without upstream assistance to generate an alarm while the cloud platform performs deep trend analysis across multiple sites. Software at each level has different constraints driving significant differences in developer skill set.
We provide you SNAPcore for application development on the IoT device via SNAPpy, a Python-like scripting language. IoT gateway and remote applications interface with SNAPconnect for edge network access.
Developers of smart, connected products face difficult challenges creating robust, distributed applications. Edge networks often lack common tools such as socket programming for data reliability and battery-operated IoT devices require special techniques to transmit data while prolonging battery life.
IoT cloud platforms and enterprise IT applications interact with TCP/IP networks in well-understood ways, but aren't built to deal directly with the edge network complexities such as mesh routing, reliable data transport and script upgrades.
Security is as much a software issue as it is a networking issue. Software needs to be updated as new security patches are made available and applications need secure access to remote APIs.