• No results found

6.3 Illustrative Case Study

6.3.1 Application Source History Reconstruction Problem

La herramienta de administración para SymmetricDS consta de dos aplicaciones: una aplicación web y un servicio web, que interactúan entre sí para lograr un propósito específico: satisfacer las peticiones del usuario final.

3.1.1. Diagrama de Componentes

Un diagrama de componentes representa la separación de un sistema de software en componentes físicos (por ejemplo archivos, cabeceras, módulos, paquetes, etc.) y muestra las dependencias entre estos componentes.

Figura 10: Diagrama de componentes para el caso de uso Gestionar Nodo

El diagrama representado en la figura 10 muestra las relaciones entre los ficheros involucrados en el caso de uso antes mencionado. Django hace uso del patrón arquitectónico Modelo – Vista – Controlador, que queda representado en tres ficheros (urls.py,views.py y models.py).

A continuación se detallan cada uno de los componentes que se representan en la figura 10.  Componente urls.py: fichero generado por Django, que cumple el rol de

controlador, pues en él se define todas las urls disponibles en el proyecto.

 Componente views.py: fichero generado por Django. Existe un fichero de este tipo por cada aplicación que se cree en el proyecto. El propósito del mismo es contener todas las vistas de la aplicación a la que pertenece, mostrándole al usuario las interfaces del proyecto.

 Componente extBase.html: es la plantilla de la herramienta, su tarea principal es incluir los ficheros Java Script y CSS necesarios para generar las interfaces de usuarios.

 Paquete Extjs: este paquete tiene incluido la biblioteca JavaScript ExtJS empleada en el desarrollo de la herramienta para el diseño de las interfaces de usuario.

 Componente base.js: en este fichero se encuentra implementada la interfaz principal de la de la herramienta, tomándose como plantilla para la creación de las vistas.  Componente nodoManager.js: este fichero contiene la implementación de las

funciones JavaScript necesarias para visualizar las interfaces de usuario del caso de uso Gestionar Nodo.

 Componente nodoManager.py: contiene una clase controladora para gestionar todas las acciones referentes a un nodo dentro de la herramienta.

 Componente models.py: fichero generado en cada aplicación del proyecto Django Su objetivo es definir las clases del modelo para la interacción con la base de dato de la herramienta.

 Componente metadata.db: es una base de dato en SQLite para almacenar información persistente de la herramienta.

 Componente clientWebService.py: este fichero contiene una clase para el acceso y ejecución de métodos de un servicio web, la misma se auxilia de la librería SUDS para lograr este propósito.

 Paquete Servicio web: este paquete es un servicio web desarrollado en Java con el fin de administrar las configuraciones y las instancias SymmetricDS creadas en un servidor Tomcat. En el mismo existen un conjunto de componentes con la implementación de las clases necesarias para cumplir este propósito explicadas en el capítulo anterior. Ver figura 11

Figura 11: Componentes del paquete Servicio web implicados en el caso de uso Gestionar Nodo

3.1.2. Paquetes de las aplicaciones

Para una mayor organización en la programación de la herramienta se crearon diferentes paquetes con un propósito determinado.

En la aplicación web desarrollada en el framework Django se crearon dos aplicaciones:  commun: paquete que define todos los ficheros relacionado con la interfaz

principal, además contiene la implementación de un grupo de componentes con un fin común. Dentro de los cuales se encuentra el árbol explorador, la barra de herramientas, la página principal entro otros.

appreply: Este paquete contiene los ficheros para el trabajo con los objetos del mecanismo de replicación

El servicio web tiene una estructura de paquetes que agrupa las clases según sus funcionalidades:

utils: este paquete agrupa un conjunto de clases auxiliares que facilitan la implementación del servicio, como el fichero de propiedades de SymmetricDS, la ejecución de comandos SHELL entre otros.

symm_obj_manager: paquete que contiene las clases controladoras de los objetos de SymmetricDS, el trabajo con las conexiones a las bases de datos implicadas en la réplica, etc.

symm_db: paquete que contiene las clases del domino utilizadas por el ORM Hibernarte para el mapeo con las tablas de las bases de datos.

symmetricds:este paquete consta de una clase controladora con la implementación de todas las funcionalidades del servicio web, y otra clase donde se define los métodos del servicio web a consultar.

3.1.3. Diagrama de Despliegue

Un diagrama de despliegue es un grafo de nodos unidos por conexiones de comunicación, que muestra las relaciones físicas entre los componentes hardware y software en el sistema final, es decir, la configuración de los elementos de procesamiento en tiempo de ejecución y los componentes software.

A continuación se realiza una breve descripción del diagrama de despliegue representado en la figura 12:

Servidor web: En este nodo estará montada la aplicación sobre el servidor web Apache. La cual se comunica con el servicio web a través del protocolo <<SOAP>>.

Servicio web: Sobre este nodo estará configurado un servicio web en java, el cual correrá sobre un servidor Tomcat y utilizará Axis2 para su publicación. Este se comunica con el nodo Servidor de Base de Datos Réplica a través del drive <<JDBC>>.

Servidor de BD: Este nodo representa los gestores de bases de datos implicados en la réplica.

PC Cliente: Desde este nodo los usuarios podrán acceder a la aplicación a través de un navegador ya sea Internet Explorer o Firefox, haciendo uso del protocolo <<HTTP>>.