CAPÍTULO 5. IMPLEMENTACIÓN
5.4. Escenario centralizado
La implementación realizada para este escenario ha sido la siguiente.
En primer lugar, se ha desarrollado un servicio web desplegado en un servidor Tomcat mediante Apache Axis que ofrece el servicio de localización. Éste básicamente permite:
• Consultar la base de datos
• Añadir un recurso a la base de datos
• Eliminar un recurso de la base de datos.
También se han implementado otros Servicios Web sencillos simulando a los módulos de autenticación, calidad de servicio y transcodificación acorde con los diseñados para el Proyecto Integrado.
Fig. 5.2 Servicios Web implementados. Vista de los servicios desplegados mediante Apache Axis en Tomcat.
Se ha instalado una base de datos MySQL y se han creado tablas con sus respectivos campos a modo de almacén de servicios. La función de este repositorio es la de implementar el registro UDDI para la publicación de los servicios, mediante las API de jUDDI. No obstante, no se ha pasado del diseño de la base de datos. No se ha implementado el registro UDDI privado.
Acto seguido, se han adaptado clientes de Servicios Web al servlet diseñado. Éstos permiten invocar remotamente mediante mensajes SOAP los métodos implementados por el servicio web.
Para añadir un recurso en la base de datos XML, en el diseño se comentaba que se almacenaba mediante la descripción de objeto digital. No obstante, se ha implementado una manera más sencilla a modo de prueba. Simplemente se ha descrito un recurso mediante una semántica XML básica.
<resource>
<filename>sfamilia.vid</filename>
<desc>Video de la sagrada familia</desc> <type>Video</type> <title>Sagrada Familia</title> <format>HD1080i/59.94(SDTI)</format> <rate>270 Mbps</rate> <cat>HD</cat> <resource>
Fig. 5.3 Ejemplo de la estructura implementada para la descripción y almacenamiento de recursos multimedia en la base de datos Xindice. Para eliminar un recurso de la base de datos la interfaz de usuario requiere la introducción del key (clave identificadora) que por defecto asigna la base de datos Xindice a un documento XML cuando se almacena.
Para realizar la búsqueda de un recurso en la base de datos Xindice, lo que se hace primeramente es solicitar al usuario mediante un formulario en la interfaz web que introduzca un campo de búsqueda y un valor para éste. Si lo desea el usuario también tiene la opción de solicitar el listado completo de recursos almacenados en la base de datos Xindice.
A la hora de retornar los resultados, se deben adaptar los formatos de manera adecuada para que los diferentes componentes de la cadena se entiendan. Por este motivo se ha adaptado el resultado de la búsqueda de la base de datos XML. Ésta devuelve una serie de documentos XML de manera continua, especificando para cada recurso la cabecera <?xml version=”1.0”>. Se ha sustraído esta cabecera pues después, al recibir el resultado de la búsqueda en el servlet, con la finalidad de mostrarle los datos obtenidos al usuario, no se podían transformar adecuadamente pues la especificación determina que sólo puede haber una cabecera XML. Por lo tanto, lo que se ha hecho en el servicio web que devuelve el resultado, es englobar todos los recursos devueltos en un elemento RESULTSET.
Ejemplo de retorno de un recurso en XML.
! " # " #
$ % ! & ' ( ) " * + ,* - ,* * * * * & * * ' . + ' & - .
, , / , 0 1 ! 0 ! 1 , 2 3 & * ' * ) . . - 4 3 56 , $ + * 7 " 2 3
Fig. 5.4 Contenido del mensaje XML de respuesta a una petición de búsqueda de un recurso concreto, emitido por el servicio web.
Todas las operaciones efectuadas por los Servicios Web en la base de datos (añadir, extraer y consultar) se han llevado a cabo mediante el uso de expresiones XPath.
Una vez el resultado se recibe en el servlet, se parsea el contenido mediante SAX para almacenar los resultados en un array de recursos.
Acto seguido, para mostrar al usuario los resultados, surge el problema de la representación de los datos. Las páginas JSP deben mostrar los datos en formato HTML por ese motivo se recurre a las transformaciones XSLT [Anexo 2, apartado 2.4]. Mediante una plantilla XSLT se especifica cómo debe modificarse el archivo XML recibido del servicio web para que lo traduzca a HTML.
Al usuario se le muestran por pantalla los resultados en el formato correcto, permitiéndole escoger la opción de reproducir uno de los recursos obtenidos. Mediante un botón de selección [Fig. 5.1], el usuario indica qué recurso va a reproducir. Acto seguido se le muestra a modo de confirmación el recurso que ha seleccionado. Si el usuario acepta, el vector de recursos almacenado se recorre con el fin de seleccionar el recurso demandado y pasarle los datos al módulo de provisión de servicio, el cual se encargará de reproducirlo adecuadamente.
A continuación se muestra un esquema del funcionamiento de la aplicación web desde el punto de vista funcional (SuperServlet).
El esquema siguiente representa de la implementación realizada en la que se muestran los detalles principales.
Fig. 5.6 Esquema general de la implementación de la arquitectura centralizada.