1 Introduction

The future Internet of Things (IoT) envisions a world populated by connected devices. Sensor networks are the key enablers for the future IoT applications [4]. One of the main requirements for these systems is to support coexistence of multiple applications [2]. In a health monitoring application, it is required to collect various types of measurements from patients. Each sensor or a set of sensors are supposed to measure body vital signs. For instance, ECG, heart rate and respiratory rate sensors are responsible for heart monitoring, while another set of sensors (accelerometer, gyroscope, and Magnetometer) are responsible for fall detection. Both heart and movement monitoring are very critical for elderly people. Providing a reliable communication when running concurrent health applications is of paramount importance.

In this paper, we take advantage of software defined networking (SDN) paradigm [6] in order to provide a higher level management and more flexibility for network reconfiguration. This way, we lift up network management from the infrastructure level to a higher level that can eventually improve network reliability by enabling the network agility. In SDN architecture the controller interacts with sensor nodes, and intermittently interrupts communication by updating flow tables based on the information collected from the network. We collect network and link parameters, and design a multi-objective optimization function running at the controller to construct new flow tables. To be concise, our contributions include: (i) designing a multi-objective SDN-based WSN, and (ii) primary evaluation of the proposed SDN-based protocol considering a use case.

The paper is organized as follows. Section 2 describes the related works on some of the existing health monitoring architectures. Section 3 mathematically formulates our system model. Section 4 evaluates the multi-objective model considering input values from a case study, and finally, Sect. 5 concludes the paper.

2 Related Works

CodeBlue [7] was designed for emergency medical care, and operates both with a small number of devices under almost static conditions, such as hospitals, as well as in ad-hoc deployments at a mass casualty site. This system architecture is very scalable with self-organising capabilities. CodeBlue supports scalability, timeliness and security, but it fails in terms of reliability.

The AID-N [3] health monitoring architecture is designed in three layers. Layer 1 consists of an ad-hoc network for collecting vital signs and running lightweight algorithms. Layer 2 includes servers that are connected to the Internet to forward information to a central server, located in Layer 3. AID-N is a real-time system architecture that fails in terms of reliability in LPWNs with unreliable links and also in networks with high sampling measurements.

The CareNet [5] builds a heterogenous network with two-tier wireless network for data sensing, collection, transmission, and processing. The intra-WBAN communication uses IEEE 802.15.4 wireless standard, while a multi-hop IEEE 802.11 wireless network provides a high performance backbone structure for packet routing. CareNet supports intra- and beyond-WBAN communications with a reasonable reliability, scalability and security. However, CareNet neglects the real-time issue in critical health monitoring applications.

The MobiHealth [8] system was designed for ambulant patient monitoring that employs cellular network, while the vital signs of the body are collected via Bluetooth and ZigBee. Thus this architecture supports both intra- and beyond-WBAN communication, however, mechanisms for security are not provided. MobiHealth provides reliability and inter-operability issues, while it fails in terms of security and data privacy.

3 System Model

In a conventional health monitoring application, the patients are equipped with a handheld device that collects the physiological data from the body sensor network. The collected data are then sent to the intended health givers (nurses and doctors) through a multi-hop network. The SDN controller will issue the rules at each forwarding nodes to route the data to the destination. We represent the communication network between the patients and the health givers by using a directed acyclic graph, \(N = \{D,L\}\), where the vertices are the communication devices, \(D = \{d_1, d_2, d_3,\cdots , d_{n-1},d_n\} \), in a network, and the edges are the links between devices, \(L = \{l_{d_1 d_2},l_{d_2 d_3},\cdots , l_{d_{n-1} d_n}\}\). Note that the links between two communication devices are labeled in order, therefore, \(l_{d_i d_j}\) implies that the link is directed from device \(d_i\) to device \(d_j\).

Sensing devices are indirectly connected to the controller which manages the network. The controller builds the flow path between the nodes in the network. A flow path (\(f_{d_x, d_y}\)) between two devices \(d_x\) and \(d_y\) is an ordered pair of links including all intermediate nodes \(\{d_x, d_{x+1},\cdots , d_{y-1}, d_y\}\), and is given by:

$$\begin{aligned}&f_{d_x, d_y} = \{l_{d_x d_{x+1}}, l_{d_{x+1}, d_{x+2}},\cdots , l_{d_{y-1} d_y}\} \end{aligned}$$
(1)

It is possible to have multiple flow paths between two devices \(d_x, d_y \). We denote each flow path as \(f_{d_x, d_y}^k\), where, \(k \in \{1, 2,\cdots , n\}\) and n is the number of possible paths between the two devices. In order to select the optimal flow path, we have considered three communication properties of: (i) path traffic, (ii) path consumed energy and (iii) path length. However, our proposed approach for optimal path selection can be extended with other objective functions or decision criteria.

We define the path traffic, \(\rho (x,y)\), for any flow path \(f_{d_x, d_y} \) as the maximum link traffic, \(\tau (l_{d_i d_j})\), between two neighbor nodes (\(d_i\), \(d_j\)) in that flow path. The link traffic, \(\tau (l_{d_i d_j})\), is defined by the amount of data that is exchanged between two neighbor nodes (\(d_i\), \(d_j\)) during a predefined period of time. Assuming same packet size \(P_s\) in bit, we compute the link traffic as the number of packets \(P_n\) that is transmitted over the link during one second, and thus, \(\tau (l_{d_i d_j})= (P_n P_s)\) bps. The maximum data rate supported by the communication link provides a theoretical bound on the maximum path traffic at which packets can be transmitted through a multi-hop path. Hence, the traffic flow must be less than the supported bandwidth for any link. Assuming a flow path \(f_{d_x,d_y}\) = \(\{l_{d_x, d_1}, l_{d_1, d_2},l_{d_2, d_y}\}\), then the path traffic, \(\rho (f_{d_x,d_y})\), is formulated as follows:

$$\begin{aligned}&\rho ( f_{d_x,d_y}) = \max (\tau (l_{d_x d_1}),\tau (l_{d_1 d_2}),\tau (l_{d_2 d_y})). \end{aligned}$$
(2)

Path consumed energy, \(\psi (x,y)\), for any flow path \(f_{d_x, d_y} \) is defined based on the maximum node consumed energy, \(\delta \), of all nodes in that flow path. The node consumed energy is the amount of energy that a node has spent. We compute the node consumed energy by \(\delta (d_i)= (E_c/E_i)\times 100 (\%)\), where \(E_i\) is the initial energy level at the device in mAh, and \(E_c\) is the amount of energy that is consumed. In a same way, assuming the flow path \(f_{d_x,d_y}\) = \(\{l_{d_x, d_1}, l_{d_1, d_2},l_{d_2, d_y}\}\), the path consumed energy \(\psi (f_{d_x,d_y})\) of the flow path \(f_{d_x,d_y}\) is computed as:

$$\begin{aligned}&\psi ( f_{d_x,d_y}) = \max (\delta (d_x),\delta (d_1),\delta (d_2),\delta (d_y)) \end{aligned}$$
(3)

The path length \(\lambda (x,y)\) is defined as the number of hop counts between two devices \(d_x, d_y \in D\) in the flow path \(f_{d_x, d_y}\). The hop count is in fact the number of links in a flow path given by:

$$\begin{aligned}&\lambda (f_{d_x,d_y}) = |f_{d_x, d_y}| \end{aligned}$$
(4)

The performance of a health monitoring system can be assessed with regards to various communication network criteria such as end-to-end latency and link reliability. The purpose of the balancing approach presented in this work is to determine, given a network and a communication pattern, what kind of trade-off arises between chosen performance metrics when multiple paths are available between two nodes. In our SDN-based system design, the controller aims to identify a preferred path between two devices considering the three design criteria mentioned earlier, namely path traffic, path consumed energy and path length. Given a set of k paths between two devices, the problem of finding the optimal path for optimizing the three design criteria is formulated as follows:

$$\begin{aligned}&\text {minimize:}\ [ \rho ( f_{d_x,d_y}), \psi ( f_{d_x,d_y}), \lambda ( f_{d_x,d_y})]&\nonumber \\&\text {where:}\ f_{d_x,d_y} = [ f_{d_x,d_y}^1, f_{d_x,d_y}^2,\cdots , f_{d_x,d_y}^k]&\end{aligned}$$
(5)

Equation (5) is a multi-objective optimization problem. For a nontrivial multi-objective optimization problem, generally there exists no single solution that simultaneously optimizes all objectives. We define objective function set for a flow path \(f_{d_x,d_y}\) as:

$$\begin{aligned}&\gamma (f_{d_x,d_y}) = \{\rho ( f_{d_x,d_y}), \psi ( f_{d_x,d_y}), \lambda ( f_{d_x,d_y})\} \end{aligned}$$
(6)

A flow path \(f_{d_x,d_y}^*\) is a Pareto optimal or efficient solution iff there is no other flow path in \(f_{d_x,d_y}\), such that:

  1. 1.

    \(\gamma _r(f_{d_x,d_y}^*) \ge \gamma _r(f_{d_x,d_y})\) where, r = {1, 2, 3}

  2. 2.

    \(\gamma _r(f_{d_x,d_y}^*) > \gamma _r(f_{d_x,d_y})\) at least for one \(r \in \{1,2,3\}\)

A Pareto optimal solution is obtained when none of the objective functions can be improved. After finding Pareto solutions of the multi-objective optimization problem, it is required to select the final solution as the controller needs to assign the most preferred solution. This is often a non-trivial task, and certain priorities such as application requirements should be considered.

4 Case Study

In this section, we apply our approach in a specific case study within a sample health application in a hospital, where patients’ physiological data must be collected continuously. The data collection is performed by a number of physiological sensors that form a body area network. The collected data is transmitted over the wireless channel (potentially through other nodes) to a higher-tier entity (nurses or doctors) in the system. The generic system model for integrating SDN within WSNs have been explained in [1].

In this case study, we assume a scenario consisting of 16 patients and four nurses in a specific department of a hospitalFootnote 1. The patient’s data should be sent through a fixed wireless infrastructure to the intended nurse. Figure 1 illustrates our network scenario, where patient “P” sends the medical information to nurse “N” in a multi-hop fashion. We explore different paths between P and N. We apply the graph transversal algorithm to the network, which results in six possible paths from P to N.

Fig. 1.
figure 1

Simulated network of a hospital department with 16 patients and four nurses.

Table 1. Energy consumption at each node at time \(t_1\), \(\delta _{t_1}(d_i)\).
Table 2. Traffic level at each link at time \(t_1\), \(\tau _{t_1}(l_{d_i d_j})\).

Tables 1 and 2 represent simulation parameters for the given case study at a particular time instance (\(t_1\)). We consider that the forwarding nodes employ IEEE 802.15.4 physical and MAC layers. We also assume that all forwarding nodes are similar and equipped with two AA-size batteries with a 2000 mAh capacity. The link traffic indicates the amount of data that is transmitted over the link connecting two neighbor nodes. Considering the maximum data rate 250 kbps, we compute the link traffic in percentage as \(d_i-d_j=\tau (l_{d_i d_j})\times 100/250\) – see Table 2.

Fig. 2.
figure 2

Possible paths in (\(\rho , \psi , \lambda \))-space, the red points indicates Pareto optimal paths. Selected routes (1-2-5-6-7 and 1-3-8-7) are among the best routes in a multi-objective function.

Figure 2 shows all the possible paths that connects patient “P” to the nurse “N” in the scenario depicted in Fig. 1. There exist two Pareto optimal paths among the six possible paths between the patient and the nurse. The controller can choose one of the two non-dominated paths based on the application requirement. For example for delay sensitive measurements, the path with the shortest path length receives higher priority. However, with a larger set of Pareto optimal paths, selecting a particular path requires an additional computation in the controller. Combining multiple objectives \((\rho , \psi , \lambda )\) into a single-objective scalar function would be as such computation to find a single Pareto optimal path. In some cases, it is preferable to have another path as a backup to increase network reliability.

5 Conclusion

In this paper, we concentrated on the problem of reliable data communication in health monitoring applications using wireless sensor networks. Software defined networking paradigm provides network flexibility and on-the-fly programming in order to adjust routing path based on network and application requirements. We considered three main network parameters to select a set of optimal paths at any given time, including: (i) path traffic that considers local traffic at intermediate nodes, (ii) path consumed energy that looks at nodes’ remaining battery level, and (iii) path length that counts number of hops. We considered a case study where the concept of optimal path planning is required to be done at the controller level and applied a multi-objective function to find the Pareto optimal solutions. This way, we found the most suitable paths based on network parameters at the run time and increase the reliability of data communication.