III JORNADAS DE SIG LIBRE Servicios Web con funcionalidad Geográfica como herramientas para el análisis y generación de información estratégica en las organizaciones. Millares Roó (1), José Antonio y Antonio Fraga Fernández (1) (1) SIGNO, Ingeniería del Territorio. C/ As Camelias nº2 3ºD, 15895, Milladoiro (Ames), A Coruña RESUMEN SIGNO Ingeniería del Territorio, a través de un proyecto de I+D financiado por la Consellería de Industria de la Xunta de Galicia está desarrollando un proyecto que permitirá a las pymes acceder a herramientas de representación y análisis geográfico mediante servicios web con funcionalidad geográfica. Palabras clave: API, Web Services, Open Source, WMS, Modelos gravitacionales, CRM, ERP, OLAP. ABSTRACT SIGNO Ingeniería del Territorio, through an R & D project funded by the Ministry of Industry of the Galician regional government is developing a project that will allow SMEs access to tools of representation and geographical analysis by using web services with geographic functionality. Key words: API, Web Services, Open Source, WMS, Gravity Models, CRM, ERP, OLAP.
INTRODUCCIÓN Las organizaciones, cualquiera que sea su tipo, cuentan con una gran cantidad de datos que contiene una componente espacial (códigos postales, direcciones, coordenadas, etc.). Estos datos pueden ser analizados y usados para generar información estratégica en los distintos ámbitos de la empresa (logística, operaciones, marketing o ventas); en cualquiera de los casos, la posibilidad de analizarlos espacialmente incrementa su valor como fuente de información. Sin embargo, por norma general, estos datos no son analizados desde un punto de vista geográfico; tanto por desconocimiento de las tecnologías existentes, como por la dificultad técnica de su uso o por los elevados costes que se derivan del mantenimiento de este tipo de herramientas.
DESCRIPCIÓN FUNCIONAL La finalidad última del proyecto es el desarrollo de una aplicación en internet que permita a las pymes acceder a herramientas de representación y análisis, mediante servicios web con funcionalidad geográfica. El core de la aplicación se sustenta sobre tres pilares: Mapserver como servidor de mapas, PosgreSQL (Postgis) como servidor de bases de datos relacionales (tanto geográficas como alfanuméricas) y OpenLayers, como cliente WMS y visor de cartografía. La lógica del negocio está implementada mediante librerías y scripts desarrollados en PHP y se publica mediante un servidor Apache. La comunicación entre el núcleo del sistema y el servidor de mapa, se lleva a cabo mediante operaciones WMS y WFS, según las describe la OGC (Open Geospatial Consortium); lo que nos permite tanto utilizar cartografía servida a través de internet por terceros, como publicar nuestros propios mapas en un entorno completamente estándar. Los servicios ofertados pueden ser consumidos por el usuario final de dos formas: por un lado haciendo uso de la aplicación web desarrollada y, por otro, mediante una API en javascript. Esta aplicación propone una interfaz de usuario para los servicios, lo que permite al usuario registrado subir, almacenar (en un entorno seguro) y analizar sus datasets; obteniendo resultados en forma de mapas, gráficos e informes. Este Front-End respeta los estándares fijados por el W3C, tanto en lo que concierne a la interoperabilidad como a la accesibilidad (WAI). En el otro extremo, la API en Javascript permitirá al desarrollador de aplicaciones web, integrar dentro de su sistema un subconjunto de las funcionalidades publicadas (tanto
geográficas como analíticas). Las clases Javascript encapsulan las funcionalidades del sistema, y ofrecen una interfaz de programación que permitirá integrar a potencia do sistema dentro de cualquier página web, sin necesidad de usar tecnologías de servidor, con el consiguiente ahorro de costes. En un escenario tipo, los datasets de usuario provendrán de una herramienta de gestión corporativa, tipo CRM o ERP y deberán ser exportados a un formato intermedio adecuado (csv, xml, etc.) y normalizados, como paso previo a su utilización. El sistema ofrece compatibilidad nativa con herramientas Open Source de gestión empresarial (OpenBravo, SugarCRM, OpenExpertia, etc.) y permite el desarrollo de conectores para otro tipo de software. Podemos dividir las funcionalidades ofertadas en dos grandes grupos: por una parte las de naturaleza estrictamente geográfica y, por otra, las analíticas. Podemos resumir las funcionalidades geográficas en: - Navegación (zooming, panning, gestión de escalas, capas, etc.) - Geocodificación directa e inversa - Consultas geográficas (identificación de elementos) - Búsquedas alfanuméricas (libres, combinadas, con patrones, etc.) Por el contrario, dentro de las analíticas, tenemos: - Aplicación de modelos gravitacionales (Huff) - Análisis multidimensional basado en OLAP (On-line Analytical Processing) Como complemento de estas últimas, el sistema dispone de un módulo de charting, para la generación en tiempo real de gráficas altamente personalizables; y de un módulo de reporting, que permite la obtención de informes con distintos niveles de complejidad, igualmente configurables por el usuario.
DESCRIPCIÓN TÉCNICA Para una mejor compresión del proyecto, podemos dividirlo en cuatro áreas funcionales: visualización, servicios geográficos, análisis de datos de usuario y herramientas complementarias. Visualización Dentro de esta área, hay que distinguir la visualización básica, mediante mapas estáticos, sin funcionalidades adicionales, y la visualización avanzada, que implica el uso de un visor de mapas con características avanzadas y de alto nivel de interactividad. La visualización básica tiene como objetivo la generación de mapas con diferente nivel de complejidad, que se obtienen en formato imagen (por defecto en PNG, pero también en los formatos JPEG, GIF, etc.) y su finalidad es la visualización en su pantalla dentro de una aplicación Web o su utilización en informes y documentos. Tomando como base a cartografía disponible (tanto la que se ofrece en el repositorio, como la que se pueda tomar de servicios WMS de terceros), los mapas estáticos son construidos por librerías e scripts combinando Php y Mapscript. El servicio de visualización básica también es accesible desde la API de la aplicación, de forma que cualquiera pueda hacer uso de ella en una aplicación web, sin necesidad de usar tecnologías de servidor. El procedimiento para usar la API comenzaría por el registro en el sistema. A continuación se solicita una clave de proyecto para cada url en la que queramos hacer uso de los servicios. El procedimiento es común para todos los servicios y consiste en incluir una referencia a la librería Javascript de la API; a partir de aquí la sintaxis a usar dependerá de la funcionalidad requerida.
OpenLayers ofrece un visor ligero de cartografía, integral, independiente de la estructura interna de la página en la que se vaya a insertar, altamente personalizable y con soporte de origen para todos los controles requeridos. OpenLayers es una librería JavaScript Open Source (actualmente es un proyecto, aunque en fase de desarrollo, auspiciado por la Open Source Geospatial Foundation) para la inclusión de datos geográficos en navegadores web estándar, independientemente de la tecnología de servidor usada. Los métodos implementados por OpenLayers respetan los estándares marcados por la industria en lo que se refiere al acceso a datos geográficos, tales como los que señala la OGC para los protocolos WMS (Web Mapping Service) o WFS (Web Feature Server). Internamente, la librería OpenLayers está escrita en Javascript orientado a objetos y usa componentes tales como Prototype y Openrico. Así mismo, cabe significar que el código base de OpenLayers está ampliamente testeado por la comunidad de desarrolladores. Este framework separa las herramientas de los datos geográficos, permitiendo que todas las utilidades desarrolladas puedan operar indistintamente sobre cualquier fuente de datos.
Servicios geográficos Básicamente los servicios propuestos incluyen la geocodificación directa e inversa. La geocodificación directa nos permite obtener coordenadas a partir del análisis de la componente espacial contenida en los datos analizados, como por ejemplo en direcciones o códigos postales. Por contra el servicio de geocodificación inversa nos devuelve datos tales como la dirección o el código postal a partir de las coordenadas de un punto. En ambos casos, se oferta la posibilidad de trabajar sobre diferentes niveles de precisión: sección censal, calle o número. Para esto, fue preciso llevar a cabo la elaboración tanto de cartografía específica como de bases de datos que soporten estas funcionalidades. Análisis de datos de usuario La funcionalidad analítica más importante que oferta el sistema se encuadra dentro del campo del geomarketing, concretamente en el estudio de las áreas de influencia. Para esto se aplican modelos gravitacionales, por considerarlos los más interesantes, ya que miden la atracción de un punto de venta y pueden servir para evaluar el posible comportamiento ante nuevas aperturas. Entendemos como área de influencia el espacio geográfico cuya población se dirige con fuerte preponderancia a una localidad importante de ese espacio, para la adquisición de bienes o servicios. La estimación de las áreas de mercado fue muy estudiada y se crearon multitud de modelos tanto analíticos como matemáticos dentro de los sistemas de información geográfica. Estos modelos se encuadran dentro de lo que llamamos modelos gravitacionales, que se fundamentan en dos variables: una variable masa de atracción, y otra variable fricción o de frenado. Uno de los modelos más estudiado es el de Huff, en el que las variables se sustituyen por la superficie de venta ( masa ) y la distancia ( fricción ).
Para los ensayos del sistema se han utilizado bases de datos desagregadas a nivel de sección censal y datos geográficos obtenidos mediante trabajo de campo, durante un estudio sobre superficies comerciales de toda Galicia.
Herramientas complementarias Las principales herramientas adicionales construidas son el módulo de charting (generación on-line de gráficas) y el módulo de reporting (informes y listados). Complementariamente se elaboraron módulos para la realización de trabajos secundarios, dentro de los que podemos destacar la compresión de archivos o la exportación de datos a diferentes formatos (pdf, kml, etc.). Todos estos módulos ya se encuentran en producción integrados dentro de otros proyectos, lo que es posible debido al carácter completamente modular e independiente con el que fueron concebidos. En algunos casos, los desarrollos fueron llevados a cabo a partir de librerías OpenSource (módulo de charting), modificándolas para alcanzar nuestros propósitos. En otro, fueron elaboradas partiendo de cero (módulo de reporting). El módulo de charting se construyó a partir de la librería OpenSource pchart, añadiéndole la capacidad de aceptar parametrización en tiempo real. En el momento actual acepta la interacción del usuario tanto en el terreno de lo puramente visual (series de colores, tipos de gráfico, etc.), como en el funcional, permitiendo la conexión con distintas fuentes de datos o la elección de formato de archivo de salida.
El módulo de reporting es una construcción propia que permite elaborar informes y listados con diferentes niveles de complejidad a través de menús gráficos que facilitan la interacción del usuario. El informe se confecciona en formato xml, para posteriormente permitir su exportación a diferentes tipos de archivo (html, pdf, txt, etc.). Dentro de los módulos adicionales o complementarios, debemos destacar los siguientes: - Módulo para la exportación de datos geográficos a kml: permite visualizar los datos sobre el software Google Earth, lo que aporta vistosidad y facilidad de uso para un usuario medio. - Módulo para la exportación de datos geográficos para navegador personal: permite visualizar los datos sobre un navegador gps personal. - Módulo para la compresión de archivos: basado en la librería OpenSource zlib, permite comprimir archivos para facilitar su descarga. - Módulo para la exportación de datos alfanuméricos a formato PDF: construido a partir de la librería OpenSource FPDF, permite generar documentos pdf a partir de los datos generados por la aplicación.
REFERENCIAS [1] OpenGIS Standards and Specifications http://www.opengeospatial.org/standards [2] Mapserver documentation http://mapserver.gis.umn.edu/docs [3] OpenLayers Class documentation http://dev.openlayers.org/releases/openlayers- 2.6/doc/apidocs/files/OpenLayersjs.html [4] Postgis documentation http://postgis.refractions.net/documentation/ [5] Chasco Yrigoyen, Coro: Econometría espacial aplicada a la predicción extrapolación de datos microterritoriales (Tesis Doctoral). Consejería de Economía e Innovación Tecnológica. Comunidad de Madrid (2003). [6] Harris, R., Sleight, P., Webber, R.: Geodemographics, GIS and Neighbourhood Targeting. Wiley (2005) [7] Pick, J.B: Geographic Information Systems in Business. Idea Group Publishing (2004)