REINGENIERÍA Y OPTIMIZACIÓN: SISTEMA DE MAPEO DIGITAL … · Universidad de Chile Facultad de...

75
Universidad de Chile Facultad de Ciencias Físicas y Matemáticas Departamento de Ciencias de la Computación REINGENIERÍA Y OPTIMIZACIÓN: SISTEMA DE MAPEO DIGITAL Tesis para optar al grado de Magíster en Tecnología de la Información JOSE MIGUEL RODRIGO BASUALTO PROFESORA GUÍA: Nancy Hitschfeld Kahler MIEMBROS DE LA COMISIÓN: Carlos Hurtado Larrain Cecilia Rivara Zúñiga Andrea Rodríguez Taste Santiago de Chile Marzo 2007

Transcript of REINGENIERÍA Y OPTIMIZACIÓN: SISTEMA DE MAPEO DIGITAL … · Universidad de Chile Facultad de...

Universidad de Chile Facultad de Ciencias Físicas y Matemáticas

Departamento de Ciencias de la Computación

REINGENIERÍA Y OPTIMIZACIÓN: SISTEMA DE MAPEO DIGITAL

Tesis para optar al grado de

Magíster en Tecnología de la Información

JOSE MIGUEL RODRIGO BASUALTO

PROFESORA GUÍA: Nancy Hitschfeld Kahler

MIEMBROS DE LA COMISIÓN:

Carlos Hurtado Larrain Cecilia Rivara Zúñiga

Andrea Rodríguez Taste

Santiago de Chile Marzo 2007

2

Universidad de Chile Facultad de Ciencias Físicas y Matemáticas

Departamento de Ciencias de la Computación

REINGENIERÍA Y OPTIMIZACIÓN: SISTEMA DE MAPEO DIGITAL

Tesis para optar al grado de

Magíster en Tecnología de la Información

JOSE MIGUEL RODRIGO BASUALTO

PROFESORA GUÍA: Nancy Hitschfeld Kahler

MIEMBROS DE LA COMISIÓN:

Carlos Hurtado Larrain Cecilia Rivara Zúñiga

Andrea Rodríguez Taste

Santiago de Chile Marzo 2007

3

RESUMEN La información geológica constituye uno de los eslabones estratégicos fundamentales para la explotación minera. La División El Teniente cuenta con una inmensa cantidad de información geológica que ha sido levantada desde hace 50 años. A partir del año 2000, el autor comienza a innovar en la Superintendencia Geología de la División El Teniente, desarrollando e implementando un sistema digital de mapeo estructural. Luego participa en el desarrollo de la versión 3.1 del software GVMapper. A partir de este último software, desarrolla una serie de cambios destinados a conseguir la compatibilidad con una base de datos Oracle, entre otros objetivos. Así se llegó al denominado Mapeador Digital, que adolece de una serie de falencias arquitectónicas y técnicas que son abordadas en esta tesis. El producto de esta reingeniería es denominado en este documento como Sistema de Mapeo Digital o SMD.

El SMD es un sistema de software que permite la creación e implementación de un código de mapeo estándar, el cual es distribuido automáticamente a los usuarios mediante interfaces gráficas que apoyan el mapeo en terreno tanto de sondajes como de mapas. Este sistema además sincroniza la información creada y/o modificada localmente por los usuarios, con una base de datos central Oracle 9i.

En esta tesis se hizo una revisión crítica de la implementación actual del SMD en términos del modelo de datos subyacente, de la arquitectura del software que actualmente está funcionando y de la plataforma de desarrollo utilizada, desde el punto de vista del escalamiento y la interoperabilidad. A partir de esta revisión se estableció un plan de acción, parte del cual fue llevado a cabo en este trabajo.

Los cambios realizados se han traducido en diversas mejoras en términos de normalización de la estructura de datos, así como en el rendimiento de la aplicación de despliegue gráfico. Dichos cambios ya se encuentran en producción.

La mayor normalización de la base de datos ha permitido el acceso a la información por usuarios no familiarizados con el uso del SMD. El reemplazo de los campos binarios por campos numéricos ha permitido acceder a la información contenida en ellos por vía de simple SQL, disminuyendo drásticamente la dependencia del SMD por parte de la Superintendencia Geología.

Para hacer posible el escalamiento del SMD, se ha definido a Visual Studio 2005 y, en particular, al lenguaje C# como la plataforma de desarrollo futuro, en caso de seguir contando con los mismos recursos físicos y humanos hasta ahora disponibles.

El éxito que ha tenido el mapeo digital durante sus seis años de funcionamiento y evolución se ha debido fundamentalmente a que su desarrollo ha estado siempre ligado estrechamente con el negocio al que apoya, en este caso la Geología.

El desarrollo histórico del SMD, incluyendo esta tesis, se ha llevado a cabo mediante una estrategia poco convencional, sin equipo de diseño, desarrollo y pruebas bien definidos. El diseño y desarrollo han estado a cargo del autor, mientras que las pruebas, en general, son realizadas por los usuarios más experimentados.

4

AGRADECIMIENTOS Agradezco a mi esposa Annabella quien me motivó a seguir este magíster y me apoyó durante el arduo desarrollo del trabajo que significó el SMD, durante estos últimos cuatro años, el que incluyó muchos fines de semana.

El autor desea agradecer además a todos los miembros de la Superintendencia Geología de la División El Teniente, quienes han colaborado constantemente mediante el uso del Sistema de Mapeo Digital y sus constantes contribuciones para depurarlo y mejorarlo.

5

TABLA DE CONTENIDO

RESUMEN 3

AGRADECIMIENTOS 4

1. INTRODUCCIÓN 7

1.1 SISTEMA DE MAPEO DIGITAL 8 1.2 HISTORIA DEL SMD 13 1.3 MODELO CONCEPTUAL DEL SMD 15 1.4 OBJETIVO GENERAL 17 1.5 OBJETIVOS ESPECÍFICOS 17 1.6 APORTE DE ESTA TESIS 17 1.7 LIMITACIONES 18 1.8 METODOLOGÍA 18

2. ESTADO DEL ARTE EN EL MERCADO 20

2.1 ENCOM DISCOVER 6.1 20 2.2 GEOROVER 20 2.3 OASIS MONTAJ 20 2.4 ARCINFO 21 2.5 GVMAPPER 21

3. ANÁLISIS Y MODIFICACIONES AL MODELO DE DATOS 24

3.1 MODELO ENTIDAD-RELACIÓN 25 3.2 SOPORTES DE INFORMACIÓN 27 3.3 TEMAS Y REGLAS DE MAPEO 29 3.4 INFORMACIÓN DE MAPEO 33 3.5 TABLAS DE ELEMENTOS MAPEABLES 37 3.6 ESTILOS DE MAPEO 40 3.7 CONCURRENCIA 40 3.8 REPOSITORIO LOCAL DE INFORMACIÓN 41

4. REPROGRAMACIÓN DEL SMD 43

4.1 PLAN DE ACCIÓN 43 4.2 LENGUAJE DE PROGRAMACIÓN 45 4.3 ARQUITECTURA PROPUESTA 47 4.4 REPROGRAMACIÓN DE APLICACIONES EN VISUAL BASIC 6.0 48 4.4.1 PROCESADOR DE SOLICITUDES 48 4.4.2 CONFIGURADOR 49 4.4.3 MAPEADOR DE MAPAS 54

6

4.4.4 MAPEADOR DE SONDAJES 57 4.4.5 MAPEADOR: UNIFICACIÓN DE SONDAJES Y MAPAS 58 4.4.6 IMPORTADOR DE VECTORES 59 4.5. PROTOTIPO DEL MAPEADOR DE ELEMENTOS 2D 60 4.5.1 ACCESO A LA BASE DE DATOS LOCAL 61 4.5.2 INTERFAZ GRÁFICA DE USUARIO 62

5. CONCLUSIONES Y RECOMENDACIONES 66

5.1 CONCLUSIONES 66 5.2 RECOMENDACIONES 67 5.2.1 ACCESO A DATOS 67 5.2.2 PROTOCOLO DE COMUNICACIÓN Y TRANSMISIÓN DE DATOS 68 5.2.3 ASPECTOS ADMINISTRATIVOS 68

6. BIBLIOGRAFÍA 69

ANEXO A: GLOSARIO 70

ANEXO B: DESCRIPCIÓN GLOBAL DEL SMD Y SUS COMPONENTES 72

B.1 CONFIGURADOR 72 B.1.1 CREACIÓN DE CUENTAS DE USUARIO Y PERFILES 72 B.1.2 CREACIÓN DE TEMAS DE MAPEO 72 B.1.3 CONSULTA DE INFORMACIÓN 73 B.1.4 CREACIÓN Y EDICIÓN DE ELEMENTOS MAPEABLES 73 B.1.5 IMPORTACIÓN DE IMÁGENES Y PLANOS VECTORIALES 73 B.1.6 CREACIÓN DE PROGRAMAS DE SONDAJES 74 B.1.7 ADMINISTRACIÓN DE PARÁMETROS CRÍTICOS 74 B.2 SERVIDOR Y PROCESADOR 74 B.2.1 SERVIDOR 74 B.2.2 PROCESADOR 75 B.3 CLIENTE DEL SMD 75 B.4 MAPEADOR 75 B.4.1 MAPEADOR DE SONDAJES 75 B.4.2 MAPEADOR DE MAPAS 75

7

Figura 1: Hoja de mapeo clásica, utilizada hasta 2002.

1. INTRODUCCIÓN

Los geólogos tenemos varias misiones estratégicas para el negocio minero, dentro de las

cuales se pueden destacar:

• Buscar yacimientos, identificando blancos para exploración distrital y regional.

• Levantar la información básica relativa a las rocas, estructuras (fallas, fracturas, diaclasas y

vetillas), mineralización y otros temas relevantes para el yacimiento en explotación.

• Evaluar cuantitativa y cualitativamente los recursos presentes en el yacimiento.

• Emitir informes técnicos relativos a variadas materias relacionadas con la explotación

minera.

• Emitir informes técnicos relativos a materias relacionadas con el medio ambiente

(deslizamientos, acopios de material estéril y relaves, etc.).

Esta tesis tratará fundamentalmente de aplicar técnicas informáticas para proponer mejoras al

sistema de mapeo que apoya al área de geología de la División El Teniente de CODELCO

CHILE, denominado aquí Sistema de Mapeo Digital y abreviado SMD.

Al final de este documento se incluye un glosario de términos que puede ayudar al lector con

algunos conceptos específicos aquí mencionados.

La información geológica básica se obtiene del mapeo de

sondajes y mapas. Ésta consiste en datos geográficos

(puntos, polilíneas, polígonos y tramos de sondajes) a los

cuales se asocian datos relativos a distintos temas, a

saber: litología (tipos de roca), estructuras (fallas, vetillas,

fracturas, etc.), leyes (presencia de determinados

elementos de interés minero), mineralización (presencia

de minerales que en su composición contienen elementos

de interés, tanto favorables como perjudiciales para la

explotación minera) y otros temas que, según las

características propias del yacimiento, puede ser relevante

reconocer en terreno para su posterior análisis.

El proceso de levantamiento de esta información ha sido tradicionalmente manual, dibujando las

características reconocidas y anotando sus atributos en hojas de papel (figura 1). En el caso de

los mapas, parte del contenido de dichas hojas se traspasaba a un plano oficial, calcando a

8

Figura 2: Operación en terreno del SMD.

mano los rasgos reconocidos en terreno. La mayoría de los atributos observados pocas veces

eran traspasados a algún medio de almacenamiento electrónico que permitiera su análisis

conjunto. El traspaso sistemático de información a un medio de almacenamiento digital se hacía

sólo para la información obtenida a partir del mapeo de sondajes.

La información durante décadas, ha sido almacenada en forma parcializada de diversas formas:

papel (planos, hojas de mapeo, cartillas de mapeo de sondajes, etc.), planillas de cálculo,

archivos planos y, sólo algunos datos, en bases de datos relacionales. En consecuencia, no

existía un repositorio común para los datos geológicos reconocidos en terreno, siendo ellos de

tanta relevancia estratégica. Además, la aplicación de un estándar de mapeo se hacía

realmente difícil dada la carencia de una instancia de validación común para todos los datos

ingresados.

A fines del año 1999, en la División El Teniente, el autor comenzó a desarrollar en Visual Basic

6.0, un software muy simple que permitía almacenar los datos geológicos en forma digital.

Dicha iniciativa ha pasado por varias etapas, habiendo participado otros actores en el proceso

(Geovectra S.A. con el producto GVMapper) y llegando en la actualidad a ser el medio estándar

de levantamiento y almacenamiento de información geológica de la división.

1.1 Sistema de Mapeo Digital

El Sistema de Mapeo Digital (SMD) tiene por

objetivo facilitar el levantamiento de

información en terreno (figura 2), sobre la

base de un código de mapeo estándar

contenido en una base de datos central. Los

geólogos y profesionales afines pueden

acceder a la información almacenada para

verla y/o modificarla en forma ordenada y

administrada a través de perfiles de usuario.

Una descripción más detallada de los

distintos módulos que componen el SMD se

puede ver en el Anexo B de este documento.

9

Figura 3.1: Arquitectura física del SMD.

Figura 3.2: Arquitectura dinámica del SMD.

La arquitectura del sistema (figuras 3.1 y 3.2), consiste básicamente en un servidor de base de

datos, un servidor de aplicaciones y una serie de equipos portátiles y/o equipos de escritorio

con sistema operativo Windows 2000 o posterior.

10

Figura 4: Vista del mapeador de mapas del Sistema de Mapeo Digital.

Figura 5: Mapa del proceso de levantamiento de información geológica mediante un sistema digital.

1. REQUERIMIENTO DE INFORMACIÓN

2. BAJADA DEL PLANO A MAPEAR, AL EQUIPO PORTATIL

3. ARRIBO AL SECTOR Y PREPARACIÓN DEL TÚNEL

A MAPEAR

5. DE VUELTA EN LA OFICINA SE SUBE EL PLANO MODIFICADO, LO QUE ACTUALIZA AUTOMATICAMENTE LA BASE DE DATOS CENTRAL

6. SE PUEDEN OBTENER: REPORTES EN EXCEL O TEXTO, EXPORTACION A AUTOCAD, ANALISIS Y FILTROS DE LOS DATOS MAPEADOS, ETC.

4. SE INGRESA MANUALMENTE A UN EQUIPO PORTATIL, LA INFORMACION DE LOS ELEMENTOS A MAPEAR

La principal característica del SMD (que además lo diferencia del resto de los sistemas de

mapeo geológico existentes en el mercado), es su orientación a la creación de un código

estándar de mapeo que es distribuido a los clientes en forma automática. Dicho código es

creado por los geólogos administradores del SMD, a través de una aplicación de configuración.

De esta forma, cada aplicación cliente obtiene los datos de configuración del código central de

mapeo y genera en forma dinámica las interfaces necesarias para el ingreso de los datos de

cada tema, reemplazando a la hoja de mapeo tradicional por una digital (figura 4).

Durante el procedimiento de mapeo (figura 5), cada geólogo levanta la información en un

computador portátil, tipo hand held o tablet PC, en el cual corre la aplicación de mapeo.

11

Figura 6: Ficha de un corte transparente.

La generalidad de este enfoque hace que el sistema sea aplicable al resto de las áreas de la

minería que requieren del levantamiento de información en terreno (geotécnia, geomecánica,

etc.). De hecho, en el SMD existen actualmente temas tan especializados como la descripción

de cortes transparentes de roca (figura 6).

Al conectarse a la red, el sistema es capaz de sincronizar la base de datos central con las

modificaciones hechas durante la sesión de mapeo, quedando éstas a la vista de todos los

interesados en forma inmediata.

Todo este sistema ha sido desarrollado en Visual Basic 6.0 y, por lo tanto, está absolutamente

restringido a plataformas Windows por ahora.

El modelo de datos asociado a las características gráficas como los puntos, polilíneas y

polígonos adolece de falencias técnicas que no permiten una consulta óptima de dichos datos.

El éxito que ha tenido este sistema ha hecho que aumenten los interesados en utilizarlo, por lo

que se hace urgente una revisión de las herramientas y técnicas de desarrollo subyacentes, así

como del modelo de datos que permite almacenar la información.

12

El SMD está compuesto por diez aplicaciones, algunas de las cuales se describen brevemente

en la tabla 1.

Módulo Función

Mapeador de Mapas Permite al usuario ingresar información a un mapa (superficie, planta o sección).

Mapeador de Sondajes Permite al usuario ingresar información a un sondaje.

Cliente Está instalado en los equipos portátiles y/o de escritorio, permitiendo la conexión con el Módulo Servidor y el acceso, a través de él, a la información contenida en el sistema.

Permite al usuario obtener y editar la información de los elementos (mapas y sondajes).

Ingreso Canales y Sondajes

Está instalado en equipos de escritorio. Permite la creación de nuevos sondajes y canales mediante una interfaz especialmente diseñada para el efecto.

Importador de vectores Permite importar archivos vectoriales tales como dxf.

Importador de imágenes Permite importar y georreferenciar imágenes de diversos formatos (jpg, tiff, gif, etc.).

Servidor Escucha las solicitudes de los clientes. Autoriza usuarios según su perfil y da curso a sus solicitudes según corresponda.

Cuenta con conexión constante a la base de datos central.

Administra los Procesadores de Solicitud.

Procesadores de Solicitud

Procesan los requerimientos de usuarios como obtener y actualizar elementos. Cuentan con conexión a la base de datos central.

Exportador a AutoCAD Permite la exportación directa a formato dwg, mediante el uso de un ActiveX proporcionado por la versión AutoCAD 2002. Requiere de AutoCAD 2002 Full instalado.

Configurador

Es la interfaz de usuario para el administrador del Sistema de Mapeo Digital. Administra la base de datos del sistema permitiendo la creación de elementos y temas de mapeo, así como la administración de cuentas de usuario, perfiles, etc.

Tabla 1: Aplicaciones que componen el Sistema de Mapeo Digital.

13

Figura 8: Arquitectura actual del SMD.

Figura 7: Desarrollo histórico del SMD, a partir de GVMapper (Geovectra S.A.) y el Mapeador Estructural desarrollado en la Superintendencia Geología (SGL).

1.2 Historia del SMD

A continuación se hace una breve reseña histórica y técnica de lo que ha sido el desarrollo de

las distintas aplicaciones que llevaron al SMD que funciona en la actualidad (figura 7).

El año 2002 se libera la versión 3.1 de GVMapper. Dicho software fue el resultado de la

experiencia acumulada por Geovectra S.A. en su desarrollo del mapeador GVMapper versión

1.0, orientado a sondajes (Geovectra, 2003) y de la experiencia del autor en el desarrollo de

una aplicación de mapeo para túneles en la División El Teniente de CODELCO CHILE.

Este desarrollo se llevó a cabo entre los años 2000 y 2002, terminando con la liberación de la

versión 3.1 de GVMapper aquí mencionada. La arquitectura esquemática de este software se

muestra en la figura 8.

14

Figura 9: Arquitectura actual del SMD.

Tal como se aprecia en la figura 8, la arquitectura muestra un altísimo grado de acoplamiento

entre las distintas capas a nivel de modelo de datos, uso intensivo de Microsoft Access y el uso

de los campos BLOB para el almacenamiento de los vértices. Además, se distinguen problemas

serios de seguridad como el uso de carpetas compartidas para todos los usuarios, de tal forma

que puedan tener acceso a la base de datos central. El motivo de esto último es que la

aplicación cliente abre directamente la base de datos central Access ubicada en el servidor y,

mediante vinculación de tablas, procede a la sincronización de la base de datos central con los

nuevos elementos registrados en la base de datos local. De este modo, el sistema está

expuesto constantemente a la corrupción o pérdida de la base de datos central a manos de un

usuario descuidado o mal intencionado.

El autor desarrolló e implementó, a partir del año 2003, una organización en capas, donde la

lógica de mapeo reside en el cliente (en celeste), la lógica de sincronización con la base de

datos central lo hace en el servidor de aplicaciones (en verde), mientras que la base de datos

reside en un conjunto de servidores (en amarillo). En términos generales, la arquitectura actual

del SMD se resume gráficamente en la figura 9.

Sin embargo, existen aún tres temas transversales a las capas antes definidas, que las acoplan

y reducen en gran medida la escalabilidad y mantenibilidad del SMD. Estos temas son:

1. Modelo de Datos: El modelo diseñado es compartido por todas las capas, incluyendo la

base de datos local que usan las aplicaciones de mapeo. Esto se traduce en el hecho

que un cambio en el modelo de datos central origine efectos en casi todas las

aplicaciones aguas abajo.

15

Figura 10: Diagrama UML Nivel 0. Generalidades del SMD.

2. Microsoft Access '97: El uso de esta "base de datos" es intensivo, cumpliendo el rol de

repositorio de datos local, medio de transporte para la información entre cliente y

servidor de aplicaciones, y medio de conexión entre los datos mapeados y la base de

datos central, a través de la vinculación de tablas.

3. Uso de BLOB's para almacenar vértices: Para ser guardados y recuperados se

requiere la ejecución de un algoritmo específico que fue programado en C++ y

compilado como una dll que es llamada desde el código Visual Basic. Este ha sido uno

de los temas que más ha incidido en el hecho de no poder separar el modelo de datos

central y local, debido a que la transferencia de BLOB's es mucho más eficiente al tener

tablas vinculadas y hacer operaciones de inserción del tipo "INSERT INTO

TABLA_ORIGEN SELECT * FROM TABLA_DESTINO", para evitar tener que

descomprimir los vértices almacenados en cada campo BLOB.

De los puntos anteriormente mencionados, terminar con el uso de los BLOB's se considera

prioritario para flexibilizar al SMD y facilitar el logro de los objetivos de esta tesis.

1.3 Modelo Conceptual del SMD

Para esquematizar en forma general los actores y las funcionalidades relacionadas con el SMD,

a continuación se presentan algunos diagramas UML en tres distintos niveles aumentando la

profundidad del enfoque (figuras 10, 11 y 12).

16

Figura 11: Diagrama UML Nivel 1.

Figura 12: Diagrama UML Nivel 2.

Los diagramas antes mostrados sólo pretenden aclarar gráficamente los actores involucrados

en el SMD y sus relaciones fundamentales, así como enunciar los casos de uso más relevantes.

Para una descripción más detallada del SMD, se puede referir al Anexo B, donde se describen

las funcionalidades que este sistema provee.

17

1.4 Objetivo General

Mejorar el diseño, escalabilidad y eficiencia del Sistema de Mapeo Digital que opera en la

División El Teniente de CODELCO CHILE.

1.5 Objetivos Específicos

1. Realizar una revisión general del SMD y decidir los puntos críticos a abordar.

2. Diseñar modificaciones en el modelo de datos vigente, de tal forma de facilitar la realización

de consultas geográficas (e.g. por proximidad).

3. Diseñar modificaciones en el modelo de datos vigente de tal forma que las tablas de datos

sean legibles por otros sistemas o usuarios de la base de datos.

4. Revisar la continuidad de MS Access '97 como repositorio de datos local para el SMD.

5. Elegir un lenguaje de programación para reimplementar los distintos módulos del SMD.

6. Implementar los cambios de diseño básicos en el SMD que actualmente está en producción.

7. Diseñar un plan para la migración del SMD actualmente en producción (Visual Basic 6.0), a

la nueva plataforma de programación elegida.

8. Desarrollo de un pequeño prototipo en el lenguaje de programación elegido, con la interfaz

básica del mapeador de elementos 2D (mapas).

9. Identificar mejoras a futuro.

1.6 Aporte de esta tesis

El principal aporte de esta tesis será el de proveer a la Superintendencia Geología de la División

El Teniente, de la implementación de las modificaciones básicas al SMD, para poder llevar a

cabo una estrategia (propuesta en este documento) para obtener un software para

levantamiento geológico totalmente compatible con el sistema que actualmente está en uso,

pero escalable, siendo desarrollado en una plataforma más actualizada.

Además, los cambios en el modelo de datos permitirán hacer consultas geográficas en forma

eficiente en comparación con las herramientas actualmente en uso, facilitando además la

interoperabilidad del SMD con otros sistemas que se puedan conectar a su misma base de

datos.

En términos de escalabilidad y mantenibilidad, los cambios propuestos en esta tesis permitirán

aumentar la independencia entre el modelo de datos y la aplicación propiamente tal. De esta

18

forma, se posibilita un eventual cambio de software en cualquier capa (cliente o servicio) sin

necesidad de hacer cambios en los datos.

1.7 Limitaciones

1. La base de datos central es Oracle 9i por imposición estándar de CODELCO, por lo que no

se puede considerar un cambio en este SGDB. Además, no existe la posibilidad de agregar

componentes como un Motor Geométrico o similares dentro del presupuesto considerado

para este trabajo.

2. La base de datos central es administrada por la GCTIC (Gerencia Corporativa de

Tecnologías de la Información y Comunicaciones), por lo que se les debe consultar en caso

de requerir la creación de nuevos usuarios o la modificación de los permisos ya existentes.

3. El éxito del SMD se ha basado en los aportes de sus usuarios y el respeto a su opinión. Por

esto, cualquier cambio originado por los resultados de esta tesis debe ser puesto en práctica

procurando alterar lo menos posible el trabajo de los clientes actuales.

4. Actualmente, el SMD cuenta en la práctica con sólo un diseñador y programador (el autor).

Todas las decisiones y recomendaciones que se informen en esta tesis deben tener esto en

consideración.

1.8 Metodología

El SMD al interior de la Superintendencia Geología ha sido desarrollado mediante una

estrategia de desarrollo "poco convencional", sin equipo de diseño, desarrollo y pruebas bien

definidos. El diseño y desarrollo han estado a cargo del autor, mientras que las pruebas en

general son realizadas por los usuarios más experimentados. Dado que hasta el momento esta

estrategia ha sido exitosa, la misma se aplicará para el desarrollo de esta tesis.

Para llevar a cabo este trabajo de forma ordenada, se procederá a una revisión de la estructura

de datos actual, de tal forma de aportar mayor flexibilidad para el desarrollo de herramientas de

análisis, así como para las funcionalidades propias del SMD (estilos de despliegue,

sincronización de datos entre clientes y servidor, etc.). Se procurará dar mayor claridad a la

información contenida en la base de datos y a los nombres de tablas y campos, la que

actualmente aparece bastante críptica para cualquier persona o aplicación externa que visualice

las tablas. Este cambio aumentará la posibilidad de conectar otros softwares a la misma base

de datos, aumentando la interoperabilidad del sistema y la posibilidad de compartir la

información almacenada.

19

Sobre la base de la nueva estructura de datos, se harán las modificaciones necesarias en el

SMD actualmente en funcionamiento para adaptarlo a la misma. Esto implica desarrollo y

mantenimiento de código en Visual Basic 6.0. Si bien esta plataforma de desarrollo está

descontinuada, ya existe una experiencia exitosa de desarrollo, pruebas y puesta en producción

en el lenguaje Visual Basic 6.0. Por esto, se considera conveniente aproximar, en términos de

estructura de datos y herramientas básicas, al SMD actual con el que será desarrollado en el

futuro próximo, de tal forma de propiciar una migración gradual y poco "traumática" para los

usuarios del sistema actual.

En forma paralela al desarrollo y mantenimiento del SMD, se considera la elección de la

plataforma de desarrollo más adecuada, teniendo en consideración las condiciones de

desarrollo y recursos disponibles actualmente. Para probar la efectividad de la plataforma de

desarrollo elegida, se considera la programación de un pequeño prototipo de la aplicación de

mapeo de elementos 2D (mapas). Las funcionalidades a reproducir se detallan en la sección

correspondiente.

Para llevar a cabo todas las modificaciones propuestas en esta tesis, será necesario hacer

mantenimiento a prácticamente todos los módulos ejecutables del SMD.

20

2. ESTADO DEL ARTE EN EL MERCADO

En los últimos cinco años se han desarrollado varias aplicaciones orientadas a la visualización,

mapeo y análisis de información relativa a las "geociencias", especialmente a la geología. A

continuación se hace una breve descripción de algunos sistemas de mapeo geológico que se

encuentran actualmente en el mercado. Es necesario enfatizar que, desde la perspectiva del

negocio, sólo GVMapper 3.3 (Geovectra, 2006) tiene una funcionalidad comparable a la del

SMD.

2.1 Encom Discover 6.1

Está orientado a los usuarios de MapInfo (software para manejo de información geográfica

conocido a nivel mundial). Permite el mapeo, visualización y análisis de datos espaciales

orientados a las geociencias. Posee características como control y agrupamiento de capas,

herramientas de edición de objetos, leyendas y simbología estándar para creación de mapas.

Presenta además una amplia gama de herramientas de graficación y análisis de datos, así

como la posibilidad de desplegar sondajes. Posee un módulo 3D opcional (Encom, 2006).

2.2 GeoRover

Es una aplicación orientada específicamente a geólogos, incluyendo conexión para GPS,

visualización de imágenes y compatibilidad con PDA's (Windows CE). Su base de datos

consiste en un archivo ASCII (.dbf), teniendo además posibilidad de utilizar ODBC para

conectarse a bases de datos que soporten este protocolo (GAF, 2006).

2.3 Oasis Montaj

Es una herramienta de análisis y mapeo de información asociada a la exploración de minerales,

petróleo y gas. También posee extensiones para proceso de información geofísica y

geoquímica. Tiene una base de datos capaz de almacenar más de dos billones de puntos de

información por canal. Sobre esta información se pueden ejecutar filtros y procesos. Maneja la

proyección de los puntos en más de 2000 datums y proyecciones. Permite también

visualización en tres dimensiones para múltiples superficies, cada una con sus propios

contenidos (Geosoft, 2006).

21

2.4 ArcInfo

Incluye las funcionalidades de ArcView y ArcEditor (dos aplicaciones de la misma empresa).

Está orientado al almacenamiento de datos, su análisis y modelamiento, además del despliegue

de mapas. En cuanto al manejo de los datos, ArcInfo permite crear bases de datos, definir su

esquema y administrar su integridad (Esri, 2006).

Las diferencias entre las aplicaciones antes descritas y el SMD, se basan en que este último es

un sistema que distribuye e implementa un código de mapeo estándar en todos los equipos que

se conectan con una aplicación cliente al servidor del sistema. Además, implementa el manejo

de usuarios y perfiles lo que significa un gran aporte al negocio desde el punto de vista

administrativo.

Los softwares revisados hasta aquí poseen siempre un repositorio de datos local como única

fuente de información o, a lo sumo, la capacidad de conectarse vía ODBC a un repositorio

externo. Sin embargo, esto no garantiza la seguridad de los datos, la estandarización de la

información y, sobre todo, no se ocupan de la administración de las transacciones hechas por

los usuarios.

Por lo antes expuesto, se considera que el SMD satisface las necesidades de la

Superintendencia Geología en forma mucho más cercana a su realidad que los softwares hasta

aquí revisados.

2.5 GVMapper

El único software comercial que se considera comparable al SMD, es la versión 3.3 de

GVMapper (Geovectra S.A., 2006). Tal como se mencionó en la introducción, el autor fue uno

de los dos programadores de GVMapper versión 3.1. El desarrollo encaminado hacia el SMD se

separó de este software a partir del año 2003 debido a falencias de seguridad y escalabilidad,

entre otras, de las que adolecía GVMapper en ese momento.

Según la empresa que lo desarrolla, GVMapper es una suite de aplicaciones de software para

la captura y administración de información geológica. Su utilidad está en la captura de

información geológica en terreno (exploración, bancos, túneles) y mapeo de sondajes.

Su interfaz se describe como ergonómica para su utilización con pen tablets. Además, ofrece

herramientas para la importación de información histórica, herramientas de cálculo incorporadas

y capacidad de exportar datos a los formatos de los sistemas de información geográfica (SIG) y

aplicaciones de modelamiento 3D, de mayor presencia en el mercado.

22

Figura 13: Arquitectura de GVMapper-GVServer.

Hasta la fecha, GVMapper conserva las siguientes características de la versión 3.1 en la cual se

separó el desarrollo hacia el SMD:

• Las bases de datos central y local están construidas con archivos Access.

• La base de datos central se accede mediante una carpeta compartida en el servidor.

• Es GVMapper (instalado en el cliente), quien realiza las transacciones con la base de

datos.

En este sentido, GVMapper como tal, sigue contando con las mismas falencias a las que se

debió el inicio del desarrollo del SMD por el autor. Sin embargo, Geovectra ha desarrollado el

módulo GVServer (figura 13), el cual funciona como un servicio en un servidor.

GVServer está encargado de:

• Administrar las bases de datos de GVMapper.

• Realizar todas las transacciones de datos entre la base de datos central y los

mapeadores o clientes.

• Incorporar niveles de seguridad y de acceso a los datos.

• Permitir la integración entre distintos sistemas.

• Permitir la interconexión entre la base de datos de GVMapper con otras bases de datos

y aplicaciones mineras.

De este modo, el sistema de mapeo ofrecido por Geovectra distribuye los distintos módulos en

capas.

23

Con el uso de GVServer se ofrecen una serie de ventajas, entre las cuales se mencionan las

siguientes:

• GVMapper puede interactuar simultáneamente con varios GVServer dentro de una

misma red corporativa.

• Todos los clientes GVMapper de una red corporativa pueden obtener sus elementos de

apoyo de una única base de datos geoespacial.

• GVServer funciona con un esquema de licencias orientado al equipo.

El módulo GVServer está programado en C, lo que lo hace muy interesante desde el punto de

vista de su eventual portabilidad a sistemas operativos como Linux o similares. Sin embargo,

hace uso de algunas API de Windows que evitan su portabilidad inmediata, por lo que esta

posibilidad podría ser evaluada y encomendada como un proyecto a la empresa desarrolladora.

La compatibilidad con varios SGDB como SQL Server y Oracle resulta muy deseable en caso

de un eventual cambio de gestor de base de datos en la Corporación. Sin embargo, GVServer

sólo ha sido utilizado con Access y SQL Server hasta el momento.

La base de datos tanto local como central, aún almacena los vértices en campos de tipo BLOB,

lo que constituye una limitación bastante importante desde el punto de vista de la normalización

del esquema de datos, así como de la legibilidad de los mismos usando SQL estándar. Este

tema es desarrollado en profundidad en esta tesis.

Para lograr una estructura de datos similar a la que se tiene actualmente, habría que generar

una base de datos paralela, la cual sea actualizada desde los daemons que ofrece Geovectra.

Esto significaría, entre otros puntos:

• Redundancia de la información

• Alta dependencia de la fiabilidad de los procesos de actualización

• Aumento de la carga de procesos en el servidor de aplicaciones

En resumen, GVMapper sin el módulo adicional GVServer es muy inferior, desde el punto de

vista de la seguridad de los datos y estabilidad del servicio, a lo que proporciona actualmente el

SMD. La eventual adición del módulo GVServer resulta una mejora importante y digna de ser

evaluada, sin embargo, será necesario para su implementación el desarrollo de varios cambios

a nivel de la estructura de datos para que la información sea legible. Además, GVServer sólo ha

sido utilizado a partir de julio de 2006, por lo que tiene muy poco tiempo de uso y depuración,

en comparación con los tres años que tiene el SMD usando Oracle. Esto último constituye un

riesgo adicional.

24

3. ANÁLISIS Y MODIFICACIONES AL MODELO DE DATOS

La base de datos central del SMD es administrada con Oracle 9i. El mismo está instalado en un

conjunto de servidores administrado por la GCTIC de CODELCO CHILE. El autor, como

desarrollador y usuario de esta base de datos, tiene privilegios para crear, consultar, eliminar y

alterar tablas. El módulo Servidor, los módulos Procesadores de Solicitudes y el Configurador

se conectan a la base de datos central con el mismo usuario de Oracle.

La estructura actual de la base de datos adolece de varios problemas en términos de eficiencia

y normalización. Además, muchos de los campos no tienen bien definido su tamaño (e.g.

Varchar2, Number), por lo que generalmente ocupan mucho más espacio del que requieren en

realidad. Muchas tablas cuentan con un campo denominado ID, el cual en algunos casos no es

utilizado. Dicho campo es usualmente autonumérico, lo que implica la existencia de una

secuencia y un trigger para llevar a cabo el autoincremento de su valor cada vez que se agrega

un registro. En caso de no ser utilizado el campo ID, esta tesis contempla su eliminación de la

tabla correspondiente, así como la eliminación de la secuencia y el trigger asociados. Estos

defectos son comunes a muchas tablas, por lo que sin ser mencionados en cada caso, serán

abordados para todas ellas.

Los cambios en la base de datos fueron hechos mediante la ejecución directa de sentencias

SQL a través de la aplicación PL/SQL para el caso de los cambios en las tablas de meta datos.

En el caso de las tablas de datos, los cambios de estructura y la migración de datos se hizo

mediante la programación de funciones en Visual Basic 6.0. Para probar el funcionamiento de

dichas aplicaciones, se copió todo el contenido de la base de datos oficial en una base de datos

de desarrollo. Sobre esta última se ejecutaron todos los cambios en forma previa, verificando

que no se produjeran errores durante la ejecución, los cuales, en caso de ocurrir, eran

almacenados en un archivo de texto (.log). Una vez que se logró la ejecución de todas las

funciones de cambio de estructura y migración de datos sin errores en la base de datos de

desarrollo, se procedió a respaldar la base de datos oficial (de producción) y a ejecutar dichas

funciones sobre la misma.

En esta sección se explicarán los rasgos fundamentales del modelo inicial de la base de datos

del SMD en términos de la utilidad que presenta cada tabla para el mismo. Para un mejor

entendimiento del modelo de datos, se explicarán las tablas según el contexto al que

pertenecen: soportes de información, temas de mapeo, administración de usuarios. En cada

contexto, luego de explicar brevemente cada tabla, se indicará cuando corresponda, la

modificación realizada en esta tesis y los motivos que la justifican. Algunas tablas de menor

relevancia, no serán mencionadas en este documento.

25

Figura 14: Diagrama E-R de los datos del SMD.

3.1 Modelo Entidad-Relación

Para explicar en forma general las principales entidades involucradas en el modelo de datos del

SMD, se utilizarán dos diagramas entidad-relación. El primero de ellos (figura 14) muestra las

entidades que contienen la información del negocio, tales como usuarios del sistema, soportes

mapeados, datos asociados a los soportes, etc.

En la figura 14 se puede ver que la entidad central en el SMD es el soporte, que es cualquier

ubicación en el espacio (punto, polilínea, polígono o tramo de sondaje), al cual un usuario del

SMD le ha asignado información en alguno de los temas configurados. Al soporte se le asocia

entonces información en cuanto a datos temáticos, por ejemplo litología y, en caso que

corresponda, se le puede asociar también información espacial extra, tal como lo es una

observación de rumbo y manteo (disposición de un plano en el espacio).

Un soporte, a su vez, pertenece a un usuario quien posee uno o varios perfiles en el SMD.

Dichos perfiles describen las características y autorizaciones que posee el usuario. Cada

soporte es creado sobre un elemento mapeable, por ejemplo un mapa o un sondaje. Los

elementos mapeables tienen también perfiles asociados, los que permiten definir los temas que

pueden ser levantados en cada uno de ellos.

El segundo diagrama (figura 15) muestra los meta datos contenidos en la base de datos del

SMD. Esta información consiste en la definición de los temas que pueden ser mapeados por los

26

Figura 15: Diagrama E-R de los meta datos del SMD.

usuarios del SMD, los atributos que los componen, los valores que dichos atributos pueden

asumir (dominios) y las reglas de validación que se deben verificar al momento del mapeo de

cada uno de los temas.

Dentro de las funcionalidades del SMD está la posibilidad de vincular unos temas con otros, por

ejemplo el tema Litología que describe en términos generales la roca observada, con el tema

Descripción de Fenocristales, que contiene una descripción detallada de los cristales que

componen una roca porfídica. A su vez, es posible vincular los atributos dentro de un tema para

permitir, por ejemplo, que cuando seleccionamos un grupo de rocas, tal como las rocas

intrusivas, se nos ofrezcan tipos de rocas coherentes con dicha elección, es decir, granito,

granodiorita, etc. En el caso de atributos de uso común en más de un tema, como podría ser el

color, para evitar tener que digitar en la configuración de cada tema que contiene este campo

todos los colores autorizados, se cuenta con una entidad independiente denominada campo la

cual es referenciada por el atributo del tema. Así, un cambio en la entidad campo se verá

reflejada en todos los atributos de los temas que "apunten hacia él". Esto facilita la

mantenibilidad del código de mapeo y agiliza mucho el proceso de configuración de los temas.

27

Figura 16: Tabla GSYSSOPORTES original.

3.2 Soportes de Información

Recordemos que el SMD permite configurar un número indefinido de temas de mapeo, los que

pueden ser reconocidos en sondajes o en mapas.

Tabla GSYSSOPORTES: Tal como se explicó en la

introducción, este sistema provee la capacidad de

almacenar información recopilada en terreno. Por ejemplo,

en el tema Litología, un área determinada puede ser

calificada como un Granito en el campo Tipo. Está área

podría ser un punto, una polilínea, un polígono o un tramo

de un sondaje.

Todas las áreas (o porciones del espacio) caracterizadas

en el SMD son denominadas soportes y son almacenadas

en una única tabla denominada GSYSSOPORTES (figura

16). Cada soporte está identificado en forma única en el

SMD por el campo IDSOPORTE, que es autonumérico.

Un soporte, en el caso de los mapas, está conformado por

una sucesión ordenada de vértices, los cuales son

almacenados en campos de tipo BLOB (Binary Large

Object) denominados VERTICES y EXTRADATA. Para

almacenar y obtener los vértices es necesario ejecutar

ciertos algoritmos específicos, lo que los hace lentos de

obtener y sumamente complejos de consultar. En el caso de los sondajes, los soportes

corresponden a tramos caracterizados por los campos DESDE y HASTA (numéricos), por lo

que carecen de información en los campos de tipo BLOB antes mencionados. El hecho que los

campos VERTICES, EXTRADATA, DESDE y HASTA coexistan en la misma tabla implica un

desperdicio de espacio considerable. Esto es más grave aún teniendo en cuenta que esta tabla

tiene más de 950.000 registros en la actualidad.

A partir de lo expuesto anteriormente, como primera medida se elimina la característica auto

numérica del campo IDSOPORTE. Dicho campo pasará además a ser de tipo texto, con una

longitud de 25 caracteres. El valor del identificador de cada nuevo soporte (IDSOPORTE), será

construido en forma local como la concatenación de los datos: IDUSUARIO-IDPROCESO-

CORRELATIVO_DE_LA_SESION. El valor IDPROCESO es único en el SMD y es asignado

cada vez que se baja información. Cada equipo maneja localmente un correlativo de los

soportes generados en cada sesión. El IDUSUARIO es un número único para cada usuario,

28

Figura 17: Nueva estructura para el almacenamiento de soportes.

manejado internamente por el SMD. Todo esto garantiza la unicidad del IDSOPORTE al

momento de su asignación durante el mapeo.

Se decide separar la tabla GSYSSOPORTES en tres tablas denominadas: GSYSSOPORTES,

TTEVERTICES y TTETRAMOS, cuyas estructuras se muestran en la figura 17. Esto nos

permitirá obtener dos ventajas fundamentales:

1. Se evita el desperdicio de espacio producto del almacenamiento conjunto de los

soportes de sondajes y mapas.

2. Se almacenan los datos de vértices en un formato accesible directamente (sin necesidad

de procesos externos al SGDB). Esto permite realizar consultas directas sobre la base

de datos y obtener resultados en un tiempo mucho menor, utilizando SQL estándar.

Adicionalmente, se eliminarán campos calculados (o derivados) a partir de otros como lo era el

campo denominado SOPORTE, calculado a partir de la resta: (HASTA - DESDE).

En el caso de la tabla TTEVERTICES, se ha optado por dejar como clave principal a los

campos IDSOPORTE y ORDEN. El orden representa justamente la secuencia correcta de los

vértices de cada soporte. La posibilidad de generar una tabla de vértices que fueran únicos (con

coordenadas irrepetibles) y una tabla de nexos entre soportes y vértices se descartó ya que

haciendo una prueba se observó que el ahorro de espacio no superaba el 2%, mientras que la

merma en rendimiento era bastante relevante, especialmente en lo que se refiere a la inserción

de soportes en la base de datos.

29

Figura 18: Tablas originales para almacenamiento de metadatos de temas configurados en el SMD.

3.3 Temas y Reglas de Mapeo

Un tema de mapeo es un tópico técnico acerca del cual queremos recopilar información. En el

SMD todos los temas son genéricos, ya que se deben adaptar a tópicos muy diversos. Por

ejemplo, un tema genérico puede ser el Estado de los Túneles en una mina subterránea. Para

lograr el funcionamiento de los teas genéricos, existe un conjunto de tablas de meta datos,

algunas de las cuales son descritas a continuación.

Tabla GSYSTABLAS: Los registros de esta tabla corresponden a cada uno de los temas

definidos en el SMD (figura 18). Esta tabla posee como clave principal un identificador numérico

autoincrementable (con el uso de una secuencia y un trigger) denominado ID. Además, el

campo Nombre, es una clave única. Para dar más flexibilidad al SMD, es posible vincular unos

temas con otros. Así, por ejemplo, el tema Estado de los Túneles podría tener vinculado un

tema específico para descripción de la filtración de agua, que incluyera una medición de pH,

caudal, ubicación, etc. Para hacer efectiva esta vinculación, desde el punto de vista de la base

30

de datos, la tabla GSYSTABLAS cuenta con el campo Vinculado, el cual es cero en caso de no

ser un tema vinculado y, en caso contrario, contiene el ID del tema al cual se vincula.

Para la denominación de cada tabla asociada a cada uno de los temas definidos (registros de

GSYSTABLAS), se concatena la cadena "DATGTABLA" con el identificador numérico (ID) que

le haya correspondido. Así, por ejemplo, el tema Estado de la Fortificación puede tener un ID =

21. Por lo tanto, la tabla con la información asociada a este tema se denominará

DATGTABLA21.

Con el fin de mejorar la legibilidad del modelo de datos, la denominación de las tablas

asociadas a cada tema será reemplazada por la concatenación de la cadena "D_" con el

nombre real del tema, procesado de tal forma que todos sus caracteres estén en mayúscula,

que comience con una letra y que no posea espacios o caracteres especiales. De esta forma, la

tabla asociada al tema Estado de los Túneles, se denominará

D_ESTADO_DE_LOS_TUNELES. Se asignará un máximo de 28 caracteres al nombre de los

temas, de tal forma de cumplir con la restricción de largo de nombre de tablas de Oracle 9i, que

parece ser uno de los más restrictivos en este aspecto (SQL Server 2000 admite hasta 128

caracteres).

Tabla GSYSNEXOTABCAM: Al mapear cada tema debemos asignar valores a distintos rasgos,

denominados campos. En el ejemplo Estado de los Túneles, los campos podrían ser Estado de

la fortificación, Escurrimiento de agua, Levantamiento del piso, Distancia al frente, Fecha. Esta

tabla (figura 18) contiene los vínculos entre cada tema y sus campos, especificando eventuales

reglas de validación específicas, orden de aparición, estilo para su despliegue en sondajes y

mapas, etc. A cada campo le es asignado un identificador, ID, que en adelante denominaremos

IDNEXO. De esta forma, los campos de las tablas de información se denominan concatenando

la cadena "CAMPO" con el IDNEXO asociado al campo en la tabla GSYSNEXOTABCAM. El

nombre del campo se guarda en la tabla GSYSNOMBRES y el ID asignado en dicha tabla es

guardado en el campo IDNOMBRE de la tabla GSYSNEXOTABCAM. Por esto, para obtener el

nombre real del campo, es necesario consultar la tabla GSYSNOMBRES.

Además, es posible vincular campos de la misma o de distintas tablas de tal forma de ingresar

sólo una vez los atributos que se le deben asignar. Por ejemplo, si el Estado de la Fortificación

está presente en más de un tema, basta con vincular ambos campos y así ingresar sólo en uno

de los temas valores tales como bueno, regular o malo. Esto evita el tedioso ingreso de los

distintos atributos y conserva la integridad entre conceptos relacionados.

Cada campo puede ser caracterizado con un tipo de dato específico, según su forma de

medición u observación. En el caso del Estado de la fortificación, el campo sólo debería ser

31

Figura 19: Tablas para almacenamiento de perfiles y metadatos de temas.

descrito con uno de los tres valores definidos y no con otros creados por el usuario. Para esto el

sistema considera un tipo de dato denominado Texto Fijo en el SMD. Para este tipo de dato es

necesario, al momento de la creación o edición del tema, generar una lista de valores

aceptables para cada campo de este tipo. De este modo, el SMD ofrecerá en forma automática

sólo esta lista, evitando el ingreso de datos inconsistentes con el estándar de mapeo definido.

En esta tabla se almacena el "estilo" (color, abreviatura, histograma, etc.) con el que se debe

desplegar cada campo, tanto en el mapeador de mapas como en el de sondajes.

Una vez más, para contribuir a la legibilidad de la estructura de datos, se propone agregar los

campos: NOMBRE y NOMBRE_COLUMNA ambos de tipo VarChar(30). El campo NOMBRE

almacenará el nombre real asignado por el usuario al campo, prescindiendo del uso de la tabla

GSYSNOMBRES para tal efecto. En tanto, el campo NOMBRE_COLUMNA almacenará el

nombre de la columna asignada a este campo en la tabla de información asociada al tema al

que pertenece (figura 19). El nombre de la columna será obtenido procesando el nombre real

del campo en forma análoga a lo que se hará con el nombre de las tablas asociadas a los

temas de mapeo. De esta forma, lo que antes era: DATGTABLA21: CAMPO233

...ahora será: D_ESTADO_DE_LOS_TUNELES: ESTADO_DE_LA_FORTIFICACION

Esto facilitará la interoperabilidad de la base de datos del SMD con otros usuarios de la misma y

con eventuales aplicaciones cliente que en el futuro se conecten a esta base de datos.

32

Figura 20: Tabla GSYSNOMBRES.

Figura 21: Tabla GSYSNEXOATT.

Figura 22: Tabla GSYSRELNEXOS.

Figura 23: Tabla GSYSNEXOATAT.

Tabla GSYSNOMBRES: Los distintos atributos que

caracterizan a cada campo de tipo texto fijo son

almacenados en esta tabla (figura 20). El campo ID

contiene un identificador numérico único de cada

nombre del sistema, mientras que el nombre

propiamente tal, es almacenado en el campo

denominado NOMBRE. En esta tesis se harán los

cambios necesarios para prescindir de esta tabla.

Tabla GSYSNEXOATT: Almacena los vínculos entre los

campos de tipo texto fijo del sistema y los atributos

que les pueden ser asignados (figura 21). Además,

posee el campo ENABLED que permite deshabilitar o

descontinuar algún atributo si ya no es necesario o no

aplica en el campo en cuestión. El estilo particular de

cada atributo es indicado en esta tabla. Se propone

almacenar directamente el nombre de los valores en

lugar del ID asignado en la tabla GSYSNOMBRES.

Tabla GSYSRELTABLAS: Mediante cada registro de

esta tabla se le indica al SMD que dos temas están

relacionados al momento de su mapeo, siendo

posible condicionar dicha relación mediante el valor

que asuma un campo de la tabla "padre" (figura 19). En el ejemplo de Estado de la Fortificación,

el campo Escurrimiento de Agua podría condicionar la relación con un tema denominado Agua,

que tuviera campos como pH, color, etc.

Tabla GSYSRELNEXOS: Así como es posible relacionar dos temas,

es posible hacer lo mismo con dos campos de tipo texto fijo del mismo

tema. Para esto cada registro de esta tabla indica la relación entre dos

campos de un tema mediante su IDNEXO, explicado anteriormente

(figura 22).

Tabla GSYSNEXOATAT: Cuando dos campos de tipo texto fijo están

relacionados, los valores que el hijo puede asumir son función del

valor que haya asumido el padre. Dichas relaciones se especifican

mediante esta tabla (figura 23). De este modo, si tenemos un campo

33

Figura 25: Ejemplo del cambio en la metodología de almacenamiento de datos genéricos. Tema de Litología: ex tabla DATGTABLA51, actual tabla D_LITOLOGIA.

Figura 24: Esquema para almacenamiento de soportes y datos asociados. Modelo original.

denominado PAÍS y otro denominado CIUDAD, esta tabla permite generar las relaciones

existentes entre los países y las ciudades que les pertenecen.

3.4 Información de Mapeo

Tablas DATGTABLAn: Estas son las tablas que almacenan la información de los temas del

SMD. Su nombre es estándar y consiste en "DATGTABLA" seguido por el ID que se le asigna

en el campo homónimo de la tabla GSYSTABLAS, tal como se indicó anteriormente. Cada una

de estas tablas es generada con un campo denominado IDSOPORTE, vinculado a un soporte

registrado en la tabla GSYSSOPORTES. El resto de la columnas tienen nombres codificados

como "CAMPO" seguidos de un identificador numérico dado por el campo ID asignado en la

tabla GSYSNEXOTABCAM (IDNEXO). Esta forma de codificar los nombres de tablas y campos

le dan gran flexibilidad al sistema en términos de poder modificar el nombre "conceptual" de los

mismos, sin afectar su nombre real dentro de la base de datos. Además, se imponen muchas

menos restricciones con respecto a los nombres que pueden adoptar temas y campos, los

cuales se ven muy restringidos en los SGDB. Para los campos de tipo texto fijo descritos

anteriormente, se almacena el ID asignado en la tabla GSYSNOMBRES, en lugar del valor

mapeado literalmente. El modelo original se aprecia en la figura 24.

Gran parte de lo descrito en el párrafo anterior se cambiará como parte de esta tesis, ya que

hace demasiado ilegible la información de la base de datos en caso que se desee cambiar el

34

Figura 25: Ejemplo del cambio en la forma de almacenamiento de datos genéricos. Tema: Litología, ex tabla DATGTABLA51, actual tabla D_LITOLOGIA.

software que la lee o maneja y, además, hace que la información contenida en las tablas de

información sea muy dependiente de cualquier error en la tabla GSYSNOMBRES, lo que es un

riesgo no deseado. Por lo tanto, los campos de texto fijo serán llenados con la información literal

mapeada. De esta forma, la tabla GSYSNOMBRES podrá ser eliminada del sistema con el

consiguiente ahorro de espacio, administración y código fuente. Tal como se dijo al describir la

tabla GSYSTABLAS, la denominación de las tablas temáticas ("DATGTABLAn") será cambiada

por una mucho más entendible por un usuario común. Lo mismo se hará con la denominación

de los campos. Así se llega a una estructura como la mostrada en la figura 25.

Tablas DATSTABLAn: Estas tablas son exclusivas para la información externa (como análisis

de laboratorio) relativa a los sondajes. Por esto en lugar de contar con un campo IDSOPORTE,

tienen los campos: IDSONDAJE, DESDE, HASTA como clave principal (ver tabla

DATSTABLA71 en figura 24). Para estas tablas existen importadores de datos externos

especialmente diseñados.

Sin embargo, en esta tesis se considera necesario eliminar estas tablas y dejar su información

en temas genéricos. Se considera el desarrollo de un módulo de importación de datos que sea

capaz de ajustarse a la configuración de cualquier tema. Esto le dará mucha más

interoperabilidad al SMD, siendo posible importar datos desde otras fuentes, fijando

previamente un formato adecuado. El módulo de importación debe considerar la validación de

las reglas impuestas durante la configuración de cada tema. Para la migración de los datos

35

Figura 26: Tabla GSYSGRUPOSSOP.

desde las tablas "DATSTABLA" a sus equivalentes genéricas, fue necesario programar una

pequeña aplicación que generó los registros necesarios en la tabla GSYSSOPORTES,

obteniendo un IDSOPORTE y luego alimentó los registros definitivos en la tabla del tema en

cuestión.

Tabla DATESTR: Esta tabla contiene información relativa al único tema no configurable del

sistema: Estructuras. Dicho tema fue codificado directamente debido a que en sus inicios los

temas genéricos no tenían la capacidad para satisfacer los requerimientos de este concepto

geológico. Sin embargo, actualmente los temas genéricos ya pueden almacenar información

estructural. Por esto se considera la eliminación de esta tabla y el almacenamiento de su

información en un tema configurado especialmente para este efecto. Esto no fue abordado en

esta tesis.

Tabla DATCOMPONENTES: Esta tabla (figura 24) está relacionada con DATESTR y su

objetivo es almacenar la información del relleno de cada estructura. Una vez reemplazada la

tabla DATESTR, esta tabla también será reemplazada por un tema genérico equivalente,

vinculado al nuevo tema de "Estructuras".

El reemplazo de las tablas DATESTR y DATCOMPONENTES, será relativamente simple ya

que la codificación de sus campos responde al mismo concepto que los temas genéricos.

Tabla GSYSGRUPOSSOP: En el caso de los soportes

mapeados en plantas y secciones, éstos pueden ser

agrupados con el objetivo de hacer análisis conjuntos de

características similares reconocidas en distintos sectores.

Un ejemplo de esto puede ser una falla que es observada

en tres túneles distintos. Bajo ciertas circunstancias, se

podría concluir que las tres observaciones corresponden a

la misma falla, por lo que resulta de importancia tener la posibilidad de agrupar estos soportes

sin que pierdan la individualidad en su reconocimiento. Este es el papel que juega la tabla

GSYSGRUPOSSOP (figura 26). Esta tabla permite, adicionalmente, ingresar una descripción

de cada grupo de soportes.

36

Figura 27: Esquema para almacenamiento de soportes y datos asociados. Modelo propuesto.

Al realizar los cambios mencionados en los párrafos anteriores, se llega al modelo propuesto en

la figura 27.

La tabla DATRUMBOS, cumple la función de almacenar la información relativa a la orientación

espacial de los soportes planares (e.g. un plano estructural como una falla), reconocidos en el

sistema. A dichos soportes se les suele asociar una medición de rumbo (ángulo con respecto al

Norte) y manteo (inclinación con respecto a la horizontal). Los campos DIP y DIPDIR cumplen la

función de almacenar los datos de rumbo y manteo en un formato alternativo que no viene al

caso explicar en este documento.

Las leyes de los distintos elementos de interés, como Cu (cobre) y Mo (molibdeno), son

almacenadas en el tema LeyesCuMo, cuya información es almacenada, según el nuevo

formato, en la tabla D_LEYESCUMO.

Desde luego hay muchas otras tablas genéricas (tipo D_xxxx), pero todas comparten el mismo

esquema de relación con GSYSSOPORTES por lo que no tiene sentido mostrar el modelo de

datos completo.

37

Figura 28: Tabla DATSSONDAJES original.

Figura 29: Tabla DATSMAPAS original.

3.5 Tablas de Elementos Mapeables

En este documento se entiende por elemento mapeable a toda entidad espacial de una

dimensión o dos dimensiones, a la cual se le pueden asignar valores en los distintos temas

configurados en el sistema. El sistema en la actualidad cuenta con los siguientes tipos de

elementos mapeables preconfigurados: Sondajes (una dimensión), Plantas (planos horizontales

de dos dimensiones), Secciones (planos verticales de dos dimensiones) y Superficie (mapas de

dos dimensiones no necesariamente planos). Para

almacenar información de cada unos de estos tipos de

elementos, se cuenta con dos tablas en el sistema, las

cuales son descritas a continuación.

Tabla DATSSONDAJES: Esta tabla almacena los

sondajes configurados en el sistema (figura 28). La

información espacial de cada sondaje es actualmente

almacenada en los campos de tipo BLOB: VERTICES y

EXTRADATA, en forma análoga a lo que se hace en la

tabla GSYSSOPORTES. Por esto, en esta tesis se

reemplazó este método de almacenamiento por un

almacenamiento vía GSYSSOPORTES y TTEVERTICES,

de la misma forma que se hace con todos los soportes del

sistema, utilizando como IDSOPORTE el identificador del

sondaje (IDSONDAJE). De esta forma, esta tabla deberá

contener un campo IDSOPORTE en lugar de

IDSONDAJE, tendiendo a convertir la tabla

DATSSONDAJES en un tema genérico más, con algún

atributo especial (tipo de tema) que indique que se trata

de una tabla de elementos mapeables de una dimensión.

Esto además hará que las características atribuibles a los

elementos mapeables sean flexibles y configurables por

los administradores del sistema, sin necesidad de cambiar

código fuente como ocurre actualmente.

Tabla DATSMAPAS: Esta tabla almacena los mapas

configurados en el sistema: plantas, secciones y superficie

(figura 29). Hasta el momento los mapas han sido

restringidos a ser planos rectangulares. Por esto, su información espacial se almacena dentro

38

Figura 31: Tabla DATSTRAYECTORIAS original.

Figura 30: Tablas DATSSONDAJES y DATSMAPAS, modelo desarrollado en esta tesis.

de esta tabla en los campos: P1X, P1Y, P1Z, P3X, P3Y y P3Z, que corresponden a los vértices

opuestos del rectángulo que representaría al mapa en un plano horizontal (superficie o planta) o

vertical (sección). En este trabajo, se considera hacer en esta tabla los mismos cambios

mencionados para DATSSONDAJES, dándole también la misma flexibilidad y permitiendo la

creación de mapas poligonales.

De esta forma, el sistema se dejará mucho más flexible teniendo la posibilidad de agregar

nuevos tipos de elementos de una o dos dimensiones a medida que sea requerido por el

administrador del sistema. Las características de cada tipo de elemento serán totalmente

flexibles y configurables, al igual que todo el resto de los temas del SMD. En la figura 30 se

muestran los cambios que se alcanzaron a hacer durante el desarrollo de esta tesis para las

tablas de elementos mapeables.

Tabla DATSTRAYECTORIAS: Los sondajes están

planeados para seguir una trayectoria recta a medida que

son perforados. Sin embargo, debido a las características

del medio rocoso que atraviesan, así como a las

características propias del método de perforación, éstos

se van desviando. Para obtener una noción lo más exacta posible de la trayectoria seguida por

el pozo, se realiza una medición de azimut e inclinación en varias estaciones al interior del

39

Figura 32: Tabla DATSTRAYECTORIAS. Modelo propuesto.

mismo. Dichas mediciones, junto con otros parámetros son actualmente almacenados en la

tabla DATSTRAYECTORIAS (figura 31).

Durante el desarrollo de esta tesis se detectó que la estructura de esta tabla tiene un problema

conceptual con relación al método de captura de la información de trayectorias. Por esto, el

autor realizó un levantamiento de la práctica de medición de trayectorias en la Superintendencia

Geología para terminar finalmente en la redacción de un procedimiento (Rodrigo, 2005) el cual

es oficial actualmente. Los cambios necesarios dicen relación con el hecho que cada medición

de trayectoria se hace en un punto, siendo que la tabla actual considera un DESDE, HASTA.

Además, la orientación medida (mal llamada RUMBO en esta tabla) considera una corrección

por declinación magnética. Por lo tanto, muchas veces el dato que existe en la base de datos

no coincide con el que aparece en el certificado emitido por la empresa que realizó la medición.

Esto trae problemas de auditabilidad asociados.

Producto de lo expuesto anteriormente, se efectuaron

varios cambios en la estructura de la tabla

DATSTRAYECTORIAS, llegando a la que se muestra

en la figura 32. Los más importantes son la eliminación

del campo HASTA, la incorporación del campo

AZIMUT_CORREGIDO que corresponde a la

aplicación de la declinación magnética al campo

RUMBO (cuyo nombre se conserva por ahora), el cual siempre tiene el dato tal como se

encuentra en el certificado emitido por la empresa que haya realizado la medición.

Esta tabla tiene una estructura fija, lo que ha obligado a hacer cambios en el código a medida

que se han requerido cambios en los parámetros asociados a este concepto. Por esto, se

considera necesario dejar también esta tabla como un tema genérico de un tipo especial, que

pueda ser asociado al concepto de trayectoria pero que a la vez tenga la flexibilidad requerida.

40

Figura 33: Tabla GSYSESTILOSNUMERICORANGOS

original.

3.6 Estilos de Mapeo

El SMD maneja la información y el estilo (color, textura, abreviaciones) con el que la misma es

desplegada en sondajes y mapas. Para esto cuenta con varias tablas especialmente dedicadas

a este efecto y algunos campos en otras tablas de sistema.

Tabla GSYSESTILOSNUMERICORANGOS: Para el caso

de los campos numéricos, el estilo viene dado por el

intervalo en el que se encuentra el valor a desplegar. Dicha

información es almacenada en esta tabla (figura 33).

Se cambiará el nombre de esta tabla por uno más corto:

GSYSRANGOS.

Tabla GSYSECARACT: Ciertas características de la

descripción del tema "Estructuras" han requerido ser

configuradas aparte, por ejemplo, dado un tipo de estructura, qué campos son pertinentes. Esa

funcionalidad ha sido almacenada en esta tabla. Sin embargo, una vez que la tabla DATESTR

sea convertida en un tema genérico, esta funcionalidad estará presente en forma directa. Por

este motivo, se considera la eliminación de esta tabla configurando, en su reemplazo, las reglas

equivalentes para el nuevo tema "Estructuras".

Tabla GSYSNOMBRES: En esta tabla residen también los estilos de despliegue de cada

nombre del sistema. Este hecho hace que para cada nombre, por ejemplo "Baja" que podría ser

utilizado en un campo denominado "Intensidad", el estilo de despliegue es único, digamos azul.

Sin embargo, esto puede ser indeseable ya que varios temas pueden tener campos con el

atributo "Baja" entre los atributos admisibles, quedando todos restringidos a exhibir el mismo

estilo. Por esto, se recomienda trasladar los campos relativos al estilo de cada valor desde la

tabla GSYSNOMBRES hacia la tabla GSYSNEXOATT. De esta forma, la elección de los estilos

será independiente para cada campo de cada tema configurado. Además, producto de la

eliminación de la tabla GSYSNOMBRES, los estilos deberán ser trasladados de todas formas.

3.7 Concurrencia

Si bien los gestores de bases de datos como Oracle 9i incorporan un tratamiento adecuado

para la realización de transacciones concurrentes, el SMD considera también una

administración de este concepto a nivel de la aplicación. Esto lo hace estableciendo la reserva

de un tema (e.g. Litología) de un mapa o sondaje (e.g. Esmeralda Hundimiento) por, a lo sumo,

un usuario a la vez. Esto evita que dos usuarios modifiquen la información de la misma área o

41

tramos de sondaje al mismo tiempo. Recordemos que el mapeo se lleva a cabo en terreno,

donde no hay conexión a la red y, por lo tanto, no hay posibilidad de que un usuario vea los

cambios que realiza otro en tiempo real. Esta restricción es implementada y validada por la

aplicación de servicio (Servidor.exe y Procesador.exe).

Dada la restricción anterior, la concurrencia a nivel de bajada o subida de datos desde o hacia

la base de datos central (cuando varios usuarios desean hacer transacciones al mismo tiempo),

se resuelve ejecutando tantos hilos de ejecución de los procesadores de solicitud

(Procesador.exe) como transacciones simultáneas se estén llevando a cabo. Desde luego,

existe un parámetro que permite indicar el número máximo de transacciones simultáneas que

estamos dispuestos a admitir, entre otros parámetros administrativos de bajo nivel.

3.8 Repositorio Local de Información

Para comenzar a tratar este tema, hay que examinar la necesidad de contar con un SGDB a

nivel local en el SMD. La posibilidad de almacenar los datos en archivos de tipo XML o ASCII

puede ser una alternativa interesante. El tamaño de los mismos podría ser una desventaja, sin

embargo, resulta de gran interés estudiar esta posibilidad antes de tomar cualquier decisión.

El uso de Access a nivel local surgió del hecho que en la aplicación de mapeo original se utiliza

SQL intensivamente, leyendo datos desde el disco duro a través de dicha "base de datos".

Además, se cuenta con una muy utilizada herramienta de filtro de información que se ejecuta

por la misma vía del SQL en Access.

Sin embargo, la capacidad de memoria RAM de los computadores usados actualmente, hacen

posible la carga masiva de gran cantidad de datos en memoria. De esta forma, se elimina el

acceso constante a disco (acelerando de forma considerable el rendimiento), siendo necesario

replantear la forma de ejecutar los filtros de información.

El hecho de usar un repositorio propietario, tal como Access, trae riesgos asociados a

eventuales cambios no avisados en los protocolos de comunicación con la base de datos,

licenciamiento, entre otros.

Debido a la magnitud de los cambios que se propone efectuar en esta tesis, se considera más

prudente postergar cualquier decisión de cambio en el repositorio local de información. En

consecuencia, una vez elegido el lenguaje de programación y desarrollado un prototipo de

mapeador, se puede hacer un estudio con mejores antecedentes para evaluar el mejor

repositorio local.

42

Debido a las condiciones intensivas de uso del sistema, el autor considera conveniente realizar

las modificaciones parte por parte, priorizando los cambios sobre la base de datos central.

43

4. REPROGRAMACIÓN DEL SMD

En este capítulo se describirán las proposiciones y cambios efectuados en términos de las

aplicaciones que conforman el SMD. Para realizar estas acciones en forma ordenada y

minimizar el impacto sobre el funcionamiento actual del SMD, se confeccionó un plan de acción

que es descrito en la siguiente sección.

4.1 Plan de Acción

En este capítulo se detallan en forma ordenada cada una de las actividades técnicas que se

consideran necesarias para lograr los objetivos propuestos en esta tesis.

1. Para lograr una migración exitosa se considera necesario, dados los recursos y

limitaciones actuales, realizar todo los ajustes en la estructura de la base de datos

central y, paralelamente, las correcciones en el software actual (Visual Basic 6.0), de tal

forma de mantener la operatividad del sistema. Esto debido a que el costo de realizar

modificaciones al software actual es muy bajo en términos de tiempo. De esta forma, se

espera dejar funcionando el software actual modificado, con la nueva estructura de

datos. El orden recomendado para las modificaciones en la base de datos es el

siguiente:

• Traspaso de temas externos a temas genéricos.

• Eliminación de temas externos, tanto de la base de datos como del código de las

aplicaciones

• Cambio de ubicación de estilos de despliegue desde GSYSNOMBRES a

GSYSNEXOATT.

• Modificación del código de las aplicaciones que usan los estilos.

• Cambio en la denominación de las tablas asociadas a los temas genéricos.

• Modificación del código de los mapeadores y el configurador para responder al

cambio de denominación de tablas

• Cambio en la denominación de los campos de las tablas antes mencionadas

• Modificación de las aplicaciones de mapeo y configurador

• Reemplazo de los nombres codificados en las tablas de datos, por los nombres

originales.

• Eliminación de la tabla GSYSNOMBRES.

44

• Modificación de las aplicaciones de mapeo y configurador

• Programación de módulo para poblamiento de tablas de vértices

• Creación y poblamiento de las tablas de vértices y tramos, a partir de la información

contenida en GSYSOPORTES.

• Cambio en el código de aplicaciones de mapeo, configurador y procesador,

afectados por el cambio en la ubicación de los vértices y tramos del SMD

2. Una vez llevados a cabo todos los cambios en la base de datos central, se considera la

programación de las aplicaciones de mapeo en C#, conectadas al mismo repositorio

Access de la aplicación actual. El orden de programación recomendado es el siguiente:

• Aplicación de mapeo de plantas y secciones

• Aplicación de mapeo de sondajes

• Aplicación cliente

• Aplicación de transacciones: procesador.exe

• Aplicación de servicio: servidor.exe

• Aplicación de configuración del SMD: configurador.exe

3. Para el testing y marcha blanca, se considera la liberación de los nuevos módulos de

mapeo para dos usuarios avanzados del sistema actual. De esta forma es como se han

hecho todas las modificaciones al sistema, las cuales han resultado exitosas.

4. En forma paralela al desarrollo del prototipo en la nueva plataforma de programación, se

debe diseñar el nuevo formato de transmisión de los datos solicitados por los usuarios,

así como de los nuevos datos aportados por los mismos. Se recomienda suspender por

completo el intercambio de información vía archivos Access y reemplazar esta práctica

por un formato más estándar como archivos ASCII, XML o similares más compactos.

5. Se considera la realización de un estudio para determinar el cambio del repositorio local

de datos. Esto debido a que para esto será necesario realizar cambios tanto en la

aplicación de servicio como en la aplicación cliente y en los mapeadores propiamente

tales.

Los puntos 1, 2 y 3 fueron realizados durante el desarrollo de esta tesis. Sólo falta realizar los

puntos 4 y 5, los que quedan como una recomendación en este documento.

45

4.2 Lenguaje de Programación

La elección del lenguaje y plataforma de desarrollo se hará basado en la realidad actual del

SMD en cuanto a los siguientes puntos:

1. Equipo físico y humano de desarrollo disponible: Actualmente sólo hay una persona a

cargo del diseño, desarrollo e implementación del SMD, así como de su administración.

2. Condiciones establecidas por el negocio: Debido a que el SMD cumple una función

estratégica al interior de la Superintendencia Geología de la División El Teniente, es

necesario asegurar su funcionamiento continuo, así como modificaciones y

mantenimiento rápidos.

3. Restricciones establecidas por la tecnología: Los equipos presentes en la División tienen

sistemas operativos Windows 2000 o posterior, en su gran mayoría. El hecho que la

plataforma actual de desarrollo (Visual Basic 6.0) se encuentre descontinuada por

Microsoft desde marzo de 2005 aumenta el riesgo de incompatibilidades futuras con

nuevos productos de esta compañía que, para bien o para mal, son los más utilizados

en la corporación.

4. Necesidad de conservar continuidad en el servicio actual: La migración del SMD debe

ser transparente para el usuario, sin ocasionar interrupciones al servicio.

5. Conservar todas las funcionalidades actuales del SMD más todas las nuevas

funcionalidades que se consideran necesarias.

Los puntos anteriormente mencionados se traducen en la necesidad de contar con una

plataforma de desarrollo que cumpla, como mínimo, los siguientes requisitos:

1. Alta velocidad en la codificación.

2. Herramientas de depuración rápida.

3. Compatibilidad con los sistemas operativos Windows 2000 o posterior.

4. Capacidad de desarrollo tanto de software gráfico como de servicios (daemon) y

tecnologías de conexión a distintas fuentes de datos (ODBC, OleDb o similares).

A partir de los antecedentes antes expuestos, es posible dirigir la mirada hacia la plataforma

.NET que ha estado en constante progreso desde 2000. Dicha plataforma ofrece compatibilidad

con los sistemas operativos existentes en la división. Adicionalmente, existe el llamado proyecto

Mono (Mono, 2006), el cual promete la implementación de las clases de la plataforma .NET en

otros sistema operativos tales como Linux, Solaris, Mac OS X, etc. Dicha promesa lo hace muy

46

interesante además para la posible futura migración de las aplicaciones que dan el servicio del

SMD.

Dentro de la plataforma .NET, existen una serie de lenguajes disponibles para el desarrollo.

Dentro de ellos destacan dos como interesantes para esta tesis: Visual Basic .NET y C# .NET.

Entre estos dos lenguajes, se optará por el desarrollo en C# debido a las siguientes razones:

1. Permite el desarrollo rápido de aplicaciones.

2. Posee recolección de basura, lo que evita el "escape" de memoria (memory leak)

contando con un algoritmo de recolección bastante eficiente.

3. Similitudes lingüísticas con Java y C++.

4. Estadísticas de rendimiento comparables (usualmente superiores) a lenguajes similares.

5. Entorno de desarrollo (IDE) bastante familiar para un desarrollador de Visual Basic 6.0.

6. Características como boxing y el sistema común de tipos que hacen mucho más fácil la

codificación.

7. Facilidad de distribución (un archivo .exe y algunas .dll).

8. Poderosas librerías que vienen con la tecnología .NET (e.g. Managed DirectX).

Gran compatibilidad con .NET Compact FrameWork, permite el desarrollo de aplicaciones para

PDA's con sistemas operativos del tipo Windows Mobile, que tengan el .NET Compact

FrameWork instalado.

47

Figura 34: Arquitectura propuesta para el SMD.

4.3 Arquitectura Propuesta

Tal como se describió en el capítulo 1, la arquitectura actual del SMD adolece de problemas de

acoplamiento entre las distintas capas que lo componen.

El trabajo efectuado en esta tesis sentará las bases para eliminar el acoplamiento antes

mencionado, de tal forma de conseguir una arquitectura similar a la mostrada en la figura 34.

Esta arquitectura separa el modelo de datos de las capas de servicio y cliente, mediante una

capa de acceso a datos, de tal forma de poder hacer cambios en dicho modelo, sin afectar los

desarrollos realizados aguas abajo. De esta forma, una vez establecido un protocolo estándar

de transmisión de datos, se podría licitar el desarrollo de cada una de las capas del SMD a

distintas empresas expertas en cada tema. Así mismo, se podría contar con más de una versión

de la aplicación cliente, la que incluso podría funcionar en otros sistemas operativos tales como

alguna distribución de Linux. Esto favorecería la portabilidad del SMD y su escalabilidad en el

futuro.

48

4.4 Reprogramación de aplicaciones en Visual Basic 6.0

Para adaptar el SMD a la nueva estructura de datos, según el plan diseñado, será necesario

reprogramar algunas funcionalidades de las siguientes aplicaciones:

1. Procesador

2. Configurador

3. Mapeador de Mapas

4. Mapeador de Sondajes

5. Importador de Vectores

6. Importador de Imágenes

En esta sección sólo se muestran los cambios que han sufrido los módulos más relevantes de

cada una de las aplicaciones antes enumeradas. Las interfaces que se muestran incorporan las

modificaciones realizadas, las que son descritas en cada sección.

4.4.1 Procesador de Solicitudes

Esta aplicación funciona en el servidor de aplicaciones, siendo la encargada de llevar a cabo las

solicitudes de los usuarios. Para esto es capaz de realizar lo siguiente:

1. Validar los permisos vigentes para el usuario

2. Bajar la información requerida si corresponde

3. Actualizar la base de datos central con los nuevos datos aportados por el usuario

4. Almacenar la información relativa a cada transacción

5. Generar una base de datos local válida, a partir de la estructura actual de la base de

datos central, para enviar al equipo del usuario

Para realizar estas tareas, esta aplicación obtiene la base de datos local del cliente (Access) de

un directorio del servidor de aplicaciones donde fue dejado vía FTP por la aplicación cliente.

Genera vínculos desde ésta a las tablas de la base de datos central y efectúa sentencias SQL

adecuadas a los fines de la solicitud realizada por el usuario. Este proceso, tal como se puede

ver, es bastante "poco estándar" y tiene asociados varios riesgos, por ejemplo, el hecho de

vincular una base de datos Access a varias tablas de la base de datos central.

Por esto, se recomienda cambiar esta práctica por una subida y bajada de datos que no

contemple la vinculación de tablas como medio. Esto ahora será posible debido a la eliminación

49

de los campos tipo BLOB de la tabla de soportes. Dichos campos sólo podían ser insertados a

través de SQL en la base de datos central, mediante la vinculación de tablas.

La validación de permisos de usuario no se ha visto afectada con los cambios en la estructura

de datos, debido a que las tablas asociadas permanecen iguales.

En cuanto a la bajada de información, afortunadamente la generación de la estructura de la

base de datos local se hace en forma automática con la lectura de las tablas de la base de

datos central. Por lo tanto, los cambios efectuados en la base de datos central, se verán

reflejados en la base de datos local, sin necesidad de modificaciones de código fuente.

Solamente fue necesario incluir la bajada del registro de GSYSSOPORTES asociado a cada

elemento mapeable (mapa o sondaje).

La eliminación de las tablas externas (DATSTABLAn) permite eliminar algo de código específico

para ellas.

La actualización de información en la base de datos central se ve afectada por los siguientes

cambios:

1. El IDSOPORTE de la tabla GSYSSOPORTES deja de ser autonumérico y cambia su

tipo de datos a string. Esto simplifica el código ya que hasta el momento era necesario

reasignar los identificadores de los nuevos soportes, por los definitivos asignados en la

base de datos central, al momento de la inserción de cada nuevo registro. Ahora los

soportes ya vienen con un IDSOPORTE único, por construcción.

2. La tabla GSYSSOPORTES se divide en tres: GSYSSOPORTES, TTEVERTICES y

TTETRAMOS. Esto produce un cambio en la cadena SQL que efectúa la subida de

datos. Este cambio permitirá en el futuro dejar de usar Access como portador de la

información, ya que hasta el momento era necesario sólo por el hecho del traspaso de

los campos de tipo BLOB desde Access a Oracle a través de la vinculación de tablas, tal

como se mencionó anteriormente.

4.4.2 Configurador

Esta aplicación es la que permite a los administradores del SMD realizar, entre otras, las

siguientes tareas:

1. Crear cuentas de usuario

2. Crear perfiles de usuario

3. Crear elementos mapeables: mapas y sondajes

50

Figura 35: Módulo de administración de temas genéricos.

4. Crear perfiles de elementos mapeables

5. Crear temas de mapeo

6. Configurar las reglas de mapeo: relaciones entre temas, relaciones entre campos, reglas

de validación de campos y valores que puede aceptar cada campo

7. Configurar los estilos de despliegue oficiales para cada tema

Los cambios en la estructura de datos hicieron necesario realizar modificaciones al módulo de

configuración de estilos de despliegue, almacenando los estilos en las nuevas tablas destinadas

para ello. Previamente, se realizó la migración de los datos de estilos ya configurados desde las

tablas originales hacia su nueva ubicación. Esto se hizo mediante la aplicación PL/SQL

Developer Versión 5.0. La eliminación de las tablas externas permite eliminar un módulo

completo destinado a su creación y edición.

Para implementar los cambios planeados, será necesario hacer varios cambios en los módulos:

1. Administrador de Temas Genéricos

2. Administrador de Sondajes

3. Administrador de Mapas

4. Administrador de Datos

El Administrador de

Temas Genéricos

(figura 35) es el que

proporciona la

interfaz para crear y

editar los temas de

mapeo del SMD.

51

Figura 36: Función para normalizar una cadena (Visual Basic 6.0)

Se procede a cambiar el método de denominación de las tablas asociadas a los temas

genéricos, reemplazando el prefijo "DATGTABLA" por "D_" y reemplazando el identificador del

tema, por el nombre real del tema normalizado. Para esto, se programó una simple función que

lleva todas las letras a mayúsculas sin acentos, reemplaza los espacios por guiones bajos ("_")

y elimina el resto de los caracteres (figura 36).

52

Figura 37: Módulo de Administración de Sondajes.

Además, para los campos de tipo texto fijo, se dejan como tipo VarChar2(90) en lugar de

Number, ya que desde ahora se almacenará el atributo literal y no el ID asociado al atributo en

la tabla GSYSNOMBRES.

El Administrador de Sondajes (figura 37) se verá muy afectado por el cambio propuesto, en el

sentido de reemplazar la tabla DATSSONDAJES por un tema configurable. Si bien se considera

de gran utilidad el cambio propuesto, el autor decide que deberá ser aplicado en una etapa

posterior al desarrollo de esta tesis ya que se considera prudente probar el sistema completo

con las modificaciones más urgentes, para luego implementar las menos críticas. El único

cambio que se llevará a cabo, será el de eliminar los campos VERTICES y EXTRADATA,

trasladando la información espacial del sondaje a la estructura dada por las tablas:

GSYSSOPORTES y TTEVERTICES. Así, cada sondaje será almacenado en un registro de la

tabla GSYSSOPORTES con su identificador IDSONDAJE ingresado en el campo IDSOPORTE.

53

Figura 38: Módulo de Administración y Análisis de Datos.

El Administrador de Datos (figura 38), es el módulo que permite la consulta y análisis de todos

los datos del SMD, tanto para sondajes como para mapas.

Debido a los cambios en la estructura de datos, fue necesario hacer algunos cambios en las

consultas SQL que realiza este módulo. Esto afectó positivamente el rendimiento de las

consultas a campos de tipo texto fijo. Además, el nuevo formato de almacenamiento de vértices

ha hecho disminuir el código fuente necesario para hacer consultas de sondajes que cortan

determinado volumen. Este tipo de consultas consisten en que dado un polígono en planta y

dos cotas, se obtienen todos los sondajes que, al menos en parte, están contenidos en dicho

volumen.

54

Figura 39: Mapeador de mapas (plantas y secciones) del SMD.

4.4.3 Mapeador de Mapas

Esta aplicación (figura 39), genera las interfaces necesarias para el mapeo de mapas (plantas,

secciones y superficie). Para esto, realiza las siguientes tareas, entre muchas otras:

1. Despliega los soportes con los estilos configurados en la base de datos

2. Despliega los vectores que se encuentren disponibles

3. Despliega las imágenes georreferenciadas que se encuentren disponibles

4. Genera las interfaces de mapeo de cada tema configurado

5. Valida la topología de los soportes dibujados (evita sobre posición de soportes del

mismo tema en el mismo espacio)

6. Provee herramientas de filtro de información

7. Permite imprimir mapas

8. Permite generar secciones definidas por el usuario en cualquier planta y con cualquier

orientación y extensión

55

Figura 40: Función para asignación de identificador de soporte.

El cambio en la forma de asignar los identificadores de los nuevos soportes afectará a ambos

módulos de mapeo. Se crea una nueva función (figura 40) que genera dicho identificador,

garantizando su unicidad al mantener un correlativo interno para cada sesión de mapeo. Dicha

sesión se identifica por un número único (denominado en el código como "IdProceso")

proporcionado por el sistema al momento de la bajada de datos.

La nueva denominación de las tablas asociadas a los temas de mapeo no incide prácticamente

en el código fuente de las aplicaciones de mapeo, ya que dicho nombre siempre ha sido leído

del campo NOMBRE_TABLA de la tabla GSYSTABLAS. Así mismo, la eliminación de los temas

externos y el tema "Estructura" sólo tiene como consecuencia la eliminación de bastante código

requerido para administrar el comportamiento del software ante tales casos especiales. Por lo

tanto, se considera muy positivo desde este punto de vista.

El cambio en la denominación de los campos de las tablas antes mencionadas resulta más

complejo de implementar, por el alto grado de dependencia que había al interior del código

fuente, de esta forma de denominación. El cambio se llevó a cabo con éxito de todas formas.

Al dejar de almacenar los vértices en campos de tipo BLOB, se ha podido prescindir de la dll

que prestaba el servicio de interpretación de dichos campos. Así, se hizo un cambio bastante

profundo en los métodos de lectura de soportes, haciendo un uso más intensivo de la memoria

56

RAM y disminuyendo al máximo los accesos a disco que se hacían con demasiada frecuencia

en la versión actual de los mapeadores.

Con estos cambios se logró ahorros de tiempo del orden de 80% en planos con gran cantidad

de información. Este ahorro fue medido cargando la información del mismo mapa ("Esmeralda

Producción") en el formato antiguo y el nuevo. Se hicieron 10 mediciones del tiempo de

despliegue del total del mapa con todos los temas "encendidos". En todas ellas la aplicación

que utilizaba el modelo antiguo demoró del orden de 11 segundos, mientras que la nueva

aplicación registró tiempos del orden de los 2 segundos.

57

Figura 41: Mapeador de Sondajes del SMD.

4.4.4 Mapeador de Sondajes

Esta aplicación (figura 41) genera las interfaces necesarias para el mapeo de sondajes. Para

esto, realiza las siguientes tarea, entre muchas otras:

1. Despliega los soportes con los estilos configurados en la base de datos

2. Genera las interfaces de mapeo de cada tema configurado

3. Valida la topología de los soportes dibujados (evita traslapes)

4. Permite imprimir sondajes

Esta aplicación comparte bastante código con el mapeador de mapas, por lo que los cambios

referidos anteriormente son válidos también para este módulo.

58

Figura 42: Mapeador unificado de sondajes y mapas.

4.4.5 Mapeador: Unificación de sondajes y mapas

Para simplificar aún más la mantenibilidad del código maximizando la reutilización del mismo,

se procedió a unificar los mapeadores de sondajes y mapas en una única aplicación MDI

(multiple document interface), tal como se aprecia en la figura 42.

Esto finalmente se tradujo en una disminución importante de la cantidad de líneas de código y

del tiempo requerido para depurar errores.

Además, ha traído importantes beneficios prácticos para el uso del sistema. En particular, ahora

es posible desplegar paralelamente un sondaje y un mapa, siendo posible visualizar la

expresión del sondaje sobre el mapa antes mencionado al momento de su edición. Esto facilita

la interpretación precoz de la información geológica, así como posteriores análisis espaciales de

información.

59

Figura 43: Importador de Vectores del SMD.

4.4.6 Importador de Vectores

El Importador de Vectores (figura 43) se vio afectado debido a que la forma de almacenamiento

de los vértices de los datos vectoriales era similar al de los datos en general, considerando el

uso de BLOB's. Por esto, fue necesario hacer modificaciones análogas a las requeridas por los

módulos de mapeo, de tal forma de almacenar los archivos dxf importados, en la nueva

estructura que considera una tabla de vértices.

60

Figura 44: Clase para el manejo de excepciones.

4.5. Prototipo del Mapeador de Elementos 2D

Para probar algunas de las capacidades básicas del lenguaje C# y la plataforma de desarrollo

.NET, se desarrolló un pequeño prototipo de la interfaz del mapeador de elementos 2D, que

corresponde al módulo capaz de visualizar los mapas del SMD. Para el desarrollo se crearon

clases básicas, algunas de las cuales son descritas en esta sección.

Este módulo cuenta con las siguientes capacidades:

1. Conexión a la misma base de datos Access '97 con la que actualmente operan los

mapeadores del SMD.

2. Despliegue de los soportes de todos los temas configurados, con los estilos definidos

actualmente en el SMD.

3. Capacidad de zoom in, zoom out, paneo y selección gráfica de soportes.

Para el manejo adecuado de excepciones, se creó la clase MyException (figura 44), la cual

llena un archivo de texto con cada excepción que se produce y la pila de llamadas recibidas en

forma previa al evento. Esto favorece mucho la depuración del código.

61

Figura 46: Función para abrir una base de datos Access en Visual Basic 6.0.

Figura 45: Clase para acceso a datos.

4.5.1 Acceso a la base de datos local

Las aplicaciones de mapeo actuales se conectan a la base de datos

local Access, a través de la tecnología DAO (data access objects),

proporcionada por el lenguaje Visual Basic 6.0. Dicha tecnología

provee de todas las clases necesarias para acceder y modificar los

datos contenidos, además de algunas utilidades adicionales como la

compactación de la base de datos.

En el caso de C#, se utilizó la tecnología ADO .NET para la conexión

al repositorio local. Las clases utilizadas para el acceso a datos están

contenidas en el espacio de nombres (namespace)

System.Data.OleDb las cuales son explotadas a través de la construcción de una clase

denominada Db (figura 45).

El código necesario para acceder a la base de datos local se exhibe tanto para Visual Basic 6.0

(figura 46) como para C# (figura 47).

62

Figura 48: Clase Punto.

Figura 47: Constructor de clase de acceso a datos en C#.

4.5.2 Interfaz gráfica de usuario

Con el objetivo de conservar la familiaridad del usuario con la interfaz del software actualmente

en funcionamiento, ésta fue conservada en la mayor medida posible, haciendo sólo algunas

modificaciones menores que han sido sugeridas en muchos casos por los mismos clientes del

SMD.

Para los objetos gráficos, la clase básica es el punto (figura 48), el

cuál cuenta con coordenadas reales X, Y, Z y con un par de lo que

denomino coordenadas topológicas. Estas últimas sirven para

resolver las relaciones entre los distintos polígonos en cada planta

o sección, tales como intersecciones, sobre posiciones o

inclusiones. Estas relaciones son siempre resueltas en 2D, por lo

que para el caso de las plantas se utilizan las coordenadas X e Y,

mientras que en las secciones, las coordenadas topológicas son

obtenidas como la proyección de cada polígono en el plano vertical

definido por la sección. En esta clase se implementa el método que

determina la distancia entre dos puntos.

63

Figura 49: Clases definidas para el manejo de elementos mapeables.

Figura 50: Clase soporte.

Los elementos mapeables como sondajes y mapas se consideran hijos de una clase abstracta

que denomino Elemento Mapeable (figura 49). En dicha clase agrupo también a elementos de

apoyo como lo son los vectores y las imágenes.

El manejo de soportes quedó centralizado en la clase

denominada Soporte (figura 50), la cual reúne ciertas

propiedades que son actualizadas a medida que el soporte va

siendo construido como lo son los límites de ubicación, el largo y

área si aplican, etc. Además, al momento de irse agregando

vértices a un soporte, la función que realiza dicha labor valida la

topología del mismo, evitando que el nuevo trazo corte a un trazo

ya existente o que el polígono se cierre en un punto que no sea el

primero.

Todas las visualizaciones que permite el sistema son en

superficies planas, ya sea una planta (plano horizontal) o una

sección (plano vertical). Los vértices que componen un soporte se

almacenan en una lista enlazada, lo que hace muy eficiente su

inserción y obtención.

64

Figura 52: Clases para manejar los temas, atributos y valores definidos en el código del SMD.

Figura 51: Clase lista enlazada.

Para manejar las listas de vértices, así como listas de otros elementos, se creo algo muy similar

a lo que son los templates en C++, y que en C# son denominadas clases genéricas. Éstas

están agrupadas en el espacio de nombres System.Collections.Generic. Haciendo uso de esta

funcionalidad, se crea la clase ListaElementos (figura 51). Tal como es de esperarse, el uso de

la clase ListaElementos nos permite mantener listas de distintos conjuntos de objetos de la

aplicación y se hace uso intensivo de ésta en muchas clases.

Para implementar el manejo del código del SMD, así como de los

estilos asociados a los valores que asumen los distintos atributos

de cada tema, se han creado las clases: tema, atributo y valor

(figura 52).

65

Figura 53: Vista del mapa Esmeralda Hundimiento, a través del prototipo en C#.

Finalmente, en la figura 53 se muestra un despliegue del sector Esmeralda Hundimiento del

yacimiento El Teniente.

Lograr este desarrollo no tomó más allá de un mes incluyendo el diseño y programación.

Además, el autor se ha dedicado también a otras actividades dentro de ese período de tiempo.

Por este motivo, se sostiene que la velocidad de desarrollo que se puede conseguir es muy

adecuada para los recursos disponibles para este efecto.

El rendimiento de la aplicación, en cuanto a velocidad de despliegue especialmente, es inferior

al logrado con Visual Basic 6.0. Sin embargo, se debe hacer notar que el desarrollador tiene

mucho que aprender con respecto al uso de GDI+ (Graphics Device Interface).

Otra herramienta destacable de Visual Studio 2005 es su capacidad de generación de

diagramas de clases, la cual es muy eficiente y útil para agilizar el proceso de diseño y

documentación del software.

66

5. CONCLUSIONES Y RECOMENDACIONES

En este capítulo se detallan las conclusiones a las que fue posible llegar una vez terminado este

trabajo, considerando tanto la experiencia recopilada durante el desarrollo del mismo, como la

experiencia obtenida durante los seis años que ha llevado el desarrollo e implementación del

mapeo digital en la Superintendencia Geología de la División El Teniente.

5.1 Conclusiones

En esta tesis se ha hecho una revisión crítica del sistema de mapeo digital que se viene

desarrollando y utilizando en la División El Teniente de CODELCO CHILE desde el año 2002.

Esta revisión ha permitido identificar y realizar los cambios más críticos que dicho sistema

requería para posibilitar su escalamiento e interoperabilidad. Es importante destacar que

muchos de los cambios indicados en esta tesis, han sido puestos con éxito en producción

durante el curso de este trabajo.

Los cambios realizados se han traducido en diversas mejoras en términos de normalización de

la estructura de datos subyacente, así como en el rendimiento de la aplicación de despliegue

gráfico.

La mayor normalización de la base de datos ha permitido el acceso a la información por

usuarios no familiarizados con el uso del SMD. El reemplazo de los campos de tipo BLOB ha

permitido acceder a la información de los vértices de los distintos soportes almacenados por vía

de simple SQL, disminuyendo drásticamente la dependencia del SMD por parte de la

Superintendencia Geología. La nueva estructura de datos permite facilitar la consulta geográfica

de soportes por cercanía a un punto dado.

La reprogramación de varias aplicaciones del SMD ha optimizado sensiblemente el despliegue

de la información de mapas, gracias a la disminución del acceso a disco. Esto fue posible en

gran medida debido a los cambios en la estructura de datos antes mencionados.

Para hacer posible el escalamiento del SMD, se ha definido a Visual Studio 2005 y, en

particular, al lenguaje C# como la plataforma de desarrollo futuro, en caso de seguir contando

con los mismos recursos físicos y humanos hasta ahora disponibles. El desarrollo del prototipo

de mapeador 2D en C#, ha permitido confirmar que este lenguaje resulta muy adecuado para

extender el desarrollo del SMD. La potencia de la plataforma .NET unida a la velocidad de

desarrollo lograda mediante el IDE de Visual Studio 2005 permiten continuar escalando el

sistema con los recursos actualmente disponibles, al menos en el mediano plazo.

67

Se ha confeccionado un plan de migración que permitirá un cambio de plataforma de desarrollo

gradual pero eficiente. Resulta fundamental seguirlo en forma estricta para garantizar la mínima

interferencia con la producción.

El éxito que ha tenido el mapeo digital durante sus seis años de funcionamiento en la

Superintendencia Geología de la División El Teniente, se ha debido fundamentalmente a que su

desarrollo ha estado siempre ligado estrechamente con el negocio al que apoya, en este caso la

Geología. Sin embargo, su generalidad le permite fácilmente ampliar su alcance fuera de esta

área, incorporando el manejo de otros temas como el estado geomecánico de los túneles.

La atención constante que se ha puesto en la satisfacción de los usuarios, siendo el

desarrollador uno de ellos, ha sido la base para la corta curva de aprendizaje que tienen las

aplicaciones de mapeo y análisis del SMD.

Todas las etapas de desarrollo del sistema de software antes detalladas, incluyendo esta tesis,

se han llevado a cabo mediante una estrategia de desarrollo "poco convencional", sin equipo de

diseño, desarrollo y pruebas bien definidos. El diseño y desarrollo han estado a cargo del autor,

mientras que las pruebas en general son realizadas por los usuarios más experimentados. Esta

práctica, si bien ha funcionado hasta el momento, se considera poco reproducible ante cambios

en las personas que desarrollan y usan el SMD.

Por esto, durante el desarrollo de esta tesis, el autor ha publicado una serie de procedimientos

que describen en detalle los pasos de cada una de las actividades relacionadas en mayor o

menor medida con la administración del SMD (Rodrigo, 2005, 2006 a y 2006 b). Dichos

documentos podrán ayudar también a la Superintendencia Geología de la División El Teniente a

certificarse ISO9000, meta que ha sido fijada por la Corporación para el mediano plazo.

5.2 Recomendaciones

En esta sección se indican una serie de recomendaciones para tres distintos ámbitos que

comprenden el SMD.

5.2.1 Acceso a datos

• Eliminar la práctica de vincular tablas desde una base de datos Access a la base de

datos central, por una subida y bajada de datos que porte los registros como texto y los

almacene en algún formato no propietario para su transmisión por la red.

• Estudiar alternativas para optimizar la bajada de información desde la base de datos.

68

• La base de datos local Access '97 actualmente utilizada debe ser reemplazada lo antes

posible. Ya se está comenzando el estudio de una buena alternativa para el repositorio

local de datos del SMD.

• Eliminar el único tema preconfigurado (Estructura) y reemplazarlo por uno genérico

equivalente.

• Mejorar el modelo de datos en lo que se refiere a vinculación de temas y atributos. En

particular, permitir vincular un tema a uno o más temas.

5.2.2 Protocolo de comunicación y transmisión de datos

• Implementar de un protocolo estándar de transmisión de los datos solicitados por los

usuarios, permitirá el desarrollo de varios tipos de aplicaciones de mapeo. Esto nos

permitirá adjudicar las distintas capas del SMD a distintos grupos de desarrollo

especializados en cada una de ellas.

5.2.3 Aspectos Administrativos

• Para poder lograr una trazabilidad de los cambios que sufren los soportes y la

información en general con el tiempo (por ejemplo, la evolución de una falla), se

recomienda estudiar los cambios en el modelo de datos que permitan esta potencialidad.

• Se recomienda licitar el desarrollo y mantenimiento de los distintos módulos del SMD

para lograr la permanencia del sistema en el tiempo. Dichas licitaciones deben ser

dirigidas y coordinadas por profesionales del perfil de los que han participado en el

desarrollo del SMD, quienes tienen el conocimiento cabal del negocio y de la

herramienta de software que lo apoya. Esto disminuirá la dependencia del SMD del

diseñador y desarrollador actual.

69

6. BIBLIOGRAFÍA

1. Encom Technology Pty Ltd. (2006). Encom Discover 6.1. Sistema de Información

Geográfica para profesionales de las Ciencias de la Tierra.

<www.encom.com.au/pdfs/discover61_spanish.pd>.

2. Esri (2006). Arcinfo, Complete Desktop GIS for the GIS professional. <www.esri.com/software/arcgis/arcinfo>

3. GAF (2006). Software. <www.gaf.de>

4. Geosoft (2006). Oasis Montaj. <www.geosoft.com/pinfo/oasismontaj/index.asp>

5. Geovectra S.A. (2003). Manual de GVMapper Versión 3.1.

6. Geovectra S.A. (2006). GVMapper. <www.geovectra.cl>

7. Mono. (2006). What is Mono? <www.mono-project.com>

8. Rodrigo B., José M. (2005). Procedimiento Administrativo de Proposición, Realización y

Reporte de Sondajes. GRMD-SGL-P-017. División El Teniente. CODELCO CHILE.

9. Rodrigo B., José M. (2005). Módulo de Análisis y Administración de Datos de Sondajes

para el Sistema de Mapeo Digital. SGL-I-124-2005. División El Teniente. CODELCO

CHILE.

10. Rodrigo B., José M. (2006 a). Instructivo para Certificación de Perforación, Topografía

de Collar y Medición de Trayectoria de Sondajes. GRMD-SGL-I-007. División El

Teniente. CODELCO CHILE.

11. Rodrigo B., José M. (2006 b). Manual de Instalación y Operación del Sistema de

Mapeo Digital. Informe Inédito de la Superintendencia Geología. División El Teniente.

CODELCO CHILE.

70

ANEXO A: Glosario

Base de Datos Central: Es la base de datos donde se almacena toda la información del SMD.

A ella sólo tiene acceso el servidor de aplicaciones y el módulo de configuración.

Actualmente es administrada a través de Oracle 9i.

Base de Datos Local: Es el repositorio donde se almacena la información en cada equipo de

mapeo. Actualmente se utiliza Microsoft Access '97 para este efecto.

BLOB: Binary Large Object.

Campo autonumérico: Es un campo que se auto incrementa en una unidad cada vez que se

agrega un registro en la tabla a la que pertenece. Para implementar esto en Oracle, se crea

una secuencia y un trigger que extrae el nuevo valor y lo inserta el campo de interés.

Corte Transparente: Sección muy delgada de una roca, cortada y preparada para su estudio al

microscopio.

Elemento Mapeable: Toda entidad espacial de una dimensión o dos dimensiones, sobre la cual

se pueden crear soportes en los distintos temas configurados en el SMD. Ejemplos de

elementos mapeables son las plantas, secciones, mapas de superficie y sondajes.

GCTIC: Gerencia Corporativa de Tecnologías de la Información y Comunicaciones

Manteo: Ángulo que forma un plano con el plano horizontal, medido en la dirección de máxima

pendiente del plano aludido.

Mapa: Representación geográfica bidimensional de la realidad. Usualmente se utilizan plantas

(mapa horizontal plano) o secciones verticales (mapa vertical plano).

Mapear: Reconocer información relativa a un tema dentro de un sondaje o mapa.

Rumbo: Ángulo que forma un linear con el Norte geográfico.

SMD: Sistema de Mapeo Digital.

Sondaje: Un sondaje consiste en una muestra de roca obtenida mediante la perforación de un

pozo en el macizo rocoso. Dicha muestra puede ser un cilindro sólido (sondaje diamantino)

o una muestra de polvo de roca (sondaje de aire reverso).

Soporte: Entidad espacial a la cual se le asocia información relativa a algún tópico. Puede ser

un punto, una polilínea o un tramo de un sondaje.

Tema Maestro o Padre: Es un tema que no está vinculado a ningún otro tema.

Tema Vinculado, Detalle o Hijo: Es un tema vinculado a otro de mayor jerarquía o maestro.

71

Trayectoria: Sucesión de mediciones puntuales de la orientación de un sondaje, que permiten

determinar su desviación con respecto al programa del mismo y, en consecuencia, su

ubicación "real" en el espacio.

Vectores: Son planos importados al SMD a partir de archivos DXF. Éstos quedan disponibles

en el sistema para los usuarios autorizados. Usualmente se utilizan para almacenar los

planos de los túneles de los sectores productivos.

Vértice: Punto (x, y, z) perteneciente a un soporte y originado durante el proceso de mapeo. A

un vértice único se le denomina punto en el SMD. Una sucesión de vértices puede ser una

polilínea o un polígono, en caso que el primer y último vértice sean iguales.

72

ANEXO B: Descripción global del SMD y sus componentes

En este anexo se describe el SMD en términos de sus principales componentes, de tal forma de

entregar al lector una visión de la forma en que este sistema opera y de las funcionalidades que

proporciona a los usuarios. Las interfaces serán omitidas para proteger la confidencialidad del

SMD.

B.1 Configurador

Este módulo del SMD es el que permite crear y administrar las cuentas de usuarios, perfiles de

usuarios y el código de mapeo implementado. También permite acceder a toda la información

almacenada, proporcionando herramientas de filtro, análisis de datos y utilidades de

exportación.

El acceso a este módulo se debe restringir a usuarios de confianza, con gran conocimiento del

negocio que se está configurando (e.g. geología, geomecánica u otro) y con habilidades para

estructurar información en forma coherente. Es deseable, aunque no indispensable, que se

tengan algunos conocimientos básicos de administración y consulta de bases de datos

(lenguaje SQL).

B.1.1 Creación de Cuentas de Usuario y Perfiles

Mediante una interfaz se permite crear y editar las cuentas de los usuarios del SMD. A cada

usuario le puede ser asignado uno o más perfiles. Cada perfil consiste en una serie de

autorizaciones para acceder a los distintos temas configurados en el SMD, así como a los

distintos elementos mapeables. De esta forma cuando un usuario reserva un mapa para

levantar información en el mismo, debe tener acceso al mapa y, separadamente, debe tener

acceso a los temas que desea editar.

Por otra parte, existen los llamados perfiles de elementos mapeables los que permiten asociar

un mapa con un conjunto específico de temas. Esto nos habilita para tener mapas temáticos

específicos destinados exclusivamente, por ejemplo, al levantamiento e interpretación litológica.

Cada elemento mapeable puede tener tan sólo un perfil.

B.1.2 Creación de Temas de Mapeo

Se provee una interfaz que permite crear cualquier tipo de tema o tópico que se requiera

mapear en terreno, sondajes o interpretar en gabinete.

73

El enfoque consiste en permitir al usuario crear un tema cualquiera. Luego, puede crear

campos, que son los conceptos a reconocer para dicho tema al momento de mapear. Cada

campo puede ser de tipo numérico, texto, memo (texto largo), objeto (archivo binario como foto,

documento pdf, etc.) o booleano. Se pueden establecer ciertas reglas de validación sobre los

valores que pueden asumir los campos (mínimo, máximo, suma mínima, suma máxima, etc.).

En particular, los valores de los campos de texto se pueden configurar de tal forma que el

usuario deba elegir entre un número restringido de posibilidades, ayudando al cumplimiento de

un estándar de mapeo. Sin perjuicio de esto, los usuarios que estén debidamente autorizados,

pueden agregar nuevos valores a dichos campos al momento del mapeo.

B.1.3 Consulta de Información

Para realizar análisis de grandes cantidades de información, el configurador cuenta con un

módulo destinado a este efecto, denominado Administrador de Datos. Su función consiste en

dar acceso a toda la información contenida en la base de datos, aportando herramientas para

simplificar su consulta y filtro tanto temático como espacial. Los datos obtenidos de esta forma,

pueden ser exportados en formato ASCII o Excel, lo que permite su posterior utilización en

softwares de modelamiento u otros.

Además, si se cuenta con los privilegios necesarios, es posible consultar todas las

transacciones realizadas en el sistema (bajadas de elementos, actualizaciones, labores

administrativas, etc.). Esto permite un control cercano de las actividades y facilita la posibilidad

de llevar una estadística respecto de las mismas.

B.1.4 Creación y edición de Elementos Mapeables

Los sondajes y mapas pueden ser creados y editados mediante sendas interfaces. Éstas

permiten asignarles nombre, perfil de mapeo (los temas que le corresponderán) y ubicación

espacial, entre otras características administrativas.

B.1.5 Importación de imágenes y planos vectoriales

Para mapear tanto en superficie como en labores subterráneas, suele ser de gran utilidad

contar con un plano topográfico. Dichos planos pueden ser importados al sistema cuando están

en formato dxf. Así mismo, si se cuenta con imágenes satelitales, fotografías aéreas o planos

antiguos escaneados, es posible georreferenciar dichas imágenes e importarlas al SMD para

contar con ellas al momento del mapeo o la interpretación.

74

B.1.6 Creación de programas de sondajes

Mediante una interfaz destinada al efecto, los geólogos pueden crear sus programas de

sondajes, ingresando cada una de las propuestas (nombre, ubicación, tipo de muestra, etc.). El

SMD provee la posibilidad de visualizar la propuesta en el mapa de tal forma de descartar a

priori cualquier error en los datos. Además, este módulo almacena dicha información en la base

de datos, lo que permite hacer un control administrativo del proceso de perforación de sondajes

desde la propuesta hasta el mapeo del testigo.

B.1.7 Administración de parámetros críticos

Existen generalmente una serie de parámetros administrativos que es conveniente almacenar

en la base de datos. Un ejemplo de dichos parámetros es la declinación magnética. Este dato

debe ser obtenido de una fuente confiable (IGM: Instituto Geográfico Militar) y su valor debe

estar respaldado por un documento oficial. Sin embargo, es útil que todos los usuarios tengan

acceso a dicho valor con objetivos prácticos. El SMD provee la posibilidad de almacenar los

parámetros críticos que sea necesario, para lo cual se consulta su nombre, descripción, tipo de

dato y valor. Una vez que son creados, cualquier aplicación perteneciente al SMD tendrá

acceso a dicho parámetro, pero sólo en modo de lectura. De esta forma cualquier modificación

en los valores (hecha en el Configurador), es inmediatamente difundida por el SMD a los

usuarios del sistema.

B.2 Servidor y Procesador

Debido a la naturaleza distribuida del SMD, existen dos aplicaciones encargadas de "escuchar"

y realizar las solicitudes encargadas por los usuarios. Estas aplicaciones residen el servidor de

aplicaciones del SMD.

B.2.1 Servidor

Esta aplicación acepta las conexiones de los clientes y "decide" si se autoriza o no la

transacción. Permite la concurrencia de un número configurable de usuarios (actualmente 20), y

deriva las solicitudes a otra aplicación denominada procesador. El proceso de autorización lo

realiza mediante la validación del nombre de usuario y contraseña enviados en forma codificada

desde el cliente, con la información correspondiente que existe en la base de datos central.

75

B.2.2 Procesador

El procesador es el encargado de efectuar los procedimientos necesarios para la sincronización

de la base de datos central con los nuevos datos aportados por los usuarios, así como la

consulta de información a la base de datos central y su derivación hacia los usuarios que la

soliciten. Es posible activar varias instancias del procesador, lo que permite el procesamiento

paralelo de las solicitudes.

B.3 Cliente del SMD

Esta aplicación permite el acceso de cada usuario al sistema de mapeo digital, a través de su

nombre de usuario y contraseña. Una vez iniciada una sesión es posible solicitar un elemento

mapeable para su edición o, simplemente, para su visualización. Así mismo es posible obtener

los vectores e imágenes que estén disponibles en la base de datos central.

B.4 Mapeador

Esta aplicación contiene toda la gráfica del SMD y es la que permite el despliegue de los

elementos mapeables, tanto mapas como sondajes.

B.4.1 Mapeador de Sondajes

Provee las interfaces y módulos para el mapeo de sondajes. Además, permite a los usuarios

exportar la información de los sondajes seleccionados hacia archivos ASCII o Excel. Así mismo,

es posible imprimir los sondajes en una impresora o plotter, agregando cierta información

administrativa como encabezado de cada hoja.

B.4.2 Mapeador de Mapas

Esta aplicación contiene la gráfica más compleja del SMD. Permite desplegar tanto plantas

como secciones y dibujar sobre ellos cualquier nuevo soporte. Esto último se puede hacer

directamente o con la ayuda de una serie de asistentes que facilitan la creación de nuevas

figuras.

Además, es posible conectar un GPS a computador portátil (puerto serial) y desplegar la lectura

obtenida directamente sobre el mapa que está siendo desplegado. Esto posibilita la ubicación

instantánea de la posición actual en el mapa de trabajo.