Web Services: Fundamentos


(Imagen: Rembrandt - La ronda de noche)

Creo que en los anteriores posts me fui de boca y le puse mucho énfasis a los estándares y a los acrónimos (bueno, en parte era culpa de lo que estaba leyendo xD). En fin, pienso subsanar el error, y cambiar de libro xD. Así que comencemos de nuevo con lo de los Web Services.

Un Web Service es una especie particular de aplicación Web, o sea , que se ejecuta sobre HTTP. Es una aplicación distribuida cuyos componentes pueden ser desplegados y ejecutados en muchos dispositivos.

Existen dos tipos de Web Services: Basados en SOAP y de estilo REST. SOAP significa Simple Object Access Protocol, y es un dialecto XML donde los documentos son los mensajes a transmitir. En un escenario típico, la librería SOAP del cliente envía un mensaje SOAP solicitando un servicio, y la librería SOAP del Web Service envía otro mensaje SOAP como respuesta del servicio. Así:



Por otro lado, REST significa Representational State Transfer. SOAP posee estándares, herramientas y librerías. REST no tiene estándares, pocas herramientas y aún menos librerías. Por eso, se considera a REST como una alternativa simple a la complejidad de SOAP.

Por lo general, un cliente de un Web Service (basado en SOAP o de estilo REST) no es un browser, sino una aplicación sin interfaz de usuario. Este cliente puede estar escrito en cualquier lenguaje, y el Web Service y el cliente no deben estar escritos en el mismo lenguaje necesariamente.

Las tecnologías XML son las que dan soporte a esta interoperabilidad, y permiten el intercambio y procesamiento de documentos estructurados. Así, para un Web Service basado en SOAP, el cliente envía un documento SOAP como request al Web Service, el cual devuelve otro documento SOAP como response. Para servicios de estilo REST, el cliente envía un request HTTP estándar al web Service, y recibe un documento XML como respuesta.

Algunas características de los Web Services:

  • Infraestructura abierta: Los WS se despliegan usando estándares de la industria, y protocolos independientes del vendedor como HTTP y XML.
  • Transparencia de lenguajes: Los Web Services y sus clientes puede interactuar aún si han sido escritos en lenguajes diferentes.
  • Diseño modular: Nuevos servicios pueden ser generados a través de la integración e interacción de servicios existentes.
Basado en el capítulo 1 de Java Web Services: Up and Running de Martin Kalin

Publicar un comentario