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
https://www.youtube.com/watch?v=KzFqke8g0aM
https://www.youtube.com/watch?v=RuICubxGvj4

No hay comentarios:
Publicar un comentario