Vai al contenuto

Architettura SGV GE.CO

Visione d'Insieme

SGV GE.CO (Sistema Gestione Verbali / Gestione Contravvenzioni) è un sistema multi-tier per la gestione del ciclo di vita completo delle sanzioni del Codice della Strada italiano. Gestisce: emissione verbali, notifiche, pagamenti, ricorsi, punti patente, sequestri/fermi amministrativi e integrazione con i servizi della Pubblica Amministrazione.

graph TB
    subgraph "Presentation Tier"
        UI["GeCo.Alfa<br/>Vaadin 7 MVP<br/>:8080"]
        MOB["MobileFineAdapter<br/>Spring Boot REST<br/>:8083"]
    end

    subgraph "Service Tier"
        GS["GecoService<br/>JAX-RS/RESTEasy<br/>:8080"]
        ELB["ElaborazioneService<br/>RESTEasy + Quartz<br/>:8080"]
        REST["REST (Quarkus)<br/>Multi-tenant<br/>:8082"]
    end

    subgraph "Integration Tier"
        CONN["ConnessioneService<br/>JAX-RS Gateway<br/>:8080"]
        OTT["OtticoService<br/>JMS MDB<br/>:8081"]
        VPN["VpnMctcService<br/>JAX-WS EJB<br/>:8084"]
    end

    subgraph "External PA Services"
        ANPR["ANPR<br/>Anagrafe Nazionale"]
        PND["PND<br/>Notifiche Digitali"]
        INAD["INAD<br/>Domicili Digitali"]
        PAGO["PagoPA<br/>Pagamenti"]
        MCTC["MCTC<br/>Motorizzazione"]
        DOCF["DocFly<br/>Gestione Documenti"]
    end

    subgraph "Data Tier"
        PG[("PostgreSQL<br/>:5432")]
        MONGO[("MongoDB<br/>:27017")]
    end

    UI --> GS
    UI --> ELB
    MOB --> GS
    GS --> PG
    ELB --> PG
    ELB --> CONN
    REST --> PG
    CONN --> ANPR
    CONN --> PND
    CONN --> INAD
    CONN --> PAGO
    CONN --> DOCF
    VPN --> MCTC
    OTT --> MONGO
    OTT --> PG

Principi Architetturali

  1. Separazione delle responsabilità: UI (Vaadin MVP), Business Logic (Service/Controller), Data Access (DAO/JPA)
  2. Multi-tenancy: Supporto multipli comuni con isolamento database (Quarkus X-Realm header routing)
  3. Gateway di integrazione centralizzato: ConnessioneService come unico punto di accesso verso i servizi PA
  4. Elaborazione asincrona: Quartz scheduler per generazione PDF batch, notifiche, elaborazioni massive
  5. Modularità: Ogni modulo è un progetto Maven indipendente, collegato tramite Maven local repository

Stack Tecnologico

Layer Tecnologia Versione
UI Framework Vaadin 7.7.27
Application Server WildFly/JBoss EAP 18+
Java JDK 1.8 (legacy), 11 (REST)
JPA Provider EclipseLink 2.5.1
Spring Framework Spring Core/Security 3.2.8 / 5.3.20
REST Framework JAX-RS / RESTEasy 4.7.7
SOAP Framework Apache CXF 3.4.5
Scheduler Quartz 2.2.1
Next-Gen REST Quarkus 2.16.5
PDF Generation iText 5.5.13 / 8.0.5
Database PostgreSQL 12+
Document DB MongoDB 4.4+
Build Tool Maven 3.6+

Runtime Environment

  • WildFly: Tutti i moduli WAR deployati su WildFly (GeCo.Alfa, GecoService, ElaborazioneService, ConnessioneService, OtticoService, VpnMctcService, MobileFineAdapterServer)
  • Quarkus standalone: Modulo REST su porta 8082 con live reload in dev mode
  • JNDI Datasource: java:jboss/PostgresDSPoolGenerale per PostgreSQL
  • MongoDB: Connessione diretta per OtticoService (documenti scansionati)

Domini Funzionali

mindmap
  root((SGV GE.CO))
    Verbali
      Emissione
      Modifica
      Extra CDS
      Pre-verbali
    Notifiche
      Postalizzazione
      PND digitale
      Tracking
    Pagamenti
      PagoPA
      Rateizzazione
      Cauzioni
    Ricorsi
      Giudice di Pace
      Prefetto
      Esiti
    Punti Patente
      Decurtazione
      Storno
      Comunicazione MCTC
    Sequestri
      Fermo amministrativo
      Custodia
      Restituzione
    Anagrafiche
      Conducenti
      Proprietari
      Veicoli
    Integrazioni PA
      ANPR
      PND
      INAD
      PagoPA
      MCTC
      DocFly

Approfondimenti