REST Services frente a Web Services
Último post dedicado a los servicios REST, en el cual contraponemos sus prestaciones al servicio web

Tercer y último post dedicado a los servicios REST:
Tanto los Servicios Web basados en REST (RESTful Web Services) como los Web Services basados en SOAP tienen una arquitectura Cliente-Servidor para que los clientes puedan obtener información del servidor vía Web. No obstante, ambos servicios tienen una manera diferente de acceder a la información.
La primera diferencia es el modo de estructurar la información. Los Web Services permiten el acceso a la información del servidor mediante verbos o funciones. Un cliente de Web Services debe llamar a una función que el servidor ejecutará y se devolverá el resultado. Por ejemplo, podría tener esta forma:
http://www.MiEmpresa.com/Sensores/RecogeDatosSensor(Sensor001)
Sin embargo, los servicios Rest están orientados a los recursos u objetos.
http://www.MiEmpresa.com/Sensores/Sensor001
Al no existir verbos en los servicios REST, no existen funciones para recoger el catálogo completo de recursos. La solución es crear un recurso nuevo que represente el catálogo completo de recursos:
http://www.MiEmpresa.com/Sensores
La respuesta a esta solicitud podrá ser un listado de recursos a partir del cual componer las URL de cada recurso. Incluso podrá existir un link en cada uno de los identificadores devueltos para que no sea necesario componer la nueva URL, sino que sea suficiente con copiarla.
Otra diferencia importante entre Servicios Web tipo REST y Servicios Web basado en SOAP es que, en éste último, es necesario utilizar herramientas de desarrollo para generar los clientes a partir del WSDL. Esto implica que el resultado debe ser compilado en algún lenguaje y puesto en funcionamiento en algún dispositivo capaz de interpretar el código compilado. Por el contrario, los Servicios Web tipo REST no necesitan compilar ninguna función del servidor y utilizan los métodos estándar del protocolo HTTP, muy fáciles de implementar en dispositivos clientes. De esta forma, cualquier sensor capaz de conectarse a una red con una dirección IP, que por tanto implementa HTTP, será capaz de consumir servicios REST. Se gana por tanto en universalidad.
Sin embargo, esta facilidad de implementación tiene sus limitaciones. Por ejemplo, WSDL define los tipos de variables intercambiadas entre servidor y clientes, incluso pueden ser estructuras complejas.
Conclusiones
Con el actual volumen de información en la Web, se hace necesario buscar un modo sencillo de intercambiar información entre dispositivos, o desde los dispositivos hacia sistemas en la nube. Existen diferentes modos de intercambiar información entre máquinas, pero un modo realmente sencillo de implementar es el basado en los servicios REST.
Los servicios REST no son un concepto nuevo, sino que simplemente definen unos principios de arquitectura para el acceso de información en la Web. Se definen unos recursos en uno o varios servidores que son accesibles mediante métodos estándar de HTTP como GET, PUT, POST o DELETE. Es como si se estuvieran generando páginas Web accesibles desde el protocolo estándar HTTP, es decir, accesibles desde cualquier cliente Web.
Los servicios REST no son siempre la mejor opción para el intercambio de información entre servidor y clientes, pero es tan sencillo de utilizar e implementar que está ganando cada vez más presencia en Internet. Un simple sensor conectado a Internet y que sea capaz de implementar el protocolo HTTP puede formar parte de una arquitectura REST.