Given the fast growing technological progress in microelectronics and wireless communication devices, in the near future, it is foreseeable that Wireless Sensor Networks (WSN) will offer and make possible a wide range of applications. However real world integration and application development on such networks composed of tiny, low power and limited resources devices are not easy. Therefore, middleware services are a novel approach offering many possibilities and drastically enhancing the application development on WSN. This survey shows the current state of research in this domain. It discusses middleware challenges in such networks and presents some representative middleware specifically designed for WSN. The selection of the studied methods tries to cover as many views of objectives and approaches as possible. We will focus on discovering similarities and differences by making classifications, comparisons and appropriateness studies. At the end we argue that most of the proposed work is at an early stage and there is still a long way to go before a middleware that fully meets the wide variety of WSN requirements is achieved.