[en] This thesis focuses on the study of low-resource demanding protocols, communication techniques and software solutions to evaluate, optimise and implement Web service in WSNs. We start analysing the Web service architectures in order to choose the most appropriate for the constraints of WSNs, which is REST. Based on this analysis, we review the state-of-the-art of protocols that allows implementing REST Web services. To this end, we adopt the IEEE 802.15.4 standard for the physical and data-link layers, 6LoWPAN for the network layer and CoAP for the application layer. 6LoWPAN defines two forwarding techniques, which are called mesh under (MU) and route over (RO). It also provides a mechanism to fragment packets, which is called 6LoWPAN fragmentation. In part of the thesis, we study the effects that MU and RO have on communications using 6LoWPAN fragmentation. In particular, MU does not prevent forwarding unnecessary fragments and out-of-order delivery, which could lead to an inefficient use of bandwidth and a growth of energy consumption. We propose, then, a novel technique able to improve the performance of MU with fragmented packets, which we refer to as controlled mesh under (CMU). The results of a performance evaluation in a real WSN show that CMU is able to enhance the performance of MU by reducing its packet loss and end-to-end delay. In 6LoWPAN fragmentation, the loss of a fragment forces the retransmission of the entire packet. To overcome this limitation, CoAP defines blockwise transfer. It splits the packet into blocks and sends each one in reliable transactions, which introduces a significant communication overhead. We propose a novel analytical model to study blockwise and 6LoWPAN fragmentation, which is validated trough Monte Carlo simulations. Both techniques are compared in terms of reliability and delay. The results show that 6LoWPAN fragmentation is preferable for delay-constrained applications. For highly congested networks, blockwise slightly outperforms 6LoWPAN fragmentation in terms of reliability. CoAP defines the observe option to allow a client to register to a resource exposed by a server and to receive updates of its state. Existing QoS in the observe option supports partially timeliness. It allows specifying the validity of an update but it does not guarantee its on-time delivery. This approach is inefficient and does not consider applications, i.e. e-health, that requires the delivery of an update within a deadline. With this limitation in mind, we design and evaluate a novel mechanism for update delivery based on priority. The evaluation proves that implementing a delivery order improves the delay and delivery ratio of updates. Our proposal is also able to reduce the energy consumption allowing clients to express the class of updates that they wish to receive. In part of this thesis, we present our original library for TinyOS, which we referred to as TinyCoAP, and the design and implementation of a CoAP proxy. We compare TinyCoAP to CoapBlip, which is the CoAP implementation distributed with TinyOS. TinyCoAP proves to be able to reach a high code optimization and to reduce the impact over the memory of WSN nodes. The evaluation includes also the analysis of the CoAP reliability mechanism, which was still uncovered in the literature. As a novelty, we also compare CoAP with HTTP considering different solutions for the transport layer protocol such as UDP and persistent TCP connections. The CoAP proxy enables Web applications to transparently access the resources hosted in CoAP devices. It supports long-lived communications by including the WebSocket protocol. It also supports Web applications that use the traditional HTTP long-polling technique. Finally, one of the main contributions of the proxy design is the proposal of a standard URI path format to be used by Web applications to access to a CoAP resource.

[es] Esta tesis se enfoca en el estudio de protocolos de bajo consumo, técnicas de comunicación y software con el fin de evaluar, optimizar y desarrollar servicios Web en WSNs. Empezamos analizando la arquitectura de servicios Web con el objetivo de elegir la arquitectura más apropiada debido a las limitaciones de WSNs. Ésta se denomina REST. En base a este análisis, revisamos el estado del arte de los protocolos que permiten desarrollar servicios Web. Con este objetivo adoptamos el estándar IEEE 802.15.4 por la capa física y de enlace, 6LoWPAN por la de red y CoAP por la capa de aplicación. 6LoWPAN define dos técnicas de enrutamiento, denominadas 'Mesh Under' (MU) y 'Route Over' (RO). Asimismo ofrece un mecanismo para fragmentar paquetes, llamado 6LoWPAN fragmentation. En parte de la tesis estudiamos los efectos que MU y RO tienen sobre la comunicación que utiliza 6LoWPAN fragmentation. En particular, MU no previene enrutar fragmentos innecesarios y la entrega fuera de orden, lo cual podría provocar un uso ineficiente de ancho de banda y un crecimiento del consumo energía. Proponemos entonces nueva técnica capaz de mejorar las prestaciones de MU con paquetes fragmentados que denominamos 'Controlled Mesh Under' (CMU). Los resultados de una evaluación en una WSN real demuestran que CMU es capaz de mejorar las prestaciones de MU reduciendo la pérdida de paquetes y el retraso end-to-end. En 6LoWPAN fragmentation, la pérdida de un fragmento causa la retransmisión del paquete entero. Para evitar esta limitación CoAP define blockwise transfer. Esto divide el paquete en bloques y los envía en comunicaciones fiables provocando overhead. Proponemos un nuevo modelo analítico para estudiar blockwise y 6LoWPAN fragmentation cuya validación se realiza mediante simulaciones de Monte Carlo. Ambas técnicas se comparan en términos de fiabilidad y retraso. Los resultados muestran que es preferible usar 6LoWPAN fragmentation para las aplicaciones con restricciones en retraso. Para las redes mas congestionadas, blockwise mejora ligeramente 6LoWPAN fragmentation en términos de fiabilidad. CoAP define la opción observe para permitir a un cliente registrarse a un recurso proporcionado por un servidor y recibir actualizaciones de su estado. La QoS ofrecida por la opción observe proporciona soporte parcial por el timeliness. Esta permite especificar la validez de una actualización pero no garantiza su entrega a tiempo. Este enfoque es ineficiente y no incluye aplicaciones, como por ejemplo e-health que requieren la entrega de las actualizaciones en un plazo determinado. Teniendo en cuenta esta limitación, diseñamos y evaluamos un mecanismo novedoso para la entrega de actualizaciones basada en la prioridad. La evaluación demuestra que la implementación de una orden de entrega mejora la tasa de llegada y el retraso de las actualizaciones. Nuestra propuesta es capaz de reducir el consumo de energía permitiendo a los clientes expresar el tipo de actualización que desean recibir. En parte de esta tesis presentamos nuestra librería original pro TinyOS a la que nos referimos como TinyCoAP, así como el diseño y desarrollo de un Proxy CoAP. Comparamos TinyCoAP a CoapBlip, que es la aplicación distribuida con TinyOS. TinyCoAP demuestra ser capaz de alcanzar una alta optimización de código y reducir el impacto sobre la memoria de nodos de WSNs. La evaluación también incluye el análisis de la fiabilidad de CoAP que no había sido estudiada en la literatura. Como novedad también comparamos CoAP con HTTP, considerando diferentes soluciones para el protocolo de transporte como UDP y conexiones TCP persistentes. El Proxy CoAP permite a las aplicaciones Web acceder de manera transparente a los recursos almacenados en dispositivos CoAP. Éste incluye el protocolo WebSocket, que permite el establecimiento de conexiones long-lived. También permite el uso de aplicaciones Web con la tradicional técnica HTTP long-polling