SERVICIOS WEB
Web Service
Es 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.
Es una vía de intercomunicación e interoperabilidad entre maquinas conectadas en Red. Es una colección de protocolos abiertos y estándares usados
para intercambiar datos entre aplicaciones o sistemas.
El cliente solicita información, enviando a veces datos al servidor para que pueda procesar su solicitud. El servidor genera una respuesta que envía de vuelta al
cliente, adjuntando otra serie de datos que forman parte de esa respuesta. Por tanto, podemos entender un servicio web como un tráfico de mensajes entre dos
máquinas.
Características de los Servicios Web
Las características deseables de un Servicio Web son:
Un servicio debe poder ser accesible a través de la Web.
Para ello debe utilizar protocolos de transporte estándares como HTTP, y codificar los mensajes en un lenguaje estándar que pueda conocer cualquier cliente que
quiera utilizar el servicio.
Un servicio debe contener una descripción de sí mismo.
De esta forma, una aplicación podrá saber cuál es la función de un determinado Servicio Web, y cuál es su interfaz, de manera que pueda ser utilizado de forma
automática por cualquier aplicación, sin la intervención del usuario.
Debe poder ser localizado. Deberemos tener algún mecanismo que nos permita encontrar un Servicio Web que realice una determinada función. De esta forma
tendremos la posibilidad de que una aplicación localice el servicio que necesite de forma automática, sin tener que conocerlo previamente el usuario.
Tipos de servicios Web
A nivel conceptual, un servicio es un componente software proporcionado a través de un endpoint accesible a través de la red. Los servicios productores y
consumidores utilizan mensajes para intercambiar información de invocaciones de petición y respuesta en forma de documentos auto-contenidos que hacen muy
pocas asunciones sobre las capacidades tecnológicas de cada uno de los receptores.
A nivel técnico, los servicios pueden implementarse de varias formas. En este sentido, podemos distinguir dos tipos de servicios Web: los denominados servicios Web
"grandes" ("big" Web Services), los llamaremos servicios Web SOAP, y servicios Web RESTful.
Servicios Web SOAP
Los servicios Web SOAP, o servicios Web "big", utilizan mensajes XML para intercomunicarse que siguen el estándar SOAP (Simple Object Access Protocol), un
lenguaje XML que define la arquitectura y formato de los mensajes. Dichos sistemas normalmente contienen una descripción legible por la máquina de la descripción
de las operaciones ofrecidas por el servicio, escrita en WSDL (Web Services Description Language), que es un lenguaje basado en XML para definir las interfaces
sintácticamente.
El formato de mensaje SOAP y el lenguaje de definición de interfaces WSDL se ha extendido bastante, y muchas herramientas de desarrollo, por ejemplo, Netbeans,
pueden reducir la complejidad de desarrollar aplicaciones de servicios Web.
El diseño de un servicio basado en SOAP debe establecer un contrato formal para describir la interfaz que ofrece el servicio Web. WSDL puede utilizarse para describir
los detalles del contrato, que pueden incluir mensajes, operaciones, bindings, y la localización del servicio Web. También deben tenerse en cuenta los requerimientos
no funcionales, como por ejemplo las transacciones, necesidad de mantener el estado (addressing), seguridad y coordinación
Servicios Web RESTful
Los servicios Web RESTful (Representational State Transfer Web Services) son adecuados para escenarios de integración básicos ad-hoc. Dichos servicios Web se
suelen integrar mejor con HTTP que los servicios basado en SOAP, ya que no requieren mensajes XML o definciones del servicio en forma de fichero WSDL
Los servicios Web REST utilizan estándares muy conocidos como HTTP, SML, URI, MIME, y tienen una infraestructura "ligera" que permite que los servicios se
construyan utilizando herramientas de forma mínima. Gracias a ello, el desarrollo de servicios RESTful es barato y tiene muy pocas "barreras" para su adopción.
SERVICIOS WEB
Componentes de los Web Services
Los web services estandarizados funcionan con los siguientes componentes:
SOAP - Simple Object Access Protocol
SOAP es un protocolo escrito en XML para el intercambio de información entre aplicaciones. Es un formato para enviar mensajes, diseñado especialmente
para servir de comunicación en Internet, pudiendo extender los HTTP headers. Es una forma de definir qué información se envía y cómo mediante XML.
Básicamente es un protocolo para acceder a un Web Service.
WSDL - Web Services Description Language
WSDL es un lenguaje basado en XML para describir los servicios web y cómo acceder a ellos. Es el formato estándar para describir un web service, y fue
diseñado por Microsoft e IBM. WSDL es una parte integral del estándar UDDI, y es el lenguaje que éste utiliza.
UDDI - Universal Description, Discovery and Integration
UDDI es un estándar XML para describir, publicar y encontrar servicios web. Es un directorio donde las compañías pueden registrar y buscar servicios web.
Es un directorio de interfaces de servicios web descritos en WSDL que se comunican mediante SOAP.
Arquitectura de los Web Services
Service Discovery.
Responsable de centralizar servicios web en un directorio común de registro y proveer una funcionalidad sencilla para publicar y buscar. UDDI se encarga del Service
Discovery.
Service Description.
Uno de los aspectos más característicos de los web services es que se autodescriben. Esto significa que una vez que se ha localizado un Web Service nos
proporcionará información sobre que operaciones soporta y cómo activarlo. Esto se realiza a través del Web Services Description Language (WSDL).
Service Invocation.
Invocar a un Web Service implica pasar mensajes entre el cliente y el servidor. SOAP (Simple Object Access Protocol) especifica cómo deberíamos formatear los
mensajes request para el servidor, y cómo el servidor debería formatear sus mensajes de respuesta.
Transport.
Todos estos mensajes han de ser transmitidos de alguna forma entre el servidor y el cliente. El protocolo elegido para ello es HTTP (HyperText Transfer Protocol). Se
pueden utilizar otros protocolos, pero HTTP es actualmente el más usado.
Como funciona un Web Service
1. El Service Provider genera el WSDL describiendo el Web Service y registra el WSDL en el directorio UDDI o Service Registry.
2. El Service Requestor o la aplicación del cliente requiere un Web Service y se pone en contacto con el UDDI para localizar el Web Service.
3. El cliente, basándose en la descripción descrita por el WSDL, envía un request para un servicio particular al Web Service Listener, que se encarga de recibir
y enviar los mensajes en formato SOAP.
4. El Web Service analiza el mensaje SOAP del request e invoca una operación particular en la aplicación para procesar el request. El resultado se escribe de
nuevo en SOAP en forma de respuesta y se envía al cliente.
SERVICIOS WEB
5. El cliente analiza el mensaje de respuesta SOAP y lo interpreta o genera un error si ha habido alguno.
Componentes de los servidores en una aplicación Web Service
Web Service. Es el software o componente que realiza las operaciones. Si está escrito en Java, estas operaciones se realizarán en lenguaje Java. Los clientes invocarán
estas operaciones enviando mensajes SOAP.
SOAP Engine. El Web Service no sabe interpretar SOAP requests y crear SOAP responses. Para hacer esto hace falta un SOAP engine, un software que se encarga del
manejo de estos mensajes. Apache Axis es un ejemplo.
Application Server. Para funcionar como un servidor que puede recibir requests desde diferentes clientes, el SOAP engine normalmente funciona dentro de un
application server. Este es otro software que proporciona un espacio libre para aplicaciones que han de ser accedidas por múltiples clientes. El SOAP engine funciona
como una aplicación dentro del application server. Ejemplos son Apache Tomcat server, Java Servlet y JSP container.
HTTP Server. Algunos application servers incluyen funcionalidades HTTP, por lo que se pueden tener Web Services funcionando instalando simplemente un SOAP
engine y un application server. Sin embargo cuando un application server carece de funcionalidad HTTP es necesario también un HTTP server, más comúnmente
llamado Web Server. Es un software que sabe cómo manejar mensajes HTTP. Los dos más populares en la actualidad son Apache HTTP Server y Nginx.
Resumen de servicios web
Se puede conectar un cliente de servicio web a un servicio web de Informatica para acceder, transformar o entregar datos. Es posible conectar una aplicación externa
o una transformación de consumidor de servicio web a un servicio web como cliente de servicio web. Puede crear un servicio de datos de Informatica en Developer
tool.
Un servicio web puede procesar solicitudes de información, de actualización de datos o de ejecución de tareas. Por ejemplo, un cliente de servicio web envía una
solicitud para ejecutar una operación de servicio web. El cliente de servicio web pasa un ID de cliente en la solicitud. El servicio web recupera la información de cliente
y pedido y devuelve la información al cliente en una respuesta.
Los servicios web de Informatica se comunican con los clientes de servicio web a través de los protocolos de mensajería Protocolo simple de acceso a objetos (Simple
Object Access Protocol, SOAP) o Transferencia de estado representacional (Representational State Transfer, REST).
Developer tool permite la creación de los siguientes tipos de servicios web o clientes de servicio web:
Servicio web SOAP
Servicio web que utiliza el protocolo SOAP. La solicitud del cliente del servicio web y la respuesta del servicio web son mensajes SOAP. El lenguaje de descripción de
servicios web (web service description language, WSDL) es un lenguaje de definición de interfaz basado en XML que describe la funcionalidad de un servicio web. Los
archivos WSDL contienen una descripción sobre el método de invocación del servicio web, los parámetros que espera dicho servicio y las estructuras de datos que
devuelve. Es posible crear un servicio web SOAP de Informatica a partir de un archivo WSDL.
Transformación de consumidor de servicio web SOAP
Se conecta a un servicio web como un cliente del servicio web para acceder a datos o transformarlos durante un proceso de asignación. Es posible crear una
transformación de consumidor de servicio web SOAP a partir de WSDL.
Servicio web REST
Servicio web que recibe una solicitud HTTP para ejecutar las operaciones de servicios web. Un servicio web REST de Informática puede recibir una solicitud HTTP para
ejecutar una operación GET. Un servicio web REST de Informática puede devolver una respuesta en un archivo JSON XML.
SERVICIOS WEB
Transformación de consumidor REST
Se conecta a un servicio web REST como un cliente del servicio web para acceder a datos o transformarlos durante un proceso de asignación. La transformación de
consumidor de servicio web REST se conecta a un servicio web mediante una URL que se define en la transformación, en una conexión HTTP o en una conexión
HTTPS. Los mensajes de solicitud y respuesta contienen datos en formato XML o JSON.