1. Introducción
## Programación de servicios web
El diseño del software tiende a ser cada vez más modular. Las aplicaciones se componen de una serie de componentes o servicios reutilizables, que pueden encontrarse distribuidos a lo largo de una serie de máquinas conectadas en red. Los Servicios Web nos permitirán distribuir nuestra aplicación a través de Internet, pudiendo una aplicación utilizar los servicios ofrecidos por cualquier servidor conectado a Internet.
## ¿Qué es un Servicio Web?
Normalmente nos referimos con Servicio Web a una colección de procedimientos (métodos) a los que podemos llamar desde cualquier lugar de Internet o de nuestra intranet, siendo este mecanismo de invocación totalmente independiente de la plataforma que utilicemos y del lenguaje de programación en el que se haya implementado internamente el servicio.
El servidor nos devuelve la página web solicitada, que es un documento que se mostrará en el navegador para que lo visualice el usuario, pero es difícilmente entendible por una máquina. En contraposición, los Servicios Web ofrecen información con un formato estándar que puede ser entendido fácilmente por una aplicación. En este caso estaríamos ante una web para máquinas.
El WC3 (World Wide Web Consortium) define un servicio Web como un sistema software diseñado para soportar interacciones máquina a máquina a través de la red. Dicho de otro modo, los servicios Web proporcionan una forma estandar de interoperar entre aplicaciones software que se ejecutan en diferentes plataformas. Por lo tanto, su principal característica su gran interoperabilidad y extensibilidad así como por proporcionar información fácilmente procesable por las máquinas gracias al uso de XML.
Servicios Web vs. Aplicación
Aunque las API y los servicios web pueden facilitar la transferencia de datos entre aplicaciones a través de Internet, no son lo mismo, y los términos no deben usarse indistintamente en todos los casos. La distinción clave es que los servicios web son un tipo de API: todos los servicios web son API, pero no todas las API son servicios web. ‘API’ es la categoría más amplia porque, por definición, se refiere a cualquier componente de software que actúa como un intermediario entre dos aplicaciones que de otro modo estarían desconectadas.