Embedded systems, meet the Internet of Things
OPEN SOURCE WAY BLOG: In many ways, embedded systems are the progenitor of the Internet of Things (IoT) – and now IoT is changing key aspects of how we design and build military embedded systems. In fact, the new model for embedded systems within IoT might best be described as design, build, maintain, update, extend, and evolve.
Typically, military embedded systems follow a model of specifying the hardware and software environment and then freezing those components for the life of the product. The operating system, application frameworks, toolchain, and other components are selected, while a snapshot of current versions is used to create a standard project environment. Finally, work on applications begins. With the exception of updates, few changes are made to the software environment.
When the next product is started, a “Big Bang” update is made, picking up all the changes since the last product. The magnitude of the changes to all components often makes it difficult to move existing code to the new environment.
This approach can work when you have defined hardware, software, application environments, and product lifecycles. It also works for reasonably constrained systems where you have good control of the complete environment.
What happens when you don’t?
That’s where IoT comes in and brings changes to embedded system design in four distinct ways:
• Military IoT commonly requires a three-tier environment – edge devices, gateways, and back-end systems.
• Communications among all devices are over network connections, rather than direct hardwired interfaces. All devices – down to individual sensors and actuators – are full-fledged computers.
• IoT is modular and interoperable. It is common to source components and subsystems from multiple sources and then connect them over the network.
• IoT is built largely on an open source foundation. Every IoT layer is available as open source, including the operating system kernel, communications libraries, compilers, and development tools. This fits with the government’s commitment to agility and modern technologies as outlined in the U.S. Digital Services Playbook.
For the military, these changes make upgrades, enhancements, and regular maintenance critical. Upgrades must be all encompassing and include hardware, drivers, operating system kernel, frameworks, and development tools. It’s also no longer feasible to simply freeze the embedded environment for the life of the product – plans must be in place to regularly update software.
Here are some other things to consider:
• Maintain a strong security focus. Ensure device integrity and authentication, robust user and access controls, and solid encryption of data and communications. IoT can be a hostile environment – make sure your solutions are trustworthy.
• Ensure a solid foundation. Low-cost, standards-based, interoperable platforms favored by IoT provide a powerful foundation. Ensure that foundation is solid – if not, you may lose control of your embedded environment.
• Back-port hardware support to older versions of the operating system. This can be quite challenging, but needs to be part of your overall strategy.
• Plan for interoperability, at least at the network level. With IoT, everything is on the network. The value is in what the network is carrying, not the underlying network connection. Make your network interfaces standard and interoperable as far up the stack as you can.
• Focus on higher levels in the stack. In IoT, the key value shifts from the underlying hardware and software platform to the applications that run on that platform, data that the platform and applications produce, and physical operations that can be performed. The low-level hardware platform, operating system, and network are now a commodity starting point.
• Plan for regular software updates. The good news is that incremental updates are much easier to consume than a complete replacement of the entire environment every five years. In many cases, you will want to follow mature update streams, updating to new versions of software components after they have had some time to stabilize — usually six to 12 months. Of course, security updates need to be tracked much more closely.
IoT is bringing many things that have traditionally been part of embedded systems into the mainstream – and extending the model with greater interoperability and integration with cloud-based back-end systems. Familiarity with embedded systems is a great starting point. When embedded systems meet IoT, the challenge is in your ability to adapt to this faster moving, longer life, highly scalable, interoperable, commodity-based environment. Get ready for the ride!