Ministerio del Poder Popular para Ciencia, Tecnología e Industrias Intermedias Centro Nacional de Tecnologías de Información SINAPSIS Documento de Arquitectura del Sistema Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 1 de 15 Historial de Revisiones Versión Fecha Autor Descripción 1.0 Jesús De Oliveira Versión inicial 0.1.0-SNAPSHOT (checkpoint-1) 2011 Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 2 de 15 Índice de contenido 1 Arquitectura del Sistema...........................................................................................................................4 2 Vista Lógica................................................................................................................................................4 2.1 Diagrama de Paquetes............................................................................................................................... 5 2.2 Paquetes de Diseño significativos.............................................................................................................. 5 2.3 Diagrama de clases agrupado por paquetes.............................................................................................. 9 3 Vista de Implementación ........................................................................................................................10 3.1 Diagrama de Componentes del Sistema.............................................................................................10 4 Vista de Despliegue.................................................................................................................................10 4.1 Diagrama de Despliegue del Sistema....................................................................................................... 10 5 Modelo de Datos......................................................................................................................................11 5.1 Modelo Entidad-Relación de las Bases de Datos.....................................................................................11 Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 3 de 15 1. Arquitectura del Sistema La aplicación informática SINAPSIS ha sido concebido como un componente web bajo la especificación Java Servlet Specification 2.2, con una arquitectura N-capas, en el marco del framework Spring, y del ambiente de desarrollo rápido de aplicaciones SpringRoo. La versión actual del sistema esta compuesta por las siguientes capas: • Presentación, bajo patrón de diseño Modelo-Vista-Controlador: Vistas: Páginas web JSPX con tag libraries de SpringMVC que despliegan formularios al usuario. ◦ Controladores: Controladores de SpringMVC, que reciben y procesan las solicitudes del usuario bajo el patrón REST. ◦ Modelos: Formularios (backing beans) reutilizados de la capa de modelo de dominio. ◦ • Aplicación: Capa de servicios: contentiva de componentes “agentes” o “brokers” encargados de ejecutar procesos complejos que interactúan con los objetos del modelo de dominio en nombre del usuario. ◦ Capa de modelo de dominio: contentiva de la estructura conceptual que representa el dominio de la aplicación, en la forma de JavaBeans tradicionales (POJOs) enriquecidos con anotaciones de los frameworks Java Persistency API, Java Validation API, Spring y SpringRoo. ◦ • Persistencia: Capa de abstracción de acceso a datos: Framework Java Persistency API (JPA) para abstraer las operaciones de persistencia sobre los objetos de dominio, independientemente del proveedor ORM. ◦ Capa de implementación de acceso a datos: ORM Hibernate. ◦ 2. Vista Lógica En esta vista se detallan las partes del modelo de diseño que son significativas Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 4 de 15 arquitectónicamente representando los diagramas que permiten tener una visión de los elementos que conforman el sistema y de la interacción entre ellos. 1.1 Diagrama de Paquetes 1.2 Paquetes de Diseño significativos En esta sección se muestra para cada uno de los paquetes representados anteriormente una breve descripción y el nombre de las clases que contiene. Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 5 de 15 P-01 WEB-INF/layouts Descripción: Este paquete contiene las plantillas de presentación del sistema en lenguaje JSPX (layouts), bajo el componente Tiles del framework SpringMVC, a partir de las cuales se construyen las paginas web que conforman las vistas del sistema. Clases Disponibles: N/A P-02 WEB-INF/views Descripción: Este paquete contiene las vistas del sistema en lenguaje JSPX, bajo el componete Tiles del framework SpringMVC. Estas vistas son “combinadas” con las plantillas correspondientes (asociadas en tiempo de ejecución) para generar o “renderizar” las paginas web HTML que son desplegadas al usuario, interactuando con los objetos de la capa de dominio y formularios. Estas vistas son incluidas en el “área principal de contenido” (body) de las plantillas. Clases Disponibles: N/A P-03 ve.co.bsc.sinapsis.web Descripción: Este paquete contiene los controladores (web) de la aplicación, responsables de procesar las solicitudes de los usuarios a través del protocolo HTTP y el patrón REST, recibidas por el Request Dispatcher Servlet de SpringMVC. Estos controladores interactúan con la capa de servicios o directamente con los componentes de la capa de dominio para satisfacer las solicitudes recibidas, colocando objetos en contenedores de SpringMVC e invocando la renderización de vistas del paquete P-02 WEB-INF/views. Estos controladores son generados automáticamente por el entorno RAD SpringRoo, y ajustados posteriormente a las necesidades de la aplicación. Clases Disponibles: ArchivoAdjuntoController HistoriaClinicaController Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 6 de 15 P-03 ve.co.bsc.sinapsis.web InterconsultaController NoticiaController PacienteController UsuarioController P-04 ve.co.bsc.sinapsis.domain Descripción: Este paquete contiene las clases (POJOs) del modelo de dominio de la aplicación, representando las entidades y procesos de negocio, enriquecidas con anotaciones para gestionar su persistencia, validez de sus atributos y relaciones. Son generados automáticamente por el entorno RAD SpringRoo a partir de la especificación de sus atributos y relaciones. Su conversión ORM es provista por el framework Java Persistency API (JPA) Clases Disponibles: ArchivoAdjunto Ciudad CodigoPostal Especialidad Estado Etnia HistoriaClinicaBitacora HistoriaEspecificacionCampo HistoriaEspecificacionFicha HistoriaInstanciaFicha HistoriaInstanciaCampo HistoriaInstanciaFicha Interconsulta InterconsultaBitacora Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 7 de 15 P-04 ve.co.bsc.sinapsis.domain InterconsultaEntrada Medico Municipio Nacionalidad Noticia Ocupacion Paciente Pais Parroquia Profesion RolUsuario Urbanizacion Usuario P-05 ve.co.bsc.sinapsis.form Descripción: Este paquete contiene las clases (POJOs) que representan formularios complejos, y funcionan como “backing beans” cuando los formularios no emplean directamente los objetos de la capa de dominio (i.e. formularios auxiliares). Clases Disponibles: MedicoUsuarioForm P-06 ve.co.bsc.sinapsis.util Descripción: Este paquete contiene clases adicionales utilitarias para realizar diversas operaciones auxiliares en el sistema Clases Disponibles: BarcodeGenerator Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 8 de 15 P-06 ve.co.bsc.sinapsis.util DummyEntidad Entidad FileReferenceDecorator HistoriaClinicaSubmenuBuilder HistoriaInstanciaCampoValidator HistoriaInstanciaFichaWithHistoriaInstanciaCampoListDecorator ListDecorator MapDecorator Ordenable OrdenableComparator SelectItemDecorator SubmenuOption . P-07 ve.co.bsc.sinapsis.exception Descripción: Este paquete contiene las excepciones propias del sistema Clases Disponibles: FichaEsReadonlyException Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 9 de 15 1.3 Diagrama de clases agrupado por paquetes A continuación se muestra el diagrama de clases agrupado por paquetes. Se omiten las declaraciones de métodos y atributos gestionadas de forma automática por el entorno de desarrollo rápido de aplicaciones SpringRoo por motivos de simplicidad. Adicionalmente, se omiten los parámetros de los métodos por fines de simplicidad. Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 10 de 15 Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 11 de 15 3. Vista de Implementación La vista de implementación muestra el empaquetado físico de las partes reutilizables del sistema en unidades sustituibles, llamadas componentes. Una vista de implementación muestra los elementos físicos del sistema mediante componentes, así como sus interfaces y dependencias entre componentes. Los componentes son piezas reutilizables de alto nivel a partir de las cuales se pueden construir los sistemas. 1.4 Diagrama de Componentes del Sistema Se omite la vista de componentes dado que no añade valor considerando la complejidad de la versión actual del sistema. Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 12 de 15 4. Vista de Despliegue La vista de despliegue muestra la disposición física de los recursos de ejecución computacionales, tales como computadores y sus interconexiones. La vista de despliegue puede mostrar cuellos de botella para el rendimiento si las instancias de los componentes con dependencia se ponen en distintos nodos. 1.5 Diagrama de Despliegue del Sistema Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 13 de 15 5. Modelo de Datos El Modelo de datos es aquel que describe de forma abstracta cómo se representan los datos de un sistema. Un modelo de datos consiste en: entidades, atributos y sus relaciones. Dado que el modelo de datos de implementación (SQL) es generado automáticamente por el ambiente de desarrollo rápido de aplicaciones SpringRoo, en esta sección se presenta un modelo ER generado a partir de la herramienta MySQL Workbench. Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 14 de 15 1.6 Modelo Entidad-Relación de las Bases de Datos Documento de Arquitectura del Sistema: SINAPSIS Versión: 1.0.0 Av. Andrés Bello, sector Guaicaipuro, Torre MPPTI, piso 16, Municipio Libertador, Caracas. Telf. +58 (212)- 578.59.92 / 507.21.11 Sitio Web: www.cnti.gob.ve 15 de 15