Trinacria Grid Virtual Laboratory The AMGA metadata catalog Riccardo Bruno – INFN Sez.CT Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 FESR www.trigrid.it Contenuti • Le origini e le motivazioni di AMGA • Interfacce, Architettura e Implementazione • Replica dei Metadati su AMGA • Esempi di impiego su Grid di produzione • Casi d’uso sul testbed GILDA Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Metadati su GRID • Metadata sono dati che descrivono altri dati • In Grid: informazioni aggiuntive sui file – Descrizione dei file – Individuare i file grazie a dati che descrivono il loro contenuto • Non solo: Facilita l’accesso ai DB in Grid – Molte applicazioni grid necessitano di dati strutturati – Molte applicazione richiedono solo degli schemi semplici Questi possono essere facilmente modellati come metadati • Vantaggi: Una migliore integrazione con l’ambiente Grid – I servizi Metadata sono un componente Grid – E’ garantita la sicurezza (GSI) – Si nasconde la possibile eterogeneità dei DB Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 ARDA/gLite Interfaccia ai Metadati • 2004 - ARDA valuto lo stato dei servizi metadata dagli esperimenti HEP – AMI (ATLAS), RefDB (CMS), Alien Metadata Catalogue (ALICE) – Stessi obiettivi, stessi concetti – Ogni servizio adattato per un particolare dominio di applicazione Il riutilizzo reso difficoltoso al di fuori del dominio di appartenenza – Alcue limitazioni tecniche: risposte voluminose, scalabilità, prestazioni, carenze sulla flessibilità • ARDA pensò a un’interfaccia per l’accesso ai metadati in Grid – – – – Basata sulle richieste degli esperimenti su LHC Che fosse generica (non limitato a un particolare dominio di applic.) Sviluppato congiuntamente ai gruppi di gLite/EGEE Che inglobasse le esperienze di GridPP • Adottato come l’ufficliare interfaccia ai metadati su EGEE – Sostenuto dal PTF (Project Technical Forum of EGEE) Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 AMGA Implementazione • ARDA sviluppò una ‘Project Task Force’ creando: – AMGA – ARDA Metadata Grid Application • Iniziato come prototipo per la valutazione dell’interfaccia ai metadati – Evaluated Valutato continuamente da varie comunità sin dall’inizio: LHCb e Ganga furono I primi tester – Maturato velocemente grazie alle impressioni degli utenti • Adesso e’: parte integrante del middleware gLite – Servizio ai metadati ufficiale su EGEE – Primo rilascio ufficiale con gLite 1.5 – E’ anche disponibile in versione ’standalone’ • Si sta espandendo velocemente verso altre comunità: – HEP, Biomed, UNOSAT… Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Metadata Concetti • Alcuni concetti: – Metadata - Lista di attributi associati con elementi (entry) – Attribute – coppia chiave/valore con informazione sulla tipologia del valore (type) Type – Il tipo di dato: (int, float, string,…) Name/Key – Nome dell’attributo Value – Valore dell’attributo su un dato elemento – Schema – Un insieme di attributi – Collection – Un insieme di elementi associati con uno schema • Metafora: – Si pensi agli schemi come alle tabelle, agli attributes come le colonne a agli elementi come le righe di un database Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 AMGA Funzionalità • Schemi dinamici – Gli schemi possono essre modificati ‘al volo’ dal client Creare, rimuovere gli schemi Agglingere rimuovere attributi • I metadati sono organizzati gerarchicamente – Una collection può contenere una o piu’ sotto-collection – In analogia al file system: Collection Directory Entry File • Query flessibili – Usi di un linguaggio stile SQL – Possibilità di fare ‘join’ tra tabelle – Esempio: selectattr /gLibrary:FileName \ /gLibrary:Author \ ‘/gLibrary:FILE=/gLAudio:FILE \ and \ like(/gLibrary:FileName,“%.mp3")‘ Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 AMGA Sicurezza • Permessi stile UNIX (rwx) VOM S • ACLs – per-collection o per-entry. Authenticate with X509 Cert VOMS-Cert with Group & Role information Resource management • Connessioni sicure – SSL VOMS-Cert Orac A AMG • Autenticazione del client basata su – Username/password – Certificato X509 generale – Certificato Grid-proxy • Controllo d’accesso via Virtual Organization Management System (VOMS) Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 le AMGA Implementazione • C++ multiprocess server – Gira su qualsiasi ambiente Linux Metadata Server • Database ‘backend’ Oracle – Oracle, MySQL, PostgreSQL, SQLite Client SOAP MD Server • Due ‘frontends’ Client Postgre SQL MySQL TCP Streaming – TCP Streaming SQLite Alte prestazioni Client API per: C++, Java, Python, Perl, Ruby – SOAP Interoperability Python Interpreter • Implementato anche come ‘standalone’ Python library Client Metadata Python API – Dati memorizzati su filesystem filesystem Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Metadata Replica 1/2 • Motivazione – – – – – Scalabilità – Supporto a centinaia/migliaia di utenze concorrenti Distribuzione georgafica – Per nascondere i tempi di latenza della rete Affidabilità – Non c’e’ un punto unico di fallimento Replica indipendente dal DB – Permette di avere eterogeneità dei DB Disconnessione – Accesso Off-line ai metadati (laptops) • Architettura – Asynchronous replication – Master-slave – Scritture abilitate solo sulla copia master – Replica a livello di applicazione Replica fatta attraverso l’uso di comandi del client, independenza SQL → DB – Replica parziale – Supporto alle repliche solo su sotto-alberi della gerarchia sui metadati Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Metadata Replica 2/2 Full replication Federation Partial replication Proxy Redirected Commands Metadata Commands Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Primi utilizzatori di AMGA • LHCb-bookkeeping (conserva informazioni aggiuntive sui job eseguiti) – Migrazione dall’originale bookkeeping metadata al prototipo ARDA 20M entries, 15 GB Large amount of static metadata – Feedback importanti nel migliorere l’interfaccia e per fissare difetti – AMGA ha dimostrato buone qualità di scalabilità • Ganga – Job management system Sviluppato congiuntamente ad Atlas e LHCb – Uso di AMGA per memorizzare informazioni sullo stato dei job Pochi elementi con metadati molto dinamici Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Biomed • Medical Data Manager – MDM – Memorizza ed accede a immagini mediche con associati metadati su Grid – Costruito sul data management system di gLite 1.5 – Presentatato all’ultima conferenza EGEE (October 05, Pisa) • Requisiti di sicurezza molto restrittivi – I dati dei pazienti sono sensibili – I dati devono essere criptati – L’accesso ai metadati deve essere concesso solo agli utenti abilitati • AMGA usato come metadata server – Ha dimostrato la capacità di avere accesso a dati criptati in maniera autenticata – Usato come database semplificato • Più dettagli su: – https://uimon.cern.ch/twiki/bin/view/EGEE/DMEncryptedSto rage Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Accesso ad AMGA • TCP Streaming Front-end – mdcli & mdclient, C++ API (md_cli.h, MD_Client.h) – Java Client API e command line mdjavaclient.sh & mdjavacli.sh (anche in ambiente Windows) – Python Client API • SOAP Frontend (WSDL) – C++ gSOAP – AXIS (Java) – ZSI (Python) Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Conclusioni • AMGA – Metadata Service of gLite – Parte di gLite (ma non ancora certificed in gLite 3.0. Farà parte integrante dal rilascio 3.1) – Strumento utile per facilitare l’accesso ai database – Fortemente integrato con l’ambiente Grid (Security) • Funzionalità di Replication/Federation • I test hanno dimostrato buone doti di Scalabilità e performance • Già installato presso diverse applicazioni Grid – LHCb, ATLAS, Biomed, … • AMGA Web Site – http://project-arda-dev.web.cern.ch/project-arda-dev/metadata/ Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 GILDA Casi d’uso • gLibrary • AMGA for geospatial metadata: GIS (Geographical Information System) • gMOD Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gLibrary Motivazioni • Grandi quantità di dato possono essere memorizzate sugli SE (è possibile dimenticarci di interagire direttamente con le DataGrid?) • Ma come possiamo trovare un file facilmente di cui abbiamo di bisogno? – Avendo buona memoria basterebbe ricordare il GUID – I catalogi sui File ci permettono solo di organizzare i dati in cartelle e sottocartelle, ma non c’e’ modo di eseguire delle ‘query’ sul loro contenuto – I cataloghi metadata sono una soluzione possibile ma non sempre Catalogues are a possible solution, but not always accessibile specialmente per utenti poco esperti (strumento potente ma di uso complesso) • La soluzione in Gilda: Un’applicazione di alto livello costruita utilizzando i servizi gLite: Ovvero: Un catalogo metadati + Un catalogo file + Storage Elements gLibrary • Requisiti: facilità d’uso, veloce, sicuro, estensibile Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gLibrary obiettivi • Si vuole creare un Sistema di genstione multimediale su Grid – Esempi di contenuti multimediali gestiti da gLibrary: Immagini Animazioni File audio Documenti Office (Powerpoint, Word, Excel, OpenOffice) E-Mails, PDFs, HTMLs Altri contenuti di documenti conosciuti (ex. EGEE PPTs) …. • Tiene traccia e organizza in maniera uniforme I dettagli (metadata) dei file memorizzati sugli Storage Element e li registra nei cataloghi File • Offre agli utenti un modo facile e veloce per recuperare i file a partire dall’informazione in essi contenuta Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Usage scenarios • Esempi (Office/Entertainment): – Trocare tutte le presentazioni (PPTType) PowerPoint (Type) su FireMan (Keywords) tenute l’anno 2005 (Date) dal tutor M.Rossi (Speaker); – Trovare tutte le animazioni (Type) in nelle quali Giulia Roberts (Cast) ha recitato insieme a Hugh Grant (Cast) un film prodotto negli USA (Country) nel 2004 (ReleaseDate) – Trovare un brano musicale audio files (Type) acustico (Genre) in formato mp3 (Format) di Alanis Morissette (Singer) la cui durata superi i 3 minuti (Runtime). • Example 2 (Biomed): – Un dottore cerca una serie di radiografie del cervello (keyword) DICOM (Type) di un uomo (Gender) tra i pazienti più grandi di 65 anni (Age) • Example 3 (Complex activities): – Un job che scandisce il contenuto degli storage elements ed estrae informazione metadata a partire dal contenuto stesso dei file. Questa informazione può essere pubblicata su gLibrary per interrogazioni future Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gLibrary implementatione prototipale • I file sono salvati sugli SE e registrati sui cataloghi file(LFC and/or FiReMan) • Il catalogo metadati AMGA è utilizzato per archiviare e organizzare I metadati associati adi file e per rispondere alle interrogazioni degli utenti • gLibrary è costruitoa partire dalle seguente collezioni AMGA: – /gLibrary informazione metadata generica per ciascun elemento – /gLAudio, /gLImage, /gLVideo, /gLPPT, /EGEEPPT, /gLDoc, … sono esempi di possivili collezioni che specificano funzionalità addizionali (saranno descritte in dettaglio piu avanti) – /gLTypes Contiene l’associazione tra tipologia di documento ed il nome della collezione corrispondente contenente le funzionalità addizionali. Utilizzato da gLibrary per definire nuove tipologie di documento (estensibilità) – /gLKeys Utilizzato per memorizzare la descrizione delle chiavi Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Example of entries Collection /gLibrary Attributes Entry Names FileName PathName Type Submitter 4ffaffc8-26e7-4826-b4603d5bf08081a4 DedicatoAte.mp3 /grid/gilda/calanducci Audio Tony Calanducci 00454dca-a269-4b93-8a45c4012af05600 ardizzonelarocca_is_231005.ppt.gpg /grid/gilda/calanducci/ EGEE EGEEDOC Tony Calanducci /gLibrary (continuum) Attributes SubmissionDate Encryption Description Keywords CreationDate ... 2006-01-05 00:00:00 false Canzone delle vibrazioni che ha ricevuto un enorme successo tra i teenagers nel 2003 Vibrazioni 2004-02-05 00:00:00 2005-01-05 16:44:22 true gLite Information System R-GMA, RGMA, BDII, IS 2005-10-05 23:40 Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 ... Example of gLibrary collections Collection Entry names /gLTypes /gLAudio Image /gLImage Video /gLVideo Documents /gLDOC PowerPoint /gLPPT EGEEDOC /EGEEPPT Entry names 00454dca-a2694b93-8a45c4012af05600 Collection Entry names 4ffaffc8-26e7-4826b460-3d5bf08081a4 /gLKeys Attributes Path (refers to a collection) Audio Collection Collection Attributes Entry names Passphrase 00454dca-a269-4b93-8a45c4012af05600 ardizzo “additional features” /EGEEPPT Attributes Title Runtime Author Type Date Event Speaker Topic Information Systems 00:30:00 Valeria Ardizzione, Giuseppe La Rocca Theorical 2005-10-23 4th EGEE Conferen ce Giuseppe La Rocca, Valeria Ardizzone R-GMA, BDII /gLAudio Attributes SongTitle Duration Album Genre Singer Format Dedicato A Te 00:03:27 Dedicato A Te Pop Le Vibrazioni MP3 Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gLibrary Sicurezza • Requisiti utente: – Un grid proxy valido con estensioni VOMS – Ruoli e gruppi VOMS sono riconosciuti da gLibrary per adattare la tipologia di utenza dinamicamente. • 3 Tipologie di utenza: – gLibraryManager: Puo’ creare nuovi ‘content type’ e permete ad un utente generico della VO di diventare un gLibrarySubmitter – gLibrarySubmitters: possono aggiungere nuovi elementi e definire per essi i permessi di accesso Permessi per: lettura, scrittura, elencazione, decriptazione) a livello di singolo elemento o interi membri di una VO o gruppi all’interno di una VO – generic VO users: Permesso di navigare ed eseguire interrogazioni sugli elementi (sugli elementi ai quali si ha accesso) • Livello di crittografia base: – I nuovi file possono essere salvati sugli SE ed essreer criptati con un algoritomo a chiave simmetrica (GPG). La passphrase sara memorizzate in /gLKeys. Solo gli utenti selezionato avranno accessp alla passphrase per decriptare il contenuto del file. (Solo gli utenti che hanno un DN specifico nel ‘subject’ del loro proxy VOMS) Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 AMGA per GIS Datatype Metadata • AMGA Datatypes – Utilizzando i tipi di dato descritti sopra si è sicuri che i metadati inseriti possono essere facilmente ‘portati’ su tutti i tipi di database supportati da AMGA – Se non si tiene alla portabilità del DB, è possibile (in principio) specificando come tipologia di attributo un datatype caratteristico di un particolare database, (perfino I piu’ esoterici tipo: PostgreSQL Network Address o Geometric) • In GILDA si è fatto qualche tentativo con il tipo: GIS Datatype offerto da MySQL 5 Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Example with ESR data Nella collezione /ESR/opera_nno si chiede ad AMGA di utilizzare il table engine MyISAM Query> listattr /ESR/opera_nno >> Dataset >> varchar(30) >> File_Name >> varchar(50) >> Footprint >> multipolygon >> Lat >> numeric(8,2) >> Level >> varchar(5) >> Lon >> numeric(8,2) >> Orbit >> int(5) >> Proc_centre >> varchar(50) >> Proc_date >> timestamp >> Start_Date >> timestamp >> Stop_Date >> timestamp ... Si è utilizzato il comando insert che valuta tutti gli elementi da inserire: insert sameEntryName Dataset "GOME" Level 2 Version "v1.1" Orbit 25421 File_Name "/grid/esr/gome/utv/2000/03/00301000.utv" Start_Date '"2000-02-29 00:01:00.0"' Stop_Date '"2000-02-29 00:58:00.0"' Footprint 'MPolyFromText("MULTIPOLYGON(((82.96 -59.12,75.95 -89.07,75.95 -89.07,76.46 94.77,76.84 -100.85,77.07 -107.21,77.13 -115.34,77.00 -121.80,76.72 -… … 150.74,85.47 -136.17,85.80 -117.93,85.57 -94.31,84.94 -78.84,84.03 67.39,82.96 -59.12)))")' Proc_centre "EGEE" Proc_date '"2005-10-14 13:20:00.0"' File_input "00301000.lv1" Proc_description '"Algorithm: utv"' Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Query di esempio Si controlli se l’elemento e’ correttamente inserito (si usi AsText() per decodificare il MultiPolygon): Query> selectattr /ESR/opera_nno:File_Name AsText(/ESR/opera_nno:Footprint) '' >> /grid/esr/gome/utv/2000/03/00301000.utv >> MULTIPOLYGON(((82.96 -59.12,75.95 -89.07,75.95 -89.07,76.46 -94.77,76.84 100.85,77.07 -107.21,77.13 -115.34,77 -121.8,76.72 -128.08,76.3 -134.03,75.74 139.59,75.07… Si voglia cercare un elemento che contiene nel poligono un particolare punto:We want to look for a Polygon that cointains a given point: Query> selectattr /ESR/opera_nno:File_Name /ESR/opera_nno:Start_Date /ESR/opera_nno:Stop_Date 'Contains(/ESR/opera_nno:Footprint, GeomFromText("POINT(82.96 -59.12)"))' >> /grid/esr/gome/utv/2000/03/00301000.utv >> 2000-02-29 00:01:00 >> 2000-02-29 00:58:00 • Riepilogando le seguenti funzioni non danno problemi: GeomFromText(), MPolyFromText(), Contains(), AsText() • In principio PostgreSQL+PostGIS funzionarebbe ma questo non e’ stato ancora ampiamente testato Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gMOD: grid Movie On Demand • gMOD offre un servizio di Video-On-Demand • L’utente sceglie tra una lista di video potendo fare lo ‘streaming’ del video selezionato • Per ogni video è disponibile una vasta serie di dettagli: Title, Runtime, Country, Release Date, Genre, Director, Case, Plot Outline. Grazie all’informazione associata l’utente può cercare una particolare animazione interrogando su uno o piu’ attributi • Due tipologie di utenza possono interagire con gMOD: TrailersManagers Che puo’ amministrare il database di animazioni (fare l’upload di nuovi elementi e definire per essi i metadati); GILDA VO users (guest) possono navigare, cercare e scegliere un’animazione da visualizzare. Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gMOD under the hood • Sviluppato utilizzando i servizi gLite + il portale GENIUS: • Storage Element, situati in posti diversi, contengono fisicamente le animazioni • FireMan, il catalogo file, tiene traccia in quale Storage Element è loccalizzata una particolare animazione • AMGA contiene le informazioni addizionali con i dettagli di ogni animazione, è inoltre possibile fare interrogazioni per il recuper di una o più animazioni • Il Virtual Organization Membership Service (VOMS) è utilizzato per assegnare i permessi ed I ruoli alle diverse tipologie di utenze • The Workload Management System (WMS) è responsabile di recuperare l’animazione dal corretto SE ed eseguire lo streaming sul desktop dell’utente attraverso la rete Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gMOD interazioni Metadata Catalogue VOMS Genius Portal get Role AMGA Storage Elements FireMan Catalogue User Workload Management System CE Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 gMOD screenshot gMOD [ accessibile attraverso il portale Genius: https://glite-tutor.ct.infn.it Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006 Catania, Tutorial TriGrid su gLite 3.0 , 27-28.07.2006