L'elaborato affronta come tema principale la sostituzione dell'utilizzo di Hasura GraphQL all'interno di un applicativo software gestionale utilizzato da centrali di sterilizzazione, contesto nel quale affidabilità e coerenza dei dati rappresentano requisiti indispensabili. La necessità di migrare da Hasura è emersa a causa di problemi operativi che hanno compromesso efficienza, manutenibilità e sicurezza dell'applicativo. Le complicazioni sono emerse in particolare su ambienti in gestione ai clienti, che presentano sistemi operativi o componenti software datati, e riguardano principalmente vincoli di compatibilità con versioni di Docker e PostgreSQL, a volte aggravati dall'assenza del modulo pgcrypto, necessario al corretto funzionamento di Hasura. A tali criticità si sono aggiunti problemi legati ad un uso non corretto di tale servizio per quanto riguarda gestione dei ruoli utente e della cache. Ulteriori difficoltà hanno riguardato le prestazioni di alcune query complesse e la lentezza di alcuni processi di deployment, gestiti attraverso le GitHub Actions. Questa situazione ha evidenziato la necessità di implementare una nuova soluzione più controllabile e performante. A seguito di un'approfondita analisi del caso di studio è stata definita e implementata una strategia di sostituzione del motore GraphQL con una nuova architettura basata su un approccio REST, sviluppata con il linguaggio TypeScript e attraverso il runtime Deno. Questo ha consentito di progettare un servizio leggero, indipendente e facilmente manutenibile, in grado di comunicare in modo chiaro ed efficiente con il database sottostante, attraverso query ottimizzate che utilizzano parametri posizionali e prepared statement, garantendo un buon livello di sicurezza contro SQL Injection e una diminuzione dei tempi di risposta. Il nuovo servizio è stato completato, validato e rilasciato in produzione sugli ambienti dei clienti. Ha pienamente sostituito il precedente utilizzo di Hasura GraphQL, dimostrando piena compatibilità con le componenti software presenti. I risultati raccolti evidenziano una notevole riduzione dei tempi di deployment e un significativo miglioramento dei tempi di risposta in alcuni servizi critici. In sintesi, la tesi ha contribuito alla definizione e all'implementazione di un modello architetturale alternativo, dimostratosi efficace, nonostante l'adozione di un approccio concettualmente meno recente come REST, in sostituzione di uno più moderno quale Hasura GraphQL.

Analisi e risoluzione dei limiti di Hasura GraphQL in un caso di studio aziendale

AGUZZOLI, ANDREA
2024/2025

Abstract

L'elaborato affronta come tema principale la sostituzione dell'utilizzo di Hasura GraphQL all'interno di un applicativo software gestionale utilizzato da centrali di sterilizzazione, contesto nel quale affidabilità e coerenza dei dati rappresentano requisiti indispensabili. La necessità di migrare da Hasura è emersa a causa di problemi operativi che hanno compromesso efficienza, manutenibilità e sicurezza dell'applicativo. Le complicazioni sono emerse in particolare su ambienti in gestione ai clienti, che presentano sistemi operativi o componenti software datati, e riguardano principalmente vincoli di compatibilità con versioni di Docker e PostgreSQL, a volte aggravati dall'assenza del modulo pgcrypto, necessario al corretto funzionamento di Hasura. A tali criticità si sono aggiunti problemi legati ad un uso non corretto di tale servizio per quanto riguarda gestione dei ruoli utente e della cache. Ulteriori difficoltà hanno riguardato le prestazioni di alcune query complesse e la lentezza di alcuni processi di deployment, gestiti attraverso le GitHub Actions. Questa situazione ha evidenziato la necessità di implementare una nuova soluzione più controllabile e performante. A seguito di un'approfondita analisi del caso di studio è stata definita e implementata una strategia di sostituzione del motore GraphQL con una nuova architettura basata su un approccio REST, sviluppata con il linguaggio TypeScript e attraverso il runtime Deno. Questo ha consentito di progettare un servizio leggero, indipendente e facilmente manutenibile, in grado di comunicare in modo chiaro ed efficiente con il database sottostante, attraverso query ottimizzate che utilizzano parametri posizionali e prepared statement, garantendo un buon livello di sicurezza contro SQL Injection e una diminuzione dei tempi di risposta. Il nuovo servizio è stato completato, validato e rilasciato in produzione sugli ambienti dei clienti. Ha pienamente sostituito il precedente utilizzo di Hasura GraphQL, dimostrando piena compatibilità con le componenti software presenti. I risultati raccolti evidenziano una notevole riduzione dei tempi di deployment e un significativo miglioramento dei tempi di risposta in alcuni servizi critici. In sintesi, la tesi ha contribuito alla definizione e all'implementazione di un modello architetturale alternativo, dimostratosi efficace, nonostante l'adozione di un approccio concettualmente meno recente come REST, in sostituzione di uno più moderno quale Hasura GraphQL.
2024
Hasura
GraphQL
REST
Deno
TypeScript
File in questo prodotto:
File Dimensione Formato  
Aguzzoli.Andrea.pdf

embargo fino al 01/12/2028

Dimensione 6.98 MB
Formato Adobe PDF
6.98 MB Adobe PDF

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14251/4126