Curso de desarrollo de Servicios Web I |Web Services | Semana 1

Curso de desarrollo de Servicios Web I |Web Services | Semana 1

Curso de desarrollo de Servicios Web I |Web Services | Semana 1

Hola a todos y bienvenidos al nuevo Curso de desarrollo de Servicios Web I |Web Services | Semana 1, empezaremos a desarrollar un nuevo curso.

Además, en este curso como ustedes ya saben seguiremos trabajado desde lo más básico a lo más avanzado para poder lograr nuestros objetivos del curso.

En consecuencia, en este curso llegaremos a entender la arquitectura de software como un conjunto de componentes para protocolos de comunicación y/o intercambio de información.

Por lo tanto, utilizaremos Java Web Services (JWS) para desarrollar componentes de java API, RESTFull, JMS entre otras y su desplieguen en una arquitectura distribuida

Conceptos generales de Web Services

Los Web Services son aplicaciones distribuidas que se basan en una serie de protocolos y estándares para intercambiar información entre diferentes aplicaciones con diferentes tipos de métodos.

Por lo tanto, podemos consumirlos desde internet o desde una intranet, en consecuencia, estos webs services se convierten en una petición totalmente independiente de la plataforma.

Lo más importante en un web service es que no permite conectar a diferentes plataforma y lenguaje de programación que estemos utilizando en la implementación interna del servicio.

Por ejemplo:

  • Los Drones permiten consumir un servicio web alojado en internet para enviar fotos tomadas al instante con su cámara con la que se encuentra equipado.
  • Un robot también puede consultar o recibir información de internet que puede contener instrucciones o acciones a realizar y/o almacenar datos de manera automática en internet.
  • Del mimo modo una placa Arduino puede consultar un servicio web en internet y/o una intranet, es decir que funciona como si fuera una computadora.
En conclusión, aplicaciones desarrolladas en diferentes lenguajes de programación y ejecutadas sobre cualquier plataforma pueden utilizar los “Web Services” para intercambiar datos en redes de computadoras
En la imagen, podemos observar cómo es que funciona un web services, que envía y recibe información entre un cliente y un servidor por http.

El cliente genera una petición hacia el servidor a través de un http, el servidor valida la información y genera una respuesta para el cliente.

Los servicios web SOAP, intercambian información haciendo uso de los mensajes XML, donde el cliente genera una petición al servidor, pero utilizando un documento WSDL.

Este documento WSDL corresponde a la descripción XML que contiene los requisitos funcionales y necesarios para poder establecer una comunicación con los servicios web.

En la imagen podemos observar como el cliente genera el documento WSDL con un formato XML para ser enviado a través de HTTP y TCP/SSL.

El documento WSDL es enviado al web service, este se encarga de validar la información y retornar al cliente utilizando los mismos canales de comunicación

XML:

Formato estándar para intercambios de datos.

SOAP (SIMPLE OBJECT ACCESS PROTOCOL):

Protocolo sobre el cual se establece el intercambio de datos.

WSDL (WEB SERVICES DESCRIPTION LANGUAGE):

Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios web.

UDDI (UNIVERSAL DESCRIPTION DISCOVERY AND INTEGRATION):

Registro público para almacenar de forma estructurada información sobre empresas y servicios que estas ofrecen.

WS-SECURITY (WEB SERVICES SECURITY):

Permite optimizar la seguridad de los servicios web mediante algoritmos de encriptación.

Se trata de un protocolo de comunicación basado en xml que Permite establecer la forma de comunicación entre las aplicaciones que publican o consumen “Web Services”.

SOAP especifica el formato de los mensajes siendo independiente de la plataforma y lenguaje de programación.

El mensaje SOAP esta compuesto por un Envelope (Sobre), Cuya estructura está formada por los siguientes elementos: Header (Cabecera) y Body (cuerpo).

Para trabajar con web services SOAP Podemos mencionar algunas librerías que nos facilitarían el trabajo al momento de desarrollar servicios web, entre ellas tenemos:
Este tipo de web service genera un request (consulta) hacia una dirección web alojada en un servidor de internet, como puedes apreciar en la imagen.

El servidor devuelve los datos a través de http GET en formato XML donde se especifican los datos obtenidos y devueltos por el servidor.

También se indican cuáles son los conjuntos de datos y el contenido que puede o no ser mostrado dentro del web services.

HTTP (Hyper Text Transfer Protocol):

Protocolo de comunicación utilizado para intercambiar información.

REST (Representation State Transfer):

Estilo arquitectónico de software basado principalmente en HTTP para transferencia de hipermedia en sistemas distribuidos.

URI (Uniform Resource Identifer):

Identificador uniforme o dirección para acceso a la representación de un recurso.

Ejemplo

Inicio

MIME Types (Multiple Internet Mail Extension):

Compuesto de partes que describe el formato de un recurso en internet:

Ejemplo:

application/xml, apllication/json

Está compuesto por una colección de principios de arquitectura de software para construir sistemas distribuidos basados en mecanismos que definen y acceden a recursos como internet.

REST nos permite ofrece un simple estilo, interoperable y gran flexibilidad al momento de construir los “Web Services” y sin adherirse a una tecnología en particular.

El termino REST es muchas veces empleado para distribuir estilos de transferencias de datos basados en HTTP sin agregar capas semánticas ni manejo de sesiones

 

REST –Style web services librerias.

Al igual que SOAP, el método Rest también cuenta con librerías que nos facilitaran el trabajo para poder consultar los webs service entre ellas tenemos:

JavaJersey

RestletFramework

RestEas

Es la primera decisión en la construcción de un servicio web, por lo que es importante comprender las características y desventajas de cada una de ellas.

Los SOAP –based “web services” son con un caso especial de REST –style web services con la diferencia que están basados únicamente en HTTP y SOAP + XML.

Conclusiones

En conclusión, las ventajas y desventajas de cada una de las arquitecturas (Soap, Rest), pueden ser favorables para algunos sistemas desarrollados, pero no para otros.

Por lo tanto, la decisión dependerá estrictamente de los requerimientos y limitaciones de las aplicaciones.

Por otro lado, espero que esta primera parte del curso de desarrollo de servicios web I semana 1 haya quedado claro los conceptos que hemos estudiado.

Mientras tanto, quiero pedirte también que no te olvides de compartir este curso en tus redes sociales con tus amigos, familiares entre otros