Sintesi Argomenti:
Workflow:
Come si sviluppa un flusso di lavoro
Data Store:
L’importanza degli standard
Tecnologie Web:
Web Application e Web Service
Architetture Computazionali:
HPC, Cloud e Grid Computing
Un esempio:
Il progetto DAME
Cos’è un Workflow?
Un workflow (o flusso di lavoro) è:
Un workflow in ambito astrofisico è spesso denominato pipeline
Come si descrive
Un workflow può essere descritto utilizzando dei diagrammi che mostrano il flusso dei dati tra varie le fasi di trasformazione.
I componenti base che costituiscono un workflow sono:
La descrizione di un componente è composta principalmente dagli ingressi e dalle uscite che vengono descritti in termini di tipi di dati e loro significato (semantica).
Gli algoritmi (descrizione delle regole) devono essere inclusi solo quando ci sono diversi modi per trasformare un tipo di input in un tipo di output.
Come si compone un Workflow?
I processi possono essere collegati tra loro a patto che l’uscita del precedente sia compatibile con l’ingresso del successivo (Interfaccia Input/Output tra processi).
È importante quindi definire per i dati, sia di ingresso che di uscita, delle regole univoche e non ambigue che li definiscano (Standard). Ciò ci permette di scegliere un componente indipendente dal “0” svolga il suo compito ed interessandoci solo di “cosa” deve fare.
Cos’è uno Standard
… standards could be described in general as being definitions and specifications, for products and processes, approved by a recognized standardization body for repeated or continuous application, with which compliance is not compulsory. They are certainly a set of rules for ensuring quality.
Nel contesto dello scambio di informazioni, è la definizione una serie di norme per lo scambio di dati per specifici processi utilizzando specifiche sintassi.
Queste norme spesso vengono sviluppate da organizzazioni, come ETSI W3C o IVOA, che ne diramano le specifiche e ne controllano il rispetto.
Perché si usano gli Standard?
Chiediamoci piuttosto cosa accadrebbe se non lo facessimo?
Se non si usasse uno standard i componenti:
Gli obiettivi della standardizzazione di un componente sono quelli di aiutare, grazie all’indipendenza dei singoli fornitori (chiunque può sviluppare una funzionalità rispettando lo standard) la compatibilità, l’interoperabilità, la ripetibilità e la qualità.
Metamodellazione Metadato
La Metamodellazione è l’analisi, la costruzione e lo sviluppo di regole, vincoli, modelli e teorie utili per la modellazione di una classe di problemi.
Un metadato, dal greco meta-”oltre, dopo” e dal latino datum “informazione” – plurale: data), letteralmente “dato su un (altro) dato”, è l’informazione che descrive un insieme di dati.
La parola meta indica uno step verso l’alto nel livello d’astrazione.
MOF Meta Levels. Fonte: Metadaten
Lo standard XML
XML è un formato testuale utilizzato per la rappresentazione di strutture di dati arbitrarie.
Esistono diverse categorie di API per accedere a dati XML:
Esempi di formati di dati
I formati standard nell’astrofisica sono:
Database Distribuito
In un Database distribuito i dati non si trovano su un unico PC ma sono divisi su più macchine collegate in rete. Possiamo avere DB distribuiti omogenei, che usano un solo DBMS oppure eterogenei, dove i dati memorizzati sono gestiti da DBMS diversi (es. MySQL e ORACLE ).
Vantaggi
Protezione – se ci fosse un evento catastrofico, non tutti i dati andrebbero persi.
Miglioramento delle prestazioni – gestendo il carico dei dati e delle richieste tra i server.
Modularità – possiamo modificare i moduli dal database senza influenzare gli altri.
Affidabilità – Grazie alla ridondanza dei dati.
Svantaggi
Complessità – lavoro supplementare per garantire la trasparenza e per la progettazione del DB.
Economicità – maggiore complessità ed una infrastruttura più ampia da gestire.
Integrità – applicare l’integrità della rete può richiedere troppe risorse per essere fattibile.
Standardizzazione – mancano strumenti per convertire un DBMS centralizzato in uno distribuito.
Nuove problematiche – si devono considerare la frammentazione dei dati, l’assegnazione di frammenti a siti specifici e la ridondanza dei dati.
Le Tecnologie Web
La necessità di avere sempre maggior spazio per lo storage, ormai dell’ordine dei PetaByte, ed il bisogno di maggiore potenza di calcolo, hanno portato al fenomeno della delocalizzazione, dove i dati e il software non risiedono sul nostro pc, ma sono fruibili via web.
Il vantaggio di queste tecnologie sta nella modularità e nella quantità di soluzioni disponibili. Tutto ciò porta ad un risparmio economico non indifferente visto che non esistono investimenti iniziali e i costi si riducono a quelli di utilizzo (on-demand cloud computing di SUN che costa 1$ per CPU-hour).
Web2.0 Chi non usa almeno uno dei servizi sopra riportati? Fonte: Flickr
Una Webapp è una qualsiasi applicazione che sia accessibile via web tramite un browser.
Le Applicazioni Web usano una combinazione di script lato server per l’elaborazione, l’archiviazione e il recupero delle informazioni e script lato client per la visualizzazione delle informazioni e lo sviluppo dell’interfaccia grafica dell’applicazione .
Vantaggi
Sono facilmente raggiungibili, basta un collegamento ad internet.
Non necessitano di installazione, usano un comunissimo browser come interfaccia.
Sono cross-platform, non importa che sistema operativo usiamo (es. Linux o Mac OS)
Java Web Application Request Handling. Fonte: Java Sun
Esempi di Web Application
Le applicazioni web-based oggi concorrono ad implementare, in tutto o in parte, quelle soluzioni software che fino a poco tempo fa erano esclusiva dei sistemi desktop.
Si va dall’elaborazione di testi al fotoritocco, dal video editing al calcolo scientifico.
Esempi delle più comuni webapp:
Definizione di Web Service del W3C:
Web Service
…un sistema software progettato per supportare l’interazione macchina-macchina in una rete. È dotato di un’interfaccia descritta in un formato processabile (WSDL). Altri sistemi interagiscono con il web service tramite messaggi SOAP, trasmessi utilizzando il protocollo HTTP e un XML in collaborazione con altri web-standard connessi.
Spesso sono semplicemente delle Internet Application Programming Interfaces (API) che possono essere lette in una rete, ed eseguite su un sistema remoto che ospita i servizi richiesti.
Un Web Service deve avere un design più organizzato di una webapp, perché non ci sarà necessariamente un essere umano dall’altro capo che può inerpretare attraverso dei tentativi gli errori.
Il processo di "Engaging" di un servizio Web. Fonte: W3C
Web Service
Vantaggi
Svantaggi
Fonte: Wikipedia
La comunicazione tra componenti
HTTP (HyperText Transfer Protocol), è un protocollo usato come principale sistema per la trasmissione di informazioni sul web.
SOAP (Simple Object Access Protocol), è un protocollo per lo scambio di messaggi tra componenti software, tipicamente nella forma di componentistica software. La parola Object manifesta che l’uso del protocollo è da effettuarsi secondo il paradigma OOP
RPC (Remote Procedure Call), consente ad un programma di eseguire a distanza una subroutine su computer remoti. Risulta particolarmente adatto per il calcolo distribuito basato sul modello client-server; la chiamata a procedura corrisponde alla richiesta inviata dal client, e il valore restituito della procedura alla risposta inviata dal server.
REST (Representational state transfer), è una architettura software che deve: implementare il paradigma Client-Server, essere Stateless, Cacheable (riduce l’interazione client-server), garantire l’uniformità delle interfacce (rende indipendente lo sviluppo delle parti) e fare in modo che ci sia una comunicazione a più livelli tra client e server.
Fonte: Wikipedia
A servlet is a Java class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers. For such applications, Java Servlet technology defines HTTP-specific servlet classes;
da Java
Il compito di una servlet è quello di ricevere e rispondere alle richieste provenienti dai client Web, di solito attraverso l’HTTP. Generalmente sono usate per creare pagine web dinamicamente a seconda dei parametri della richiesta spedita dal client.
Applet-servlet architecture. Fonte: cs.unc
Introduzione alle Architetture
Con il passare degli anni la complessità dei problemi da risolvere e delle simulazioni scientifiche sono aumentate di pari passo con la potenza di calcolo a disposizione. Questa rincorsa ha portato alla necessità di una gestione delle risorse hardware più intelligente ed ha visto nascere nuove architetture per il calcolo ad alte prestazioni.
Le principali architetture sono:
HPC
Il termine è utilizzato nel campo del calcolo scientifico e si riferisce, in generale, a tutte quelle tecnologie utilizzate per creare dei sistemi di elaborazione in grado di fornire prestazioni molto elevate dell’ordine dei teraflops.
Un classico esempio di HPC sono i Cluster.
Un cluster Beowulf ad esempio è un’architettura multi-computer per il calcolo parallelo.
È generalmente costituito da vari nodi client controllati da un nodo server e connessi tra loro via ethernet. Spesso venivano assemblati usando PC identici ma poco potenti per creare una potenza di calcolo maggiore.
Beowulf in Astrofisica fu introdotta per ridurre in parallelo immagini osservate da mosaic CCD (ogni CCD ha un PC dedicato)
HPC
Negli ultimi anni si è visto l’enorme sviluppo di sistemi HPC tramite GPU Computing.
Questo termine indica l’utilizzo di una GPU per l’esecuzione generale dei calcoli scientifici e tecnici. Normalmente si utilizzano una CPU e una GPU insieme per ottenere un modello di elaborazione eterogeneo. La parte sequenziale dell’applicazione viene eseguita sulla CPU, mentre la parte a maggiore densità di calcolo viene eseguita sulla GPU. Grazie al grande numero di core all’interno di una GPU e dato che sono costituiti da una architettura parallela di processori vettoriali l’esecuzione delle applicazioni parallele risulta più rapida.
Fonte: NVIDIA
È il paradigma nel quale i dettagli sono astratti e gli utenti non hanno bisogno di una conoscenza o una competenza dell’infrastruttura sottostante. Esso prevede tre attori distinti: fornitore di servizi, cliente amministratore e cliente finale.
Fonte: NVIDIA
Una caratteristica del Cloud Computing è di rendere disponibili le risorse come se fossero implementate da sistemi “standard”. L’implementazione effettiva delle risorse non è definita in modo dettagliato poichè l’architettura è Service Oriented.
L’idea è che l’implementazione sia un insieme eterogeneo di risorse, le cui caratteristiche non siano note all’utilizzatore.
Il termine cloud computing si differenzia da grid computing, che è un paradigma per il calcolo distribuito orientato alle risorse (Resource Oriented), poichè quest’ultimo richiede che le applicazioni siano progettate in modo specifico.
Fonte: Wikipedia
Il termine “the Grid” fu coniato per indicare una nuova infrastruttura di calcolo distribuito, ideata per supportare le esigenze delle Scienze computazionali ed ingegneristiche.
L’obiettivo del grid computing è di ridurre il tempo di esecuzione di problemi che computazionalmente richiederebbero mesi di calcolo nell’ordine dei giorni o delle ore.
Una delle caratteristiche principali è quella di dividere l’applicazione lanciata in un elevato numero di job e distribuirli sui vari nodi della griglia.
I nodi di una griglia, a differenza del clustering classico, tendono ad essere omogenei e geograficamente vicini.
Fonte: Voneural
Il Grid Computing si propone l’obiettivo di condividere un grande numero di risorse di calcolo e di storage, distribuite su larga scala, appartenenti a differenti domini amministrativi e caratterizzate da un elevato grado di dinamicità. Per far fronte all’amministrazione di un infrastruttura così complessa, il Grid introduce nuovi importanti concetti e servizi rispetto ai sistemi distribuiti convenzionali.
Una delle novità introdotte dal Grid è il concetto di Virtual Organization che gioca un ruolo fondamentale data la natura multi-istituzionale delle grandi collaborazioni a cui si rivolge questa tecnologia.
Fonte: Unina
Il Progetto DAME
The DAME project aims at creating a single distributed e-infrastructure for data exploration, mining and visualization. It provides an integrated access to data collected by very different instruments, experiments and scientific communities in order to be able to correlate them and improve their scientific usability and interoperability.
Fonte: Voneural
Fonte: Voneural
Quale Futuro?
Riassumendo quello che abbiamo visto fin’ora possiamo dire che, anche se nessuna delle precedenti soluzioni prevarica in modo assoluto sulle altre, la tendenza per il futuro prossimo è certamente quella di un mondo in cui, i PC si somiglieranno sempre più a dei thin client e le risorse saranno quanto più delocalizzate.
Grazie alla vasta gamma di webapp e web-service già a disposizione, e con una buone dose di standardizzazione, potremmo presto sviluppare workflow complessi e dalla complessità computazionale elevata senza il bisogno di acquistare un supercomputer ma semplicemente usando un browser come interfaccia.
Ci dovremmo quindi abituare ad un mondo in cui i dati non si trovano più sulla nostra macchina e in cui la potenza di calcolo si acquista on-demand.
1. Programmazione in Matlab - parte prima
2. Programmazione in Matlab - parte seconda. Caratterizzazione del...
3. Caratterizzazione dell'atmosfera per le osservazioni - parte se...
4. Caratterizzazione dell'atmosfera per le osservazioni - parte te...
5. Caratterizzazione dell'atmosfera per le osservazioni - parte qu...
6. Principi di fotometria e spettroscopia - parte seconda
7. Principi di fotometria e spettroscopia - parte terza
8. Principi di fotometria e spettroscopia - parte quarta
9. Principi di fotometria e spettroscopia - parte quinta
10. Principi di fotometria e spettroscopia - parte sesta
11. Ottica dei telescopi - parte prima
12. Ottica dei telescopi - parte seconda
13. Principi di Ray Tracing - parte prima
14. Principi di Ray Tracing - parte seconda. Ottica Attiva e Adatti...
15. Ottica Attiva e Adattiva - parte seconda
16. Ottica Attiva e Adattiva - parte terza
17. Ottica Attiva e Adattiva - parte quarta
18. Rivelatori per l'Astrofisica - parte prima
19. Rivelatori per l'Astrofisica - parte seconda
20. Telescopi per raggi cosmici - parte prima
21. Telescopi per raggi cosmici - parte seconda. Sistemi di Control...
22. Sistemi di Controllo di Telescopi - parte seconda
23. Sistemi di Controllo di Telescopi - parte terza
24. Tecnologie di indagine scientifica in Astrofisica - parte prima
25. Tecnologie di indagine scientifica in Astrofisica - parte secon...
26. Tecnologie di indagine scientifica in Astrofisica - parte terza
27. Tecnologie di indagine scientifica in Astrofisica - parte quart...
28. Tecnologie di indagine scientifica in Astrofisica - parte quint...
29. Tecnologie di indagine scientifica in Astrofisica - parte sesta