APIs and the Internet of Things – Crossing the boundary between Device and Software

Crossing the boundary between device and software is non-trivial due to the different operational characteristics of these two worlds. Applications are counted in the hundreds and usually follow a request/response interaction paradigm in their interaction models. Devices are potentially counted in the millions and “APIs of things” often have event like characteristics.

Devices in general know only things about themselves and take action only on their own behalf. So if you want to build intelligent (Science Fiction like ) solutions, the software parts needs to carry the system level intelligence. There are two elements to that story:

- Detecting when the overall system has reached a state of interest. Sensor mediation, event streaming, real time analytics, dashboards for human consumption, all of these and more are required in the detect step.

- Taking action on the insight gained. In some cases actions may stay within the realms of software and people, but there are lots of situations where real time action by a device is required to correct an issue or leverage an opportunity

The kicker is that both of these steps need to happen in (near) real time. Whether you are detecting a potential customer walking down the street or a production line about to crash, if you are not alerted immediately, the situation quickly develops beyond your ability to leverage the opportunity or solve the issue. And once detected, if you cannot take real time action, then good intentions are to no avail. If, like me, you have ever received an urgent text message several hours delayed, you know exactly what I mean and it only goes downhill from there

Interestingly, real time interaction is the defining characteristic for a majority of Internet of Things scenarios, whether involving large numbers of devices or not. While “APIs of things” are a pre-requisite for crossing the boundary between device and software, they are not sufficient on their own – you also need a platform that can handle real time detection and action for networks of devices, small scale or large scale. Look for those kinds of capabilities in your IoT and API middleware and you will have an easier time creating intelligent and differentiating solutions. And don’t forgot to include the ability to control who can listen to and take action on which kinds of “APIs of things” – it won’t do to have a remote control for a hobby plane all of a sudden begin interacting with the operation of a commercial jet.

Connect with me on @ClausTorpJensen or read my earlier blogs. You can also subscribe to the blog list here