Jim Tung, fellow, MathWorks Inc. speaks to Janani Gopalakrishnan Vikram about the complexity posed by the IoT, the mindset change required for engineers to handle this with sophistication, and how model-based design can help in this.
Can you give us a glimpse of what kind of complexity the IoT poses for engineers designing devices for this era? What mind-set change is required for engineers to handle such complexity in a more efficient way, without getting flustered?
The Internet of Things (IoT) emerges out of the convergence and evolution of several existing technologies. Much like the traditional Internet and World Wide Web, it is an ecosystem of technologies working together to create dynamic systems of physical devices and information. These systems may do several things like provide data, aggregate data provided by multiple systems, analyse the aggregated data to derive useful information and trends, present the information and trends to users in a timely manner on a range of platforms, including Web, mobile devices, and desktops/laptops, and change the system’s own behaviour based on the derived information and trends.
So the complexity of the IoT can be seen in:
a) The flexible and smart embedded systems, and systems of systems, that collect data and often solve specific problems locally
b) The sophistication of algorithms needed for data scientists to extract insight from the data and for system developers to build systems to operate and adapt autonomously; these algorithms may combine feedback control, computer vision, and machine learning, for example, and may include algorithms not yet imagined
c) The need to deploy algorithms quickly to where the data resides so that analysis takes place as efficiently and quickly as possible, whether the embedded processors and FPGAs are in a local node, multi-core server farms, or the cloud, perhaps using computational frameworks such as Hadoop.
Engineers working on these systems of systems, or any of its components, should understand, at least at a high level, the requirements of the system as a whole and the capabilities of each of the subsystems. Creating an embedded system for a local device, for example, is only one part of designing an IoT system; if the engineers don’t understand how the data it generates might be used, they might design an embedded system optimised to a local problem, rather than the whole challenge. They have to expand their thinking to the whole system, even if they are not building it all.
Automating development tasks, such as code generation for embedded systems or deploying algorithms into a production IT infrastructure can also reduce complexity in key areas. The technology is well-proven, but it often requires a change in mindset to take advantage of it.