====== Migración SICOF ERP - Proceso: Arquitectura ====== Para este proyecto se han elegido una arquitectura orientada a microservicios implemetada en suite SpringBoot/SpringCloud. ===== Modelo de Referencia ===== A Continuación se describe el modelo de referencia utilizado en la solución de acuerdo a los siguientes diagramas: ==== Diagrama General ==== {{ :ada:howto:sicoferp:factory:migracionsicoferp:process:backend:diagrama_general_arquitectura_microservicios_ada_-_diagrama_general.png?800 |}} ^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. ==== Diagrama General - Simplificado ==== Para efectos de fabrica de software, los desarrolladores deben considerar el siguiente diagrama simplificado el cual extrae los componentes que soportan la arquitectura implementada. {{ :ada:howto:sicoferp:factory:migracionsicoferp:process:backend:diagrama_general_arquitectura_microservicios_ada_-_diagrama_simplificado_1_.png?600 |}} 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| ==== Diagrama de Componentes ==== {{ :ada:howto:sicoferp:factory:migracionsicoferp:process:backend:diagrama_general_arquitectura_microservicios_ada_-_diagrama_de_componentes.png?800 |}} ^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| [[ada:howto:sicoferp:factory:migracionsicoferp:process:backend|←Volver atrás]]