Abstract
Internet of Things (IoT) deployments rely on data exchange middleware to manage communications between constrained devices and cloud resources that provide analytics, data storage, and serve user applications. In this paper, we propose the Resilient IoT Data Exchange (Ride) middleware that enables resilient operation of IoT applications despite prevalent network failures and congestion. It leverages programmable Software-Defined Networking (SDN)-enabled infrastructure along with both localized edge and cloud services. The two-phase Ride middleware extends existing publish-subscribe oriented IoT data exchanges according to application-specified resilience requirements and without IoT device client modifications. The first phase, Ride-C, improves IoT data collection by gathering network-awareness via a novel resource-aware adaptive probing mechanism and dynamically redirecting IoT data flows across multiple public and local (edge) cloud data exchange connections. The second phase, Ride-D, uses this information to disseminate time-critical alerts via an intelligent network-aware resilient multicast mechanism. Results from our prototype smart campus testbed implementation, Mininet-based emulated experiments, and larger-scale simulations show that Ride enables network awareness for greater cloud connection up-times, timely fail-over to edge services, and more resilient local alert dissemination.