SRT Archive System Documentation Release 0.1 Sardinia Radio Telescope archive team June 30, 2016 Contents 1 Motivazioni 3 2 Allocazione dei tempi di utilizzo del SRT 2.1 Bozza di schema SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 3 Trasferimento dei dati al sistema di archiviazione 9 4 Archiviazione dei dati 4.1 Validare i file FITS . . . . . . . . . . . . . . . . . . . 4.2 Archiviare i file . . . . . . . . . . . . . . . . . . . . . 4.3 Estrarre i metadati dai file FITS prodotti dalla schedula 4.4 Popolare i record del database . . . . . . . . . . . . . 4.5 Eventuale inoltro del dato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 12 12 13 13 5 Computazioni sui dati 15 6 Duplicazione del sistema 17 7 Il data browser 7.1 Accesso ai dati . . . . . . . . . . . . . . . . . . . . . 7.2 Autenticazione . . . . . . . . . . . . . . . . . . . . . 7.3 Ogni sistema ha il suo data browser . . . . . . . . . . 7.4 La GUI del data browser . . . . . . . . . . . . . . . . 7.5 Collocazione del data browser . . . . . . . . . . . . . 7.6 Il formato dei dati . . . . . . . . . . . . . . . . . . . 7.7 Interazione con il sistema di archiviazione . . . . . . . 7.7.1 Interrogare il database . . . . . . . . . . . . 7.7.2 Chiedere l’autorizzazione per l’accesso ai dati 7.7.3 Computazione sui dati . . . . . . . . . . . . 7.7.4 Chiedere i risultati delle computazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 19 20 20 20 21 21 21 21 21 8 API esposte dal sistema di archiviazione 23 9 SRT archive system team 25 10 Glossario dei termini 27 11 Search inside 29 i ii SRT Archive System Documentation, Release 0.1 Contents: Contents 1 SRT Archive System Documentation, Release 0.1 2 Contents CHAPTER 1 Motivazioni I backend del Sardinia Radio Telescope sono capaci di produrre flussi di dati di varie dimensioni, che vanno dai 5 KB/s (quasi 20 MB all’ora) del total power sino ai 512 MB/s (quasi 2 GB all’ora) delle ROACH. Facendo una stima approssimativa dei tempi di utilizzo annui dei vari backend, possiamo dedurre che SRT attualmente è capace di produrre centinaia di TB di dati ogni anno, che dovranno essere archiviati da qualche parte. In futuro questi numeri non potranno che aumentare. Nei prossimi anni avremo infatti a disposizione nuovi backend, come ad esempio la ROACH 2, capace di produrre (utilizzata con il ricevitore in banda S a 5 feed) un flusso di dati di 40 GB/s (quasi 150 TB all’ora). Note: Il fatto che con la ROACH 2 potremo avere un flusso di dati di 40 GB/s non significa che ad ogni secondo di osservazione corrisponderanno 40 GB di dati da archiviare. E’ possibile infatti che parte di questo flusso subisca un pre-processing che consentirà di ridurre il bit-rate in uscita dal backend. Allo stesso modo, il fatto che attualmente siamo in grado di produrre 2 GB di dati all’ora non significa che nel caso peggiore un’osservazione di 2 ore produce 2 GB di dati, perchè in realtà la ROACH attualmente non è integrata nel sistema di controllo dell’antenna (Nuraghe), per cui al momento (e non sappiamo sino a quando) i dati che produce non possono essere archiviati. Attualmente il caso peggiore lo si ha utilizzando il backend Xarcos, che produce per ogni ora di utilizzo qualche centinaio di MB da archiviare. Il trend è quindi abbastanza chiaro, e indica che la quantità di dati che annualmente dovremo archiviare crescerà con il passare del tempo. Per vari motivi (backend non ancora integrati, incertezza sui tempi di operatività dell’antenna e sui tempi di utilizzo di ciascun backend) non siamo in grado di prevedere quante risorse ci occorrono nell’anno a venire, e tantomeno possiamo sapere quanti dati dovremo archiviare tra 5 anni o 10 anni. Dei requisiti così incerti ci impongono di realizzare un sistema di archiviazione che scali, ovvero che continui a funzionare allo stesso modo indipendentemente dalla dimensione dei dati archiviati e da archiviare, e i cui costi complessivi crescano in modo sub-lineare rispetto all’aumento lineare dello storage e delle risorse computazionali. Tale sistema lo si sta realizzando in collaborazone con il CRS4, ed è decritto nelle sezioni che seguono. 3 SRT Archive System Documentation, Release 0.1 4 Chapter 1. Motivazioni CHAPTER 2 Allocazione dei tempi di utilizzo del SRT L’assegnazione dei tempi di utilizzo del radiotelescopio avviene a seguito di una call for proposal, la quale prevede che entro un certo periodo di tempo vengano presentati dei progetti, che poi una commissione valuterà. Ai progetti approvati verrà assegnato: 1. uno o più slot temporali di utilizzo dell’antenna 2. un identificativo unico, chiamato project_id 3. una password Le credenziali project_id e password consentono di utilizzare il radiotelescopio, ma solo ed esclusivamente durante gli slot temporali assegnati al progetto. Quindi tutte e tre queste informazioni devono essere a disposizione del software di gestione delle osservazioni perchè è sulla base di queste che viene consentito l’utilizzo del radiotelescopio. Inoltre, come vedremo, il project_id e la corrispondente password dovranno essere a disposizione anche del sistema di archiviazione. Note: Guardando il tutto con una visione di insieme, ci si rende conto che sarebbe ideale avere una applicazione web che gestisca l’intero workflow di sottomissione e accettazione delle proposal, e che poi generi il progetto nel momento in cui la proposal viene accettata dalla commissione (ne discuteremo in breve nella sezione Bozza di schema SQL). Qualora non ci si metta d’accordo per realizzare una applicazione “ufficiale” di questo tipo, dovremmo realizzarne una “non ufficiale”, che semplicemente ci consenta (allo staff) di creare il progetto. Probabilmente quando il sistema di archiviazione sarà realizzato, la nuova interfaccia grafica per la gestione delle osservazioni (che dovrebbe essere la stessa per SRT e Medicina) non sarà ancora disponibile. Questo non è un problema perchè in realtà, una volta note le 3 informazioni di sopra, si può utilizzare il sistema attuale basato sull’operator input e sulle console, a patto ovviamente che la schedula riporti il corretto project_id. Infatti: • se il project_id contenuto nei file FITS inviati al sistema di archiviazione non coincide con quello che il sistema si aspetta per quello slot temporale, allora i dati non verranno archiviati, e il sistema di archiviazione comunicerà l’errore (nella sezione Validare i file FITS è mostrato un esempio di lettura del project_id dal file FITS) • i dati potranno essere prelevati solamente tramite il data-browser, di cui parleremo nella sezione Il data browser, sulla base di autenticazioni e autorizzazioni. Come vedremo nella sezione Trasferimento dei dati al sistema di archiviazione, in questo documento il termine dati viene utilizzato per indicare l’insieme di tutti i file, relativi ad una osservazione, che devono essere archiviati. Important: Quando parliamo di osservazione, intendiamo l’esecuzione di una singola schedula. Se un progetto prevede l’esecuzione di N schedule, ogni schedula è da considerarsi come un’osservazione distinta, legata ovviamente a quel progetto. 5 SRT Archive System Documentation, Release 0.1 Concludiamo questa sezione con una bozza di schema SQL. 2.1 Bozza di schema SQL Senza entrare troppo nei dettagli, vediamo di definire una prima bozza di schema SQL per la proposal, il progetto e l’osservazione. Ovviamente il tutto andrà approfondito, e cercheremo di prendere spunto anche da sistemi analoghi. Una proposal deve avere: • uno o più autori (authors), ciascuno dei quali può avere più di una proposal (relazione many to many) • una descrizione (description) • un campo booleano (is_evaluated) che indica se la commissione ha valutato o meno la proposal • un campo booleano (is_approved) che indica se la proposal è stata approvata Quanto abbiamo appena detto può essere riassunto nel seguente modo: Proposal: + authors = ManyToManyField(Author) + description = HTMLField() + is_evaluated = BooleanField(default=False) + is_approved = BooleanField(default=False) Se una proposal viene approvata, allora l’applicazione crea il progetto, il quale deve avere: • un identificativo unico (project_id) • una password • un riferimento ad una proposal (un progetto ha una sola proposal, e una proposal ha associato un solo progetto) • uno o più autori (authors), ciascuno dei quali può avere più progetti • una data (public_date) dopo la quale il progetto e (parte o tutti) i suoi dati diventano pubblici • uno o più slot temporali nei quali possono essere condotte le osservazioni (ogni slot temporale fa riferimento a un solo progetto) • una o più osservazioni Quanto abbiamo appena detto, in termini di relazioni SQL, può essere descritto da tre tabelle: una per i progetti, una per gli slot temporali e una per le osservazioni. Partiamo dalla tabella del progetto: Project: + proposal_id = IncrementalField(primary_key=True) + password = CharField() + proposal = OneToOneField(Proposal) + authors = ManyToManyField(Author) + public_date = DateTime() I campi della tabella degli slot temporali sono: un tempo di inizio (start), uno di fine (end) e un riferimento al progetto (project) al quale è stato assegnato tale slot: DateTimeSlot: + start = DateTimeField() + end = DateTimeField() + project = ForeignKey(Project) 6 Chapter 2. Allocazione dei tempi di utilizzo del SRT SRT Archive System Documentation, Release 0.1 I campi delle tabelle Proposal, Project, e DataTimeSlot devono essere popolati, sui database di tutti i sistemi, dall’applicazione (“ufficiale” o no) che gestisce i proposal. Abbiamo evidenziato “tutti i sistemi” perché, come vedremo nella sezione Duplicazione del sistema, il sistema di archiviazione è replicato su più sedi. Infine, la tabella dell’osservazione a grandi linee dovrebbe avere almeno i seguenti campi: • il riferimento al progetto di appartenenza • i vari file della schedula • i file FITS prodotti dalla schedula • il file di log prodotto dalla schedula • un tempo di inizio • un tempo di fine Note: La schedula, così come i file FITS, potrebbero necessitare di una loro tabella. Su questo hanno già lavorato Alessio e Alberto, per cui lo schema da loro prodotto sarà la nostra base di partenza. Tale schema (se già non è stato fatto) andrebbe confrontato con quello che stanno definendo a Trieste, sia perché certamente è utile avere un confronto, ma anche perché dovremmo valutare la soluzione più conveniente, tenendo conto che adottare uno schema comune (o parte dello schema comune) consentirebbe di avere sia la stessa interfaccia per interrogare i database di SRT, Medicina, ecc., sia di utilizzare del codice comune che popoli le tabelle sulla base delle informazioni estratte dai FITS. Come vedremo meglio nella sezione Archiviazione dei dati, i record delle tabelle relative all’osservazione vengono popolati dal sitema di archiviazione, sulla base del contenuto dei file FITS. 2.1. Bozza di schema SQL 7 SRT Archive System Documentation, Release 0.1 8 Chapter 2. Allocazione dei tempi di utilizzo del SRT CHAPTER 3 Trasferimento dei dati al sistema di archiviazione I valori digitali del segnale acquisito durante l’osservazione vengono salvati in un formato chiamato FITS. Al termine dell’osservazione, lo scheduler del sistema di controllo dell’antenna comunica a un component (da realizzare), che chiameremo Finalizer che la schedula è stata completata. Il Finalizer crea un unico file compresso (es. un tar.gz, un zip, ecc.) contenente i seguenti file, che costituiscono l’insieme dei dati da archiviare, e che quindi da qua in avanti chiameremo semplicemente dati: • la schedula • tutti i file FITS prodotti da quella schedula • il file di log relativo a quella schedula • eventuali file FITS prodotti da un sistema di monitoraggio della banda A questo punto il Finalizer si autentica nel sistema di archiviazione e gli invia il file compresso contenente i dati. Important: Si osservi che al termine della schedula non è detto che le attività programmate per quel progetto siano concluse, perchè è possibile che per un progetto sia prevista l’esecuzione di più schedule. Al termine di ogni schedula quindi si ripete il processo di invio del file al sistema di archiviazione. Approdondiremo questo discorso nella sezione Archiviare i file. Il nome del file probabilmente sarà rappresentativo dell’osservazione, ricavato ad esempio a partire dal project_id e dalla data di concusione dell’osservazione. Per semplificare la trattazione però da qui in avanti chiameremo questo file in modo generico, dandogli il nome srt2archive.tar.gz. 9 SRT Archive System Documentation, Release 0.1 10 Chapter 3. Trasferimento dei dati al sistema di archiviazione CHAPTER 4 Archiviazione dei dati Quando il sistema di archiviazione riceve il file srt2archive.tar.gz, dopo averlo decompresso e scompattato, deve: 1. validare i file FITS 2. archiviare i file (schedula, FITS, log) 3. estrarre i metadati dai file FITS prodotti dalla schedula 4. popolare i record del database Vediamo di descrivere più in dettaglio questi quattro punti. 4.1 Validare i file FITS Il sistema di archiviazione deve verificare che il project_id indicato nei FITS sia quello corretto. Se infatti nella schedula, e quindi nei file FITS, fosse indicato un project_id errato, e il sistema non rivelasse questo errore, allora i dati verrebbero associati a un altro progetto. Note: In linea di principio, si potrebbe fare questo check a monte, da parte del client, ma visto che un bug nel client pregiudicherebbe la privacy dei dati, è bene che sia il sistema di archiviazione a fare questa verifica e poi, in modo scorrelato, può farlo anche il client. Il sistema di archiviazione, basandosi su un valore temporale Texe in cui la schedula era in esecuzione (ad esempio un tempo intermedio, calcolato per ciascun file FITS), dovrebbe quindi verificare che il project_id indicato nei FITS sia quello del progetto che in quel dato istante di tempo Texe aveva diritto all’utilizzo dell’antenna. Attention: Come è stato detto al termine della sezione Bozza di schema SQL, le informazioni sul progetto vengono inserite nel database da parte dell’applicazione (“ufficiale” o no) che gestisce i proposal. Vediamo breve un esempio di come leggere il project_id da un file FITS prodotto da Nuraghe. Consideriamo a tal scopo il file example.fits e utilizziamo la libreria astropy. Apriamo il file utilizzando la funzione fits.open(), la quale restituisce una collezione di Header Data Unit (HDU): >>> from astropy.io import fits # Uso la libreria astropy >>> hdulist = fits.open('example.fits') Gli HDU sono gli elementi che compongono i FITS, e ciascuno di essi ha un header e (tipicamente) una tabella. La lista degli HDU è un oggetto iterabile: 11 SRT Archive System Documentation, Release 0.1 >>> for hdu in hdulist: # Itero sul contenitore di HDU ... print(hdu.name) ... PRIMARY SECTION TABLE RF INPUTS FEED TABLE DATA TABLE ANTENNA TEMP TABLE SERVO TABLE In project_id è contenuto nello HDU PRIMARY, e lo otteniamo utilizzando la chiave Project_name: >>> pt = hdulist['PRIMARY'] >>> pt.header['Project_name'] 'SRT-SCICOM_SNR1_C' Per maggiori informazioni consultare la documentazione della libreria astropy. 4.2 Archiviare i file Ogni qualvolta Nuraghe invia un file srt2archive.tar.gz, contenente i dati di una osservazione, il sistema di archiviazione verifica se esiste già la directory di quel progetto, altrimenti la crea dandole il nome del project_id (se il project_id è 1024, la directory si chiamerà 1024). Il file srt2archive.tar.gz contiene i dati di una particolare osservazione, che andranno archiviati in una sottodirectory di quella del progetto. Quindi, riassumendo, ogni progetto ha la sua directory, il cui nome è il project_id del progetto stesso, e ogni osservazione ha anche essa la sua directory contenente i dati, come mostrato in figura 1. Fig. 4.1: Figura 1: Ogni progetto ha la sua directory, contenente quelle delle osservazioni In base a quanto detto nella sezione Motivazioni, è necessario che il file system sia distribuito. 4.3 Estrarre i metadati dai file FITS prodotti dalla schedula Dopo che il dato è stato archiviato, bisogna estrarre dai file FITS dell’osservazione le informazioni necessarie per popolare i record delle tabelle relative all’osservazione, di cui si è accennato in Bozza di schema SQL. Le informazioni da archiviare potrebbero essere di due tipi: 12 Chapter 4. Archiviazione dei dati SRT Archive System Documentation, Release 0.1 • informazioni estratte in modo diretto dai metadati dei file FITS: ricevitore e backend utilizzati, ecc. • informazioni non presenti come metadati del FITS, ma che vengono ugualmente recuperate dai FITS: livelli segnale, ecc. Note: Come è stato detto nella sezione Bozza di schema SQL, le tabelle relative all’osservazione devono ancora essere studiata in dettaglio, basandosi sul lavoro già svolto da Alessio e Alberto, ma anche su quanto stanno facendo a Trieste e Medicina. Il sistema di archiviazione legge quindi i file FITS, e recupera tutte le informazioni necessarie per popolare i record delle tabelle relative all’osservazione. 4.4 Popolare i record del database Il sistema di archiviazione popola i record delle tabelle dell’osservazione. 4.5 Eventuale inoltro del dato Infine, come vedremo nella sezione Duplicazione del sistema, il sistema può mandare il dato in ingresso (srt2archive.tar.gz) a un secondo sistema di archiviazione (uguale a se stesso, a parte la configurazione) il quale quindi ripete i punti appena descritti. Important: Backup, ridondanza? 4.4. Popolare i record del database 13 SRT Archive System Documentation, Release 0.1 14 Chapter 4. Archiviazione dei dati CHAPTER 5 Computazioni sui dati In questa sezione descriveremo... Serve per poter definire le API riguardanti la computazione. 15 SRT Archive System Documentation, Release 0.1 16 Chapter 5. Computazioni sui dati CHAPTER 6 Duplicazione del sistema Il sistema di archiviazione è duplicato: una copia si trova al SRT, con ridotte capacità di storage, mentre l’altra al CRS4, con grandi capacità di storage. L’archivio presente a SRT può essere consultato solo localmente, e contiene i dati delle osservazioni degli ultimi M progetti. L’archivio del CRS4 contiene tutti i dati, ed è raggiungibile dall’esterno. Il Finalizer invia il file srt2archive.tar.gz al sistema di archiviazione di SRT il quale, dopo aver effettuato i vari step previsti per l’archiviazione, gira al sistema di archiviazione del CRS4 il medesimo file che gli è arrivato in ingresso, come mostrato in figura 2. Fig. 6.1: Figura 2: Trasferimento dei dati al termine dell’osservazione Avere in piccolo ad SRT il medesimo sistema di archiviazione presente al CRS4 è indispensabile per garantire il funzionamento anche in assenza di rete verso l’esterno (la situazione che ci sarà inizialmente); infatti in questo caso il dato viene comunque archiviato temporaneamente a SRT, e poi può essere replicato al CRS4 in un secondo momento, ad esempio portando i dati in OAC per poi trasferirli al CRS4 tramite un client del sistema di archiviazione. Inoltre, nel caso di file FITS di grosse dimensioni: • l’osservatore può già effettuare delle analisi, o semplicemente recuperarne una copia dei file senza dover attendere che questi vengano trasferiti al CRS4. Il sistema di archiviazione è infatti identico (a parte le capacità di storage e computazionali), per cui l’autenticazione e l’autorizzazione degli utenti avviene a SRT allo stesso modo che al CRS4, utilizzando i medesimi tool • il Finalizer riceve subito risposta dal sistema di archiviazione, per cui un eventuale errore viene rilevato subito, senza dover attendere il trasferimento del dato al CRS4, e quindi il problema può essere risolto immediatamente. Un altro vantaggio di avere una copia del sistema di archiviazione a SRT è che il personale INAF ha la possibilità (necessità) di familiarizzare con il sistema. 17 SRT Archive System Documentation, Release 0.1 Note: In aggiunta, avere un sistema replicato ci costringe a pensare ad una architettura con un facile deployment, il che è un bene perchè porta a limitare il più possibile le dipendenze e tenere il sistema semplice. In questo modo dovrebbe risultare agevole per lo svilppatore installare e configurare il sistema sulla propria macchina, in modo da sviluppare in locale. 18 Chapter 6. Duplicazione del sistema CHAPTER 7 Il data browser Chiamiamo data browser l’applicazione che si interfaccia con il sistema di archiviazione per consentire all’utente, dopo essersi autenticato, di accedere ai dati. 7.1 Accesso ai dati Diciamo che i dati di un progetto sono privati quando solamente gli autori di quel progetto sono autorizzati a consultarli. Per default i dati sono privati per un certo periodo che segue l’osservazione, ovvero sino ad una certa data, che nella tabella Project della sezione Bozza di schema SQL abbiamo indicato con public_date. Dopo la data public_data, i dati (o solamente una parte di essi) diventeranno pubblici, nel senso che ogni utente autenticato potrà consultarli. 7.2 Autenticazione L’autenticazione con le credenziali del progetto crea una falla dal punto di vista della sicurezza, perchè non consente di risalire alla persona che ha avuto accesso al sistema. L’autenticazione sarà quindi basata sull’identità della persona, non su quella del progetto, e verrà gestita direttamente dal data browser (le tabelle sono quelle create dall’applicazione che gestisce i proposal). Note: Una autenticazione basata sull’identità della persona è in ogni caso necessaria, perché se fosse possibile autenticarsi solamente con l’identità del progetto, allora il sistema non sarebbe in grado di accettare utenti che non fanno parte di alcun progetto. Dal punto di vista dell’utilizzatore, una modalità di autorizzazione basata sull’identità della persona è inoltre più comoda rispetto a quella basata su project_id e password perchè un autore, una volta autenticato, è in grado di vedere tutti i suoi progetti, senza dover inserire separatamente le credenziali di accesso di ciascun progetto, cosa che non sarebbe possibile con una modalità di autenticazione basata sulla credenziali del progetto. 7.3 Ogni sistema ha il suo data browser Nella sezione Duplicazione del sistema abbiamo visto che il sistema di archiviazione è duplicato. Quindi un data browser consentirà di consultare i dati presenti nell’archivio di SRT, mentre un altro servirà per consultare i dati presenti al CRS4. Il primo sarà raggiungibile solo localmente a SRT, mentre l’altro sarà raggiungibile dall’esterno. I 19 SRT Archive System Documentation, Release 0.1 due data browser sono ovviamente due installazioni distinte del medesimo codice, la cui implementazione è a carico dell’INAF. 7.4 La GUI del data browser Il data browser espone all’utente una interfaccia web, che può essere visualizzata quindi con un qualsiasi browser web (Google Chrome, Firefox, Safari, Internet Explorer, ecc.). L’utente può consultare l’archivio solamente in lettura, o eventualmente per fare delle computazioni sui dati, che ovviamente devono essere operazioni safe. Tramite l’interfaccia di amministrazione, lo staff è autorizzato a compiere operazioni in scrittura sull’archivio (creare e cancellare record, ecc.) 7.5 Collocazione del data browser Il data browser deve poter essere installato ovunque, non necessariamente dove risiedono i dati. Note: Se si vuole evitare che i dati, prima che arrivino all’utente finale transitino dall’archivio al data browser, installare il data browser dove risiedono i dati non risolve il problema, visto che in futuro potremmo essere costretti a distribuire lo storage su sedi geograficamente separate, mentre i dati resterebbero accessibili da un solo data browser. 7.6 Il formato dei dati I file FITS originali (quelli contenuti in srt2archive.tar.gz) non possono essere direttamente utilizzati dai tool di analisi, poiché prima necessitano di essere convertiti in un formato opportuno. Poiché tool di analisi diversi richiedono in input formati di file FITS diversi, l’utente deve poter scegliere se scaricare il FITS raw oppure uno a scelta tra vari altri formati disponibili (CASA, ecc.), oppure si può decidere che il sistema non effettua la conversione ma rende disponibile solamente il dato RAW, e ci preoccupiamo noi di fornire i convertitori. Important: I convertitori vengono installati nel sistema di archiviazione, ma la loro realizzazione, ancora da completare, è a carico del personale INAF. E’ importante che il dato convertito o anche ridotto abbia un riferimento al dato RAW, in modo che sia sempre possibile sapere quale è l’origine di un certo risultato (per ragioni di copyright, ecc.). La conversione avvene al momento della richiesta: quando un utente richiede un FITS in formato X, il sistema di archiviazione fa la conversione da raw FITS a X, e poi restituisce X. Il questo modo lo spazio destinato allo storage è indipendente dal numero di formati disponibili, al contrario di quanto accadrebbe se insieme al raw FITS archiviassimo anche gli altri formati di FITS. Per contro si paga un overhead in termini di tempo di reperimento della risorsa da parte dell’utente, che comunque è trascurabile rispetto al tempo necessario per il download, indipendentemente dalla grandezza del file da scaricare. Note: Per essere certi di questo ultimo punto, dovremmo verificare che effettivamente il tempo di conversione cresca in modo lineare o sub-lineare con la dimensione del file, visto che tempo di download cresce pressoché linearmente. 20 Chapter 7. Il data browser SRT Archive System Documentation, Release 0.1 7.7 Interazione con il sistema di archiviazione Il data browser interagisce con il sistema di archiviazione per: 1. interrogare il database, sia per gestire le autenticazioni sia per mostrare i record del progetto e delle osservazioni 2. chiedere l’autorizzazione per accedere ai dati 3. chiedere che vengano eseguite delle computazioni 4. chiedere i risultati delle computazioni. Vediamo di approfondire i vari punti, in modo da capire cosa il sistema di archiviazione deve esporre. Nella sezione API esposte dal sistema di archiviazione faremo poi il sunto sulle API complete del sistema di archiviazione. 7.7.1 Interrogare il database Per poter interrogare il database non è richiesto che il sistema di archiviazione esponga delle API. Il data browser vede direttamente il database, il che agevola l’utilizzo di web framework basati sul pattern MVC (come ad esempio Django), nei quali le applicazioni sono database-driven. 7.7.2 Chiedere l’autorizzazione per l’accesso ai dati Come abbiamo detto nella sezione Interrogare il database, il data browser interagisce direttamente con il database, per cui ha già tutte le informazioni necessarie per saper a quali dati può accedere un utente. Il data browser gestisce quindi l’autorizzazione alla consultazione del database. L’autorizzazione all’accesso ai dati va invece affrontato a parte perché come abbiamo detto nella sezione Collocazione del data browser, forse dovremmo utilizzare il protocollo OAuth 2. In questo caso, il sistema di archiviazione deve esporre le API previste per implementare tale protocollo. 7.7.3 Computazione sui dati Eventuali computazioni sui dati devono avvenire tramite il data-browser. In questo caso il sistema di archiviazione deve certamente esporre delle API, da definire in comune accordo con il CRS4. 7.7.4 Chiedere i risultati delle computazioni Non è detto che il sistema di archiviazione debba esporre della API per questo. Dipende dalla soluzione che vogliamo adottare. Lo stato e i risultati delle computazioni dovrebbero essere salvati dal sistema di archiviazione su un database, e a partire da qua si aprono diversi scenari, come ad esempio: • l’utente può consultare le sue sessioni di lavoro su richiesta (request/reponse), e in questo caso il sistema di archiviazione non deve esporre alcuna API, perché il databrowser interrogherebbe direttamente il database • i risultati vengono pubblicati, ad esempio tramite SocketIO, ed in questo caso il sistema di archiviazione deve avre un backend che legge da database e pubblica 7.7. Interazione con il sistema di archiviazione 21 SRT Archive System Documentation, Release 0.1 22 Chapter 7. Il data browser CHAPTER 8 API esposte dal sistema di archiviazione Descrivere, sulla base di quanto è stato detto in tutte le altre sezioni, tutte le API che il sistema di archiviazione deve sporre. 23 SRT Archive System Documentation, Release 0.1 24 Chapter 8. API esposte dal sistema di archiviazione CHAPTER 9 SRT archive system team Il progetto è portato avanti da un gruppo di lavoro dell’INAF, Osservatorio Astronomico di Cagliari, in collaborazione con il gruppo di High Performance Computing and Network (HPCN) del CRS4. Il team dell’INAF è composto da: • Marco Buttu <[email protected]> • Antonietta Fara <[email protected]> • Andrea Melis <[email protected]> • Carlo Migoni <[email protected]> • Alberto Pellizzoni <[email protected]> • Sergio Poppi <[email protected]> • Ignazio Porceddu <[email protected]> • Alessio Trois <[email protected]> Fanno parte del team del CRS4: • Muriel Cabianca <[email protected]> • Carlo Impagliazzo <[email protected]> • Lidia Leoni (HPCN director) <[email protected]> 25 SRT Archive System Documentation, Release 0.1 26 Chapter 9. SRT archive system team CHAPTER 10 Glossario dei termini Backend dispositivo che prende in ingresso il segnale analogico proveniente dal ricevitore e fornisce in uscita una rappresentazione digitale di tale segnale Dati Insieme dei file prodotti da una osservazione (FITS, schedula, log, etc.), che vengono archiviati. ESCS Sistema software di controllo del radiotelescopio di Medicina FITS Flexible Image Transport System: è un formato di file aperto usato per le immagini scientifiche e altre immagini. Nuraghe Sistema software di controllo del Sardinia Radio Telescope 27 SRT Archive System Documentation, Release 0.1 28 Chapter 10. Glossario dei termini CHAPTER 11 Search inside • search 29 SRT Archive System Documentation, Release 0.1 30 Chapter 11. Search inside Index B Backend, 27 D Dati, 27 E ESCS, 27 F FITS, 27 N Nuraghe, 27 31