Keywords

1 Introduction

In 1999 Kevin Ashton was the first to use the term Internet of Things (IoT) with the aim of applying RFID in Procter & Gamble’s (P&G) supply chain optimization processes [6]. The interest in the IoT increased in 2010 when Google began storing data related to its users’ Wi-Fi networks. That same year, China established IoT as a priority topic for the development of its Five-Year Plan [50]. In 2011 the consulting firm Gartner included the Internet of Things as an emerging technology in its technological trends promotion catalogue. In 2012 important technology magazines such as Forbes or Wired began to use the IoT as their main trend theme [32]. Kethareswaran defines the Internet of Things as the connection of objects (buildings, vehicles) through a network infrastructure with electronic elements (sensors, actuators, radio frequency identification tags, etc.) to collect and exchange data [27].

The IoT is object of research and development in areas that allow objects to communicate with each other, send information they perceive from the environment to facilitate decision-making and improve the Quality of Service (QoS). The most important areas of research include transport and logistics [13], healthcare, smart homes [20], smart energy [11, 18], smart cities [12], industry 4.0 [9, 48] or personal domain [8, 27], among others. The application of the IoT in the these areas results in the following challenges: need for real-time response; insufficient resources for data transmission, storage and processing; latency; security and privacy. Likewise the disruption of the Internet of Things causes the search for strategies to mitigate the processing of data generated and exchanged by millions of sensors and devices connected through complex networks to support this level of communications. One of these strategies is Edge Computing (EC) which aims to reduce congestion by the demand for computing resources, network or storage. With this trend, computational and service infrastructures approach the end user by migrating data filtering, processing or storage from the cloud to the edge of the network [46, 60].

2 IoT, Heterogeneous WSNs and Cloud Computing

The Internet of Things can also be seen as an evolution of other concepts that are still part of the state of art of IoT technology [33, 61] and where innovative proposals are continuously being made nowadays, such as Wireless Sensor Networks (WSNs) [4, 15] and Real-Time Locating Systems (RTLS) [43, 59].

Wireless Sensor Networks provide features aimed at gathering information about users and their environment in real time [28], which allow them to easily relate to Ambient Intelligence and those applications based on this paradigm [41]. On the one hand, there is currently a wide range of bio-metric sensors that allow collecting real-time information such as heart rate, temperature, activity (by means of MEMS – Microelectromechanical Systems [14]) or even more breakthrough proposals such as oximeters [17] and blood glucose levels [45]. In this sense, there are new trends in wearable devices, such as smart watches, activity wristbands or even smart fabrics [10] that allow monitoring real-time information about the health of people. Moreover, bio-metric sensors and Wireless Sensor Networks are also applied in animals such as livestock or even pets in order to monitor their health and prevent diseases [29]. On the other hand, Wireless Sensor Networks are widely applied for gathering information about the environment and even modifying this environment according to the users’ needs by means of actuators. In this sense, there are a wide range of available sensors (temperature, humidity, light, rain, gases, wind, etc.) and applications (smart cities, home and building automation, healthcare and telecare, smart farming, hotels, etc.) [1, 38]. There are different technologies and standards used to implement Wireless Sensor Networks, including IEEE 802.15.4 ZigBee or Wi-Fi, as well as newer proposals such as Bluetooth Low Energy, NB-IoT or LoRa, each of them providing advantages and drawbacks when applying to each scenario [2, 4].

Real-Time Locating Systems [42] can be classified according to the type of its wireless infrastructure and by the locating techniques used to estimate the position of each user or asset in the environment (i.e., the locating algorithms or positioning engine) [43]. Likewise, there is a increasing range of wireless technologies aimed both at outdoor RTLS or global positioning, such as GPS, GLONASS, Galileo and BeiDou [30], and at indoor location, such as ZigBee, Wi-Fi, UWB [53] and even Bluetooth Low Energy (BLE) [51], as well as multiple locating techniques that can be combined to determine the position of the devices tracking people, animals or objects [2]. Focused on each of them, locating systems based on Wi-Fi take advantage of Wi-Fi WLANs (Wireless Local Area Networks) working on the 2.4 and 5.8 GHz bands to estimate the positions of the mobile devices on people and assets [23]. Nonetheless, Wi-Fi based locating systems present some problems including interference with existing data transmissions and the elevated power consumption by the Wi-Fi devices [53]. ZigBee is another interesting technology that can be used to build RTLS [19].

The IEEE802.15.4 ZigBee standard is specially intended to implement Wireless Sensor Networks and, as Wi-Fi, can work in the 2.4 GHz ISM band, but also can work on the 868–915 MHz band. Ultra-Wide Band (UWB) is another technology aimed to develop high accuracy indoor locating systems [37]. As it works at high frequencies (the band covers from 3.1 GHz to 10.6 GHz in the USA), it allows to achieve sub-meter location estimations. New Bluetooth Low Energy (BLE) standard provides a newly wide-spread and efficient way to implement indoor or event outdoor RTLS, which can take advantage of the existence of Bluetooth standard on almost every commercialized smart phone and which allow the use of a beacon-based schema in which reference points consume very low energy levels and have several years of battery life [51].

As can be seen, there is a challenge when building IoT scenarios gathering data from heterogeneous sources such as Wireless Sensor Networks and Real-Time Locating Systems implemented by means of different wireless technologies [4]. One way to deal with this issue is the deployment of intermediate IoT data ingestion layers [26] in order to gather data coming from different IoT sources and manage all of them in a homogeneous and normalized way in the Cloud. In fact, one of the most important features provided by IoT platforms is that they allow the collection of massive data from real scenarios. These massive data can be used for the construction of Big Data repositories [36] on which subsequently apply Data Analytics [31] or Machine Learning [5] techniques in order to extract added value from the data, detect anomalous patterns in them [49], as well as make real-time predictions from massive data coming from many different sources.

The following sections present a review of Edge Computing and another important trend that is the creation of Software-Defined Networks (SDN). In the opinion of Baktir et al., the integration of these technologies makes it possible to promote Edge Computing and its application in IoT scenarios [7].

3 Software Defined Networks and Network Virtualization

The continuous growth in the huge number of devices connected to the Internet, as well as the continuous arrival of new applications with ever greater demands on the quality of service they have to offer, in terms of bandwidth, latency and data integrity, foster the emerge of new approaches aimed to optimize the use of the resources of existing networks, as well as make profitable the investments associated with them. In this sense, and in order to provide a more efficient use of resources on IoT scenarios, which are usually made up of multiple and heterogeneous wireless sensor networks shared by different applications with distinct requirements, different solutions for the virtualization of computing, storage and network resources emerge. This is how, among other solutions, concepts such as Network Function Virtualization (NFV) arise, oriented to the virtualization of the different components of the network [21]. In a way closely related to the NFV, and often used complementing each other, Software-Defined Networks also emerge [44], as well as approaches specially focused on Software-Defined Wireless Networks (SDWNs) and Software-Defined Wireless Sensor Networks (SDWSNs) [16]. All of them are closely related to the use of Cloud over them [3].

3.1 Software Defined Networks (SDNs)

Software Defined Networks (SDNs) [25] are presented as a new option of approaching networking through a software application called a controller. In the SDN scheme, the network administrator uses a centralized control console to regulate traffic without resorting to switches [57]. In 2008, the OpenFlow protocol was introduced by the Open Networking Foundation, with its first version appearing in 2011 [44]. This protocol allows decoupling the control plane of the data plane of the networks. Thanks to the uncoupling of these two planes, the control and management of the network can be carried out remotely in the cloud (in a centralized or distributed way), while packet forwarding is carried out in the hardware devices that make up the network. The control plane commands hardware devices specifying how to forward these packets between their adjacent nodes. Therefore, it is no longer necessary to build different hardware devices with specific functions (ASIC circuits) [21], making it possible to use cheaper general-purpose hardware, with a lower unit cost and that can evolve over time simply updating its functions and software remotely, reducing replacement and warehousing costs. Figure 1 depicts this architecture [57].

Fig. 1.
figure 1

Software Defined Network, based on the work of Yang et al. [57].

3.2 Network Function Virtualization

The concept of network virtualization is defined according to Granelli et al. as the process of combining hardware and software network resources, as well as the network’s own functionalities, into a single software-based entity that is called an entity [21]. Network virtualization improves the scheme of utilization and optimization of resources through the sharing of a set of physical resources in a virtual and stagnant way between the different virtual networks. That is, each of the virtual networks believes that they have their own dedicated hardware resources and is not aware that they are being shared by other virtual networks. Figure 2 shows this approach [57].

Fig. 2.
figure 2

Network Function Virtualization, based on the work of Yang et al. [57].

Nonetheless, to address Network Function Virtualization, it is necessary to provide a clear abstraction of the underlying hardware provided by the entity defined by software. In this way, multiple service and application providers can dynamically access the different resources of the physical network, configuring and controlling it from the control plane of the network defined by software [21].

4 Edge Computing

Edge computing emerge in the 90s with the content delivery networks (CDNs) concept introduced by Akamai Technologies. [40, 54]. Shi et al., defines Edge computing as computer and network resources located between data sources, such as IoT devices and cloud data centres [47].

Figure 3 shows a basic Edge Computing scheme in which technologies used at the edge of the network allow processes to be performed close to data sources. In this scheme an IoT device such as a Smartphone, a Tablet or a PDA collects the data closely to the source where end users are. Edge nodes perform compute tasks such as filtering, processing, caching, load balancing by reducing data sent or received from the cloud and requesting services and information. For these tasks to be performed efficiently and safely, the edge must be correctly defined because it has to withstand IoT requirements such as differentiation, reliability, extensibility, isolation and response time. Three levels can be seen in Fig. 3:

  • End users and IoT devices: the group of IoT devices (sensors, actuators, smartphones, PDAs, tablets) that interact directly with the end user. Some offer services and answers in real time, however, due to their limited capacity, they send requests for services or resources to the computer equipment located in the Edge.

  • Edge Nodes: These devices perform most of the processing, storage, support high data traffic, and because they are located closer to end users than cloud servers, they are able to process, cache and perform calculations for a larger volume of data. With this computing capacity, the reduction in data flow and costs for the use of cloud services is considerable in addition to the reduction in time and latency.

  • Cloud services: in this scheme, cloud servers host applications for automatic learning, big data analysis and business intelligence.

Fig. 3.
figure 3

Edge Computing Basic Architecture, based on the work of Yu et al. [60].

In addition to Edge Computing as a trend that brings computer equipment and services closer to the end user, Software Defined Networks (SDNs) that integrate with the EC allow reducing its complexity to be implemented in IoT scenarios. The following sections present a review of models, architectures and benefits of SDN and Edge Computing integration.

5 Combining SDNs and Edge Computing on IoT Scenarios

As can be seen in the previous sections, both software-defined networks and the use of Edge Computing techniques can optimize, separately, the computational, storage and network resources in the physical networks that make up the IoT scenarios.

We have seen how the different layers of the Edge Computing multi-layer paradigm (i.e., IoT, Edge and Cloud) allow reducing the data traffic exchanged between the IoT devices and the Cloud, reducing virtual infrastructure use costs and allowing preprocessing, applying Machine Learning techniques and showing valuable data in the Edge itself, without having to consume resources in the Cloud, where the information already processed arrive thanks to the Edge Computing paradigm [52]. On the one hand, there are several studies and solutions solely focused on the Cloud [55], or others that do take into account solutions based on Cloudlets [39] or Fog Computing [58]. On the other hand, there are studies in Software-Defined Networks [22], Wireless Software-Defined Networks [24] and Network Function Virtualization [34] as complementary technologies that could work together with Edge Computing architectures.

Furthermore, there are different solutions oriented to the combination of both paradigms in order to optimize even more the resources on IoT networks [7]. Within the different approaches, we find HomeCloud [39], a framework that combines the use of NFV and SDNs with the aim at allowing efficient orchestration and application delivery from the servers that are deployed in the Edge itself. Likewise, Monfared et al. [35] propose a two-layered cloud architecture in which, on the one hand, there are data servers in the cloud and, on the other hand, there are edge devices in order to offer data more closely to users. For the control and management of the architecture a network infrastructure defined by software is proposed. There are other solutions such as Xu et al. that introduce the concept of Software-Defined networks in Fog-based scenarios [56]. The proposal of Xu el al. uses IoT devices that send information through MQTT (Message Queuing Telemetry Transport) packets to the Cloud. Instead of using just an Edge switch, they provide to this switch with broker functionalities, converting it into a Fog node, which at the same time performs as controller node of the Software-Defined Network.

6 Conclusions and Future Work

SDNs and NFV make easier to deploy and distribute applications by dramatically reducing infrastructure overhead and costs. SDNs enable cloud architectures through automated and scalable application distribution and mobility. Moreover, VFN increase flexibility and resource utilization on SDNs by means of data center virtualization. Thanks to the application of SDNs on IoT scenarios, it is possible to separate the data plane from the network control plane and introduce a logically centralized control plane, called a controller, to abstract control functions from networking.

Programmable control mechanisms of software-defined networks make them an alternative for reducing the complexity of Edge Computing (EC) architectures by enabling more efficient use of available computing resources. By using SDNs the data traffic originating from Edge servers can be dynamically routed freeing Edge devices from the execution of complex network activities such as service detection, orchestration, and QoS (performance-delay) requirements.

Future work includes the proposal of a reference architecture for the creation of systems and applications based on the Edge Computing paradigm in IoT environments. This platform will also have a second iteration, with the possibility of implementing Software-Defined Networks, as well as Network Function Virtualization, including blockchain services integrated into the architecture in a native way for the creation of IoT platforms in different environments such as Industry 4.0, smart energy and smart farming.