¿Que son?
Un web service es un conjunto de estándar y protocolo que sirve para intercambiar información entre distintos sistemas. Un sistema desarrollado con cierta tecnología, por ejemplo Java, puede comunicarse con un sistema en PHP a través de un Web Services, esta es la funcionalidad principal, pero no necesariamente tienen que ser de diferentes plataformas, los sistemas pueden estar realizados en un mismo lenguaje, por Ejemplo comunicar dos sistemas realizados en PHP a través de un web service.
Esto se consigue gracias al uso de estándar abiertos que son regulados por la W3C y OASIS encargados de dicha tarea.
Los estándar que se manejan en un web Service, son Web Services Protocol Stack, XML, SOAP, XML-RCP, HTTP, FTP, SMTP, WSDL, UDDI, y WS-Security
Un ejemplo de utilizacion de un web Service.
La cadena de Hoteles OneTravel, se asocia con la agencia de viajes EcoSpace.
Cada empresa tiene un sistema particular para cada empresa, pero surge la necesidad de reservar una habitación desde el sistema de EcoSpace que repercuta en OneTravel, para saber si tiene disponibilidad para cierta fecha, durante ciertos días. Esta comunicacion la podemos hacer a través de un Web Service.
OneTravel, tiene un WebService (desde ahora WS), en el cual nosotros podemos conseguir.
- El listado de los hoteles asociados a OneTravel.
- Interfaz para reservar una habitación
- Interfaz para liberar una reserva
- Interfaz para saber los detalles de los servicios.
EcoSpace al poder interactuar con OneTravel de forma remota y en linea, se puede reservar una habitación desde el sistema de EcoSpace de forma automatizada y que impacte en el sistema de OneTravel, sin la necesidad de correos electrónicos, o llamadas por teléfono para confirmar, de esta forma nosotros impactamos directamente sobre el sistema de OneTravel.
Los Web Service no solo nos sirven para hacer reservas en un hotel desde una agencia de viajes, sino para cualquier tipo de comunicacion a través de sistemas diferentes. A nuestros WS le podemos dar la cantidad de funcionalidades que necesitemos.
Ventajas de un web Services
Los WS tienen muchas ventajas.
Son puentes de comunicacion a través de aplicaciones desarrolladas en diferentes plataformas independientemente de sus propiedades o plataforma en la que se instale. Una aplicacion desarrollada en Linux, se puede comunicar tranquilamente con una aplicacion desarrollada para Windows.
Se puede dar que una aplicacion solo englobe a un conjunto de WS. Por ejemplo un home Banking. Nosotros autenticamos nuestros datos a un servidor especial que Corre una aplicacion en C que corre sobre un Debian, también tenemos la conexión, con las diferentes empresas de tarjeta de créditos (American Express, Visa, Master, Cabal, etc), esta comunicacion se hace a través de un WS que es administrado por cada empresa. Ademas tenemos el WS de pagomiscuentas.com, que a su vez se conecta con los WS de otras empresas y a su vez con mas WS, permitiendo al usuario pagar la cuenta de teléfono de su casa, a través de su Home Banking, sin la necesidad de ir a los cajeros de esta empresas.
Desventajas
El problema principal que tiene un WS es el rendimiento, al ser un estándar basado en texto, resulta ser mas pesado que con otros estándar de comunicacion.
Al ser procesado por el puerto de HTTP, algunas reglas de los firewall pueden ser violadas.
¿Por que crear un WS?
Los WS son fácil de implementar, tanto para la creación de un WS, como para la implementación y uso de este. A medida que pasa el tiempo mas aplicaciones usan los WS para comunicarse, y esto hace que se genere mas información, y sea mas común hablar de WS. Es comun encontrar en grandes organizaciones uno o mas sistemas internos desarrollados en algún lenguaje para crear aplicaciones de escritorio, y con el crecimiento y auge de Internet, el uso de aplicaciones vía web crece dia a dia. Lenguajes como PHP pueden comunicarse muy facilmente con estos sistemas para brindar informacion o interactuar con un usuario via web.
Referencias
OASIS http://www.oasis-open.org
W3C http://www.w3c.es/Consorcio/