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.
 


 [Progetto MOSAICO a Parma]