SIGRID_CNT_001-A - Vista simplificada por dominios

@startuml

scale 0.7

!include <C4/C4_Container>
!include <C4/C4_Context>

title Diagrama de Contenedores - Vista simplificada por dominios

System_Ext(SYSGROUP, "Sistemas de monitoreo o Sistemas de Organizaciones pertenecientes al SIGRID", "Sistemas propios de cada organización que envían información al SIGRID.", $link="../systems.html#ITRENDCL-SIGRID-SYS-SYSGROUP")
System(SIGRIDCLIENTS, "Aplicaciones Clientes de SIGRID", "Aplicaciones clientes con distinto énfasis que utilizan los nodos del SIGRID para disponibilizar información.", $link="../systems.html#ITRENDCL-SIGRID-SYS-SIGRIDCLIENTS")
Boundary(EXTERNAL_AUTH, "Sistemas de autenticación externos") {
    System_Ext(OAUTH_SENAPRED, "Proveedor de Autenticación SENAPRED", "Oauth server Microsoft Entra", $link="../systems.html#ITRENDCL-SIGRID-SYS-OAUTH_SENAPRED")
    System_Ext(OAUTH_BOMBEROS, "Proveedor de Autenticación OTMA", "Oauth server Microsoft Entra", $link="../systems.html#ITRENDCL-SIGRID-SYS-OTMA")
    System_Ext(OAUTH_SERNAGEOMIN, "Proveedor de Autenticación Organismo Público", "Oauth server Microsoft Entra", $link="../systems.html#ITRENDCL-SIGRID-SYS-OAUTH_ORG_PUBLICO")
}

System_Boundary(SIGRID, "SIGRID", $link="../systems.html#ITRENDCL-SIGRID-SYS-SIGRID") {
    Container(DOM_GOB, "Dominio de Gobernanza de datos", "Subsistema encargado de mantener control sobre la gobernanza de los datos en SIGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-GOB")
    Container(DOM_EC, "Dominio de Comunicación externa", "Actúa como portal centralizado de comunicación con las aplicaciones cliente del SIGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-EC")
    Container(DOM_UM, "Dominio de Gestión de usuarios", "Subsistema encargado de autenticar y autorizar a usuarios del SIGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-UM")
    Container(DOM_INT, "Dominio de Integración", "Subsistema encargado de integrar al SIGRID con sistemas externos de monitoreo.", $link="../containers.html#ITRENDCL-SIGRID-DOM-INT")
    Container(DOM_EMG, "Dominio de Emergencia", "Subsistema encargado de los servicios de gestión de información de emergencias.", $link="../containers.html#ITRENDCL-SIGRID-DOM-EMG")
    Container(DOM_GIS, "Dominio de Información territorial", "Subsistema encargado de administrar la información georeferenciada de SIGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-GIS")
    Container(DOM_ANALYSIS, "Dominio de Análisis de datos", "Subsistema encargado de analizar la información almacenada en SIGRID para obtener reportes y conclusiones.", $link="../containers.html#ITRENDCL-SIGRID-DOM-ANALYSIS")
    Container(DOM_ALERT, "Dominio de Creación de alertas", "Subsistema encargado de asistir en la creación de alertas hacia la comunidad.", $link="../containers.html#ITRENDCL-SIGRID-DOM-ALERT")
    Container(DOM_NOTIFY, "Dominio de Notificaciones", "Subsistema encargado de enviar notificaciones y administrar suscripciones a canales de notificación.", $link="../containers.html#ITRENDCL-SIGRID-DOM-NOTIFY")
    Container(DOM_COM, "Dominio de Comunicación interna", "Subsistema encargado de distribuir mensajes internos entre los diferentes subsistemas del SIGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-COM")
    Container(DOM_ENCRYPT, "Dominio de Encriptación y codificación", "Subsistema encargado de encriptar la información y gestionar las llaves de encriptación.", $link="../containers.html#ITRENDCL-SIGRID-DOM-ENCRYPT")
    Container(DOM_INTERNAL, "Dominio interno", "Subsistema encargado de la gestión de oportunidades y proyectos de SENAPRED y COGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-INTERNAL")
    Container(DOM_PLANS, "Dominio de Planes", "Subsistema encargado de gestionar los planes de emergencia.", $link="../containers.html#ITRENDCL-SIGRID-DOM-PLANS")
    Container(DOM_NODES, "Dominio de Gestión de nodos", "Subsistema encargado de gestionar los nodos SIGRID en la red des-centralizada.", $link="../containers.html#ITRENDCL-SIGRID-DOM-NODES")
    Container(DOM_BOOT, "Dominio de Arranque", "Subsistema encargado de la puesta en operación, respaldo y recuperación del SIGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-BOOT")
    Container(DOM_AUDIT, "Dominio de Auditoría", "Subsistema encargado de persistir las acciones internas de SIGRID, para posibilitar su auditoría.", $link="../containers.html#ITRENDCL-SIGRID-DOM-AUDIT")
    Container(DOM_INTELLIGENCE, "Dominio de inteligencia", "Subsistema encargado de la generación de inteligencia a partir de la información almacenada en SIGRID.", $link="../containers.html#ITRENDCL-SIGRID-DOM-INTELLIGENCE")
}

System_Ext(GOOGLE_CAP, "Google Public Alerts", "Notificaciones de Alertas para la población mediante Google", $link="../systems.html#ITRENDCL-SIGRID-SYS-GOOGLE_CAP")
System_Ext(EMAIL, "Email Service", "Sistema de envío de emails.", $link="../systems.html#ITRENDCL-SIGRID-SYS-EMAIL")
System_Ext(PUSH, "Push Notification Service", "Sistema de envío de notificaciones Push.", $link="../systems.html#ITRENDCL-SIGRID-SYS-PUSH")
System_Ext(SIGRIDNODE, "Nodo SIGRID", "Nodo autónomo con capacidad de operación independiente y sincronización P2P.", $link="../systems.html#ITRENDCL-SIGRID-SYS-SIGRIDNODE")

Rel(SIGRIDCLIENTS, DOM_EC, "usa", "API")
Rel(SIGRIDCLIENTS, DOM_UM, "autentica", "API")
Rel(SYSGROUP, DOM_EC, "usa", "API")
Rel(DOM_EC, DOM_GOB, "usa", "API")
Rel(DOM_EC, DOM_EMG, "expone", "API")
Rel(DOM_EC, DOM_GIS, "expone", "API")
Rel(DOM_EC, DOM_ANALYSIS, "expone", "API")
Rel(DOM_EC, DOM_ALERT, "expone", "API")
Rel(DOM_EC, DOM_PLANS, "expone", "API")
Rel(DOM_EC, DOM_INTELLIGENCE, "expone", "API")

Rel(DOM_UM, EXTERNAL_AUTH, "federa identidades", "API")

BiRel(SYSGROUP, DOM_INT, "informa", "API")
Rel(DOM_INT, DOM_GOB, "usa", "API")
Rel(DOM_INT, DOM_COM, "publica")

Rel(DOM_EMG, DOM_COM, "publica")
Rel(DOM_GIS, DOM_COM, "consume")
Rel(DOM_ANALYSIS, DOM_COM, "consume")

Rel(DOM_ALERT, GOOGLE_CAP, "usa", "API")
Rel(DOM_ALERT, DOM_COM, "consume")

Rel(DOM_NOTIFY, DOM_COM, "consume")
Rel(DOM_NOTIFY, EMAIL, "usa", "API")
Rel(DOM_NOTIFY, PUSH, "usa", "API")

Rel(SYSGROUP, DOM_ENCRYPT, "usa", "API")
Rel(DOM_INT, DOM_ENCRYPT, "usa", "API")

Rel(DOM_INTERNAL, DOM_COM, "publica/consume")
Rel(DOM_PLANS, DOM_COM, "publica/consume")

Rel(DOM_NODES, DOM_BOOT, "gatilla")
Rel(DOM_NODES, SIGRIDNODE, "consulta")

Rel(DOM_AUDIT, SIGRID, "monitorea")

Rel(DOM_INTELLIGENCE, DOM_PLANS, "consume")
Rel(DOM_INTELLIGENCE, DOM_INT, "consume")
Rel(DOM_INTELLIGENCE, DOM_GOB, "usa", "API")
Rel(DOM_INTELLIGENCE, DOM_EMG, "usa", "API")
Rel(DOM_INTELLIGENCE, DOM_GIS, "usa", "API")
Rel(DOM_INTELLIGENCE, DOM_ANALYSIS, "usa", "API")
Rel(DOM_INTELLIGENCE, DOM_ALERT, "usa", "API")

SHOW_LEGEND()
@enduml