## 1 Introduction  
Virtualization creates an environment in embedded and sensor networks, by which efficient sharing of resources, services and networks is achieved. Virtualization combines different hardware and software on a platform along with the network functionalities to control and administrate all the network resources. The goal of virtualization is to provide users with seamless access to the sensor data and efficient utilization of the resources. One of the main objectives of the virtualization is to match the application needs in the best possible way, and to make sure that multiple heterogeneous sensor networks are managed in such a way that they ensure efficiency and quality. Virtualization hides all the physical details of the sensors and networks from the user application. User applications feel as if running directly on the hardware. It enables the users, services and applications to interact with each other. Virtualization enables sharing of resources in a secure and energy efficient manner [1]. Sensor networks are required to dynamically collaborate and facilitate different applications, on the air integrating sensor networks, forming clusters and supporting multiple radios. Virtualizations of networks and sensors have wide application areas that include health care, smart space, structural monitoring, telemedicine, vehicle monitoring, agriculture, industrial, military, environment, smart home, smart city and entertainment. Sensor networks have usually been explored in application specific areas. But for the Internet of Things (IoT) to be a reality and further, the idea of IoE to be practical research community has to come up with middleware designs that have the capabilities of integrating all the sensors having heterogeneous nature and specifications with respect to power consumption, processing time, memory and transmission range. Due to the owner's strict control over the WSN domains, conflicting goals, different sensor node and vendors, with no standard in place it is difficult to introduce a large scale federated WSN [2]. Virtualization of sensor network can facilitate a number of infrastructure providers and service providers, enabling them to combine together and support each other's interest and facilitate the user at the maximum. Virtualization also plays its part in the making sensor-as-a-service (SaaS) by facilitating both the infrastructure providers and the service providers. Virtualization decouples the functionalities in WSN. Furthermore, it opens new horizons for improvement by dividing of the traditional service providers into two infrastructure providers and service providers. Infrastructure providers are responsible for the management of the hardware or the physical infrastructure and Service providers responsible for the software, resource management and the service provisioning. The decoupling of the infrastructure from services is done by the middleware, where services are not concerned with the infrastructure and on the other hand infrastructure has nothing to do with the services. The network and sensor virtualization can be achieved by the middleware layer. Middleware sits between the application layer and the lower layers providing abstraction from the network details. Middleware is a software tool that helps in hiding the complexities of the underlying heterogeneous hardware, radio technologies, networks and low level software. Furthermore, Middleware provides ease of managing the network resources using the concept of virtualization of the network and the virtualization of the sensors. This paper is aimed at surveying the available middleware that support virtualization, both in terms of network and sensors. A number of design approaches have been bidden for the pooling and provisioning of sensed data satisfying different functionalities and applications. Theoverall goal of making sensed data to be available, and to fulfill the concepts of SaaS regardless of what conditions are beaning faced at any time and place [3,4].