Servicios web

 

La W3C define "servicio web" como un sistemade software diseñado para permitir interoperabilidad máquina a máquina en una red. Se trata de API que son publicadas, localizadas e invocadas a través de la web. Es decir, una vez desarrolladas, son instaladas en un servidor, y otras aplicaciones (u otros servicios web) pueden descubrirlas desde otros ordenadores de Internet e invocar uno de sus servicios.

Como norma general, el transporte de los datos se realiza a través del protocolo HTTP y la representación de los datos mediante XML. Sin embargo, no hay reglas fijas en los servicios web y en la práctica no tiene por qué ser así.

Una de las grandes ventajas de este planteamiento es que es tecnológicamente neutral. Es decir, podemos utilizar un servicio web sin importarnos el sistema operativo o el lenguaje en el que fue programado. Además, al apoyarse sobre el protocolo HTTP, puede utilizar los sistemas de seguridad (https) y presenta pocos problemas con cortafuegos, al utilizar puertos que suelen estar abiertos (80 o 8080).

Como inconveniente podemos resaltar que, dado que el intercambio de datos se realiza en formato de texto (XML), tiene menor rendimiento que otras alternativas como RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture) o DCOM (Distributed Component Object Model). Además, el hecho de apoyarse en HTTP hace que resulte complicado para un cortafuego filtrar este tipo de tráfico. ¿No acabamos de decir que esto era una ventaja? Es posible que lo que para un desarrollador sea una ventaja, para un administrador de red sea un inconveniente.