ARQUITECTURAS DISTRIBUIDAS FEBRERO 2009 - EXAMEN DE PROBLEMAS APELLIDOS: NOMBRE: DNI: 1. Dado el siguiente fragmento de HTML3.2, indique si es o no conforme al estándar. En caso de no ser conforme, enumere cada uno de los errores presentes. (2 puntos) Notas: Sólo se considerarán correctas las respuestas acordes a la especificación SGML. Cualquier respuesta erronea descontará en la puntuación del ejercicio. <div> <h1><a href=".">W3C Workshop on the Future of Social Networking</a><br> Barcelona</h1> <hr> Contents </hr> <div> <ul type="disc"> <li type="square"><a href="http://www.w3.org/Consortium/">About W3C</a></li> <li><a href="../cfp" alt="CFP link">Call for Participation</a></li> <li>Report</li> </ul type="disc"> </div> 1 2. Una empresa de distribución, compuesta por una oficina central y múltiples almacenes, gestiona sus pedidos mediante un sistema distribuido basado en CORBA. Cada pedido contiene la siguiente información: identificador, número de unidades y dirección de destino. Los pedidos se reparten en furgonetas, que, a su vez, contienen la siguiente información: matrícula y número máximo admisible de unidades que puede cargar para repartir (espacio máximo disponible). En la oficina central existe un objeto remoto que implementa dos funciones pedidos y furgonetas. La primera, dado un identificador de almacén, devuelve todos los pedidos para dicho almacén. La segunda, dado un pedido, devuelve una furgoneta con espacio suficiente para el pedido. Los almacenes implementan los clientes que se conectan a la oficina central y utilizan el objeto remoto. Se pide que: a) Diseñe la interfaz IDL del objeto remoto de la oficina central. (1 punto). b) Codifique en Java una aplicación CLIENTE que para cada pedido de un almacén en particular obtenga una furgoneta para su reparto y muestre por pantalla la carga desaprovechada total (diferencia entre unidades del pedido y espacio máximo de la furgoneta). Suponga que ya dispone de una variable con el identificador de almacén (int almacen) y de una función para imprimir valores por pantalla (imprimir(int s)). Suponga que la referencia al objeto remoto se encuentra en un archivo llamado remoto.ref. (1.5 puntos). 3. Un portal web ha ideado un sistema para premiar a los usuarios que más naveguen por su portal. El sistema consiste en que el portal contabiliza el número de enlaces del mismo que un usuario ha pinchado/visitado. Cuando el usuario ha superado un número determinado de visitas (30), se le mostrará un vídeo especial al visitar la página principal del portal. En ese momento se resetea el número de visitas para ese usuario y si el usuario vuelve ha superar el número se le muestra un video especial distinto. La web utiliza una tabla en una BBDD MySQL para almacenar los enlaces a los vídeos especiales. La tabla se llama videos y tiene dos campos (numero y URL). El campo numero indica el número del vídeo especial y sirve para ir mostrándo nuevos vídeos progresivamente. Es decir, la primera vez que el usuario supere las visitas (30) se le mostrará el vídeo con número 1, la segunda el vídeo con número 2 y así sucesivamente. El vídeo se muestra con la siguiente cadena “Gracias por su fidelidad. Pinche aquí para ver contenido adicional:” y a continuación se concatena el campo URL. Si el usuario no visita el portal en una semana el número de visitas también se reseteará, pero no el número de vídeo especial que se le mostrará cuando vuelva a superar el número de visitas. El portal no almacena ningún tipo de información de sus usuarios. a) Implemente con COOKIES y PHP el sistema descrito. Para ello implemente al menos las siguientes funciones: una función EnlaceVisitado() que se invoca 2 cada vez que el usuario visita un enlace y que incrementará el contador de visitas de un usuario y una función paginaPrincipal() que se invoca al visitar la página principal y se encargará de comprobar el número de visitas que el usuario lleva realizadas y mostrar el vídeo especial en su caso. NO SE LIMITE A ESCRIBIR CODIGO, EXPLIQUE AL COMIENZO DEL EJERCICIO LA SOLUCIÓN QUE HA IMPLEMENTADO. (2.5 puntos) 4. Un conocido software de reproducción de música utiliza XML para organizar el catálogo de música del usuario. En dicho catálogo pueden aparecer canciones, albumes o listas de reproducción. Un ALBUM es un conjunto de canciones y tiene un nombre asociado, una LISTA es un conjunto de canciones y/o albumes y tiene un nombre asociado y por cada CANCION se almacena la siguiente información: Identificador único. Autor o Grupo. Título. Genero (uno) de la siguiente lista: Rock, Pop y Metal. Lista de canciones relacionadas (si existen) a través del identificador. Se le pide que: a) Proporcione un DTD adecuado para contener la información de todo el catálogo multimedia. (1 punto) b) Instancie un XML que siguiendo el DTD anterior represente un catálogo con dos canciones relacionadas entre sí (0.5 puntos) c) Implemente una función en PHP que, dado un fichero XML con un catálogo musical (musica.xml), devuelva el nombre de la lista de reproducción con más canciones. (1.5 puntos) 3