• No se han encontrado resultados

Aplicación para analizar y procesar tramas GPS utilizando software libre

N/A
N/A
Protected

Academic year: 2020

Share "Aplicación para analizar y procesar tramas GPS utilizando software libre"

Copied!
96
0
0

Texto completo

(1)UNIVERSIDAD CENTRAL “Marta Abreu” DE LAS VILLAS Facultad de Matemática, Física y Computación Departamento de Ciencia de la Computación. APLICACIÓN PARA ANALIZAR Y PROCESAR TRAMAS GPS UTILIZANDO SOFTWARE LIBRE. Tesis presentada en opción al grado científico de Máster en Ciencia de la Computación. Autor: Lic. José David Farré Rosales. Tutor: Dr. Carlos Pérez Risquet Co-Tutor: MsC. Guillermo González Suárez. Santa Clara 2011.

(2) ...“Hay una fuerza motriz m{s poderosa que el vapor, la electricidad y la energía atómica: la voluntad...” “Albert Einstein”.

(3) RESUMEN El presente trabajo consiste en el desarrollo de una aplicación que permite analizar exhaustivamente las líneas GPS en tiempo diferido utilizando algoritmos eficientes. En el mismo se presenta la estructura de datos, los métodos de acceso y los diferentes servicios asociados a la aplicación que interactúan por medio de XML. El uso del software libre fue fundamental para el desarrollo de esta aplicación, debido a sus particularidades. Además, el bajo costo de los productos libres permite proporcionar a las instituciones servicios y ampliar sus infraestructuras, sin que se vean mermados sus intentos de crecimiento por no poder hacer frente al pago de grandes cantidades en licencias. Esta aplicación constituye una herramienta de obra propia, indispensable para el desarrollo económico de nuestro país, así como para el control de la flota. El desempeño y la eficiencia de esta aplicación han causado buena impresión por parte de los usuarios que la utilizan y ha tenido un impacto económico considerable desde el 2006 hasta la fecha, cumpliendo así con la política y estrategia del país de ahorro de combustible y la sustitución de importaciones..

(4) ÍNDICE. ÍNDICE INTRODUCCIÓN ...................................................................................................... 1 CAPÍTULO 1. TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES RELACIONADAS CON EL ANÁLISIS Y PROCESAMIENTO DE TRAMAS GPS ..... 6 1.1 Uso y ventajas del software libre para el desarrollo de aplicaciones .............. 6 1.1.1 Ubicación del software libre en las distintas clasificaciones ....................... 8 1.1.2 Explicación de las libertades básicas del software libre ............................. 9 1.1.3 Importancia de afrontar el estudio del software libre ................................ 10 1.1.4 El software libre en las organizaciones .................................................... 10 1.1.5 Ventajas e inconvenientes del software libre ............................................ 11 1.2 Arquitectura Orientada a Servicios aplicada al mundo real .......................... 13 1.2.1 Beneficios de SOA ................................................................................... 15 1.2.2 Servicios Web .......................................................................................... 18 1.2.3 Ventajas de los servicios Web ................................................................. 19 1.2.4 Inconvenientes de los servicios Web ....................................................... 19 1.3 Lenguaje de programación Java ................................................................... 20 1.4 Tecnología Java Web Start........................................................................... 22 1.5 Uso de la Plataforma Netbeans .................................................................... 23 1.6 Tecnologías XML .......................................................................................... 24 1.6.1 Ventajas del XML ..................................................................................... 26 1.6.2 Estructura de un documento XML ............................................................ 26 1.6.3 Documentos XML bien formados ............................................................. 27 1.6.4 Validez del documento XML .................................................................... 28 1.7 Biblioteca de componentes GeoTools .......................................................... 29.

(5) ÍNDICE 1.8 Utilización del GPS ....................................................................................... 30 1.8.1 Características técnicas y prestaciones ................................................... 30 1.8.2 Funcionamiento de los GPS .................................................................... 31 1.8.3 Aplicaciones relacionadas con GPS ........................................................ 32 1.9 Algoritmos de búsqueda en ficheros. ............................................................ 33 1.10 PostgreSQL .................................................................................................. 34 1.11 Conclusiones Parciales................................................................................. 39 CAPÍTULO 2. TECNOLOGÍAS Y HERRAMIENTAS INFORMÁTICAS EMPLEADAS EN LA APLICACIÓN DIFERIDO PARA EL CONTROL DE FLOTAS ...................... 40 2.1 Empleo del software libre para el desarrollo de aplicaciones desktop .......... 40 2.2 Arquitecturas y Hardwares utilizados ............................................................ 41 2.2.1 Arquitectura de Servidores ....................................................................... 41 2.2.2 Arquitectura de Servicios ......................................................................... 44 2.2.3 Gestor de base de datos PostgreSQL ..................................................... 47 2.2.4 Almacenamiento de trayectorias .............................................................. 51 2.2.5 Arquitectura existente en bases de transporte ......................................... 51 2.2.6 Computadores de a bordo ....................................................................... 51 2.3 Análisis de las tramas GPS .......................................................................... 53 2.4 Procesamiento de las tramas GPS ............................................................... 54 2.5 Simplificación de las tramas GPS ................................................................. 56 2.6 Procesamiento del fichero de hoja de ruta y obtención del Reporte Rápido 57 2.7 Tratamiento de excepciones y seguridad de la aplicación ............................ 59 2.8 Conclusiones Parciales................................................................................. 60 CAPÍTULO 3. EL SOFTWARE DIFERIDO PARA EL CONTROL DE FLOTAS ...... 61 3.1 Análisis y diseño de la aplicación ................................................................. 61.

(6) ÍNDICE 3.1.1 Casos de Uso .......................................................................................... 62 3.1.2 Diagrama de Despliegue .......................................................................... 64 3.1.3 Diagrama de la clase principal.................................................................. 66 3.2 Funcionamiento de la aplicación ................................................................... 69 3.2.1 Requerimientos básicos ........................................................................... 69 3.2.2 Interfaz principal de la aplicación ............................................................. 70 3.3 Estructura de carpetas de la aplicación ........................................................ 77 3.4 Trabajo futuro ............................................................................................... 79 3.5 Conclusiones Parciales................................................................................. 80 CAPÍTULO 4. ANÁLISIS DE LOS RESULTADOS .................................................. 81 4.1 Resultados alcanzados ................................................................................. 81 4.2 Conclusiones Parciales................................................................................. 83 CONCLUSIONES GENERALES ............................................................................. 85 RECOMENDACIONES ........................................................................................... 86 BIBLIOGRAFÍA ..................................................................................................... 87.

(7) INTRODUCCIÓN INTRODUCCIÓN La funcionalidad proporcionada por las actuales herramientas disponibles en el área de los Sistemas de Información Geográfica (SIG) puede clasificarse en operaciones para la gestión de entidades espaciales, ciudades, ríos, carreteras, municipios, etc. y operaciones para la gestión de propiedades asociadas directamente a los puntos del espacio geográfico. Muchas de estas herramientas han sido desarrolladas utilizando Software Libre (SL). El uso del SL ofrece una gran cantidad de beneficios tanto para nuestra institución como para sus usuarios. El menor coste de implantación, el ahorro en licencias de software y una capacidad de acceso total y control de la tecnología, hacen que utilizar software libre sea la mejor opción para estos casos. El grupo empresarial GEOCUBA es una institución que promueve la investigación científica, involucrándose en proyectos muy interesantes y ambiciosos con resultados exitosos. Es por esto que tiene una infraestructura sólida y vanguardista en los campos de la geomática, el medio ambiente, la cartografía, los sistemas de información geográfica y la informática. Un ejemplo de ello es la agencia de desarrollo de software GeoMIX que ofrece y desarrolla servicios basados en sistemas de información geográfica, facilitando en gran medida el desarrollo de aplicaciones que sirven de soporte parala toma de decisiones. En GeoMIX siempre se ha hecho la labor de combinar las facilidades que nos dan las herramientas comerciales (ArcView, MapInfo, Bartley y otros) con desarrollos propios, utilizando tecnologías y estándares internacionales que permiten hacer la información más accesible a la mayor cantidad de usuarios posibles. Por otra parte, es conocida la estrategia del gobierno cubano de llevar a cabo la política del ahorro de combustibles y la sustitución de importaciones, ya que estas constituyen una fuente de ingresos para la economía nacional y financiamiento de los planes sociales. Estas acciones abarcan a todos los sectores, fundamentalmente el estatal.. 1.

(8) INTRODUCCIÓN Debido a que el sector del transporte absorbe un gran porciento del combustible consumido en el país se han trazado metas y objetivos con el fin de reducir estos gastos. Teniendo en cuenta lo antes planteado, el Ministerio de Transporte de la República de Cuba (MITRANS), se dio a la tarea de implementar un mecanismo para llevar a cabo el control de flotas en todo el país, fundamentalmente en el sector económico. A partir de la experiencia de los desarrolladores de esta agencia en la creación de plataformas de montaje de Sistemas de Información Geográfica acorde a las exigencias del mercado internacional, así como el desarrollo de varias aplicaciones relacionadas con este entorno, se creó un proyecto conjunto de investigación y desarrollo que permitió crear un grupo de herramientas y aplicaciones para llevar a cabo esta tarea. Formando parte de este conjunto de aplicaciones se encuentra la aplicación “Diferido”, la cual analiza, procesa, simplifica y por último transfiere las líneas GPS en tiempo diferido utilizando algoritmos y técnicas eficientes. En la actualidad existen muchos campos donde son utilizados los sistemas GPS, tales como el estudio de fenómenos atmosféricos, en el campo de la ingeniería civil, en sistemas de aviación, para la navegación y control de flotas de vehículos, etc. Existen muchos otros campos donde se utiliza la navegación por GPS, pero esta aplicación se basa en el último punto mencionado anteriormente. El presente trabajo pretende continuar el desarrollo de las tecnologías que sirven de soporte a las aplicaciones de Control de Flotas en nuestro país para el transporte terrestre basadas en la Infraestructura de Datos Espaciales. Por todo lo antes planteado se deriva el problema científico a resolver.. 2.

(9) INTRODUCCIÓN Formulación del Problema Científico No existen actualmente en el país las herramientas informáticas necesarias para gestionar el control de flotas, fundamentalmente en el sector estatal y económico, que permitan analizar, procesar, simplificar y transferir tramas GPS en tiempo diferido, utilizando algoritmos y técnicas eficientes para un posterior análisis riguroso de la trayectoria de los vehículos. Preguntas de Investigación 1. ¿Cuáles herramientas y tecnologías informáticas son necesarias para realizar una gestión eficiente del control de flotas en el país? 2. ¿Cuál arquitectura de software es adecuada para las aplicaciones que realizan el manejo y transferencia de la información que se genera durante el proceso de control de flotas? 3. ¿Qué beneficios reportan en la actualidad las herramientas informáticas en la tarea del control de flotas? 4. ¿Qué ventajas proporciona el uso de aplicaciones basadas en software libre para solucionar el problema de la gestión del control de flotas? Teniendo en cuenta la problemática referida y acorde con las preguntas de investigación se formularon los siguientes objetivos: Objetivo General Desarrollar utilizando software libre, las herramientas informáticas necesarias para el control de flotas en Cuba, que permitan analizar, procesar, simplificar y transferir tramas GPS almacenadas en un dispositivo físico , así como técnicas y algoritmos eficientes para un posterior análisis riguroso de la trayectoria de los vehículos.. 3.

(10) INTRODUCCIÓN Objetivos Específicos 1. Determinar cuáles herramientas y tecnologías informáticas son necesarias para realizar una gestión eficiente del control de flotas en el país. 2. Desarrollar una arquitectura de software adecuada para las aplicaciones que realizan el manejo y transferencia de la información que se genera durante el proceso de control de flotas. 3. Evaluar los beneficios de las herramientas desarrolladas, incluyendo también el análisis de la exactitud de los datos calculados. 4. Determinar las ventajas del uso de aplicaciones basadas en software libre para solucionar el problema de la gestión del control de flotas. 5. Brindar un Reporte Rápido de Trayectoria con la mayor cantidad de datos calculados extraídos de la trayectoria. Hipótesis de Investigación 1. Es posible determinar las herramientas y tecnologías informáticas necesarias para realizar una gestión eficiente del control de flotas en el país. 2. La Arquitectura Orientada a Servicios (SOA) es adecuada para las aplicaciones que realizan el manejo y transferencia de la información que se genera durante el proceso de control de flotas. 3. El uso de herramientas informáticas en la tarea del control de flotas reporta beneficios económicos y sociales para el país. 4. Es ventajoso el uso de aplicaciones basadas en software libre para solucionar el problema de la gestión del control de flotas. Estructura del Informe Para satisfacer los objetivos propuestos, el presente informe de investigación fue estructurado en tres capítulos. El primero aborda los aspectos teóricos relacionados con las diferentes tecnologías empleadas en el desarrollo de la aplicación y su estado del arte a nivel mundial, además de una breve introducción acerca del uso de los GPS. 4.

(11) INTRODUCCIÓN para el control de la flota como una de sus funciones. En el segundo se propone cómo estas tecnologías fueron aplicadas en este proyecto con el fin de resolver la problemática existente. El tercero está dedicado a describir los procesos de análisis y diseño de la aplicación y el funcionamiento de la misma. Posteriormente se formulan las Conclusiones, Recomendaciones, la Bibliografía consultada y por último los Anexos.. 5.

(12) CAPÍTULO 1 CAPÍTULO 1. TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES RELACIONADAS CON EL ANÁLISIS Y PROCESAMIENTO DE TRAMAS GPS En este capítulo se abordan y describen varios conceptos que fueron de gran importancia para el desarrollo de este proyecto de tesis; el uso del software libre como herramienta fundamental para su construcción, así como las principales tecnologías existentes en el mundo que sirvieron como modelo de referencia para esta aplicación, tales como: Java Web Start (JWS), la Arquitectura Orientada a Servicios (SOA), el empleo de XML, algoritmos eficientes de búsqueda, utilización de GPS,entre otras. 1.1 Uso y ventajas del software libre para el desarrollo de aplicaciones Es conocida la decisión del gobierno cubano de migrar a “Open Source”. Con esta medida, el país sigue los pasos de otras naciones que alegan como motivaciones la posición casi monopolística de Microsoft, el coste de software propietario y los problemas de seguridad. Estos argumentos son especialmente importantes en el caso de la isla, ya que las leyes estadounidenses restringen las exportaciones de material informático y software y bloquean además, las descargas hacia y desde Cuba, lo que limita las posibilidades de actualización de las aplicaciones y aumenta su vulnerabilidad. El desarrollo de esta aplicación en software libre surge por la necesidad de brindar un mecanismo efectivo para el control de la flota en los sectores claves, por medio del montaje de computadores de a bordo que utilizan el Sistema de Posicionamiento Global (GPS). A continuación se muestran algunos conceptos relacionados con el tema de software libre: Según(1), (2), (3): Software libre es todo aquel programa que se puede usar, copiar y distribuir, con o sin modificaciones, cobrando o gratuitamente, sin ningún tipo de restricción adicional,. 6.

(13) CAPÍTULO 1 excepto la de respetar la licencia original y distribuir las modificaciones con una licencia compatible. Reglas:  Libertad de ejecutar el programa para cualquier propósito  Libertad para estudiar el programa y adaptarlo  Libertad para distribuirlo por cualquier medio  Libertad para mejorarlo y distribuir las modificaciones La característica Copyleft asegura que siga siendo libre. Dominio público  Pueden agregarse restricciones adicionales y dejar de ser libre. Copyleft  Es software libre, se mantienen los derechos de autor.  No permite que se puedan agregar restricciones adicionales a las modificaciones o distribuciones. GPL (General Public Licence)  Licencia de distribución que especifica los términos “copyleft” de un programa. Según (4): El software libre es un tipo particular de software que le permite al usuario el ejercicio de cuatro libertades básicas: 1. Ejecutarlo con cualquier propósito 2. Estudiar cómo funciona y adaptarlo a sus necesidades 3. Distribuir copias 4. Mejorarlo y liberar esas mejoras al público. 7.

(14) CAPÍTULO 1 Con la única restricción del copyleft (o sea, cualquiera que redistribuya el software, con o sin cambios, debe dar las mismas libertades que antes) y con el requisito de permitir el acceso al código fuente (imprescindible para ejercer las libertades 2 y 4). 1.1.1 Ubicación del software libre en las distintas clasificaciones El software libre puede clasificarse de diferentes maneras: 1. De acuerdo al costo de adquisición: el software libre puede ser de dos clases, es decir, de costo cero o de costo mayor que cero. Lo que lo diferencia del software propietario es que su costo es independiente del número de computadoras que se poseen. Por ejemplo, en el caso del sistema operativo Microsoft Windows 3.1/95/98/Me/NT/2000/XP por cada computadora en que lo instale se debe pagar una licencia. En cambio, si se utiliza en sistema operativo GNU/Linux (en cualquiera de sus distribuciones, como RedHat, Mandrake, Debian, Ubuntu) se debe pagar una sola licencia (no obstante, algunas licencias no tienen costo). 2. De acuerdo a la apertura del código fuente: el software libre siempre es "open source", es decir, de código fuente abierto, ya que el acceso al código fuente es necesario para el ejercicio de las libertades 2 y 4 descritas anteriormente. 3. De acuerdo a su protección: el software libre siempre está protegido con licencias y más específicamente, con licencias de copyleft. ¿Por qué no de dominio público? Porque de ese modo cualquiera puede adueñarse de él, por ejemplo, adquiere un software libre, lo modifica, lo compila y lo distribuye con código cerrado. ¿Por qué no con Copyright? Porque de esa manera alguien le puede agregar alguna restricción, por lo tanto no va a seguir siendo software libre. 4. De acuerdo a su legalidad: el software libre siempre es legal, porque al usarlo, estudiarlo, modificarlo, adaptarlo y/o mejorarlo no se viola ninguna norma, ya que de por sí este tipo de software permite hacerlo, con la única salvedad de no. 8.

(15) CAPÍTULO 1 poder agregarle ninguna restricción adicional cuando se transfiera a otra persona. 1.1.2 Explicación de las libertades básicas del software libre Según (4): Libertad Cero: "Usar el programa con cualquier propósito". Es decir, el ejercicio de esta libertad implica que se puede utilizar con cualquier fin, ya sea educativo, cultural, comercial, político, social, etc. Esta libertad deriva de que hay ciertas licencias que restringen el uso del software a un determinado propósito, o que prohíben su uso para determinadas actividades. Libertad Uno: "Estudiar cómo funciona el programa y adaptarlo a sus necesidades". Significa que se puede estudiar su funcionamiento (al tener acceso al código fuente) lo que permite, entre otras cosas: descubrir funciones ocultas, averiguar cómo se realiza determinada tarea, descubrir qué otras posibilidades tiene, qué es lo que le falta para hacer algo, etc. El adaptar el programa a una necesidad específica implica que se pueden suprimir partes que no interesan, agregarle partes que se consideran importantes, copiarle una parte que realiza una tarea y adicionarla a otro programa, etc. Libertad Dos: "Distribuir copias". Quiere decir que el autor es libre de redistribuir el programa, ya sea gratis o con algún costo, ya sea por email, FTP o en CD, ya sea a una persona o a varias, ya sea a un vecino o a una persona que vive en otro país, etc. Libertad Tres: "Mejorar el programa y liberar las mejoras al público". Se tiene la libertad de hacer mejor el programa, o sea que se puede hacer menores los requerimientos de hardware para funcionar, que tenga mayores prestaciones, que ocupe menos espacio, que tenga menos errores, etc. El poder liberar las mejoras al público quiere decir, que si se le realiza una mejora que permita un requerimiento menor de hardware, o que haga que ocupe menos espacio, se es libre de poder redistribuir ese programa mejorado, o simplemente proponer la mejora en un lugar. 9.

(16) CAPÍTULO 1 público (un foro de noticias, una lista de correo, un sitio Web, un FTP, un canal de Chat). 1.1.3 Importancia de afrontar el estudio del software libre 1. Económica: el costo de las licencias de software propietario es bastante importante y por la situación económica actual, es imposible de afrontar de la manera que los fabricantes de software lo piden. 2. Legal: el software libre es siempre legal, salvo contadas excepciones (por ejemplo, que se compile el código fuente y se venda como propietario). 3. Técnica: es sabido que Microsoft ha dejado de ofrecer soporte de desarrollo para Windows 95 y Windows 98, por lo que si hoy o mañana se descubre un error en ellos, Microsoft no está obligado a repararlo. Para solucionar esto, se tendrían dos caminos: a) Migrar a otras versiones de sistema operativos de Microsoft: esto lleva aparejado una serie de costos, principalmente en licencias, luego, costos de implantación, soporte e interoperabilidad y además implica volver a hacer lo mismo dentro de dos o tres años. b) Utilizar software libre. 4. Laboral: la implementación de software libre plantea un futuro muy prometedor para aquellas personas que sepan programar, traducir, utilizar un programa, enseñar, etc. Si se tiene que elegir entre pagar una licencia de software a un coloso informático o darle trabajo directamente a una persona, es de esperar que se escoja la segunda alternativa. (2) 1.1.4 El software libre en las organizaciones Cada año, las empresas compran más de 100 millones de computadoras que en su mayoría reemplazan modelos anteriores. Pero la inmensa mayoría de trabajadores que usan esas computadoras sólo trabajan con unas pocas aplicaciones sencillas: procesador de texto, hoja de cálculos, correo electrónico, navegador web, etc. Estas aplicaciones ya están maduras desde hace años.. 10.

(17) CAPÍTULO 1 La mayoría de ese gasto, está dirigido por las estrategias de los vendedores. Los grandes suministradores de hardware y software se han especializado en distribuir planificadamente las nuevascaracterísticas y capacidades, de forma que obligan a las compañías a comprar nuevos ordenadores, aplicaciones y equipamiento de redes mucho más frecuente de lo que las necesitan. Si los vendedores se resisten, las organizaciones deberían explorar nuevas soluciones que incluyan al software abierto y computadoras de red minimalistas, aun sacrificando características. Si una compañía necesita evidencia de la cantidad de dinero que podría ahorrarse, basta echar un vistazo a los márgenes de ganancias de Microsoft. Según Larry Ellison, Director y Consejero Delegado de Oracle Inc.: “La mayoría de las organizaciones gastan demasiado en tecnologías de la información y obtienen muy poco retorno”. 1.1.5 Ventajas e inconvenientes del software libre Ventajas:  Aplica los principios de libre acceso a las fuentes de conocimiento que propugna la ciencia al ámbito del software.  Existen aplicaciones para todas las plataformas (Linux, Windows, Mac Os).  El precio de las aplicaciones es mucho menor, la mayoría de las veces son gratuitas.  Independencia de productores y vendedores.  Reducción de costes y mejor retorno de inversión (ROI) a más del 99% de las empresas.  Libertad de copia.  Libertad de modificación y mejora.  Libertad de uso con cualquier fin.  Libertad de redistribución.  Facilidad a la hora de traducir una aplicación en varios idiomas. 11.

(18) CAPÍTULO 1  El usuario no depende del autor del software.  Es un modelo eficiente de desarrollo.  Respeto y apoyo a los estándares. Inconvenientes:  Algunas aplicaciones (bajo Linux) pueden llegar a ser algo complicadas de instalar.  Inexistencia de garantía por parte del autor.  Interfaces gráficas menos amigables.  Poca estabilidad y flexibilidad en el campo de multimedia y juegos.  Menor compatibilidad con el hardware. Por todo lo antes planteado, se puede decir que el software libre trabaja bajo el modelo de que, dentro de unos años, la informática se regirá por un mercado mucho más abierto, con grandes productores de software libre, que proporcionarán beneficios a otros más pequeños que cubran nichos de mercado nada interesantes para los primeros; con empresas integradoras de soluciones de terceros, adaptadoras (personalización) y migradoras de sistemas; nacerán nuevas consultarías y nuevas empresas de servicios sobre tecnología preexistente. El común denominador de casi todas ellas será el conocimiento que posean y su capacidad para transformar la materia prima al alcance de todos, añadiendo un sello propio que les haga candidatos para ofertarse en las mejores condiciones. Además, la proliferación de redes de intercambio de ficheros ya está decidiendo en parte por los usuarios de esta comunidad. La copia indiscriminada de software tenderá a inclinar la balanza a favor de lo que no puede ser pirateado o plagiado; el saber hacer, por ejemplo. Efectivamente, el software libre puede acabar con muchos negocios pero ciertamente dará pie a la construcción de muchos otros.. 12.

(19) CAPÍTULO 1 1.2 Arquitectura Orientada a Servicios aplicada al mundo real La Arquitectura Orientada a Servicios (SOA, por sus siglas en inglés Service Oriented Architecture) establece un marco de diseño para la integración de aplicaciones independientes, de manera que desde la red pueda accederse a sus funcionalidades, las cuales se ofrecen como servicios. La forma más habitual de implementarla es mediante servicios web, una tecnología basada en estándares e independiente de la plataforma, con la que SOA puede descomponer aplicaciones monolíticas en un conjunto de servicios e implementar esta funcionalidad en forma modular. ¿Qué es un servicio exactamente? Un servicio es una funcionalidad concreta que puede ser descubierta en la red y que describe tanto lo que puede hacer como el modo de interactuar con ella. (5) Desde la perspectiva de la empresa, un servicio realiza una tarea concreta: puede corresponder a un proceso de negocio tan sencillo como introducir o extraer un dato como “Código del Cliente”. Pero también los servicios pueden acoplarse dentro de una aplicación completa que proporcione serviciosde alto nivel, con un grado de complejidad muy superior –por ejemplo, “introducir datos de un pedido”-,un proceso que, desde que comienza hasta que termina, puede involucrar varias aplicaciones de negocio. La estrategia de orientación a servicios permite la creación de servicios y aplicaciones compuestas que pueden existir con independencia de las tecnologías subyacentes. En lugar de exigir que todos los datos y lógica de negocio residan en un mismo ordenador, el modelo de servicios facilita el acceso y consumo de los recursos de las Tecnologías de Información (TI) a través de la red. Puesto que los servicios están diseñados. para. ser. independientes,. autónomos. y. para. interconectarse. adecuadamente, pueden combinarse y recombinarse con suma facilidad en aplicaciones complejas que respondan a las necesidades de cada momento en el seno de una organización. Las aplicaciones compuestas (también llamadas “dinámicas”) son lo que permite a las empresas mejorar y automatizar sus procesos manuales, disponer de una visión consistente de sus clientes y socios comerciales y 13.

(20) CAPÍTULO 1 orquestar sus procesos de negocio para que cumplan con las regulaciones legales y políticas internas. El resultado final, es que las organizaciones que adoptan la orientación a servicios pueden crear y reutilizar servicios y aplicaciones y adaptarlos ante los cambios evolutivos que se producen dentro y fuera de ellas y con ello adquirir la agilidad necesaria para ganar ventaja competitiva. (5) ¿Cuáles. son. los. elementos. del. SOA. más. importantes. para. su. éxito?. Como primer punto se encuentra la flexibilidad. SOA es la primera arquitectura de TI que asume lo que los negocios han sabido desde hace mucho tiempo. Se trata esencialmente de un set de servicios sueltos, donde cada uno es relativamente económico para construirlo o reemplazarlo si es necesario. Al ser independientes, el poder unirlos permite a SOA adaptar cambios, cuestión imposible para arquitecturas tradicionales. En la Arquitectura Orientada a Servicios, se puede reemplazar un servicio sin tener que preocuparse por la tecnología fundamental; la interface es lo que importa y está definida en un estándar universal en servicios Web y XML (eXtensible Markup Language). Esto es flexibilidad a través de la interoperabilidad. También es la habilidad de asegurar los activos existentes, aplicaciones y bases de datos legales y hacerlos parte de las soluciones empresariales extendiéndolos al SOA en vez de reemplazarlos. El resultado en la red es la habilidad de evolucionar rápida y eficientemente, en otras palabras, adaptarse “orgánicamente” de acuerdo a la demanda del negocio. En segundo lugar está la relevancia para el negocio. SOA es TI expresada a un nivel que tiene un significado importante para la colaboración del negocio y profesionales del área. Sus servicios actuales pueden coordinar unidades de trabajo muy cercanas a las actividades del negocio; por ejemplo, un servicio llamado “Actualización de órdenes de trabajo”. Éstos son inmediatamente relevantes para los analistas de la empresa que participan en la creación y definición de nuevos procesos permitiendo el “Servicio Dirigido Empresarial”. (6). 14.

(21) CAPÍTULO 1 Desde que los servicios web sustituyen la mayoría de las tecnologías fundamentales, muy poca tecnología de habla es requerida. Los negocios y las TI se enfocan en la lógica del negocio y la comunicación; finalmente comparten el lenguaje de servicios. ¿Cuáles son las principales barreras a vencer para obtener el éxito de SOA? SOA es un nuevo horizonte para las TI. Como cualquier gran cambio, las principales barreras son organizacionales, no técnicas. A continuación se ejemplifican algunas: . Administración: Servicios compartidos es lo principal para utilizar SOA. La habilidad para ensamblar rápidamente aplicaciones o procesos está basada en la disponibilidad de algunos servicios que pueden ser compartidos. Hacer esto, por definición, requiere administración.. . Desarrollo Cultural: Al utilizar SOA se requiere un cambio significativo en el estilo de programar. Muchos desarrolladores utilizan equipos diferentes para resolver problemas de manera independiente para cada aplicación. En SOA necesitarán escribir aplicaciones para ser reutilizadas en mente, usando códigos existentes, a los cuales se podrá tener acceso constantemente. (6). ¿Qué rol juega Java en el éxito potencial del SOA? Java es muy importante para un estándar de servicios. Las habilidades y herramientas que proporciona su comunidad garantizan calidad para construir en SOA. Así es como mutuamente contribuyen al éxito, ya que Java es una manera más para implementar servicios. 1.2.1 Beneficios de SOA Los beneficios de SOA para una organización se plasman a dos niveles distintos: al del usuario corporativo y a nivel de la organización de TI. Desde el punto de vista de la empresa, SOA permite el desarrollo de una nueva generación de aplicaciones dinámicas que resuelven una gran cantidad de problemas de alto nivel, fundamentales para el crecimiento y la competitividad.. 15.

(22) CAPÍTULO 1 Las soluciones SOA permiten entre otras cosas: . Mejorar la toma de decisiones. Al integrar el acceso a los servicios e información de negocio dentro de un conjunto de aplicaciones dinámicas compuestas, los directivos disponen de más información y de mejor calidad (más exacta y actualizada). Las personas, procesos y sistemas que abarcan múltiples departamentos pueden introducirse de forma más directa en una panorámica unificada, lo que permite conocer mejor los balances de costes y beneficios que se producen en las operaciones de negocio que se realizan a diario. Al disponer de mejor información en un tiempo menor, las organizaciones pueden reaccionar de manera más ágil y rápida cuando surgen problemas o cambios.. . Mejorar la productividad de los empleados. Un acceso óptimo a los sistemas y la información y la posibilidad de mejorar los procesos permiten a las empresas aumentar la productividad individual de los empleados. Estos pueden dedicar sus energías a los procesos importantes, los que generan valor añadido y a actividades de colaboración, semiestructuradas, en vez de aceptar las limitaciones y restricciones impuestas por los sistemas de TI rígidos y monolíticos. Más aún, puesto que los usuarios pueden acceder a la información en los formatos y modalidades de presentación (web, cliente avanzado, dispositivo móvil) que necesitan, su productividad se multiplica en una gran cantidad de escenarios de uso, habituales o nuevos.. . Potenciar las relaciones con clientes y proveedores. Las ventajas de SOA trascienden las fronteras de la organización. Los procesos de fusión y compra de empresas se hacen más rentables al ser más sencilla la integración de sistemas y aplicaciones diferentes. La integración con partners comerciales y la optimización de los procesos de la cadena de suministro son, bajo esta perspectiva, objetivos perfectamente asequibles. Con SOA se puede conseguir mejorar la capacidad de respuesta a los clientes, habilitando por ejemplo portales unificados de servicios. Si los clientes y proveedores externos pueden disponer de acceso a aplicaciones y servicios de negocio dinámicos, no solamente se permite una colaboración avanzada, sino que se aumenta la satisfacción de 16.

(23) CAPÍTULO 1 clientes y proveedores. SOA permite flexibilizar los procesos críticos de compras y gestión de pedidos –habilitando modalidades como la subcontratación de ciertas actividades internas- superando las restricciones impuestas por las arquitecturas de TI subyacentes y con ello consiguiendo un mejor alineamiento de los procesos con la estrategia corporativa. (5) SOA contribuye también a documentar el modelo de negocio de la empresa y a utilizar el modelo de negocio documentado para integrar en él y dar respuesta a las dinámicas de cambio que se produzcan y optimizarlo de acuerdo con ellas. Desde el punto de vista de los departamentos de TI, la orientación a servicios supone un marco conceptual mediante el cual se puede simplificar la creación y mantenimiento de sistemas y aplicaciones integradas y una fórmula para alinear los recursos de TI con el modelo de negocio y las necesidades y dinámicas de cambio que le afectan. . Aplicaciones más productivas y flexibles. La estrategia de orientación a servicios permite conseguir una mayor productividad de los recursos de TI existentes –como pueden ser las aplicaciones y sistemas ya instalados e incluso los más antiguos- y obtener mayor valor de ellos de cara a la organización sin necesidad de aplicar soluciones de integración desarrolladas ex profeso para este fin. La orientación a servicios permite además el desarrollo de una nueva generación de aplicaciones compuestas que ofrecen capacidades avanzadas y multifuncionales para la organización con independencia de las plataformas y lenguajes de programación que soportan los procesos de base. Puesto que los servicios son entidades independientes de la infraestructura subyacente, una de suscaracterísticas más importantes es su flexibilidad a la hora del diseño de cualquier solución.. . Desarrollo de aplicaciones más rápido y económico. El diseño de servicios basado en estándares, facilita la creación de un repositorio de servicios reutilizables, que se pueden combinar en servicios de mayor nivel y aplicaciones compuestas en respuesta a nuevas necesidades de la empresa. Con ello se 17.

(24) CAPÍTULO 1 reduce el coste del desarrollo de soluciones y de los ciclos de prueba, se eliminan redundancias y se consigue su puesta en valor en menos tiempo. Además, el uso de un entorno y un modelo de desarrollo unificados simplifica y homogeneiza la creación de aplicaciones, desde su diseño y prueba, hasta su puesta en marcha y mantenimiento. . Aplicaciones más seguras y manejables. Las soluciones orientadas a servicios proporcionan una infraestructura común (y una documentación común también) para desarrollar servicios seguros, predecibles y gestionables. Conforme van evolucionando las necesidades de negocio, SOA facilita la posibilidad de añadir nuevos servicios y funcionalidades para gestionar los procesos de negocio críticos. Se accede a los servicios y no a las aplicaciones, y gracias a ello SOA optimiza las inversiones realizadas en TI potenciando la capacidad de introducir nuevas capacidades y mejoras. Además, puesto que se utilizan mecanismos de autenticación y autorización robustos en todos los servicios –y puesto que los servicios existen de forma independiente unos de otros y no se interfieren entre ellos- la estrategia de SOA permite dotarse de un nivel de seguridad superior. (5). 1.2.2Servicios Web La adopción de una solución de diseño basada en SOA no exige implantar servicios Web. No obstante, los servicios Web son la forma más habitual de implementar SOA. Los servicios Web son aplicaciones que utilizan estándares para el transporte, codificación y protocolo de intercambio de información. Permiten la intercomunicación entre sistemas de cualquier plataforma y se utilizan en una gran variedad de escenarios de integración, tanto dentro de las organizaciones como con partners de negocios. Los servicios Web se basan en un conjunto de estándares de comunicación, como son XML para la representación de datos, SOAP (Simple Object Access Protocol) para el intercambio de datos y el lenguaje WSDL (Web Services Description Language) para describir las funcionalidades de un servicio Web. Existen más especificaciones, a las 18.

(25) CAPÍTULO 1 que se denomina genéricamente como la arquitectura Web Service (WS), que definen distintas funcionalidades para el descubrimiento de servicios Web, gestión de eventos, archivos adjuntos, seguridad, gestión y fiabilidad en el intercambio de mensajes y transacciones. (5) 1.2.3 Ventajas de los servicios Web . Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.. . Fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.. . Al apoyarse en HTTP, pueden aprovecharse de los sistemas de seguridad firewall sin necesidad de cambiar las reglas de filtrado.. . Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos, puedan ser combinados fácilmente para proveer servicios integrados.. . Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de protocolos estándar y abiertos. Las especificaciones son gestionadas por una organización abierta, la W3C, por tanto no hay secretismos por intereses particulares de fabricantes concretos y se garantiza la plena interoperabilidad entre aplicaciones.. 1.2.4 Inconvenientes de los servicios Web . Para realizar transacciones, no pueden compararse en su grado de desarrollo con los estándares abiertos de computación distribuida como CORBA (Common Object Request Broker Architecture).. . Su rendimiento es bajo si se compara con otros modelos de computación distribuida, tales como RMI (Remote Method Invocation), CORBA o DCOM (Distributed Component Object Model). Es uno de los inconvenientes derivados 19.

(26) CAPÍTULO 1 de adoptar un formato basado en texto. Entre los objetivos de XML no se encuentra la concisión ni la eficacia de procesamiento. 1.3 Lenguaje de programación Java Java es toda una tecnología orientada al desarrollo de software, con la que se puede realizar cualquier tipo de programa. Hoy en día, la tecnología Java ha cobrado mucha importancia en el ámbito de Internet gracias a su plataforma J2EE. Pero Java no se queda ahí, ya que en la industria para dispositivos móviles también hay una gran acogida para este lenguaje. La tecnología Java está compuesta básicamente por 2 elementos: el lenguaje de programación Java y su plataforma (la máquina virtual de Java). Una de las principales características que favoreció el crecimiento y difusión de este lenguaje es su capacidad de que el código funcione sobre cualquier plataforma de software y hardware. Esto significa que un mismo programa escrito para Linux puede ser ejecutado en Windows sin ningún problema. Además, es un lenguaje orientado a objetos que resuelve los problemas en la complejidad de los sistemas, entre otros. Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo escribir applets interesantes desde el principio. Todos aquellos familiarizados con C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas características, como los punteros. Debido a su semejanza con C y C++ y dado que la mayoría de los desarrolladores lo conoce, aunque sea de forma elemental, resulta muy fácil aprender Java. Los programadores experimentados en C++, pueden migrar muy rápidamente a Java y ser productivos en poco tiempo. Según (7), algunas de las características de este lenguaje son:  Orientado a objetos: Java fue diseñado como un lenguaje orientado a objetos desde el principio. Los objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o funciones) que manipulan esos datos. La tendencia del futuro, a la que Java se suma, apunta hacia la programación orientada a objetos, especialmente en entornos cada vez más complejos y basados en red. 20.

(27) CAPÍTULO 1  Distribuido: Java proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando así la creación de aplicaciones distribuidas.  Interpretado y compilado a la vez: Java es compilado, en la medida en que su código fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las instrucciones de ensamblador.Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el intérprete y el sistema de ejecución en tiempo real (runtime).  Robusto: Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas comprobaciones en compilación y en tiempo de ejecución. Sus características de memoria liberan a los programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por completo los punteros y la recolección de basura elimina la necesidad de liberación explícita de memoria.  Seguro: Dada la naturaleza distribuida de Java, donde las applets se descargan desde cualquier punto de la red, la seguridad se impuso como una necesidad de vital importancia. A nadie le gustaría ejecutar en su ordenador programas con acceso total a su sistema, procedentes de fuentes desconocidas. Así que se implementaron barreras de seguridad en el lenguaje y en el sistema de ejecución en tiempo real.  Indiferente a la arquitectura: Java está diseñado para soportar aplicaciones que serán ejecutadas en los más variados entornos de red, desde Unix a Windows NT, pasando por Mac y estaciones de trabajo, sobre arquitecturas distintas y con sistemas operativos diversos.  Portable: La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas.Estas dos últimas características se conocen como la Máquina Virtual Java (JVM). 21.

(28) CAPÍTULO 1  Multihebra: Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.  Dinámico: El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.  Produce applets: Java puede ser usado para crear dos tipos de programas: aplicaciones independientes y applets. Las aplicaciones independientes se comportan como cualquier otro programa escrito en cualquier lenguaje, como por ejemplo el navegador de Web Hot Java, escrito íntegramente en Java. Por su parte, las applets son pequeños programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para luego emprender acciones, etc. (8) Finalmente, se puede concluir que Java brinda una solución para cada necesidad que se pueda tener. 1.4 Tecnología Java Web Start Java Web Start es la implementación de referencia de la especificación JNLP (Java Networking Launching Protocol) y está desarrollada por Sun Microsystems. Esta herramienta permite arrancar aplicaciones Java que están en un servidor web de aplicaciones comprobando previamente si el cliente tiene la versión actualizada de dicha aplicación. Si no es así, descargará la última versión y se ejecutará de forma local. El arranque de dichas aplicaciones puede ser efectuado mediante enlaces en una página web o bien a través de enlaces en el escritorio cliente. Mediante esta 22.

(29) CAPÍTULO 1 tecnología se asegura que una aplicación es distribuida siempre en su última versión. Los ficheros que contiene la información sobre donde se encuentra la aplicación, versión, etc. tiene la extensión jnlp. Un ejemplo de esta tecnología, es la de un servidor web donde se encuentra una página web HTML con enlaces a aplicaciones Java. Cada uno de estos enlaces apuntará a ficheros .jnlp, que indicarán la ruta de la aplicación en este u otro servidor. En ese momento arrancará automáticamente Java Web Start y comprobará seguridad y si el usuario tiene la última versión instalada ya en su equipo, si no es así, la descarga y la ejecuta. Java Web Start se incluye en el entorno de ejecución de Java (JRE) como parte de JRE 5.0. Esto significa que al instalar el JRE, Java Web Start se instala automáticamente. Cuando se descarga por primera vez una aplicación que utiliza la tecnología Java Web Start, el software se ejecuta automáticamente y guarda la aplicación localmente, en la memoria caché del equipo. De este modo, las subsiguientes ejecuciones son prácticamente instantáneas, ya que los recursos necesarios están disponibles de forma local. Cada vez que se inicia la aplicación, el componente de software de Java Web Start comprueba si en la sede Web de la aplicación hay una versión nueva disponible; si es así, la descarga y la ejecuta de forma automática. (9)(10) 1.5 Uso de la Plataforma Netbeans El Entorno de Desarrollo Integrado (IDE) 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.. 23.

(30) CAPÍTULO 1 NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos. La Plataforma NetBeans es una base modular y extensible usada como una estructura de. integración. para. crear. aplicaciones. de. escritorio. grandes.. Empresas. independientes asociadas, especializadas en desarrollo de software, proporcionan extensiones adicionales que se integran fácilmente en la plataforma y que pueden también utilizarse para desarrollar sus propias herramientas y soluciones. (11) La plataforma ofrece servicios comunes a las aplicaciones de escritorio, permitiéndole al desarrollador enfocarse en la lógica específica de su aplicación. Entre las características de la plataforma están: . Administración de las interfaces de usuario (ej. menús y barras de herramientas). . Administración de las configuraciones del usuario. . Administración del almacenamiento (guardando y cargando cualquier tipo de dato). . Administración de ventanas. . Framework basado en asistentes (diálogos paso a paso). 1.6 Tecnologías XML XML, siglas en inglés de eXtensible Markup Language (lenguaje de marcas extensible), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto, XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML. 24.

(31) CAPÍTULO 1 XML es un Lenguaje de Etiquetado Extensible muy simple, pero estricto, que juega un papel fundamental en el intercambio de una gran variedad de datos. Es un lenguaje muy similar a HTML pero su función principal es describir datos y no mostrarlos como es el caso de HTML. XML es un formato que permite la lectura de datos a través de diferentes aplicaciones. (12)(13) Las tecnologías XML son un conjunto de módulos que ofrecen servicios útiles a las demandas más frecuentes por parte de los usuarios. XML sirve para estructurar, almacenar e intercambiar información. Esta tecnología no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable. Además, tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad, ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil. Entre las tecnologías XML disponibles se pueden destacar: XSL: Lenguaje Extensible de Hojas de Estilo, cuyo objetivo principal es mostrar cómo debería estar estructurado el contenido, cómo debería ser diseñado el contenido de origen y cómo debería ser paginado en un medio de presentación, como puede ser una ventana de un navegador Web o un dispositivo móvil, o un conjunto de páginas de un catálogo, informe o libro. XPath: Lenguaje de Rutas XML, es un lenguaje para acceder a partes de un documento XML. XLink: Lenguaje de Enlace XML, es un lenguaje que permite insertar elementos en documentos XML para crear enlaces entre recursos XML.. 25.

(32) CAPÍTULO 1 XPointer: Lenguaje de Direccionamiento XML, es un lenguaje que permite el acceso a la estructura interna de un documento XML, esto es, a sus elementos, atributos y contenido. XQL: Lenguaje de Consulta XML, es un lenguaje que facilita la extracción de datos desde documentos XML. Ofrece la posibilidad de realizar consultas flexibles para extraer datos de documentos XML en la Web. 1.6.1 Ventajas del XML . Es extensible: después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se puede continuar utilizando sin complicación alguna.. . El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones.. . Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Se pueden comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, se puede tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos SQL Server.. . Se transforman datos en información, pues se le añade un significado concreto y se asocia a un contexto, con lo cual se logra flexibilidad para estructurar documentos.. 1.6.2 Estructura de un documento XML La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada, quiere decir que se compone de partes bien definidas y que esas partes 26.

(33) CAPÍTULO 1 se componen a su vez de otras partes. Entonces se tiene un árbol de trozos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez por notas. Estas partes se llaman elementos y se les señala mediante etiquetas. Una etiqueta consiste en una marca hecha en el documento, que señala una porción de este como un elemento. Un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el identificador del elemento que se está señalando. A continuación se muestra un ejemplo para entender la estructura de un documento XML: <?xmlversion="1.0" encoding="ISO-8859-1"?> <libro> <titulo></titulo> <capitulo> <titulo></titulo> <seccion> <titulo></titulo> </seccion> </capitulo> </libro> 1.6.3 Documentos XML bien formados Los documentos denominados como "bien formados" (del inglés well formed) son aquellos que cumplen con todas las definiciones básicas de formato y pueden, por lo tanto, analizarse correctamente por cualquier analizador sintáctico (parser) que cumpla con la norma. Se separa esto del concepto de validez que se explica más adelante. . Los documentos han de seguir una estructura estrictamente jerárquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente incluida en otra, es decir, las etiquetas deben estar correctamente anidadas. Los elementos con contenido deben estar correctamente cerrados.. 27.

(34) CAPÍTULO 1 . Los documentos XML sólo permiten un elemento raíz del que todos los demás sean parte, es decir, solo pueden tener un elemento inicial.. . Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles.. . El XML es sensible a mayúsculas y minúsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de línea) que los procesadores XML tratan de forma diferente en el marcado XML.. . Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen alguna característica en común.. . Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos "entendibles" por las personas.. 1.6.4 Validez del documento XML Que un documento esté "bien formado" solamente se refiere a su estructura sintáctica básica, es decir, que se componga de elementos, atributos y comentarios como XML especifica que se escriban. Ahora bien, cada aplicación de XML, es decir, cada lenguaje definido con esta tecnología, necesitará especificar cuál es exactamente la relación que debe verificarse entre los distintos elementos presentes en el documento. Esta relación entre elementos se especifica en un documento externo o definición (expresada como DTD (Document Type Definition = Definición de Tipo de Documento) o como XSchema). Crear una definición equivale a crear un nuevo lenguaje de marcado para una aplicación específica.. 28.

(35) CAPÍTULO 1 1.7 Biblioteca de componentes GeoTools GeoTools es una biblioteca Java para la manipulación de información geoespacial dirigido a ser utilizado en otras aplicaciones Java, tanto servidoras como clientes. No se trata por lo tanto de una aplicación final de usuario, sino de los componentes básicos para construirlas. Ofrece acceso a numerosos formatos de datos vectoriales (Shapefiles, PostGIS, MySQL, Oracle, ArcSDE, Geomedia, entre otros) y ráster (GeoTIFF, ArcGrid, etc), así como el cumplimiento de varias especificaciones OpenGIS (WFS, SLD, Filter Encoding, etc). Está escrito en el lenguaje de programación Java y se encuentra actualmente en un desarrollo activo al nutrirse de una comunidad de usuarios muy dinámica. Su diseño y concepción modular hace que numerosas implementaciones de software libre en el ámbito de los Sistemas de Información Geográfica (SIG) hagan uso de los desarrollos de GeoTools. GeoTools está colaborando con el proyecto GeoAPI para implementar los interfaces definidos en este proyecto. GeoTools es la base de otros proyectos, destacando principalmente GeoServer y uDIG. El proyecto presenta un modelo de desarrollo muy abierto, los líderes del desarrollo (un comité de dirección del proyecto) colaboran activamente en otros proyectos relacionados: GeoServer, uDIG, GeoAPI (orientado a ofrecer interfaces de acceso basadas en estándares ISO/OGC de modelos de geometrías) o GeoWidgets (creación de widgets o componentes de usuario para aplicaciones SIG). GeoTools es un proyecto con más de 10 años de existencia; surgido a partir de un proyecto embrionario de la universidad de Leeds, ha evolucionado hacia un proyecto abierto, integrándose en OSGeo. Los avances recientes más destacables son la adición del modelo de geometrías simple y filtros de GeoAPI, CQL (Common Query Language), integración con Open Office, soporte Raster, NetCDF, DB2 o MrSID y la creación de widgets Swing.(14). 29.

(36) CAPÍTULO 1 1.8 Utilización del GPS El GPS (Global Positioning System: sistema de posicionamiento global) o NAVSTARGPS (NAVigation System and Ranging - Global Positioning System) es un sistema global de navegación por satélite (GNSS) que permite determinar en todo el mundo la posición de un objeto, una persona, un vehículo o una nave, con una precisión hasta de centímetros (si se utiliza GPS diferencial), aunque lo habitual son unos pocos metros de precisión. Aunque su invención se atribuye a los gobiernos francés y belga, el sistema fue desarrollado, instalado y actualmente operado por el Departamento de Defensa de los Estados Unidos. El GPS funciona mediante una red de satélites en órbita sobre el globo terrestre, a 20 200 km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Cuando se desea determinar la posición, el receptor que se utiliza para ello localiza automáticamente como mínimo tres satélites de la red, de los que recibe unas señales indicando la identificación y la hora del reloj de cada uno de ellos. Con base en estas señales, el aparato sincroniza el reloj del GPS y calcula el tiempo que tardan en llegar las señales al equipo y de tal modo mide la distancia al satélite mediante "triangulación", la cual se basa en determinar la distancia de cada satélite respecto al punto de medición. Conocidas las distancias, se determina fácilmente la propia posición relativa respecto a los tres satélites. Conociendo además las coordenadas o posición de cada uno de ellos por la señal que emiten, se obtiene la posición absoluta o las coordenadas reales del punto de medición. También se consigue una exactitud extrema en el reloj del GPS, similar a la de los relojes atómicos que llevan a bordo cada uno de los satélites. (15) 1.8.1 Características técnicas y prestaciones El Sistema Global de Navegación por Satélite lo componen: . Sistema de satélites: Está formado por 24 unidades con trayectorias sincronizadas para cubrir toda la superficie del globo terráqueo. Más concretamente, repartidos en 6 planos orbitales de 4 satélites cada uno. La 30.

(37) CAPÍTULO 1 energía eléctrica que requieren para su funcionamiento la adquieren a partir de dos paneles compuestos de celdas solares adosados a sus costados. . Estaciones terrestres: Envían información de control a los satélites para controlar las órbitas y realizar el mantenimiento de toda la constelación.. . Terminales receptoras: Indican la posición en la que están; conocidas también como unidades GPS, son las que podemos adquirir en las tiendas especializadas.. 1.8.2 Funcionamiento de los GPS . La situación de los satélites puede ser determinada de antemano por el receptor con la información del llamado almanaque (un conjunto de valores con 5 elementos orbitales) y con parámetros que son transmitidos por los propios satélites. La colección de los almanaques de toda la constelación se completa cada 12-20 minutos y se guarda en el receptor GPS.. . La información que es útil al receptor GPS para determinar su posición se llama efemérides. En este caso, cada satélite emite sus propias efemérides, en la que se incluye la salud del satélite (si debe o no ser considerado para la toma de la posición), su posición en el espacio, su hora atómica,etc.. . El receptor GPS utiliza la información enviada por los satélites (tiempo en la que emitieron las señales, localización de los mismos) y trata de sincronizar su reloj interno con el reloj atómico que poseen los satélites. La sincronización es un proceso de prueba y error que en un receptor portátil ocurre una vez cada segundo. Una vez sincronizado el reloj, puede determinar su distancia hasta los satélites y usa esa información para calcular su posición en la tierra.. . Cada satélite indica que el receptor se encuentra en un punto en la superficie de la esfera, con centro en el propio satélite y de radio la distancia total hasta el receptor.. 31.

(38) CAPÍTULO 1 . Obteniendo información de dos satélites se indica que el receptor se encuentra sobre la circunferencia que resulta cuando se intersecan las dos esferas.. . Si se adquiere la misma información de un tercer satélite se nota que la nueva esfera sólo corta la circunferencia anterior en dos puntos. Uno de ellos se puede descartar porque ofrece una posición absurda. De esta manera,se tendría la posición en 3D. Sin embargo, dado que el reloj que incorporan los receptores GPS no está sincronizado con los relojes atómicos de los satélites GPS, los dos puntos determinados no son precisos.. . Teniendo información de un cuarto satélite, se elimina el inconveniente de la falta de sincronización entre los relojes de los receptores GPS y los relojes de los satélites. Es en este momento cuando el receptor GPS puede determinar una posición 3D exacta (latitud, longitud y altitud). Al no estar sincronizados los relojes entre el receptor y los satélites, la intersección de las cuatro esferas con centro en estos satélites es un pequeño volumen en vez de ser un punto. La corrección consiste en ajustar la hora del receptor de tal forma que este volumen se transforme en un punto. (15). 1.8.3 Aplicaciones relacionadas con GPS A continuación se mencionan algunas de las aplicaciones relacionadas con los GPS, tanto civiles como militares: Civiles: . Navegación terrestre (y peatonal), marítima y aérea. Muchos automóviles lo incorporan en la actualidad, siendo de especial utilidad para encontrar direcciones.. . Teléfonos móviles. . Topografía y geodesia. . Localización agrícola (agricultura de precisión), ganadera y de fauna 32.

(39) CAPÍTULO 1 . Salvamento y rescate. . Deporte, acampada y ocio. . Aplicaciones científicas en trabajos de campo. . Rastreo y recuperación de vehículos. . Navegación deportiva. . Deportes aéreos: parapente, ala delta, planeadores, etc.. . Existe quien dibuja usando tracks o juega utilizando el movimiento como cursor (común en los GPS garmin).. . Sistemas de gestión y seguridad de flotas. Militares: . Navegación terrestre, aérea y marítima. . Guiado de misiles y proyectiles de diverso tipo. . Búsqueda y rescate. . Reconocimiento y cartografía. . Detección de detonaciones nucleares. 1.9 Algoritmos de búsqueda en ficheros. Un algoritmo de búsqueda está diseñado para localizar un elemento con ciertas propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro correspondiente a cierta persona en una base de datos, o la mejor movida en una partida de ajedrez. La variante más simple del problema es la búsqueda de un número en un vector. (16). 33.

(40) CAPÍTULO 1 Los algoritmos de búsqueda lineal y binaria son 2 de los algoritmos más usados para encontrar elementos en una estructura de datos. La búsqueda lineal probablemente es sencilla de implementar e intuitiva. Básicamente consiste en buscar de manera secuencial un elemento, es decir, preguntar si el elemento buscado es igual al primero, segundo, tercero y así sucesivamente hasta encontrar el deseado. Entonces este algoritmo tiene una complejidad de O(n). La búsqueda binaria al igual que otros algoritmos como el quicksort utiliza la técnica divide y vencerás. Uno de los requisitos antes de ejecutar la búsqueda binaria, es que el conjunto de elementos debe de estar ordenado. Existen muchos algoritmos de búsqueda entre los que se encuentran: búsqueda lineal, binaria, indexada, mediante hashing, entre otros. 1.10 PostgreSQL PostgreSQL es un sistema de gestión de base de datos relacional orientado a objetos y libre, publicado bajo la licenciaBSD. Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyada por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group). Es más completo que MySQL, ya que permite métodos almacenados, restricciones de integridad, vistas, etc., aunque en las últimas versiones de MySQL se han hecho grandes avances en ese sentido. 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, 34.

Referencias

Documento similar

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

El principio general mencionado antes implica, evidentemente, que si la competencia autonómica es exclusiva y plena, las Comunidades Autónomas adoptarán las medidas de

Otra circunstancia que nos animó a tener en cuenta la alternativa de contar con un segundo grupo de discusión fue la gran dificultad que supone coordinar a distintas personas

entorno algoritmo.

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Para facilitar su desarrollo y desacoplar funcionalidad, el proyecto se ha dividido en dos m´ odulos: uno encargado de procesar las medidas entrantes de los sensores y almacenarlas

“iniciar proceso” en el menú de gestión de operativa básica y el procesamiento de información visual se ha detenido. El usuario selecciona la opción “detener proceso” del

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones