CL-Mini-WebServer

CL-Mini-WebServer: un mini client web per l'aggiornamento di sistemi Legacy privi di capacitità di connessione ad Internet.

Descrizione

CL-Mini-WebServer: un mini client web per l'aggiornamento di sistemi Legacy privi di capacitità di connessione ad Internet.

Considerato il problema consistente nell’adeguamento al contesto Industria 4.0 di applicazioni e macchine industriali già esistenti, è stato sviluppato un kit incentrato su di un mini server web che si propone di minimizzare il tempo richiesto per adeguare il software o sistemi legacy in modo da consentirne il monitoraggio e/o controllo remoto, evitando di riscriverli completamente.
Il tutto si basa sull’osservazione che le funzioni di monitoraggio e controllo e più in generale l’interazione uomo-macchina o fra due macchine (M2M) coinvolgono generalmente un numero limitato di variabili di programma che riepilogano lo stato del sistema.
Per adeguare un sistema esistente dotandolo di connettività occorrerà in primo luogo individuare le variabili di cui sopra e quindi sviluppare le routine atte a consentire la loro lettura e scrittura in risposta ad eventi esterni.
Un compito apparentemente semplice, se non fosse per la difficoltà di reperire le specifiche dei vecchi sistemi, per cui è sempre presente il rischio di malfunzionamenti riconducibili a vincoli di cui non si è tenuto conto poiché se ne ignorava l’esistenza.
L’alternativa elaborata si basa sul principio in base al quale il funzionamento degli eseguibili deve essere indipendente dall’ordine di allocazione delle variabili (salvo esplicita richiesta di assegnare di indirizzi fissi ad alcune di esse), quale premessa per il funzionamento delle routine di ottimizzazione del codice.
Sotto queste premesse è consentito a chiunque (compilatore, linker ed anche a noi) di scambiare o spostare le variabili in memoria, trasferendole persino in un altro segmento, magari in una shared memory accessibile dall’esterno.
Il trasferimento delle variabili di I/O in una memoria condivisa è un intervento assai meno invasivo rispetto a quello delineato in precedenza poiché si ha la garanzia che il programma legacy continuerà a funzionare normalmente se viene eseguito da solo; d’altro canto introduce la possibilità di monitorare e/o controllare lo stato dell’applicativo per mezzo di un secondo processo avviato in parallelo, come fanno i debugger.
La soluzione proposta offre numerosi vantaggi rispetto quella consistente nell’integrazione delle funzioni di comunicazione nel programma aggiornato, poiché preserva le funzionalità dell’applicativo originale, evitando i rischi di destabilizzazione connessi alla redistribuzione del tempo macchina disponibile fra le thread del SW; ma il principale beneficio consiste nel drastico abbattimento delle tempistiche che si ottiene ricorrendo ad un modulo preconfezionato evitando lo sviluppo di un nuovo modulo complesso.
La soluzione è risultata sufficientemente performante da consentire l’aggiornamento di un complesso programma di visione artificiale al fine di consentirne la gestione remota.





Case Studies




Copyright ©2011-2022 - Luigi D. CAPRA