Diciamo che vai dal dentista per farti estrarre un dente.
Quando l'addetto alla reception ti chiede il tuo nome, queste sono le informazioni di cui hanno bisogno per iniziare l'appuntamento. In questo esempio, il tuo nome è informazioni contestuali . Quindi, nel contesto della visita dal dentista, è necessario fornire il proprio nome per ottenere il dente tirato.
Ora supponiamo che passi dalla banca.
Alla banca, chiedi di ritirare $ 100. Il cassiere deve stabilire la tua identità prima di darti denaro, quindi probabilmente dovrai mostrare loro una patente di guida o scorrere la tua carta bancomat e inserire il tuo codice PIN. In entrambi i casi, ciò che stai fornendo è il contesto . Il cassiere utilizza queste informazioni per spostare la transazione in avanti. Potrebbero quindi chiederti da quale account desideri prelevare. Quando rispondi, "Il mio conto di risparmio" , è ancora più contesto .
Più contesto fornisci, maggiore è la conoscenza che l'altra parte deve aiutare a gestire la tua richiesta. A volte il contesto è facoltativo (come digitare sempre più parole nella ricerca di Google per ottenere risultati migliori) ed a volte è necessario (come fornire il proprio codice PIN allo sportello automatico). Ad ogni modo, sono le informazioni che di solito aiutano a fare le cose.
Ora diciamo che prendi i tuoi $ 100 e compri un biglietto aereo per volare in un posto caldo mentre la tua bocca guarisce.
Arrivi in una bella destinazione soleggiata, ma la tua borsa non ce la fa. Si è perso da qualche parte nel sistema aeroportuale. Quindi, porti il tuo "biglietto di ritiro bagagli" (quell'adesivo con il codice a barre su di esso) all '"Ufficio bagagli smarriti". La prima cosa che la persona dietro la scrivania chiederà è quel biglietto con il numero del bagaglio su di esso. Questo è un esempio di alcuni contesti richiesti .
Ma poi il bagaglio ti chiede maggiori informazioni sulla tua borsa in modo che possano trovarla più facilmente. Chiedono: "Di che colore è? Di che dimensioni è? Ha le ruote? È duro o morbido? Anche se non hanno necessariamente bisogno di quelle informazioni, aiuta a restringere le cose se le fornisci. Riduce il area problematica. Rende la ricerca molto più veloce. Questo è un contesto opzionale .
Ecco la parte interessante: per un sacco di software e API, il contesto richiesto di solito finisce come parametri effettivi nella firma di un metodo, e il contesto opzionale va altrove, come una mappa chiave-valore flessibile che può contenere qualsiasi cosa (e può essere vuota ) o nella memoria locale thread dove è possibile accedervi se necessario.
Gli esempi sopra riportati sono tratti dalla vita reale, ma puoi facilmente mapparli su aree all'interno dell'informatica. Ad esempio, le intestazioni HTTP contengono informazioni contestuali. Ogni intestazione si riferisce alle informazioni sulla richiesta in corso. O quando si invia un ID transazione globale come parte di un processo di commit in due fasi , tale ID transazione è contesto. Aiuta il gestore delle transazioni a coordinare il lavoro perché contiene informazioni sull'attività complessiva a portata di mano.
Spero che aiuti.