Web Services Funcionamiento y Objetivo
Web Services Funcionamiento y Objetivo
Web Services Funcionamiento y Objetivo
1. Introducción
Un Web Service, o Servicio Web, es un método de comunicación entre dos aparatos electrónicos
en una red. Es una colección de protocolos abiertos y estándares usados para intercambiar datos
entre aplicaciones o sistemas. Las aplicaciones escritas en varios lenguajes de programación que
funcionan en plataformas diferentes pueden utilizar web services para intercambiar información
a través de una red. La interoperatividad, por ejemplo entre Java y Python o Windows y Linux se
debe al uso de estándares abiertos.
Como sistema de mensajes se utiliza XML estandarizado. El protocolo más simple para el
intercambio de información entre ordenadores es XML-RPC, que emplea XML para llevar a cabo
RPCs. RPC, Remote Procedure Call, es un protocolo de red que permite a un programa a ejecutar
código en una máquina remota. Los XML-RPC requests son una combinación entre contenido
XML y headers HTTP. La simpleza de los XML-RPC hizo que el estándar evolucionase a SOAP,
uno de los componentes básicos de los Web Services.
La base de comunicación entre web services es por tanto el lenguaje XML y el protocolo HTTP.
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
• 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.
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.
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.