Since the first of the year, EE Times has been running a series on design challenges in the IoT era. While providing a general overview of these challenges, they’ve focused on a few more specific areas: connectivity, security, and edge intelligence.
For our final entry in our “series on the series,” I’ll be summarizing Nitin Dahad’s piece, “Software Portability is Key Driver for Embedded IoT.”
But first a bit of a primer on what we mean by edge intelligence.
Basically, edge intelligence means that data is analyzed and solutions generated as close as possible to the point where the data itself is generated, rather than in the cloud. This helps eliminate latency, as the data doesn’t have to be transported anywhere which, in turn, can reduce security risks.
STL Partners is a UK consultancy that has a list of edge computing use cases on its website. One they cite is the use of autonomous vehicles in truck convoys. STL sees edge computing removing “the need for drivers in all trucks except the front one, because the trucks will be able to communicate with each other with ultra-low latency.” (Maybe not so good for the truckers, but good for cost reduction and efficiency in the trucking industry.)
Another is in-hospital patient monitoring, where edge computing will greatly reduce the possibility that confidential patient data will be hacked. Cloud gaming and streaming services, where latency is so critical, also present strong use cases for computing on the edge.
As edge intelligence becomes more prevalent, Nitin Dahad writes that “hardware compute architectures are becoming more complex, and, in turn, software development is becoming more challenging.” He suggests that software portability via the use of containers is a key approach to overcoming any challenges on the edge.
…containers can wrap up a program along with all of its dependencies into a single, isolated executable environment. In fact, containers have also been described as lightweight virtual machines.
Google Cloud adds that containers make it easy to share CPU, memory, storage and network resources at the operating-system (OS) level and offer a logical packaging mechanism that allows applications to be abstracted from the environment in which they actually run.
The benefits of using containers – “a clear separation of responsibility;” the ability to run virtually anywhere: “on virtual machines, physical servers and a developer’s machine;” and their ability to enable application isolation “at the OS level, providing developers with a view of the OS logically isolated from other applications” – offer portability, allowing “an application to run independently of the host environment, resulting in consistent execution across a wide range of environments.”
Microservices that break up an application “into a collection of small autonomous services” is another way to ensure software portability. (Here, Dahad goes into some detail on how Luos – “an open-source lightweight containerization platform” – works.)
This is followed by a section on software-defined products.
Software-defined products and services are enabled by the combination of hardware programmability and the ability to add or change functionality with over-the-air (OTA) updates. Virtualization and abstraction of workloads from the underlying hardware can enable more flexible and agile hardware platforms and delivery of software-defined or software-enabled services.
In software-defined products, functions become more independent from their hardware specification, enabling a broader feature set and faster evolution, as the functions are much easier to upgrade. By definition, the main product functions are software-driven and portable, able to take advantage of new hardware and easy to move to different hardware variations.
This section was especially interesting to me in that it discusses the emergence of software-defined vehicles. As a car – and tech – enthusiast, I found this compelling reading.
But overall, I found the entire EE Times series compelling reading. As the IoT grows into the Internet of Everything, we’ll have all the more reason to make sure that, as developers, we’re up to the connectivity, security, and edge computing challenges that abound.