Plugin per Sme.UP Gateway basato su RPG interpretato: come funziona

rpg-interpretato-plugin

Sme.UP LAB, il laboratorio di sviluppo del Gruppo Sme.UP, ha realizzato dei plugin che richiamano un interprete per eseguire dei programmi RPG. Si è poi presentata la necessità di verificare che l’interprete RPG funzioni in modo continuo e robusto, fuori dall’AS400. Quale modo migliore per metterlo alla prova se non fargli aprire tutti i giorni il cancello alle persone che arrivano in sede? Ecco quindi che questo nuovo plugin sta permettendo l’apertura del cancello della sede di Erbusco del Gruppo Sme.UP da giugno 2019. Ma vediamo come funziona.

Un pò di storia

RPG è un linguaggio di programmazione di IBM concepito inizialmente per produrre stampe (Report Program Generator) su sistemi AS400 (aka iSeries, System i, Power…).Seppur rimanga sempre e solo eseguibile esclusivamente su sistemi AS400, negli anni si è arricchito di funzionalità ed ha esteso le proprie potenzialità per facilitare interfacciamento a programmi/sistemi di terze parti. Il più delle volte però l’integrazione software/hardware con altri sistemi “esterni” ad AS400 è più facilmente realizzabile da tecnologie di dominio Windows/Linux.

Sme.UP ha risolto il tema dell’integrazione agendo su due fronti:

1 – Delegare alle tecnologie presenti in ambito Windows/Linux il tema dell’interfacciamento a sistemi “esterni” ad AS400;

2 – Sviluppare API RPG su AS400 che dialoghino con le tecnologie del punto 1;

Questo paradigma di disaccoppiamento, nello specifico è stato realizzato mediante lo sviluppo di Sme.UP Provider, che di fatto mediante il concetto di “plugin”, funge da “accentratore di funzioni”, e fa quindi da interfaccia tra Sme.UP Erp ed il resto del mondo, sia in termini di software che hardware. Sme.UP Provider (un tempo Looc.UP Server) è un software derivato proprio dal client grafico ‘Looc.UP’, con in più però tutta una serie di features che lo rendono ‘Server compliant’.
Recenti sviluppi hanno portato alla realizzazione di ‘Sme.UP Gateway’, un software che copre buona parte delle feature di ‘Sme.UP Provider’ ma di fatto si presta a funzionare in contesti di recente tecnologia che coinvolgono ‘Container’ e ‘Microservice’.

L’architettura tipica di un client Sme.UP è solitamente costituita da:

– una macchina AS400 (Dati e Business Logic)

– uno o più server con uno o più Sme.UP Provider

– “n” client Looc.UP/Web.UP(browser) sui PC degli utenti

Un Caso reale: il cancello della sede di Erbusco del Gruppo Sme.UP

L’architettura di cui sopra è presente ovviamente anche in Sme.UP ed un tipico esempio di utilizzo giornaliero è proprio l’apertura del cancello d’ingresso.

I componenti hardware e software per la soluzione del cancello d’ingresso sono:

– Telecamera con riconoscimento targa

– Sme.UP Provider con plugin di interfacciamento alla telecamera

– Sme.UP ERP (AS400)

Come funzionava prima?

1) la telecamera rileva un’immagine in movimento, identifica una targa, invia informazioni (Nr. Targa, Data/Ora evento, Direzione, Velocità) ad un oggetto Socket (java)

2) Sme.UP Provider, mediante un plugin java in ‘ascolto’ sulla Socket, ‘legge’ i dati e li invia (meccanismi di code) a Sme.UP ERP

3) Sme.UP ERP legge la coda di comunicazione (tramite programmi RPG) verifica che la targa appartenga ad un collaboratore Sme.UP e nel caso comunica a Sme.UP Provider di aprire il cancello.

4) Sme.UP Provider, mediante un plugin java, invia il comando di apertura del cancello.  

Al netto di precisazioni tecniche, configurazioni ed altre variabili, in linea di massima il flusso di cui sopra descrive il funzionamento dell’apertura del cancello tramite Sme.UP. Oltretutto il ruolo di Sme.UP Provider può essere sostituito dal più recente Sme.UP Gateway.

Il ruolo di JARiKO (Java Rpg Interpreter KOtlin)

Uno dei progetti ambiziosi di Sme.UP è quello di permettere all’ERP scritto in RPG di poter essere utilizzato anche al di fuori della piattaforma AS400. Sorvolando sugli innumerevoli vantaggi che questo comporta e sulle difficoltà e complessità tecnologiche, JARiKO è un progetto che si pone come obiettivo l’interpretazione e l’esecuzione di codice RPG su sistemi NON AS400. Lo stato d’avanzamento del progetto è tale da permettere già l’esecuzione di svariate istruzioni RPG (iterazioni, condizioni, valutazioni, assegnamenti…) al di fuori della piattaforma AS400.

Come funziona ora

Un buon esempio di funzionamento, applicato ad una casistica reale, poteva essere appunto l’utilizzo dell’interprete Jariko nel sistema di apertura del cancello. In questo caso però, sarebbe stato prematuro sostituire completamente la parte su AS400, in quanto Jariko è ancora in uno stato embrionale.

Si è fatto qualcosa di diverso, e cioè, si è pensato a come scrivere in RPG il plugin java che dialogava con la telecamera e che mandava le informazioni ad AS400. Poi, una volta scritto il programma RPG, questo viene interpretato ed eseguito come plugin stesso all’interno dello Sme.UP Provider (in questo caso specifico Gateway), insomma un programma con istruzioni RPG in grado di funzionare in un contesto Windows/Linux.

Tutt’ora il cancello viene aperto tramite la logica scritta in un programma RPG costantemente interpretato da un plugin java.

Questo progetto fa parte anche dei 16 esempi di integrazione innovativa dello Showroom del Gruppo Sme.UP. Clicca qui per guardare il video e scoprire altri dettagli!


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *