CorsiSistemi Distribuiti

Che cos’è un’applicazione Data-Intensive

Un’applicazione viene definita Data-Intensive quando tratta grandi quantità di dati, i dati sono molto complessi oppure se la frequenza con la quale i dati cambiano è molto elevata. Questo processo è contrario al computer-intensive che prevede una grande capacità di calcolo delle CPU.

Questo tipo di applicazioni forniscono delle funzionalità base sempre presenti:

  • Memorizzazione dei dati,
  • Ricordare il risultato di operazioni complesse, la cache,
  • Permettere agli utenti di ricercare i dati tramite indici,
  • Elaborazione dei flussi asincrona.

Esistono diversi strumenti che ci possono venire incontro per poter sviluppare un’applicazione Data-Intensive, come ad esempio le nuove tipologie di database, il NoSQL ma anche la cache o i framework per l’elaborazione dei flussi.

Essendo un ambiente molto vasto e complesso, affidarsi ad un unico strumento sarebbe riduttivo, per questo il compito di molte applicazioni è quello unire le funzionalità di vari strumenti in un unico programma, in quanto il fai da te non è sempre la soluzione migliore.

Le domande che sorgono spontanee nel momento in cui state sviluppando applicazioni di tipo Data-Intensive sono:

  • Come faccio a far rimanere coerenti i dati anche se l’elaborazione non va a buon fine?
  • Come fai a garantire elevate prestazioni del software anche se il sistema è molto disgregato?
  • Come faccio a fornire delle API?

Quando svilupperete un’applicazione Data-Intensive ci sono tre aspetti che dovreste tenere attentamente in considerazione

  • Affidabilità, il sistema dovrebbe continuare a funzionare anche in caso di errori Software e Hardware per consentire una continuità del servizio offerto ai vostri clienti. Ci sono diverse tipologie di problemi che potrebbero sorgere anche dovute ad un cattivo utilizzo dello stesso da parte degli utenti. È importante ricordare che l’utente non ha la vostra stessa conoscenza del prodotto e potrebbe quindi compiere azioni spropositate che potrebbero far andare in errore tutto. Potremmo quindi definire l’affidabilità come “Far andare tutto bene anche quando va tutto male”
  • Scalabilità, nel corso del tempo il flusso dei dati trattato dal vostro sistema potrebbe aumentare, sia dovuto ad un aumento dei clienti oppure ad un semplice aumento delle richieste degli utenti già iscritti. È fondamentale essere a conoscenza fin dalla fase di creazione del progetto di come poter gestire tale crescita.
  • Manutenibilità, anche se avete terminato il progetto nel corso del tempo potrebbe essere rilasciato qualche aggiornamento o potrebbe avere la necessità di risolvere qualche bug, per questo motivo dovreste rendere sempre il vostro codice molto pulito ed ordinato in modo tale da poter rendere più facilmente possibile la manutenzione, che potrebbe anche essere fatta anche da altre persone.

LINK UTILI

Pagina Instagram: https://www.instagram.com/developer_sumo/
Corso Sistemi Distribuiti: https://www.developersumo.com/sistemi-distribuiti/
I nostri Corsi: https://www.developersumo.com/corsi/
Le nostre Applicazioni: https://play.google.com/store/apps/developer?id=Developer+Sumo

What's your reaction?

Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0

You may also like

More in:Corsi

Leave a reply

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