In questo articolo parleremo di Smeup Gateway, della sua struttura e dei vantaggi legati al suo utilizzo.

Come funziona?

Smeup Gateway è un’applicazione basata su microservice che ha l’obiettivo di far comunicare un’applicazione gestionale con entità differenti. Il suo funzionamento si contrappone a quello di Smeup Provider, fondato su una struttura monolitica.

Di seguito troviamo la differenza fondamentale tra i due sistemi:

  • Un prodotto con architettura monolitica, come Smeup Provider, riunisce tutte le sue funzionalità in una singola unità.
  • Un’architettura basata su microservice, come quella del Gateway, racchiude invece ogni sua funzionalità in diversi “servizi” potenzialmente scalabili in base alle necessità.
L'architettura monolitica è composta da un solo cubo contenente tutti i servizi, mentre quella a microservices è lo stesso cubo, ma suddiviso in più cubetti, ognuno contenente un servizio.

Grazie a questa struttura, Smeup Gateway può isolare le funzioni ed i plugin e scalare i servizi in funzione del carico di lavoro previsto, come possiamo vedere nell’immagine qui sopra.

Cosa sono i “microservice”?

Si tratta di moduli software totalmente autosufficienti ed installabili ovunque. L’installazione di Smeup Gateway, infatti, è basata su container Docker, cosa che semplifica di molto il deployment delle funzionalità e apre ad un approccio sistemistico di tipo IaC (Infrastructure as Code). Mentre la visione da parte dell’interfaccia utente rimane invariata, la logica di server è divisa in servizi con un compito ben definito e tecnologicamente indipendenti. Questa divisione rappresenta la soluzione architetturale grazie a cui Smeup può diventare un sistema Service Oriented Architecture (SOA) di ultima generazione.

In Smeup Gateway ad ogni microservice è assegnata una classificazione secondo un livello. I servizi di livello più alto, per funzionare, dipendono da quelli di livello inferiore, mentre i servizi di primo livello funzionano in maniera indipendente. Alcuni application server (come Payara) consentono di installare contemporaneamente tutti i microservice definendo un ordine di avvio che tenga conto delle dipendenze. 

Se l’installazione dei singoli microservices viene fatta a mano utilizzando la console di gestione dell’application server, è consigliabile sfruttare la possibilità di installare i vari servizi secondo l’ordine per livelli. In questo modo si soddisfano da subito le dipendenze tra livelli e si agevola l’avvio del sistema.

Il framework è comunque progettato in modo tale da non generare errori nel caso in cui i servizi siano installati senza un ordine particolare. Se un servizio di livello n viene installato prima di un servizio di livello inferiore (da cui dipende), non darà luogo ad errori ma inizierà a funzionare solo dopo che i servizi da cui dipende risultano disponibili. Man mano che le dipendenze risultano soddisfatte, i vari servizi in standby si avviano e il sistema va a regime.

La seguente immagine rappresenta l’insieme minimo di microservice che compongono smeup gateway, senza pretesa di spiegazione, ma solo per dare un’idea della complessità e della potenza.

Immagine illustrativa della struttura base dei microservices che compongono smeup gateway



Perché usare Gateway?

L’utilizzo di questo prodotto Smeup permette di svolgere le seguenti funzioni:

  • comunicare con dispositivi di campo (IoT) per la raccolta eventi, attraverso interfacce gestionali definite dallo standard A37 di Smeup;
  • accedere a servizi web esposti da sistemi esterni, attraverso interfacce gestionali definite dallo standard A38 di Smeup.

Il framework definisce configurazioni, criteri di comunicazione, di scambio messaggi tra i servizi e le interfacce e contiene utility per la gestione.

Immagine illustrativa del procedimento tramite cui Smeup gateway accede a servizi web esterni

La caratteristica principale del gateway è quella di essere basato su un’architettura a microservice, che permette la configurazione in funzione del carico di lavoro e di scalare in modo relativamente semplice.

Altro punto a favore dello Smeup Gateway, è il fatto di essere stato pensato per essere indipendente da Smeup ERP. L’integrazione con il gestionale avviene con specifici microservice che implementano la comunicazione con l’erp, attraverso un’interfaccia che può però essere ridefinita per il collegamento ad entità alternative.

Ogni servizio che compone questa struttura può essere sviluppato indipendentemente, presentando differenze (ad esempio di linguaggio) rispetto agli altri servizi, e può essere attivato senza influenzare il resto dell’applicazione.

Per ulteriori informazioni relative ai microservice in ottica Smeup vi rimandiamo al seguente articolo: https://blog.smeup.com/smeup-gtw/