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