Programmatic and security models for IoT

Tim Coote <[email protected]> Wed, 21 Jan 2015 11:37:36 +0000
Newsgroups gmane.comp.capabilities.general
Message-ID <[email protected]>
Hullo

I’ve been looking at possible programming models for the IoT, and I think that E’s the best starting point that I’ve found. So, I’m seeking challenge feedback from this group as you’ve got the most, practical experience (I think).

It may be obvious, but some of the key computational challenges (contrary to how many of the players in the space perceive them), include:
- much of the value comes from combining Things (actuators + sensors + purely software Things running on computers) to encapsulate meaningful behaviour. (Call these Combinations). Combinations should be composable
- Combined behaviours run for extended periods (ideally across software upgrades), and are unattended
- Compute nodes are poorly connected to each other (typically, there is a ‘local’ compute node in a location with flaky links to Things and to the rest of the world).
- Authority to interact with Combinations and Things can very rapidly gets messy, eg I may have some intelligent agent on my phone that I want my partner to interrogate from time to time.

There are many other issues that arise from the different incentives of the different players in the supply chain leading to some useful behaviour.

The key leverage that I’m seeking is to enable the development of Combinations with a simple enough programming model that I’m enabling a large enough pool of developers, while ensuring that the behavioural and security integrity of the Combinations can be assured through a combination of the theoretical aspects of the framework and the testability imposed on the Cominations. E seems to me to address these issues well.

There are several initiatives that are aiming at the same problem space, but these all seem to me to expose too much of the plumbing/ignore the security issues (eg nodered, SmartThings) and thus make it very hard to build reliable, re-usable intelligence.  I don’t think that it’s wise at this stage to impose an external DSL as I’m expecting quite a lot of change, so I’d prefer to start with a general purpose programming language.

So I have two questions:
- Does E sound like it’s a reasonable starting point for a programming model?
- What’s a reasonable starting implementation (I’m assuming that E itself is not currently sufficiently robust, even if it’s useful for didactic purposes - but I’m happy to be told otherwise)?

tia
Tim
_______________________________________________
cap-talk mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/cap-talk