INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Documento de Arquitectura de Software 1. Introducción 1.1 Propósito Este documento proporciona una vista general de la arquitectura del sistema, usando determinadas vistas de arquitectura para describir diferentes aspectos del Geoportal de la IDECAN. Se pretende capturar y transmitir las decisiones arquitecturales importantes que se han tomado en el desarrollo del proyecto. 1.2 Alcance El alcance de este documento será enfocado en varias vistas: vista abstracta de alto nivel, vista lógica, vista de despliegue y vista de implementación; todas ellas de la aplicación Visor de Mapas del Geoportal de la IDECAN, ya que la definición de la arquitectura del Geoportal de la IDECAN como tal requiere otra especificación de arquitectura (arquitectura de un portal web); esta será definida en una versión posterior del documento. 1.3 Definiciones, Acrónimos, y Abreviaturas Ver el Glosario del Geoportal de la IDECAN. 1.4 Referencias Casos de uso, diagramas de paquetes, diagrama de clases, diagrama de despliegue, diagrama de componentes. 2. Objetivos y Restricciones de Arquitectura El Visor de Mapas del Geoportal de la IDECAN es desarrollado en Java, Javascript y HTML, como proyecto open source. Gracias al uso de Java, se hace un gran uso de otros proyectos open source, lo que permite enfocarse en las funcionalidades primarias sin involucrarse en problemas que han sido ya solucionados. Java también proporciona medios simples de distribución. 3. Vista Abstracta de Alto Nivel En esta parte se determina una visión abstracta de alto nivel, donde se muestra la organización fundamental del Visor de Mapas del Geoportal de la IDECAN, en conjunto con los Servicios Web Geográficos desarrollados para la IDECAN; dentro de ella se encuentran los componentes de almacenamiento de datos, los servicios web geográficos usados, el modelo de datos y los protocolos bajo los cuales el sistema se soporta. IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Arquitectura de Alto Nivel 4. Vista Lógica Descripción de la Vista Lógica Vemos claramente que, según lo descrito en este y otros documentos, la aplicación del Visor de Mapas es muy cercana al patrón de arquitectura MVC (Modelo Vista – Controlador), combinado con el patrón DAO (Data Access Object) para la configuración del acceso a datos. Esto debido al carácter web de la aplicación. Los Servicios Web Geográficos son resultado de información consumida de la Base de Datos. La interfaz es producida por componentes Java y HTML. Según esto, el modelo de la aplicación se definirá de la siguiente forma: Modelo: Configuración de la Base de Datos de acuerdo al Modelo de Datos propuesto (ver documento Modelo de Datos y casos de uso sobre Configuración de la Base de Datos). IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Vista: Interfaz de usuario en Javascript y HTML del Visor de Mapas. Controlador: Servicios Web Geográficos. Esto nos lleva al siguiente diagrama que explica mejor la interrelación de estos componentes: Vista Lógica – Patrones de Arquitectura Nota: Las líneas sólidas indican una asociación directa y las punteadas una indirecta. IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L La aplicación entonces se podría dividir arquitecturalmente en los siguientes paquetes: Diagrama de Paquetes A continuación se describe de modo general los paquetes globales. Los demás paquetes pueden ser revisados en detalle en el modelo de casos de uso. 1. Consultas: Contiene la información de configuración de la Base de Datos en PostgreSQL, y los datos como tal. Utiliza Un conector PostGIS JDBC para permitir acceso a los datos. Será el repositorio utilizado por los archivos .xsd, que serán la fuente de información que consumirá el servicio WFS. 2. Servicios Web Geográficos: Contiene la configuración de los servicios web geográficos. La información de cada capa geográfica es mapeada de la base de datos en los archivos .xsd y referenciada en el archivo wfs_configuration.xml, lo que permitirá consumir el servicio WFS, que no tiene resultados gráficos. Una réplica de este archivo llamada LOCALWFS_capabilities.xml es referenciada en el archivo wms_configuration.xml, junto con el archivo de simbología de las capas geográficas, lo que permitirá consumir el servicio WMS, cuyo resultado es una imagen. 3. Visor de Mapas: Contiene de manera general la configuración del Visor de Mapas. El Visor consume los servicios web geográficos mediante una referencia del servidor de información, hecha en el archivo ArchivoDeContexto.xml. Este archivo hace referencia además a los componentes de la Interfaz Gráfica de Usuario y a las funcionalidades hechas en JavaScript 1.2., respaldado por Java. IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 5. Vista de Despliegue La aplicación utiliza una base de datos PostgreSQL. El servicio web geográfico WFS consume información directamente de esta base de datos, información que es consumida por el servicio web geográfico WMS. En la Interfaz de Usuario se encuentran el Visor de Mapas, que se encuentra embebido dentro del Geoportal de la IDECAN. El Visor de Mapas puede soportar servicios WMS externos, a través del protocolo HTTP. Las aplicaciones de Interfaz de Usuario y de Servicios Web Geográficos se encuentran dentro de un Contenedor JSP + Servlets Apache Tomcat 6.0. Así mismo, por medio de un servidor Apache 2.2 se manejan todas las peticiones HTTP estáticas de las aplicaciones web. La aplicación utliza Java JSDK 5, y se ejecutará en cualquier sistema con Máquina Virtual de Java 1.5.0_10 o superior. IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Diagrama de Despliegue IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 6. Vista de Implementación Se presenta entonces una vista más detallada de la implementación de los paquetes mencionados: 1. Consultas: Se ha mencionado que los archivos XSD se encargan de mapear la información de la base de datos (no mostrada en el diagrama por no ser una clase). Estos archivos son usados por el servicio WFS, el cual es referenciado por el servicio WMS. 2. Servicios Web Geográficos: Esta es la configuración de los servicios web geográficos. El servicio WMS genera una lista de capas geográficas, que serán desplegadas en el Visor de Mapas. A su vez, genera tres clases más: WMSBroker, que conecta el servicio con la capa geográfica, WMSExterno, añadido mediante el Visor, y WMSPropio, por defecto en el Visor de Mapas. También, como se ha mencionado, se tiene asociado un estilo por capa. IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 3. Visor de Mapas: Establece clases propias del visor, como el mapa generado a partir de los servicios, las capas cargadas por defecto o por los servicios WMS externos, los estilos asociados y los metadatos asociados. 4. IGAC-Entidad Diseño de Arquitectura INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 7. Tamaño y Desempeño Las siguientes son las suposiciones relacionadas al desempeño de la aplicación en cuestión. Se presume que los archivos js, jsp o html tendrán un límite aproximado de hasta 1 MB en tamaño. Esto convierte al Visor de Mapas en una aplicación web ligera. El tamaño descrito anteriormente no incluye el tamaño de la JVM, ni el empleado por el despliegue de la aplicación en el contenedor de servlets Apache Tomcat. La aplicación es soportada en un procesador x86 de 500MHz o superior. 8. Calidad Esta aplicación es bastante fiable, aunque puede llegar a un punto crítico si existe una sobrecarga de peticiones a los servicios web geográficos. Si esto sucede puede que la aplicación no trabaje como se esperaba. No tiene requerimientos de seguridad ya que depende de las características de seguridad del sistema operativo y de la base de datos. IGAC-Entidad Diseño de Arquitectura