Sommario:
Video: Cosa c'è dietro lo sviluppo di un'app: UI/UX, Linguaggi lato Server e Database 2024
Ci sono dati mission-critical e dati di supporto. Va bene se i dati mission-critical appaiono un po 'lentamente, perché vuoi essere sicuro che sia sicuro e gestito correttamente. Ma non vuoi che i dati di supporto della tua applicazione ostacolino le transazioni complessive e le esperienze degli utenti.
Sebbene i dati di supporto possano avere un valore inferiore, la necessità di scalare è grande, in genere fornendo la consegna delle risposte alle query in meno di dieci millisecondi. Gran parte di questi dati di supporto aiuta gli utenti ad accedere a un sistema, ad adattare un servizio alle loro esigenze o a trovare altri servizi o prodotti disponibili.
Fornire il web
Sebbene siano fondamentali per le aziende che commercializzano prodotti o servizi sul Web, non sono essenziali per le esperienze di navigazione sul Web di molti utenti. Tuttavia, il tempo di caricamento delle pagine Web è importante per loro, e non appena un annuncio lentamente consegnato inizia ad aggiungere al tempo di caricamento di una pagina, gli utenti iniziano a spostarsi su siti web alternativi, più veloci.
Il servizio veloce è, quindi, un problema chiave. Fare così non è un business semplice, però. Che viene mostrato a quale utente dipende da un numero molto elevato di fattori, spesso determinati da fattori come l'attività tracciata dell'utente online, la lingua e la posizione.
Le aziende che scelgono come target i loro clienti giusti ricevono più click-through e quindi maggiori profitti. Tuttavia, l'attività di pubblicità mirata è sempre più scientifica.
I negozi a valore-chiave sono utilizzati principalmente dalle società web. (È possibile trovare casi di studio su tale utilizzo su siti Web di fornitori chiave di valore NoSQL.) Utilizzando il proprio software proprietario, queste aziende utilizzano una combinazione di fattori per determinare ciò che un utente desidera o è interessato in modo che possano scegliere come target quell'utente in modo efficace.
Puoi pensare a questa combinazione di fattori come un tasto , ed è questa chiave composita che punta al più convincente. Tutto ciò che è necessario per servire è mantenuto come valore all'interno di un archivio di valori-chiave.
Se è necessario servire i dati velocemente in base a una serie di fattori noti, un archivio di valori-chiave rappresenta una corrispondenza eccellente. Tutto ciò che devi fare è impostare la chiave in modo efficace.
Per impostare la chiave, eseguire alcune analisi offline di quali saranno rilevanti per ciascun profilo combinato di persone. Se le informazioni che hai sull'utente che visita sono paese, lingua e categoria di acquisti preferita su Amazon, allora forse una chiave appropriata sarebbe quella inglese-inglese.
Ciò impedisce di dover eseguire query complesse al momento della pubblicazione degli annunci, ma concatena questi campi per formare una chiave e chiedere il valore di tale chiave.
Gestione delle sessioni utente
Puoi spendere tutti i soldi che vuoi su un datacenter all'avanguardia per i tuoi dati transazionali, ma se il tuo sito web è lento, la gente dirà che l'intero servizio è lento. Infatti, quando aziende e governi lanciano nuovi servizi online che non sono in grado di gestire il carico su di essi, la stampa li mangia a colazione.
In genere, il problema non è che un sistema di elaborazione primario si interrompa; piuttosto, è perché le identità o le sessioni degli utenti sono gestite male. Forse il nome utente non viene memorizzato nella cache, oppure ogni richiesta richiede l'apertura di una nuova sessione dal server delle applicazioni anziché la memorizzazione nella cache di queste informazioni tra le richieste.
Una sessione utente può tenere traccia di come un utente cammina attraverso un'applicazione, aggiungendo dati su ciascuna pagina. I dati possono quindi essere salvati alla fine di questo viaggio in un singolo colpo al database, piuttosto che in una sequenza di piccole richieste attraverso molte richieste di pagine. Spesso gli utenti non si preoccupano di aspettare un paio di secondi dopo aver fatto clic su un pulsante di salvataggio. Fornire una sessione utente efficace su un sito Web con bassa latenza ha un paio di vantaggi:
-
L'utente (che presto diventerà cliente!) Riceve un buon servizio.
-
I dati parzialmente completi non vengono salvati nel database transazionale di back-end principale.
I siti Web utilizzano un cookie per tracciare l'interazione dell'utente con un sito Web. Un cookie è un piccolo file collegato a un ID univoco, proprio come un record in un archivio di valori-chiave. Il server utilizza questi cookie per identificare che conosce già un utente sulla seconda o successiva richiesta, quindi il server deve recuperare una sessione utilizzando questi dati rapidamente. In questo modo, quando gli utenti accedono, i siti Web riconoscono chi sono, quali pagine visitano e quali informazioni stanno cercando.
Questo ID univoco è in genere un numero casuale, forse il nostro vecchio amico, l'Universally Unique Identifier (UUID). Il sito web potrebbe dover memorizzare vari tipi di dati. In genere, questi dati sono di breve durata: la durata della sessione di un utente, forse solo di pochi minuti.
I negozi con valori-chiave sono, quindi, ideali per l'archiviazione e il recupero dei dati di sessione ad alta velocità. È anche utile la capacità di rimozione della pietra tombale (ovvero eliminazione) dei dati una volta superato il timestamp. In questo modo, l'applicazione non ha bisogno di controllare il timestamp della sessione su ogni richiesta - se la sessione non è nel database, è stata rimossa. Quindi la sessione non è più valida, il che rimuove alcuni oneri amministrativi del programmatore dell'applicazione.
Supporto della personalizzazione
Simile al requisito della sessione utente, ma più duraturo, è il concetto di personalizzazione del servizio utente . Qui è dove l'applicazione front-end è configurata dagli utenti per le loro esigenze specifiche.
Ancora, questo è un tipo di dati secondario front-end, non i dati transazionali primari all'interno di un sistema. Ad esempio, immagina di avere un database principale che mostra i livelli di lavoro per tutto il team, i file dei casi correnti su cui stanno lavorando e tutti i dati correlati.Questi sono i dati principali dell'applicazione. Forse è memorizzato in un database relazionale Oracle o in un database di documenti NoSQL MarkLogic.
L'uso dei dati può variare. Ad esempio, un utente potrebbe voler visualizzare un riepilogo del carico di lavoro del proprio team, mentre un manager potrebbe voler monitorare tutti i dipendenti di un team.
Questi utenti ricevono visualizzazioni personalizzate differenti degli stessi dati. Queste preferenze di visualizzazione devono essere salvate da qualche parte. Probabilmente non vuoi sovraccaricare il tuo database dei casi con questi dati di personalizzazione; è specifico per l'applicazione front-end, non per il sistema di gestione dei casi di base.
L'utilizzo di un archivio di valori-chiave con una chiave composita contenente id utente (non id di sessione) e il nome del servizio consente di memorizzare le impostazioni di personalizzazione come valore, il che rende le ricerche molto rapide e impedisce il funzionamento dei sistemi primari essere influenzato negativamente.