A wireless sensor network (WSN) consists of spatially distributed autonomous sensors to monitor physical or environmental conditions, such as temperature, sound, pressure, etc. and to cooperatively pass their data through the network to a main location. The more modern networks are bi-directional, also enabling control of sensor activity. The development of wireless sensor networks was motivated by military applications such as battlefield surveillance; today such networks are used in many industrial and consumer applications, such as industrial process monitoring and control, machine health monitoring, and so on.
SDN allows network administrators to manage network services more easily through abstraction of lower level functionality into virtual services. This replaces having to manually configure hardware.
SDN allows network administrators to have programmable central control of network traffic without requiring physical access to the network’s hardware devices.
SDN decouples the system that makes decisions (match & action) about where traffic is sent (the control plane) from the underlying system that forwards traffic to the selected destination (the data plane). The inventors and vendors of these systems claim that this technology simplifies networking
The Open Networking Foundation was founded to promote SDN standards and engineering as Cloud Computing blurs the boundaries between networks and computers.
Operating systems for wireless sensor network nodes are typically less complex than generalㅡpurpose operating systems. They more strongly resemble embedded systems, for two reasons. First, wireless sensor networks are typically deployed with a particular application in mind, rather than as a general platform. Second, a need for low costs and low power leads most wireless sensor nodes to have lowㅡpower microcontrollers ensuring that mechanisms such as virtual memory are either unnecessary or too expensive to implement.
It is therefore possible to use embedded operating systems such as eCos or uC/OS for sensor networks. However, such operating systems are often designed with realㅡtime properties.
TinyOS is perhaps the first operating system specifically designed for wireless sensor networks. TinyOS is based on an eventㅡdriven programming model instead of multithreading. TinyOS programs are composed of event handlers and tasks with runㅡtoㅡcompletion semantics. When an external event occurs, such as an incoming data packet or a sensor reading, TinyOS signals the appropriate event handler to handle the event. Event handlers can post tasks that are scheduled by the TinyOS kernel some time later.
LiteOS is a newly developed OS for wireless sensor networks, which provides UNIXㅡlike abstraction and support for the C programming language.
Contiki is an OS which uses a simpler programming style in C while providing advances such as 6LoWPAN and Protothreads.
RIOT implements a microkernel architecture. It provides multithreading with standard API and allows for development in C/C++. RIOT supports common IoT protocols such as 6LoWPAN, IPv6, RPL, TCP, and UDP.
In its most general sense, middleware is computer software that provides services to software applications beyond those available from the operating system. Middleware can be described as “software glue”. Thus middleware is not obviously part of an operating system, not a database management system, and neither is it part of one software application. Middleware makes it easier for software developers to perform communication and input/output, so they can focus on the specific purpose of their application.