4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La...
Transcript of 4 Infraestructura del SIMACWEBbibing.us.es/proyectos/abreproy/11691/fichero... · La...
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.
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
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
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í
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)
Sí
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
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
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
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:
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:
? 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
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:
./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
, 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
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.
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
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.
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)
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/"
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.
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.
Imagen 16: Pruebas de funcionamiento Tomcat
Probamos el ejemplo llamado “Hello World” y obtenemos la siguiente
pantalla:
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:
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.