PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen en Internet muchos sitios con información referente al tema en cuestión; sin embargo, el problema es que generalmente cada sitio está desarrollado de diferente manera, de acuerdo a las necesidades, recursos, políticas y una infinidad de factores inherentes a cada organización, por ello, generalmente cuando se desea integrar toda la información posible sobre un tema en un portal, resulta difícil llegar más allá de un índice con ligas a los diversos sitios que contienen la información, lo cual, aunque resulta sumamente útil para los usuarios, el inconveniente para éstos es que cada sitio tiene una organización diferente, además de que no es posible realizar una consulta general que reporte la información específica de las diversas organizaciones que cuentan con la información requerida. Una cuestión que es importante tomar en cuenta, es que aunque en muchas ocasiones se utiliza en forma indistinta página, sitio o portal para definir el sitio de acceso por Internet a la información de una organización, estrictamente estos términos no son intercambiables, ya que un sitio contiene información igual para todos los usuarios, mientras que un portal ofrece una serie de servicios más personalizados. Técnicamente hablando, un portal ofrece servicios dinámicos a diferencia de los servicios estáticos y pasivos de un sitio. Las bases de datos detrás de estos servicios son las que permiten ofrecer información mucho más seleccionada de acuerdo a las necesidades del usuario, incluso, si se pide alguna identificación al entrar al portal, los servicios pueden ajustarse al perfil de la persona que los está utilizando. 1
Un buen portal debe cumplir con ciertas características mínimas, tales como: ser de fácil utilización, entregar información confiable lo más depurada posible al usuario, adoptar estándares abiertos para ser fácilmente expandible, tener algún grado de personalización y ser fácilmente mantenible. Para lograr tener un portal que cumpla con las características señaladas anteriormente y que permita integrar la información sobre un tema específico contenida en servidores de diferentes organizaciones, este trabajo propone la utilización del concepto de Web Services, de tal manera que cada organización que vaya a proveer de información al portal general, desarrolle un webservice de interface entre éste y su propia estructura interna, uniformando con ello la organización y búsquedas. Qué son los Webservices: En forma resumida podemos decir que los Web Services son bloques constructivos que permiten crear sistemas distribuidos abiertos, permitiendo a las organizaciones ofrecer sus aportes al resto del mundo a través de Internet, por medio de un protocolo estándar utilizado en el web, tal como http. La primera razón para la creación de Web Services fue la necesidad de resolver la interoperabilidad en una plataforma neutral y eliminar el antagonismo entre diferentes proveedores. Esencialmente lo que se tiene es una capa de abstracción entre 2 ó más sistemas heterogéneos. Una de las características más importantes de los Web Services, es que utilizan para comunicarse los protocolos comúnmente utilizados en el web, tales como el http o el ftp, y por ello resulta más fácil que puedan interoperar entre 2
organizaciones, ya que de entrada no necesitan configuraciones especiales en los equipos de comunicaciones. Cómo funciona un Web Service El intercambo de información se realiza utilizando el protocolo estándar XML (extensible Mark-up Language), en esta forma cualquier máquina puede enviar o recibir mensajes en este formato, independientemente de la plataforma de que se trate. SOAP (Simple Object Access Protocol), este protocolo estándar permite el intercambio de información entre sistema heterogéneos, es una aplicación de la definición XML para el intercambio de mensajes, generalmente se utiliza para el envío de parámetros al Web Service y para recibir los resultados. SOAP nos indica qué información se va a intercambiar, cómo será expresada la información y cómo se transmitirá ésta. Todo esto gracias a la definición que se hace del Web Service en un documento WSDL (Web Service Description Language). Para que dos aplicaciones se comuniquen es necesario que se establezca de qué manera va estructurada la información en los mensajes de XML, lo cual se describe con un mensaje de SOAP, generado a partir del WSDL, entonces la comunicación inicia con una petición de un cliente, el cual envía su solicitud a un SOAP toolkit, el cual convierte ésta a un mensaje en XML con las instrucciones y parámetros que requiere el Web Service. Cuando el Web Service recibe la solicitud ésta se procesa a la inversa, extrayendo del paquete XML recibido, las instrucciones y parámetros para que se pueda llevar a cabo la función requerida. 3
Entonces la lógica del Web Service lleva a cabo la función solicitada y construye un mensaje XML, ya sea con la respuesta requerida o con un mensaje de error, utilizando para ello SOAP, según la definición contenida en el documento WSDL. Cómo Localizar un Web Service: Para que un Web Service pueda ser utilizado por diferentes usuarios de la red, es necesario publicarlo, lo cual puede hacerse localmente para uso sólo dentro de la organización, o a todo Internet para que pueda ser utilizado por usuarios o aplicaciones en otras organizaciones. Similarmente a como los buscadores localizan páginas, los Web Services se localizan a través de su UDDI (Universal Description Discovery and Integration), el cual es un registro que puede estar en un servidor local para uso interno o en una entidad de registro de Web Services en Internet, las cuales están soportadas por diversas empresas que producen herramientas para el desarrollo de Web Services u ofrecen algunos de éstos, tales como: Microsoft, IBM, SAP, Systinet, NTT Communications, Bindingpoint, Salescentral y Xmethods. 4
Integración de la Información utilizando Web Services: Como ya se comentó, en la red existe una gran diversidad entre plataformas y estructuras de información de un mismo tema, ya que cada organización utiliza la plataforma que tiene y de acuerdo a sus propias necesidades internas, por ello cuando deseamos conjuntar escenarios tan heterogéneos resulta difícil hacerlo. Sin embargo, si se define una serie de Web Services comunes y se le solicita a cada proveedor de información que los implemente en su organización, lo cual resulta bastante sencillo gracias a SOAP que nos permite el intercambio de información entre sistema heterogéneos, podemos entonces tener una aplicación 5
gestora ( Broker ), a la que se le dirijan las solicitudes de los usuarios desde un portal único, para que este gestor haga las peticiones de información a cada organización vía el Web Service que corresponda, obteniendo una serie de respuestas homogéneas que podrá a su vez presentar al usuario solicitante. En este esquema, lo único que se requiere es que el constructor del portal desarrolle el Broker, utilizando alguna de las herramientas que existen para ello, y defina la interface de los servicios a los que éste va acceder, entonces, con la definición, cada organización que se incorpore al portal solamente tendrá que desarrollar los Web Service de acuerdo a las definiciones establecidas y con ello los usuarios del portal tendrán acceso a sus datos, junto con la de las demás organizaciones participantes, en una forma homogénea y consistente. 6
Una gran ventaja de este enfoque es que la responsabilidad de mantener la información actualizada es de cada organización y el administrador del portal únicamente debe encargarse de que el Broker esté funcionando, con lo cual resulta más fácil que la información esté actualizada al no tener una base central que deba ser mantenida de forma centralizada. Herramientas para Desarrollar Web Services Existen en el mercado varios productos para desarrollar Web Services, entre los que se encuentran: Documentum (www.documentum.es.com) Web Services Enhancements 2.0 (msdn.microsoft.com/webservices/) Sun ONE Web Services Platform Developer Edition (developers.sun.com/prodtech/wspde/) WebObjects (www.apple.com/es/webobjects/) IBM WebSphere Studio (www-3.ibm.com/software/info1/websphere) También es posible desarrollar los Web Services utilizando herramientas de dominio público, tales como PHP, Perl, Java, Pitón, Ruby, que son en realidad lenguajes de programación para los cuales existen bibliotecas con las funciones de SOAP, que permiten desarrollar los servicios requeridos con la comunicación estándar con las que operan los Web Services. 7