3
La tecnología Silverlight y el desarrollo de aplicaciones SIG
La tecnología Silverlight y el desarrollo de aplicaciones SIG
William Blanco Salamanca1, Ómar Camacho Zabala2, Andrés Osorio Amaya3, Juan Manuel Higuera4
Resumen En este artículo se analiza cómo las tecnologías enfocadas en el desarrollo de aplicaciones de Internet enriquecidas (RIA) brindan la posibilidad de convertir las tradicionales aplicaciones SIG, que se disponen en la web, en aplicaciones más amables y eficientes en rendimiento. Se analiza un caso puntual: el Sistema de Información Geográfico del Quindío (SIG-Quindío), elaborado mediante Silverlight. Se evalúa cómo el sistema se ha ido adaptando al crecimiento tecnológico y se pone en evidencia el paso de la versión preliminar a la actual, que se encuentra en fase de desarrollo. También se muestran todos los aspectos de tipo técnico que tienen que ver con la información en la actual arquitectura. Palabras claves SIG, Silverlight, ESRI.
1 2 3 4
Ingeniero de Sistemas, Desarrollador Proyecto SIG Quindío fase II Ingeniero Electrónico, Desarrollador Proyecto SIG Quindío fase II Ingeniero Catastral y Geodesta, Analista y Desarrollador Proyecto SIG Quindío fase II. Ingeniero Catastral y Geodesta, Especialista en Sistemas de Información Geográfica. Coordinador Grupo Sistemas de Información Geográfica y Análisis Espacial, Instituto Geográfico Agustín Codazzi. E-mail:
[email protected]
Silverlight technology and GIS applications development Abstract This article points to analyze how focused technologies, for the development of rich applications (RIA), in this specific case the advantage that Microsoft´s Silverlight has disposed for transforming the old and traditional GIS applications, which were published on the web, into more friendly and efficient applications in performance terms. The discussion is centered on the Quindío geographic information system, which was developed using the technological tools mentioned before. In the article an evaluation is made, in topics like how the system has been growing through the time in parallel with the technological growth, making a detailed analysis in how the versioning of the application was realized, for reaching the actual version. Another technical fact under analysis is how was made the migration between the first and the actual version of the application that is being published, also all the elements that are related to the management of information into the current architecture. Key words GIS, Silverlight, ESRI.
Introducción
1. Evolución tecnológica
El avance tecnológico ha proporcionado a las diferentes áreas del conocimiento herramientas que ayudan a la consecución de objetivos específicos. Es así como la informática se ha convertido en un elemento esencial para el procesamiento y análisis de la información.
El SIG-Quindío surge por la necesidad de los entes administrativos y gubernamentales del departamento de resaltar los elementos espaciales, turísticos y de interés que conforman el territorio, además de tener a su disposición una herramienta capaz de brindarles la posibilidad del análisis de los diferentes ejes y temáticas que forman parte del plan de gobierno (ambiente, salud, educación e infraestructura), con el fin de optimizar los procesos que se adelanten en cada una de las diferentes áreas.
En las disciplinas relacionadas con la información geográfica, la computación se identifica como un elemento transversal para todos los procesos de análisis y procesamiento de información, con el fin de garantizar la optimización del proceso de toma de decisiones. El desarrollo tecnológico ha brindado la posibilidad de convertir los sistemas de información geográfica en una base sólida para el proceso de análisis de variables y la representación de estas en el espacio. Cuando se pretende realizar una aplicación -ya sea tipo web, escritorio, servicios web o de aplicaciones distribuidas-, surge la pregunta ¿qué tecnologías se deberían utilizar para cubrir todas las necesidades identificadas? Como primera medida, hay que comparar las diferentes opciones tecnológicas para saber cuál podría ser más eficiente y cuál se ajusta más a las exigencias de la lógica de negocio. Aunque no solo la tecnología define la creación de este software, también lo define el proceso de negocio que se vaya a implementar.
50
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
El sistema se desarrolla en la plataforma de ArcGIS, haciendo uso de un avance de la misma empresa productora del servidor ESRI, que fue “ArcGIS API for Microsoft Silverlight™/WPF™”. Dicho avance proporcionó el punto de partida para la elaboración y exploración de un nuevo tipo o concepción de SIG, dando ventajas en dos elementos base: presentación y desempeño. La visualización se vio mejorada con la utilización de las herramientas para la elaboración de aplicaciones RIA de Microsoft (Silverlight/WPF) puesto que se pudo tener la posibilidad de administrar, consultar y visualizar información a través de un visor que presentaba todos los elementos (geográficos y a nivel de interfaz) de una forma muy agradable para los usuarios, dejando atrás los estáticos sistemas que no permitían un despliegue muy amable de los contenidos.
La tecnología Silverlight y el desarrollo de aplicaciones SIG
Por otro lado, el desempeño de las aplicaciones se vio mejorado, ya que el esquema de funcionamiento cambió. Las aplicaciones SIG pasaron de ser clientes semiligeros a clientes ligeros, donde todas las operaciones se ven recargadas del lado del cliente, haciendo que muy pocos sean los procesos robustos del lado del servidor, que hacían de las aplicaciones convencionales un poco lentas si estas no tenían un diseño y patrones de desarrollo adecuados. Basándose en una arquitectura orientada a servicios (SOA), y cumpliendo con las características descritas anteriormente, los componentes de la primera versión del SIG-Quindío fase I se basaron en una arquitectura ▪▪ Microsoft Visual Studio 2008 ▪▪ .net framework 3.0.
▪▪ Silverlight 3 Tools for visual studio 2008. ▪▪ Expression Bend 3 SDK. ▪▪ ArcGIS Server 9.3.1. ▪▪ ArcGIS API for Microsoft Silverlight™/WPF™ version 1.2 En la Figura 1 se puede apreciar cómo funciona la aplicación SIG-Quindío fase I. Allí los archivos de mapa .mxd son insumo para que ArcGIS Server genere servicios web de mapa bajo el estándar de REST. Así, el aplicativo desarrollado con el API de ArcGIS para Silverlight consume los servicios que pueden ser de tipo operativos (consultas) o base (visualización). De esta manera, un cliente, por medio de un browser -ayudado por un plug-in o complemento- puede desplegar los contenidos de tipo Silverlight. Este es el flujo por el cual un cliente consume la aplicación, que se ve de la siguiente manera:
Figura 1. Arquitectura General Aplicación SIG-Quindío I
51
Figura 2. Aplicación SIG -Quindío fase I
Regresando a la idea principal de este escrito, se seguirá recorriendo la evolución con la que el SIG-Quindío se escala tecnológicamente y cómo continúa acomodándose a los avances informáticos. La fase I del sistema fue desarrollada con “ArcGIS API for Microsoft Silverlight™/WPF™” versión 1.2, pero para la fase II se realizó un cambio de versión en el API, migrando a la 2.1. Este hecho implicó que los componentes con los cuales fue desarrollada la aplicación fueran sometidos a un proceso de reingeniería. Los componentes para la segunda versión de SIG-Quindío fueron los siguientes: ▪▪ Microsoft Visual Studio 2010 ▪▪ .net framework 4.0 ▪▪ Silverlight 4 Tools for visual studio 2008. ▪▪ Expression Bend 4 SDK
52
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
▪▪ ArcGIS Server 10 ▪▪ ArcGIS API for Microsoft Silverlight™/WPF™ version 2.1 Al realizar este proceso, la arquitectura general de aplicación no sufrió cambio alguno. Los cambios más representativos son los que se enumerarán a continuación: ▪▪ Paneles móviles: En la versión 1 todos los paneles en donde se desplegaban los componentes del mapa, las herramientas de consulta, las herramientas generales y los resultados de las consultas eran estáticos y no permitían el redireccionamieno. En la nueva versión todos estos controles no tienen una posición fija y se pueden ajustar a determinado tamaño. Esto brinda más libertad a los diferentes usuarios del sistema y hace la aplicación más intuitiva en su uso.
La tecnología Silverlight y el desarrollo de aplicaciones SIG
▪▪ Controles integrados avanzados de navegación: En la versión 1, la navegación se veía limitada a las funciones básicas que brindaba el API: alejar, acercar, zoom anterior, zoom posterior, full extent. En esta nueva versión, además de estas operaciones, proporcionan controles que permiten determinar la rotación en diferentes planos del control de mapa y manejar el zoom en diferentes niveles por medio de barras, haciendo que la experiencia de navegación en el visor sea más simple y amable para los usuarios. ▪▪ Impresión de mapa o salida gráfica: En la versión anterior este era uno de los mayores inconvenientes, ya que propiamente no existe una librería que controle los eventos de captura de la imagen de un mapa o los layers gráficos que se generan de las consultas sobre este. Por lo anterior, los diferentes desarrolladores tenían que elaborar sus propias salidas de una manera más compleja. Los programadores debían incrustar imágenes capturadas de mapa y estas eran embebidas dentro de otra imagen, lo que hacía que estas salidas no fueran dinámicas ni recursivas. A eso se suma que en la mayoría de las ocasiones no funcionaban, pues realizaban las transacciones entre el
Figura 3. Paneles móviles, Aplicación SIGQuindío fase II
Figura 4. Controles integrados avanzados de navegación, Aplicación SIG-Quindío fase II.
53
Figura 5. Controles integrados avanzados de navegación, Aplicación SIGQuindío fase II.
cliente y servidor por medio de servicios web de Silverlight, que para esta versión del API eran bastante inestables. En esta nueva versión se cuenta con una herramienta de impresión ya implementada, en la que se solucionan bastantes inconvenientes de los ya mencionados. ▪▪ Consultas: Las consultas en la versión anterior, al ser desarrolladas, no podían ser muy personalizables por la imposibilidad de obtener todos los campos de una capa contenida en un servicio. Esto obligaba a utilizar, de nuevo, servicios web Silverlight de consulta a las bases de datos. Allí existían algunas tablas que contenían la información y por medio de servicios, que contenían la lógica de las diferentes consultas, se podían obtener los valores de los campos de una capa para efectuar una búsqueda. En la fase actual, de una manera más simple, solo haciendo uso de una propiedad en una capa contenida en un servicio se pueden listar todos los campos que le correspondan. Sumado a lo anterior, existe un nuevo esquema de consulta a tablas de información alfanumérica que evitaría el uso de servicios web de tipo Silverlight, es “query related tables”. Esto permite asociar a las
54
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
capas geográficas en la base de datos espacial, para consultar tablas con información de tipo no espacial (alfanumérica), por medio de relationships. Dichas relaciones se ven reflejadas en los servicios de ArcGIS Server, y de esta manera se puede acceder a las diferentes tablas de manera simple.
2. Migración SIG-Quindío fase II pretende mantener la concepción inicial del sistema, haciéndolo más relevante en la parte visual y más robusto en lo funcional, actualizando las herramientas tecnológicas utilizadas en la fase inicial. Técnicamente hablando sobre estas tecnologías, la fase anterior fue construida bajo el framework .Net; además, se utilizó Silverlight 3 y Productos de ArcGIS como ArcGIS Server 9.3.1 para la publicación de servicios, el cual los consumía la aplicación mediante otro producto de ArcGIS llamado ArcGIS API for Microsoft Silverlight/WPF para la realización de consultas espaciales. Para esta nueva fase, las tecnologías usadas fueron las mismas Silverlight con la versión 4 integrada con el am-
La tecnología Silverlight y el desarrollo de aplicaciones SIG
biente de desarrollo Visual Studio 2010, ya que por ser una tecnología tipo RIA le da a la aplicación una mejor experiencia visual al usuario, como ya se había mencionado en el capitulo anterior. A pesar de que Silverlight es un conjunto reducido de la plataforma de .Net, se pueden lograr aplicaciones realmente ricas en la capa de presentación para cualquier proyecto de software. A continuación se muestra la arquitectura de Silverlight. También se decidió continuar utilizando el producto de ArcGIS, ArcGIS API for Microsoft Silverlight/WPF versión 2.1, el
cual se integra con el ambiente de desarrollo Visual Studio 2010. Esta API proporciona una variedad de clases que hacen que el tiempo de desarrollo sea más eficiente. A continuación se muestra el diagrama de clases de dicha API. Otro producto de ArcGIS que se decidió continuar utilizando fue el ArcGIS Server versión 10 para la publicación de servicios, con el fin de que la aplicación los pueda consumir. Hay otras herramientas que se necesitan para poder realizar un SIG en Silverlight en Visual Studio 2010 como son Silverlight4_Tools, Silverlight_4_Toolkit y BlendSLSDK_es.
.Net para Silverlight WPF
Datos LINQ XLINQ XML
WCF
Controles Diseño Enlace de datos Edición
DLR Iron Python Iron Ruby Jscript
REST RSS/ATOM SOAP
Biblioteca MS AJAX
POX JSON
Motor de JavaScript
BCL Genéricos Colecciones Criptografía Subprocesos
Motor de ejecución CLR XAML Parte principal de la interfaz de usuario Vector Texto Animación Imágenes
Entradas Teclado Mouse Entrada manuscrita
DRM Multimedia
Multimedia
Deep Zoom
VC1 H.264 WMA AAC MP3
Imágenes
Parte principal de la presentación
Host del explorador Pila de funciones de red integrada
5
Integración con DOM
Servicios de aplicación
Instalador
Figura 6. Arquitectura Silverlight.5
http://msdn.microsoft.com/es-es/library/bb404713%28v=vs.95%29.aspx, Arquitectura Silverlight. Consultado el 14 de julio de 2011.
55
ArcGIS API for Microsoft Silverlight/WPF 2.1 - Overview OMD
Layers
Layer
DynamicLayer
TileLayer
DynamicMapServiceLayer
TileMapServiceLayer TileLayer
ArcGISFiledMapServiceLayer Tileinfo
Lod
WmsLayer
OpenStreetMapLayer
ITemporalRenderer
Bing
TemporalRenderer
ClassBreaksRenderer
Transform
TimeClassBreaksAger
ClassBreakinfo
Iteminfo
Graphic
Clusterer
Editor EditResults BeginEditEventArgs EditException
GraphicCollection
Field
Domain
PictureFillSymbol
TextSymbol FlareSymbol
Geometry
SpatialQueryAction ToggleLayerAction
LinkSymbol SimpleLineSymbol
Geometry
MultiPoint
MapPoint
ShowCoordinatesBehavior MaintainExtentBehavior
CartographicLineSymbol
Polyline
Polygon
Envelope
PointCollection
TaskBase
ServiceException
OutFields
RelationshipEventArgs RelationshipParameter RelationshipResult QueryEventArgs FeatureSet
Identify Task
IdentifyEventArgs
ImageServiceidentifyEventArgs ImageServiceidentifyParameters ImageServiceidentifyResult
Addres
GPLong Jobinfo
FindResult
Locator
Mapimage
FindEventArgs
AddresCandidate
AddresTolocationParameters AddresTolocationEventArgs
JoibinfoEventArgs GPMessage GPParameterEventArgs GPRasterData
GPLinearUnit
RouteEventArgs
DirectionsFeatureSet
DirectionsFeatureSet RouterEventArgs RouterClosestFacilityParameters RouterServiceAreaParameters GeometryService
GPResultImageLayerEventArgs
GPResultImageLayerEventArgs
RouteTask RouteParameters RouteResult
GPfeatureRecordSetLayer GPDataFile
AddresEventArgs ImageServiceidentifyTask
GPLong
GPExecuteResults GPResultImageLayer
LayerOption
QueryCountEventArgs
GPParameter
GPString
GPDouble
FindParameters
GPExecuteCompleteEventArgs JobinfoEventArgs
IdentifyResult
TimeOption
GPBodean GPDate
IdentifyParameters
FindTask
Geoprocessor
TaskFalledEventArgs
Query
56
SimpleFillSymbol
PictureMarkerSymbol
RangeDomain
ZoomToAction PanToAction ZoomToLayerAction
FillSymbol
SimpleMarkerSymbol
CodedValueDomain
UpdatefeatureLayerAction
Symbol
MArkerSymbol
FeatureTemplate
FeatureType
ClearGraphicsAction MeasureAction
6
Symbols
ClustererEventArgs
Behaviors\Actions
Tasks
LayerCollection WebMercator
DictionaryChangedEventArgs
FeatureLayerinfo
ConstraintExtentBehavior
Draw
SpatialReference
TimeExtent
GraphicMouseEventArgs
EndEditEventArgs
ZoomToFullExtentAction
ScalleBar
GraphicMouseButtonEventArgs
AttachmentResult
Relationship ValidationException
ReadlineAction
Map
ProgressEventArgs DrawEventArgs
FlareClusterer
EditEventArgs
EditResultitem
ProgressBar
ExtentEventArgs VertexAddedEventArgs
GraphicClusterer
Attachmentinfo
MapTip
MagnifyingGlass
Magnifier Bookmark
Controls
Graphics
Editing
FeatureDataGrid
Document
ColorRange OpacityRange SizeRange
OverViewMap Toolbar
FeatureDataForm TimeSlider
InfoWindow
WebMap
EditorWidget Navigation
AttachmentEditor
Legend
Rampinterpolator
UniqueValueinfo
Figura 7. Diagrama de clases de ArcGIS API for Silverlight6
Toolkit
Symbolinterpolator
Rendererinfo
Query
Legenditeminfo
Geocoder
Routing
TimeClassBreakinfo
UniqueValueRenderer
Km/Layer
LayerDefinition
Layerinfo
LayerLegendinfo
SimpleRenderer
FeatureLayer
GeoRssLayer
ArcGISimageServiceLayer ArcGISDynamicMapServiceLayer
Renderers
Change
HeatMapLayer
GPSResultimageLayer
MosaicRule RenderingRule
Renderer
GraphicsLayer
ElementLayer
AreaAndLengths CutEventArgs
BullerPArameters
GeometryEventArgs
DistanceEventArgs DensityParameters GeometryRelationPair DistanceParameters OffsetParameters
GeneralizerParameters
GPMultiValue
http://help.arcgis.com/en/webapi/Silverlight/help/0166/pdf/ArcGISSilverlightOMD_Overview.pdf . Modelo de clases del API de Silverlight de ArcGis. Consultado el 14 de julio de 2011.
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
La tecnología Silverlight y el desarrollo de aplicaciones SIG
Adicionalmente, ArcGIS da a conocer ejemplos que muestran la utilización de dicha API; también ofrece una galería de código, que es un conjunto de plantillas con el que se pueden desarrollar aplicaciones. Para esta nueva fase se escogió una de estas; al escogerla se tuvieron en cuenta aspectos importantes como el tiempo de aprendizaje de la arquitectura y el lenguaje de desarrollo en que se encontraba hecha la plantilla.
La plantilla que se utilizó fue Configurable Silverlight Template Viewer for ArcGIS 2.17, estaba desarrollada mediante el lenguaje C Sharp y a su vez ofrecía una serie de funcionalidades que encajan con lo que se quería para el aplicativo de esta nueva fase. Haciendo un estudio a fondo de esta plantilla, se encontró que la configuración de widgets, de servicios base y servicios de la aplicación la realizaban mediante un archivo de configura-
7
ción XML, esto hace que la aplicación sea más entendible al desarrollador. También se encontró que dicha plantilla era extensible a cambios, es decir, que un desarrollador pueda modificarla según los requerimientos. Para dicho proyecto se hicieron cambios de tipo visual y funcional a esta plantilla. A continuación se muestra la plantilla original: Tomando como base esta plantilla (Figura 8), los cambios realizados fueron los siguientes: ▪▪ La eliminación del TaskBar, ubicado en la parte superior de la plantilla original. En lugar de este, se sustituyó por un nuevo elemento llamado CollapsiblePanel, con el fin de dar mayor espacio al visor.
Figura 8. Plantilla original
http://www.arcgis.com/home/item.html?id=67f62c5c30cc4b3ca942068e404c442c . Link para descargar la plantilla base de los proyectos de Silverlight. Consultado el 14 de julio de 2011.
57
Panel no expandido
Figura 9. Panel no expandido, Aplicación SIGQuindío fase II
Panel expandido
Figura 10. Panel expandido, Aplicación SIGQuindío fase II
58
También se utilizó el control CollapsiblePanel para el Panel de Herramientas y Panel de Consultas localizados en la parte derecha de la plantilla, como se muestra a continuación:
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
La tecnología Silverlight y el desarrollo de aplicaciones SIG
Figura 11. Panel de herramientas y panel de consultas
▪▪ El control CollapsiblePanel viene acompañado por el elemento SquareMenuButton, como se ve en las figuras anteriores, el cual se separó de la plantilla original (Figura 8). Los botones que se encuentran en el visor son Temáticas, Herramientas, Consultas.
▪▪ La separación de componentes del Taskbar de la plantilla original, que son adicionados a la plantilla modificada. Dichos elementos se encuentran en la parte derecha del visor modificado, como se muestra en las siguientes imágenes: Figura 12. Elementos del Taskbar, plantilla original
59
Figura 13. Elementos del Taskbar, aplicación SIGQuindío fase II.
▪▪ Separación y modificación del árbol del Taskbar donde se encuentra la funcionalidad de paneo, acercar y alejar. Y la creación de nuevos árboles que se encuentran Figura 14. Elementos del árbol del Taskbar, plantilla original.
60
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
en el panel de herramientas. A continuación se muestra la ubicación de estos árboles tanto en la plantilla original como en la modificada:
La tecnología Silverlight y el desarrollo de aplicaciones SIG
▪▪ La funcionalidad de consulta espacial se encontraba en el mismo widget de consulta avanzada de la plantilla original; para la plantilla modificada se separó esta funcionalidad, gene-
rando un nuevo widget, como a continuación se muestra en la Figura 16, el cambio realizado tanto en la plantilla original (lado izquierdo) como en la modificada (lado derecho):
Figura 15. Elementos del árbol del panel herramientas, aplicación SIG-Quindío fase II
Figura 16. Funcionalidad de consulta espacial, plantilla original (lado izquierdo), Aplicación SIG-Quindío fase II (lado derecho)
▪▪ Se realizó un cambio al elemento Taskbar para utilizarlo como un componente flotante para los bo-
tones de temáticas, herramientas y consultas; en la siguiente imagen se ilustra el cambio realizado:
Figura 17. Componente flotante
61
▪▪ Incorporación de nueva funcionalidad de consulta espacial por buffer, ya que la plantilla original no tenía
esta funcionalidad. A continuación se muestra el resultado de dicha funcionalidad:
▪▪ Creación de componente de contador de visitas y plano de proyección, ubicados en la parte inferior derecha
e izquierda de la plantilla modificada, respectivamente. A continuación se muestra esta adición al visor:
Figura 18. Consulta por buffer, aplicación SIG-Quindío fase II
Figura 19. Componente contador de visitas y plano de proyección
62
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
La tecnología Silverlight y el desarrollo de aplicaciones SIG
▪▪ Funcionalidad de activación y obtención de valores de un campo en específico de una capa cuando se escogen los parámetros para realizar una consulta
▪▪ Para los resultados de las consultas se cambió la representación de la información mediante una tabla, como se muestra a continuación:
Figura 20. Activación y obtención de valores de un campo en específico de una capa
▪▪ Otra funcionalidad que se modificó fue la de capturar coordenadas, pues esta capturaba la coordenada geográfica, y el servicio base que contenía el elemento mapa llevaba un sistema de referencia 4326. Lo que se pretendía
era capturarla en coordenadas planas con un sistema de referencia 3115 que comprende la zona del Quindío. Esto se solucionó realizando la proyección del punto capturado, mediante el siguiente código en lenguaje C Sharp:
Figura 21. Representación de los resultados de una consulta, plantilla original (lado derecho), aplicación SIG-Quindío fase II (lado izquierdo)
63
El resultado es el siguiente:
Figura 22. Resultado de la proyección del punto capturado
A continuación se muestra la plantilla modificada para el proyecto:
Figura 23. SIG-Quindío fase II (modificada)
3. Silverlight y acceso a datos Silverlight es una tecnología que ejecuta un programa local (cliente) servido a través de la red. Esta tecnología no permite el acceso directo a bases de datos a través de la utilización de las clases de ADO.NET; por esta razón, la principal opción para obtener los datos es a través de servicios, aunque también existen otras maneras de recuperar dicha información. Las principales opciones para la obtención de datos son las siguientes:
64
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
▪▪ Servicios web: Silverlight puede usar servicios de asp.net o WCF (Windows Communication Foundation) para acceder a la información que se encuentra alojada en una base de datos. ▪▪ Sockets ▪▪ Archivos: Esta opción se realiza mediante los cuadros de diálogo OpenFileDialog o SaveFileDialog, activados por un usuario; de esta manera se carga o guarda un archivo en su equipo local.
La tecnología Silverlight y el desarrollo de aplicaciones SIG
Por medio de los OpenFileDialog o SaveFileDialog se puede editar y guardar la información contenida en alguna parte del equipo local, ya que con los métodos internos de la librería System. io.* permiten crear y leer archivos y dejarlos en memoria, pero no permiten el acceso a la lectura de los archivos del sistema ni modificarlos, a menos que se estén utilizando los OpenFileDialog o SaveFileDialog.
3.1 Implementación del acceso de datos con los SIG, utilizando tecnología Silverlight. Como ejemplo se va a explicar el proceso de funcionamiento del aplicativo SIG-Quindío fase II desarrollado en asp.net con Silverlight 4. Este aplicativo contiene una serie de XML que permiten la lectura, obtención de datos y asi mismo la propia construcción del aplicativo. El XML principal de configuración contiene diferentes servicios web para obtener la diversa información y construcción de mapas; además, contiene información de menús y botones que son parte del visor geográfico. Como bien se sabe, los XML están formados por un encabezado que indica el tipo de versión que utiliza y un encoding para manejar un estándar de codificación de caracteres especiales en el XML; enseguida va el cuerpo del XML, que es la segunda parte importante que está formada por una raíz, elementos, atributos, nodos y demás contenido de información necesaria.
to, nodo, atributo que contenga en el XML tendrá sus métodos, propiedades y variables que son indispensables para la obtención de datos y en algunos casos información adicional que permiten la construcción de diferentes elementos que se necesitan observar desde la aplicación Silverlight. El usuario entra a la aplicación desde algún sitio de la red y empieza a realizar peticiones, hacia el contenido de la carpeta web, en la de los componentes de Silverlight puede hacer uno o varios llamados a diferentes archivos XML, donde algunos XML contienen información básica y otros información para realizar enlaces de consulta a través de servicios. Cuando un XML realiza los enlaces a través de servicios, estos retornan la información suficiente para visualizar el mapa y los datos que están asociados a este. A continuación se
Figura 24. Open File Dialog
Figura 25. Proceso petición de datos
El proceso de obtener datos tanto para la consulta y construcción del mismo visor parte de varios ambientes, en la web contiene toda la información que se solicita desde los componentes de Silverlight. Cada XML que esté en la carpeta web de la aplicación tiene su propio mapeo en las clases contenidas en las carpetas de los componentes de Silverlight, es decir, que por cada elemen-
65
muestra el flujo de la información desde la petición del cliente y el retorno de resultados. A continuación se muestra un pequeño fragmento del XML de configuración principal (Figura 26) para realizar las peticiones a través de uno o varios servicios web para cargarlos en el visor geográfico.
En el fragmento se observa un elemento que se llama LivingMaps, que a su vez contiene varios elementos Layer que serían los nodos hijos; cada nodo de estos contiene información del servicio como un título, el tipo de servicio, si va a tener visibilidad inicial y, lo más importante, la URL donde se puede obtener la información del servicio.
La estructura de este fragmento, como se mencionó anteriormente, está mapeada en una clase contenida en la carpeta de los componentes de Silverlight, donde permite el llamado de es-
tas propiedades para luego obtener la información asociada al servicio que se está necesitando. Ahora se muestra la forma de despliegue de datos en la siguiente figura.
Figura 26. Fragmento archivo .XML
Figura 27. Consulta de datos SIG-Quindío fase II
66
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
La tecnología Silverlight y el desarrollo de aplicaciones SIG
Cada elemento que se ve se obtiene a través de los XML, desde el banner hasta el objeto más sencillo, alineación, color, tipo de letra, etc., en la ventana de la parte superior derecha de la Figura 27; es un despliegue de una consulta que también forma parte de un grupo de nodos de un elemento de configuración del XML, y cada lista desplegable son consultas que se realizan al servicio; por ejemplo, existe el servicio ambiental, que contiene una serie de capas, pero estas a su vez están agrupadas, entonces los métodos funcionales creados detectan cuáles son las capas y cuáles son los grupos, logrando simplificar la información de una forma más organizada en la ventana de consulta. A medida que se desglosa la información básica del servicio llega a un punto donde realiza una petición de los datos de una consulta general que puede estar en una base de datos geoespacial o cualquier otro medio, siempre y cuando sea a través de un servicio.
4. Proyecciones En SIG-Qunidío fase I a fase II, la parte enriquecida mejora con un alto valor debido a la evolución de Silverlight, ya que Microsoft lanza al mercado nuevas actualizaciones de sus productos mejorando los efectos visuales y dinámicos para la representación de datos. ¿Qué se esperaría para una próxima fase? El mejoramiento de herramientas que puedan visualizar la información en imagen tridimensional como los componentes que forman parte de un mapa geográfico en cuanto a relieves, desniveles de suelos y edificios, movimientos de la corteza terrestre de la tierra, entre otros. Con los componentes futuros de Silverlight se pueden esperar más funcionalidades fuertes como nuevas animaciones con efectos de alto impacto, nuevas formas para realizar consultas y más llamativas, en el despliegue de la información.
Microsoft lanzará su nueva actualización de Silverlight con la versión 5 y ArcGIS; ya lanzó su nueva versión 2.2 de su producto ArcGIS API for Silverlight, el que presenta nuevas características, mejorando su aspecto visual y funcional para futuras aplicaciones web.
Conclusiones ▪▪ La utilización de estas tecnologías permite al usuario tener una mejor experiencia visual, amigable y entendible de la aplicación. A diferencia de otros visores, SIG-Quindío fase II realizado en Silverlight muestra un enriquecimiento gráfico que permite a los usuarios detectar mucho más rápido los resultados. ▪▪ Este tipo de tecnología nos permite un nivel más de seguridad, pues su uso impide ver el código HTML desde cualquier browser, así que no se puede manipular la visualización del aplicativo ni crear copias para luego modificarlas. ▪▪ Gracias a lenguajes de enmarcación como XML se puede manipular el contenido dinámicamente para obtener la información de este o desde servicios, para luego mostrarla al usuario a través de la aplicación realizada en Silverlight ya sea gráficamente o en textos. ▪▪ Una de las observaciones en el momento de realizar un SIG es la de definir el sistema de referencia para los servicios base, ya que si se generan varios servicios con diferentes sistemas de referencia, el control del mapa de la aplicación presentaría problemas en el despliegue de los servicios. ▪▪ Durante la migración del aplicativo se pudo demostrar el nivel de implementación de la plantilla escogida, agregando otros componentes que nos ofrece el API de ArcGIS y con esto se obtuvieron los cambios apropiados según las necesidades del usuario final.
67
Referencias bibliográficas http://help.arcgis.com/en/webapi/silverlight/index.html Centro de ayuda para el API de Silverlight sw ArcGIS. Útima actualización: 22 de febrero de 2011. http://www.silverlight.net/.Sitio oficial de Microsoft Silverligh. Última actualización: agosto de 2010. Documentación. Professional Silverlight 4, Jason Beres,Wiley Publishing Inc, agosto de 2010. Documentación. Silverlight 4 in Action, Pete Brown, Manning Publications Co, septiembre de 2010. Documentación. Pro Silverlight 4 in C#, Matthew MacDonald Apress, 2010. Documentación. Silverlight 4 Unleashed, Laurent Bugnion, Pearson Education, 2011.
68
Tecnologías geoespaciales al servicio del desarrollo territorial. Análisis Geográficos Nº 49
La tecnología Silverlight y el desarrollo de aplicaciones SIG
69