There are a couple of things going on in the world of the Internet of Things (IoT). One is abstraction and reuse: no one wants to re-invent WiFi or security or the many other things that have to be plugged together in order to get a device to connect to the Cloud. So complete packages that include support for all of these basics are becoming more common.
But there’s also a meeting of minds happening (or not): Micrium, a provider of real-time OSes (and supporting goodies) notes that embedded programmers primarily use C, occasionally broadening out into C++ or even Java as needs dictate and as space and performance allow. Cloud programmers, by contrast, tend to use things like HTML, Ruby, and have a much greater reliance on C++ and Java.
So… what happens when the low-level device programmer needs to write code that accesses the Cloud?
This is part of the motivation for Micrium’s Spectrum package. It includes their µC/OS-II (or –III) RTOS and stacks for network and IoT protocols. There’s also a Java virtual machine (VM) for deeply-embedded applications (running about 40K of code) – and an interface to Cloud services.
They’ve structured the Java VM so that it doesn’t require a separate core; it can reside on a single core with other code, which means less hardware is needed.
As to the Cloud interface, they’re working with a company called 2lemetry. The details are a bit vague (welcome to the IoT), but this appears to act as an aggregator for interfacing with the formal Cloud. The way they describe it, the Cloud is set up for relatively few high-bandwidth connections from things like phones and tablets. That’s as distinct from how sensor-enabled Things work, with many low-bandwidth connections. This intermediate layer appears to pull together and pre-digest data for interaction with the Cloud.
I haven’t seen an arrangement like that proposed before for the consumer IoT (CIoT) (although it might be buried implicitly in some of the platforms). It does resemble some of what goes on in the Industrial IoT (IIoT), with its greater reliance on hubs and gateways and brokers (literally or implicitly, via protocols like DDS) to filter data before sending it to the Cloud. But in this case, it would appear that this gateway function actually resides in the cloud, not locally.
The following graphic illustrates the content and relationships between the various Spectrum elements.
Image courtesy Micrium
You can find out more in their announcement.