A día de hoy, usar di­fe­re­n­tes servicios a través de la web es una actividad habitual. Comprar online, leer el periódico, reservar una mesa en un re­s­tau­ra­n­te o ver películas son solo algunos ejemplos de las muchas in­ter­ac­cio­nes que se producen a diario entre el usuario y la máquina. Pero, además, y aunque pueda pasar des­ape­r­ci­bi­do, estas in­ter­ac­cio­nes también tienen lugar entre máquinas: el cliente y el servidor se están enviando co­n­ti­nua­me­n­te so­li­ci­tu­des y re­s­pue­s­tas, tra­n­s­mi­sión que se produce gracias a los web services o servicios web.

¿Qué es un web service?

Un web service facilita un servicio a través de Internet: se trata de una interfaz mediante la que dos máquinas (o apli­ca­cio­nes) se comunican entre sí. Esta te­c­no­lo­gía se ca­ra­c­te­ri­za por estos dos rasgos:

  • Mu­l­ti­pla­ta­fo­r­ma: cliente y servidor no tienen por qué contar con la misma co­n­fi­gu­ra­ción para co­mu­ni­car­se. El servicio web se encarga de hacerlo posible.
  • Di­s­tri­bui­da: por lo general, un servicio web no está di­s­po­ni­ble para un único cliente, sino que son di­fe­re­n­tes los que acceden a él a través de Internet.

Cuando se utiliza un web service, un cliente manda una solicitud a un servidor, des­en­ca­de­na­n­do una acción por parte de este. A co­n­ti­nua­ción, el servidor devuelve una respuesta al cliente.

Nota

Al principio, web service solo fu­n­cio­na­ba con SOAP, pero en la ac­tua­li­dad se utilizan también otros métodos como REST.

La te­c­no­lo­gía detrás de un servicio web con ejemplo

Todos los web services cuentan con un Uniform Resource Ide­n­ti­fier (URI) unívoco, esto es, la dirección del servicio web. Es similar al Uniform Resource Locator (URL) que permite acceder a páginas web. El catálogo UDDI debía de­sem­pe­ñar también un papel im­po­r­ta­n­te, pues permitía encontrar los servicios web, pero este servicio nunca logró imponerse y sus mayores pa­r­ti­da­rios te­r­mi­na­ron re­ti­rá­n­do­se del proyecto.

Más im­po­r­ta­n­cia tiene el lenguaje Web Service De­s­cri­p­tion Language (WSDL). Un servicio web contiene un archivo en WSDL en el que se describe el servicio de forma detallada. Con esta in­fo­r­ma­ción, el cliente puede co­m­pre­n­der qué funciones puede ejecutar en el servidor a través del servicio web. La co­mu­ni­ca­ción funciona ex­clu­si­va­me­n­te mediante di­fe­re­n­tes pro­to­co­los y ar­qui­te­c­tu­ras. Entre ellos, son muy populares el protocolo de red SOAP en co­m­bi­na­ción con el estándar de Internet HTTP o los servicios web basados en una ar­qui­te­c­tu­ra REST.

Con estas te­c­no­lo­gías se po­si­bi­li­ta el in­te­r­ca­m­bio de pe­ti­cio­nes y re­s­pue­s­tas a menudo uti­li­za­n­do el lenguaje de marcado ex­te­n­si­ble (XML). Este lenguaje, re­la­ti­va­me­n­te simple, puede ser in­te­r­pre­ta­do en igual medida por personas y or­de­na­do­res, y además es adecuado para unir sistemas con re­qui­si­tos di­fe­re­n­tes. Con todo, REST también admite otros formatos, como JSON.

Veamos cómo funciona la mecánica de esta te­c­no­lo­gía con un ejemplo de web service. Partamos de un software escrito en Visual Basic que se ejecuta en una máquina con sistema Windows. El programa necesita el servicio de un servidor web Apache. Para ello, el cliente envía una solicitud SOAP en forma de mensaje HTTP al servidor. El web service in­te­r­pre­ta el contenido de la solicitud y se encarga de que el servidor lleve a cabo una acción. Fi­na­l­me­n­te, el servicio web formula una respuesta y la envía de vuelta al cliente (de nuevo con SOAP y HTTP), que vuelve a in­te­r­pre­tar­la. La in­fo­r­ma­ción se envía entonces al software, donde será procesada.

Ventajas y de­s­ve­n­ta­jas de los servicios web

La ventaja principal de los servicios web es que la co­mu­ni­ca­ción no depende de una pla­ta­fo­r­ma de­te­r­mi­na­da, por lo que el cliente y el servidor apenas han de presentar rasgos en común para poder co­mu­ni­car­se. Para ello, la te­c­no­lo­gía web service recurre a formatos es­ta­n­da­ri­za­dos que in­te­r­pre­tan todos los sistemas.

Pero en estos formatos es donde en­co­n­tra­mos una de las de­s­ve­n­ta­jas. Pre­ci­sa­me­n­te, XML es un formato más bien vo­lu­mi­no­so que genera grandes paquetes de datos, lo que puede crear problemas en las co­ne­xio­nes de red lentas. Otra po­si­bi­li­dad que permite conectar a dos sistemas a través de Internet son las API web. Aunque, por lo general, son más rápidas, someten a cliente y servidor a es­pe­ci­fi­ca­cio­nes más concretas, con lo que la in­te­ro­pe­ra­bi­li­dad se ve limitada.

Ir al menú principal