http://www.teldat.com/blog/wp-content/uploads/2014/07/177402640.jpgDesde hace varios años estamos constantemente bombardeados por el concepto de nube, donde prácticamente todo tiene cabida, ya se trate de la nube privada o la pública, con servidores instalados en la propia central del cliente o repartidos por el mundo en grandes centros de datos.

Cuando te mueves en este mundo nunca puedes olvidar la importancia de utilizar tecnologías  estándar, en la medida de lo posible, para evitar configuraciones tediosas a la hora de desplegar tus servicios.

Es por ello que hace varios años nacieron tecnologías como REST, muy extendida en la actualidad. REST (Representational State Transfer) es una técnica de arquitectura de software que define una serie de características clave a la hora de intercambiar datos con un servicio web, permitiendo, a grandes rasgos, explotar una serie de protocolos y tecnologías ya existentes para conseguirlo. Se trata de una de las arquitecturas dominantes en el mercado online, utilizada por miles de grandes compañías. Entre ellas, Amazon, eBay o Microsoft son solo algunos ejemplos destacados.

Sin llegar a constituir un estándar, REST implica la definición de un estilo a seguir para el intercambio de información, lo cual llevó a esta tecnología a ser acunada por Roy Fielding en su tesis doctoral.

Este artículo no pretende impartir una clase magistral sobre qué es una arquitectura REST actual, las características a cumplir para desarrollar una aplicación RESTful o si sencillamente nos quedamos en un REST-like o algo similar. Se trata de exponer, brevemente, qué implica el uso de esta arquitectura y las ventajas que supone en la implantación y explotación en un sistema en producción.

¿Qué hace de REST una de las arquitecturas preferidas para el intercambio de información cliente-servidor?

La principal característica de REST es el intercambio de mensajes entre clientes y servidores sin necesidad de conservar el estado. Frente a otros protocolos existentes en el mercado de los servicios web, con REST dentro del propio mensaje ya se encuentra toda la información necesaria, para que los intervinientes en la conversación no precisen conocer de antemano el estado de la misma, eliminando la necesidad de intercambiar mensajes de estado o realizar otras operaciones intermedias.

Las aplicaciones basadas en REST suelen emplear el protocolo HTTP para transmitir la información. Esto, junto al hecho de no depender de la necesidad de conservar el estado, hace que se estandarice al máximo el intercambio de datos, lo cual supone una ventaja enorme de cara a la implantación y mantenimiento de este tipo de aplicaciones.

Teniendo en cuenta mi experiencia acumulada en estos últimos años en el mundo de la computación en la nube, y el tipo de cliente corporativo y pyme existente en el mercado actual, trataré de ordenar las características que me parecen más ventajosas desde mi punto de vista:

Escalabilidad y balanceo de carga: en la actualidad, prácticamente todo lo orientamos al modo servicio, aprovechando las ventajas de eso que llamamos nube, que no deja de ser, en el caso de una nube pública, y a muy grandes rasgos, contratar a un proveedor de servicios que nos alquila un espacio lógico de procesamiento y almacenamiento. Lo habitual es que sea muy complicado conocer de antemano una aproximación clara a la demanda del servicio que estamos ofreciendo. Es por ello que se implementan mecanismos, ya sean automáticos o manuales, para desplegar nuevas instancias físicas o virtuales para prestar el servicio de forma que trabajen paralelamente. REST nos permite en este caso, al no almacenar el estado en el servidor, una total transparencia para los clientes en esta operación, sin la necesidad de conocer realmente a qué servidor se están conectando en un momento determinado.

Uso de protocolos estándar: Se dice rápido el que esta arquitectura se base en HTTP, ya que las ventajas que nos aporta son impresionantes. Cuando se realiza un despliegue en casa del cliente, especialmente en el cliente corporativo donde intervienen infinidad de departamentos (sistemas, comunicaciones, perimetrales…), el utilizar algo tan estándar como HTTP (con sus puertos y cabeceras estándar), hace que prácticamente sea innecesario reconfigurar nada en la red para ver la aplicación en funcionamiento. Cortafuegos, sistemas de detección de intrusiones, antispam, antivirus, reputación web… Todo suele estar preparado para reconocer este tipo de tráfico y, en general, el tráfico web.

Seguridad: Al hablar de HTTP, indirectamente nos referimos a HTTPS. Simplemente añadiendo un certificado a nuestro servidor, pasamos al estándar seguro en intercambio de información por antonomasia, en la navegación web.

Agilidad y eficiencia: Al basarse en un protocolo estándar, la agilidad aumenta enormemente, tanto de cara a la explotación como al desarrollo. Cualquier cliente puede conectarse al servidor, programado en cualquier lenguaje, sin necesidad de ninguna configuración o estructura especial, como sucede con otras arquitecturas. Java, C/C++, C#, Python, Perl… Prácticamente todas las barreras del lenguaje de programación desaparecen cuanto utilizas una tecnología HTTP para transportar algo tan simple como un “hipermedio”, como un XML. Además, la referencia a las diferentes funcionalidades publicadas en el servidor se realiza a través de la URI de la petición, ahorrando tráfico al ser autodescriptiva, y pudiendo incluso añadir cabeceras para transmitir alguna información sin la necesidad de enviar mensajes adicionales.

Uso de tecnologías intermedias de optimización de red: Todo tráfico web HTTP es susceptible de ser procesado por todo tipo de mecanismos intermedios, como servidores proxy (entre ellos, cacheadores), y otros que incluyan políticas de seguridad. El hecho de poder encapsular la información en HTTP, permite que esta arquitectura interaccione sin demasiados esfuerzos con otros intermediarios, los cuales permiten añadir un grado más de optimización y seguridad a las ya existentes en esta arquitectura.

Hay documentación  abundante en la web sobre las ventajas del uso de esta arquitectura frente a otras, y aquí solo he nombrado de forma somera varias de ellas sin profundizar en detalles técnicos, aunque también debemos tener muy en cuenta otros inconvenientes. En mi opinión, el mayor de todos ellos es, precisamente, una de sus mayores  ventajas: el potenciar la utilización de protocolos y tecnologías estándar. 

HTTP/HTTPS es el protocolo de transferencia de información por excelencia y, por tanto, en ocasiones, el más vulnerable de cara a los hackers cuando utilizas, principalmente, un servicio orientado a la nube. Es necesario siempre implementar mecanismos correctos de cifrado de la información para evitar situaciones incómodas, como suplantación de identidad, robo de credenciales, etc.

La responsabilidad última de garantizar un intercambio seguro de mensajes es del desarrollador, y en parte también del cliente, sobre todo cuando se trata de servicios que pueden funcionar en la red de un proveedor externo.

REST: hacia la convergencia en la gestión centralizada de Teldat

En Teldat estamos trabajando desde hace varios años en el desarrollo de nuevas tecnologías para gestionar, no solamente nuestros equipos físicos, sino todas las funcionalidades que estos nos ofrecen, desde la gestión Wi-Fi hasta la de aplicaciones en routers corporativos.

La idea principal es ofrecer a nuestros clientes este servicio en la nube. Y, para ello, hemos decidido basar nuestras comunicaciones de gestión y monitorización centralizada, en la arquitectura REST. Asimismo, hemos desarrollado toda una pila de seguridad sobre esta arquitectura, transparente para el usuario y el administrador de red, con el fin de evitar posibles ataques de terceros, especialmente cuando se emplea el protocolo HTTP.

Así, aprovechando gran parte de las ventajas de esta arquitectura, conseguimos crear un ecosistema real donde conviven los aspectos y características más destacables de los equipos, controladores WLAN, puntos de acceso, optimización de red, sincronización de información… ¡Y esto no ha hecho nada más que empezar!

En resumen, el uso de la arquitectura REST nos permite aunar con agilidad nuestras tecnologías con respecto a la gestión centralizada y la monitorización, siendo prácticamente transparente su implantación, haciendo un uso eficiente de los datos transmitidos, y aprovechando al máximo posible las ventajas tecnológicas empeladas hoy en día para la optimización de red.


Sobre el autor

Felipe Camacho

Comparte este post

Tweet about this on TwitterShare on LinkedInShare on Google+Email this to someone