Sottoprogetto Sistemi Reattivi
Nello sviluppo di sistemi ad alte prestazioni per applicazioni distribuite, figurano una vasta gamma di elementi critici, tipicamente caricati di funzioni di controllo, i quali sono caratterizzati dal bisogno di fornire una reazione continua a eventi discreti non esattamente predicibili nell'ordinamento e nel tempo di occorrenza.
Sistemi di questo tipo includono, fra l'altro, protocolli di sincronizzazione e comunicazione, componenti di controllo per applicazioni di telecomunicazione, sistemi di automazione industriale e robotica, componenti embedded, interfacce uomo-macchina interattive.
Per tutti questi sistemi, la correttezza non dipende solo dalla relazione
funzionale tra ingressi e uscite, ma anche dall'ordinamento nel tempo,
e, spesso, dal tempo quantitativo che intercorre fra gli eventi. Il raggiungimento
di tali condizioni di correttezza è fortemente complicato dalle inerenti
caratteristiche di parallelismo, concorrenza e distribuzione che i sistemi
reattivi devono fronteggiare. Tali difficoltà, spesso esacerbate dalla
criticità del contesto di applicazione, motivano l'uso complementare di
metodi formali e pratiche ingegneristiche capaci di
supportare lo sviluppo attraverso tutte le fasi del ciclo di vita.
L'obiettivo saliente del sottoprogetto Sistemi Reattivi è la costituzione
di un quadro metodologico e operativo che copra in maniera sistematica
l'insieme di tali metodi e pratiche, delineandone opportunità e limiti
di
applicazione rispetto ai casi concreti che caratterizzano lo sviluppo
di sistemi ad elevate prestazioni per applicazioni distribuite.
Con questo fine, il sottoprogetto mira ad aumentare il confronto e l'aggregazione
esistente tra UR già collegate nell'ambito dei precedenti progetti 40%
"Architetture convenzionali e non convenzionali per sistemi
distribuiti" e "Metodologie e strumenti di progetto per sistemi distribuiti
e paralleli".
In particolare, il sottoprogetto mira a promuovere il confronto orizzontale fra UR attive su temi paritetici e lo scambio verticale di problemi, assunzioni e soluzioni fra UR che operano su temi in relazione verticale.
Rispetto all'organizzazione tematica generale del progetto nazionale, tale obiettivo può essere decomposto nei seguenti sotto-obiettivi:
1. Supporto alla progettazione.
Saranno sviluppate e analizzate notazioni di specifica per sistemi
reattivi e metodi che ne permettono il trattamento automatico.
L'analisi sarà finalizzata ad identificare e comparare le caratteristiche
di espressività e trattabilità automatica. Rispetto alla espressività sarà
evidenziata la capacità delle diverse notazioni di catturare la relazione
funzionale tra ingressi e uscite, la loro sequenzializzazione temporale,
e i vincoli quantitativi di temporizzazione. Tali capacit?à saranno riferite
alle caratteristiche di casi di studio e categorie di problemi del contesto
di applicazioni per sistemi multimediali e di network computing. Rispetto
alla trattabilità automatica, saranno identificati comparativamente metodi
di simulazione, analisi, valutazione di prestazione, e generazione automatica
di codice supportati dalle diverse notazioni.
L'applicabilità di tali metodi verrà inquadrata rispetto alla scala
di complessità delle applicazioni per sistemi multimediali e di networkcomputing.
2. Supporto alla programmazione.
Saranno sviluppati e analizzati metodi di organizzazione del codice,
costrutti di sistema operativo, protocolli di sincronizzazione e comunicazione,
strumenti di debugging e metodi di testing, per il supporto alla programmazione
di sistemi distribuiti. L'analisi sarà finalizzata a identificare le caratteristiche
di efficienza e
trattabilit?à formale dei diversi metodi. Rispetto alla efficienza
saranno evidenziate le caratteristiche di convenienza rispetto agli obiettivi
propri della pratica industriale, quali usabilità, manutenibilità e efficienza
nelle prestazioni. Rispetto alla trattabilità formale sarà evidenziata
la capacità dei diversi metodi di
garantire il soddisfacimento di assunzioni che aprano la via a metodi
di trattamento automatico.
3. Architetture di nodo e di rete.
Saranno sviluppate e analizzate soluzioni architetturali in grado di
coniugare efficienza e prevedibilità delle prestazioni. Sarà specificamente
approfondito il modo di conseguire trade-offs convenienti attraverso lo
sviluppo di piattaforme ad elevata prestazione ottenute per assemblaggio
di componenti hardware e software
di larga scala.