Servicios web

En construcciónEsta lección está en elaboración.

Qué es un servicio web

Un servicio web es un programa disponible en Internet y que mediante HTTP puede recibir peticiones y entregar información.

Podemos entender un servicio web como una biblioteca de funciones remota. De la misma manera que un programa que quiere realizar una tarea hace uso de una función de una biblioteca, un programa puede recurrir a un servicio web que le proporciona el resultado de una tarea.

Las ventajas de ofrecer un servicio web son muchas: puede ser universal (si se permite el acceso abierto, cualquiera puede aprovecharlo o nosotros aprovechar servicios ya existentes), su actualización es automática (los clientes acceden siempre a la única versión disponible), es más escalable (una aplicación compleja se puede descomponer en muchos servicios web coordinados y dedicar a cada uno la infraestructura que necesite), etc.

Los servicios web también ofrecen desventajas: el retraso debido a la comunicación entre el programa y el servicio, la centralización (si el servicio es inaccesible, el programa no podría funcionar correctamente), etc.

De un programa monolítico a un servicio web

Los siguientes ejemplos muestran la evolución desde una aplicación monolítica hasta una aplicación distribuida (con un servicio web) pasando por el uso de funciones o bibliotecas. El ejemplo es trivial y no justificaría el uso de servicios web, pero sirve como ejemplo.

Argumentos y valores devueltos

En el ejemplo de servicio web anterior, la llamada al servicio no incluye parámetros y la respuesta es un simple dato, que no necesita ninguna estructura, pero es posible tanto enviar parámetros al servicio web como recibir datos compuestos.