guía de elaboración del trabajo para ad4igralcarria/doc/ad4ig/tema6_guia_de...archivo de claves...

16
Guía de elaboración del trabajo para AD4IG Versión v1 (14-05-2014) Asignatura: Aplicaciones Distribuidas para la Información Geográfica Máster de Ingeniería Geodésica y Cartografía, E.T.S.I. en Topografía, Geodesia y Cartografía UPM. Autores: Ramón Alcarria Miguel Ángel Manso

Upload: others

Post on 23-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Guía de elaboración del trabajo

para AD4IG

Versión v1 (14-05-2014)

Asignatura: Aplicaciones Distribuidas para la Información

Geográfica

Máster de Ingeniería Geodésica y Cartografía,

E.T.S.I. en Topografía, Geodesia y Cartografía

UPM.

Autores:

Ramón Alcarria

Miguel Ángel Manso

Page 2: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

1. Introducción

Esta guía tiene la finalidad de servir de apoyo al alumno para la creación de un

proyecto que combine el intercambio de información geográfica entre aplicaciones

distribuidas alojadas en sistemas Cloud.

La propuesta de esta guía se resume a continuación:

Se propone realizar un teselado de un mapa y posteriormente almacenar esas teselas en

una base de datos de tipo Amazon S3. Además se pretende crear un cliente Web

basado en OpenLayers que acceda, por un lado al conjunto de teselas creado, y por

otro al WMS del GeoServer alojado en EC2, para combinar la información de esas dos

capas.

Existen dos tipos de trabajo, el trabajo básico (que describe la realización de la anterior

propuesta) y el trabajo mejorado (que consistiría en el trabajo básico más la realización

de una mejora.)

Esta guía no pretende ser un tutorial paso a paso del trabajo que hay que efectuar, sino

que contiene una descripción del proceso a efectuar y una explicación detallada para

los pasos más complicados.

A continuación se enumeran las fases que se deben seguir para elaborar el trabajo

básico:

- Selección y publicación de Capas

- Generación de teselas

- Desarrollo de cliente de mapas

- Alojamiento de las teselas en Amazon S3

- Alojamiento del Cliente web en Amazon S3

- Mejoras a la práctica

Requisitos:

Disponer de una instancia en Amazon EC2 con un GeoServer instalado.

Poder acceder a esa instancia mediante escritorio Remoto (disponer por tanto del

archivo de claves *.pem

Page 3: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

2. Selección y publicación de Capas

Se debe importar al menos dos capas de la misma región, pueden ser en formato Ráster

o Vectorial, pero se aconseja que al menos una tenga transparencia para que, una vez

superpuestas las capas, se visualicen correctamente.

Una vez se accede a GeoServer (http://localhost:8080/geoserver/web), e identificado

como administrador, nos disponemos a crear un workspace, llamándole topografia,

configurándolo como workspace por defecto (default workspace).

Una vez creado el workspace se debe crear un Store.

Nos ofrecen la posibilidad de seleccionar qué tipo de almacén de datos queremos

(Figura 1):

Figura 1 – Seleccionando un nuevo almacén de datos en GeoServer

Elegimos el tipo de almacén dependiendo de las capas que queremos importar.

Recomendamos tipo de datos shapefile (*.shp) y GeoTIFF.

Page 4: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Una vez creado el store tenemos la posibilidad de crear una capa y publicarla. Para ello

hay que completar algunos campos obligatorios de la configuración de la capa, como el

SRS y el Bounding Box. Como posteriormente queremos generar teselas de la capa

tenemos que comprobar en la pestaña de “Tile Caching” (Figura 2) que el cacheado

está activado y que se generarán los formatos de imagen que queremos.

Seleccionaremos un formato de imagen que permita transparencias, como el png.

Figura 2 – Activando el cacheado para nuestra capa

Procedemos de igual forma para la segunda capa elegida (Creamos una Store y luego

el Layer).

Comprobamos en la sección Layer Preview que las capas se representan

convenientemente en OpenLayers. Layer preview nos muestra las capas sin cachear.

Page 5: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

3. Generación de teselas

Accedemos a la herramienta GeoWebCache, que viene incluido en nuestra instalación

de GeoServer: La dirección para acceder a GeoWebCache (Figura 3) es:

http://localhost:8080/geoserver/gwc

GeoWebCache tiene un enlace para listar todas las capas en las que se ha activado el

“Tile Caching” realizado en la sección anterior.

Figura 3 – Página principal de GeoWebCache

Cuando encontremos nuestra capa podemos ir a Seed this layer para realizar el teselado

(Figura 4).

Page 6: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Figura 4 – Teselado de nuestra capa

En el menú siguiente tenemos que especificar las coordenadas que vamos a utilizar, el

formato de salida (se recuerda que debe ser un formato que permita transparencia) y

los niveles de zoom.

Recomendamos no generar más de dos o tres niveles de zoom para no trabajar con un

gran número de teselas.

Una vez realizado el teselado veremos cómo los archivos de las teselas se han generado

correctamente en C:\GeoServer_2.5\data_dir\gwc o donde se tenga instalado el

GeoServer

En esta carpeta aparecerá una nueva carpeta con el nombre del workspace y el nombre

de la capa, de forma:

<nombreWorkspace>_<nombreCapa>

Page 7: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

4. Desarrollo de cliente de mapas

Desarrollamos un cliente de mapas basado en OpenLayers. Este cliente de mapas

deberá acceder al menos a dos capas, por lo que deberemos construir un LayerSwitcher

map.addControl(new OpenLayers.Control.LayerSwitcher({….

Podemos fijarnos en el cliente de OpenLayers que ofrece el GeoServer cuando

queremos previsualizar una capa en la sección Layer Preview (Figura 5).

Figura 5 – Layer Preview en GeoServer

Preparamos el cliente para consumir dos capas: El wms del GeoServer y las teselas que

hemos generado.

Utilizamos la librería GeoWebCache para consumir las teselas. Esta librería podemos

encontrarla en la siguiente dirección:

https://www.dropbox.com/s/nbywai83yb9i06m/GeoWebCache.js

Para crear una capa que consuma las teselas deberemos utilizar el siguiente código:

demolayer1 = new OpenLayers.Layer.GeoWebCache({ url: [

Page 8: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

"https://<bucketName>/<folder>/<workspace>_<layer>" ], buffer: 1, type: "jpeg" }); map.addLayer(demolayer1);

Siendo https://<bucketName>/<folder>/<workspace>_<layer> la dirección en S3 donde

almacenaremos las teselas.

Probamos que el cliente web funciona al menos como la capa WMS de Geoserver (la

capa de GeoWebCache no funcionará todavía porque las teselas no están subidas a S3,

lo cual realizaremos en la siguiente sección).

Page 9: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

5. Alojamiento de las teselas en Amazon S3

Trabajo con Amazon S3

Utilizaremos el servicio de Amazon S3 (Amazon Simple Storage Service), que es un

servicio de almacenamiento de archivos ofrecido por Amazon AWS (Amazon Web

Services).

Aspectos a tener en cuenta antes de comenzar a utilizar Amazon S3:

- Necesitamos tener una cuenta de Amazon AWS, como la que hemos creado en

clase.

- Si no queremos pagar por el alojamiento de contenido, debemos estar en el

periodo de Free Tier, que Amazon ofrece gratuitamente durante el primer año

que nos creamos la cuenta.

- El servicio de Free Tier para Amazon S3 incluye de forma gratuita 5GB de

almacenamiento, 20,000 peticiones de tipo GET y 2,000 peticiones de tipo PUT.

- Una vez consumido el Free Tier se empieza a cobrar el uso de Amazon S3, según

los precios de la Web http://aws.amazon.com/s3/pricing/. Siguiendo las

recomendaciones de este tutorial no llegará a pasar esto.

Alojamiento de teselas

Utilizamos el cliente S3 Browser para almacenar las teselas en la base de datos S3. Para

que el alojamiento de las teselas en S3 sea lo más rápido posible instalaremos el S3

Browser en nuestra instancia EC2.

En S3 Browser tenemos que configurar una nueva cuenta (Figuras 6 y 7)

Page 10: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Figura 6 – Gestor de cuentas en S3 Browser

Figura 7 – Configurando una nueva cuenta en S3 Browser

Page 11: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Para rellenar los campos Access Key ID y Secret Access Key tenemos que navegar a la

siguiente URL:

https://console.aws.amazon.com/iam/home?#security_credential y en Access Keys

crear una nueva Clave de Acceso.

El motivo de crear una nueva clave es por seguridad, para no tener que introducir la

clave de Amazon en programas desarrollados por terceros.

Crearemos un Bucket S3 en la región de Europa (Irlanda), Figura 8.

Figura 8 – Creación de nuevo Bucket en S3 Browser

Utilizaremos el programa para transferir la carpeta con nuestras teselas a nuestro

bucket S3. Comprobaremos que esa carpeta es pública para que sea accesible desde el

exterior (Figura 9).

Page 12: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Figura 9 – Explorando nuestro Bucket en S3 Browser. Comprobando permisos.

Ahora ya podemos modificar el código JavaScript de nuestro cliente para que acceda

correctamente a la dirección donde se encuentran las teselas en nuestro bucket S3.

Comprobamos que nuestro cliente funciona correctamente con ambas capas.

Page 13: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

6. Alojamiento del Cliente web en Amazon S3

Además de las teselas, almacenaremos nuestro Cliente Web en Amazon S3. Para ello

crearemos otra carpeta en nuestro Bucket para alojar nuestra página. Comprobaremos

que esa carpeta es pública para que sea accesible desde el exterior.

Se recomienda ver el documento de Alojamiento Web con Amazon S3.

Mejoras a la pra ctica

Mejora #1:

Podemos mejorar esta práctica utilizando GeoWebCache para acceder a nuestro bucket

de S3 directamente. Para ello necesitamos montar nuestro bucket como una unidad de

disco y así indicarle a GeoWebCache que almacene las teselas en esa unidad.

Existen distintos programas que puede ser utilizados para montar un bucket de S3

como un directorio local o una unidad de disco. A continuación se enumeran los más

conocidos:

- Cloudberry drive: http://www.cloudberrylab.com/blog/how-to-map-amazon-

s3-as-a-local-disk-with-cloudberry-drive/

- TntDrive: http://tntdrive.com/

- Otros, S3FS y S3Backer: http://www.turnkeylinux.org/blog/exploring-s3-based-

filesystems-s3fs-and-s3backer

Recomendamos la utilización de TntDrive, que, aunque es un programa de pago, tiene

una versión gratuita por 60 días, tiempo suficiente para la realización y la corrección de

la práctica.

Al añadir una nueva unidad (Figura 10) nos vuelven a pedir las credenciales de Access

Key ID y Secret Access Key, podemos utilizar las mismas que hemos generado para S3

browser.

Page 14: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Figura 10 – Añadiendo nueva unidad en TntDrive. Configurando credenciales de acceso.

En propiedades adicionales (Figura 11) podemos seleccionar la opción Use Reduced

Redundancy Storage (RRS) para rebajar el nivel de integridad de los archivos

almacenados. De esta forma los acceso a las base de datos S3 se reducen.

Figura 11 – Propiedades adicionales de la unidad creada en TntDrive.

Una vez creada la unidad de disco podremos verla en Computer.

Page 15: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Figura 12 – Nueva unidad creada en explorador de archivos

Para configurar GeoWebCache para que utilice esta nueva unidad para almacenar las

teselas tenemos que detener el GeoServer, añadir las siguientes líneas en web.xml

(podemos encontrarlo en C:\GeoServer 2.5\webapps\geoserver\WEB-INF)

<context-param> <param-name>GEOWEBCACHE_CACHE_DIR</param-name> <param-value>C:\temp</param-value> </context-param>

Tenemos que cambiar la dirección C:\temp por la dirección donde queremos que se

encuentren nuestras teselas en la nueva unidad de disco creada con TntDrive.

Después reiniciaremos el GeoServer.

Además tendremos que modificar el cliente Web basado en OpenLayers para añadir

una nueva capa que acceda al wms del GeoWebCache. Se debe comprobar como las

teselas se generan correctamente y se almacenan en S3.

Mejora #2:

Añadir una nueva capa a nuestro cliente OpenLayers que venga de otra herramienta

en Cloud, como Google Fusion Tables o CartoDB.

Page 16: Guía de elaboración del trabajo para AD4IGralcarria/doc/ad4ig/tema6_guia_de...archivo de claves *.pem 2. Selección y publicación de Capas Se debe importar al menos dos capas de

Mejora #3:

Para alumnos que dispongan de ArcGIS pueden tratar de instalar la versión de prueba

de Arc2Earth y seguir un tutorial de publicación de teselas con Arc2Earth en Amazon

S3.

Un tutorial completo se puede ver aquí

http://www.geospatialtraining.com/Arc2Earth/export_13.htm

Elaboracio n de Informe y entrega de trabajo

La entrega se realizará por Moodle y corresponderá a una memoria de la práctica

donde se describa cual es el objetivo de la práctica, qué se ha conseguido y qué

problemas se han encontrado.

En la memoria de la práctica se tiene que especificar la dirección del GeoServer y de los

buckets S3 para que el profesor pueda conectarse y comprobar el trabajo. Por tanto se

debe dejar iniciada la instancia EC2 durante los días en los que se produzca la

corrección de la práctica.

Otra posibilidad es seguir el tutorial de creación de cuentas en Amazon y crear una

cuenta para el profesor de forma que pueda ver los servicios en ejecución y el

contenido de las bases de datos. En este caso, en el trabajo se deben proporcionar las

credenciales de acceso a Amazon creadas para el profesor.