Para este proyecto se han elegido una arquitectura orientada a microservicios implemetada en suite SpringBoot/SpringCloud.
A Continuación se describe el modelo de referencia utilizado en la solución de acuerdo a los siguientes diagramas:
Capa | Componente | Descripción | Estado |
---|---|---|---|
SpringCloud Layer | API Gateway (ZuulServer) | Servidor gateway en el que se expondrán los servicios a consumir. | Implementado |
SpringCloud Layer | Servidor de Autenticación (OauthServer) | Provee capa de seguridad para el ecosistema, integraciones y gestión de los accesos de los usuarios. | Implementado |
SpringCloud Layer | Servidor de Configuración (ConfigServer) | Se encarga de centralizar y proveer remotamente la configuración a cada microservicio. | Implementado |
SpringCloud Layer | Servidor de Registro (EurekaServer) | Servicio centralizado será el encargado de proveer los endpoints de los servicios para su consumo. Todo microservicio se registrará automáticamente en él en tiempo de bootstrap. | Implementado |
SpringCloud Layer | Servidor de Monitoreo (AdminServer) | Componente que permite la administración y monitorización de los microservicios. | No Implementado |
SpringCloud Layer | Servidor de Logs (ZipkinsServer) | Componente que se encarga de la centralización de los logs. | No Implementado |
Microservices Layer | Microservicios del Negocio | Componentes que contienen la lógica del negocio de SicofERP. | Nómina Implementado |
Microservices Layer | Utility | Componentes que proveen utilidades a los microservicios de la lógica del negocio. Algunos de ellos son Envío de Correos, Encriptación, Formatos etc. | Parcialmente Implementado |
Data Layer | Data/Commons | Modelo de Entidades y DTO que son utilizados de forma centralizada por los microservicios | Nómina Implementado |
DataBase Layer | Base de Datos Cliente | Almacena la información de los procesos de SicofERP | Nómina Implementado |
DataBase Layer | Base de Datos Centralizada | Almacena la información centralizada de configuraciones comunes de todo el ecosistema SicofERP. Alguna configuraciones son: Usuarios, Empresas, Opciones de Módulos, Configuraciones de DashBoard | Nómina Parcialmente Implementado |
Todos los componentes son ejecutados en una red docker.
Para efectos de fabrica de software, los desarrolladores deben considerar el siguiente diagrama simplificado el cual extrae los componentes que soportan la arquitectura implementada.
Este modelo sugiere que los desarrollos serán orientados a la solución sin importart la arquitectura utilizada.
Componente | Descripción | Estado |
---|---|---|
Portal Transaccional | Portal destinado a la presentación de SICOF ERP. | Implementado |
SpringCloud | Arquitectura implementada orientada a microservicios par soportar el backend SICOF ERP. | Nómina: Implementado |
Microservicio | Componente backend que contiene las funcionalidades de SICOF ERP. | Nómina: Implementado |
Paquete | Componente | Descripción | Estado |
---|---|---|---|
Portal Transaccional | Interfaz Usuario | Portal destinado a las opciones que pueden ser utilizadas por los usuarios estandar. | Implementado |
Portal Transaccional | Interfaz Administrador | Portal destinado a las opciones de administración de la plataforma SICOF. | No Implementado |
Servicios SpringCloud | API Gateway (ZuulServer) | Servidor gateway en el que se expondrán los servicios a consumir. | Implementado |
Servicios SpringCloud | Servidor de Autenticación (OauthServer) | Provee capa de seguridad para el ecosistema, integraciones y gestión de los accesos de los usuarios. | Implementado |
Servicios SpringCloud | Servidor de Configuración (ConfigServer) | Se encarga de centralizar y proveer remotamente la configuración a cada microservicio. | Implementado |
Servicios SpringCloud | Servidor de Registro (EurekaServer) | Servicio centralizado será el encargado de proveer los endpoints de los servicios para su consumo. Todo microservicio se registrará automáticamente en él en tiempo de bootstrap. | Implementado |
Servicios SpringCloud | Servidor de Monitoreo (AdminServer) | Componente que permite la administración y monitorización de los microservicios. | No Implementado |
Servicios SpringCloud | Servidor de Logs (ZipkinsServer) | Componente que se encarga de la centralización de los logs. | No Implementado |
Lógica del Negocio (Microservicios) | Modelo Microservicios | Estructura generica para la funcionalidades del ERP. | Implementado: Nómina |
Lógica del Negocio (Microservicios) | Commons Services | Servicios encargados de proveer APIs comunes e utilitarias que soportan la solución. APis de correo, encriptación, conversión de tipos, wrappers, Domino de entidades, DTO, etc. | Implementado: Nómina |
Lógica del Negocio (Microservicios) | Utility Services | Servicios encargados de proveer funcionalidades de apoyo a los servicios Commons como APis para formatos de tipos de datos, gestión de archivos, etc. | Implementado: Nómina |
Base de Datos | Base de Datos Cliente | Servidor de base de datos transaccional para la persistencia. | Implementado: Nómina |
Base de Datos | Base de Datos Configuración Centralizada | Servidor de base de datos transaccional para la persistencia de las configuraciones de empresas, usuarios y opciones de los ambientes de los clientes. | Implementado: Parcialmente Nómina |