View
11
Download
0
Category
Preview:
Citation preview
ARQUITECTURA DE SISTEMA
GEOPORTAL SIMÓN BOLIVAR
1.1 Objetivos de la Arquitectura del SistemaLos objetivos marcados al escoger esta arquitectura son los de eficiencia, escalabilidad, confiabilidad y mantenibilidad. Es una arquitectura preparada para crecer si es necesario, que permite separar los servicios en varios servidores y repartir la carga de trabajo, además de ser un práctica extendida e incluso recomendada por el OGC para este tipo de trabajos.
2 Vista Lógica
En esta vista se detallan las partes del modelo de diseño que son significativas arquitectónicamente representando los diagramas que permiten tener una visión de los elementos que conforman el sistema y de la interacción entre ellos.
2.1 Diagrama de PaquetesA continuación se muestra el diagrama de paquetes:
2.2 Paquetes de Diseño significativosEn esta sección se muestra para cada uno de los paquetes representados anteriormente una breve descripción y el nombre de las clases que contiene.
P-01: OPENLAYERSDescripción: Este es el paquete principal de Openlayers. Contiene todas las
clases necesarias para mostrar mapas e interactuar con ellos sobre un navegador web.
Soporta múltiples protocolos y datos raster utilizando tiles o no y otros tantos formatos vectoriales.
Clases Disponibles: Package OpenLayers
Class Style
Class Ajax
Package BaseTypes
Class BaseTypes
Class Bounds
Class Class
Class Element
Class LonLat
Class Pixel
Class Size
Package Control
Class Control
Class ArgParser
Class Attribution
Class Button
Class DragFeature
Class DragPan
Class DrawFeature
Class EditingToolbar
Class GetFeature
Class KeyBoardDefaults
Class LayerSwitcher
Class Measure
Class ModifyFeature
P-01: OPENLAYERS
Class MouseDefaults
Class MousePosition
Class MouseToolBar
Class Navigation
Class NavigationHistory
Class NavToolBar
Class OverViewMap
Class Pan
Class Panel
Class PanPanel
Class PanZoom
Class PanZoomBar
Class Permalink
Class Scale
Class ScaleLine
Class SelectFeature
Class Snapping
Class Split
Class WMSGetFeatureInfo
Class ZoomBox
Class ZoomIn
Class ZoomOut
Class ZoomPanel
Class ZoomToMaxExtent
Class ScaleControl
Class Console
Class Events
Package Features
Class Feature
Class Vector
Class WFS
P-01: OPENLAYERS
Package Filter
Class Filter
Class Comparisson
Class FeatureId
Class Logical
Class Spatial
Package Format
Package Filter
Class Filter
Class v1
Class v1_0_0
Class v1_1_0
Package GML
Class GML
Class Base
Class v2
Class v3
Package SLD
Class SLD
Class v1
Class v1_0_0
Package WMC
Class WMC
Class v1
Class v1_0_0
Class v1_1_0
Package Format
Class ArcXML
Class ArcXML.Features
Class GeoJSON
Class GeoRSS
P-01: OPENLAYERS
Class GPX
Class JSON
Class KML
Class OSM
Class Text
Class WFS
Class WFSCapabilities
Package WFSCapabilities
Class WFSCapabilities.v1
Class WFSCapabilities_v1_0_0
Class WFSCapabilities_v1_1_0
Class WFSDescribeFeatureType
Package WFST
Class WFST
Class v1
Class v1_0_0
Class v1_1_0
Class WKT
Class WMSCapabilities
Package WMSCapabilities
Class WMSCapabilities.v1
Class WMSCapabilities_v1_0_0
Class WMS_Capabilities_v1_1_0
Class WMSDescribeLayer
Class WMSGetFeatureInfo
Class XML
Class WMSDescribeLayer.v1
Package Geometry
Class Geometry
Class Collection
Class Curve
P-01: OPENLAYERS
Class LinearRing
Class MultiLineString
Class MultiPoint
Class MultiPolygon
Class Point
Class Polygon
Class Rectangle
Package Handler
Class Handler
Class Box
Class Click
Class Drag
Class Feature
Class Hover
Class Keyboard
Class MouseWheel
Class Path
Class Point
Class Polygon
Class RegularPolygon
Package Lang
Class Lang
Class es
Package Layer
Class Layer
Class ArcGIS93Rest
Class Boxes
Class EventPane
Class FixedZoomLevel
Class GeoRSS
Class GML
P-01: OPENLAYERS
Class Google
Class Grid
Class HTTPRequest
Class Image
Class KaMap
Class KaMapCache
Class MapGuide
Class Mapserver
Class Mapserver.Untiled
Class Markers
Class MultiMap
Class PointTrack
Class SphericalMercator
Class Text
Class TileCache
Class TMS
Class Vector
Class Vector.RootContainer
Class VirtualEarth
Class WFS
Class WMS
Class WMS.Untiled
Class WorldWin
Class Yahoo
Class ArcIMS
Class XYZ
Class Icon
Class Map
Package Marker
Class Marker
Class Box
P-01: OPENLAYERS
Package Popup
Class Popup
Class Anchored
Class AnchoredBubble
Class Framed
Class FramedCloud
Class Projection
Class Rule
Package Protocol
Class Protocol
Class HTTP
Package SQL
Class SQL
Class Gears
Package WFS
Class WFS
Class v1
Class v1_0_0
Class v1_1_0
Package Renderer
Class Renderer
Class Canvas
Class Elements
Class SVG
Class VML
Package Request
Class Request
Class XMLHttpRequest
Package Strategy
Class Strategy
Class BBOX
P-01: OPENLAYERS
Class Cluster
Class Fixed
Class Paging
Class Save
Package Tile
Class Tile
Class Image
Class WFS
Class StyleMap
Class Tween
Class Util
P-02: MAPFISH
Descripción:Paquete principal de Mapfish. Permite la integración de Ext.js y Openlayers y ofrece los principales widgets de la aplicación como la barra de herramientas y el árbol de capas.
Clases Disponibles: Package core
Class PrintProtocol
Class Offline
Class Color
Class Util
Class Protocol
Class ProtocolListener
Package widgets
Class Form
Class MapComponent
Class Shorcuts
Package LayerTree
Class LayerTree
Class LayerTreeExtra
P-02: MAPFISH
Package Toolbar
Class Toolbar
Class CheckItem
Class MenuItem
P-03: PROJ4JS
Descripción:Paquete principal del proyecto Proj4JS. Permite realizar conversión de coordenadas entre sistemas de referencia.
Clases Disponibles:Class Proj
Class EPSG:4189
P-04: EXTJS
Descripción:ExtJS es la librería javascript que nos permite crear ventanas, menús, botones, etc, y a la vez abstraernos de los problemas de tratar con distintos tipos de navegadores.
Clases Disponibles:
Package chart
Package data
Package dd
Package direct
Package form
Package grid
Package layout
Package menu
Package state
Package tree
Package util
Class Layout
Class Toolbar
Class Button
P-05: PRODE-CORE
Descripción: Paquete con utilidades generales de JavaScript
Clases Disponibles: Class Util
P-06: PRODE-MAPS
Descripción:Paquete principal del proyecto Proj4JS. Permite realizar conversión de coordenadas entre sistemas de referencia.
Clases Disponibles:
Class ScaleControl
Class Class1
Package util
Package ui
Class MapFoundation
Class MapConfig
Class Resources
Class Login
Class Util
Class InfoByPoint
Class Wms
Class Wmc
Class CatalogSearch
Class XmlParse
Class Session
2.3 Diagrama de clases agrupado por paquetes
Openlayers
Mapfish
Proj4JS
ExtJS
Prode-core
Prode-maps
2.4 Realización de los Casos de Uso. Diagramas de SecuenciaA continuación se ilustra el cómo funciona la aplicación, a través de los Diagramas de Secuencia de los casos de uso más importantes del sistema.
Caso de uso navegación
Caso de uso Medidas
Caso de uso Búsqueda
Caso de uso Sesión
3 Vista de Implementación La vista de implementación muestra el empaquetado físico de las partes reutilizables del sistema en unidades sustituibles, llamadas componentes. Una vista de implementación muestra los elementos físicos del sistema mediante componentes, así como sus interfases y dependencias entre componentes. Los componentes son piezas reutilizables de alto nivel a partir de las cuales se pueden construir los sistemas.
3.1.1 Diagrama de Componentes del SistemaEl diagrama de componentes describe la descomposición física del sistema en componentes, a efectos de construcción y funcionamiento. La descomposición del diagrama de componentes se realiza en términos de componentes y de relaciones entre los mismos. Los componentes identifican objetos físicos que hay en tiempos de ejecución, de compilación o de desarrollo, y tienen identidad propia y una interfaz bien definida. Cada componente incorpora la implementación de ciertas clases del diseño del sistema.En un diagrama de componentes se muestran las diferentes relaciones de dependencia que se pueden establecer entre componentes. Los componentes bien diseñados no dependen de otros componentes sino de las interfases que ofrecen los componentes. En ese caso, un componente en un sistema puede ser sustituido por otro componente que ofrezca las interfases apropiadas.
Los componentes principales del sistema son:– Capa de presentación: Geoportal + gvSIG (o cualquier otro cliente IDE)– Capa de negocio: Servicios OGC (MapServer, Geonetwork, GeoServer, TileCache) + MapFish server– Capa de recursos: PostgreSQL+PostGIS + ficheros RASTER
A continuación se muestra el Diagrama de Componentes:
Diagrama de Componentes:
Entrando más en detalle en los componentes del geoportal, tenemos que éste esta formado por los elementos que se muestran en la siguiente figura:
4 Vista de Despliegue
La vista de despliegue muestra la disposición física de los recursos de ejecución computacionales, tales como computadores y sus interconexiones.La vista de despliegue puede mostrar cuellos de botella para el rendimiento si las instancias de los componentes con dependencia se ponen en distintos nodos.A continuación se detalla el despliegue realizado en el entorno de producción del CNTI. En concreto veremos qué artefactos están involucrados en el despliegue, sus comunicaciones y los entornos de ejecución en los que se ejecutan.
4.1 Artefactos y entorno de ejecución
Disponemos de un nodo físico con arquitectura de 64 bits en el que está instalado el sistema operativo Debian. Además, tenemos el entorno de la máquina virtual de Java que será la responsable de ejecutar el contenedor de Servlets Tomcat. En dicho contenedor se desplegarán las aplicaciones web Geoserver-1.5.4 y Geonetwork-2.2.0. Por otra parte, está el servidor web Apache el cual ejecutará el CGI de Mapserver y la aplicación Python TileCache. Para finalizar esta descripción general, tenemos el gestor de base de datos PostgreSQL con el módulo PostGIS que le permitirá trabajar con entidades geográficas. Entrando más en detalle en cada uno de los artefactos, podemos mencionar que tanto Geoserver como Mapserver obtienen sus fuentes de datos de PostGIS, Geonetwork almacena su configuración en PostgreSQL y que TileCache consigue las teselas realizando peticiones web al servicio WMS que ofrece Mapserver.
4.2 Comunicaciones Desde la perspectiva de comunicaciones entre nodos virtuales, el despliegue físico anterior se podría representar en el siguiente modelo conceptual donde agrupamos los distintos artefactos en nodos virtuales que se comunican a través de protocolos de red. Por una parte el cliente del Geoportal únicamente se comunicará con el sistema a través del puerto 80 y el protocolo HTTP. En cuanto a los artefactos desplegados en el servidor, podríamos dividirlos en tres nodos (ya sean físicos o lógicos), el servidor web , el contenedor de servlets y la base de datos. En concreto, el servidor web (con Mapserver, TileCache y Apache) se comunicaría con la base de datos a través del puerto 5432 y el protocolo de comunicación de postgres. A su vez, el servidor web, se comunicaría con el contenedor de servlets, para ejecutar sus aplicaciones web, a través del puerto 8009 y el protocolo AJP-1.3. Finalmente, puesto que las aplicaciones del contenedor necesitan acceder a la base de datos, se comunicarían con ésta a través del protocolo de postgres mencionado anteriormente.
5 Modelo de Datos
El Modelo de datos es aquel que describe de forma abstracta cómo se representan los datos de un sistema. Un modelo de datos consiste en: entidades, atributos y sus relaciones.
5.1 Modelo Entidad-Relación de las Bases de Datos
El modelado de datos es realizado a través de un modelo entidad-relación. Estos modelos permiten expresar entidades relevantes para un sistema de información, sus inter-relaciones y propiedades.
En nuestro caso, vamos a dividir los datos en datos vectoriales y datos raster. Los datos vectoriales están contenidos en una base de datos PostgreSQL+ la extensión PostGIS para trabajar con los datos alfanuméricos + espaciales.
A continuación se muestra el Modelo Entidad – Relación con las capas vectoriales. Los campos the_geom contienen la información espacial (líneas, puntos, polígonos). El campo gid es la clave principal.
Esquema carto
NOTA: Existe otro esquema (geonetwork) que lo crea la instalación de GeoNetwork, y que creemos que no hace falta documentar aquí. Si se desea más información, el lector puede consultar la documentación de GeoNetwork.
Además de las capas vectoriales, se ha utilizado la siguiente capa raster:
/DIRECTORIO_RASTER/imagen_base.tiff (GeoTiff con una imagen BlueMarble de baja resolución)
En el localizador, se ha utilizado la siguiente imagen:
DIRECTORIO_RASTER/mapa_base_geoportal.tiff
Recommended