Capítulo 3: SIG basado en Web para el análisis visual de datos meteorológicos de Villa Clara
3.3 Selección de la tecnología utilizada
El software libre es una alternativa para la globalización corporativa exclusiva que tiene como objetivo acabar con la monopolización de la tecnología y puede llevar a un modelo nuevo de economía en este sentido. Debido a la eficacia del uso de las herramientas de software que en la actualidad se puede hallar en casi todas las esferas del desarrollo moderno, hace que sean esenciales para la humanidad. El software libre, logra eliminar todas las diferencias, poniendo a todos los usuarios en las mismas condiciones.
79
3.3.1 ¿Por qué utilizar software libre?
Con el transcurrir de los años, el paradigma del código libre ha demostrado que puede ser tan organizado y eficiente como el modelo de desarrollo del software propietario. Este prototipo de software ha alcanzado importantes ventajas ya que constituye la mayor transferencia de conocimiento llevada a cabo entre los países ricos y los que se encuentran en desarrollo (Chirinov 2005)
Un punto importante, a señalar, es que en el proceso de desarrollo de este tipo de programas no existen presiones comerciales, ni fechas límites ni contratos que cumplir. Los productos salen adelante cuando se considera que están listos, lo que hace que sólo el código de mejor calidad pueda llegar al consumidor final. También evita tener que pagar el alto costo de licencias de software, lo que eleva el costo total de las computadoras.
Otras de las razones para el uso del Software Libre son las siguientes: • Abierto: Se puede usar el código de los programas y modificarlo.
• Auditable: El software libre se puede inspeccionar al disponer de su código fuente.
• Ayuda: Existen innumerables grupos de usuarios que se ayudan entre sí a través de Internet. Es decir si te surge un problema es muy probable que a otras personas les haya ocurrido y su ayuda será la más valiosa que puedas encontrar.
• Bajo costo: De estudios realizados para empresas se han encontrado reducciones de hasta un 30%.
• Colaborativo: El modelo de desarrollo de software libre es colaborativo y participativo. Todo lo puedes modificar o criticar.
• La copia es legal: es legal repartir software libre a otras personas. Usar un sistema libre evita en gran medida los problemas de la piratería. Si lo natural es compartir tus programas con otras personas, con software libre es legal.
• Libre: Entre otras cosas eres libre para usar, modificar, regalar o vender los programas de software libre.
80
3.3.2 ¿Por qué utilizar NetBeans?
Como entorno de desarrollo se seleccionó la versión 6.1.7 de NetBeans, una plataforma de desarrollo libre e integrado con Java, a la cual se le pueden añadir diversos plugins que permiten extender la funcionalidad del entorno y que son de gran ayuda para el desarrollador. En principio, se instala con el plugin Visual Web Pack (VWP), que incluye herramientas que facilitan el desarrollo de aplicaciones Web en J2EE.
NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo.
Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.
El paquete VWP que nos brinda el NetBeans permite rápida y visualmente, construir aplicaciones web estándar, incluyendo soporte para AJAX y componentes JSF, este paquete fue utilizado en el trabajo.
Este IDE también viene con UML integrado y soporta ingeniería inversa, por lo que se pueden hacer diagramas de cualquier tipo desde el código fuente. También se puede generar un nuevo proyecto UML y generar código a partir del diagrama de clases, es decir, se puede utilizar UML hacia ambos lados, desde y hacia el entorno de programación, lo cual es muy útil.
81
3.3.3 ¿Por qué utilizar PostgreSQL?
PostgreSQL entra en la categoría de Base de Datos identificadas como objeto-relacionales, contiene características que son propias del mundo de las bases de datos orientadas a objetos, pero no es una Base de Datos orientado a objetos y de de los mejores sistemas de bases de datos comerciales. Es libre y su código fuente completo está disponible.
Fue el pionero en muchos de los conceptos existentes en el sistema objeto-relacional actual, incluido, más tarde en otros sistemas de gestión comerciales. PostgreSQL es un sistema objeto- relacional, ya que incluye características de la orientación a objetos, como puede ser la herencia, tipos de datos, funciones, restricciones, disparadores, reglas e integridad transaccional. A pesar de esto, PostgreSQL no es un sistema de gestión de bases de datos puramente orientado a objetos. Soporta distintos tipos de datos, incorpora una estructura de datos array, además de funciones de diversa índole: manejo de fechas, geométricas, orientadas a operaciones con redes, etc.
PostGis es una extensión al sistema de base de datos objeto-relacional PostgreSQL. Permite el uso de objetos GIS (Geographic information systems). PostGis incluye soporte para índices GiST
basados en R-Tree, y funciones básicas para el análisis de objetos GIS. Con PostGIS se pueden usar, todos los objetos que aparecen en la especificación OpenGIS como puntos, líneas, polígonos, multilíneas, multipuntos, y colecciones geométricas. Ésta extensión fue usada para almacenar y georeferenciar los datos meteorológicos.
Además Postgre es extensible, multiplataforma, está diseñado para ambientes de alto volumen, puesto que usa una estrategia de almacenamiento de filas llamada MVCC para conseguir una mucho mejor respuesta en ambientes de grandes volúmenes. Presenta un alto grado de estabilidad y confiabilidad.
82
3.3.4 ¿Por qué utilizar GeoServer?
Aunque este servidor está desarrollado en Java, resulta ser bastante rápido cuando se configura correctamente, y además está avanzando a pasos agigantados versión tras versión. Es software libre, con una gran comunidad detrás, que suelen dar soluciones a todos los problemas encontrados. Aparte de ser “relativamente sencillo” su manejo, GeoServer está orientado a Servicios e integra a través de WVS técnicas de visualización científica para datos multiparamétricos, apropiadas para el tipo de datos usados en nuestro problema. Además, GeoServer presenta una estructura modular, permite manipulación de varios formatos de datos y el trabajo con datos vectoriales y ráster.
3.3.5 ¿Por qué utilizar GWT?
Google Web Toolkit o GWT (por sus siglas en inglés) es un framework creado por Google. GWT podría ser el próximo nivel en el desarrollo del JavaScript: en lugar de escribir en JavaScript, podemos escribir en Java. Es compatible con varios navegadores, lo cual es notorio ya que cada navegador suele necesitar código específico para lograr un front-end correcto en una aplicación web.
Con GWT creamos aplicaciones JavaScript programando en Java y compilando el código a un JavaScript altamente optimizado, HTML, CSS. Este framework proporciona una librería de diseños, elementos de formulario y otros componentes para crear aplicaciones Web. En lugar de añadir JavaScript/AJAX encima del HTML y CSS en bruto, podemos usar componentes de alto nivel de Java para que GWT lo compile a un JavaScript independiente del navegador, y que probablemente no tengamos ni que depurar.
83 • Componentes gráficos dinámicos y reusables: los programadores pueden usar clases prediseñadas para implementar comportamientos que de otra manera consumirían mucho tiempo, como arrastrar y soltar o menús en árbol.
• Simple mecanismo RPC.
• Gestión del historial del navegador web. • Soporte para depurado de Java.
• Control de diferentes características del navegador. • Integración con JUnit.
• Internacionalización.
• Los desarrolladores pueden mezclar código escrito en JavaScript dentro del código Java usando la Interfaz Nativa JavaScript (JSNI).
• Soporte para las API's de Google (inicialmente, soporte para Google Gears). • Es de código abierto.
Los desarrolladores pueden diseñar y desarrollar sus aplicaciones orientadas a objetos. Errores comunes en JavaScript, como la discrepancia de tipos de datos, son controlados en tiempo de compilación. El código JavaScript generado puede ser ofuscado para optimizar el rendimiento. Existen un numeroso conjunto de bibliotecas desarrolladas por Google y terceros que amplían las funcionalidades de GWT.
3.3.6 ¿Por qué utilizar EXT?
Es una biblioteca Java para crear aplicaciones RIAS de internet con (GWT). A diferencia de GWT; Ext, no tiene que lidiar con compiladores, puesto que ha sido enfocado directamente a la tarea de perfeccionar la interfaz visual, posibilitando la construcción de aplicaciones JavaScript.
84
GWT-Ext
Es un wrapper que permite crear una aplicación Ext JS desde GWT. Según las palabras de Sanjiv Jivan, el creador de GWT-Ext, esta biblioteca permite acceder a la funcionalidad de Ext desde una aplicación GWT, resolviendo uno de las limitaciones más importantes de GWT: la austeridad y poca sofisticación de sus componentes visuales básicos. Con esto se obtiene la posibilidad de crear aplicaciones ricas en java y además poder hacer uso dentro de ellas de toda la riqueza visual de los componentes de Ext, una combinación realmente interesante para el desarrollo de RIA's AJAX.
Ext es la mejor biblioteca JavaScript para crear aplicaciones AJAX similar a las de escritorio, mientras que GWT es una bendición para los desarrolladores de Java que tienen que lidiar con JavaScript. El problema actual de GWT, es que su desarrollo ha sido centrado fundamentalmente en el compilador, y por eso es que aún no se cuenta con una suite de widgets muy prometedora. A diferencia de GWT, Ext, no tiene que lidiar con compiladores, puesto que ha sido enfocado directamente a la tarea de perfeccionar la interfaz visual, posibilitando la construcción de aplicaciones JavaScript.
3.3.7 ¿Por qué utilizar Jakarta Tomcat?
Se utilizó además el Tomcat llamado Jakarta Tomcat o Apache Tomcat es un servidor web con soporte de servlets y JSPs, puede funcionar como un servidor web por sí mismo, está escrito en Java por lo que funciona en cualquier sistema operativo que disponga de la maquina virtual de Java.
85
Conclusiones Parciales.
• Como resultado de un profundo análisis de las tecnologías existentes, se escogieron aquellas que permiten desarrollar un ambiente de trabajo uniforme, para integrar técnicas de visualización científica en aplicaciones Web y SIG, empleando mecanismos de comunicación eficientes entre los clientes y el servidor. Se describió el proceso de selección y configuración de estas tecnologías
86
Conclusiones
• Como resultado de un profundo análisis de las tecnologías existentes, se escogieron aquellas que permiten desarrollar un ambiente de trabajo uniforme, para integrar técnicas de visualización científica en aplicaciones Web y SIG, empleando mecanismos de comunicación eficientes entre los clientes y el servidor. Se describió el proceso de selección y configuración de estas tecnologías
87
Recomendaciones
Mejorar las posibilidades de interacción con las técnicas de visualización científica.
88
Referencias Bibliográficas.
A. Inselberg, B. i. (1990). Parallel coordinates: A tool for visualizing multi-dimensional geometry. San Francisco.
Almeida, E. (2004) Gephi.
Alvarez, M. A. (2000). "Frontpage." Alvarez, M. A. (2002) Dreamweaver. Alvarez, M. A. (2002) Que es AxtiveX?
Alvarez, M. A. (2002) Qué son los Applets de Java? Andrews, D. F. (1972). "Plots of high dimensional data." Andrews, K. (2005). "Information Visualization."
Brodlie, K. M. (1992). "Visualization modeling and simulation."
Charles Hansen, C. R. J. (2005). The Visualization Handbook, Elsevier. Chirinov, R. (2005). {Codigo abierto vs. Codigo propietario.
Chorley, L. (1987). Handling geographic information: report to the Secretary of State for the Environment of the Committee of Enquiry into the Handling of Geographic Information London, H.M.S.O.
Chris North, B. S. (2000) Snap-Together Visualization: A User Interface for Coordinating Visualizations via Relational Schemata. 128--135
Clarke, K. (1990). Analytical and Computer Cartography, Prentice Hall Professional Technical Reference.
Cleveland, W. S. (1993). "Visualizing Data." Summit New Jersey. Cowen, D. (1989). "lectura NCGIA ".
D. Gershon , N. C. (1994) Is visualization really necessary: The role of visualization in science and medicine.
89 Dianne Cook, S., Jargen Majurea, J. James , Noel Cressieb (1997). Dynamic graphics in a GIS: more examples using linked software.
Erick, S. G. (2000). "Visualizing Multi-Dimensional Data." G. Grinstein , R. B. (1989) The Visualization of Scientific Data. Keim, D. A. (2002). Information Visualization and Visual Data Mining.
LUBOS MITAS, W. M. B., HELENA MITASOVA (1997). Role of dynamic cartography in simulations of landscape processes based on multi-variate fields.
Matlab (1994). "Manual de Matlab."
Oves, R. (2010). "Modulo de visualización de datos multiparamétricos para GeoServer." pymecrunch.com (2008). "Que es y para qué sirve un gestor de contenidos." from
http://pymecrunch.com/que-es-y-para-que-sirve-un-cms-es-decir-un-gestor-de-contenidos. Q. Cui, M. W., E. Rundensteiner (2006). Visualization and Data Analysis, Part of IS\&T/SPIE Symposium on Electronic Imaging. San Jose, California, USA.
R. Burger, H. H. (2007) Visualization of multi-variate scientific data.
S.R. Laramee, e. a. (2004) The State of the Art in Flow Visualization: Dense and Texture-Based Techniques in Computer Graphics Forum.
Salgado Milan, E. (2003). "Visualization Techniques."
Sevilla, G. d. I. d. S. U. d. (2004) Introduccion_a_las_Aplicaciones_Web. 7
Shneiderman, B. (1996) The Eyes Have It: A Task by Data Type Taxonomy for Information Visualization.
Theisel, H. (2000) Scientific Visualization.
Treinish, L. (1998). "Task-specific visualization design: a case study in operational weather forecasting." Task-specific visualization design: a case study in operational weather
forecasting.
W. Muller, H. S. (2000) Visualization modeling and simulation.
Ward, M. (2002). "A taxonomy of glyp placement strategies for multidimensional data visualization." 1.
90 Ware, C. (2004). Information Visualization. Perception for Design, Morgan Kaufmann.
Xie, Z. a. H., Shiping and Ward, Matthew O. and Rundensteiner, and E. A (2006). "Exploratory Visualization of Multivariate Data with Variable Quality."
Yang, J. a. P., Anilkumar and Huang, Shiping and Mehta, Nishant and M. O. a. R. and Ward, Elke A (2003). "Value and Relation Display for Interactive Exploration of High Dimensional