Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Serwebdeana

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

Servicio web de análisis de redes en sistemas de información

geográfica
Miguel R. Luaces, José R. Paramá, Diego Seco Naveiras

Laboratorio de Bases de Datos


Universidade da Coruña
Campus de Elviña S/N
{luaces, parama, dseco}@udc.es

Resumen

En este artículo presentamos un sistema para realizar análisis de redes en Sistemas de Información
Geográfica (SIG). La arquitectura del sistema es conforme a las propuestas de los organismos
internacionales ISO y OpenGeospatial Consortium. Siguiendo el ejemplo de otros servicios
estandarizados por estos organismos, como el WMS o el WFS, la arquitectura contempla el
desarrollo de un servicio web para ofrecer toda la funcionalidad de manera remota.

El análisis de redes en el contexto de los SIG es una necesidad reconocida por los organismos
internacionales citados pero que no está implementada en ninguna de las herramientas SIG de
procesado y visualización de información geográfica más comunes. Algunos ejemplos de técnicas
de análisis que se pueden aplicar son el cálculo de la ruta más corta en redes de carreteras, el cálculo
de la facilidad de acceso a núcleos de población o la modelización del flujo de agua en redes de
abastecimiento. Para que estas técnicas de análisis se puedan llevar a cabo es muy importante que
los pesos de los arcos del grafo definido por la red espacial puedan ser ponderados utilizando
características específicas de los elementos geográficos. Muchas de las técnicas de análisis que
acabamos de citar se estudian dentro de otros campos como la Investigación Operativa pero los
trabajos llevados a cabo en este campo son ajenos a los SIG y se necesita un gran esfuerzo para
conectar los productos desarrollados en cada una de las áreas.

En el diseño de la arquitectura se emplearon patrones arquitectónicos y de diseño para obtener una


arquitectura modular, robusta y fácilmente extensible. La arquitectura se compone de tres módulos
principales. El módulo más importante que implementa toda la funcionalidad es el módulo de
análisis de redes (NAM). Sobre el NAM se asienta otro módulo que permite su integración en
herramientas de procesado y visualización de información geográfica (como JUMP o gvSIG) y un
servicio web que ofrece su funcionalidad de manera remota.

La arquitectura es extensible sobre todo en dos puntos. En primer lugar, es extensible en cuanto a
las fuentes de datos para obtener la información geográfica. La información geográfica puede estar
contenida en bases de datos, ficheros planos, ficheros shapefile, etc. Se desarrollaron componentes
de acceso a datos para acceder a las fuentes de información más comunes y se crearon interfaces
fácilmente extensibles para acceder a otras fuentes de datos. En segundo lugar, es extensible en
cuanto al mecanismo de pesado de los arcos que componen la red. Para representar el peso de un
arco se diseñó una jerarquía que representa una fórmula evaluable. También se diseñó una jerarquía
paralela para realizar el análisis sintáctico del XML donde se especifica la fórmula. Ambas
jerarquías están conectadas y son fácilmente extensibles.

El sistema se integró en dos herramientas de procesado y visualización de información geográfica,


JUMP y gvSIG. También se realizó la integración del servicio web en un visor web de información
geográfica. La validación se realizó con datos geográficos proporcionados por la Biblioteca Virtual
Galega (BVG). Esta validación permitió detectar deficiencias en la cartografía digitalizada abriendo
una nueva línea de trabajo en el desarrollo de herramientas para mejorarla.

Palabras clave: Sistemas de Información Geográfica (SIG), análisis de redes, servicios web, Open
Geospatial Consortium (OGC).

1 Introducción
Los Sistemas de Información Geográfica (SIG) [1] constituyen un área de rápido desarrollo dentro
de la informática y ofrecen métodos sumamente innovadores para hacer frente a algunas demandas
técnicas que constituyen un reto. Las mejoras recientes en el hardware han hecho posible que la
implementación de este tipo de sistemas sea abordable por muchas organizaciones. Además, se ha
llevado a cabo un esfuerzo colaborativo por dos organismos internacionales (ISO [2] y el Open
Geospatial Consortium [3]) para definir estándares y especificaciones para la interoperabilidad de
los sistemas. Este esfuerzo ha hecho posible que muchas organizaciones públicas estén trabajando
en la construcción de infraestructuras de datos espaciales [4] que les permitirán compartir su
información geográfica.

Dentro de los SIG un campo de aplicación muy importante es el análisis de redes a partir de la
información geográfica que las representa (por ejemplo, redes de carreteras, redes de abastecimiento
de agua, redes de telecomunicaciones, etc.). El cálculo de la ruta más corta en redes de carreteras, el
cálculo de la facilidad de acceso a núcleos de población o la modelización del flujo de agua en redes
de abastecimiento son sólo algunos ejemplos de las técnicas de análisis que se pueden aplicar. Para
que estas técnicas de análisis se puedan llevar a cabo es muy importante que los pesos de los arcos
del grafo definido por la red espacial puedan ser ponderados utilizando características específicas de
los elementos geográficos (por ejemplo, tipo y estado de la carretera, diámetro de la tubería, etc.).

Por otro lado, muchas de estas técnicas son bien conocidas y están muy estudiadas dentro de otras
áreas de conocimiento como la Investigación Operativa. Existen muchos artículos publicados sobre
trabajos relacionados con algoritmos de redes, obtención de rutas de peso mínimo, variantes del
problema del viajante (TSP), etc. En los últimos años áreas tan novedosas como la Vida Artificial
también están abordando este tipo de problemas obteniendo soluciones muy eficientes a los
mismos. Como trabajos más relevantes en esta área podemos citar los de Marco Dorigo sobre
colonias de hormigas artificiales para resolver el problema del viajante [5]. Sin embargo, estos
trabajos se están desarrollando independientemente del mundo SIG. Se desarrollan productos
pensando únicamente en grafos con pesos asociados a sus arcos y es necesario realizar un gran
esfuerzo para combinar los productos software desarrollados en cada área.

Se han desarrollado muchas librerías y productos software libre tanto para SIG como para el manejo
de grafos. Por una parte, en el área de los SIG se han desarrollado herramientas para el
almacenamiento, procesado y visualización de la información geográfica. Ejemplos de estas
herramientas son el Sistema Gestor de Bases de Datos PostgreSQL [6] extendido con el módulo
para información geográfica PostGIS [7], la herramienta de visualización y procesamiento de
información geográfica Java Unified Mapping Platform (JUMP) [8] o la herramienta de manejo de
información geográfica desarrollada por la Generalitat Valenciana gvSIG [9]. Por otra parte, en el
área de la Investigación Operativa y manejo de grafos podemos citar la librería Java Universal
Network/Graph Framework (JUNG) [10] que proporciona un lenguaje común y extensible para
modelar, analizar y visualizar datos que pueden ser representados como un grafo.

En este artículo se presenta un proyecto para realizar análisis de redes en SIG a través de un servicio
web. Este trabajo, desarrollado en el Laboratorio de Bases de Datos de la Universidade de A
Coruña, pretende cubrir una funcionalidad que se reconoce muy útil y necesaria en el área de los
SIG pero que no se incluye todavía en ninguna de las herramientas SIG más comunes. El análisis de
redes incluye tanto análisis sencillos, como puede ser el cálculo de rutas y distancias, como análisis
complejos, del estilo de cálculos de accesibilidad y conectividad. Además, el trabajo realizado está
enmarcado en el contexto actual de los SIG, por lo que, siguiendo el camino abierto por el OGC en
especificaciones como el Web Map Service (WMS) [11] o el Web Feature Service (WFS) [12], se
define un servicio web que permite acceder a esta funcionalidad de manera remota. Se emplean
estándares siempre que es posible (por ejemplo, se emplea GML para representar información
geográfica y se utilizan los tipos de datos reflejados por el OGC para trabajar con objetos
geográficos).

El resto de artículo está organizado de la siguiente forma. Primero, se describen algunos conceptos
básicos y trabajo relacionado en la Sección 2. A continuación, en la sección 3, presentamos la
arquitectura general del sistema y describimos brevemente sus componentes. La arquitectura se
estructura en torno a un componente que permite gestionar y realizar análisis sobre redes,
denominado Network Analysis Module (NAM). Sobre este componente se asienta un servicio web,
denominado Web Network Service (WNS), que permite el acceso a su funcionalidad de manera
remota y un módulo que permite su integración en herramientas de visualización y procesamiento
de información geográfica (JUMP, gvSIG, UDIG, etc.). Estos tres componentes son descritos en
más detalle en las secciones 4, 5 y 6 respectivamente. La Sección 7 presenta algunos resultados de
la implementación y validación realizadas. Finalmente, la Sección 8 presenta algunas conclusiones
y futuras líneas de trabajo.

2 Trabajo relacionado
Una de las bases sobre las que se asienta el trabajo presentado en este artículo es la teoría de grafos.
La teoría de grafos tiene unos fuertes fundamentos matemáticos que no podemos explicar en este
artículo. En [13] pueden encontrarse definiciones formales a la mayoría de los conceptos que se
explicarán de manera más informal a continuación. Analizaremos el contexto en el que se enmarca
este trabajo describiendo los detalles más relevantes en cuanto a manejo de grafos.

En primer lugar, analizando el tipo de redes con las que estamos interesados en trabajar en SIG
(redes de carreteras, redes de abastecimiento de agua, etc.) se puede observar la característica de
direccionalidad en los arcos que componen la red. Por tanto, el primer concepto que se debe tener
en cuenta es que los grafos que emplearemos serán grafos dirigidos o dígrafos. Otra característica
de interés es que el grafo debe ser pesado o ponderado; es decir, los arcos que componen la red
tienen un peso asociado. Por ejemplo, en una red de carreteras debe ser posible asignar un peso a
cada carretera en función de su estado, su longitud y otros parámetros que para el caso concreto se
consideren de interés. También es importante tener en cuenta que el grafo es disperso, cada vértice
tiene pocos vecinos. Se entiende por vecino de un vértice aquel otro vértice alcanzable mediante
algún camino de longitud 1. Por último, el grafo debe permitir que se puedan obtener caminos de
peso mínimo en él. Debe cumplir las precondiciones de algoritmos que permiten obtener eses
caminos más cortos tales como el Algoritmo del camino más corto de Dijkstra [14].

Existen muchas librerías de software libre que dan soporte a los conceptos y algoritmos que
acabamos de introducir. En el trabajo que presentamos se emplea JUNG [10]. JUNG es una librería
de código abierto que proporciona un lenguaje común y extensible para modelar, analizar y
visualizar datos que pueden ser representados como un grafo. Está escrito en Java lo que permite a
las aplicaciones basadas en JUNG hacer uso de las características intrínsecas del API de Java. La
arquitectura de JUNG está diseñada para soportar gran variedad de representaciones de entidades y
sus relaciones, tales como grafos dirigidos y no dirigidos. Proporciona un mecanismo para anotar
los grafos, entidades y relaciones con metadatos. Además, la distribución actual de JUNG incluye la
implementación de una serie de algoritmos de la teoría de grafos, data mining, análisis de redes
sociales y, lo más interesante de cara a este trabajo, cálculo de distancias en redes. En este trabajo se
emplea JUNG como una caja negra que oculta toda la teoría de grafos. Se extienden los conceptos
de grafo, arco y vértice para adaptarlos al dominio de los SIG (se complementan con la información
geográfica asociada) y se emplea el API de JUNG directamente para realizar operaciones sobre ese
grafo extendido, como la obtención de la ruta más corta entre dos vértices.

Por otra parte, siguiendo el ejemplo de otros estándares como el WMS o el WFS nuestro trabajo
proporciona acceso a la funcionalidad de análisis de redes a través de un servicio web. Sin embargo,
no es el objetivo de este artículo hacer una explicación exhaustiva acerca de los servicios web. A
modo de introducción se puede decir que un servicio web es un componente software accesible
mediante los protocolos de comunicación estándares para el Web que recibe peticiones y envía las
correspondientes respuestas mediante el uso de una serie de protocolos estandarizados basados en
XML.

En la implementación de un servicio web se necesita definir un protocolo de comunicación de datos


y un protocolo de definición del servicio. En este trabajo se ha utilizado Simple Object Access
Protocol (SOAP) [15] como protocolo de comunicación de datos y Web Services Description
Language (WSDL) [16] como protocolo de definición de servicio. Además, se ha utilizado Java
API for XML-based RPC (JAX-RPC) [17] que es un software que genera automáticamente código
fuente para el servicio a partir de su definición WSDL. SOAP es un protocolo basado en XML para
el intercambio de información en un entorno distribuido estandarizado por el W3C [18]. A nivel
conceptual permite enviar peticiones y respuestas en XML sobre HTTP, que es la alternativa más
usual, o sobre SMTP. WSDL es un dialecto de XML que permite especificar las operaciones y tipos
de datos de un servicio web y que, al igual que SOAP, está estandarizado por el W3C. En un
documento WSDL se definen los tipos de datos, los mensajes, los tipos de puertos (interfaces que
expone el servicio), los bindings (protocolo y formato de datos para cada tipo de puerto) y los
servicios que expone el servicio web. Por último, JAX-RPC es un API de programación
estandarizado como parte de J2EE que facilita el envío y recepción de mensajes. Al estar basado en
Remote Procedure Calls (RPC) proporciona una comunicación síncrona que es la más empleada
hoy en día. Existen varias implementaciones de este API entre ellas la empleada en este proyecto,
Apache-Axis [19].

3 Arquitectura del sistema


La Figura 1 muestra nuestra propuesta para la arquitectura de un servicio de análisis de redes en
Sistemas de Información Geográfica. La arquitectura se diseñó empleando patrones arquitectónicos
y de diseño [20][21][22] para obtener como resultado una arquitectura modular, robusta y
fácilmente extensible. El sistema se estructura en torno a un componente, denominado Network
Analysis Module (NAM), que implementa toda la funcionalidad necesaria para gestionar y realizar
análisis sobre redes. Una de sus características principales es la extensibilidad en cuanto a las
fuentes de datos a las que puede acceder (bases de datos, ficheros shapefile, ficheros GML, etc.).
Esto se refleja en la parte inferior derecha de la figura donde se representan varias fuentes de datos
y el módulo extensible de acceso a esas fuentes. La parte inferior izquierda de la figura representa la
base de datos en la que la que el NAM almacena el grafo y todos sus metadatos.

CLIENTE

Internet
Herramienta
SIG externa
Módulo de
integración
WNS

NAM
Módulo de
acceso a datos

Base de
datos Base de Fichero ...
datos plano

Figura 1. Arquitectura general

Sobre el componente principal se asientan dos módulos que implementan dos posibles modos de
empleo del componente principal. En la parte superior izquierda se muestra un módulo que permite
la integración en herramientas de visualización y procesamiento de información geográfica (JUMP,
gvSIG, UDIG, etc.). El otro módulo, representado en la parte superior derecha, es un servicio web
denominado Web Network Service (WNS) que permite el acceso a la funcionalidad de análisis de
redes de manera remota. Se pueden implementar de manera sencilla clientes que accedan a este
servicio a través de Internet empleando un Proxy [20] remoto.

El protocolo para el flujo de datos de la arquitectura establece una comunicación entre los módulos
de interfaz (módulo de integración en herramientas externas y WNS) y el NAM mediante un
lenguaje XML diseñado para realizar la configuración del sistema. Las respuestas del sistema
también serán mediante XML o GML en caso de que la respuesta contenga información geográfica.

4 Módulo de Análisis de Redes


El módulo de análisis de redes (NAM) es el encargado de implementar toda la funcionalidad para
realizar análisis de redes en SIG. Esta funcionalidad abarca desde la construcción del grafo a partir
de la información geográfica que se indique hasta la obtención de rutas de peso mínimo. A
continuación se van a explicar brevemente las características más importantes de este módulo.

En primer lugar, el NAM permite construir redes a partir de información geográfica contenida en
fuentes de datos diversas, desde una base de datos relacional hasta ficheros planos. Dado que sería
imposible realizar una implementación capaz de obtener los datos para construir las redes de
cualquier fuente de datos se realizó un diseño extensible en ese sentido. El módulo proporciona una
implementación por defecto para obtener los datos de una base de datos relacional con extensión
para información geográfica conforme al estándar Simple Features for SQL del OGC [23] y
proporciona también interfaces fácilmente extensibles para acceder a otras fuentes de datos.

En segundo lugar, los arcos que forman la red pueden ser ponderados en función de diversos
factores y atributos de los objetos que los originan. Se realizó también un esfuerzo para la
extensibilidad del módulo en este sentido. En la Figura 2 se representa una parte de la vista estática
del componente encargado de realizar el pesado de arcos. El peso de cada arco se representa con
una fórmula evaluable, la cual denominamos WeightFormula. Para diseñar esta fórmula se empleó
una jerarquía fácilmente extensible siguiendo el patrón de diseño Composite [20]. Una fórmula
válida está formada por un literal, una propiedad u operaciones sobre otras fórmulas válidas.
Paralelamente a esta jerarquía se diseñó otra siguiendo el patrón de diseño Chain of Responsability
[20] que se encarga de analizar sintácticamente el XML donde se define la fórmula e instanciar el
objeto compuesto adecuado. Este diseño a nivel global donde una jerarquía se encarga de instanciar
a la otra sigue el patrón de diseño Factory Method [20].

Figura 2. Jerarquía de ponderación de arcos

La Figura 3 presenta un ejemplo real de WeightFormula. El contexto donde podría ser válida esta
fórmula supone la existencia de una base de datos de carreteras en la cual entre los atributos de la
carretera se encuentran su geometría (the_geom) y un factor numérico que representa el estado de la
carretera (state). La fórmula para ponderar los pesos de los arcos que representa la figura es
1.5*length(the_geom)+ state y supone que state toma valores pequeños para carreteras en buen
estado.

<weightFormula type="sum">
<weightFormula type="mult">
<weightFormula type="literal" param="1.5"/>
<weightFormula type="dbAttribute" param="length(the_geom)"/>
</weightFormula>
<weightFormula type="dbAttribute" param="state"/>
</weightFormula>

Figura 3. XML ejemplo de WeightFormula

En este ejemplo se emplean dos WeightProperty, el estado y la longitud de la carretera. Una


propiedad puede ser un atributo de una base de datos (por ejemplo, state), una operación sobre el
mismo (por ejemplo, length(the_geom)), etc.

Para extender el sistema en este punto se deben acometer dos acciones. Primero, extender la
jerarquía de la WeightFormula con la nueva operación o tipo de dato definiendo su mecanismo de
evaluación. Segundo, extender el analizador sintáctico para que reconozca el nuevo elemento como
parte de una fórmula válida y sea capaz de instanciarlo. Siguiendo con el ejemplo de la figura, si el
estado de la carretera estuviese determinado por un atributo alfanumérico, sería muy sencillo
implementar un operador switch que realizase la conversión. Este operador switch es mucho más
reutilizable que otras alternativas como la implementación de un objeto de acceso a datos a medida
o la creación de una vista sobre la tabla de la base de datos.

En último lugar, una vez que está construido el grafo y los arcos tienen un peso asignado se pueden
ejecutar técnicas de análisis sobre el grafo. Como ya se ha descrito en una sección anterior para el
manejo de grafos empleamos JUNG. Nuestra implementación extiende los conceptos de grafo, arco
y vértice de esta librería para complementarlos con la información geográfica del SIG. Por tanto, se
pueden emplear directamente las técnicas de análisis que implementa esta librería. Un ejemplo de
aplicación es la obtención de la ruta de peso mínimo entre dos puntos siguiendo una red de
carreteras. En la interfaz de visualización del SIG se señalará el punto de origen y el punto de
destino. El sistema traducirá estos puntos a sus vértices más próximos y obtendrá la ruta de peso
mínimo entre ellos. El resultado se puede visualizar de nuevo en el SIG representando las
geometrías asociadas a los arcos que componen el camino de peso mínimo.

5 Servicio Web de Análisis de Redes


El Web Network Service (WNS) se ha desarrollado para seguir la tendencia actual marcada por los
organismos de estandarización ISO y OGC pudiendo de este modo integrarse en la arquitectura
colaborativa que estos organismos proponen para los SIG. Sigue el ejemplo de otros servicios
estandarizados como el WMS o el WFS.

La interfaz del servicio proporciona acceso a toda la funcionalidad del módulo de análisis de redes
sobre el que está construido. Esta funcionalidad incluye la gestión de redes (creación, búsquedas,
borrados, etc.), la inserción de componentes (arcos y vértices) desde distintas fuentes de datos, la
aplicación de técnicas de análisis, etc.

Algunos de los casos de uso enumerados requieren especificar bastantes parámetros de


configuración para ser ejecutados. Por ejemplo, para insertar arcos en una red se debe especificar,
además de la red en la que se desean insertar, la fuente de datos (por ejemplo, una base de datos
accesible en una determinada URL, con un nombre de usuario y su contraseña), las geometrías que
van a dar lugar a los arcos (por ejemplo, cierto atributo de una tabla disponible en la base de datos
antes configurada), la expresión para la obtención de los pesos de los arcos, etc. Para indicar esta
configuración el protocolo de comunicación de la arquitectura establece la definición de un lenguaje
XML para la especificación de estos parámetros.

Por motivos de eficiencia se desarrolló un mecanismo de caché de redes para no tener que acceder a
la base de datos cada vez que un usuario desea realizar una operación sobre una red. Dada la
naturaleza multiusuario del servicio se implementó un mecanismo de manejo de la concurrencia en
el acceso a la caché. El empleo del patrón de diseño distribuido Read/Write Lock [21] permite que
el sistema sea muy eficiente en el acceso a la caché. Este patrón permite lecturas concurrentes y
exclusividad en escritura. Se realizó la implementación de este patrón a nivel de cada red en la
caché debido a que hacerlo a nivel caché implicaría que mientras que se está modificando una red
no se puede realizar la lectura de ninguna otra, por lo que la eficiencia global del sistema sería
mucho menor.
La tecnología que permite la comunicación (en este caso SOAP combinado con WSDL) debe ser
totalmente transparente para los clientes. Los clientes deben trabajar del mismo modo que si lo
estuviesen haciendo contra un sistema local. Para lograr este objetivo se desarrolló un Proxy [20]
que encapsula la tecnología empleada para la comunicación remota. Esto permite que los clientes
del servicio puedan ser desarrollados por personas sin conocimientos sobre servicios web haciendo
mucho más accesible el WNS.

6 Integración en una herramienta de visualización


Existen muchas herramientas de software libre que permiten visualización y procesamiento de
información geográfica. En esta sección presentamos cómo se realizó la integración del Módulo de
Análisis de Redes en dos de ellas: JUMP y gvSIG. Ambas herramientas, a pesar de ser muy
similares, tienen sus particularidades en cuanto a interfaz de usuario y mecanismo de extensión. El
módulo de integración debe tener en cuenta estos dos aspectos. En cuanto a interfaz de usuario, la
funcionalidad nueva debe resultar lo más natural posible para los usuarios habituales de la
herramienta. Por ello se deben considerar las particularidades de cada una de las interfaces y se
debe adaptar la nueva funcionalidad lo mejor posible. En cuanto al mecanismo de extensión, cada
herramienta proporciona su propio mecanismo a pesar de tener un procedimiento de extensión
similar. El procedimiento para extender las herramientas consiste en desarrollar unos adaptadores
que implementen la interfaz de extensión que proporcionan delegando la funcionalidad, en este
caso, en el NAM. Los adaptadores y el módulo que implementa la funcionalidad deben ser
empaquetados en un jar que se copia a un directorio específico de la aplicación.

En la Figura 4 se presenta una captura de pantalla de la herramienta JUMP con el Módulo de


Análisis de Redes integrado en ella. En el menú se puede observar la entrada Network Analysis
Module, esta opción da acceso a las funcionalidades de creación de red, inserción de arcos y
vértices, búsquedas de redes, etc. En la barra de herramientas las dos más a la derecha ejecutan la
búsqueda de la ruta más corta entre dos puntos, la primera de ellas, y la búsqueda de rutas entre un
origen y un destino pasando por ciertos puntos, la segunda. La ventana modal Paths Found muestra
los resultados de la ejecución en cuanto a longitud y peso de la ruta. También se puede observar
cada ruta obtenida en una nueva capa de la ventana de mapa.

Figura 4. Integración en JUMP


7 Implementación y validación
La implementación y validación experimental del sistema se realizó con datos de las carreteras de la
comunidad autónoma de Galicia proporcionados por la Biblioteca Virtual Galega (BVG) [24]. En la
Figura 5 puede observarse una captura de pantalla del WNS integrado en un visor web de
información geográfica desarrollado también en el Laboratorio de Bases de Datos de la
Universidade de A Coruña.

Figura 5. Integración en un visor web de información geográfica

En la actualidad este sistema no está operativo con la cartografía proporcionada por la BVG debido
fundamentalmente a problemas con la digitalización de la cartografía. El problema principal que se
descubrió es de conectividad. Las geometrías de las carreteras no llegan a intersecar en muchos
cruces donde deberían hacerlo. El sistema nos permitió comprobar estas deficiencias en la
cartografía y se está trabajando en el desarrollo de herramientas que permitan mejorar su
digitalización.

8 Conclusiones y trabajo futuro


En este artículo se ha presentado una arquitectura de sistema para realizar análisis de redes en SIG.
En el diseño de esta arquitectura se han empleado patrones arquitectónicos y de diseño obteniendo
como resultado una arquitectura robusta, modular y fácilmente extensible. Esta extensibilidad
permite el acceso a diversas fuentes de datos para la obtención de la información geográfica que
origina las redes. También permite una configuración total del mecanismo de pesado de los arcos
que componen la red mediante una fórmula parametrizable. Siguiendo la tendencia actual en los
SIG la arquitectura contempla un servicio web de análisis de redes siguiendo el ejemplo de otros
estandarizados como el WMS o el WFS.

La implementación y validación experimental del sistema con datos de la BVG nos permitió
observar uno de los principales problemas en los SIG, la conectividad de las geometrías. La calidad
de la cartografía digitalizada es mucho más baja de lo que sería deseable aunque se está mejorando
sustancialmente con el empleo del GPS en el proceso de digitalización.

Entre las futuras líneas de trabajo se encuentra, en primer lugar, finalizar el desarrollo de
herramientas que permitan mejorar la calidad de la cartografía. Esto permitirá que se pueda dar
acceso al público al WNS con la cartografía de la BVG. En segundo lugar, planeamos la
implementación de componentes de acceso a datos para otras fuentes de datos (por ejemplo,
ficheros shapefile). También pensamos hacer uso de la facilidad de extensión de la herramienta para
desarrollar nuevos operadores de pesado de arcos (por ejemplo, el ya comentado operador switch).
Son posibles futuras mejoras de los componentes desarrollados principalmente en cuanto a
optimizaciones del consumo de memoria y mecanismo de caché. Otra línea de trabajo futuro podría
ser la exploración de técnicas novedosas, como colonias de hormigas virtuales, para la obtención de
rutas de peso mínimo. Finalmente, es posible su implantación en sistemas SIG reales (por ejemplo,
en ideAC [25]).

Referencias
[1] M. F. Worboys. GIS: A Computing Perspective. Taylor & Francis, 1995. ISBN: 0-7484-
0065-6.
[2] Geographic information – reference model. International Standard 19101, ISO/IEC, 2002.
[3] OpenGIS Reference Model. OpenGIS Project Document 03-040, Open GIS Consortium,
Inc., 2003.
[4] Global Spatial Data Infrastructure Association. Accedido en la URL http://www.gsdi.org/.
[5] M. Dorigo y L. M. Gambardella. Ant colonies for the travelling salesman problem.
BioSystems, volumen 43, páginas 73 – 81, 1997.
[6] PostgreSQL. Accedido en la URL http://www.postgresql.org.
[7] PostGIS. Accedido en la URL http://postgis.refractions.net.
[8] JUMP. Accedido en la URL http://www.vividsolutions.com/jump.
[9] gvSIG. Accedido en la URL http://www.gvsig.gva.es.
[10] JUNG. Accedido en la URL http://jung.sourceforge.net.
[11] Open Geospatial Consortium, Inc. Web Map Service (WMS) Implementation Specification.
Accedido en la URL http://portal.opengeospatial.org/files/?artifact_id=5316.
[12] Open Geospatial Consortium, Inc. Web Feature Service (WFS) Implementation
Specification. Accedido en la URL http://portal.opengeospatial.org/files/?artifact_id=8339.
[13] R. P. Grimaldi. Matemáticas discreta y combinatoria. Una introducción con aplicaciones.
Tercera edición. Addison-Wesley Iberoamericana, 1997.
[14] E. W. Dijkstra. A note on two problems in connexion with graphs. Numerische Mathematik,
1:269-271, 1959.
[15] Simple Object Access Protocol (SOAP) 1.1. Accedido en la URL
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/.
[16] Web Services Description Language (WSDL) 1.1. Accedido en la URL
http://www.w3.org/TR/wsdl.
[17] JAX-RPC Project. Accedido en la URL https://jax-rpc.dev.java.net/.
[18] W3C. World Wide Web Consortium. Accedido en la URL http://www.w3.org/.
[19] Apache-AXIS. Accedido en la URL http://ws.apache.org/axis/.
[20] E. Gamma, R. Helm, R. Johnson y J. Vlissides. Design Patterns: Elements of Reusable
Object-oriented Software. Addison-Wesley, 1996.
[21] M. Grand. Patterns in Java. Volume 1. John Wiley & Sons, 1998.
[22] D. Alur, J. Crupi y D. Malks. Core J2EE Patterns. Prentice Hall, 2003.
[23] Open Geospatial Consortium, Inc. Implementation Specification for Geographic
information - Simple feature access - Part 2: SQL option (SFS). Accedido en la URL
http://portal.opengeospatial.org/files/?artifact_id=13228.
[24] Biblioteca Virtual Galega. Accedido en la URL http://bvg.udc.es.
[25] Información en la web de la EIEL de la Diputación de A Coruña
(http://www.dicoruna.es/webeiel/).

También podría gustarte