High Level Architecture
Gabriele D'Angelo
http://gda.jpolis.com/
Simulazione distribuita
Cosè HLA
HLA = approccio pratico e generalista alla simulazione distribuita
NON è rivolto a singole esigenze di simulazione ma vuole fare da base generica
Cè bisogno di un collante che nasconda allimplementatore della simulazione alcuni dei problemi del lavorare in ambiente distribuito
Middleware simulativo, collante per simulazioni
Cenni storici
I militari hanno sempre fatto uso massiccio di simulazioni (fosse anche solo per i calcoli balistici)
Tagli di bilancio (fine guerra fredda) = sempre più simulazioni ma allo stesso tempo riutilizzo delle simulazioni
Esplosione di Internet = possibilità di collegare simulazioni distanti tra di loro in ununica entità
Invece che creare una tecnologia proprietaria hanno avuto il buon senso di lavorare a qualcosa di aperto e ora di standard (IEEE)
Sviluppo = collaborazione tra settore statale + enti di ricerca + privati
Descrizione tecnica
(1/4)
Le singole simulazioni ora si chiamano federati
Comè intuibile un insieme di federati = una simulazione, ma non basta servono anche un software che faccia da "collante" lRTI e un insieme di regole per definire esattamente le interazioni tra le componenti (FOM)
Siamo di fronte ad una simulazione per componenti dove componente = federato
Descrizione tecnica
(2/4)
Vediamo una federazione implementata su un singolo host
Descrizione tecnica
(3/4)
Invece ora il caso di una federazione distribuita su vari host allinterno di una LAN
Grazie a questo middleware simulativo il fatto che si lavori su un solo host o su una LAN o al limite su Internet è diventato trasparente ai realizzatori della simulazione
(e un buon motivo di disperazione per chi deve implementare lRTI)
Descrizione tecnica
(4/4)
Nel dettaglio linterazione tra federato e RTI avviene per mezzo di interfacce standardizzate anchesse e implementate sotto forma di particolari oggetti
HLA: standard IEEE 1516
Nella realtà lo standard si occupa di
- Un serie di regole;
- Un modello per descrivere le interazioni tra oggetti
- Una serie di specifiche per le interfacce tra federati e RTI
- Lo standard NON si occupa di implementazioni, cè la massima libertà (implementativa e algoritmica) sono definiti solo comportamenti a cui sottostare
Vantaggi
- Si possono "fare a pezzi" simulazioni talmente complesse da essere ingestibili
- Allo stesso modo si può lavorare di ricomposizione
- Il riutilizzo è estremamente facilitato, anche nellottica di espansione dellesistente, il nuovo rimane comunque compatibile con il vecchio
- Vi è un forte isolamento tra simulazione e tecnologia a supporto di essa
- E possibile gestire compiutamente la Proprietà Intellettuale, non cè bisogno di fornire le specifiche di implementazione di un componente ma solo di indicare le interazioni (in qualche modo le API), eventualmente può essere permesso luso da remoto, rimaniamo in suo possesso
Comunicazione
Come comunicano fra di loro i federati? O attraverso oggetti oppure attraverso interazioni.
I primi hanno senso per comunicazione ripetute, i secondi per eventi occasionali e da non ripetere in modo costante nel tempo.
In entrambi i casi il metodo è di publishing / subscribing
La presentazione delle informazioni è gerarchica
Servizi
In pratica, cosa viene fornito dallRTI ai singoli federati?
- Un insieme di API (Application Programming Interfaces) dai compiti più diversi
- Molto importante il time-management
Time-management
- Una simulazione distribuita senza coordinamento temporale non ha molto senso, il time-management si occupa proprio di questo.
- Nellottica di supporto a svariati tipi di simulazione HLA permette varie gestioni:
- Nessuna gestione
- Approccio ottimistico
- Approccio pessimistico
- Activity scan
Time management e federati
A sua volta ogni federato può avere un approccio diverso con time-mangement
- Time-regulating
- Time-constrained
- Abbiamo quindi 4 combinazioni
Runtime Infrastructure (RTI)
- Esistono varie implementazioni, quelle di rilievo sono 2.
- Dipartimento della difesa USA: DMSO RTI
- Relativamente facile da avere a disposizione
- Pitch: implementazione commerciale interamente realizzata in Java
- Ci sono alcune implementazioni "accademiche", soprattutto a scopo di studio
Framework adattivo GAIA
La mia tesi: il federato è lunità minima di simulazione? Secondo la mia visione NO.
Thread come unità minima: unità che può migrare tra un federato e laltro
Adattività della migrazione
Obiettivo? Aumentare lo speed-up della simulazione
Implementazione basata su HLA, Java e Linux
Per maggiori informazioni puoi visitare:
http://gda.jpolis.com/