Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
SimArch una architettura software per lo sviluppo di sistemi di simulazione distribuita Andrea D’Ambrogio, Università di Roma TorVergata Daniele Gianni, ESA ESTEC Giuseppe Iazeolla, Università di Roma TorVergata Alessandra Pieroni, Università di Roma TorVergata
Agenda � Ambienti di simulazione distribuita � SimArch: nostro ambiente di simulazione distribuita
� Confronto con approcci esistenti � Versioni di SimArch sviluppate
DSIMday'11 A. D'Ambrogio 2
Ambienti di simulazione distribuita
� La simulazione dei moderni sistemi complessi (e.g., SoS, ULS) richiede un insieme di risorse computazionali che potrebbero non essere disponibili su un unico host
� La simulazione distribuita fornisce uno strumento per fronteggiare la necessità di risorse computazionali
� Tuttavia, l’uso degli attuali ambienti di simulazione distribuita resta il maggior ostacolo alla diffusione di tale approccio
DSIMday'11 A. D'Ambrogio 3
Ambienti di simulazione distribuita
� Ad esempio, gli ambienti di simulazione
basati sullo standard IEEE High Level
Architecture (HLA) richiedono una notevole
expertise e un considerevole extra-‐effort per
lo sviluppo di un sistema DS (distributed
simulation) rispetto ad un equivalente
convenzionale sistema LS (local simulation)
DSIMday'11 A. D'Ambrogio 4
Ambienti di simulazione DS esistenti: HLA
� HLA fornisce un framework generalizzato per la simulazione distribuita
� L’obiettivo principale è incrementare i livelli di interoperabilità e riusabilità di componenti di simulazione
� Lo standard introduce i seguenti concetti: ◦ Federato: programma di simulazione che rappresenta il componente da riusare. ◦ Federazione: esecuzione di una simulazione distribuita composta da un insieme di federati ◦ Run Time Infrastructure (RTI): middleware simulation-‐oriented che consiste di componenti RTI Local, facenti parte di ciascun federato, ed un RTI Executive, residente su un server centrale
DSIMday'11 A. D'Ambrogio 5
Ambienti di simulazione DS esistenti: HLA
� Rispetto ai precedenti standard protocol-‐oriented (DIS, ALSP, etc.) l’approccio HLA solleva lo sviluppatore da ogni problematica riguardante la comunicazione e la sincronizzazione dei federati, ottenendo così un considerevole effort saving nel processo di sviluppo
� Nonostante tali miglioramenti, lo standard HLA soffre ancora di tre principali problemi: ◦ la complessità di utilizzo delle API ◦ l’implementazione delle API strettamente orientata alla simulazione distribuita
◦ l’assenza di protocolli di comunicazione standard tra RTI Local e RTI Executive
DSIMday'11 A. D'Ambrogio 6
SimArch: ambiente di simulazione DS
� L’ambiente SimArch ha lo scopo di superare queste difSicoltà, permettendo allo sviluppatore di ottenere: ◦ un sistema DS con lo stesso effort richiesto per lo sviluppo di un equivalente sistema LS ◦ oppure ricavare senza effort un sistema DS da un equivalente LS
DSIMday'11 A. D'Ambrogio 7
SimArch: ambiente di simulazione DS � Basato su una architettura a strati
DSIMday'11 A. D'Ambrogio 8
Simulation Model Layer
Simulation Component Layer
Discrete Event Simulation Service Layer
Distributed Discrete Event Simulation Layer
Distributed Computing Infrastructure
Layer 4
Layer 3
Layer 2
Layer 1
Layer 0
CORBA WS HLA DIS
ALSP
CORBA-HLA
General Purpose Simulation Oriented Mixed
SimArch: ambiente di simulazione DS
� SimArch elimina la necessità di know-‐how degli standard DS (e.g., HLA) e riduce l’extra effort richiesto: ◦ per lo sviluppo ex novo di sistemi DS ◦ per lo sviluppo di sistemi DS derivati da sistemi esistenti di simulazione locale (LS)
DSIMday'11 A. D'Ambrogio 9
Gli strati di SimArch!� Layer 0 -‐ Distributed Computing Infrastructure – Infrastruttura per l’elaborazione distribuita: ◦ simulation-‐oriented (HLA, DIS, ALSP) ◦ general-‐purpose (CORBA, Web Services, Grid) ◦ hybrid (CORBA-‐HLA o HLA-‐Grid)
� Layer 1 – Distributed Discrete Event Simulation abstraction -‐ implementazione dei servizi DS, si poggia sul layer 0 fornendo servizi per: ◦ sincronizzazione tra simulatori in ambiente distribuito ◦ gestione degli eventi tra simulatori remoti
� Layer 2 – Transparent DES abstraction -‐ execution container, fornisce servizi, in modalità trasparente allo sviluppatore, per simulazioni locali (LS) o distribuite (DS): ◦ sincronizzazione e gestione di eventi a livello di entità ◦ maschera allo sviluppatore del linguaggio (layer 3) l’ambiente di esecuzione locale o distribuito
DSIMday'11 A. D'Ambrogio 10
Gli strati di SimArch!� Layer 3 – Domain-‐speciSic language implementation ◦ nel dominio dei modelli EQN (Extended Queueing Network) il linguaggio Java-‐based di simulazione implementato è denominato jEQN!◦ qualsiasi altro tipo di dominio può essere preso in considerazione, implementando i relativi componenti
� Layer 4 – Simulation model speciSication ◦ descrizione del modello di simulazione che verrà eseguito dai layer sottostanti ◦ speciSica del modello di simulazione per mezzo di istanziazione dei componenti implementati a layer 3 ◦ esecuzione della simulazione invocando servizi (simulation core services) offerti dai layer sottostanti
DSIMday'11 A. D'Ambrogio 11
SimArch: ambiente di simulazione DS � In accordo alle linee guida per lo sviluppo di sistemi software, le interfacce tra i layer sono deSinite in modo indipendente dall’implementazione dei layer stessi
� il contenuto di ciascun layer risulta dunque essere intercambiabile per deSinizione
� L’intercambiabilità dei layer SimArch consente di avere alla base (layer 0) non solo infrastrutture distribuite di tipo HLA o DIS (che sono simulation-‐oriented) ma anche infrastrutture distribuite di tipo general-‐purpose (e.g., CORBA, Web Services, Grid)
DSIMday'11 A. D'Ambrogio 12
Interfacce � L’intercambiabilità tra i vari layer è ottenuta deSinendo un insieme di: ◦ data interface per la deSinizione di oggetti (come l’oggetto Time, o l’oggetto Event), che sono poi scambiati come parametri delle service interface
◦ service interface per le comunicazioni tra layer adiacenti
DSIMday'11 A. D'Ambrogio 13
Data Interfaces � Le data interface deSiniscono le modalità di accesso al dato che viene scambiato tra i vari layer
� DeSinendo strutture dati astratte anziché concrete si decrementa il livello di coupling tra i layer
� Ciò permette di modiSicare l’implementazione tra i layer senza alcun impatto sull’intera architettura
DSIMday'11 A. D'Ambrogio 14
Data Interfaces
DSIMday'11 A. D'Ambrogio 15
DATA INTERFACE DESCRIZIONE
ComponentLevelEntity Identifica le entità della simulazione locale
Event Rappresenta gli eventi
GeneralEntity Per il controllo e la coordinazione di entità locali e remote
InputPort/OutputPort Per ricevere/inviare eventi
Link Per connettere porte di input/output
Name Dichiarazione dei nomi in SimArch
Port Per definire common iterface per porte di input/output
RemoteEntity Per rappresentare entità di simulazione remote
Time Per rappresentare il tempo di simulazione
Service Interfaces � Le service interface deSiniscono punti di accesso per le comunicazioni tra layer adiacenti
� L’architettura di SimArch deSinisce un insieme di interfacce, una per ciascuna coppia di layer adiacenti
� La notazione adottata è del tipo LayerXtoLayerY per indicare l’interfaccia tra il layer X ed il layer Y
DSIMday'11 A. D'Ambrogio 16
Layer0ToLayer1 e Layer1ToLayer0 Interfaces
� Le interfacce tra il layer 0 ed il layer 1 rispettano lo standard HLA e non dipendono dalla speciSica implementazione usata a layer 0
� Ciò rende le interfacce indipendenti dall’implementazione RTI usata
DSIMday'11 A. D'Ambrogio 17
Layer2ToLayer1 e Layer1ToLayer2 Interfaces
� L’interfaccia Layer2ToLayer1 abilita le comunicazioni tra layer 2 e layer 1
� L’interfaccia fornisce i seguenti servizi: ◦ initDistributedSimulationInfrastructure !◦ postProcessingDistributedSimulationInfrastructure !◦ sendEvent !◦ waitNextDistributedEvent !◦ waitNextDistributedEventBeforeTime !
DSIMday'11 A. D'Ambrogio 18
Layer2ToLayer1 e Layer1ToLayer2 Interfaces
� L’interfaccia Layer1ToLayer2 consente al layer 1 di gestire localmente (nel federato) eventi distribuiti in modalità del tutto trasparente allo sviluppatore
� Al Sine di disaccoppiare ulteriormente i due layer, il servizio di scheduling è distinto in: ◦ scheduleEvent !◦ scheduleSimulationEndEvent !
DSIMday'11 A. D'Ambrogio 19
Layer3ToLayer2 e Layer2ToLayer3 Interfaces
� La comunicazione tra layer 3 e layer 2 avviente mediante l’interfaccia Layer3ToLayer2
� Tale interfaccia mette a disposizione: ◦ servizi user-‐oriented ◦ servizi developer-‐oriented
DSIMday'11 A. D'Ambrogio 20
Layer3ToLayer2 e Layer2ToLayer3 User Interfaces
� La Layer3ToLayer2UserInterface fornisce i servizi che consentono allo user (i.e., lo sviluppatore a layer 4) di scrivere codice ed eseguire il simulatore
� L’interfaccia fornisce un servizio di conSigurazione (registerEntity) per consentire l’aggiunta di un componente al simulatore ed un servizio per l’attivazione (start) dell’execution container
DSIMday'11 A. D'Ambrogio 21
Layer3ToLayer2 e Layer2ToLayer3 Developer Interfaces
� La Layer3ToLayer2UserInterface fornisce servizi DES per costruire la logica di ciascun componente
DSIMday'11 A. D'Ambrogio 22
Layer2ToLayer3 Interface � La Layer2ToLayer3Interface deSinisce le modalità di accesso del layer 2 verso i componenti simulativi del layer3
DSIMday'11 A. D'Ambrogio 23
Uso di HLA – extra effort
� L’utilizzo dello standard HLA per la implementazione di sistemi DS comporta un extra effort rispetto al corrispondente sistema LS
� Sulla base di vari esperimenti e lavori è stato possibile quantiSicare l’extra-‐effort necessario alla progettazione di sistemi DS
DSIMday'11 A. D'Ambrogio 24
Costi di HLA � HLA know-‐how e abilità richieste ◦ 30% extra effort necessario per sviluppatori con esperienza media ◦ 60% extra effort necessario per sviluppatori privi di esperienza
� HLA extra code effort (circa 3.5kLOC per federato) � Necessità di prendere decisioni ed effettuare scelte progettuali ◦ Quale federato deve essere sviluppato? Quale può essere riutilizzato? ◦ Quale modalità di avanzamento del tempo adottare? ◦ Quali dati devono essere scambiati e con chi? ◦ Quali modalità di comunicazione utilizzare?
DSIMday'11 A. D'Ambrogio 25
Vantaggi dell’uso SimArch!� L’uso dell’ambiente SimArch supera gli ostacoli imposti dall’utilizzo di HLA, in quanto: ◦ non richiede alcuna conoscenza di HLA (o di altri standard DS) ◦ non richiede conoscenze aggiuntive rispetto allo sviluppo di un convenzionale sistema LS ◦ introduce una procedura automatica per derivare un sistema DS da uno LS ◦ fornisce un linguaggio domain-‐speciMic e Java-‐based
DSIMday'11 A. D'Ambrogio 26
SimArch e state-‐of-‐the-‐art � Ambienti DS esistenti wrt SimArch: ◦ PDNS � application domain dependent � richiede l’uso di ghost nodes per rappresentare localmente le connessioni ad entità remote
◦ DisSimJava � nessuna sincronizzazione tra entità � implementazione non HLA-‐compliant
◦ DEVS/HLA � difSicile transizione da sistema LS a sistema DS � interfacce di comunicazione tra layer non documentate
DSIMday'11 A. D'Ambrogio 27
SimArch e state-‐of-‐the-‐art
� Linguaggi di simulazione esistenti (QNAP, JMT, Extend, OMNET++, etc.) wrt jEQN, il linguaggio fornito da SimArch ◦ creati ed usati per sistemi LS ◦ di difSicile estensione a DS: � meccanismi di estensione basati su techniche di wrapping, con conseguente instabilità e scarsa manutenibilità
� difSicile, se non impossibile, partizionare ed eseguire un sistema LS su un ambiente DS (e.g., HLA)
DSIMday'11 A. D'Ambrogio 28
Modello di riferimento (per confronto con approcci esistenti)
DSIMday'11 29 A. D'Ambrogio
Confronto con approcci esistenti � Approccio di tipo1 (uso di un linguaggio di programmazione general-‐purpose come Java + HLA) ◦ Per il modello di riferimento, la dimensione della versione LS è di 1.2 KLOC ◦ La trasformazione da LS ad una equivalente DS basato su HLA, richiede addizionali 3.5 KLOC per federato. Quindi, la versione DS avrà dimensione pari a 1.2 + 3x3.5 = 11.7 KLOC
� Approccio di tipo2 (uso di un framework di simulazione come SimJava o JavaSim) ◦ La dimensione della versione LS dello stesso modello di riferimento può essere stimata intorno alle 0.5 KLOC ◦ La trasformazione in versione DS basato su HLA è problematica in quanto detti framework sono progettati per operare in modalità LS
DSIMday'11 A. D'Ambrogio 30
Confronto con approcci esistenti � Approccio di tipo3 (uso di un linguaggio di simulazione di alto livello come ad esempio QNAP) ◦ Comporta, per il modello di riferimento, una dimensione della versione LS di circa 0.1 KLOC
◦ La relativa versione DS è irrealizzabile in quanto la descrizione del sistema LS prevista dal linguaggio risulta essere fortemente dipendente dallo stesso e pertanto resta impossibile convertire un sistema LS in un DS, ad esempio tramite HLA
DSIMday'11 A. D'Ambrogio 31
Nostro approccio � Approccio di tipo4 (SimArch e jEQN) ◦ Per la simulazione del modello di riferimento, si ottiene una sostanziale riduzione di linee di codice sia nella forma LS che DS ◦ La dimensione LS risulta essere 0.08 KLOC ◦ La dimensione DS ha un incremento di LOC di 0.02 KLOC per l’insieme dei tre federati, ottenendo così una dimensione totale di 0.1 KLOC ◦ La conversione da LS a DS è meccanica e facilmente automatizzabile
DSIMday'11 A. D'Ambrogio 32
Confronto approcci
DSIMday'11 A. D'Ambrogio 33
!"#$%&##'$(("$%)"*+,-"$,+%($."(+%."%-"*/012"$,+%
*$.+00$%."%'"34%5!"#$6%7+'-"$,+%89% 7+'-"$,+%)9%
!"#$%:%%!"#$#%&'()*%+,-#(.&$/*&/#0( 123( 425(6(123(7(829(
!"#$%;%!.,:&'(;<=*'&><,$(?%&=#@,%A0( B25( <$->&C<'<>D(#(-:&%-&(
=&$*>#$<C<'<>D(!"#$%<%%
!E<F'#G#'(;<=*'&><,$(.&$/*&/#0( B2BH( IJK(
!"#$%=%%!SimArch(#(jEQN0( B2BH( B2BH(6(B2B3(7(B21(
!
Versioni di SimArch !� Le versioni di SimArch Sinora sviluppate possono essere così raggruppate: ◦ general-‐purpose SimArch!◦ domain-‐speciMic SimArch!
DSIMday'11 A. D'Ambrogio 34
wSimArch!nDSSimArch!
Riferimenti � A. D'Ambrogio, D. Gianni, G. Iazeolla, “jEQN: a Java-based Language for the Distributed Simulation of Queueing
Networks”, LNCS vol. 4263/2006, Proceedings of the 21st International Symposium on Computer and Information Sciences (ISCIS'06), Istanbul, Turkey, November 1-3, 2006. "
� A. D'Ambrogio, D. Gianni, G. Iazeolla, “SimJ: A Framework to Develop Distributed Simulators”, Proceedings of the 2006 Summer Computer Simulation Conference, Calgary, Canada, July 31 – August 2, 2006. "
� D. Gianni, A. DʼAmbrogio, “A Language to Enable Distributed Simulation of Extended Queueing Networks”, Journal of Computers, Vol. 2 n. 4, pp. 76-86, Academy Publisher, ISSN : 1796-203X, June 2007."
� A. DʼAmbrogio, D. Gianni, G. Iazeolla, “Software Technologies for the Interoperability, Reusability and Adaptability of Distributed Simulators”, Proceedings of the European Simulation Interoperability Workshop (EuroSIW 2007), Genoa, Italy, June 18-20, 2007."
� D. Gianni, A. D'Ambrogio, “A Domain Specific Language for the Definition of Extended Queueing Network Models”, Proceedings of the 26th Iasted International Conference on Software Engineering (SE 2008), Innsbruck (Austria), February 12-14, 2008."
� D. Gianni, A. DʼAmbrogio, G. Iazeolla, “A Layered Architecture for the Model-driven Development of Distributed Simulators”, Proceedings of the First International Conference on Simulation Tools and Techniques for Communications, Networks and Systems (Simutools 2008), Marseille, France, March 3-7, 2008."
� D. Gianni, A. DʼAmbrogio, G. Iazeolla, A. Pieroni, “Producing simulation sequences by use of a Java-based generalized framework”, Proceedings of the IEEE Second UKSIM European Symposium on Computer Modeling and Simulation (EMS 2008), Liverpool (UK), September 8–10, 2008."
� D. Gianni, A. DʼAmbrogio, G. Iazeolla, A. Pieroni, “Distributed Simulation of Complex Systems by Use of an HLA-transparent Simulation Language”, Proceedings of the 7th International Conference on System Simulation and Scientific Computing (ICSCʼ2008), Beijing, China October 10–12, 2008."
� D. Gianni, A. DʼAmbrogio, G. Iazeolla, “DisSimJADE: A framework for the development of Agent-based Distributed Simulation Systems”, Proceedings of the Second International Conference on Simulation Tools and Techniques (SIMUTools 2009), Rome, Italy, March 2-6, 2009."
� D. Gianni, A. DʼAmbrogio, and G. Iazeolla, “Ontology-based Specification of Simulation Sequences”, International Journal of Simulation Systems, Science & Technology, vol. 10, n. 1b, September 2009."
� D. Gianni, A. DʼAmbrogio, G. Iazeolla and A. Pieroni, "HLA-Transparent Distributed Simulation of Agent-based Systems", in Modeling Simulation and Optimization - Focus on Applications, Shkelzen Cakaj (Ed.), ISBN: 978-953-307-055-1, INTECH, pp. 205-223, 2010."
� D. Gianni, A. DʼAmbrogio, G. Iazeolla, “Software Technologies for the effortless development of distributed simulators”, SIMULATION: Transactions of The Society for Modeling and Simulation International, in press, 2011."
DSIMday'11 A. D'Ambrogio 35
Acknowledgments � Work partially supported by funds from the FIRB project on “Software frameworks and technologies for distributed simulation”, from the FIRB project on “Performance evaluation of complex systems”, from the University of Rome TorVergata research on “Performance modeling of service-‐oriented architectures” and from the CERTIA Research Center.
DSIMday'11 A. D'Ambrogio 36