Un repository (lett. "deposito" o "ripostiglio"),[1][2] in informatica, è un ambiente di un sistema informativo (ad esempio di tipo ERP), in cui vengono gestiti i metadati, attraverso tabelle relazionali; l'insieme di tabelle, regole e motori di calcolo tramite cui si gestiscono i metadati prende il nome di metabase.
Descrizione
Si tratta di un ambiente che può essere implementato attraverso numerose piattaforme hardware e sistemi di gestione delle basi di dati (o DBMS, acronimo del corrispondente termine ingleseDataBase Management Systems).
Si tratta di uno stile architetturale che può essere utilizzato come base di un'architettura software. I sottosistemi che compongono il software accedono e modificano una singola struttura dati chiamata appunto repository. I vari sottosistemi sono fra loro relativamente indipendenti, in quanto interagiscono solo mediante il repository. Il flusso di controllo è dettato o dal repository, mediante un cambiamento dei dati in esso memorizzati, o dai singoli sottosistemi (flusso di controllo indipendente).
Analisi
Vantaggi
Modo efficiente di condividere grandi mole di dati
Un sottosistema non deve preoccuparsi di come i dati sono prodotti o usati dagli altri sottosistemi.
I sistemi devono concordare un modello dati di compromesso, il che potrebbe influire negativamente sulle prestazioni.
L'adozione di un nuovo modello per i dati diventa difficile e costosa: deve essere modificato interamente il repository ed aggiornati tutti i sottosistemi.
La centralizzazione di backup e sicurezza non permette di gestire possibili requisiti specifici di alcuni sottosistemi.
È difficile distribuire efficientemente il repository su più macchine separate, continuandolo a vedere come logicamente centralizzato. Si verrebbero infatti a creare problemi di ridondanza e consistenza dei dati.
Note
^In italiano, nell'ambito informatico, si può tradurre in "archivio" (strutturato).