Está en la página 1de 8

IEIEne16Acto1v2-resolt.

pdf

LuisValls

Integración e interoperabilidad

4º Grado en Ingeniería Informática

Escuela Técnica Superior de Ingeniería Informática


Universidad Politécnica de Valencia

Reservados todos los derechos.


No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Integración e Interoperabilidad
Evaluación Teoría. Acto 1.
13-01-2017 ETSInf-UPV

Nombre:_____________________________________________________ Grupo:________

Cuestiones (5 puntos) Tiempo: 2 horas

1. Explica en qué consiste un mapping semántico entre esquemas. ¿Cómo se


(1.5 puntos)
implementa en los casos relacional y XML?

Un mapping semántico expresa cómo se convierten los datos desde una fuente de datos a un
almacén destino. En general, el mapping define una relación entre los esquemas fuente y destino,
de modo que cuando se hace una pregunta al esquema destino, esta se pueda reformular en
términos de la fuente de datos. En un ambiente relacional, los mappings se expresan en SQL (para
la definición de vistas), mientras que en ambientes XML se pueden implementar mediante hojas
de transformación XSLT, o mediante XQuery.

2. (1.5 puntos) Explica qué es un wrapper y qué papel juega en la integración de datos. Ilustra tu
respuesta con un ejemplo.

Un wrapper es un módulo software que envuelve una fuente de datos para adecuarla al esquema
global. En general, se suele emplear para adaptar los esquemas de las fuentes de datos al modelo
de datos de la integración. Un ejemplo típico es aquel que extrae contenido de una página HTML y
lo estructura en forma de tablas de acuerdo al esquema destino o un esquema intermedio. o un
archivo XML).

3. (1 punto) ¿Cuál es la diferencia entre aplicación y servicio?

Un servicio es una pieza de software que ofrece cierta funcionalidad (por ejemplo, gestionar
pagos con tarjeta de crédito), y que es accesible mediante una cierta interfaz de acuerdo a un
cierto protocolo (por ejemplo, SOAP). Un servicio no está pensado para ser accedido por
usuarios, sino solamente por aplicaciones. Una aplicación, por su parte, es una pieza compleja de
software que ofrece funcionalidad orientada a los usuarios finales, y en general desarrolla
completamente la funcionalidad para la que ha sido desarrollada. Una aplicación orientada a
servicios puede implementar parte de esa funcionalidad a través de la invocación de servicios de
otros proveedores.

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5237353
Integración e Interoperabilidad
Evaluación Teoría. Acto 1.
13-01-2017 ETSInf-UPV

4. (1 punto) Explica el significado del término “linked data”

“Linked data” hace referencia a las colecciones de datos que se publican en la Web. Dichos datos
están generalmente expresados en RDF, con la particularidad de que los datos de una
colecciónpueden relacionarse con los de otras colecciones vía URI, con lo cual se crean extensas
redes de datos que constituyen lo que se conoce como “linked data cloud”.

Problemas (5puntos)
Problema 1. (3 puntos)

FlightRadar24 es una aplicación para el seguimiento en tiempo real de aeronaves


alrededor del mundo. En su versión de pago, es capaz de mostrar al usuario el tráfico
aéreo en su vecindad o en cualquier otro lugar, tal y como ilustra la imagen siguiente,
correspondiente a su versión Web.

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5237353
Integración e Interoperabilidad
Evaluación Teoría. Acto 1.
13-01-2017 ETSInf-UPV

Existen versiones también para plataformas móviles, que incorporan facilidades de


realidad aumentada.

Para llegar a mostrar toda esa información, la aplicación necesita acceder a


diferentes fuentes de datos (aeropuertos, aerolíneas, bases de datos de imágenes),
así como a los parámetros en tiempo real del vuelo enviados cada segundo, mediante
señales de radio, por el transpondedor de la aeronave, que incluyen, entre otros
datos, la longitud, latitud y altitud de la misma. Esas señales son captadas por antenas
conectadas a servidores de la aplicación distribuidos por todo el mundo.

Se pide:

1. Dibuja una arquitectura que incluya las fuentes de datos necesarias para
disponer de la información mostrada en la imagen anterior, explicando el
origen de los datos de cada una de ellas (aquellos valores en los que aparece
un candado son para usuarios suscritos, por lo que se pueden ignorar).
Suponed que cada fuente de datos –exceptuando los transpondedores- ofrece
los mismos a través de una API.
Lo que se pide en este apartado es identificar las posibles fuentes de datos
requeridas para mostrar la imagen anterior. Eso incluye, por un lado, las
diferentes fuentes de datos relevantes:
• De las aerolíneas se pueden obtener datos como código de vuelo,
origen, destino, fecha y hora de salida prevista, fecha y hora de llegada
prevista, etc.
• De los aeropuertos se puede obtener hora real de salida, a partir de la
cual estimar la hora de llegada, etc.
• De alguna base de datos de imágenes se puede recuperar la foto de la
aeronave similar a la que opera el vuelo.
• Y, lo más importante, están las antenas que recogen los datos enviados
por las aeronaves en tiempo real, y que sirven para mostrar los
parámetros del vuelo (altitud, velocidad, etc.). Dado que se trata de un

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5237353
Integración e Interoperabilidad
Evaluación Teoría. Acto 1.
13-01-2017 ETSInf-UPV

sistema de captación de datos distribuido, probablemente existen


recolectores de información que alimenten un data warehouse, adonde
vayan a parar también los datos recolectados de las diferentes
fuentes.
Dado que estamos suponiendo la existencia de API, el proceso de extracción
consistirá en la invocación de las API correspondiente a cada fuente.
Obviamente, y dado que todos los datos recogidos provienen de fuentes
heterogéneas, cada fuente de datos tendrá definido un mapping semántico
para que la carga de datos al almacén se haga en el formato definido por el
esquema del mismo.

2. Explica cómo se consigue mostrar las aeronaves en tiempo real en el mapa.


Se consigue mediante la creación de un “mash-up” en el que se combine la
información posicional de las aeronaves con un mapa, por ejemplo de Google.
Esto se consigue accediendo a alguna de las API de Google Maps, que permita
dibujar en el mapa un símbolo representando cada aeronave.

3. Si una aerolínea no ofrece sus datos de forma abierta, ¿cómo podríamos


obtener la información de un vuelo determinado?
Podríamos construir un “screen scrapper” para extraer los datos a partir de
las páginas Web del portal de la aerolínea.

Problema 2. (2 puntos)
Dado el siguiente fichero XML, llamado CD.xml
<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5237353
Integración e Interoperabilidad
Evaluación Teoría. Acto 1.
13-01-2017 ETSInf-UPV
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
<CD>
<TITLE>Still got the blues</TITLE>
<ARTIST>Gary Moore</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin records</COMPANY>
<PRICE>10.20</PRICE>
<YEAR>1990</YEAR>
</CD>
<CD>
<TITLE>Eros</TITLE>
<ARTIST>Eros Ramazzotti</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>BMG</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1997</YEAR>
</CD>
<CD>
<TITLE>One night only</TITLE>
<ARTIST>Bee Gees</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Polydor</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1998</YEAR>
</CD>

</CATALOG>

• Indica cuál sería el resultado de las siguientes expresiones XPath:

//CD[COUNTRY="UK"][YEAR>1997]/TITLE

<TITLE>One night only</TITLE>

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5237353
Integración e Interoperabilidad
Evaluación Teoría. Acto 1.
13-01-2017 ETSInf-UPV

//CD[3][PRICE=10]/YEAR

-----

• Explica qué buscan e indica cuál será el resultado de las siguientes expresiones
XQuery:

for $x in doc("CD.xml")/CATALOG/CD
where $x/COMPANY='BMG'
return $x/ARTIST

<ARTIST>Eros Ramazzotti</ARTIST>

for $x in doc("CD.xml")/CATALOG/CD/YEAR
order by $x
return {data($x)}

1985
1988
1990
1997
1998

• Usando XQuery escribe una transformación que, a partir del fichero CD.xml, genere
una lista HTML con los títulos, artistas y año de cada CD, ordenados por discográfica.
Para el fichero de ejemplo se generaría:

<html> <body>

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5237353
Integración e Interoperabilidad
Evaluación Teoría. Acto 1.
13-01-2017 ETSInf-UPV

<h1>Mi colección por compañías:</h1>


<ul>
<li>Eros, Eros Ramazzotti, 1997</li>
<li>Hide your heart, Bonnie Tyler, 1988</li>
<li>Empire Burlesque, Bob Dylan, 1985</li>
<li>One night only, Bee Gees, 1998</li>
<li>Still got the blues, Gary Moore, 1990</li>
</ul> </body> </html>

<html>
<body>
<h1>Mi colección por compañías:</h1>
<ul>
{for $x in doc("CD.xml")/CATALOG/CD
order by $x/COMPANY
return <li>{data($x/TITLE)}, {data($x/ARTIST)}, {data($x/YEAR)} </li>}
</ul> </body> </html>

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-5237353

También podría gustarte