Buscar este blog

jueves, 6 de agosto de 2015

Servicios REST

Los Principios de Diseño RESTful
 
En qué consiste?
El protocolo REST (Representational State Transfer) plantea un estilo de arquitectura Cliente-Servidor, donde el servicio es identificado como un recurso y se reconoce con un URL por el cual es consumido para la comunicación e intercambio del servidor. REST se puede realizar mediante los siguientes formatos y lenguajes : XML, HTML, JSON. En caso de JSON es el más usado en los servicios de redes sociales y comunidades de internet debido a sus sencillez y facilidad del procesamiento de los mensajes.



Cómo implementarlos?

Una forma de implementar es utilizando aplicaciones web clientes basadas únicamente en javascript, debido a que se puede configurar el lado del servidor para envíar respuestas en formato JSON. REST, también es ideal para aplicaciones móviles que están basadas en HTML5.

Para una implementación REST se debe considerar lo siguiente:
Utiliza los métodos HTTP (POST, GET, PUT, DELETE) de manera explícita para que resulte consistente con la definición del protocolo.
No mantiene estado, debe incluir dentro de la petición todos los parámetros necesarios para que el servidor pueda generar la respuesta y de esta manera no mantener el estado.
Expone URIs con forma de directorios, estas deben ser intuitivas de tal manera que sea fácil adivinarlas por el desarrollador para que así pueda comprender su objetivo e identificar a los recursos derivados relacionados que este involucra.
Transfiere XML, JSON, o ambos, lo que hace posible que el servicio pueda ser utilizado por distintos clientes cuya construcción fue realizada en diferentes lenguajes, ejecutándose en diferentes plataformas y dispositivos, esto minimiza el acoplamiento de datos entre el servicio y las aplicaciones consumidoras.



Tecnologías y especificaciones relacionadas

Existen diversos proveedores que utilizan la tecnología REST como:
Yahoo! ofrece un API en REST para desarrolladores.
El mecanismo de enrutamiento de Ruby on Rails soporta aplicaciones REST utilizando el patrón de diseño MVC.
Microsoft tiene su implementación en ADO.NET Data Services Framework (anteriormente conocido como “Astoria”)
Facebook ofrece una API basado en REST.
Twitter ofrece una API basado en REST.
MEGA ofrece una API basado en REST.
MercadoLibre ofrece una API basado en REST para desarrolladores.



Mediante el uso de esta API de Java (Web Services (JAX-RS) API, es posible crear aplicaciones utilizando la tecnología REST, de una manera más rápida.
JAX-RS es un modelo de programación que proporciona un mecanismo para desarrollar servicios que siguen los principios de RES. Con el uso de JAX-RS, se simplifica el desarrollo de servicios RESTful.
JAX-RS es una API Java para desarrollar aplicaciones REST de forma rápida. Mientras que JAX-RS proporciona una forma más rápida de desarrollar aplicaciones web que los servlets, el objetivo principal de JAX-RS es crear servicios RESTful. JAX-RS 1.0 define una API de componente del extremo del servidor para crear aplicaciones REST. IBM® JAX-RS proporciona una implementación de la especificación de JAX-RS (JSR 311).

martes, 28 de julio de 2015

WEB Services SOAP

WEB Services SOAP
 

SOAP (Simple Object Access Protocol, Protocolo Simple de Acceso a Objetos) es un protocolo de mensajes entre computadores. SOAP especifica el formato de mensaje para que dos objetos en diferentes procesos puedan comunicarse por medio de intercambio de datos XML(lenguaje de marcado extensible)eXtensible Markup Language.

Características  Principales

Contiene información adicional incluida en el documento XML que describe el contenido y como podría ser procesada.
Contiene estructuras especificas en XML, tales como arrays.
Posee modelo descentralizado pudiendo ser procesado por varios intermediarios.
Tiene características especificas para operaciones clásicas de RPC con parámetros in/out, etc

Ventajas:

El uso de paquetes de archivos planos permite que los Firewalls y sniffers vean los mensajes para validarlos y verificar su seguridad, lo cual ofrece una ventaja frente a otras tecnologías.
Puede ser usado para unir las interfaces de diferentes sistemas que antes no se pensó era posible.
Permite trabajar el cualquier plataforma, Sistema Operativo o con cualquier lenguaje de programación.
Permite el uso de manejo de errores de mensajes estándar
Es independiente en la capa de Transporte, incluye los protocolos Asíncronos y Síncronos, lo cual le permitirá adaptarse fácilmente a las futuras tecnologías.
Permite extenderlo mediante el uso de estándares existentes.

Desventajas

Las respuestas son demasiado complejas y difíciles de interpretar si no se tienen las herramientas correctas para hacerlo.
Al procesar gran cantidades de paquetes de datos pueden surgir problemas debido al consumo de ancho de banda y producir demoras.
Una vez implementado, si se desea cambiar algo en el servidor impacta de forma negativa en los clientes ya que estos tienen que hacer muchas modificaciones al código.
Debido a que está basado en XML, al comunicar grandes volúmenes de información presenta dificultad entre sus aplicaciones.
Dependencia de la disponibilidad de servidores y comunicaciones.