Contenuti
Instant Developer Cloud riserva un posto di primo piano alla gestione e all’integrazione dei database relazionali nei propri progetti software. L’attenzione data a questo tipo di sistemi di memorizzazione deriva da una serie di fattori:
- Oggi i database relazionali sono i sistemi di memorizzazione più diffusi e conosciuti.
- Nelle applicazioni di carattere gestionale, essi rappresentano il sistema di memorizzazione più semplice, flessibile ed efficace.
- L’obiettivo di Instant Developer Cloud è quello di consentire lo sviluppo di sistemi omnichannel, anche offline, a partire dalla stessa base di codice. Per questo è necessario utilizzare un sistema di memorizzazione disponibile sia nel cloud che nei device. I database relazionali possono essere usati a questo scopo.
- Le applicazioni devono essere integrate con i database relazionali esistenti.
- Esistono sistemi di database open source, come ad esempio PostgreSQL, che garantiscono alta affidabilità, prestazioni, flessibilità e sono integrabili in uno stack applicativo a basso costo di gestione.
- In casi specifici, le applicazioni sviluppate con Instant Developer Cloud possono interagire con qualunque altro sistema di memorizzazione tramite API cloud.
Nonostante questi fattori positivi, i database relazionali presentano difficoltà di gestione che il framework di Instant Developer Cloud affronta per semplificarne l’utilizzo.
- Aggiornamento dello schema: utilizzando database sia nel cloud che nei dispositivi, occorre gestire l’aggiornamento sincronizzato degli schemi relazionali. A tal fine, il framework applicativo di Instant Developer Cloud si occupa del problema in totale autonomia: nel cloud lo schema dei dati viene aggiornato dalla console durante l’installazione dell’applicazione; nei dispositivi questa operazione avviene quando la versione aggiornata dell’applicazione viene eseguita per la prima volta.
- Diversi dialetti di SQL: i vari tipi di database server hanno dialetti SQL diversi, quindi è impossibile scrivere il testo delle query una sola volta. Instant Developer Cloud risolve questo problema tramite un framework di gestione delle query in grado di tradurre a runtime le query fra i vari tipi di database supportati: PostgreSQL, SQLite, MySQL, SQL Server e Oracle.
- Disadattamento fra struttura relazionale e oggetti: la struttura relazionale dei dati non si adatta bene al paradigma della programmazione ad oggetti, rendendo necessario un approccio misto alla gestione dei dati. Questo problema viene risolto tramite il framework ORM contenuto nelle applicazioni Instant Developer Cloud, che permette un approccio object oriented alla gestione dei dati tramite entità e collection.
- Problemi di sicurezza: i database relazionali sono un target primario per gli attacchi hacker, sia a livello di sistema che applicativo. Instant Developer Cloud aiuta a risolvere questo problema tramite un sistema di controllo delle query che impedisce gli attacchi di tipo SQL Injection.
Quali database è possibile integrare? #
Instant Developer Cloud permette di sviluppare applicazioni che interagiscono con la gran parte dei database e delle architetture oggi disponibili. Vediamo i casi d’uso principali:
- All’interno dei server IDE di sviluppo e dei server di produzione di Instant Developer Cloud è già presente un’istanza di PostgreSQL gestita tramite la console di controllo.
- Quando l’applicazione è in esecuzione nei device, essa converte la connessione PostgreSQL in una connessione SQLite, gestendo automaticamente le differenze di comportamento fra questi diversi tipi di database server.
- L’applicazione in esecuzione in un server può accedere a qualunque tipo di database modificando la stringa di connessione. Se il database server è di tipo Oracle, SQL Server, MySQL o PostgreSQL, esso viene nativamente supportato dal framework di Instant Developer Cloud, altrimenti sarà necessario fornire il driver Node.js come pacchetto personalizzato e una classe di interfaccia per l’adattamento degli schemi e delle query.
- Tramite un componente di Instant Developer Cloud chiamato Cloud Connector, è possibile collegare ai server nel cloud i database presenti on-premise all’interno delle reti aziendali anche quando essi non accettano connessioni dall’esterno.