QAGESA

QoS Aware Grid Enabled Streaming Architecture

Cos’è QAGESA?

QAGESA (QoS Aware Grid Enabled Streaming Architecture) è un’architettura software per la distribuzione di contenuti multimediali in ambienti Grid Computing, con garanzie di Quality of Service (QoS). Rappresenta il contributo centrale della tesi di dottorato di Giovanni Novelli (Università di Catania, 2008).

Il sistema affronta il problema della distribuzione video verso dispositivi eterogenei (PC, smartphone, terminali embedded) su una rete dove larghezza di banda e potenza di calcolo variano dinamicamente. QAGESA utilizza un Sistema Multi-Agente (MAS) per orchestrare risorse distribuite e adattare i contenuti in tempo reale.

Problematiche Affrontate

  1. EterogeneitĂ  dei dispositivi: I client hanno capacitĂ  diverse (risoluzione, codec supportati, banda disponibile)
  2. DinamicitĂ  delle risorse: Le risorse Grid cambiano nel tempo (carico CPU, congestione di rete, disponibilitĂ )
  3. Garanzie QoS: NecessitĂ  di rispettare vincoli di qualitĂ  (latenza, jitter, throughput) durante lo streaming
  4. ScalabilitĂ : Gestire grandi volumi di richieste concorrenti senza degrado delle prestazioni

Architettura

QAGESA si basa su GAP (Grid Agents Platform) come middleware per la gestione degli agenti e utilizza GridSim per la simulazione. L’architettura è composta da servizi cooperanti che operano su tre livelli:

Livello di Coordinazione (TraS)

Il Transcoder Selector (TraS) è il punto di ingresso per le richieste utente. Orchestra la selezione delle risorse interrogando tutti i servizi di monitoraggio e applicando un’euristica di prossimità per trovare la coppia ottimale (Computing Element, Storage Element).

Livello di Monitoraggio

Livello di Esecuzione

Architettura a Servizi

Vista d'insieme dell'architettura QAGESA: il Transcoder Selector (TraS) orchestra la selezione risorse consultando i servizi di monitoraggio (CoT, CET, SET, THub, TraM). I nodi Grid espongono servizi locali (CEM, NM, GM). L'agente di transcodifica implementa behaviour JADE per fetching, transcoding, streaming e QoS.

classDiagram direction TB class TraS { +gestioneRichiesteUtente() +selezioneRisorse(CE, SE) +euristicaProssimita() } note for TraS "Transcoder Selector" class CoT { +trovaRepliche(contenuto) +gestioneReplicazione() } note for CoT "Content Tracer" class THub { +monitoraggioLatenze() +getDistanzeRete() } note for THub "Transcoder Hub" class CET { +monitoraggioCaricoCE() +getInfoHardware() } note for CET "Computing Element Tracer" class SET { +monitoraggioCaricoSE() } note for SET "Storage Element Tracer" class TraM { +tracciaAgentiAttivi() +repositoryAlgoritmi() } note for TraM "Transcoder Monitor" class GridNodeServices note for GridNodeServices "Interface" class CEM { +notificaCarico() } note for CEM "CE Monitor" class NM { +pingAttivo() +misuraLatenza() } note for NM "Network Monitor" class GM { +sottomissioneJob() +trasferimentoDati() } note for GM "Grid Mediator" class TranscodingAgent { +FetchingBehaviour +TranscodingBehaviour +StreamingBehaviour +QoSBehaviour +CachingBehaviour } note for TranscodingAgent "JADE Agent" class Utente { +richiediContenuto() +riceviStream() } Utente --> TraS : PLAY Request TraS --> CoT : Cerca Contenuto TraS --> CET : Verifica CE TraS --> SET : Verifica SE TraS --> THub : Richiede Latenze TraS --> TraM : Cerca Agenti TraS ..> GM : Avvia Agente CET <-- CEM : Dati Carico THub <-- NM : Ping/Latenze GridNodeServices <|.. CEM GridNodeServices <|.. NM GridNodeServices <|.. GM TranscodingAgent --> GM : I/O Grid TranscodingAgent --> THub : Metriche Rete

Processo di Selezione delle Risorse

Quando un utente richiede un contenuto multimediale, TraS avvia una fase di raccolta informazioni parallela, interrogando simultaneamente tutti i servizi di monitoraggio. I dati raccolti alimentano un’euristica che minimizza la funzione:

min[ Lat(SE, CE) + Lat(CE, Utente) + Carico(CE) ]

dove Lat rappresenta la latenza di rete e Carico il carico computazionale del nodo.

Selezione delle Risorse (Sequence Diagram)

TraS orchestra interrogazioni parallele ai servizi di monitoraggio per raccogliere informazioni su repliche, carico CE/SE, latenze rete e agenti disponibili. Applica euristica di prossimitĂ  per selezionare la coppia ottimale (CE, SE). In caso di risorse insufficienti, applica rilassamento QoS.

sequenceDiagram autonumber participant U as Utente participant TraS as TraS participant CoT as CoT participant CET as CET participant SET as SET participant THub as THub participant TraM as TraM Note over U, TraS: Richiesta Utente U->>TraS: PLAY (Contenuto, QoS Minima) activate TraS par Raccolta Informazioni Parallela TraS->>CoT: Ricerca Repliche CoT-->>TraS: Lista Storage Elements and TraS->>CET: Richiesta Carico CE CET-->>TraS: Lista CE + CPU Load and TraS->>SET: Richiesta Carico SE SET-->>TraS: Stato I/O SE and TraS->>THub: Richiesta Latenze THub-->>TraS: Matrice Distanze and TraS->>TraM: Agenti Disponibili TraM-->>TraS: Lista Agenti Idle end TraS->>TraS: Calcolo Euristica Prossimita alt Risorse Trovate TraS->>TraS: Seleziona (CE_best, SE_best) opt Replicazione Necessaria TraS->>CoT: Avvia Replicazione end else Risorse Insufficienti TraS->>TraS: Rilassamento QoS end TraS-->>U: Conferma / Inizio Streaming deactivate TraS

Pipeline di Transcodifica e Streaming

Una volta selezionate le risorse, il Transcoding Agent viene avviato sul Computing Element scelto ed esegue una pipeline asincrona: il fetching del chunk successivo avviene in parallelo con la transcodifica del chunk corrente, massimizzando il throughput. Un controllore fuzzy adatta dinamicamente i parametri QoS in base al feedback dell’utente.

Transcoding e Streaming (Sequence Diagram)

Ciclo di vita dell'agente di transcodifica: pipeline asincrona per ogni chunk (fetching parallelo al transcoding), streaming RTP verso utente, caching opzionale su SE vicino. Controllore fuzzy adatta parametri QoS in base a feedback ritardo/jitter.

sequenceDiagram participant U as Utente participant TraS as TraS participant TA as Transcoding Agent participant SE as Storage Element participant SE_C as SE Cache TraS->>TA: INITIATION (URI, QoS, Params) activate TA loop Per ogni Chunk Video par Fetching Asincrono TA->>SE: Richiesta Chunk n+1 SE-->>TA: Dati Chunk n+1 and Transcoding TA->>TA: Decodifica Chunk n TA->>TA: Encoding (QoS Target) end par Streaming TA->>U: RTP Stream (Chunk n) and Caching Opzionale TA->>SE_C: Salva Chunk Transcodificato end opt Adattamento QoS Dinamico U-->>TA: Feedback (Delay/Jitter) TA->>TA: Fuzzy Controller Adjustment end end TA->>TraS: Completamento + Statistiche TraS->>TA: TERMINATION deactivate TA

Simulazione

Il progetto include un simulatore basato su GridSim che permette di valutare diversi scenari:

Il simulatore è parte del repository GAP su GitHub.

Relazione con i Paper

QAGESA è il filo conduttore di diverse pubblicazioni scientifiche, ciascuna focalizzata su un aspetto specifico dell’architettura:

  1. A Grid-Based Infrastructure to Support Multimedia Content Distribution (HPDC-16, 2007) Il paper principale che descrive l’infrastruttura Grid sottostante, la replicazione dei contenuti e la selezione ottimale dei nodi.

  2. A QoS-Aware Architecture for Multimedia Content Provisioning in a GRID Environment (WOA 2006) Focalizzato sull’architettura QoS-aware con i ruoli di ClientProxy e ServerProxy.

  3. Transcoding Agents for Multimedia Content Delivery in a Grid (ITSSA, 2006) Approfondimento sugli agenti mobili di transcodifica e la loro migrazione nella Grid.

Progetti Correlati

GAP - Grid Agents Platform

Piattaforma di simulazione Java che implementa QAGESA. Estende GridSim con agenti mobili FIPA-like, risorse distribuite e meccanismi QoS-aware.

GitHub Repository Documentazione

Rilevanza Attuale

Sebbene sviluppata nel contesto del Grid Computing (2005-2008), l’architettura QAGESA ha anticipato concetti oggi fondamentali:


Torna alla Home