sábado, 11 de junio de 2016




WEB SERVICES REST

1.    Que es web services

Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La comunicación entre estos dispositivos lo realiza a través de la World Wide Web (WWW). Estos  servicios web son de dos tipos SOAP Y  REST.

2.    Web Services REST



Es  un estilo de arquitectura de software para sistemas distribuidos tales como la web, a diferencia de SOAP, se centra en el uso de los estándares HTTP y XML para la transmisión de datos sin la necesidad de contar con una capa adicional. Las operaciones ( o funciones)  se solicitarán mediante GET, POST, PUT y DELETE, por lo que no requiere de implementaciones especiales para consumir estos servicios. Además se podrá utilizar JSON en vez de XML como contenedor de la información, por lo que será aconsejable utilizar este protocolo cuando busquemos mejorar el rendimiento, o cuando disponemos de escasos recursos, como sería el caso de los dispositivos móviles.

La Transferencia de Estado Representacional (REST - Representational State Transfer) fue ganando amplia adopción en toda la web como una alternativa más simple a SOAP y a los servicios web basados en el Lenguaje de Descripción de Servicios Web (Web Services Descripción Language - WSDL). Ya varios grandes proveedores de Web 2.0 están migrando a esta técnología, incluyendo a Yahoo, Google y Facebook, quienes marcaron como obsoletos a sus servicios SOAP y WSDL y pasaron a usar un modelo más fácil de usar, orientado a los recursos.

3.    Ventajas REST

·         Los servicios Web REST son completamente sin estado, ello puede ser comprobado mediante el reinicio el servidor y comprobando si las interacciones son capaces de sobrevivir.
·         Rest es muy ligero, sus respuestas contienen exactamente la información que se necesita.
·         Servicios REST proporcionan una buena infraestructura de almacenamiento en caché a través de HTTP método GET (para la mayoría de los servidores), esto mejorará el rendimiento, si los datos que devuelve el servicio Web no se altera con frecuencia y no son de naturaleza dinámica.
·         Servicios REST son fáciles de integrar con los sitios web existentes y están expuestos a XML para que las páginas HTML pueden consumir la misma con facilidad. Casi no hay necesidad de re factorizar la arquitectura de sitio web existente. Esto hace que los desarrolladores sean más productivos y cómodo, ya que no tendrán que volver a escribir todo desde cero y sólo hay que añadir la funcionalidad existente.

4.    Desventajas REST

·         A mi parecer la seguridad es una deficiencia y puede llegar a ser una tarea muy difícil de implementarla correctamente.
·         No hay un estándar en sus respuestas por lo que no se definen tipos de datos.
·         Manejar el espacio de nombres URL, en algunos casos puede ser engorroso, se recomienda utilizar 2 niveles de URL.
·          REST ha sido diseñada pensando en optimización de recursos, esta ventaja de REST, hace que su principal desventaja sea la poca seguridad con la que cuenta

5.    Principios de REST


Una implementación concreta de un servicio web REST sigue cuatro principios de diseño fundamentales:



·         Utiliza los métodos HTTP de manera explícita
·         No mantiene estado
·         Expone URIs con forma de directorios
·         Transfiere XML, JavaScript Object Notation (JSON), o ambos

6.    Características de REST


·         Presenta los servicios como recursos, que pueden ser consumidos a través de la web.
·         No se considera un estándar por sí mismo más bien está basado en standares: http, URL, XML/HTML/PNG/etc.

·         Basa sus accesos a servicios web en la sintaxis de una URL. ejemplo http://www.midef.com/militarclientes/grados.
·         La simplicidad es la base de REST, el beneficio de esta simplicidad está basado conseguir un buen rendimiento y eficiencia, el mensaje transmitido por lo mismo de su simplicidad es bastante ligero, pero al ser el mensaje más sencillo carece de  estándares de seguridad y cifrado.

7.    ¿Dónde es mejor utilizar REST?

·         Cuando el servicio web no necesita tener estado.
·         Cuando buscamos mejorar el rendimiento, una infraestructura caching puede mejorarlo.
·         En momentos donde el productor como el consumidor conocen el contexto y contenido que van a intercambiar.
·         REST es muy útil para el consumo como servicio web en dispositivos móviles donde tenemos escasos recursos.
·         REST es un acierto en la creación de servicios que se utilizaran de agregadores de información en mashup o sitios web existentes. 
·         También cuando usemos tecnologías como AJAX o framewoks javascript

                        ¿Estado actual del mercado, a nivel de APIs?


Visibilidad
Rest está diseñado para ser visible y simple, lo que significa que cada aspecto del servicio debe ser autodescriptivo siguiendo las normas HTTP.
Seguridad.
Al utilizar rest garantizamos que los métodos http son seguros, lo que significa que a solicitar un recurso este requerimiento no modifica o causa ningún tipo de cambio en su estado.
Escalabilidad
Si el aumento de la demanda exige aumentar el número de servidores, esto puede hacerse sin preocuparse por la sincronización entre los mismos, ya que no deberíamos tener que preocuparnos por el estado de los recursos.
Rendimiento
La escalabilidad no debe ser confundida con el rendimiento.
El rendimiento se mide por el tiempo necesario para que una única petición sea procesada, mientras que la escalabilidad depende del número total de peticiones que la aplicación puede manejar.
  

8.    Conclusión

En este artículo, he intentado ofrecer una rápida introducción a los conceptos detrás de REST, la arquitectura de la Web. Un enfoque HTTP REST para exponer funcionalidad de una manera diferente de RPC, objetos distribuidos y Web Services, eso lleva algún tiempo para la comprensión y el real entendimiento de la diferencia. Ser consciente de que los principios de REST traen beneficios cuando está construyendo aplicaciones que sólo expone la interfaz gráfica en la Web o si quiere transformar la API de su aplicación en un buen ciudadano de la Web.

                Bibliografía

                http://docs.oracle.com/javaee/6/tutorial/doc/gijqy.html
                http://www.slideshare.net/cesare.pautasso/bpm-with-rest
                https://www.youtube.com/results?search_query=web+services+rest
                https://www.youtube.com/watch?v=KzFqke8g0aM
                https://www.youtube.com/watch?v=RuICubxGvj4


No hay comentarios:

Publicar un comentario