Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.






Painel
bgColor#f6f5f6
titleColor#ffffff
borderWidth0
titleBGColor#704581
titleARQUITECTURA GENERAL

Índice
maxLevel2



INTRODUCCIÓN

El presente diagrama representa la arquitectura general de la Suite de productos Napse. Muestra cómo los sistemas y servicios de la suite están integrados para gestionar, conectar y operar los procesos empresariales de manera eficiente. Está diseñado para ilustrar las conexiones, flujos de información y tecnologías utilizadas en cada uno de los módulos principales que conforman esta solución integral.


Principales componentes y flujos representados:

  • Bridge y OMNI: Responsable de la gestión de maestros y pedidos, con soporte para:

    • Importación de datos a través de servicios REST (JSON) para maestros y pedidos.

    • Consultas de pedidos en tiempo real mediante REST.

    • Exportación de información hacia Rabbit MQ, asegurando el intercambio eficiente de datos entre sistemas.

  • Promo: Gestiona promociones y catálogos. Incluye:

    • Importación de catálogos.
    • Exportación de datos hacia Rabbit MQ y consultas sobre las últimas compras realizadas.
  • VTOL: Maneja integraciones mediante el protocolo TCP, enfocado en la gestión de medios de pago y servicios relacionados.

  • Fiscal Flow: Encargado del cumplimiento de requerimientos fiscales mediante la emisión de comprobantes electrónicos.

  • Prize: Administra el cálculo y la exportación de comisiones de vendedores a través de un servicio REST.

  • 360: Ofrece una vista integral de las métricas y datos relacionados con la retención y gestión de clientes.

  • Director: Integra funcionalidades administrativas avanzadas y utiliza GIT como sistema de control de versiones para sus configuraciones.

  • Tiendas Físicas: La comunicación entre los sistemas y las tiendas físicas se realiza vía servicios REST (JSON), con autenticación segura mediante OAuth 2.0.


El objetivo de este documento es detallar la arquitectura de integración de la suite Napse, describiendo cada uno de sus módulos y la forma en que interactúan entre sí y con sistemas externos. Se proporciona un marco comprensible que puede ser utilizado por desarrolladores, arquitectos, gerentes de proyecto y otros stakeholders técnicos y de negocio. El documento está diseñado para facilitar la implementación, el soporte técnico y las futuras ampliaciones de la suite.




ARQUITECTURA GENERAL







El diagrama presentado proporciona una vista detallada de la arquitectura de integración de la suite Napse, mostrando cómo los diferentes componentes interactúan para ofrecer un ecosistema robusto y funcional.

  • Cloud y On-Premise:

    • La solución está diseñada para operar tanto en la nube (Azure) como en entornos locales, dependiendo de los requisitos del cliente. La nube aloja módulos críticos como Bridge Central, Bridge API, PROMO, Omni, Fiscal Flow y Prize, mientras que los puntos de venta y algunos sistemas legados pueden estar en entornos on-premise.
  • Bridge Central y Bridge API:

    • Bridge Central es el núcleo de gestión de la configuración de ventas, catálogos y terminales.
    • Bridge API actúa como un hub de microservicios que permite la comunicación y la integración con otros módulos, utilizando servicios REST seguros autenticados con OAuth 2.0.
  • RabbitMQ:

    • RabbitMQ se utiliza como motor de colas para manejar eventos generados por los microservicios, como actualizaciones de stock, novedades de promociones, y cambios en la fidelización.



ESTÁNDARES DE INTEGRACIÓN Y APIS NECESARIOS

Nota
titleMecanismos de Integración y Flujos Utilizados

La arquitectura de integración de la suite Napse se basa en una combinación de tecnologías modernas y estándares industriales para garantizar una comunicación eficiente, segura y escalable entre sus módulos y con sistemas externos. Los principales mecanismos de integración incluyen:

  • APIs REST

    • Las APIs REST son el principal medio de comunicación entre los módulos de la suite y con sistemas externos. Estas APIs están diseñadas bajo principios de seguridad y eficiencia, utilizando:

      • Formato de datos JSON: Para garantizar la interoperabilidad y la facilidad de manipulación de datos.
      • Autenticación con OAuth 2.0: Proporciona un mecanismo seguro y estándar para proteger el acceso a los servicios.
    • Ejemplos de flujos soportados por APIs REST incluyen:

      • Recepción de maestros: Importación de datos como catálogos de productos y listas de precios.
      • Gestión de pedidos: Envío y consulta de pedidos en tiempo real.
      • Asignación de puntos de fidelidad: Comunicación de transacciones relacionadas con programas de fidelización.


  • RabbitMQ para Gestión de Eventos

    • RabbitMQ es utilizado como motor de colas para la generación y distribución de eventos entre los microservicios. Esto permite una comunicación asíncrona, robusta y eficiente, asegurando la persistencia y el correcto manejo de grandes volúmenes de datos.
    • Los principales eventos gestionados incluyen:
      • Actualizaciones de stock: Movimientos de inventario en tiempo real.
      • Promociones y novedades: Envío de información relacionada con descuentos, campañas y promociones activas.
      • Cambios en la fidelización: Notificaciones de actualizaciones en los puntos acumulados o beneficios otorgados a los clientes.


  • Otros Flujos de Integración

    • Archivos CSV: Para integraciones específicas con sistemas legados, se permite la carga de archivos CSV desde las consolas de gestión.
    • Plugins desarrollados en NodeJS: La plataforma abierta permite desarrollar extensiones personalizadas para casos de integración específicos que no estén cubiertos por las APIs existentes.


Beneficios de la Arquitectura de Integración

  • Flexibilidad: La solución modular y abierta permite adaptarse rápidamente a nuevos requerimientos.
  • Escalabilidad: RabbitMQ y el diseño basado en microservicios aseguran que el sistema pueda manejar crecientes volúmenes de datos y transacciones.
  • Seguridad: Las APIs protegidas con OAuth 2.0 garantizan la integridad y confidencialidad de los datos.
  • Eficiencia: Los flujos de comunicación optimizados permiten una sincronización en tiempo real entre los distintos componentes de la suite.


Este enfoque integral asegura que la suite Napse pueda integrarse fácilmente con el ecosistema tecnológico de cualquier cliente, ofreciendo una solución robusta y preparada para el futuro.


  • Módulos de la Suite:

    • Omni: Gestor de servicios omnicanal, proporcionando una experiencia unificada para los clientes.
    • Prize: Calcula y gestiona las comisiones por ventas.
    • PROMO: Administra promociones, programas de fidelidad y segmentación de clientes.
    • Fiscal Flow: Encargado de la emisión de comprobantes fiscales.
    • Director: Herramienta para la gestión y el control de versiones del software en cada tienda.
    • VTOL: Maneja información y sincronización de datos críticos en tiempo real.
  • Flujos de Comunicación:

    • La comunicación entre módulos se realiza predominantemente a través de servicios REST (JSON) y colas RabbitMQ. Esto asegura una transmisión de datos segura y eficiente.
  • Base de Datos:

    • MongoDB se utiliza como base de datos central para almacenar la información estructurada y no estructurada de la suite, lo que garantiza escalabilidad y rendimiento.


Dica
titleDOCUMENTACIÓN - INTEGRACIÓN Y APIS

BRIDGE:


PROMO






PROTOCOLOS DE INTERCAMBIO DE DATOS

En un entorno empresarial dinámico y conectado, la capacidad de comunicar y compartir datos de forma segura, eficiente y escalable entre diferentes sistemas es esencial. La suite Napse ha sido diseñada para soportar una integración robusta con sistemas externos, utilizando protocolos de intercambio de datos modernos y ampliamente aceptados en la industria. Estos protocolos permiten una transferencia confiable de información entre los diferentes módulos de Napse y otros sistemas, garantizando la interoperabilidad, la protección de datos y la continuidad operativa.

El enfoque de Napse hacia la integración no solo abarca la conexión de sistemas internos, sino también la interacción fluida con soluciones externas como sistemas de gestión de inventarios (ERP), plataformas de fidelización, proveedores fiscales y canales de ventas omnicanal. La arquitectura modular y basada en microservicios de Napse asegura que cada componente pueda comunicarse de manera eficiente y segura, facilitando la adopción de nuevas tecnologías y la adaptación a las cambiantes necesidades del mercado.


Protocolos Soportados

  • REST (Representational State Transfer): Es un protocolo ampliamente utilizado para la transferencia de datos entre sistemas a través de APIs RESTful. Este enfoque permite la comunicación directa y en tiempo real entre los módulos de Napse y sistemas externos.

    • Formato de datos: Utilización de JSON, lo que simplifica la interoperabilidad y el manejo de datos.
    • Seguridad: Todas las comunicaciones se realizan sobre HTTPS, asegurando la integridad y confidencialidad de los datos.
    • Autenticación: Implementación de OAuth 2.0, que garantiza un acceso controlado y seguro a los servicios.
    • Casos de uso:
      • Gestión de pedidos: Envío y consulta en tiempo real.
      • Sincronización de datos maestros: Importación de catálogos de productos y listas de precios.
      • Interacción con plataformas de fidelización: Asignación de puntos y consulta de beneficios en tiempo real.


  • AMQPS (Advanced Message Queuing Protocol Secure): Este protocolo se utiliza en conjunto con RabbitMQ para manejar la comunicación asíncrona mediante colas de mensajes. Es ideal para gestionar grandes volúmenes de datos y eventos que no requieren una respuesta inmediata.

    • Seguridad: Comunicación cifrada mediante TLS, lo que protege la información en tránsito.
    • Escalabilidad: Manejo eficiente de cientos de miles de mensajes sin afectar el rendimiento del sistema.
    • Confiabilidad: Asegura que los mensajes sean entregados y procesados en el orden correcto.
    • Casos de uso:
      • Actualización de stock: Notificaciones de movimientos de inventario en tiempo real.
      • Promociones: Distribución de información sobre descuentos y campañas.
      • Fidelización: Procesamiento de cambios en puntos acumulados o beneficios.



Beneficios de los Protocolos Utilizados

  • Interoperabilidad: La adopción de estándares como REST y AMQPS permite que la suite Napse se integre fácilmente con una amplia variedad de sistemas externos, reduciendo el tiempo y costo de implementación.

  • Seguridad: La combinación de HTTPS y TLS garantiza la protección de los datos en tránsito, cumpliendo con estándares internacionales de seguridad.

  • Eficiencia y Escalabilidad: Los protocolos seleccionados permiten manejar grandes volúmenes de datos y eventos, asegurando un rendimiento óptimo incluso durante picos de demanda.

  • Flexibilidad y Adaptabilidad: Al soportar tanto comunicaciones sincrónicas (REST) como asíncronas (AMQPS), la suite puede adaptarse a diversas necesidades operativas y técnicas.




GESTIÓN ENCRIPTACIÓN Y SEGURIDAD DE DATOS HASTA VTOL 3.8.0.X

La versión 3.8.0.12 de VTOL Multiempresa implementa un robusto sistema de encriptación basado en el algoritmo Triple DES (3DES). Este mecanismo asegura la protección de los datos sensibles, cumpliendo con los estándares internacionales de seguridad, incluyendo las normas PCI DSS. La arquitectura criptográfica está diseñada para proteger tanto los datos en reposo como en tránsito, utilizando una jerarquía de llaves y protocolos seguros que garantizan la confidencialidad e integridad de la información.


Jerarquía de Llaves

La seguridad de VTOL se basa en una jerarquía de llaves que asegura múltiples capas de protección:

  • Llave fija: Esta llave está embebida en el código de la aplicación y se utiliza para encriptar la llave maestra. Su propósito es añadir una capa adicional de seguridad para proteger las claves más críticas. Evitar el acceso directo a la llave maestra incluso si el archivo master.key es comprometido.


  • Llave maestra: La llave maestra es la base del sistema de encriptación. Se genera automáticamente utilizando el generador de números aleatorios seguro de Java (SecureRandom), y se almacena de forma encriptada en un archivo llamado master.key.

    • Atributos del archivo master.key:
      • Llave maestra encriptada.
      • Fecha de creación.
      • Nodo que generó la llave.
    • Rotación de la llave maestra: La llave maestra se renueva automáticamente cada 90 días para mantener la seguridad.


  • Llave operativa: Esta llave reside en la base de datos y se utiliza para encriptar los datos sensibles. Se genera dinámicamente a partir de la llave maestra, lo que asegura que los datos permanecen protegidos incluso si las llaves operativas cambian.


Algoritmo de Encriptación: Triple DES (3DES)

El algoritmo 3DES asegura la protección de los datos mediante un cifrado de 192 bits, que aplica tres pasadas de encriptación para fortalecer la seguridad.

  • Ventajas de 3DES en VTOL:
    • Aumenta la complejidad frente a ataques de fuerza bruta.
    • Asegura la compatibilidad con sistemas legados y normativas de seguridad.


Encriptación de Datos Sensibles

  • Base de datos: Todos los datos sensibles relacionados con transacciones, como números de tarjetas de crédito, fechas de caducidad y códigos de seguridad, se almacenan encriptados utilizando 3DES. Protege los datos en reposo frente a accesos no autorizados.

  • Logs de sistema: En modo normal, los logs no almacenan datos sensibles. Sin embargo, en modo DEBUG, si se capturan estos datos, siempre se encriptan para garantizar la seguridad. Permite el diagnóstico sin comprometer la confidencialidad de la información.


Seguridad en la Transmisión de Datos

VTOL asegura que toda la comunicación entre sistemas se realice a través de canales cifrados, utilizando SSL/TLS o VPN.

  • Protocolos utilizados:
    • SSL/TLS: Garantiza la protección de los datos durante la transmisión en redes públicas.
    • VPN: Asegura un canal privado y protegido para la comunicación entre servidores y dispositivos POS.


Reglas de Seguridad y Rotación de Llaves

  • Rotación de llaves: Las llaves de encriptación tienen una vigencia de 90 días y se rotan automáticamente para minimizar el riesgo de vulnerabilidades.

  • Manejo de llaves por custodios: En casos específicos, usuarios con permisos pueden administrar manualmente las llaves a través de herramientas dedicadas. Esto permite una mayor flexibilidad en la gestión criptográfica sin comprometer la seguridad.


El sistema de encriptación basado en 3DES de VTOL 3.8.0.12 proporciona una capa de seguridad robusta para proteger datos sensibles, asegurando la confidencialidad y cumpliendo con las normativas de seguridad más estrictas. La jerarquía de llaves, junto con las medidas de protección en tránsito y en reposo, posiciona a VTOL como una solución confiable y preparada para entornos empresariales de alta demanda.


Dica
titleDOCUMENTACIÓN RELACIONADA - Guía de implementación 3.8.0.12

Ver También:




GESTIÓN ENCRIPTACIÓN Y SEGURIDAD DE DATOS DESDE VTOL 3.8.1.0

Con la versión 3.8.1.0, VTOL implementa el algoritmo de encriptación AES-256 (Advanced Encryption Standard), considerado uno de los estándares más seguros y ampliamente utilizados en la industria para proteger datos sensibles. Este cambio representa una mejora significativa en la seguridad de los datos, cumpliendo con normativas internacionales como PCI DSS y proporcionando una infraestructura criptográfica moderna y robusta. AES-256 asegura la protección de la información tanto en reposo como en tránsito, mediante un sistema jerárquico de llaves y herramientas avanzadas de gestión criptográfica.


Esquema Jerárquico de Llaves

El sistema de encriptación de VTOL se basa en una jerarquía de llaves que proporciona múltiples capas de protección:

  • Clave fija: Reside en el código fuente de la aplicación y sirve para proteger la clave maestra mediante un proceso de encriptación adicional. Agregar una capa de seguridad adicional, asegurando que incluso si se compromete el archivo master.key, la clave maestra permanezca protegida.

  • Clave maestra: Es el núcleo del sistema de encriptación y se utiliza para generar y proteger las claves operativas.

    • Características del archivo master.key:
      • Contiene la clave maestra encriptada.
      • Incluye metadatos como la fecha de creación y el nodo que generó la clave.
      • Se renueva automáticamente cada 90 días utilizando un generador seguro de números aleatorios (Java SecureRandom), asegurando que el sistema cumpla con los estándares de seguridad más estrictos.
  • Clave operativa: Es utilizada directamente para encriptar los datos sensibles en la base de datos. Cada cambio en las claves operativas puede realizarse sin afectar la seguridad de la clave maestra, proporcionando una flexibilidad operativa y seguridad adicional.


Algoritmo de Encriptación: AES-256

El algoritmo AES-256 es reconocido por su alta seguridad, y es adoptado por gobiernos, instituciones financieras y organizaciones de todo el mundo.

  • Características principales de AES-256:
    • Longitud de clave de 256 bits: Ofrece una protección robusta contra ataques de fuerza bruta.
    • Velocidad y eficiencia: A pesar de su complejidad, AES-256 es altamente eficiente en términos de rendimiento, incluso en grandes volúmenes de datos.
    • Cumplimiento normativo: Garantiza la compatibilidad con regulaciones como PCI DSS y GDPR.


Encriptación de Datos Sensibles

La protección de datos sensibles es una prioridad en VTOL. Todos los datos críticos son encriptados antes de ser almacenados o transmitidos.

  • Base de datos: Los números de tarjetas, fechas de caducidad y códigos de seguridad se almacenan en tablas encriptadas utilizando AES-256. Previene accesos no autorizados a la información crítica incluso si la base de datos es comprometida.

  • Logs de sistema:

    • En modo normal, los logs no contienen datos sensibles.
    • En modo DEBUG, si se capturan datos sensibles para propósitos de diagnóstico, estos siempre se almacenan encriptados.


Seguridad en la Transmisión de Datos

VTOL asegura que todos los datos transmitidos entre sus componentes y sistemas externos viajen a través de canales cifrados.

  • Protocolos utilizados:

    • SSL/TLS: Proporciona una capa de seguridad adicional al proteger los datos en tránsito.
    • VPN: Crea canales seguros y privados para la transmisión de información crítica.
  • Beneficios de la transmisión segura:

    • Previene la interceptación de datos en redes públicas.
    • Garantiza la integridad y confidencialidad de la información durante su transmisión.



Herramienta de Renovación Criptográfica

VTOL 3.8.1.0 introduce Cryptool, una herramienta dedicada para gestionar y renovar el material criptográfico.

  • Funciones principales:

    • Generación y rotación de claves maestras y operativas.
    • Supervisión y auditoría del estado de las claves.
    • Actualización automatizada para garantizar el cumplimiento normativo.
  • Ventajas de Cryptool:

    • Aumenta la eficiencia en la gestión criptográfica.
    • Reduce la probabilidad de errores humanos durante la actualización de claves.


Compatibilidad y Requerimientos Técnicos

Para implementar correctamente AES-256, VTOL requiere un entorno tecnológico que cumpla con los siguientes requisitos:

  • JDK 8u151 o superior: Asegura compatibilidad con las librerías necesarias para la encriptación AES.
  • Sistema de mensajería JMS: Utilizado para distribuir las claves dentro del clúster y garantizar la sincronización entre nodos.


La adopción de AES-256 en VTOL 3.8.1.0 establece un nuevo estándar de seguridad para proteger datos sensibles. Este sistema criptográfico, junto con herramientas como Cryptool y protocolos seguros de transmisión, asegura la confidencialidad, integridad y disponibilidad de la información, posicionando a VTOL como una solución confiable para entornos empresariales críticos.


Dica
titleDOCUMENTACIÓN RELACIONADA - Guía de implementación 3.8.1.0

Ver También:




MODELO DE DATOS


En un entorno digital cada vez más dinámico, la forma en que se estructuran, comunican y almacenan los datos es crucial para garantizar la eficiencia, la interoperabilidad y la seguridad de las operaciones empresariales. La suite Napse adopta un enfoque estándar y flexible mediante el uso del formato JSON (JavaScript Object Notation) como modelo principal para la transferencia e intercambio de datos. Este modelo es ampliamente reconocido por su simplicidad y compatibilidad con múltiples plataformas, lo que permite una integración ágil con sistemas internos y externos.

El modelo de datos utilizado por Napse ha sido diseñado para cumplir con los requisitos modernos de comunicación en tiempo real, almacenamiento estructurado y procesamiento de eventos. Desde la sincronización de inventarios hasta la interacción con sistemas de fidelización, la suite se basa en un estándar robusto que facilita el manejo de grandes volúmenes de datos de manera eficiente y segura.

En el contexto de una arquitectura basada en microservicios, como la de Napse, es fundamental que todos los componentes puedan comunicarse y operar de forma independiente sin perder consistencia en los datos. JSON no solo satisface esta necesidad, sino que también permite a los desarrolladores y equipos de TI integrar fácilmente nuevos sistemas y funcionalidades sin necesidad de reestructurar la infraestructura existente.

Además, este modelo de datos garantiza que los datos críticos puedan ser procesados, almacenados y protegidos según los más altos estándares de seguridad. Esto es especialmente importante en sectores donde la protección de la información sensible, como los datos personales y financieros, es una prioridad.


Modelo JSON en la Suite Napse

  • Interoperabilidad Global: El uso de JSON como formato estándar permite que la suite Napse se conecte con una amplia variedad de sistemas externos, incluyendo sistemas de gestión empresarial (ERP), plataformas de marketing, sistemas fiscales y más.

  • Eficiencia Operativa: La naturaleza ligera y eficiente de JSON minimiza el tiempo y los recursos necesarios para transferir y procesar datos, mejorando así el rendimiento general del sistema.

  • Escalabilidad y Flexibilidad: A medida que las necesidades del negocio crecen, la estructura adaptable de JSON facilita la incorporación de nuevos módulos, microservicios y sistemas externos sin afectar la estabilidad de la solución existente.

  • Compatibilidad con Almacenamiento y Comunicación:  La integración nativa con bases de datos como MongoDB y sistemas de mensajería como RabbitMQ asegura una transición fluida de los datos entre diferentes capas del sistema.


Formato de Datos Estándar

La suite Napse utiliza JSON (JavaScript Object Notation) como su modelo de datos estándar para todas las interacciones internas y externas. Este formato de datos ha sido seleccionado debido a su capacidad de estructurar información de manera clara y su amplia adopción en la industria tecnológica.

  • Ventajas del Uso de JSON:

    • Legibilidad: Fácil de entender tanto por humanos como por máquinas.
    • Compatibilidad: Compatible con una amplia gama de sistemas y lenguajes de programación.
    • Eficiencia: Proporciona una estructura de datos ligera y de rápido procesamiento.


  • Aplicaciones de JSON en Napse:

    • Intercambio de datos entre microservicios: Todos los módulos de la suite utilizan JSON para comunicarse de manera eficiente.
    • Exportación a RabbitMQ: Los mensajes enviados a través de este sistema de colas se estructuran en formato JSON.
    • Almacenamiento en MongoDB: Como la base de datos utiliza un formato BSON (Binary JSON), asegura una integración nativa con el modelo de datos de la suite.


Mecanismos de Comunicación

  • APIs REST:

    • Las APIs RESTful transfieren datos en formato JSON a través de protocolos seguros como HTTPS.
    • Ejemplo de uso: Sincronización de inventarios y consulta de datos de ventas.


  • RabbitMQ (AMQPS):

    • Los mensajes y eventos procesados en RabbitMQ están en formato JSON, lo que permite una interpretación uniforme y precisa de los datos.
    • Ejemplo de uso: Notificaciones de promociones y actualizaciones de stock.


Encriptación de Datos Sensibles

Para proteger la confidencialidad y la integridad de la información, algunos tipos de datos se encriptan tanto en tránsito como en reposo:

  • Tipos de datos sensibles:

    • Información personal de clientes (nombres, direcciones).
    • Datos de transacciones financieras.
    • Credenciales de acceso y tokens de autenticación.


  • Métodos de encriptación:

    • En tránsito: Uso de TLS (Transport Layer Security) para proteger los datos durante la transmisión.
    • En reposo: Encriptación en la base de datos con estándares como AES-256.


El modelo de datos JSON, respaldado por mecanismos de comunicación robustos y prácticas avanzadas de encriptación, proporciona la base para una arquitectura sólida, segura y escalable en la suite Napse. Esta elección tecnológica no solo respalda la operatividad actual, sino que también posiciona a la suite como una solución preparada para enfrentar los desafíos y oportunidades del futuro.


Dica
titleMODELOS DE DATOS NAPSE

Ver mas en:





SISTEMA DE DESPLIEGUE Y CONTROL DE VERSIONES

El despliegue y el control de versiones son pilares fundamentales en cualquier sistema de software moderno, especialmente en una suite como Napse, que gestiona múltiples módulos y servicios en entornos distribuidos. La capacidad de administrar versiones de manera eficiente, garantizar la calidad del código y desplegar nuevas funcionalidades sin interrupciones es esencial para mantener la continuidad operativa y la satisfacción del cliente.

La suite Napse ha implementado un proceso de despliegue robusto y un sistema de control de versiones diseñado para manejar entornos escalables, distribuidos y de alta disponibilidad. Este sistema no solo facilita la gestión del código fuente, sino que también permite la implementación de nuevas versiones en diferentes tiendas o regiones de manera centralizada, segura y controlada.

El uso de herramientas como Git, Jenkins y Director asegura una trazabilidad completa de los cambios, la automatización de pruebas y la capacidad de realizar despliegues masivos con flexibilidad y precisión. Esto garantiza que cada actualización cumpla con los estándares de calidad y se adapte a las necesidades específicas de cada cliente o entorno operativo.


Herramientas Utilizadas

  • Control de versiones con Git:

    • Git es la herramienta principal para gestionar el código fuente de la suite Napse. Permite rastrear cambios realizados en el código a lo largo del tiempo, facilitando la colaboración entre desarrolladores y asegurando que cualquier modificación pueda ser revertida si es necesario.

    • Características clave:
      • Historial completo de cambios y versiones.
      • Soporte para ramas, lo que permite el desarrollo paralelo de nuevas funcionalidades.
      • Fácil integración con herramientas de gestión como JIRA y Confluence.
    • Complementos:
      • JIRA: Utilizado para la planificación y seguimiento de tareas, así como para gestionar bugs y nuevas funcionalidades.
      • Confluence: Sirve como repositorio central de documentación técnica, incluyendo especificaciones, diagramas de arquitectura y guías de despliegue.
    • Beneficios:
      • Permite un desarrollo colaborativo y organizado.
      • Facilita el control de calidad al revisar y aprobar cambios antes de su integración.


  • Automatización de pruebas con Jenkins

    • Jenkins es una herramienta de integración continua que permite la automatización de procesos clave, como la construcción del código, la ejecución de pruebas y la entrega de artefactos listos para despliegue.
    • Características clave:
      • Ejecución diaria de compilaciones para verificar la estabilidad del sistema.
      • Pruebas unitarias automatizadas para detectar errores en las etapas iniciales del desarrollo.
      • Generación de reportes detallados sobre el estado de cada compilación.
    • Beneficios:
      • Asegura que cada versión cumpla con los estándares de calidad antes de su implementación.
      • Reduce significativamente el tiempo necesario para detectar y corregir errores.


  • Control de versiones en tiendas con Director

    • Director es una herramienta diseñada específicamente para gestionar el software instalado en las tiendas. Facilita el control y la distribución de versiones en entornos distribuidos, permitiendo administrar configuraciones personalizadas según las necesidades de cada tienda.
    • Características clave:
      • Capacidad para manejar versiones diferentes por tienda o grupo de tiendas.
      • Despliegue escalonado o masivo según las preferencias del cliente.
      • Funcionalidad de rollback para revertir rápidamente a una versión anterior en caso de problemas.
    • Ejemplo práctico:
      • En un cliente con más de 1,500 tiendas, Director permite desplegar una nueva versión en todas las tiendas en menos de un día, con opciones para implementar solo ciertos microservicios si es necesario.


Proceso de Despliegue

  • Preparación: El proceso comienza con la planificación de la actualización en JIRA, donde se registran los cambios propuestos y se documentan en Confluence. Los desarrolladores realizan las modificaciones en una rama específica de Git, garantizando la separación de las nuevas funcionalidades respecto al código estable.

  • Pruebas Automatizadas: Jenkins compila el código y ejecuta pruebas unitarias automáticamente, generando reportes detallados sobre el estado de la versión. Cualquier error detectado en esta etapa se soluciona antes de proceder al despliegue.

  • Despliegue Inicial en Entorno de Pruebas: Una vez aprobada la versión, se despliega en un entorno de pruebas para validaciones adicionales y simulación de escenarios reales.

  • Despliegue en Producción: Utilizando Director, se realiza el despliegue en producción, ya sea de manera escalonada (por grupos de tiendas) o masiva (todas las tiendas simultáneamente). Durante el despliegue, se monitorean los sistemas para identificar cualquier posible incidencia en tiempo real.

  • Rollback (si es necesario): En caso de detectar problemas, Director permite revertir rápidamente a la versión anterior sin interrumpir las operaciones.


El sistema de despliegue y control de versiones de Napse asegura una gestión eficiente y segura de las actualizaciones del software, minimizando el impacto en las operaciones y garantizando la calidad del sistema. Este enfoque permite a las empresas beneficiarse de nuevas funcionalidades sin comprometer la estabilidad y la continuidad del negocio.


Dica
titleDOCUMENTACIÓN - DESPLIEGUE Y CONTROL DE VERSIONES

SUITE NAPSE


DIRECTOR







SISTEMA DE CONFIGURACIÓN DE POS CENTRAL Y LOCAL

La solución de ventas de Napse, está diseñada para ofrecer una plataforma robusta y flexible que soporta múltiples modalidades de puntos de venta (POS). Estas modalidades permiten a las organizaciones adaptarse a diferentes contextos operativos, optimizando tanto la experiencia del cliente como la eficiencia de los procesos en tienda. Desde terminales tradicionales hasta soluciones móviles y de autoservicio, Bridge ofrece una gestión centralizada y local de los dispositivos POS, garantizando una implementación escalable y personalizable según las necesidades de cada negocio.


Modalidades de Operación

  • Terminal Tradicional: Punto de venta convencional, donde el personal de la tienda realiza las transacciones.

    • Configuración centralizada desde Bridge Central.
    • Compatible con periféricos como impresoras de recibos, escáneres de código de barras y cajones de efectivo.


  • Self Service: El cliente selecciona productos y realiza el pedido de manera autónoma.

    • Interfaz amigable y simple.
    • Ideal para restaurantes de comida rápida o tiendas con alto flujo de clientes.


  • Self Checkout: El cliente no solo selecciona productos, sino que también procesa y paga su compra sin intervención del personal.

    • Integración con sistemas de pago electrónicos.
    • Compatible con lectores de códigos QR y tecnología NFC.


  • POS Móvil Dispositivo portátil que funciona como un punto de venta completo, ideal para ventas en movimiento o en espacios reducidos.

    • Operativo en dispositivos Android.
    • Soporte para aplicaciones móviles específicas de la suite Napse.


Gestión Centralizada y Local

  • Configuración Centralizada: Desde Bridge Central, se pueden gestionar y actualizar todos los dispositivos POS, asegurando una uniformidad en la configuración y un control centralizado de las funcionalidades.

  • Adaptación Local: Cada tienda puede realizar configuraciones específicas según sus necesidades, como la personalización de menús, promociones o preferencias de idioma.


Dica
titleDOCUMENTACIÓN - POS






COMPATIBILIDAD Y AGNOSTICISMO AL HARDWARE

La suite Napse está diseñada para ser completamente agnóstica al hardware, lo que significa que su software de terminal puede operar en una amplia variedad de dispositivos y sistemas operativos sin necesidad de ajustes específicos. Esto brinda a las organizaciones una flexibilidad excepcional para elegir el hardware que mejor se adapte a sus necesidades y presupuesto.


Tecnologías Utilizadas

  • Java y NodeJS: Lenguajes de programación ampliamente soportados en múltiples plataformas y arquitecturas.
  • Base de datos MongoDB: Ofrece un almacenamiento flexible que se integra de manera nativa con sistemas operativos modernos.


Compatibilidad con Sistemas Operativos

La solución es compatible con Windows, Linux y Android, asegurando una implementación sin problemas en terminales tradicionales, dispositivos móviles y sistemas personalizados.




PLAN DE ESCALABILIDAD FUTURA

La suite Napse está diseñada bajo el concepto de microservicios, lo que facilita la escalabilidad horizontal y vertical de la solución, permitiendo satisfacer las crecientes demandas de negocio. Esta arquitectura modular asegura que cada componente pueda evolucionar y expandirse independientemente, sin afectar la estabilidad del sistema global.

Este diseño se centra en la modularidad, con un CORE robusto que actúa como la base del sistema. Este CORE contiene las reglas de negocio comunes y fundamentales, ofreciendo una plataforma centralizada para la configuración y gestión de procesos estándar. Sobre esta base, los plugins extensibles permiten personalizar y ampliar las funcionalidades para adaptarse a necesidades específicas de cada cliente, industria o país.


  • Características del CORE

    • Reglas de negocio centralizadas: Incluye lógica para la gestión de ventas, promociones, fidelización y cumplimiento fiscal.
    • Multipaís y multivertical: Diseñado para operar en diversos mercados, soportando variaciones locales como impuestos, divisas y métodos de pago.
    • Actualizaciones sin interrupciones: Las actualizaciones del CORE se realizan sin afectar los plugins personalizados, asegurando la continuidad del negocio.



  • Plugins Extensibles

    • Definición y propósito: Los plugins son componentes desarrollados en NodeJS que extienden o modifican el comportamiento del CORE sin necesidad de alterar su código base. Esto permite una adaptación ágil a requerimientos específicos.
    • Ejemplos:
      • Integración con sistemas fiscales locales: Un plugin puede generar un comprobante fiscal específico para un país.
      • Personalización de promociones: Implementar una lógica única para calcular descuentos dinámicos basados en reglas definidas por el cliente.
      • Automatización de procesos: Un plugin puede automatizar el envío de notificaciones o alertas basadas en ciertos eventos, como la reposición de inventario.


Eventos y Acciones Escalables

La suite Napse adopta un enfoque basado en eventos para gestionar procesos de negocio y comunicación entre módulos, lo que aumenta su escalabilidad y flexibilidad.

  • Suscripción a Eventos del Sistema

    • Los microservicios dentro de la suite generan eventos en tiempo real que pueden ser procesados por otros servicios o plugins. Estos eventos se gestionan a través de RabbitMQ, asegurando la entrega confiable y eficiente.
    • Ejemplos de eventos:
      • Evento de venta: Al agregar un ítem en el POS, se genera un evento que puede ser procesado por un servicio externo para calcular una promoción específica o actualizar el inventario.
      • Actualización de fidelización: La asignación de puntos de lealtad tras una transacción genera un evento que puede ser consumido por un sistema de CRM.


  • Procesamiento de Acciones Externas

    • Los eventos pueden disparar acciones en sistemas externos, lo que permite una integración fluida y la ejecución de tareas complejas fuera del CORE.
    • Ejemplos:
      • Modificación del contexto de una venta: Un plugin puede interceptar un evento de venta, calcular un beneficio adicional (como un descuento por volumen), y luego devolver el contexto actualizado al flujo principal.
      • Actualización en tiempo real: Al recibir un evento de stock, un servicio puede notificar automáticamente a los sistemas de almacén para realizar una reposición inmediata.


Beneficios del Enfoque Basado en Eventos

  • Desacoplamiento de componentes: Los servicios interactúan de manera asíncrona, reduciendo la dependencia entre ellos y permitiendo una mayor flexibilidad en el desarrollo y despliegue.
  • Escalabilidad y rendimiento: La arquitectura permite procesar grandes volúmenes de eventos sin comprometer el rendimiento del sistema.
  • Capacidad de respuesta: Las acciones en tiempo real garantizan que los sistemas puedan reaccionar rápidamente a cambios en el negocio o en las operaciones.


El CORE del producto y la arquitectura basada en eventos, combinados con la capacidad de extensibilidad mediante plugins, garantizan que la suite Napse pueda escalar eficientemente. Esta flexibilidad asegura que las empresas puedan personalizar y optimizar sus procesos para satisfacer las demandas dinámicas del mercado, manteniendo la integridad y el rendimiento del sistema.




SLAS Y REQUISITOS DE RENDIMIENTO

Los acuerdos de nivel de servicio (SLAs) son compromisos formales que garantizan la disponibilidad y el rendimiento de la infraestructura tecnológica. En la suite Napse, los SLAs aseguran que los flujos transaccionales críticos, como las ventas, devoluciones y actualizaciones de stock, se procesen de manera eficiente y sin interrupciones. El SLA garantizado es de 99.5%, lo que asegura un alto nivel de disponibilidad del sistema.


  • Disponibilidad Garantizada:
    Un SLA del 99.5% equivale a un tiempo máximo de inactividad de aproximadamente 3.65 horas al mes.

  • Requerimientos de Telecomunicaciones:

    • Latencia máxima: 100 ms entre servidores centrales y terminales POS.
    • Ancho de banda mínimo: 1 Mbps por terminal para asegurar una transmisión de datos fluida y sin interrupciones.


Importancia de los SLAs

  • Aseguran la continuidad del negocio.
  • Garantizan que los clientes finales no experimenten interrupciones durante las transacciones.


Referencia

Para más detalles sobre los SLAs aplicables, consulte el siguiente enlace:
Service Level Agreements (SLA) for Online Services - Microsoft.




RESILIENCIA Y ALTA DISPONIBILIDAD (HA)

La suite Napse está diseñada para operar en entornos empresariales críticos que requieren alta disponibilidad y resiliencia frente a fallos. Esto se logra mediante un esquema de Disaster Recovery Plan (DRP) implementado en la infraestructura de Microsoft Azure.

Esquema de Resiliencia

  • Alta Disponibilidad (HA):

    • Los servicios críticos se ejecutan en configuraciones de clúster para garantizar que, incluso en caso de fallo de un servidor, el sistema siga operando sin interrupciones.
  • Disaster Recovery (DRP):

    • Se basa en la infraestructura de Azure Site Recovery, que permite la recuperación rápida de los sistemas en caso de desastres o fallos mayores.


Referencia

Para más detalles sobre Azure Site Recovery, consulte:
Azure Site Recovery Overview.





REQUISITOS DE COMPATIBILIDAD CON SISTEMAS LEGADOS

La flexibilidad de la arquitectura de la suite Napse permite múltiples formas de comunicación e integración con sistemas legados, asegurando que las organizaciones puedan adoptar la solución sin necesidad de reemplazar sus plataformas existentes. Este enfoque modular y adaptable permite que los sistemas legados se conecten sin fricciones a los módulos centrales de Napse, manteniendo la coherencia de los datos y la funcionalidad operativa.


MÉTODOS DE INTEGRACIÓN SOPORTADOS

  • Servicios REST (JSON)

    • Los servicios REST son el principal mecanismo de comunicación entre los sistemas legados y la suite Napse. Estos servicios ofrecen una interfaz estándar y segura para enviar y recibir datos en tiempo real.
    • Características clave:
      • Soporte nativo para autenticación mediante OAuth 2.0.
      • Formato de datos JSON, ampliamente utilizado por su facilidad de uso y compatibilidad.
    • Ejemplos de uso:
      • Recepción de datos maestros, como catálogos de productos.
      • Consulta y actualización de información transaccional, como ventas y devoluciones.


  • Carga de Archivos CSV

    • Para facilitar la integración con sistemas que no soportan APIs modernas, Napse permite la importación de datos mediante archivos CSV. Este método es ideal para transferencias masivas de información.
    • Ejemplos de uso:
      • Importación de listas de precios o actualizaciones de inventarios.
      • Migración de datos históricos desde sistemas legados.


  • Plugins Personalizados en NodeJS

    • La plataforma abierta de Napse permite la creación de plugins desarrollados en NodeJS para cubrir necesidades específicas que no estén contempladas en las funcionalidades estándar.
    • Ventajas:
      • Evita modificar el núcleo del sistema, garantizando la estabilidad y escalabilidad de la solución.
      • Posibilidad de crear adaptadores personalizados para sistemas propietarios.
    • Ejemplo de uso:
      • Desarrollo de un plugin para integrar un sistema de facturación legado que utiliza un formato de datos propietario.


Nota
titleCasos de Uso
  • Integración de Datos Maestros: Un minorista puede importar su catálogo completo de productos desde su sistema ERP legado a través de un archivo CSV, garantizando que todos los datos estén sincronizados con el módulo Bridge Central de Napse.

  • Sincronización de Ventas y Devoluciones: Utilizando las APIs REST de Napse, una tienda puede registrar ventas y devoluciones en tiempo real, asegurando que su sistema legado de gestión de inventarios esté siempre actualizado.

  • Adaptación de un Sistema de Fidelización: Mediante un plugin personalizado en NodeJS, se puede integrar un sistema de fidelización externo, permitiendo la transferencia automática de puntos y beneficios entre ambas plataformas.



Dica
titleDOCUMENTACÓN RELACIONADA


...proceso de desarrollo de plugins....


PROMO CRM Plugin




El diseño flexible y modular de la suite Napse garantiza una compatibilidad óptima con sistemas legados, proporcionando métodos de integración estándar y herramientas personalizadas. Esto permite a las organizaciones aprovechar las ventajas de una plataforma moderna sin comprometer sus inversiones en infraestructura existente. La combinación de servicios REST, carga de archivos CSV y plugins personalizados asegura una integración eficiente y adaptada a las necesidades específicas de cada cliente.





ARQUITECTURA MACH

La arquitectura MACH (Microservicios, API-first, Cloud-native y Headless) define un enfoque moderno y modular para el desarrollo de software empresarial. Al adoptar este modelo, la suite Napse asegura flexibilidad, escalabilidad y la capacidad de adaptarse rápidamente a las cambiantes necesidades del mercado. MACH se posiciona como un pilar fundamental en la estrategia tecnológica de Napse, garantizando que cada componente del sistema sea independiente, interoperable y optimizado para la nube.


PRINCIPIOS DE LA ARQUITECTURA MACH - SUITE NAPSE

  • Microservicios (Microservices): La suite Napse está compuesta por un conjunto de microservicios independientes, cada uno de los cuales se encarga de una funcionalidad específica, como la gestión de promociones, la fidelización, o el procesamiento fiscal.

    • Características clave:
      • Cada microservicio puede desarrollarse, desplegarse y escalarse de manera autónoma.
      • Los fallos en un microservicio no afectan al resto del sistema, garantizando resiliencia.
      • Facilita la adopción de nuevas tecnologías y la integración de módulos adicionales.
    • Ejemplo en Napse:
      • Bridge API actúa como un hub de microservicios que conecta diferentes componentes de la suite, como Bridge Central, PROMO, y Fiscal Flow.


  • API-first: Las APIs son el núcleo de la interacción entre los módulos de Napse y los sistemas externos, lo que permite una integración rápida y flexible.

    • Características clave:
      • Cada funcionalidad se desarrolla pensando en su exposición como API, asegurando consistencia y reutilización.
      • APIs REST con autenticación OAuth 2.0 garantizan seguridad y accesibilidad.
      • Documentación clara y estandarizada facilita la integración para desarrolladores externos.
    • Ejemplo en Napse:
      • Las APIs permiten sincronizar catálogos de productos con sistemas ERP externos y enviar datos de transacciones a plataformas de fidelización en tiempo real.


  • Cloud-native: La suite Napse está diseñada para aprovechar al máximo las capacidades de la nube, optimizando rendimiento, disponibilidad y costos operativos.

    • Características clave:
      • Despliegue en entornos escalables como Azure, lo que permite una elasticidad dinámica de recursos.
      • Mecanismos de recuperación ante desastres (DRP) nativos de la nube para garantizar alta disponibilidad.
      • Infraestructura como código (IaC) para una gestión eficiente y automatizada de los entornos.
    • Ejemplo en Napse:
      • Los módulos como Omni y Fiscal Flow están alojados en la nube, lo que asegura tiempos de respuesta rápidos y una alta disponibilidad global.


  • Headless: La lógica del sistema está completamente separada de la interfaz de usuario, permitiendo que las organizaciones personalicen sus frontends según sus necesidades específicas.

    • Características clave:
      • Los microservicios manejan toda la lógica de negocio, dejando a los frontends la responsabilidad de la presentación.
      • Flexibilidad para desarrollar interfaces de usuario personalizadas para web, móvil o terminales POS.
    • Ejemplo en Napse:
      • Los puntos de venta (POS) utilizan interfaces personalizadas para terminales tradicionales, móviles y de autoservicio, mientras que la lógica de ventas reside en los microservicios.


VENTAJAS DE LA ARQUITECTURA MACH EN NAPSE

  • Escalabilidad y Resiliencia

    • Los microservicios pueden escalarse de forma independiente, permitiendo una respuesta ágil a picos de demanda sin impactar en otros componentes.
    • La arquitectura modular asegura que los fallos en un servicio no afecten la operatividad del sistema completo.
  • Integración y Flexibilidad

    • Las APIs facilitan la integración con sistemas de terceros, como ERPs, CRMs y plataformas de pago, acelerando los tiempos de implementación y reduciendo costos.
  • Eficiencia Operativa

    • La adopción de una infraestructura cloud-native optimiza costos operativos al permitir el uso eficiente de los recursos y garantizar una alta disponibilidad.
  • Personalización y Experiencia de Usuario

    • La arquitectura headless permite desarrollar interfaces específicas para cada entorno, ofreciendo experiencias de usuario personalizadas y optimizadas.


EJEMPLOS PRÁCTICOS DE MACH EN LA SUITE NAPSE

  • Promociones Dinámicas (PROMO): PROMO utiliza microservicios independientes para gestionar reglas complejas de promociones, integrándose con sistemas de fidelización a través de APIs y desplegándose en la nube para una disponibilidad global.

  • Fiscal Flow: Este módulo, basado en microservicios y operando en la nube, garantiza el cumplimiento de normativas fiscales mediante la emisión de comprobantes electrónicos en tiempo real.

  • Bridge POS: El POS se adapta a diferentes modalidades (tradicional, móvil, self-service) gracias a su arquitectura headless, permitiendo interfaces específicas para cada entorno sin afectar la lógica central de negocio.


La implementación de la arquitectura MACH en la suite Napse garantiza que la solución sea moderna, robusta y preparada para las necesidades futuras del mercado. Este enfoque asegura una experiencia de usuario optimizada, integraciones fluidas y una infraestructura escalable y resiliente, posicionando a Napse como líder en soluciones de gestión comercial.







REQUISITOS DE RED Y SEGURIDAD EN LA COMUNICACIÓN

La conectividad de red es un aspecto crítico para el correcto funcionamiento de la suite Napse. Para garantizar una comunicación segura y eficiente entre los módulos del sistema, se requiere una infraestructura de red que cumpla con estándares mínimos de calidad y seguridad.

Requerimientos Mínimos

  • VPN Site-to-Site:
    La comunicación entre los servidores centrales y las tiendas se realiza a través de una VPN Site-to-Site, que garantiza un canal seguro y cifrado para proteger la información sensible en tránsito.

  • Especificaciones técnicas:

    • Ancho de banda mínimo: 2 Mbps para la comunicación entre el servidor central y cada tienda.
    • Tiempo de latencia recomendado: No más de 100 ms para evitar retrasos en la sincronización de datos.


Referencia

Para más información sobre la configuración de VPN Site-to-Site, visite:
VPN Gateway - About VPN Gateways - Microsoft Azure.