From smart homes, smart factories and smart cities to a world full of smart entities, the Software engineering for IoT promises to usher in a productive and efficient hyper-connected reality. The numbers that describe the scale and the potential of the IoT opportunity are consistently overwhelming. By 2020, the IoT could be a network of 50 billion devices. A network of such scale could generate up to $11.1 trillion a year in global economic gains by 2025. It could bring down healthcare costs, reduce emissions, increase agricultural productivity and enhance quality of life, among others.
But before we can harness all this opportunity, we must first address some challenges that are part of the sheer complexity of connecting and orchestrating a network of smart devices of this scale. A lot of that complexity will have to be addressed by the software industry with advanced embedded solutions tailored for the unique characteristics of the IoT. And that brings up its own set of challenges. Let’s take a look at two key areas – connectivity & interoperability and security – to understand the critical role for the software industry in extracting value from the IoT.
Connectivity & interoperability of Software engineering for the IoT
Existing network management models are equipped to handle IoT networks comprising thousands of devices. But we will soon need a more decentralized networking paradigm as the ecosystem continues to expand across billions of connections.
As the infrastructure grows, there will be two fundamental challenges facing software engineering. The first will be to develop software components and applications that can scale across a large number of connections and nodes. The second will be to orchestrate these applications across a diverse range of devices, roles, use cases, communications protocols, connectivity technologies etc. Comparatively, the scale and diversity challenges are currently quite limited in most distributed systems and are also quite easily addressed. Currently development techniques hide this diversity of platforms, devices etc. with applications that execute uniformly across systems. But in the IoT the differences in a node’s requirements, characteristics and protocols may be central to its utility and performance. Applications must therefore be able to interact with a vast range of connected components and, more importantly, leverage the unique dynamics of each component to advantage.
The IoT is also currently evolving in multiple directions with different development initiatives backing disparate technology standards, platforms and frameworks. According to McKinsey, lack of interoperability can leave up to 60 percent of the economic value of the IoT on the table.
Multimode radio capabilities at the device level could help address some of the issues of connectivity and interoperability between different IoT systems. In order to address this problem of fragmentation and compatibility, Qualcomm has launched the IoT industry’s first commercial sampling connectivity solution that allows devices to operate on different radio technologies by integrating three major radios in one system-on-chip. The SoC also supports multiple systems and protocols to ensure more seamless connectivity and interoperability.
Once device level connectivity has been achieved, interoperability issues can be addressed through software implementations to ensure compatibility across networking protocols, connectivity frameworks, cloud services etc. The primary challenge for interoperability is the use of closed and proprietary standards in IoT ecosystems. It will be difficult to realize the true value of a fragmented IoT that consists of multiple closed independent systems. But businesses are increasingly turning to open source development with almost 90 percent of respondents in a recent study indicating a preference for open source.
Security of Software engineering for the IoT
An increase in the number of connections exponentially increases the value of a network. And the higher the value, higher the security risk
Accompanying almost every discussion about the potential and the opportunity of the IoT are grim reminders of the security implications. A recent security report from Cisco warns of ‘threats of escalating impact’, like Destruction of Service, or DeOS, that could use IoT botnets to eliminate any chance of recovery. The report observed “adversaries moving fast to gain a foothold in the emerging Internet of Things (IoT), which is rampant with vulnerabilities—known and unknown”.
The best place to begin addressing the issue would be with the potential 50 billion devices that are expected to be on the IoT by 2020. A security-first approach to the design, development and engineering of these devices can address many of the security related concerns.
Software development must follow a similar process where the emphasis is on dependable security rather than competitive time-to-market. The focus has to be on minimizing the Quality Deficit, the gap between the robustness in functionality and security in every application release vis-a-vis the ideal. Continuous development, testing and deployment will become an essential practice in developing applications for the inherent complexity of the IoT ecosystem.
There will also be a learning curve both on the software and hardware side of the IoT business. Product companies, where the traditional focus would have been on hardware testing, will have to acquire the specialized skills required for testing software. In a cyber-physical world, software testers will also have to get a grasp on the dynamics of interaction between software components and their impact on the real world.
Many of the existing development techniques, both in software and hardware, may still apply broadly in the IoT paradigm. But the overall approach itself has to be engineered and adapted to the complexities and the opportunities of a scalable yet resource constrained system like IoT. The fact that many IoT applications are in critical industrial and infrastructure projects only raised the stakes when it comes to expectations of reliability, resilience and security. It will take a systems engineering approach combined with the latest lean and agile development techniques to address the sheer scale, diversity and complexity of the IoT ecosystem.