NIER Ingegneria è diventata Società Benefit →

Software chiavi in mano

SERVIZIO MERCATO ANNO 2021-2022

Brief

Progettare un prodotto software la cui funzionalità sia quella di recuperare informazioni diagnostiche e misure elettriche da dispositivi (calcolatori a microprocessore) che regolano la circolazione dei treni e rendere disponibile ad un operatore questo insieme di informazioni per la consultazione via WEB (attraverso PC e/o Tablet)  

Sfide di progetto

Considerando la molteplicità dei dispositivi coinvolti in un impianto di segnalamento ferroviario, il prodotto deve essere in grado di aiutare il personale ferroviario nella manutenzione dell’infrastruttura segnalando ed individuando prontamente i guasti, dimostrando di essere facilmente configurabile e distribuibile. Inoltre deve essere in grado di implementare il protocollo di rete (l’insieme delle regole che definiscono il linguaggio tramite cui i sistemi a microprocessore riescono a “parlare” e capirsi) proprietario, cioè sviluppato dal cliente stesso, e questo richiede quindi uno studio approfondito per conoscere nel dettaglio tutti gli aspetti dello specifico protocollo al fine di poterlo manipolare con padronanza. 

Soluzione

La soluzione proposta è stata lo sviluppo di un modulo Software basato su due diversi livelli:

  • Il primo livello, dedicato alla gestione della ridondanza, sviluppato in linguaggio C;
  • Il secondo livello, dedicato all’implementazione delle regole del protocollo proprietario del nostro cliente, sviluppato in linguaggio C++.

I dispositivi di segnalamento forniscono misure di tensione e corrente rilevate sugli enti ferroviari (come segnali, deviatoi e circuiti di binario) che sono fondamentali per monitorare lo stato di salute della linea ferroviaria. Oltre a questo, i dispositivi generano automaticamente rapporti/log in caso di arresto anomalo delle apparecchiature (detti DUMP), anch’essi fondamentali per il monitoraggio del corretto funzionamento della linea ferroviaria. Per gli scopi del progetto è necessario gestire entrambi i tipi di informazioni al fine di renderli disponibili per l’elaborazione, sia online che offline.

Una volta recuperate queste informazioni, l’ultimo step è stato quello di visualizzarle in una interfaccia WEB dedicata, accessibile tramite un comune browser Internet (come Google Chrome o Microsoft Edge). A tal fine è stato necessario sviluppare due moduli SW distinti, caratteristici delle applicazioni WEB:

  • Modulo di back-end, che elabora, classifica ed organizza le informazioni, rendendole disponibili per la visualizzazione;
  • Modulo di front-end, cioè la parte visibile all’operatore, la cosiddetta interfaccia utente con cui quest’ultimo può interagire e visualizzare le informazioni preparate dal back-end.

 

Entrambi i moduli sono stati sviluppati con il linguaggio C# e la loro comunicazione è stata gestita tramite implementazione di API REST, ovvero entità software che permettono la gestione di un meccanismo di interrogazione da parte del modulo front-end, sia in lettura che in scrittura, verso il modulo back-end.

Inoltre, la particolarità dell’applicazione front-end è che doveva rappresentare un’evoluzione di un’applicazione già esistente e fornita dal cliente. Questa, che potrebbe sembrare una semplificazione, in realtà ha comportato un grande lavoro di reverse-engineering, per ottimizzare l’integrazione del codice nuovo con quello esistente.

Fasi di esecuzione

FASE 1

Studio del protocollo proprietario

 

 

FASE 2

Analisi delle informazioni da recuperare ed elaborare.

 

FASE 3

Sviluppo ed integrazione del modulo Software di comunicazione, del modulo di Back-End e del modulo di Front-End

 

Per questa ultima fase, nel rispondere alla domanda su quale potesse essere la tecnologia più efficiente per gestire lo scambio di dati tra il modulo di comunicazione, che implementa il protocollo verso i dispositivi di campo, ed il back-end che deve ricevere ed elaborare le informazioni recuperate, si è optato per tecnologia Apache Kafka, un sistema di messaggistica open-source di pubblicazione e sottoscrizione progettato per fornire una gestione veloce e affidabile dei dati in tempo reale. La grande quantità di informazioni ricevute e la loro alta frequenza sono state correttamente gestite dai due moduli.

 

Nel cercare di capire quale potesse essere la via migliore per integrare i tre moduli (comunicazione, front-end e back-end) nell’unico hardware disponibile, abbiamo scelto la tecnologia Docker, una piattaforma software open-source che permette la creazione di applicazioni auto-consistenti e facilmente distribuibili.

Il concetto alla base di questa tecnologia è la creazione di una “scatola”, detta più propriamente immagine Docker, che contiene tutto quello che serve all’applicazione per funzionare e che combina il codice sorgente dell’applicazione con le librerie e le dipendenze del sistema operativo necessarie per eseguire tale codice in qualsiasi ambiente/sistema operativo.

Abbiamo, quindi, scelto di creare una composizione delle tre applicazioni (Modulo di comunicazione, Back-End e Front-End) in tre distinte immagini Docker, in modo che potessero essere distribuite ed integrate nell’ambiente target (hardware fornito dal cliente) in modo rapido ed automatico.

In aggiunta, avendo anche a disposizione Kafka come immagine Docker, in quanto presente nel registro ufficiale di Docker (https://hub.docker.com), è stato possibile includerlo nella fase di integrazione e distribuzione.

 

 

 

 

Risultati ottenuti

Il risultato è stato di ottenere un sistema completamente integrato e funzionante, installando nell’hardware fornito, oltre al sistema operativo, anche la piattaforma software di Docker; in questo modo è stato possibile eseguire le immagini Docker prodotte, integrandole e facendole comunicare automaticamente sia con il mondo esterno (i dispositivi sulla linea ferroviaria da una parte, il PC e il tablet dell’operatore dall’altra), sia tra di loro.

 

In questo progetto abbiamo accompagnato il cliente nella definizione del concept del prodotto e lo abbiamo coinvolto nelle evoluzioni della progettazione, dal design e sviluppo, fino alla validazione, in un processo step by step.

Il prodotto software realizzato, caratterizzato da alta specializzazione e massima flessibilità nella sua configurazione, ha permesso al nostro cliente di utilizzarlo con soddisfazione (sua e nostra!) in molti degli impianti da lui installati.

 

Iscriviti alla Newsletter .