Webservices: promesas y realidades (1ra. Parte)
Los webservices se han convertido en unos de los fenómenos de internet más rápidamente difundidos y, a la vez, más distorsionados y exagerados. Quizá el único punto en común en todas las interpretaciones que han aparecido es el de reconocer que los Webservices nos permiten, de algún modo, ejecutar software en Internet.
Desde este punto de vista es difícil diferenciar a un Webservice de un ASP, pero si analizamos a fondo las bases conceptuales y los protocolos de soporte, nos damos cuenta que los Webservices representan una verdadera revolución en la construcción y el uso de software.
Podemos comenzar a aproximarnos a una definición diciendo que los Webservices son componentes de software que se empaquetan haciendo uso de protocolos de comunicación de internet y que nos permiten:
- Tener acceso a aplicaciones a través de internet.
- Comunicar programas sin intervención humana.
- Entregar aplicaciones de forma segura en zonas delimitadas de internet o en intranets.
La idea básica es la de enlazar sistemas dispares, haciendo uso de los siguientes protocolos:
- XML (eXtensive Markup Language): Estructura la información de forma que puede ser fácilmente extraida y usada por otras aplicaciones. Un documento XML describe un Webservice y la forma en la que ejecuta
- WSDL (Web Service Description Language): Es el lenguaje usado para crear los XML descriptivos de los Webservices.
- UDDI (Universal Description, Discovery and Integration): Permite la creación de directorios públicos de Webservices, disponibles a través de motores de búsqueda.
- SOAP (Simple Object Access Protocol): Permite el intercambio de datos estructurados, como XML, entre aplicaciones disponibles en red.
Estos protocolos son usados por diversos actores que permiten que se cumpla el ciclo básico de un Webservice: Publicar-Encontrar-Asociar y ejecutar:
- Publicar: El proveedor de servicios que aloja el Webservice crea una descripción XML del mismo que permite que sea encontrado y usado.
- Encontrar: El servicio de registro, a través del protocolo UDDI, hace disponibles las descripciones a los motores de búsqueda.
- Asociar y ejecutar: Una vez que el Webservice es encontrado, se efectúa un requerimiento, cuya respuesta permite su carga y ejecución.
Las aplicaciones son innumerables, entre ellas:
- Automatización de procesos de negocios, inlcuso en localidades remotas de una empresa.
- Generar alertas acerca de eventos tales como la colocación de una orden, el valor de una acción, el clima.
- Integrar componentes de software diversos de una organización, formando un ERP basado en Webservices.
- Aceleración de procesos de comercio electrónico entre organizaciones (B2B y B2C).
Las aplicaciones del \»mundo real\» ya han aparecido:
- En Venezuela las instituciones financieras pueden facilitar a sus clientes el pago de los impuestos a través de sus portales, interactuando mediante Webservices con la oficina de control de impuestos (Seniat).
- Nordstrom.com ha integrado su tienda virtual con el sistema de inventario y el sistema de certificados de regalo en el Federal Savings Bank. De esta forma los clientes tienen acceso en línea a los ítems comprados y verificar el saldo de sus tarjetas de regalo.
- Life Time Fitness ha usado webservices para enlazar su website con el sistema de citas, permitiendo a sus miembros reservar instalaciones, equipos y tiempo de especialistas en sus diversos clubs de salud.
Los Webservices tienen la capacidad de modificar drásticamente la forma en que las empresas operan entre si a través del internet; lo que conlleva muchos beneficios e innegables riesgos. Estos riesgos, fundamentalmente de seguridad, han comenzado a ser atacados para evitar que, como ha sucedido con otras iniciativas en internet, tarden en ser adoptadas o sean definitivamente rechazadas.
Las preocupaciones principales derivadas del uso de Webservices se basan en la potencial exposición de información corporativa, información de los clientes y proveedores y la circulación de transacciones fraudulentas. El ataque a estos peligros se está concibiendo con una combinación de tecnologías ya existentes, tales como el SSL (Secure Socket Layer), que permite la transmisión de información encriptada, en conjunto con estándares específicos, tales como el SAML (Security Assertion Markup Language), que consiste en la autentificación y autorización basada en XML.
Un componente esencial es la firma digital, la cual ya puede ser representada en XML (XML Signature) y utilizada en conjunto con el encriptamiento en XML de todo un documento o secciones sensibles del mismo. Las claves a ser usadas para el encriptamiento son registradas y distribuidas haciendo uso de XKMS (XML Key Management Specification). La suite de seguridad completa es operada de acuerdo a las directrices definidas por las partes, haciendo uso del XACML (eXtensive Access Control Markup Language), que permite definir los privilegios de acceso a componentes en la red.
En la segunda parte de este artículo profundizaremos en los aspectos de seguridad y analizaremos el camino a seguir por una organización que quiera adoptar los Webservices en su estrategia de TI.