Foundries.io IoT development platform
Conundrum Solver
If you want to see die-hard system administrators go mad, all you need to do is bring up the topic of the Internet of Things (IoT). Virtually no other a topic will unite Linux admins in such a unanimous opinion. Stories offer examples of IoT applications that have gone wildly wrong. Many of these are urban legends and never actually happened, but they fit beautifully into the narrative of technology that doesn't really help anyone, opens security holes, and, in the eyes of many, simply shouldn't exist.
However, valid IT approaches do exist, and IoT devices perform well every day. The fact that the nation's discounters regularly offer WiFi-capable cameras with woeful security measures should not obscure the fact that in many places around the world, networked WiFi cameras with good security can protect people. In other words, IoT applications often are not as useless as some people would make them out to be (Figure 1).
This is where Foundries.io steps into the breach by offering Foundries Factory as a complete solution for companies that want IoT functionality but do not want to deploy the entire infrastructure in-house. The package includes a software stack, a standardized development environment, and a pricing model that avoids per device charges.
Importance of Security
That said, the mistrust of IoT is not entirely unjustified. Undoubtedly, a washing machine with a WiFi module for remote app control that can be hijacked by attackers on the web is not a good thing. Unfortunately, precisely this kind of attack has been extensively documented in the operations security (OpSec) scene. Often the companies that regularly make the biggest security mistakes are those that have little or nothing to do with software.
Just because you build good washing machines does not automatically make you an innovative IT company. Companies looking to give their devices a modern and smart touch regularly source modules externally and install them more or less with no inkling of what might go wrong. When the appliance reaches the customer's location and turns out to have an intrinsic security problem, both the customer and manufacturer are powerless, because most IoT devices don't even provide for updates over the network to patch security holes that have become public.
The service engineers who replace relays and bearings in washing machines are highly unlikely qualified to help customers install new firmware. Often, manufacturers looking to jump on the IoT bandwagon to reach state-of-the-art status lack a plan and have no idea how IoT can be implemented in a meaningful way.
Foundries.io
In essence, the Foundries stack is a framework into which external developers can build functionality for a device while having access in the background to the centralized skill set of a large provider, including the corresponding logistics.
If you use the Foundries stack, the marketing people promise, you no longer have to develop the major share of an IoT stack for any device yourself; rather, you can rely on a modular system that already contains the most important functions. I took an in-depth look at Foundries.io, so I could explain how the solution works, what its advantages and disadvantages are, and whether the product gives rise to hope of more secure and capable IoT applications.
What IoT Needs
What do manufacturers need to establish IoT-enabled devices successfully on the market? I have already touched on a few factors, including the inability of a company producing household appliances to develop IoT software in-house and their reliance on off-the-peg components available on the market. Unfortunately, a software stack alone does not make an IoT application; the hardware (Figure 2) also plays an important role.
A toaster that is supposed to notify the owner over WiFi that the toast is ready is a good way of proving that IoT applications require more hardware than you might at first think. A mandatory requirement is some kind of CPU, and it needs a sensor that can detect that the toast is finished. In the simplest case, the sensor might simply detect that the toaster has automatically switched itself off and ejected the toast after the time set by the user. This would be a fairly trivial implementation.
For most IoT developers, though, this basic functionality doesn't go far enough. Ideally, you would want the toaster to stop the toasting process automatically by the level of browning set in an app, without having to specify a time. This scenario requires significantly more technology, such as a sensor that can measure the degree of browning. Another function allows the built-in computer to interrupt the toasting process and eject the toast as soon as it is ready. Also, the toaster needs a network connection. Modern devices rely exclusively on WiFi, which requires a matching chip and antenna.
The hardware bill of materials leads to the conclusion that the software used in a device of this type must be capable of far more than just a few simple network commands. The task is to read and interpret values from sensors. The operating system – because even the toaster needs one – needs drivers for the sensors and components, and you need some kind of software in userland that links the features of these components in a meaningful way.
If you don't think the toaster example is practical enough at this point, imagine a similar scenario with a smart washing machine or refrigerator. The combination of a computer board with networking capability and a variety of sensors are found in almost any scenario.
Buy this article as PDF
(incl. VAT)