SCM Group è leader nella produzione di macchine per la lavorazione di vari materiali: legno, metalli, plastica, vetro. Coordina, supporta e sviluppa un sistema di eccellenze industriali, articolato in tre grandi poli produttivi altamente specializzati, con oltre 4.000 dipendenti e industrie che utilizzano i macchinari di SCM collocati nei cinque continenti.
SCM Group si è rivolta a noi per mettere a terra un progetto ambizioso in ambito Industria 4.0: realizzare una piattaforma cloud native che connetta le macchine di SCM al cloud, abilitando il loro controllo e gestione da remoto.
Opportunità e impatto dell’Industria 4.0
Il paradigma Industria 4.0 è da alcuni anni al centro della trasformazione economica in Italia e nel Mondo: è un processo che scaturisce dalla cosiddetta quarta rivoluzione industriale e che sta portando alla produzione industriale automatizzata e totalmente interconnessa. Le nuove tecnologie digitali avranno un impatto profondo su varie direttrici di sviluppo:
- l’utilizzo dei dati, la potenza di calcolo e la connettività: big data, Internet of Things e cloud computing per la centralizzazione delle informazioni e la loro conservazione;
- analytics: una volta raccolti i dati, bisogna ricavarne valore. Oggi solo l’1% dei dati raccolti viene utilizzato dalle imprese, che potrebbero invece ottenere vantaggi a partire dal machine learning, cioè dalle macchine che perfezionano la loro resa “imparando” dai dati via via raccolti e analizzati;
- l’interazione tra uomo e macchina, che coinvolge le interfacce touch, sempre più diffuse, e la realtà aumentata.
Dalla discovery allo sviluppo della piattaforma
Flowing ha contribuito al progetto di SCM mettendo in campo le proprie conoscenze nell’ambito dell’organizzazione e gestione dei progetti, dello sviluppo e delle architetture Internet Of Things.
Il primo passo è stato quello con cui partono tutte le nostre collaborazioni: un’attività di discovery, che permette di allineare tutti gli stakeholder sugli obiettivi e le rispettive visioni, vincoli e desiderata e il loro impatto sul progetto da implementare. In questo workshop, in particolare, ci siamo concentrati sulla parte di raccolta dei dati di lavorazione prodotti dalle macchine, ad esempio: tempo di attesa, tempo attivo e durata delle lavorazioni. Una sessione di eventstorming ha chiarito quale fosse la catena di eventi all’interno del sistema per questo particolare flusso, fornendo una visione end-to-end e dando una direzione agli sviluppi successivi.
Dalla discovery abbiamo ottenuto una roadmap e identificato delle macro attività: ognuna di queste attività è stata poi raffinata da successive discussioni con il team di sviluppo ed il product owner, per arrivare ad una serie di feature implementabili.
Lo sviluppo è stato portato avanti usando SCRUM come metodologia di riferimento – con iterazioni bisettimanali – dal team digital service di SCM, che Flowing ha accelerato partecipando con alcuni surfer esperti su microservizi ed architetture per Internet of Things.
Architettura a microservizi
Vista la complessità intrinseca della piattaforma, abbiamo optato per un’architettura a microservizi, che ha permesso di:
- scegliere la tecnologia e l’approccio più adatto a seconda del servizio: alcuni servizi sono stati implementati tramite nodejs, altri tramite Java Spring. Per un microservizio con logiche di dominio complesse, abbiamo scelto di utilizzare un’architettura basata su Event Sourcing.
- scalare i singoli servizi a seconda del carico;
- fare deploy dei microservizi in modo indipendente.
Questo approccio ci ha permesso di parallelizzare gli sviluppi, abilitando più team a lavorare sulla stessa codebase.
Lato macchine, un gateway sviluppato ad hoc ha il compito di interfacciare la macchina con il cloud: da una parte effettua la raccolta dei dati di produzione della macchina, dall’altra inoltra comandi alla stessa. Il protocollo scelto per la comunicazione è MQTT, molto utilizzato nei sistemi IoT.
I microservizi comunicano attraverso due modalità:
- ascincrona, scambiandosi messaggi su diverse code;
- sincrona, con chiamate HTTP.
La applicazioni in mano agli utenti finali sono single page application realizzate con diverse tecnologie, come React e Vue. Queste non chiamano direttamente i microservizi ma un orchestratore (backend for frontend) che per ogni chiamata ha il compito di capire quali siano i microservizi coinvolti, effettuare le chiamate, manipolare i risultati per renderli fruibili dall’applicazione.
I vantaggi della piattaforma cloud
Dal lancio della piattaforma un numero sempre maggiore di clienti ha iniziato ad utilizzarla, fornendo quindi un primo feedback positivo rispetto alla capacità della stessa di coprire alcuni bisogni dei clienti: raccogliere in un unico punto tutte le informazioni essenziali sul proprio parco macchine, fornendo una visione che può andare dal generale fino al particolare di una singola macchina.
Questo passaggio, che ad una prima occhiata può sembrare perfino banale, apre ad una serie di scenari di grande impatto:
- abilita a politiche di ottimizzazione ed efficientamento, permettendo una migliore pianificazione e utilizzo delle risorse;
- permette di intervenire in modo proattivo alla manutenzione delle macchine, anticipando potenziali problemi causa di stop forzati alle macchine stesse;
- consente di intercettare più rapidamente gli eventi imprevisti, evitando che scalino in termini di gravità.