• No se han encontrado resultados

Herramienta administrativa para mecanismo de replicación SymmetricDS

N/A
N/A
Protected

Academic year: 2020

Share "Herramienta administrativa para mecanismo de replicación SymmetricDS"

Copied!
97
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. Título: Herramienta administrativa para mecanismo de replicación SymmetricDS Tesis Presentada en Opción al Título Académico de Máster en Ciencia de la Computación Autor:. Ing. Reinier Castillo Figueroa Tutor:. Dr. Rosendo Moreno Rodríguez Santa Clara 2011. I.

(2) El futuro tiene muchos nombres. Para los débiles es lo inalcanzable. Para los temerosos, lo desconocido. Para los valientes es la oportunidad. Víctor Hugo.

(3) RESUMEN. RESUMEN La carencia de herramientas gráficas y libres para la replicación entre bases de datos, entorpecen el desarrollo y rapidez en la instalación y configuración de los mecanismos de réplica. Es por ello que la presente investigación aborda el diseño e implementación de una herramienta libre, que funcione sobre la web 2.0 y administre con eficiencia todos los objetos del mecanismo de replicación SymmetricDS. Para ello, se parte de los conceptos asociados a la replicación de datos y del estudio y caracterización de los mecanismos de réplica de software libre más utilizados destacándose las ventajas de SymmetricDS. Además se fundamentan las tecnologías y herramientas de software libre que serán utilizadas en la implementación de la interfaz de administración. Se describen los Casos de Uso del sistema, diagramas de clase y de componentes más significativos. También se detalla el diagrama de despliegue que servirá de apoyo para la implantación del sistema. Finalmente y con el objetivo de facilitar la interacción de los usuarios con la herramienta, se realiza una descripción de las funcionalidades de la misma a través del manual de usuario.. I.

(4) ABSTRACT. ABSTRACT The lack of graphics and free tools for replication between databases, hinder the development and speed of installation and configuration of replication mechanisms. That is why this research comes about the design and implementation of a free tool that works on web 2.0 and efficiently manages all objects in the replication mechanism SymmetricDS. It starts with the concepts associated with data replication and the study and characterization of free software replication mechanisms most widely used highlighting the advantages of SymmetricDS. In addition, it´s also fundamented the technologies and free software tools to be used in the implementation of the management interface. We describe the system use cases, class diagrams and most significant components. It also detailed the deployment diagram which will support the implementation of the system. Finally, with the aim of facilitating the user interaction with the tool, there is a description of the features of it through the user manual.. II.

(5) TABLA DE CONTENIDOS. TABLA DE CONTENIDOS INTRODUCCIÓN -------------------------------------------------------------------------------------------------- 1 CAPÍTULO I: Mecanismos de replicación de datos en SGBD ---------------------------------------- 6 1.1. Conceptos generales ---------------------------------------------------------------------------------------6 Replicación ---------------------------------------------------------------------------------------------------------- 6 Replicación multimaster ------------------------------------------------------------------------------------------ 6 Propagación sincrónica ------------------------------------------------------------------------------------------- 7 Replicación heterogénea ----------------------------------------------------------------------------------------- 7 Replicación lógica ------------------------------------------------------------------------------------------------- 7. 1.1.1 1.1.2 1.1.3 1.1.4 1.1.1. 1.2. SymmetricDS como mecanismo de replicación de datos libre ----------------------------------7. 1.2.1. 1.2.2. 1.2.3. 1.2.4. 1.2.5. 1.2.6. 1.2.7.. 1.3. Slony I ------------------------------------------------------------------------------------------------------------ 8 CyberCluster ---------------------------------------------------------------------------------------------------- 8 PgCluster --------------------------------------------------------------------------------------------------------- 9 Pyreply------------------------------------------------------------------------------------------------------------ 9 Streaming replication ---------------------------------------------------------------------------------------- 10 DBReplicator -------------------------------------------------------------------------------------------------- 10 SymmetricDS ------------------------------------------------------------------------------------------------- 10. Ambiente de desarrollo de la aplicación ----------------------------------------------------------- 13. 1.3.1 Tecnologías ------------------------------------------------------------------------------------------------------- 13 1.3.1.1 Lenguaje de programación del lado del servidor --------------------------------------------------- 13 1.3.1.1.1 Python --------------------------------------------------------------------------------------------------- 13 1.3.1.1.2 Java ------------------------------------------------------------------------------------------------------ 15 1.3.1.2 Lenguaje de programación del lado del cliente----------------------------------------------------- 17 1.3.1.2.1 HTML --------------------------------------------------------------------------------------------------- 18 1.3.1.2.2 Java Script ---------------------------------------------------------------------------------------------- 18 1.3.1.2.3 CSS ------------------------------------------------------------------------------------------------------ 19 1.3.1.3 Servidores -------------------------------------------------------------------------------------------------- 19 1.3.1.3.1 Apache -------------------------------------------------------------------------------------------------- 19 1.3.1.3.2 Tomcat -------------------------------------------------------------------------------------------------- 20 1.3.1.3.2.1. Axis2 ---------------------------------------------------------------------------------------------- 21 1.3.2 Frameworks de desarrollo ------------------------------------------------------------------------------------- 21 1.3.2.1 Django------------------------------------------------------------------------------------------------------- 21 1.3.2.2 Hibernate --------------------------------------------------------------------------------------------------- 22 1.3.3 Bibliotecas --------------------------------------------------------------------------------------------------------- 23 1.3.3.1 ExtJS--------------------------------------------------------------------------------------------------------- 23 1.3.3.2 Suds ---------------------------------------------------------------------------------------------------------- 24 1.3.4 Herramientas ------------------------------------------------------------------------------------------------------ 24 1.3.4.1 Visual Paradigm------------------------------------------------------------------------------------------- 24 1.3.4.2 Eclipse------------------------------------------------------------------------------------------------------- 25. 1.4. Conclusiones del capítulo ------------------------------------------------------------------------------ 26. III.

(6) TABLA DE CONTENIDOS. CAPÍTULO II: Modelado de la interfaz de administración para SymmetricDS --------------- 27 2.1.. SymmetricDS ---------------------------------------------------------------------------------------------- 27. 2.2.. Arquitectura del sistema ------------------------------------------------------------------------------- 29. 2.3.. Componentes de la Herramienta -------------------------------------------------------------------- 31. 2.4.. Casos de uso del sistema -------------------------------------------------------------------------------- 33. 2.5.. Diagramas de clases -------------------------------------------------------------------------------------- 43. 2.5.1. 2.5.2.. Diagrama de clases de la aplicación en Django (Python)-------------------------------------------- 44 Diagrama de clases del servicio web --------------------------------------------------------------------- 46. 2.6.. Diagramas de secuencias ------------------------------------------------------------------------------- 49. 2.7.. Diseño de la base de dato ------------------------------------------------------------------------------- 53. 2.8.. Conclusiones del capítulo ------------------------------------------------------------------------------ 56. CAPÍTULO III: Implementación y manual de usuario ------------------------------------------------ 57 3.1.. Implementación ------------------------------------------------------------------------------------------- 57. 3.1.1. 3.1.2. 3.1.3.. 3.2.. Diagrama de Componentes--------------------------------------------------------------------------------- 57 Paquetes de las aplicaciones ------------------------------------------------------------------------------- 60 Diagrama de Despliegue ------------------------------------------------------------------------------------ 61. Manual de Usuario --------------------------------------------------------------------------------------- 62. 3.2.1. Estructura de la interfaz principal------------------------------------------------------------------------- 63 3.2.1.1. Componentes ---------------------------------------------------------------------------------------------- 63 3.2.1.2. Área de trabajo -------------------------------------------------------------------------------------------- 66 3.2.2. Interfaces de usuario de los componentes --------------------------------------------------------------- 68 3.2.2.1. Interfaces de usuario para los sets. -------------------------------------------------------------------- 69 3.2.2.2. Interfaces de usuario para los servicios. ------------------------------------------------------------- 70 3.2.2.3. Interfaces de usuario para los grupos. ---------------------------------------------------------------- 71 3.2.2.4. Interfaces de usuario para los nodos. ----------------------------------------------------------------- 72 3.2.2.5. Interfaces de usuario para los vínculos entre grupos. --------------------------------------------- 75 3.2.2.6. Interfaces de usuario para los canales. --------------------------------------------------------------- 77 3.2.2.7. Interfaces de usuario para los disparadores. --------------------------------------------------------- 78 3.2.2.8. Interfaces de usuario para los ruters.------------------------------------------------------------------ 80 3.2.2.9. Interfaces de usuario para los ruters - disparadores. ----------------------------------------------- 81 3.2.3. Visualización de datos: -------------------------------------------------------------------------------------- 83. 3.3.. Conclusiones del capítulo ------------------------------------------------------------------------------ 84. CONCLUSIONES ------------------------------------------------------------------------------------------------ 85 RECOMENDACIONES ----------------------------------------------------------------------------------------- 86 REFERENCIAS BIBLIOGRÁFICAS ---------------------------------------------------------------------------- 87 BIBLIOGRAFÍA -------------------------------------------------------------------------------------------------- 88. IV.

(7) ÍNDICE DE FIGURAS. ÍNDICE DE FIGURAS FIGURA 1: Diagrama de integración de tecnologías .................................................................... 30 FIGURA 2: Diagrama de interacción ente las aplicaciones de la herramienta................................ 31 FIGURA 3: Diagrama de casos de uso del sistema ....................................................................... 33 FIGURA 4: Diagrama de clases de la aplicación web ................................................................... 44 FIGURA 5: Diagrama de clases del servicio web ......................................................................... 47 FIGURA 6: Diagrama de secuencia para el caso de uso crear nodo............................................... 50 FIGURA 7: Diagrama de secuencia para el caso de uso eliminar nodo ......................................... 51 FIGURA 8: Modelo físico de datos de la aplicación web .............................................................. 54 FIGURA 9: Modelo físico de las tablas de metadato del mecanismo SymmetricDS ...................... 55 FIGURA 10: Diagrama de componentes para el caso de uso gestionar nodo ................................. 58 FIGURA 11: Componentes del paquete servicio web implicados en el caso de uso gestionar nodo 60 FIGURA 12: Diagrama de despliegue de la herramienta ............................................................... 61 FIGURA 13: Interfaz principal de la aplicación. ........................................................................... 63 FIGURA 14: Árbol de componentes en el explorador. ................................................................. 64 FIGURA 15: Clic derecho para la opción de editar y eliminar componentes. ................................ 65 FIGURA 16: Clic derecho para la opción de crear componentes. ................................................. 66 FIGURA 17: Submenú set replicación. ........................................................................................ 67 FIGURA 18: Submenú servicio de administración. ...................................................................... 67 FIGURA 19: Submenú nodos....................................................................................................... 68 FIGURA 20: Submenú disparadores............................................................................................ 68 FIGURA 21: Interfaz de usuario crear set de replicación. ............................................................ 69 FIGURA 22: Interfaz de usuario crear servicio de administración................................................ 70 FIGURA 23: Interfaz de usuario crear grupo de replicación. ....................................................... 71 FIGURA 24: Interfaz de usuario crear nodo................................................................................. 73 FIGURA 25: Interfaz de usuario nodos. ....................................................................................... 74 FIGURA 26: Interfaz de usuario crear vínculo entre grupos. ........................................................ 76 FIGURA 27: Interfaz de usuario crear canal de replicación. ........................................................ 77 FIGURA 28: Interfaz de usuario crear disparador. ...................................................................... 79 FIGURA 29: Interfaz de usuario crear ruter................................................................................. 80 FIGURA 30: Interfaz de usuario crear ruter - disparador. ........................................................... 82 FIGURA 31: Interfaz de usuario de la vista de datos. ................................................................... 83. V.

(8) ÍNDICE DE TABLAS. ÍNDICE DE TABLAS TABLA 1: Variables de la hipótesis de investigación ..................................................................... 3 TABLA 2: Comparación ente mecanismos de replicación libres para PostgreSQL ........................ 11 TABLA 4: Descripción del caso de uso crear nodo ....................................................................... 34 TABLA 5: Descripción del caso de uso eliminar nodo.................................................................. 38 TABLA 6: Descripción del caso de uso modificar nodo ............................................................... 40. VI.

(9) INTRODUCCIÓN. INTRODUCCIÓN Con el surgimiento de los Sistemas Gestores de Base Datos (SGBD) se ha logrado un avance significativo para el almacenamiento de la información. La posibilidad de compartir datos, eliminar inconsistencias, mejorar la seguridad; y como valor agregado, recolectar cualquier tipo de información, ahorrar espacio de almacenamiento, y replicar datos ha convertido a los SGBD en la principal fuente de almacenamiento en el campo informático. Una de las funcionalidades que más se tiene en cuenta al usar un servidor de base datos con fines productivos, es la capacidad de replicar sus datos hacia diferentes SGBD, permitiendo la transferencia automática de los mismos de un lugar a otro, con la seguridad requerida. La mayoría de los SGBD de una forma u otra emplean algún mecanismo de replicación. Los gestores privativos poseen mecanismos intuitivos y fáciles de usar, pero requiere el pago de una cuota periódica por su licencia, mientras que los libres carecen de herramientas administrativas que faciliten el trabajo con el mecanismo de replicación. Si se desea solucionar un problema informático de replicación de datos haciendo uso de un gestor privativo, aparecen dos variantes muy usadas, SQLSERVER (Microsoft Corporation 2011) y ORACLE (Oracle Corporation 2011). Las dos opciones poseen las herramientas necesarias para montar una solución de réplica a la magnitud que se desee implantar, aunque hay tener en cuenta que para su uso se deben invertir grandes sumas de dinero en pago de licencias se software. Otra limitación del modelo software privativo es que generalmente hace cumplir las restricciones que cuando por razón de que su gobierno mantiene algún tipo de sanción económica para con el país del que es ciudadano o residente el interesado. Ejemplo típico en este sentido es la imposibilidad de adquisición de software propietario norteamericano por parte de Cuba (Batista Soler, O., & Rodríguez Figueredo, H 2006). Es significativo que las grandes empresas desarrolladoras de software tienen su domicilio legal en Estados Unidos.. 1.

(10) INTRODUCCIÓN. Por tales motivos el Estado cubano ha encaminado sus esfuerzos a la informatización de la sociedad basados en la aplicación ordenada y masiva de las Tecnologías de la Información y las Comunicaciones y orientado a lograr la soberanía tecnológica. Dentro de los SGBD libres, PostgreSQL (PostgreSQL Global Development Group 1996) posee diferentes mecanismos de replicación de datos como SLONY (Slony Development Group 2007), PYREPLY (Mariano Reingart 2009), entre otros; pero la instalación y administración de estos mecanismos resulta bastante difícil, dado que carecen de interfaces gráficas para su configuración. Esta característica dificulta el uso de los mecanismo libres quedando disponible estas soluciones solo para usuarios avanzados en el tema y obligando a los principiantes a usar soluciones privativas. SymmetricDS (JumpMind, Inc 2007) es una solución libre para la replicación de base datos entre diferentes gestores. La característica que lo hace más atractivo es la capacidad de replicar datos entre redes WAN 1 si necesidad del montaje de sistemas VPN 2 en las redes origen y destino; sin embargo no contar con una interfaz de usuario que lo administre, ocasiona el rechazo de los usuarios. Esta deficiencia de SymmetricDS no permite explotar al máximo todas sus potencialidades, limitando con ello la calidad de las soluciones informáticas en que se aplique. De la situación problemática anterior se plantea el siguiente problema científico: la carencia de herramientas gráficas libres para la administración del mecanismo de replicación SymmetricDS, obstaculizan su uso para solucionar problemas de replicación en bases de datos. El objeto de estudio del problema se enmarca en las herramientas administrativas para la replicación de bases de datos y el campo de acción en las herramientas administrativas para el mecanismo de replicación SymmetricDS.. 1. WAN: tipo de red de computadoras capaz de cubrir distancias desde unos 100km hasta unos 1000 km, dando el servicio a un país o un continente. 2 Virtual Private Network (VPN): es un sistema para simular una red privada sobre una red pública.. 2.

(11) INTRODUCCIÓN. Para dar solución al problema científico se plantea como objetivo general: elaborar una herramienta con interfaces gráficas, sobre la web 2.0, que facilite a los usuarios la configuración y administración del mecanismo de replicación SymmetricDS. Como objetivos específicos se plantea: 1. Caracterizar el mecanismo de replicación SymmetricDS. 2. Definir las tecnologías de software libre apropiadas para crear una aplicación que permita administrar SymmetricDS orientado a la web 2.0. 3. Desarrollar el análisis y diseño de la herramienta con la ayuda del UML. 4. Implementar una herramienta administrativa para el mecanismo de replicación SymmetricDS sobre la web 2.0. Se define como hipótesis de investigación: si se crea una herramienta con interfaces gráficas para administrar el mecanismo de replicación SymmetricDS, entonces se incrementará su usabilidad por parte de los administradores de bases de datos que necesiten replicar información entre gestores que estén soportados por la herramienta. Variables Tabla 1: Variables de la hipótesis de investigación. Independientes. Dependientes. Herramienta con interfaces gráficas, para administrar el mecanismo de replicación SymmetricDS. Usabilidad del mecanismo por parte de los administradores de bases de datos que necesiten replicar información entre gestores que estén soportados por la herramienta. El tipo de investigación utilizado es la investigación descriptiva aplicando los métodos de investigación: histórico lógico, analítico sintético e hipotético deductivo.. 3.

(12) INTRODUCCIÓN. Justificación de la investigación Con el avance de las tecnologías, los SGBD son cada día más usados y con ellos los mecanismos de replicación en las soluciones informáticas. Alineados a la política del estado cubano para lograr la soberanía tecnológica se impone el uso de soluciones de software libre. Para un mayor rendimiento de los mecanismos de replicación de datos bajo esta filosofía se requiere un alto nivel de conocimiento y experticia por parte de los usuarios. Contar con aplicaciones de software libre que faciliten a los usuarios configurar y administrar este tipo de herramientas es de gran utilidad pues libera a las empresas de los pagos de licencias de software y aminora los costos de adquisición de materiales de apoyo, consultorías y solución de problemas. El valor práctico consiste en la creación de una herramienta administrativa sobre la web 2.0 con el uso de tecnologías libres que permita gestionar las funcionalidades de SymmetricDS, facilitando a los usuarios finales, mayor usabilidad y explotación del mecanismo de replicación, así como minimizar los gastos en la producción de software por el concepto de licencias de software. El documento está estructurado en tres capítulos que se describen a continuación: En el Capítulo I. Mecanismos de replicación de datos en Sistemas Gestores de Bases de Datos se formalizan los principales conceptos de la investigación y se describen elementos fundamentales sobre los mecanismos de replicación de datos de software libre, dejando clara la posición del autor. Además se fundamenta la selección de las tecnologías escogidas para la implementación de la herramienta de administración para el mecanismo de replicación seleccionado.. 4.

(13) INTRODUCCIÓN. En el Capítulo II. Modelado de la interfaz de administración para SymmetricDS se exponen: la arquitectura de la aplicación y el modelado del sistema a través de los diagramas de casos de uso del sistema, clases, secuencia y modelo físico de la base de datos. En el Capítulo III. Implementación y manual de usuario queda representada la implementación del sistema a través de los diagramas de componentes y despliegue Además, se especifica a través de un manual de usuario las principales funcionalidades de la aplicación. Seguidamente se presentan las conclusiones y las recomendaciones del trabajo, así como las referencias y bibliografía utilizadas.. 5.

(14) CAPÍTULO I Mecanismos de replicación de datos en SGBD. CAPÍTULO I: Mecanismos de replicación de datos en SGBD La periódica distribución y recopilación de la información ubicada geográficamente distante resulta una engorrosa tarea a realizar. Con el uso de un mecanismo de réplica de datos bien configurado y que explote al máximo sus potencialidades se puede automatizar y lograr buenos resultados en este sentido. En este Capítulo se tratan los conceptos fundamentales al respecto de los mecanismos de replicación de datos. Se caracterizan los mecanismos de replicación de software libre más usados fundamentando la selección del autor. Además se describe y explica la selección de las tecnologías escogidas para la implementación de la herramienta de administración para el mecanismo de replicación seleccionado.. 1.1 Conceptos generales Para una buena compresión y entendimiento de este documento es necesario dominar los conceptos básicos de la replicación de datos en los SGBD. Se hace necesario conocer las clasificaciones y característica que poseen los mecanismos de replicación. A continuación se expone un grupo de conceptos y terminologías que se usan en el campo de la replicación en bases de datos. 1.1.1. Replicación. “La replicación copia y mantiene los objetos de las bases de datos en las múltiples bases de datos que levantan en un sistema distribuido. La replicación puede mejorar el funcionamiento y proteger la disponibilidad de las aplicaciones, porque alterna opciones de acceso de los datos existente” (Raúl Monge 2005).. 1.1.2. Replicación multimaster. “La replicación multimaster permite múltiples sitios actuando como pares iguales, para manejar los grupos de objetos replicados en la base de datos. Las aplicaciones pueden actualizar. cualquier. tabla. replicada. en. cualquier. sitio. en una. configuración. multimaster”(Raúl Monge 2005).. 6.

(15) CAPÍTULO I Mecanismos de replicación de datos en SGBD. 1.1.3. Propagación sincrónica. “La propagación sincrónica de datos ocurre cuando una aplicación actualiza una replicación local de una tabla, y dentro de la misma transacción también actualiza el resto de las replicación de la misma tabla. Por lo tanto, la réplica sincrónica de los datos también se llama réplica en tiempo real de datos. Se utiliza solamente cuando las aplicaciones requieren que los sitios replicados sigan sincronizados continuamente” (Raúl Monge 2005).. 1.1.4. Replicación heterogénea. La replicación heterogénea no es más que la replicación de datos entre diferentes fuentes de datos capaces de replicar datos entre diferentes SGBD tales como PostgreSQL, ORACLE, MySQL, etc.. 1.1.1. Replicación lógica. La replicación lógica es el caso en que para lograr la replicación de datos se utilizan sentencias SQL y no ficheros físicos del gestor de bases de datos.. 1.2 SymmetricDS como mecanismo de replicación de datos libre En el mundo empresarial existen grandes compañías que desarrollan potentes gestores de base de datos que traen incorporado mecanismos de replicación robustos e interfaces intuitivas que permiten la configuración y administración de estos mecanismos con facilidad. Pero ¿resulta esta la mejor opción? La selección de la tecnología apropiada varía en dependencia a las necesidades y característica que tenga el problema a resolver. En ocasiones resulta un derroche pagar los altos precios de las licencias de estos mecanismos privativos, mientras que se puede utilizar tecnologías libres para solucionar estos problemas. PostgreSQL por sus características es el gestor libre seleccionado por el país para migrar las soluciones de bases de datos a software libre. La réplica en este gestor se puede lograr a través de diferentes mecanismos para tales fines. Sin embargo resulta difícil seleccionar un mecanismo de replicación para un propósito general, capaz de ser puesto en marcha en cualquier ambiente de replicación. Por tal motivo en esta investigación se abordaran los. 7.

(16) CAPÍTULO I Mecanismos de replicación de datos en SGBD mecanismos de replicación libres que soporta PostgreSQL como una de sus fuentes de datos.. 1.2.1.. Slony I. Slony I es un mecanismo de replicación desarrollado específicamente para PostgresSQL. Es asincrónico, su replicación es lógica y está desarrollado en C y se integra perfectamente al gestor PostgreSQL. Presenta un sistema de replicación que puede configurarse para ser de cascada, es decir un servidor cliente de la replicación puede, a su vez, ser proveedor de datos para otro servidor cliente. Posibilitando manejar la carga de replicación en los servidores. Es un sistema rápido y que consume poco recursos en el servidor que se ejecuta. Cuenta con la desventaja de insertar un trigger 3en las bases de datos de los servidores clientes en cada tabla. Además no permite replicar automáticamente cambios en los objetos largos y los cambios hechos por comandos DDL 4 Se dificulta la instalación y configuración debido a la carencia de interfaces.. 1.2.2.. CyberCluster. CyberCluster es un mecanismo de replicación síncrono y multimaestro para la replicación de datos en PostgreSQL. Presenta Balanceadores de Carga para asegurarse de que todos los nodos de base de datos pueden ser utilizados durante su normal funcionamiento. También cuenta con un mecanismo de Manejo de Errores, separando, al detectar un error, el nodo con problemas de los nodos del sistema de trabajo y sigue su funcionamiento normalmente en el resto de los nodos. Tan pronto como el nodo con problemas esté listo, puede ser añadido de nuevo al sistema. Este mecanismo de replicación permite la recuperación, cuando un clúster bases de datos se inicia en modo de recuperación, automáticamente se recuperará utilizando un máster activo. Tiene como desventajas que:  Requiere de una versión modificada del servidor. 3. Trigger: procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE en una base de datos). 4 DDL (Data Definition Languaje - lenguaje de definición de datos): lenguaje utilizado para la creación de una base de datos y todos sus componentes. 8.

(17) CAPÍTULO I Mecanismos de replicación de datos en SGBD  Cuando se replica objetos grandes deben ser colocados en un directorio que pueda ser leído por todos los nodos base de datos.  No posee interfaz gráfica para su administración.. 1.2.3.. PgCluster. PgCluster está desarrollado en C y es un mecanismo de replicación sincrónica y multimaestro. Su replicación es física, lo que significa que para replicar utiliza los ficheros del gestor y no los objetos lógicos del mismo. Presenta un servidor para balancear la carga de las peticiones y permitir que la replicación se realice lo más rápido posible. Tiene un mecanismo de detección de errores que permite asilar a los servidores que tengan problema de conexión y continuar con el mecanismo de replicación sin afectar a los demás servidores. Este mecanismo posee la funcionalidad de poner en stand-alone 5 los clúster de bases de datos si el servidor de replicación falla. En este modo se puede entrar de 2 formas, la primera es de modo solo lectura donde solo se le pueden hacer consultas a las bases de datos; y la segunda es modo lectura – escritura, permitiendo la actualización en las bases de datos. Este sistema permite que la replicación y las bases de datos siempre estén disponibles aunque existan fallos. Emplea un sistema de recuperación, mediante el cual una base de datos al iniciarse en este modo recupera todos los datos de la base de datos maestra y al terminar este proceso satisfactoriamente es que se incluye en el sistema de replicación. Si existen fallos en las bases de datos se pueden recuperar los datos, al menos, de una copia en buen estado. Cuenta con la desventaja de que la replicación es sincrónica, si la conexión falla pueden ocurrir errores. Además la replicación es de forma física por lo que pueden ocurrir errores en la trasferencia de archivos.. 1.2.4.. Pyreply. Pyreply es un mecanismo asincrónico, multiplataforma y desarrollado en Python. Fácil instalación y administración aunque es a través de comandos en una terminal. Permite. 5. Stand-alone: sistema que puede funcionar por sí mismo.. 9.

(18) CAPÍTULO I Mecanismos de replicación de datos en SGBD detención de conflictos y replicación maestro-esclavo y multimaestro. Posee la desventaja de no soportar objetos grandes y de no contar con una herramienta gráfica para su administración.. 1.2.5.. Streaming replication. Streaming replication proporciona la capacidad de enviar de forma continua y aplicar los registros WAL xlog 6 a un cierto número de servidores de base datos en espera con el fin de mantenerlos actualizados. Se desarrolló para incorporarlo en la distribución 9.0 de PostgreSQL por lo que tiene una buena integración con el gestor. Su instalación y administración se realiza a través ficheros de configuración y desde una terminal.. 1.2.6.. DBReplicator. DBReplicator es una suite de software y API diseñado para realizar la replicación asincrónica. Está desarrollado en Java. Soporta múltiples gestores como fuentes de datos, y puede ser usado a través de líneas de comandos o una interfaz gráfica. La interfaz gráfica es de escritorio y pese algunas limitaciones con las llaves primarias y las restricciones entre bases de datos heterogéneas. La actualización manual puede afectar el funcionamiento de la réplica, y existen problemas con las columnas autoincrementales que son llaves primarias.. 1.2.7.. SymmetricDS. SymmetricDS es un software de replicación asincrónica, soporta múltiples suscripciones y de sincronización bidireccional, usa tecnologías web y de bases de datos para replicar tablas entre bases de datos relacionales. Está desarrollado en Java lo que le proporciona su carácter multiplataforma, es catalogado como software libre y de código abierto lo que permite una alta capacidad de incremento de nuevas funcionalidades, así como la corrección de errores. El software puede ser instalado en un proceso stand-alone, como una aplicación web en un servidor de aplicaciones de. 6. WAL xlog: registros log en PostgreSQL. 10.

(19) CAPÍTULO I Mecanismos de replicación de datos en SGBD Java o puede ser embebido en otra aplicación, aumentando con esto las posibilidades de solución a problemas en múltiples situaciones. A pesar de contar con grandes potencialidades para ser desplegado en diferentes ambientes de replicación resulta un poco engorrosa la administración y control del SymmetricDS, debido a que no cuenta con una interfaz que posibilite la administración visual de todos los objetos y componentes que contiene el mecanismo. La selección del mecanismo de replicación adecuado para poder montar un ambiente de replicación genérico es complejo, pues cada mecanismo posee características enfocadas a resolver un problema en específico. Sin embargo se pueden clasificar los mecanismos antes mencionados teniendo en cuenta un grupo de características que facilitan la implantación de cualquier solución de réplica, como muestra la tabla siguiente. Tabla 2: Comparación ente mecanismos de replicación libres para PostgreSQL. Mecanismo de replicación. Asincronismo Replicación Heterogéneo Lógica. Slony-I. X. Multiplataforma. X. X. PGCluster CyberCluster. X. Pyreply. X. X. X. Streaming replication. X. X. DBReplicator. X. X. X. X. SymmetricDS. X. X. X. X. Como muestra la tabla 2 DBReplication y SymmetricDS son los mecanismos que mayores. posibilidades. poseen. para. montar. cualquier. ambiente. de. réplica.. DBReplication es un software con facilidades para los usuarios pues cuenta con interfaces de usuario para su administración, sin embargo esta ventaja solo es posible. 11.

(20) CAPÍTULO I Mecanismos de replicación de datos en SGBD si el computador donde se montará la réplica posee interfaz gráfica. En un amb iente de producción es recomendable que los servidores tengan Sistemas Operativos a modo texto por lo que si se desea utilizar DBReplication debe instalarse y administrarse este software a través de líneas de comandos. Por otro lado SymmetricDS no posee interfaz de usuario como la mayoría de los mecanismos antes mencionados, pero por sus características puede ser utilizado en diferentes situaciones, por ejemplo, puede ser instalado de tres forma diferentes, lo cual es una ventaja significativa. La primera variante de instalación es cuando se desea tener el SymmetricDS corriendo como un servicio más en un sistema operativo, administrándolo a través de líneas de de comandos en una consola. La segunda variante instalar SymmetricDS como una aplicación web. Como este mecanismo hace uso del protocolo HTTP para transportar los datos a través de Internet, lo que lo hace válido tanto para redes LAN como WAN. Esta característica le proporciona a SymmetricDS la ventaja de ser usado en un entorno donde las bases datos se encuentran a gran distancia. Por último este mecanismo de replicación puede se embebido dentro de una aplicación. Esta característica es de utilidad cuando se está desarrollando una aplicación y se desea ejecutar alguna de las funcionalidades que tiene SymmetricDS, haciendo uso del mecanismo para replicar los datos deseados. Por lo tanto el autor considera a SymmetricDS como el mecanismo de replicación libre que soporta a PostgreSQL como una de sus fuentes de datos y que posee la cualidad de ser utilizado de tres formas diferentes: stand-alone, como aplicación web o embebido en una aplicación en dependencia de las necesidades del usuario. A pesar de las funcionalidades que brinda este mecanismo para la replicación de datos SymmetricDS necesita una herramienta que facilite la interacción de los usuarios con el mismo ya que estos no se sienten cómodos al utilizarlo.. 12.

(21) CAPÍTULO I Mecanismos de replicación de datos en SGBD. 1.3 Ambiente de desarrollo de la aplicación Para la creación de software existen tecnologías disponibles para los desarrolladores que les posibilita la creación de aplicaciones. En los últimos años la web se ha convertido en la principal opción para la creación de software. Debido a esto han surgido librerías y herramientas que han evolucionado este mundo en todos los sentidos. La selección de las tecnologías y herramientas para la creación de aplicaciones web, en una medida u otra influye en la calidad de las soluciones de software que se desarrollen. Por lo que esta tarea es un proceso primordial cuando se decide realizar aplicación con eficiencia y calidad. El software libre ha tomado partido en el desarrollo de software, siendo la opción de muchas empresas para lograr resultados favorables y económicos. Para el desarrollo de la aplicación en esta investigación se optó por usar tecnologías y herramientas libres para su confección.. 1.3.1 1.3.1.1. Tecnologías Lenguaje de programación del lado del servidor. Los lenguajes de programación del lado del servidor son aquellos que son reconocidos, ejecutados e interpretados por el propio servidor y que se envían al cliente en un formato comprensible para él.. 1.3.1.1.1 Python “Python es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad. En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:. 13.

(22) CAPÍTULO I Mecanismos de replicación de datos en SGBD  La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.  La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a 5 líneas de código menos que su equivalente en Java o C.  La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac, Amiga y otros.  Además, Python es gratuito, incluso para propósitos empresariales.” (Miguel Angel Alvarez 2003). Características de Python:  Propósito general: Con Python se pueden crear todo tipo de programas.  Multiplataforma: Hay versiones disponibles de Python en múltiples sistemas operativos. Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el lenguaje siempre y cuando exista un intérprete programado para él.  Interpretado: Quiere decir que no es necesario compilar el código antes de su ejecución. Aunque en realidad sí que se realiza una compilación, pero esta es transparente para el programador.  Interactivo: Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias. Cada sentencia se ejecuta y produce un resultado visible, ayudando a entender mejor el lenguaje y probar rápidamente los resultados con la ejecución de porciones de código.  Funciones y bibliotecas: Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además, existen muchas bibliotecas que pueden ser incorporadas a los programas para tratar temas específicos como la programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip.. 14.

(23) CAPÍTULO I Mecanismos de replicación de datos en SGBD  Orientado a Objetos: La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear programas con componentes reutilizables.  Sintaxis clara: Python tiene una sintaxis muy visual, gracias a una notación identada (con márgenes) de obligado cumplimiento. En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras clave begin y end. Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas notaciones y que los programas de cualquier persona tengan un aspecto muy similar. 1.3.1.1.2 Java Java es un lenguaje de programación que posibilita realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Está desarrollado por la compañía Sun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas más punteras. La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se queda ahí, Java está desarrollándose incluso para distintos tipos de dispositivos además del ordenador como móviles, agendas y en general para cualquier cosa que se le ocurra a la industria. Características de Java  Lenguaje simple: 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. Los programadores experimentados en C++ pueden migrar muy rápidamente a Java y ser productivos en poco tiempo.. 15.

(24) CAPÍTULO I Mecanismos de replicación de datos en SGBD  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.  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.  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.  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. Para acomodar requisitos de ejecución tan variados, el compilador de Java genera bytecodes: un formato intermedio indiferente a la arquitectura diseñada para transportar el código eficientemente a múltiples plataformas hardware y software. El resto de problemas los soluciona el intérprete de Java.. 16.

(25) CAPÍTULO I Mecanismos de replicación de datos en SGBD  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.  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 HotJava, 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.. 1.3.1.2. Lenguaje de programación del lado del cliente. Los lenguajes de lado cliente son aquellos que pueden ser directamente comprendidos por el navegador y no necesitan un pre tratamiento.. 17.

(26) CAPÍTULO I Mecanismos de replicación de datos en SGBD. 1.3.1.2.1 HTML Definiéndolo de forma sencilla, "HTML7 es lo que se utiliza para crear todas las páginas web de Internet". Más concretamente, HTML es el lenguaje con el que se "escriben" la mayoría de páginas web (Javier Eguíluz Pérez 2008). HTML es un lenguaje de marcas hipertextuales, diseñado para estructurar textos para generar páginas web. Gracias a Internet y a los navegadores web, HTML se ha convertido en el formato más fácil para la creación de páginas web debido a su sencillez. La mayoría de las etiquetas del lenguaje HTML son semánticas y su interpretación es realizada por el navegador web. HTML se caracteriza por ser un lenguaje extensible, que se le pueden añadir características, etiquetas y funciones adicionales para el diseño de páginas web, generando un producto vistoso, rápido y sencillo.. 1.3.1.2.2 Java Script Java Script es un lenguaje basado en objetos y guiado por eventos, diseñado específicamente para el desarrollo de aplicaciones cliente-servidor dentro del ámbito de Internet. Los programas escritos con este lenguaje se pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios, convirtiéndolo en un lenguaje interpretado. Ventajas de JavaScript:  Los programas escritos en este lenguaje no requieren de mucha memoria ni tiempo adicional de transmisión, por ser pequeños y compactos.  JavaScript no requiere un tiempo de compilación; ya que los scripts se pueden desarrollar en un período de tiempo relativamente corto.. 7. HTML como indican sus siglas significa (HyperText Mark-Up Language), que viene a ser, en nuestro idioma,. “Lenguaje para el Formato de Documentos de Hipertexto”.. 18.

(27) CAPÍTULO I Mecanismos de replicación de datos en SGBD  Es independiente de la plataforma, hardware o sistema operativo, y funciona correctamente siempre y cuando exista un navegador con soporte JavaScript.. 1.3.1.2.3 CSS Es un lenguaje de hojas de estilos (Cascading Style Sheets) creado para controlar la presentación de documentos estructurados y escritos en XHTML, aspectos como: el color, el tamaño, el tipo de letra, la separación entre párrafos y la tabulación con la que se muestran los elementos de una lista. El propósito del desarrollo de CSS es separar la estructura y el contenido de la presentación estética en un documento, esto permite un control mayor del documento y sus atributos, convirtiendo al XHTML en un documento muy versátil y liviano. “Separar la definición de los contenidos y la definición de su aspecto presenta numerosas ventajas, ya que obliga a crear documentos HTML/XHTML bien definidos y con significado completo (también llamados "documentos semánticos"). Además, mejora la accesibilidad del documento, reduce la complejidad de su mantenimiento y permite visualizar el mismo documento en infinidad de dispositivos diferentes.” (Javier Eguíluz Pérez 2009). Ventajas de CSS:  Control de la presentación de muchos documentos desde una única hoja de estilo.  Control más preciso de la presentación.  Aplicación de diferentes presentaciones a diferentes tipos de medios (pantalla, impresión, etc.). 1.3.1.3. Servidores. 1.3.1.3.1. Apache. Apache es un servidor web potente, flexible y disponible para distintas plataformas y entornos. Es altamente configurable de diseño modular, posibilitando que los. 19.

(28) CAPÍTULO I Mecanismos de replicación de datos en SGBD administradores de sitios web puedan elegir los módulos que serán incluidos y ejecutados en el servidor. Características de Apache:  Es una tecnología gratuita y de código abierto, lo que proporciona transparencia en todo el proceso de instalación.  Es prácticamente universal, por su disponibilidad en multitud de sistemas operativos.  Posee una alta configurabilidad en la creación y gestión de logs, de este modo es posible tener un mayor control sobre lo que sucede en el servidor. Este servidor web Apache tiene una fácil integración con varios lenguajes de programación como: Java, Perl, PHP y especialmente Python. Dicha relación está dada por Mod_python que es un módulo de Apache que integra el intérprete de Python dentro del servidor. Con mod_python se pueden desarrollar aplicaciones web basadas en Python que se ejecutan mucho más rápido que el CGI tradicional y tienen acceso a características avanzadas como la capacidad de mantener conexiones con la base de datos.. 1.3.1.3.2. Tomcat. Apache Tomcat funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems. Tomcat es un servidor web con soporte de servlets y JSPs. Tomcat no es un servidor de aplicaciones, como JBoss o JOnAS. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache. Características de Tomcat:  Implementado a partir de Servlet 2.5 y JSP 2.1  Soporte para Unified Expression Language 2.1. 20.

(29) CAPÍTULO I Mecanismos de replicación de datos en SGBD  Diseñado para funcionar en Java SE 5.0 y posteriores  Soporte para Comet a través de la interfaz CometProcessor 1.3.1.3.2.1.. Axis2. Axis2 es el nuevo motor de webservices de Apache Tomcat. Su arquitectura ha sido diseñada desde cero, teniendo en cuenta las lecciones aprendidas con Axis1. Cabe destacar su mejor rendimiento, pero sobretodo su sistema de módulos que permite, de forma sencilla, añadir nuevas funcionalidades y soportar futuras especificaciones sobre webservices. Axis2 puede utilizar SOAP 1.1, SOAP 1.2 y REST. Además soporta las especificaciones WS-Security, WS-ReliableMessaging, WS-Addressing, WS-Coordination y WS-Atomic Transaction.. 1.3.2. Frameworks de desarrollo. Un framework, en el desarrollo de software es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado.. 1.3.2.1. Django. Django es un framework web de código abierto escrito en Python que permite construir aplicaciones web más rápido y con menos código. “Django fue inicialmente desarrollado para gestionar aplicaciones web de páginas orientadas a noticias de World Online, más tarde se liberó bajo licencia BSD. Django se centra en automatizar todo lo posible y se adhiere al principio DRY (Don't Repeat Yourself).” (Django Software Foundation 2010). Características de Django:  Mapeador objeto-relacional.  Aplicaciones integrables que pueden instalarse en cualquier página gestionada con Django.  API de base de datos robusta.. 21.

(30) CAPÍTULO I Mecanismos de replicación de datos en SGBD  Un sistema extensible de plantillas basado en etiquetas, con herencia de plantillas.  Un despachador de URLs basado en expresiones regulares.  Un sistema middleware para desarrollar características adicionales.  Documentación incorporada accesible a través de la aplicación administrativa (incluyendo documentación generada automáticamente de los modelos y las bibliotecas de plantillas añadidas por las aplicaciones).. 1.3.2.2. Hibernate. Hibernate es una herramienta para la plataforma Java que facilita el mapeo de atributos entre una base de datos relacional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones. Hibernate es una herramienta ORM completa que ha conseguido en un tiempo record una excelente reputación en la comunidad de desarrollo posicionándose claramente como el producto OpenSource líder en este campo gracias a sus prestaciones, buena documentación y estabilidad. Es valorado por muchos incluso como solución superior a productos comerciales dentro de su enfoque, siendo una muestra clara de su reputación y soporte la reciente integración dentro del grupo JBoss que seguramente generará iniciativas muy interesantes para el uso de Hibernate dentro de este servidor de aplicaciones. Características Hibernate:  No intrusivo (estilo POJO)  Muy buena documentación (forums para ayuda, libro)  Comunidad activa con muchos usuarios  Transacciones, caché, asociaciones, polimorfismo, herencia, lazy loading, persistencia transitiva, estrategias de fetching.  Potente lenguaje de consulta (HQL): subqueries, outer joins, ordering, proyección (report query), paginación.  Fácil de probar.  No es estándar.. 22.

(31) CAPÍTULO I Mecanismos de replicación de datos en SGBD. 1.3.3. Bibliotecas. Las bibliotecas en el desarrollo de software son de gran importancia, ya que enriquecen los lenguajes de programación incorporando funcionalidades nuevas y facilitando el trabajo con los mismos.. 1.3.3.1. ExtJS. ExtJS es una biblioteca Java Script de componentes gráficos, que facilita las herramientas necesarias para la creación de aplicaciones web. Posee una considerable colección de componentes para el diseño de interfaces, ventanas cuadros de diálogo, menús, tablas editables, layouts, paneles, pestañas y todo lo necesario para construir atractivos desarrollos al estilo de la web 2.0. ExtJS brinda soporte para:  Construir interfaces gráficas complejas y dinámicas.  Comunicar datos de forma asíncrona con el servidor.  Diversos navegadores como: Internet Explorer, Firefox, Safari y Opera. ExtJS incluye componentes UI8 del alto rendimiento y personalizables, modelo de componentes extensibles, un API fácil de usar y presenta dos tipos de licencia open source y comercial. Beneficios de ExtJS:  Existe un balance entre Cliente – Servidor: La carga de procesamiento se distribuye, permitiendo que el servidor, al tener menor carga, pueda manejar más clientes al mismo tiempo.  Comunicación asíncrona: En este tipo de aplicación el motor de render puede comunicarse con el servidor sin necesidad de estar sujeta a un clic o una acción del usuario, dándole la libertad de cargar información sin que el cliente se dé cuenta.. 8. UI (User Interface): La interfaz de usuario es el sistema a través del cual las personas (usuarios) pueden interactuar. con las maquinas.. 23.

(32) CAPÍTULO I Mecanismos de replicación de datos en SGBD  Eficiencia de la red: El tráfico de red puede disminuir al permitir que la aplicación elija que información desea transmitir al servidor y viceversa, sin embargo la aplicación que haga uso de la pre-carga de datos puede que revierta este beneficio por el incremento del tráfico.. 1.3.3.2. Suds. SUDS es un ligero cliente SOAP python para consumir servicios web. Características de Suds  No requiere generación de la clase  Lee wsdl en tiempo de ejecución para la codificación / decodificación  Compatible con los siguientes estilos de SOAP:  Document/Literal  RPC/Literal  RPC/Encoded  Proporciona la objetivación de WSDL definiendo:  Tipos (objetos)  Enumeraciones  Facilita la inspección de servicios y objetos utilizando la función print  Soporte Unicode  Autentificación HTTP  WS-Security básico. 1.3.4. Herramientas. Las herramientas de desarrollo son aquellos programas o aplicaciones que tienen gran importancia en el desarrollo de un programa, apoyando el proceso activo de construcción del mismo.. 1.3.4.1. Visual Paradigm. Visual Paradigm para UML (VP-UML) es una poderosa herramienta CASE multiplataforma (Windows/Linux/Mac OS X) que soporta el ciclo de vida completo del desarrollo de software. Está diseñado para un amplio rango de usuarios, incluyendo. 24.

(33) CAPÍTULO I Mecanismos de replicación de datos en SGBD ingenieros de software, analistas de sistema, analistas de negocio, arquitectos de sistema y quienes estén interesados en la construcción de sistemas de software confiables mediante el uso de la Orientación a Objetos. Este software facilita una rápida construcción de aplicaciones de calidad y a un menor coste. Visual Paradigm para UML soporta un conjunto de lenguajes (Java, C++, PHP, Ada y Python), tanto en generación de código como ingeniería inversa. Entre sus características principales se pueden citar:  Soporta UML en su versión 2.1.  Facilita la comunicación de todo el equipo de desarrollo mediante el uso de un lenguaje estándar común.  Posibilita el desarrollo de la ingeniería directa e inversa.  Durante todo el ciclo de desarrollo el modelo y el código permanecen sincronizados, permitiendo la generación de código a partir de diagramas y viceversa.  Se encuentra disponible en múltiples versiones y plataformas.  Permite la generación de bases de datos a partir de la transformación de diagramas de Entidad-Relación en tablas de base de datos y viceversa.. 1.3.4.2. Eclipse. Eclipse es un entorno de desarrollo integrado (IDE, Integrated Development Environment) de código abierto y multiplataforma, que facilita enormemente las tareas de edición, compilación y ejecución de programas durante su fase de desarrollo. Características de Eclipse  Dispone de un Editor de texto con resaltado de sintaxis  La compilación es en tiempo real.  Tiene asistentes (wizards) para creación de proyectos, clases, tests, etc. La principal ventaja que posee Eclipse es la cantidad de pluings con que se cuenta, los cuales posibilita desarrollar en cualquier lenguaje de programación así como utilizar herramientas que facilitan el trabajo a los desarrolladores en la elaboración de aplicaciones.. 25.

(34) CAPÍTULO I Mecanismos de replicación de datos en SGBD A continuación se mencionan los pluings utilizados para el desarrollo de la aplicación  Pydev para el trabajo con Python  Subversive para el control de versiones del código fuente de la aplicación  JavaWeb para el desarrollo del código fuente del servicio web  Servicio web para la generación del servicio web  Servers para la integración del servidor web Apache Tomcat y Axis2 en el Eclipse  Hibernate Tool herramienta para la generación de las clases el modelo del ORM Hibernate.. 1.4 Conclusiones del capítulo Después de realizar un estudio de los principales mecanismos de replicación libres existentes en el mundo, se llegó a la conclusión que SymmetricDS es una buena alternativa a usar en Cuba durante el proceso de migración, posibilitando la replicación de datos entre diferentes gestores de base de datos, incluido PostgreSQL. Para una mayor aceptación del mecanismo por los usuarios, se plantea el desarrollo de una herramienta web que posibilite administrar SymmetricDS de forma sencilla e intuitiva. Utilizando para su elaboración tecnologías y herramientas libres.. 26.

(35) CAPÍTULO II Modelado de la interfaz de administración para SymmetricDS. CAPÍTULO II: Modelado de la interfaz de administración para SymmetricDS La planificación y documentación durante la elaboración de un sistema de software es de vital importancia, determinando la calidad del producto final. Además, sirve de guía al desarrollador para saber en qué estado se encuentra la aplicación y orienta el camino a seguir durante la implementación de la misma. De esta forma se trabaja más organizadamente y queda un historial a consultar para el diseño de nuevas aplicaciones. En este capítulo se representan los principales diagramas del diseño de la aplicación, así como una detallada descripción de la arquitectura del sistema y funcionamiento del mecanismo de replicación SymmetricDS.. 2.1. SymmetricDS Para SymmetricDS una base de datos representa un nodo, el cual es inicializado en un fichero de propiedades y configurado con la inserción de un grupo de datos de configuración, en tablas de la base de datos. También se crean disparadores de base de datos en las tablas de la réplica, para permitir la sincronización. En la base de datos, los eventos son capturados para posteriormente ser enviados a otro nodo SymmetricDS. SymmetricDS utiliza los términos nodo registrador y nodo hijo para su configuración. Esto implica que el nodo registrador posee toda la configuración del mecanismo de replicación, la cual es enviada automáticamente a todos los nodos hijos que son registrados al mismo. Por su parte los nodos hijos deben ser registrados a un nodo registrador, para cargar la configuración del ambiente de réplica almacenada en el nodo registrador, además de realizar la cargada inicial de los datos para la sincronización entre los nodos SymmetricDS involucrados en un ambiente de réplica.. 27.

(36) CAPÍTULO II Modelado de la interfaz de administración para SymmetricDS El mecanismo de replicación crea un conjunto de tablas de metadatos en la base de dato de la réplica, sobre las que se almacena la configuración de los componentes de SymmetricDS, para posteriormente ser enviada esta configuración de los nodos registradores a los nodos hijos. A continuación se describen cada uno de los componentes de SymmetricDS:  SymmNodeGroup: permite agrupar un conjunto de nodos que contienen datos comunes a replicar y tiene como propiedad un nombre y una descripción.  SymmNodeGroupLink: tiene la funcionalidad de establecer un vínculo entro dos grupos, definiendo que entre ellos se van a intercambiar datos y especificando la dirección en que los datos serán enviados. SymmNodeGroupLink tiene como propiedades un grupo origen, un grupo destino y un evento da datos que pueden ser PUSH o WAINT FOR PUSH.  SymmChannel: consiste en establecer un canal para el envío de datos desde un SymmNodeGroup a otro. Para crear un SymmChannel se definen un grupo de parámetros como orden de procesamiento de los datos, tamaño máximo y mínimo de envío, periodo de extracción etc. Permitiendo con ello personalizar el canal para adaptarlo al ambiente de replicación.  SymmTrigger: define las tablas y columnas a replicar en la base de datos. Los SymmTrigger utilizan los SymmChannel para el transporte de los datos, es decir se especifica las tablas de donde se toman los datos a replicar.  SymmRouter: precisan las tablas donde serán enviados los datos, especificándose el nodo origen y destino.  SymmTriggerRouter: se encargan de realizar un acople entre los SymmTrigger y los SymmRouter, especificando que de una tabla definida en el trigger se enviarán sus datos a una tabla definida en el router.  SymmNode: es una instancia de SymmetricDS que tiene una base dato asociada para la réplica.. 28.

(37) CAPÍTULO II Modelado de la interfaz de administración para SymmetricDS SymmetricDS está desarrollado para brindar escalabilidad, sin embargo esto no quiere decir que no se pueda utilizar para ambientes de disponibilidad o rendimiento. El ambiente ideal para su uso es cuando los nodos se encuentran ubicados geográficamente distantes y se requiere replicar un grupo de tablas. Esto es posible debido a que SymmetricDS envía los datos a replicar a través del protocolo HTTP, facilitando con ello la replicación en redes WAN. En caso de presentar problemas de rendimiento con el gestor, se puede instalar la instancia de SymmetricDS en otro host, dándole la carga de replicación a este host para obtener un equilibrio entre el rendimiento del gestor y el mecanismo de replicación. SymmetricDS está desarrollado en Java 5, haciendo uso del marco de trabajo Sprint por lo que requiere una máquina virtual de Java 5 o superior y el manejador JDBC de las bases de datos que soporte, las cuales deben contar con tecnologías de disparadores. SymmetricDS soporta bases de datos como MYSQL, Oracle, PostgreSQL, SQLServer, H2, IBMDB2 ente otras. 2.2. Arquitectura del sistema La herramienta de administración propuesta a desarrollar debe cumplir con el propósito de administrar todas las instancias SymmetricDS implicadas en un entorno de replicación. Aprovechando la variante de instalación de SymmetricDS sobre un servidor web, se optó por configurar las instancias de SymmetricDS en un servidor de web Apache Tomcat. En un entorno de replicación pueden existir varios servidores de web Tomcat, y a su vez en cada servidor Tomcat pueden existir varias instancias SymmetricDS. Esto dificulta la administración de las instancias antes mencionadas, por lo que se decidió crear un servicio web que administre las instancias SymmetricDS de un servidor Tomcat. El servicio web se desarrollará en java con el propósito de configurarlo en el mismo servidor de aplicaciones donde estarán las instancias de SymmetricDS, haciendo uso del Axis2 para su publicación. La configuración de la réplica se encuentra en las tablas de. 29.

(38) CAPÍTULO II Modelado de la interfaz de administración para SymmetricDS metadatos de las bases de datos asociadas a las instancias SymmetricDS, lo que implica que el servicio web utilizará el ORM Hibernate para acceder a estas tablas y configurar los nodos. También se desarrollará una aplicación web sobre Python con el uso del marco de trabajo Django con el objetivo de que los usuarios administren las instancias SymmetricDS, auxiliándose del servicio web. Esta aplicación hará uso del servicio web mediante la biblioteca de Python SUDS, que es un cliente de servicio web que facilita la integración de Python con los servicios web. Las interfaces de usuarios se implementarán auxiliándose de la biblioteca JavaScript ExtJS simulando un ambiente de escritorio. Esta integración de tecnologías puede verse reflejada en la figura 1.. Figura 1: Diagrama de integración de tecnologías. Para logar el funcionamiento de la réplica con la interfaz, es necesario que SymmetricDS pueda contar con un servidor web Apache y uno o varios servidores web Tomcat. En el. 30.

(39) CAPÍTULO II Modelado de la interfaz de administración para SymmetricDS servidor Apache se publicará la aplicación en Django, que deberá tener accesos a los servicios web implicados en la réplica. Por otra parte, en el servidor Tomcat tendrá instalado Axis2 que estará encargado de publicar el servicio web que administre las instancias SymmetricDS creadas en el servidor Tomcat. Además desde el servicio web se debe tener acceso a las bases de datos implicadas en la réplica, pues éste gestiona las tablas de metadatos que genera SymmetricDS en las bases de datos asociada. El diagrama de interacción entre aplicaciones se observa en la figura 2.. Figura 2: Diagrama de interacción ente las aplicaciones de la herramienta. 2.3. Componentes de la Herramienta Los conceptos o componentes que usa SymmetricDS para llevar a cabo una réplica son difíciles de comprender pues, el mecanismo crea un ambiente de interacción entre estos componentes y los almacena en las tablas de los nodos a replicar, lo provoca que los usuarios no definan claramente las interrelaciones entre los componentes. Para un mejor entendimiento de estos componentes, se decidió abstraer a los usuarios del funcionamiento del mecanismo de replicación. Es por esto que se creó un ambiente más sencillo, con un conjunto de conceptos que permiten configurar y administrar un ambiente de réplica sin contar con un alto nivel de conocimiento de SymmetricDS. A continuación se describe cada concepto.  Set: Un set de replicación es un ambiente de replicación que agrupa un conjunto de componentes necesarios para lograr una réplica de datos.. 31.

Figure

Tabla 1: Variables de la hipótesis de investigación
Tabla 2: Comparación ente mecanismos de replicación libres para PostgreSQL
Figura 1: Diagrama de integración de tecnologías
Figura 2: Diagrama de interacción ente las aplicaciones de la herramienta
+7

Referencias

Documento similar