# Software Defined Networking for Improved Wireless Sensor Network Management: A Survey
## 1 Introduction  
Wireless sensor networks (WSNs) consist of individual nodes that interact with the environment by sensing and controlling physical parameters such as temperature, pressure and volume [1; 2]. The nodes also have to interact with each other through wireless communication to achieve the sensing task [3], and are autonomous although some user-driven data collection is also possible [4]. These nodes contain computation, sensing, actuation and wireless communication functions [5; 6]. Therefore, WSNs are continuously becoming important especially with the advent of Internet of Things (IoT) essential for monitoring several objects in applications such as smart cities, smart health care, smart water networks, smart power grids, smart farming and intelligent transport systems [7; 8; 9; 10; 11; 12; 13]. Furthermore, wireless sensor nodes are usually not tethered to a power source as they require a minimum amount of energy which is usually supplied by integrated batteries. WSNs are very flexible in their applications but also pose a research challenge due to their resource constrained and application specific architecture. With increased demand in the application of WSNs, the extentto which the technology can be applied is limited by their resource constrained nature. The main weakness of wireless sensor networks is related to the resource limitations of the sensor hardware namely processing, memory, energy and communication capabilities [14], although they are widely used due to the increased number of embedded devices available making deployment easier [15]. However, other issues associated with management of large-scale WSNs arise with the increased node deployment such as meeting the necessary Quality of Service (QoS) for satisfactory operation even as nodes scale up to very large numbers. This is an important factor to consider especially in medical and industrial applications where quality and reliability are critical [16; 17; 18; 19]. In addition, these nodes will not only need to process data but they would also need to be flexible on variations in their tasks. Therefore, the nodes must be reprogrammable during operations when other tasks need priority. The current vendor specific sensor nodes being used in WSNs are difficult to re-task when a new parameter is required to be sensed. [PERSON] et al. [20] give an example of 100 sensor nodes deployed in a lake WSN to measure a pollution parameter. Obviously with application specific sensor nodes being used in WSNs, task reprogramming would require each sensor to be taken out of the water and the embedded software reprogrammed in the sensor hardware. Given the need for large-scale WSNs this method would not be realistic. Some vendors have integrated Over The Air Programming (OTAP) techniques; however, the data sensing and packet forwarding protocols are still specific to the vendor. The programmer would need to study and get familiar with the particular API functions which could pose a challenge [20] and is also counter-productive as using unique programs and protocols would prevent reuse of common functionalities which if possible would expedite prototyping and development of WSNs [21]. As part of the management of a large-scale WSN, mechanisms need to be employed to allow for maintainability and system self-healing. The system should be able to change parameters based on the conditions for example reducing service quality when the energy resource becomes scarce [5]. This is a challenge with the current configuration of WSNs where the control packets and data packets are all routed through an already constrained network band. Developing a network management system for such a distributed WSN especially on a large-scale is a demanding task and is usually considered as a second phase in project planning. The above problems are inherent to WSNs simply because each node is made to have all the functionalities from the physical layer to the application layer behaving like an autonomous system that performs both the data forwarding and network control [21].