Árbol de páginas

Antes de describir las diferentes bases de datos del SGI es importante ponerse en contexto dentro de la arquitectura de la aplicación, para ello, se incluye como referencia el siguiente diagrama, que representa tanto un modelo de despliegue como de comunicaciones a alto nivel entre cada una de las piezas que componen el SGI, así como las comunicaciones con otros sistemas externos.

Arquitectura del SGI


 

ElementoDescripciónNº ElementosLista
Elementos que acceden al SGIDispositivo SistemaRepresenta a cada uno de los sistemas que pueden comunicarse con el SGI iniciando un circuito de petición-respuesta HTTP a los servicios concretos expuestos en el SGI a través de su Bus de integración (ESB).3

ED MA, RPA, Goliat (UM)

Dispositivo UsuarioRepresenta a cada uno de los sistemas que pueden comunicarse con la aplicación Web de Gestión del SGI iniciando un circuito de petición-respuesta HTTP.1Dispositivo del usuario de la aplicación SGI , dispositivo del usuario de Goliat
Conector BBDDRepresenta una pieza que aglutina el acceso directo a la BBDD del SGI por parte de terceros (Universidad).2Conector BBDD (acceso a esquemas csp y pii)
KUBERNETESGatewayRepresenta la pieza, que proporciona el propio Kubernetes, que se encarga de recibir las peticiones de los Dispositivos Usuario y Sistema y de redirigirlas en función del patrón que sigan al ESB, peticiones tipo /api/, o a la Web, resto de peticiones /*.1Gateway
WEBRepresenta el módulo de la aplicación de gestión del SGI, que hará de orquestador de todas las peticiones que vayan dirigidas a él, llamando a los diferentes módulos según la necesidad de cada funcionalidad concreta.1WEB
ESB

Representa el Bus de integración del SGI, que abstrae tanto al SGI como los Elementos que acceden al SGI del origen de la información que se intercambia a través de él. Será esta pieza la que haga de pasarela, con o sin alguna adaptación según la necesidad, entre el SGI o los Dispositivos Sistema y Usuario y los servicios tanto internos al SGI como implementados por parte de terceros (Universidad).

1

Habrá un único ESB que contendrá los siguientes Componentes:

  • Los que requieren implementación por parte de terceros (Universidad): SGE, SGP, SGEMP, SGEPII.
  • Los que pueden tener o no implementación por parte de terceros (Universidad): SGO, SGDOC.
  • Los que dan acceso a servicios internos al SGI: SGICSP, SGIPII, SGIPRC, SGIUSR
ESB - Implementación SGIRepresenta a los servicios del ESB que tienen implementación propia por parte del SGI de forma que se pueda utilizar si no se implementan por parte de terceros (Universidad).2SGISGO, SGISGDOC
Módulos comunesRepresenta a cada uno de los módulos de uso común por parte del resto de módulos o componentes de la aplicación.7USR, CNF, REL, REP, TP, COM, KEYCLOAK
Módulos funcionalesRepresenta a cada uno de los módulos o componentes con funcionalidad concreta de gestión por parte de los usuarios o sistemas de terceros del SGI.4CSP, ETI, PII, PRC
PersistenciaBBDDRepresenta a cada uno de los esquemas de base de datos del SGI. Existirá un esquema por módulo.13csp, eti, pii, prc, ...
Almacenamiento archivosRepresenta el componente encargado de persistir los documentos del SGI a disco.1Almacenamiento archivos
Sistemas UniversidadServicios de integraciónRepresenta a los servicios que pueden o deben, según el caso, ser implementados por terceros (Universidad) para la implantación del SGI en sus sistemas.5SGE (UNI), SGP (UNI), SGEMP (UNI), SGEPII (UNI), SGO (UNI) (Opcional)
Goliat (UM)Representa al sistema Goliat existente en la implementación propia del SGI de la Universidad de Murcia y que implementará las funcionalidades de Timesheet y de la que complementa al SGI en cuanto a la vista de los datos proyectos por parte del investigador.2Timesheet, Vista investigador
Servidor emailRepresenta la pieza que se encargará del envío de emails de Comunicados desde el sistema de terceros (Universidad) en el que se implante.1Servidor email
CASRepresenta la pieza encargada de autenticar a los usuarios en el sistema de terceros (Universidad).1CAS

Componentes / Servicios a desplegar

Los siguientes servicios  han de estar desplegados para el correcto funcionamiento del SGI:

Esquemas de base de datos

ESB - Implementación SGI

Nº de esquemas: 2

ComponenteDescripciónEsquemaDocumentación
SGISGDOCMódulo del sistema de gestión de la documentación cross al resto de módulos del SGI.sgdocSGI - ESB - SGDOC
SGISGOMódulo del sistema de gestión de la organización cross al resto de módulos del SGI.sgoSGI - ESB - SGO

Módulos funcionales

Nº de esquemas: 4

ComponenteDescripciónEsquemaDocumentación
CSPMódulo de convocatorias, ayudas, solicitudes, proyectos y contratos. Incluye además los grupos de investigación.
csp

Convocatorias:

Solicitudes:

Proyectos:

Proyectos externos:

Grupos de investigación:

ETIMódulo de Ética.etiETI - Modelo lógico
PIIMódulo de Propiedad industrial e intelectual.piiPII - Modelo lógico
PRCMódulo de producción científica.prcPRC - Diseño lógico

Módulos cross

Nº de esquemas: 7

ComponenteDescripciónEsquemaDocumentación
CNFMódulo de configuración cross al resto de módulos del SGI.
cnfCNF - Modelo lógico
COMMódulo de comunicados cross al resto de módulos del SGI.
comCOM - Modelo lógico
KEYCLOAKMódulo de control de acceso al SGI.
keycloak
RELMódulo de relaciones cross al resto de módulos del SGI.relSGI-REL - Modelo lógico
REPMódulo de reporting cross al resto de módulos del SGI.rep
USRMódulo para la autenticación de usuariosusr
TPMódulo del sistema de gestión de tareas programadas cross al resto de módulos del SGI.tpTP - Modelo lógico

TECNOLOGÍA

Los servicios del SGI se apoyan en Liquibase para la creación y mantenimiento del modelo de datos. Liquibase es un framework que permite tanto la definición del modelo de datos como la carga inicial de datos. Para ello utiliza su propia sintaxis (escrita en formato XML). A partir de esta sintaxis, este framework es capaz de hacer la traducción a sentencias propias del motor de base de datos que exista en la instalación, tanto para la creación inicial como para aplicar los cambios incrementales (de acuerdo al estado de la BD sobre la que se despliega la versión correspondiente).

Por tanto, la definición y creación del modelo inicial, así como los incrementales propios de cada versión, se encuentran dentro del código de cada servicio. Cada vez que un servicio arranca, y conecta a la BBDD, se comprueba que cambios (changeset) se han aplicado, ejecutando aquellos que sean necesarios para que el modelo de datos esté actualizado de acuerdo a lo que espera la versión de la aplicación. De este modo, en las actualizaciones de la aplicación cada servicio aplica el incremental o incrementales correspondientes. En una instalación nueva (cuando no existen tablas porque es una nueva BBDD) se aplican todos los cambios necesarios para crear las tablas y objectos que necesita la aplicación para funcionar.

En el siguiente enlace se puede ver un fichero de definición de Liquibase del servicio de CSP: https://github.com/HerculesCRUE/SGI/blob/main/sgi-csp-service/src/main/resources/db/changelog/changes/0.1.0/0000000000000-initial-database.xml

Si lo ves necesario, para mayor detalle, puedes hacer referencia a la documentación oficial de Liquibase https://docs.liquibase.com/home.html

  • Sin etiquetas