4 infraestructura del simacwebbibing.us.es/proyectos/abreproy/11691/fichero... · la...

23
4 Infr aestructur a delSIMACWEB 4.1 Descripción generalde la infraestructura. La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación Web, se precisa de un servidor, esto no es más que un ordenador personal, preparado para estar siempre encendido y corriendo aplicaciones que ejecutaran remotamente clientes, este servidor debe tener instalado las aplicaciones necesarias para nuestra aplicación, que son, además de las librerías descritas anteriormente, una versión de Mysql, la aplicación cgi Mapserver, la aplicación Mapbender, la aplicación Geonetwork, un servidor Apache y un servidor Tomcat En el entorno de trabajo usado para este proyecto, Mapbender recoge las capas como cliente WMS, este estándar permite producir mapas de datos espaciales referidos de forma dinámica a partir de información geográfica, define un "mapa" como una representación de la información geográfica en forma de un archivo de imagen digital conveniente para la exhibición en una pantalla de ordenador, los mapas producidos por WMS se generan normalmente en un formato de imagen como PNG, GIF o JPEG, y ocasionalmente como gráficos vectoriales en formato SVG (Scalable Vector Graphics) o WebCGM (Web Computer Graphics Metafile), bien, pues las distintas aplicaciones servidoras de mapas, Mapserver entre ellas, ofrecen la posibilidad de funcionar como servidores WMS, digamos que Mapserver a partir del archivo .map, donde viene especificada la información del servidor WMS que vamos a utilizar, ofrece capas en este estándar, que Mapbender correctamente configurado, recoge para mostrarnos según nosotros hayamos programado.

Upload: others

Post on 21-Nov-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

4 Infraestructura d el SIMACWEB

4.1 Descripción general d e la infra estructura.

La infraestructura necesaria para nuestra aplicación es bastante estándar para

una aplicación Web, se precisa de un servidor, esto no es más que un ordenador

personal, preparado para estar siempre encendido y corriendo aplicaciones que

ejecutaran remotamente clientes, este servidor debe tener instalado las

aplicaciones necesarias para nuestra aplicación, que son, además de las

librerías descritas anteriormente, una versión de Mysql, la aplicación cgi

Mapserver, la aplicación Mapbender, la aplicación Geonetwork, un servidor

Apache y un servidor Tomcat

En el entorno de trabajo usado para este proyecto, Mapbender recoge las capas

como cliente WMS, este estándar permite producir mapas de datos espaciales

referidos de forma dinámica a partir de información geográfica, define un "mapa"

como una representación de la información geográfica en forma de un archivo

de imagen digital conveniente para la exhibición en una pantalla de ordenador,

los mapas producidos por WMS se generan normalmente en un formato de

imagen como PNG, GIF o JPEG, y ocasionalmente como gráficos vectoriales en

formato SVG (Scalable Vector Graphics) o WebCGM (Web Computer Graphics

Metafile), bien, pues las distintas aplicaciones servidoras de mapas, Mapserver

entre ellas, ofrecen la posibilidad de funcionar como servidores WMS, digamos

que Mapserver a partir del archivo .map, donde viene especificada la

información del servidor WMS que vamos a utilizar, ofrece capas en este

estándar, que Mapbender correctamente configurado, recoge para mostrarnos

según nosotros hayamos programado.

Page 2: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Imagen 13: Esquema general de la infraestructura de la aplicación

Como comentario decir que el sistema operativo del servidor usado para nuestra

aplicación es el Centos 5.5.

4.2 Aloja m iento d el sistem a Nuestra aplicación se encuentra actualmente corriendo en el servidor del

departamento de Ingeniería Gráfica de la Escuela Superior de Ingenieros de la

Universidad de Sevilla.

Dicho servidor se encuentra en la planta baja de la Escuela de Ingenieros, en el

aula de CAD dentro del departamento propiamente dicho. El servidor es un HP

Proilant

4.3 Instala ción d e software principa l

En este apartado vamos a distinguir dos aspectos, en un primer lugar comentaré

el software y librerías que requiere Mapserver para funcionar correctamente,

digamos lo que está “debajo” de su funcionamiento, por otro lado hablaremos del

software que se encuentra “encima” de éste, pues hemos usado una aplicación

Page 3: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

que a su vez usa Mapserver para realizar nuestra aplicación.

4.3.1 Instalación d e lib rerías y aplicaciones requerid as

La instalación de Mapserver sobre Linux no es algo trivial, especialmente sobre

distribuciones como Centos que es la que hemos usado, este punto ha llevado

una parte considerable del tiempo dedicado al proyecto.

Necesitaremos una instalación de Apache, una instalación de Php y su posterior

configuración en Apache, la instalación de ciertas librerías requeridas que

adelante comentaré y la propia instalación y configuración de Mapserver cuando

todos los requisitos previos hayan sido instalados.

Para empezar necesitaremos compilar las fuentes del programa, así como las

librerías necesarias para su funcionamiento. Por lo tanto, el sistema ha de tener

instalado el compilador de C GNUCompiler (gcc), y también el programa MAKE

para generar el script de instalación. En la distribución de Linux usada (Centos,

Red Hat Linux Enterprise), estas herramientas estaban ya instaladas en el

sistema. Por otro lado, ya que vamos a servir mapas por Internet, será necesario

tener un servidor Web como hemos dicho, en este caso Apache. Mapserver se

compilará como un script CGI que Apache utilizará para procesar las peticiones

de mapas.

Librerías necesarias

Las librerías necesarias para que funcione Mapserver son GD (librería de

gráficos), el resto son opcionales sin embargo, para aprovechar mejor la

herramienta Mapserver, instalamos al menos las de uso más común. Se

instalaron en el sistema las siguientes:

? Gd: Instalada con el sistema operativo (opción recomendada).

? Proj4: Librería que permitirá la reproyección de datos al vuelo, si los datos

que se le solicitan a Mapserver no están en el mismo Sistema de

Proyección. Evidentemente se produce una penalización en el

Page 4: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

rendimiento, pero es una opción interesante debido a su flexibilidad.

? Gdal & Ogr: Permite manejar multitud de formatos tanto vectoriales como

ráster, es una librería estándar de uso muy común, definirá los tipos de

datos soportados por Mapserver, al final de este apartado se listarán los

formatos soportados.

? PostGIS: Necesaria si queremos tener un servidor con este formato

espacial, se ha instalado, pero finalmente no se ha usado, aunque esta

operativa para posibles ampliaciones de nuestra aplicación. En nuestra

aplicación se ha usado Mysql, por estar más extendida y tener un

conocimiento mayor de esta base de datos, así como en las versiones de

Mapbender y Mapserver usadas existía soporte para Mysql y PostGIS, sin

embargo la tendencia en las nuevas versiones que se esperan de estos

programas apuntan a un mayor uso de PostGIS y un estancamiento de

Mysql, es por ello que se ha dejado la opción instalada y operativa por si

fuesen necesarias futuras actualizaciones del software de desarrollo.

? Curl: Librería de utilidades de transferencia de información a través de la

Web.

Como complemento informativo que puede resultar útil, se incluye en este

apartado la lista de formatos tanto tipo vectorial como ráster que son soportados

por las librerías Gdal y Ogr, y son admitidos por tanto por Mapserver:

Formatos Ráster soportados por GDAL:

Nombre del Formato Código Georeferencia Tamaño máximo

admitido Compilado por

defecto

Arc/Info ASCII Grid AAIGrid Sí 2GB Sí ADRG/ARC Digitilized Raster Graphics (.gen/.thf)

ADRG Sí -- Sí

Arc/Info Binary Grid (.adf)

AIG Sí -- Sí

AIRSAR Polarimetric AIRSAR No -- Sí Magellan BLX Topo (.blx, .xlb)

BLX Sí -- Sí

Microsoft Windows Device Independent Bitmap (.bmp)

BMP Sí 4GB Sí

BSB Nautical Chart Format (.kap)

BSB Sí -- Sí

Page 5: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Nombre del Formato Código Georeferencia Tamaño máximo admitido

Compilado por defecto

VTP Binary Terrain Format (.bt)

BT Sí -- Sí

CEOS (Spot for instance) CEOS No -- Sí DRDC COASP SAR Processor Raster

COASP No -- Sí

TerraSAR-X Complex SAR Data Product

COSAR No -- Sí

Convair PolGASP data CPG Sí -- Sí Spot DIMAP (metadata.dim)

DIMAP Sí -- Sí

ELAS DIPEx DIPEx Sí -- Sí DODS / OPeNDAP DODS Sí -- No, Necesita

libdap First Generation USGS DOQ (.doq)

DOQ1 Sí -- Sí

New Labelled USGS DOQ (.doq)

DOQ2 Sí -- Sí

Military Elevation Data (.dt0, .dt1, .dt2)

DTED Sí -- Sí

ERMapper Compressed Wavelets (.ecw)

ECW Sí No, Necesita ECW SDK

ESRI .hdr Labelled EHdr Sí Sin límite Sí NASA ELAS ELAS Sí -- Sí ENVI .hdr Labelled Raster

ENVI Sí Sin límite Sí

ERMapper (.ers) ERS Sí Sí Envisat Image Product (.n1)

ESAT No -- Sí

EOSAT FAST Format FAST Sí -- Sí FIT FIT No -- Sí FITS (.fits) FITS No -- No, Necesita

libcfitsio Fuji BAS Scanner Image FujiBAS No -- Sí Generic Binary (.hdr Labelled)

GENBIN No -- Sí

GSat File Format GFF No -- Sí Graphics Interchange Format (.gif)

GIF No 2GB Sí (internal GIF library provided)

WMO GRIB1/GRIB2 (.grb)

GRIB Sí 2GB Sí, can be disabled

GMT Compatible netCDF

GMT Sí 2GB No, Necesita libnetcdf

GRASS Rasters GRASS Sí -- No, Necesita libgrass

Golden Software ASCII Grid

GSAG No -- Sí

Golden Software Binary Grid

GSBG No 4GB (32767x32767 of 4 bytes each + 56 byte header)

Golden Software Surfer 7 Binary Grid

GS7BG No 4GB Sí

GSC Geogrid GSC No -- Sí TIFF / BigTIFF / GeoTIFF (.tif)

GTiff Sí 4GB para TIFF / Sin límite for BigTIFF

Sí (internal libtiff and libgeotiff provided)

GXF - Grid eXchange File

GXF Sí 4GB Sí

Hierarchical Data Format Release 4 (HDF4)

HDF4 Sí 2GB No, Necesita libdf

Hierarchical Data Format HDF5 Sí 2GB No, Necesita

Page 6: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Nombre del Formato Código Georeferencia Tamaño máximo admitido

Compilado por defecto

Release 5 (HDF5) libhdf5 Erdas Imagine (.img) HFA Sí Sin límite2 Sí Image Display and Analysis (WinDisp)

IDA Sí 2GB Sí

ILWIS Raster Map (.mpr,.mpl)

ILWIS Sí -- Sí

Intergraph Raster INGR Sí 2GB Sí USGS Astrogeology ISIS cube (Version 2)

ISIS2 Sí -- Sí

USGS Astrogeology ISIS cube (Version 3)

ISIS3 Sí -- Sí

JAXA PALSAR Product Reader (Level 1.1/1.5)

JAXAPALSAR

No -- Sí

Japanese DEM (.mem) JDEM Sí -- Sí JPEG JFIF (.jpg) JPEG Sí 4GB (max dimentions

65500x65500) Sí (internal libjpeg provided)

JPEG2000 (.jp2, .j2k) JPEG2000 Sí 2GB No, Necesita libjasper

JPEG2000 (.jp2, .j2k) JP2KAK Sí Sin límite No, Necesita Kakadu library

JPEG2000 (.jp2, .j2k) JP2ECW Sí 500MB No, Necesita ECW SDK

JPEG2000 (.jp2, .j2k) JP2MrSID Sí No, Necesita MrSID SDK

NOAA Polar Orbiter Level 1b Data Set (AVHRR)

L1B Sí -- Sí

Erdas 7.x .LAN and .GIS LAN Sí 2GB Sí FARSITE v.4 LCP Format

LCP Sí Sí

Daylon Leveller Heightfield

Leveller Sí 2GB Sí

In Memory Raster MEM Sí 2GB Sí Vexcel MFF MFF Sí Sin límite Sí Vexcel MFF2 MFF2

(HKV) Sí Sin límite Sí

Multi-resolution Seamless Image Database

MrSID Sí -- No, Necesita MrSID SDK

Meteosat Second Generation

MSG Sí No, Necesita msg library

EUMETSAT Archive native (.nat)

MSGN Sí Sí

NLAPS Data Format NDF Sí Sin límite Sí NITF NITF Sí 4GB Sí NetCDF netCDF Sí 2GB No, Necesita

libnetcdf OGDI Bridge OGDI Sí -- No, Necesita

OGDI library PCI .aux Labelled PAux No Sin límite Sí PCI Geomatics Database File

PCIDSK Sí Sin límite Sí

PCRaster (.map) PCRaster Sí No, Necesita libcdf

NASA Planetary Data System

PDS Sí -- Sí

Postgis CHIP raster (under development)

PGCHIP Sí -- No, Necesita PostgreSQL library y Postgis headers

Page 7: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Nombre del Formato Código Georeferencia Tamaño máximo admitido

Compilado por defecto

Portable Network Graphics (.png)

PNG No Sí (internal libpng provided)

Netpbm (.ppm,.pgm) PNM No Sin límite Sí Swedish Grid RIK (.rik) RIK Sí 4GB Sí Raster Matrix Format (*.rsw, .mtw)

RMF Sí 4GB Sí

Raster Product Format/RPF (a.toc)

RPFTOC Sí -- Sí

RadarSat2 XML (product.xml)

RS2 Sí 4GB Sí

Idrisi Raster RST Sí Sin límite Sí SAR CEOS SAR_CE

OS Sí -- Sí

ArcSDE Raster SDE Sí -- No, Necesita ESRI SDE

USGS SDTS DEM (*CATD.DDF)

SDTS Sí -- Sí

SGI Image Format SGI Sí -- Sí SRTM HGT Format SRTMHG

T Sí -- Sí

Terragen Heightfield (.ter)

TERRAGEN

No -- Sí

TerraSAR-X Product TSX No -- Sí USGS ASCII DEM (.dem)

USGSDEM

Sí -- Sí

GDAL Virtual (.vrt) VRT Sí -- Sí OGC Web Coverage Server

WCS Sí -- No, Necesita libcurl

OGC Web Map Server WMS Sí -- No, Necesita libcurl

X11 Pixmap (.xpm) XPM No Sí Tabla 3: Formatos Ráster admitidos por GDAL

Formatos vectoriales admitidos por OGR:

Nombre del formato Código Georeferencia Compilado por defecto

Arc/Info Binary Coverage AVCBin Sí Sí Arc/Info .E00 (ASCII) Coverage

AVCE00 Sí Sí

Atlas BNA BNA No Sí Comma Separated Value (.csv)

CSV No Sí

DODS/OPeNDAP DODS Sí No, necesita libdap ESRI Personal GeoDatabase

PGeo Sí Sí

ESRI ArcSDE SDE Sí No, necesita ESRI SDE ESRI Shapefile ESRI Shapefile Sí Sí FMEObjects Gateway FMEObjects Gateway Sí No, necesita FME GeoJSON GeoJSON Sí Sí Géoconcept Export Geoconcept Sí Sí GML GML Sí Sí (soporta lectura

necesita Xerces) GMT GMT Sí Sí GPX GPX Sí Sí (soporta lectura

necesita libexpat) GRASS GRASS Sí No, necesita libgrass

Page 8: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Nombre del formato Código Georeferencia Compilado por defecto

Informix DataBlade IDB Sí No, necesita Informix DataBlade

INTERLIS "Interlis 1" y "Interlis 2"

Sí Sí (INTERLIS model reading necesita ili2c.jar)

INGRES INGRES No No, necesita INGRESS KML KML No Sí (soporta lectura

necesita libexpat) Mapinfo File MapInfo File Sí Sí Microstation DGN DGN No Sí Memory Memory Sí Sí MySQL MySQL No No, necesita MySQL

library Oracle Spatial OCI Sí No, necesita OCI library ODBC ODBC Sí No, necesita ODBC

library OGDI Vectors OGDI Sí No, necesita OGDI library PostgreSQL PostgreSQL Sí No, necesita PostgreSQL

library S-57 (ENC) S57 Sí Sí SDTS SDTS Sí Sí SQLite SQLite No No, necesita libsqlite3 UK .NTF UK. NTF Sí Sí U.S. Census TIGER/Line TIGER Sí Sí VRT – Virtual Datasource VRT Sí Sí X-Plane/Flighgear aeronautical data

XPLANE Sí Sí

Tabla 4: Formatos vectoriales admitidos por OGR

Instala ción d e librerías

-Librería Gd: En este caso, simplemente hemos instalado el paquete

binario que venía con nuestra distribución de Linux.

-Librería Proj4: Esta librería la descargamos de Internet

(http://proj.maptools.org/, Junio 2008) y la compilamos e instalamos a

mano. Para ello ejecutamos los comandos estándar de instalación de

programas en Linux

Descompresión del paquete, configuración para nuestro equipo

compilación e instalación y posterior comprobación, esto siempre será

similar, esto es:

Page 9: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

tar -zxvf proj-4.4.8.tar.gz

cd proj-4.4.8

./configure

make

make install (como root)

Para comprobar que hemos instalado correctamente la librería, escribimos

en un terminal de linux la palabra proj, deberíamos obtener una respuesta

similar a la siguiente:

Rel. 4.4.8, 3 May 2004

usage: proj [ -beEfiIlormsStTvVwW [args] ] [ +opts[=arg] ] [ files ]

-Librerías Gdal & Ogr: Descargaremos la librería GDAL de Internet

(http://gdal.org/dl/, Junio 2008) y realizaremos una instalación estándar

como la anterior :

tar -zxvf gdal-1.2.5.tar.gz

cd gdal-1.2.5

./configure

make

make install (como root)

-Librería Curl: Se instaló la librería que venía con nuestra distribución de Linux

4.3.2 Instalación d e Mapserver Desde la página (http://mapserver.gis.umn.edu/, junio 2008), se comprobó que

existía un paquete llamado FGS, que nos facilitaría en parte el resto de la

instalación, este paquete incluía un servidor Apache, la aplicación Mapserver y

otras librerías adicionales que nos servirían para dar más funcionalidades a

nuestra aplicación, además se trataba de una opción que requería una sola

instalación más y quizás una configuración más compleja, pero en todo caso

solo una, por lo que se decidió optar por la instalación de este paquete, en lugar

de seguir instalando las dependencias una a una. El contenido de este paquete

es el siguiente:

Page 10: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

? Apache-base 1.3.33

? Curl-lib 7.12.2

? expat-base 1.95.8

? freetype-lib 2.1.9

? gd-lib 2.0.33

? gdal-base 1.2.5

? jpeg-lib 6b

? libgeotiff-lib 1.2.2

? libiconv-base 1.9.1

? libpng-lib 1.2.6

? mapserver-base 4.4.1

? mapserver-php 4.4.1

? netcdf-lib 3.5.1

? openssl-lib 0.9.7d

? php-base 4.3.10

? postgresql-lib 7.4.6

? proj-lib 4.4.8

? proj4_epsg42xxx-support 1.0.0

? tiff-lib 3.7.1

? unixODBC-base 2.2.10

? xerces_c-base 2_6_0

Como hemos visto esta instalación también incluye las librerías necesarias que

ya habíamos instalado anteriormente, pero facilitó enormemente la instalación

del resto de librerías, así como del servidor Apache.

Para la instalación, se bajó el paquete instalador de la siguiente dirección: http://www.maptools.org/dl/fgs/self_installers/fgs_mapser ver_phpmapscript_4.4

.1-0.2.2-linux-i386.bin, (Abril 2008)

Observamos que se trata de un paquete binario, por lo que su instalación es

más sencilla, como root cambiamos los permisos del paquete, dándole permisos

Page 11: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

de lectura, escritura y lo ejecutamos, esto es:

Cambio de permisos:

Chmod 777 /ruta al archivo/fgs-mapserver_phpmapscript_4.4.1-0.2.2-linux-

i386.bin

Ejecución:

./ruta al archivo/ . fgs-mapserver_phpmapscript_4.4.1-0.2.2-linux-i386.bin

Una vez descomprimido los paquetes e instaladas las librerías correspondientes

queda la parte de configuración, donde diremos a Apache donde se encuentran

nuestras librerías Php y la aplicación Mapserver, así como le indicaremos el

puerto que queremos usar, en este caso se escogió el 8080 para evitar

problemas de permisos mientras se estaba en fase de desarrollo (puertos

menores al 1024 están reservados al administrador del sistema, y a veces

trabajábamos con una cuenta de usuario normal).

Se tuvo que indicar como hemos dicho a Apache las rutas de la instalación de

Php que usamos, así como la ruta con la que queríamos para acceder a

nuestras aplicaciones, para ello se configuraron correctamente los archivos .conf

correspondientes en los directorios /ruta_apache/www/conf/ y /www/conf.d

Una vez todo correctamente configurado, la instalación de FGS nos obliga a

iniciar Apache a través de un script, la manera de arrancar sería:

? Iniciamos en entorno, esto es una de las ventajas del paquete FGS, este

script carga otras utilidades como gdalib,..., para poder usarlas desde la

consola, que posteriormente en el desarrollo de este proyecto han sido de

enorme utilidad.

./home/directorio_instalación/. setenv.sh

? Para iniciar o parar Apache hacemos:

Page 12: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

./home/directorio_instalación/fgs start

./home/directorio_instalación/fgs stop

Hasta aquí, con estos pasos se consigue un servidor apache con Mapserver

funcionando como aplicación cgi, con todas sus dependencias correctamente

instaladas y configuradas, estamos en disposición de crear una plantilla Html y

poder realizar llamadas a la aplicación Cgi Mapserver a través de esta, usando

un archivo .map que indique que es lo que queremos visualizar y como,

devolviendo una imagen a mostrar en la plantilla html, todo esto de manera local.

4.4 Instala ción d e software a diciona l

Mapserver, como ya se ha comentado, funciona como una aplicación Cgi, esto

quiere decir que recibe unos requerimientos en forma de llamada, usando un

fichero escrito por nosotros (el fichero .map) que le dice como realizar el dibujo

de estos requerimientos en forma de distintas capas, devuelve una imagen en

distintos tipos de formato, y con unas características que también definimos en

el archivo .map.

Nuestra aplicación Web no solo consiste en mostrar el mapa, se trata de

interactuar con él y obtener la información que el usuario requiera, y queremos

también que esta interacción sea lo más cómoda intuitiva y rápida posible para

el usuario final.

Se ha comentado anteriormente el uso de una plantilla html para realizar las

llamada y mostrar las imágenes finales, esta opción se trataría de la más básica,

con menos funcionalidades, y un peor aspecto. Actualmente en las aplicaciones

de Internet, el diseño es un aspecto que cobra cada vez más importancia,

incluso está muy relacionado con el concepto de usabilidad de la propia

aplicación, el usuario entiende mejor el uso de una interfaz clara y estética, que

siga unas normas de estilo a las que ya esté acostumbrado éste.

Para este fin existen distintas alternativas software disponible, que nos permiten

Page 13: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

, con una u otras funcionalidades, integrar el funcionamiento de Mapserver con

unos entornos adaptables a nuestros requerimientos, unas plantillas totalmente

configurables y adaptables a nuestra aplicación, como pueden ser Ka-Map,

Chameleon, Fusion, Roses o Mapbender como ya se ha dicho y que

funcionalidades muy similares, que principalmente difieren en el aspecto final de

la aplicación que ofrecen, y en alguna que otra funcionalidad extra. De todas ella

nuestra elección fue Mapbender como ya se justifico.

4.4.1 Instalación y configuración d e Mapb end er

Una vez que se decidió usar Mapbender, se procedió a la posterior

instalación, configuración e integración en nuestro sistema de desarrollo,

este punto tampoco es para nada trivial, pues son considerables las

dificultades y problemas que se tuvieron para realizar esta instalación.

Desde la página de Mapbender (http://www.mapbender.org, Abril 2008), se

bajó la última versión de este disponible y estable, la versión 2.4, y se

descomprimieron los archivos en la carpeta de aplicaciones de Apache.

Pasamos ahora a la configuración e integración de Mapbender, el

siguiente paso era comprobar que el sistema reunía los requisitos de

instalación, no cumplía los requisitos de Php ni de la base de datos

requerida Mysql.

La solución al problema de las dependencias Php, que si teníamos

realimente instaladas y configuradas en nuestro Apache, consistió en una

correcta configuración para nuestra instalación del archivo de

configuración de Mapbender, en la carpeta de configuración de la

instalación de Mapbender, indicamos las rutas correctas en el fichero

mapbender.conf.

El otro requerimiento era instalar Mysql en nuestro Apache, configurarlo,

integrarlo con Mapbender, crear una base de datos que Mapbender

requería, importar unos datos necesarios para su funcionamiento y dejar

corriendo este servicio SQL en el puerto 3306.

De la página www.maptools.org, (Abril 2008) , se bajo el módulo Mysql

Page 14: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

para Apache, y se configuró correctamente para nuestro sistema,

posteriormente se procedió a crear una base de datos llamada

Mapbender, importamos el esquema necesario, cargamos los datos

proporcionados por Mapbender, decimos que use esa base de datos en

ese puerto, y arrancamos el servicio Mysql esto es en consola mediante

las directivas:

>mysqldadmin create database mapbender

>mysql

source mysql_schema.sql (ruta al esquema /mysql_schema.sql)

source mysql_data.sql (ruta a los datos es la siguiente:

mysql/utf8/mysql_data.sql)

\u mapbender

>/etc/init.d/mysqld start (Arranca el servicio)

Posteriormente se le pasaron los datos de la base de datos creada al

fichero de configuración de Mapbender, y todo quedó correctamente

configurado y en funcionamiento.

Disponemos ahora pues de una interfaz de diseño gráfica, capaz de

cargar capas WMS servidas por Mapserver, todo corriendo de manera

local en el servidor, por el puerto 8080 el Apache con Mapserver,

Mapbender y sus dependencias, y por el puerto 3306 el servicio de Mysql.

Page 15: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Imagen 14: Pantalla inicial Mapbender

4.4.2 Instalación y configuración d e Geonetwork Para dar una mayor funcionalidad y versatibilidad en su uso a nuestra

aplicación, es conveniente que un experto concreto pueda acceder a los

datos que él considere conveniente en cualquier momento y de la manera

más cómoda e intuitiva posible para él. Como hemos dicho el campo de

las investigaciones vulcanológicas se trata de una disciplina altamente

multidisciplinar, por lo que puede ser complicado reunir en una interfaz

gráfica datos que sean totalmente útiles a todos los expertos que los

consulten ofreciendo una configuración aunque versátil, acotada, ya que

por ser gráfica está en cierto modo limitada para poder mostrar los datos

con una claridad aceptable, esto es que no podemos dibujar todos los

datos de los que se dispone, por otro lado hemos de dar libertad y

comodidades a los investigadores para que puedan consultar lo que

Page 16: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

consideren necesario.

Para este fin se dota a SIMACWEB de tres recursos además del ya

comentado mapa interactivo, se permite descargar la información de las

distintas capas de las que se compone el mapa clasificadas según su

categoría, y en formato zip, visualizarlas en cualquier software que acepte

capas de servidores WMS (así como incorporarlas a sus propias páginas

web) y acceder a un buscador de una base de metadatos que almacena

información ordenada sobre estas capas de las que hablamos, así

mediante una búsqueda alfanumérica, el usuario encontrará y accederá

cómodamente a datos que requiera.

La información sobre las diferentes capas que tenemos está recogida en

unos archivos XML, este es un estándar que sigue la norma ISO 19115

para el intercambio de información estructurada entre diferentes

plataformas. Se puede usar en bases de datos, editores de texto, hojas de

cálculo... , se trata de información clasificada en base a una norma.

Geonetwork es una aplicación que interpreta este tipo de archivos para

aplicaciones geográficas, y nos dota de una interfaz capaz de realizar

búsqueda, clasificar información, agregar nuevas anotaciones a una

información ya existente..., no solo nos sirve para buscar la información

que ya esté en la base de datos, si no que se pueden crear grupos de

usuarios que se ocupen además de mantener, administrar y actualizar

nuestra base de datos, y de una forma distribuida, todo a través de

nuestra Web.

Al tratarse su instalación, configuración e integración en la Web de parte

reseñable del proyecto, se detallará ésta a continuación.

Geonetwork es una herramienta de software libre, como las anteriores

tiene una gran comunidad de usuarios, y su elección se basó en que

cumplía perfectamente los requisitos que nos hacían falta y además se

trata de una herramienta gratuita.

Para la instalación de Geonetwork y su correcto funcionamiento es

requerido tener un servidor Tomcat correctamente configurado, así como

tener instalada una versión actual de JDK.

Page 17: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

El primer paso fue la instalación y posterior configuración de JDK en

nuestro servidor. En primer lugar para la instalación de JDK nos faltaban

las siguientes librerías que se instalaron desde la opción de agregar/quitar

software del sistema operativo, estas librerías eran compat-libstdc++-296 y

compat-libstdc++-33, no comentaré nada sobre ellas, solo que eran

requeridas para el correcto funcionamiento de Java en nuestro sistema.

Por otro lado, como he comentado anteriormente, en el servidor está

corriendo la versión de Linux Centos 5 Enterprise, por defecto esta

instalación tiene como navegador de Internet, Mozilla firefox 64 bits, este

hecho causó problemas al no soportar el plugin de Java requerido, por lo

que se procedió a desinstalar esta versión de Mozilla e instalar la de 32

bits, esto resolvió los problemas que se tenían respecto a la instalación de

Java, después de solucionar esto, simplemente la instalación de Java

consistió en descargar el archivo binario :

> http://cds.sun.com/.../jre-6u10-beta-linux-i586.bin

Después se procedió a su descompresión en el directorio de instalación, y

por último, indicar al navegador donde se encuentran estas librerías, esto

es:

Crear un link simbólico al Plugin de Java libjavaplugin.so en el directorio

de plugins de Firefox.

> cd <Firefox>/plugins

> ln -s <JRE>/plugin/i386/<ns7 | ns7-gcc29>/libjavaplugin_oji.so

Una vez realizado esto comprobamos la instalación:

> Java – versión

Muestra la siguiente información > Java version "1.6.0"

>Java(TM) SE Runtime Environment (build 1.6.0 -b105)

>Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)

Page 18: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Después de esto estamos en disposición de instalar la suite Geonetwork,

que integra el software Intermap, Geoserver y Geonetwork, nosotros

usamos la aplicación Geonetwork, ésta a su vez tiene dependencias con

las otras dos, no entraremos en detalles en este aspecto.

La instalación se hace fácilmente mediante una interfaz gráfica (similar a

una instalación de Windows), por lo que no es de mayor interés.

Por último, debemos instalar un servidor Tomcat y decirle donde se

encuentra nuestra instalación.

En un primer lugar nos descargamos la versión de Tomcat que

requiramos, en este caso se ha usado la 4.1.31 , se descarga el paquete

binario de la página de Tomcat y se descomprime en la carpeta de la

instalación, después de esto viene la parte más importante de la

instalación, debemos decirle a Tomcat porque puerto debe correr y donde

se encuentran nuestras aplicaciones, esto es definir los contextos dentro

del archivo ../instalacion_Tomcat/conf/server.xml , entre las directivas

<Host>. ... </Host> , escribimos:

<Context path="/geonetwork"

docBase="/home/torrecillas/geonetwork/web/geonetwork/"

crossContext="false"

debug="0"

reloadable="false" />

<Context path="/intermap"

docBase="/home/torrecillas/geonetwork/web/intermap/"

crossContext="false"

debug="0"

reloadable="false" />

<Context path="/geoserver"

docBase="/home/torrecillas/geonetwork/web/geoserver/"

crossContext="false"

debug="0"

reloadable="false" />

<Context path="/geonetwork/docs"

docBase="/home/torrecillas/geonetwork/docs/"

Page 19: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

crossContext="false"

debug="0"

reloadable="false" />

En ese mismo archivo le indicamos el puerto 8082 para los servicios de

Tomcat, con esto nuestro servidor Web está listo para correr con nuestra

aplicación Geonetwork, nos resta ahora lanzar la aplicación Geonetwork, y

arrancar Tomcat.

La instalación de Geonetwork trae un script para arrancar en Linux, no

obstante, este viene mal en la distribución que bajamos, tuvimos que

corregir el archivo start-geonetwork.sh , la parte donde mueve los logs

antiguos a una carpeta, simplemente la sintaxis estaba mal, no entraremos

en más detalles, después de corregido, para arrancar Geonetwork nos

vamos a la carpeta .../geonetwork/bin/ y hacemos :

>sh start-geonetwork.sh

Con esto ya solo nos queda arrancar Tomcat, nos vamos para ello a la

carpeta .../Tomcat/bin/ y hacemos:

>export JAVA_HOME=/usr/java/jdk1.6.0_06/

>sh startup.sh

El servidor Tomcat, a fin de facilitar su uso y configuración utiliza variable

globales que le indican donde están los programas que necesita, por

ejemplo CATALINA_HOME, que le indica donde se encuentran los

archivos propios del servidor, estas variables se configuran en la

instalación, en nuestra distribución de Linux, JAVA no corre todo lo bien

que debiese, y la variable global necesaria JAVA_HOME , no queda bien

direccionada, por lo que antes de arrancar el servicio debemos redefinirla

correctamente, esta redirección solo tendrá validez temporal, debemos

volver a hacerla cada vez que arranquemos Tomcat, es una solución

válida, pues esto no se hará a menudo y no es una opción que nos

suponga un gran esfuerzo.

Page 20: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Después de todos estos procesos vemos las siguientes pantallas que nos

indican que todo está correcto:

Imagen 15: Pantalla inicio Tomcat

Es conveniente comprobar que todas las dependencias funcionan

correctamente, por lo que nos vamos a la sección de ejemplos que

tenemos en el menú de la izquierda y pinchamos sobre Servlet Examples,

comprobaremos si JAVA funciona correctamente.

Page 21: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Imagen 16: Pruebas de funcionamiento Tomcat

Probamos el ejemplo llamado “Hello World” y obtenemos la siguiente

pantalla:

Page 22: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Imagen 17: Pruebas de funcionamiento Tomcat

Como se comprueba todo funciona correctamente, nos disponemos ahora

a acceder a la aplicación Geonetwork, que se encuentra en la dirección

http://127.0.0.1:8082/geonetwok, como configuramos anteriormente,

llegamos a la pantalla inicial de la aplicación:

Page 23: 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La infraestructura necesaria para nuestra aplicación es bastante estándar para una aplicación

Imagen 18: Pantalla inicial interfaz Geonetwork

En este punto disponemos ya del entorno de desarrollo completamente

instalado y configurado, como se ha explicado en los distintos puntos de esta

memoria, ha sido un proceso largo, tedioso y con muchas dependencias, que

ha abarcado una parte considerable del tiempo dedicado al proyecto.