Home United States USA — software A Roadmap to the Programmable World

A Roadmap to the Programmable World

223
0
SHARE

The emergence of millions of remotely programmable devices in our surroundings will pose significant challenges for software developers. This article proposes a roadmap from today’s cloud-centric, data-centric Internet of Things systems to the Programmable World highlights those challenges that haven’ t received enough attention yet.
This article first appeared in IEEE Software magazine. IEEE Software offers solid, peer-reviewed information about today’s strategic technology issues. To meet the challenges of running reliable, flexible enterprises, IT managers and technical leads rely on IT Pro for state-of-the-art solutions.
The emergence of millions of remotely programmable devices in our surroundings will pose significant challenges for software developers. A roadmap from today’s cloud-centric, data-centric Internet of Things systems to the Programmable World highlights those challenges that haven’t received enough attention.
The Internet Of Things (IoT) represents the next significant step in the Internet’s evolution. In the 1970s and 1980s, the Internet (such as it was) was primarily about connecting computers. In the 1990s and 2000s, the Internet was all about connecting people. Now, the emphasis is shifting toward connecting everything (or literally every thing) to the Internet.
Most IoT research currently revolves around data acquisition, realtime and offline analytics, machine learning, data visualization, and other big data topics 1. This focus isn’t surprising, given the massive business potential arising from the ability to collect data from millions of sensing devices and then digest and combine that data to provide new insights into people’s behavior and other real-world phenomena.
However, an equally important but subtler and more tranquil disruption is underway. Hardware advances and the general availability of powerful but inexpensive integrated chips will make it possible to embed connectivity and fully fledged virtual machines and dynamic language runtimes everywhere. So, our everyday things-light bulbs, door knobs, air-conditioning systems, lawn sprinklers, vacuum cleaners, toothbrushes, and the kitchen sink-will become connected and programmable dynamically.
Here, we present a roadmap from today’s cloud-centric, data-centric IoT systems to a world where everyday objects are connected and the network’s edge is truly programmable. The Programmable World-programmable in a literal sense-will pose new challenges for software developers. Today’s development methods, languages, and tools-or at least those that are in widespread use-are poorly suited to the emergence of millions of programmable things in our surroundings. We highlight issues and technical challenges that deserve deeper study beyond those IoT topics that receive the most attention today.
Because this article is forwardlooking, our roadmap is somewhat subjective. Our viewpoints stem from our own projects and collaborations in the IoT domain 2-5, as well as from our experience predicting and partaking in mobile and web computing’s evolution over the past 20 years. For instance, the emergence of virtual machines in mobile phones in the late 1990s wasn’t a dramatic technical achievement per se. However, it opened up mobile phones for the vast masses of developers, creating today’s multibillion-dollar mobile-app industry. Although history rarely repeats itself, it often rhymes. In this case, parallels with the past seem especially obvious, because we’re just reaching the point at which we’ll be able to embed dynamic programming capabilities virtually everywhere.
The term « Internet of Things » isn’t new. Over 20 years ago, MIT professors described a world in which things (devices or sensors) are connected and can share data 6. At the beginning, IoT concepts emerged around enabling technologies such as RFID and wireless sensor networks 7. However, recently, the concepts’ use has spread rapidly to various domains, including healthcare, transportation, energy, retail, building management, and process automation. Hundreds of startup companies have been created in this area, and most major corporations have announced IoT platform and component offerings. A recent study listed 115 IoT cloud platforms 8. We’re currently witnessing a classic « crossing the chasm » period in which the ultimate winners haven’t been determined yet 9. Most likely, by 2025 only a handful of dominant IoT platforms and platform vendors will remain.
What’s interesting about these IoT offerings is their conceptual similarity. Despite the apparent diversity and huge number of vendors targeting the IoT market, a common end-to-end architecture is emerging for IoT solutions, with a number of elements that are pretty much the same in all the systems 1,10,11. Figure 1 depicts the basic concepts, some of which we summarize next.
(Click on the image to enlarge it)
FIGURE 1. The emerging common end-to-end Internet of Things architecture. Despite the apparent diversity and huge number of vendors targeting the IoT market, a number of elements of this architecture are pretty much the same in all the systems.
Devices (or peripherals) are the hardware elements that collect sensor data or perform actuation, with built-in communication capabilities to submit the collected data to the broader IoT ecosystem. Functionally, devices are either sensors or actuators.
Sensors provide information about the physical entity they monitor. This information can range from the physical entity’s identity to measurable qualities such as temperature, humidity, pressure, luminosity, sound level, fluid flow, vibration, and abrasion. Sensors whose sole purpose is to facilitate an identification process are called tags.
Actuators take energy, usually transported by air, electricity, or liquid, and convert it to a state change, thus modifying one or more physical entities.
Gateways (or hubs) collect, preprocess, and transfer data from IoT devices and their sensors, employing different (usually wireless) communication protocols such as Wi-Fi or Bluetooth Smart. Gateways provide secure protocol translation between devices and the cloud, and might support tasks such as intermediate sensor data storage and preprocessing, service discovery, geolocalization, verification, and billing. Gateways also deliver the actuation requests from the cloud to devices.
In some systems, the devices themselves can upload sensing data directly to the cloud and receive actuation requests directly from the cloud-for example, through Wi-Fi, 3G or 4G, or (soon) NB-IoT (NarrowBand IoT) and 5G networks. Such solutions don’t require dedicated gateways. Furthermore, devices themselves commonly act as gateways to other devices, possibly forming peer-to-peer or mesh topologies through local connectivity.
Cloud computing and cloud-based storage and analytics solutions are central to most IoT platforms. In the generic end-to-end IoT architecture, the cloud plays three main roles.
The first is data acquisition, storage, and access. A fundamental functionality in IoT systems is sensor data collection and storage. IoT devices with sensing capabilities typically collect a large amount of data that must be harvested and stored in the cloud for further processing and analysis. Solutions in this area range from simple on-premises databases to massive replicated, fault-tolerant, scalable storage clusters. Query and notification APIs for accessing collected data are also provided.
The second role is data analytics. This refers to examining, cross-connecting, and transforming acquired sensor data to discover and present useful information-for example, to support remote information sharing and decision making. Real-time analytics refers to analysis functions that are run immediately after the data has been received. Offline analytics refers to batch-style operations that occur after large datasets have already been accumulated. Machine-learning and datamining technologies and algorithms are important in this area.
The third role is actuation support. IoT system dataflows aren’t just unidirectional. Besides sensor data collection from devices to the cloud, secure device actuation from the cloud to devices is important. Actuation capabilities are a fundamental enabler for remote device programmability.
In addition, a cloud solution supporting the IoT typically includes administrative functions such as device management, user account management, usage logging, server status monitoring, and reporting capabilities.
We believe the IoT’s future lies in the ability to orchestrate and program large, complex topologies of IoT devices remotely. As Bill Wasik argued, once devices are connected to public or private clouds, with sensor data flowing in and actuation capabilities being widely available, the focus will shift from sensor data collection and analytics to application-programming capabilities for manipulating complex realworld systems 12. The actuation capabilities offered by IoT devices form the foundation for all this. These capabilities enable us to command and control everyday objects in our surroundings (and potentially all over the planet) from the comfort of a programming environment or an app in front of us.
As we mentioned before, hardware advances will drive the transition toward the Programmable World. IoT hardware capabilities and price points are rapidly reaching an inflection point at which we’ll be able to run fully fledged OSs such as Linux or virtualized software stacks or dynamic language runtimes on almost any type of device. The low-cost chips that have recently become available already match or exceed the memory and processing power of mobile phones in the late 1990s, just before the emergence of the Java 2 Platform, Micro Edition 13 launched the mobile-app revolution. We assume that similar cross-manufacturer programming capabilities will soon find their way to our everyday things.
Another major trend driving the industry toward the Programmable World is edge computing. Classic cloud computing systems are highly centralized. Although centralized computing has significant benefits, it can be costly in terms of communication and power consumption. Consider an IoT environment consisting of a large collection of devices that are near each other. It might be inefficient to transmit the data from those devices to a remote datacenter for processing and then transmit actuation requests back from the datacenter to the devices. In an IoT deployment with tight latency requirements, latency overhead alone can make such solutions impractical.
The term « edge computing » was coined around 2002 and was originally associated with deploying applications over content delivery networks (CDNs) . The main objective was to benefit from the proximity of CDN edge servers to improve scalability and lower latency. Edge computing IoT solutions harness the network’s edge (usually gateway devices such as routers or base stations) for computation-for example, to preprocess sensor data and trigger alerts and actuation requests locally on the basis of predefined criteria. Such systems might leverage local connectivity technologies (for example, Bluetooth Smart or Wi-Fi Direct) to enable direct, more efficient, and decentralized communication between sensor devices. Virtualization technologies also play a central role in enabling migration of computation between entities.
Table 1 presents our roadmap predicting how IoT systems will evolve over the next 10 years, from both the data and programming viewpoints. The table is based on
(Click on the image to enlarge it)
Because our focus is primarily the programming aspects, in the rest of the article we dive deeper into only the programmability-related challenges.
Basically, we expect IoT programming capabilities to evolve from simple actuation features, vendor-specific apps, device APIs, and cloud-centric data acquisition and processing, to systems that extensively leverage edge computing, virtualization, and containers. Such systems will support portable, crossmanufacturer, and cross-industry application development. They’ll also allow-when required-flexible migration of computation and data between the cloud and heterogeneous edge devices. We call the forthcoming phases of IoT system evolution the Edge IoT Era and Universal IoT Era.
It’s debatable whether one API will ever cover IoT devices from entirely different domains and vertical markets. However, it’s safe to predict that in 5 to 10 years, IoT devices and their APIs will have converged significantly. It’s simply impractical for people to use a large number of vendor-specific apps to control all the devices in their surroundings. It’s also likely that the necessary infrastructure will grow around the existing IP networking and web infrastructure, enhanced with local connectivity technologies to support edge computing.
IoT development differs from mainstream mobile-app and client-side web application development in seven ways. These differences are key reasons for the implications and technical challenges we present later.
First, IoT devices are almost always part of a larger system of devices-for example, an installation of interoperating devices in a home, an office, a factory, a shopping mall, or an airplane. Furthermore, IoT devices are usually just a small part of the end-to-end architecture we discussed earlier. Granted, PCs and smartphones also have major dependencies on cloud-based services. However, from the application developer’s perspective, they’re still primarily standalone devices, with the developer targeting a single computer or smartphone.
Second, IoT systems never sleep. PCs, smartphones, and other standalone computing devices can be viewed as « rebootables »-systems that can and will be rebooted when things go awry. In contrast, IoT systems usually shouldn’t or can’t be shut down in their entirety. Although individual devices might be shut down, the entire system must be resilient to device and network outages.
Third, IoT systems are more like cattle than pets. The number of computing units (devices or CPUs) in IoT systems is often dramatically larger than in traditional computing environments, potentially reaching hundreds, thousands, or even millions.

Continue reading...