Architettura
Panoramica
MyQ Roger è un SaaS nativo su cloud pubblico. A differenza dei tradizionali sistemi di gestione della stampa on-premise, Roger è progettato come un sistema distribuito ospitato principalmente su Microsoft Azure, che utilizza l'orchestrazione dei container e i microservizi.
Il sistema è suddiviso in due ambienti principali:
Lato server (cloud): ospitato in Azure Kubernetes Services (AKS), gestisce la logica, i database e la messaggistica.
Lato client (locale): applicazioni in esecuzione su workstation utente, dispositivi mobili e stampanti multifunzione (MFP) che comunicano in modo sicuro con il cloud.
Architettura lato server (cloud)
Il nucleo di MyQ Roger risiede nel cloud Microsoft Azure. L'infrastruttura è progettata per garantire elevata disponibilità, sicurezza e scalabilità utilizzando Kubernetes.
Componenti principali
Azure Kubernetes Service (AKS): la logica dell'applicazione viene eseguita all'interno di container Docker gestiti da Kubernetes.
Roger Server (ASP.NET Core): l'applicazione backend principale che gestisce la logica di business, le richieste API, i lavori di stampa e la gestione degli utenti e delle stampanti.
Event Bus Server: gestisce la messaggistica asincrona e la comunicazione in tempo reale tra il server e i client.
Load Balancer & Ingress: il traffico entra nel cluster tramite un Azure Load Balancer, instradando il traffico HTTPS ai servizi appropriati ({region}.roger.myq.cloud:443 e {region}.amqp.myq.cloud:5671).
Persistenza dei dati
MyQ Roger utilizza servizi dati Azure specifici per garantire l'integrità e la sicurezza dei dati:
Database SQL: memorizza dati strutturati (utenti, stampanti, contabilità dei lavori, ecc.).
Cosmos DB: un repository non SQL per la telemetria dei lavori grezza e profondamente strutturata, che conserva i dati prima di riassumerli nella pagina dei report e nei report esportati.
KeyVault: gestisce in modo sicuro segreti, chiavi e certificati.

Componenti lato client
Poiché il server si trova nel cloud, i componenti lato client svolgono un ruolo cruciale nel collegare la rete locale (dove si trovano le stampanti) con l'infrastruttura cloud.
Roger Desktop Client (.NET Core):
Piattaforma: Windows, macOS
Ruolo: funge da connettore locale. Non è solo un'interfaccia utente, ma gestisce anche la contabilità dei lavori e il processo di rilascio tramite Roger Server.
Gestione dei lavori di stampa e spooling:
Spooling client (locale): conserva i dati dei lavori di stampa sul dispositivo dell'utente per ridurre al minimo l'utilizzo della larghezza di banda, inviando solo i metadati al cloud. Il lavoro viene rilasciato direttamente dal client alla stampante. Le stampanti vengono rilevate tramite comunicazione SNMP e i lavori possono essere rilasciati utilizzando i protocolli IPPS o RAW configurati nel Roger Server. La stampante e MyQ Roger Client (MRC) devono trovarsi sulla stessa rete.
Spooling cloud: carica facoltativamente l'intero lavoro di stampa su Cloud Storage (OneDrive, Google Drive, MyQ Cloud), consentendo agli utenti di rilasciare i lavori su qualsiasi rete o dispositivo.
Resilienza e monitoraggio:
Stampa di fallback: garantisce la continuità della stampa commutando automaticamente i metodi di instradamento se la connessione al Roger Server viene temporaneamente interrotta.
Monitoraggio della stampa locale (LPM): tiene traccia e registra le attività di stampa locale (tutti i lavori di stampa inviati a stampanti USB collegate localmente o code TCP/IP dirette).
Comunicazione: si connette al server Roger tramite API/REST o websocket e mantiene una connessione persistente a Event Bus (AMQP tramite porta TLS 5671) per la segnalazione in tempo reale.
App Roger Mobile (Flutter):
Piattaforma: iOS, Android, Chromebook.
Ruolo: funge da assistente digitale personale sul posto di lavoro, collegando l'archiviazione cloud con i dispositivi fisici.
Integrazione cloud:
Connessione e navigazione nei cloud: si autentica direttamente con l'archiviazione cloud di terze parti (OneDrive, Google Drive, SharePoint, Dropbox e Box) consentendo agli utenti di sfogliare le cartelle e visualizzare l'anteprima dei file.
Flussi di lavoro digitali:
Gestione dei flussi di lavoro: consente agli utenti di controllare completamente i propri processi documentali. Oltre a semplicemente avviare complessi flussi di lavoro di scansione, gli utenti possono creare nuovi flussi di lavoro personali da zero o gestire e modificare quelli esistenti direttamente dall'interfaccia dell'app.
Scansione mobile: utilizza la fotocamera del dispositivo per scansionare documenti, applicare il rilevamento/la correzione dei bordi e condividere o caricare sul dispositivo, su destinazioni cloud collegate o tramite e-mail.
Interazione con la stampante:
Identificazione e rilascio: "Rileva" le stampanti senza scansione di rete, utilizzando la vicinanza fisica (Bluetooth/NFC) o la scansione di un codice QR sul pannello del dispositivo per autenticare e rilasciare i lavori in modo sicuro.
Roger MFP/Terminal:
Ruolo: funge da chiosco cloud sicuro direttamente sul pannello della stampante, gestendo l'autenticazione degli utenti ed eseguendo flussi di lavoro di stampa e scansione senza server.
Piattaforme e tecnologia:
Kyocera: HyPAS (basato su Java), funziona come applicazione di sistema nativa direttamente sul firmware del dispositivo.
HP: Android (HP Workpath), funziona come una moderna app Android installata tramite HP Command Center.
Ricoh: Android (Smart Operation Panel), funziona come applicazione Android nativa su Ricoh SmartSDK.
Comunicazione:
Protocollo: utilizza HTTPS (TLS 1.2/1.3) rigorosamente crittografato per tutte le comunicazioni.
Accesso diretto: il terminale comunica direttamente con {region}.roger.myq.cloud.
Roger Web Client (Angular):
Ruolo: funge da punto di accesso unificato per l'amministrazione dei tenant e il self-service degli utenti.
Funzionalità:
Console di amministrazione: fornisce un'interfaccia centralizzata per la gestione dell'intero ambiente tenant, compresa la gestione e la sincronizzazione degli utenti (Azure AD), la gestione delle stampanti, la definizione delle politiche e la gestione delle quote.
Portale utente: offre agli utenti finali una vista dashboard personale della cronologia dei loro lavori e la possibilità di gestire il proprio profilo personale.
Comunicazione:
Punto di accesso: gli utenti accedono al client tramite un URL sicuro.
Protocollo: comunica esclusivamente tramite HTTPS (TLS 1.2/1.3), effettuando chiamate API REST al backend del server Roger.
Architettura di rete e sicurezza
MyQ Roger utilizza un'architettura di rete "Secure by Design", che impiega sottoreti segmentate e protocolli crittografati.
Segmentazione della rete
L'ambiente Azure è segmentato in zone di sicurezza distinte:
Sottorete API: rivolta al pubblico (tramite Load Balancer), ospita i servizi API e OAuth2. È il punto di accesso per tutti i client mobili e stampanti tramite HTTPS (porta 443).
Sottorete Event Bus: gestisce l'accodamento dei messaggi. Accessibile dai Desktop Client tramite TLS sicuro (porta 5671).
Sottorete database: una sottorete strettamente privata contenente Cosmos DB, Key Vault e SQL Server. Questi non sono esposti alla rete Internet pubblica e sono accessibili solo tramite la sottorete API.
Protocolli di comunicazione
HTTPS (porta 443): utilizzato per tutte le chiamate API REST da app mobili, client Web e MFP.
AMQP (porta 5671): protocollo di messaggistica sicuro utilizzato dal Desktop Client per comunicare con l'Event Bus.
SNMP e IPPS: utilizzati localmente dal Desktop Client per individuare e comunicare con le stampanti fisiche.
Rilevamento globale e regionale
Per supportare una base di utenti globale, MyQ Roger implementa un meccanismo di rilevamento regionale.
Server di rilevamento regionale: quando un client si avvia, contatta il server globale.
Routing regionale: il server globale indirizza il client al "cluster lato server" (regione) appropriato in base alla posizione del tenant (ad esempio, UE, UE2, Stati Uniti).
Riepilogo eseguibile e tecnologia
Componente | Tecnologia/Framework | Piattaforma / Sistema operativo | Protocolli primari (in uscita) |
Roger Server | ASP.NET Core | Servizio Azure Kubernetes (contenitori Linux) | HTTPS (443), SQL, cluster interno |
Server bus eventi | Coda di messaggi (AMQP) | Servizio Azure Kubernetes | AMQP (5671) |
Desktop Client | .NET Core | Windows, macOS | HTTPS, AMQP, SNMP, Raw Porta 9100, LPR 515 |
App mobile | Flutter | iOS, Android, Chromebook | HTTPS, OAuth (Cloud), Bluetooth/NFC |
Client web | Angular (SPA) | Browser web | HTTPS (TLS 1.2/1.3) |
Terminale MFP | Kyocera: HyPAS (Java) HP/Ricoh: Android | Firmware dispositivo integrato | HTTPS (TLS 1.2/1.3) |