I just saw this tweet on my way to work this morning
Building a chain of IoT components that perform a certain function we need to make sure noone in the chain can break the chain. This could happen on several levels:
- Resilience: How does a single component behave when failing, and how does it communicate failure to the system as a whole?
- Stability: Linking components means we trust that an update of any one component will not change existing semantics for communication, i.e. kill existing APIs.
- Uptime: If components ‘phone home’ to get information on software updates they must agree on a common administration process, i.e. don’t automatically switch to a halt waiting for you to update (can’t wait until we have the situation that we have to run through our homes updating firmware on lightbulbs and power switches every other day…
There’s much more like this, I’m sure – just wanted to get my initial thoughts out quickly.
Open Source may be worth mentioning here – not necessarily as the solution, but as a fallback. A great example for this the CyanogenMod Project – many Android handset vendors abandon phones rather quickly, i.e. never deliver security patches or upgrades for the operating system. Using CyanogenMod customers can switch to an open system which fixes their problems with hardware the original venodr considers ‘obsolete’.
So far I’m not aware on any agreements by vendors of components addressing these issues.
Wouldn’t it be great to have a kind of an “Open IoT” initiative where vendors could pledge to uphold some of these values?