conforme Metodologie allo standard e strumenti OMG per DDSil reengineering del workflow management tesi di laurea Ottimizzazione dello scambio messaggi in un middleware di distribuzione dati conforme allo standard OMG DDS 2006/2007 relatore Ch.mo prof. Stefano Russo correlatore Ing. Christiancarmine Esposito candidato Eugenio Romano Matr. 831/109
Introduzione Il lavoro di tesi è stato svolto nell'ambito del progetto COSMIC, laboratorio pubblico-privato dei partner CINI, DIS-UNINA, CRIAI, SELEX-SI, SESM sulle tematiche dell affidabilità del software open-source per i sistemi di controllo del traffico aereo (ATC). Lo scenario odierno delle tecnologie per il controllo del traffico aereo si presenta come un patchwork di sistemi nazionali i quali di sovente sono diversi tra loro. Affinché tali sistemi eterogenei siano resi interoperabili si pone la necessità di creare uno strato di compatibilità.
conforme Metodologie allo standard e strumenti OMG per DDSil reengineering del workflow management Problematiche Comprensione dei messaggi scambiati anche senza la piena conoscenza della loro struttura interna: Flessibilità. Consegna predicibile e il più veloce possibile. Una tecnologia che sta avendo successo nello scenario di federazione di sistemi mission critical è la recente specifica dell OMG detta Data Distribution Service (DDS). L unico formato per lo scambio dati presente nelle soluzioni conformi allo standard DDS è il Common Data Representation (CDR), il quale non consente flessibilità nella comunicazione.
conforme Metodologie allo standard e strumenti OMG per DDSil reengineering del workflow management Soluzioni In letteruatura la soluzione più adottata per aumentare la flessibilità è l utilizzo di XML il quale, tuttavia, implica un considerevole deterioramento delle prestazioni a causa della notevole crescita nelle dimensioni del messaggio da inviare. Recentemente sono disponibili differenti formati, tra cui JSON e YAML, che cercano di ottenere livelli di flessibilità simili all XML, senza avere un costo troppo oneroso in termini prestazionali.
JSON : JSON è basato su un sottoinsieme del linguaggio JavaScript. I dati sono serializzati con una rappresentazione ad albero. Formati { FlightDataPlan : { Departure Airport : Napoli, } Arrival Airport : London, Trajectory :..., } YAML : YAML è un formato che prevede due modalità di stesura del formato: normale e compatta. In YAML la struttura è rappresentata tramite indentazione. FlightDataPlan: Departure Airport: Napoli Arrival Airport: London Trajectory:... {FlightDataPlan: {Departure Airport: Napoli, Arrival Airport:London,Trajectory:...}}
SERIALIZZATORE/DESERIALIZZATORE XML XERCES SERIALIZZATORE/DESERIALIZZATORE YAML YAML PARSER. SERIALIZZATORE/DESERIALIZZATORE JSON JO ST SERIALIZZATORE/DESERIALIZZATORE XML XERCES SERIALIZZATORE/DESERIALIZZATORE YAML YAML PARSER. SERIALIZZATORE/DESERIALIZZATORE JSON JO ST Facoltà di Ingegneria Come abbiamo operato E stato realizzato un benchmark adoperando una implementazione dello standard OMG DDS offerto da RTI. Esso prevede un applicativo per generare messaggi e trasmetterli tramite il middleware. Tra l'applicativo e il middleware è stato realizzato uno strato di serializzazione parametrizzabile sul formato dati da utilizzare (XML, JSON e YAML). Parser utilizzati : XML: come parser XML è stato utilizzato XERCES. JSON: come parser JSON è stato utilizzato JOST. YAML: per YAML è stato necessario procedere alla creazione di un parser.
Risultati (1/2) Nell analisi delle dimesioni relative allo stream dati serializzato le prestazioni migliori sono state ottenute dal formato CDR (13383 bytes). XML (197376 bytes), invece, è risultato il meno vantaggioso. JSON (117661 bytes) e Compact YAML(127928) presentano uno stream dati contenuto. CDR e XML hanno tempi di serializzazione e deserializzazione più bassi. In XML l utilizzo del SAX parsing permette di ottenere prestazioni migliori rispetto al DOM parsing. Il CDR presenta tempi di serializzazione e deserializzazione più bassi.
Risultati (2/2) Nessuno dei formati di serializzazione usati presenta un buon tempo di RTT. Efficienza : (Dimensione dati da trasmettere) (Dimensione stream serializzazione) L efficienza del formato CDR è 1. Il miglior risultato in termini di efficienza è raggiunto da YAML compatto e JSON.
Compressione Per migliorare le prestazioni si è pensato di comprimere lo stream dati serializzato. Con LZW lo stream dati YAML passa da 120 kbyte a 15 kbyte e quindi presenta una efficienza pari a 0,91. Con XMLPPM lo stream dati XML passa da 182 kbyte a 7 kbyte. Presenta, dunque, una efficienza pari a 1,9 (maggiore del CDR).
Conclusioni : Tra i formati di serializzazione adottati, YAML compresso e XML compresso, sono risultati i più validi da implementare, ai fini dell aumento dell interoperabilità di DDS e al fine di consentire una spedizione rapida dei messaggi. Sviluppi futuri : Approfondire la compressione XML e YAML. Nuove tecnologie di compressione applicabili a tali formati potrebbero portare a prestazioni migliori.
conforme Metodologie allo standard e strumenti OMG per DDSil reengineering del workflow management Svantaggi del CDR Il CDR come formato non è interoperabile in quanto non trasferisce le coppie campo/valore. Il CDR trasferisce solo i valori di una struttura dati che all arrivo viene assegnato al corretto campo attraverso la conoscenza pregressa della struttura dati. Publisher Octet Stream Subscriber Flight Data Plan Flight Data Plan Departure Airport Arrival Airport Departure Airport Arrival Airport Trajectory Trajectory
conforme Metodologie allo standard e strumenti OMG per DDSil reengineering del workflow management Benchmark E stata condotta una compagna di performance benchmarking per confrontare le prestazioni ottenibili adoperando il formato CDR e quelle con l introduzione dei nuovi formati. Le metriche di confronto sono: Dimensione dello stream Tempi di serializzazione/deserializzazione Latenza RTT Efficienza : (Dimensione dati da trasmettere) (Dimensione stream serializzazione) Node A Node B Application Parser RTI-PUB RTI-SUB Application Time Message Deserialization Message Serialization stream stream transmitting transmitting stream stream Copy