Il Minion: ovvero il middleware per connettere database e business logic in un sistema distribuito.

IL PROBLEMA
Uno dei punti critici nell’architettura distribuita di un sistema business è sicuramente la comunicazione tra la base di dati e la business logic.
La buona notizia è che spesso il database del sistema e il backend risiedono sulla stessa macchina [o almeno sulla stessa rete locale].
La cattiva è che altrettanto spesso ciò non accade, soprattutto quando ad essere “distribuiti” sono i dati del sistema.

Cosa succede quando una piattaforma Saas deve leggere e scrivere dati dal database di un gestionale che si trova altrove?

Ovvero questo è il tipico caso di una piattaforma Saas che deve interagire con un gestionale “vecchio stampo” installato in-house presso il cliente.

E qui iniziano le note dolenti.
In passato ho visto risolvere questo problema nei modi più disparati, fantasiosi e a volte azzardati, ne elenco alcuni:
– Lasciare semplicemente [e ingenuamente] il database del cliente “aperto” sulla rete [sulla porta standard!]
– Implementare un webserver con API e protocollo dedicati [come se il pc del cliente non fosse già rallentato da un mare di robaccia]
– Sincronizzare i dati “n volte al giorno manualmente” con buona pace della coerenza dei dati, dell’automazione totale e del real-time [ed è una strategia adottata in molti più casi di quelli che potreste immaginare].
Personalmente non considero felice nessuno dei precedenti approcci, che sacrificano pesantemente, di volta in volta, la sicurezza, la praticità di implementazione o l’economicità.

E spesso risultano essere invasivi nei confronti dell’infrastruttura del cliente e dei suoi flussi operativi.

In Vectis ci siamo posti il problema di quale potesse essere una soluzione che fosse leggera ma efficace, sia in fase di produzione, ma anche di sviluppo e di stage, per accedere a dati presenti sulla piattaforma del cliente [o comunque non sulla stessa piattaforma del backend].

LA SOLUZIONE

Abbiamo realizzato RemDAc [Remote Data Access], un software che permette di interconnettere le nostre piattaforme a database o altre fonti di informazioni presenti su sistemi remoti in maniera semplice, affidabili, sicura e performante.

RemDAc si compone di una serie di moduli software, librerie di accesso ai dati, interfacce utente e moduli di monitoraggio.

Ma il “cuore” del software è quello che chiamiamo informalmente “il Minion”, un minuscolo e leggerissimo modulo che, girando sul sistema contenente i dati remoti, esegue alacremente e impeccabilmente gli ordini che gli vengono inviatigli, colmando la distanza [spaziale e digitale] tra i dati remoti ed il sistema che deve utilizzarli.
L’utilizzo del minion nei nostri sistemi fornisce innumerevoli possibilità tecnologiche, sia architetturali che implementative.
Ci ha permesso di realizzare sistemi di sincronizzazione dei dati tra piattaforme distinte, delocalizzate e anche basate su tecnologie completamente differenti, mappando dati con diversa struttura in maniera semplice e affidabile.
Consente il monitoraggio e la manutenzione automatizzata dei dati “locali” dei clienti, senza che debbano muovere un dito. Come se fossimo lì da loro, ma senza esserci, modificando il concetto stesso di “assistenza on site”.
Permette lo sviluppo di sistemi di comunicazione tra app mobile e backend in tempi brevissimi e con elevatissima affidabilità del prodotto finale.
E tanto altro ancora.

Infine, per tranquillizzare chi avesse dei security-concern [anche noi ne abbiamo, sempre], sappiate che lo scambio dati tra il minion e i sui “controllori” avviene su protocolli proprietari, con cifratura dei dati in ingresso e in uscita basata su RSA e AES a 256 bit, garantendo la massima sicurezza dei sistemi interconnessi.

Attualmente RemDac, e la sua squadra di minion, costituiscono uno dei pilastri su cui sviluppiamo le nostre piattaforme e sono tra gli strumenti all’avanguardia che rendono i prodotti Vectis tecnologicamente avanzati, affidabili e performanti.