Facoltà dii Ingegneria Corso di Studi S in Ing gegneria In nformatica tesi di laurea UN SU UPPOR RTO AUTOM A MATICO O PER LA R RACCOLTA E L’ANA ALISI DI D DATI SPER RIMENT TALI DI UN MIDDLEWARE E PER LA L DIST TRIBUZ ZIONE DI DAT TI Anno Acccademico 2006/2007 2 relatore Ch. mo prof. p Dome enico Cotrroneo correlatorre Ing. Chris stiancarm mine Espos sito candidato o Annamarria Iacullo matr. 534 4\246 Ai miei genitori che mi ha sempre sostenuto e incoraggiato. A mio fratello sempre pronto a darmi buoni consigli, A Genny che mi è stato vicino, sopportandomi anche nei momenti peggiori, Alla mia famiglia e a tutti i miei amici. Grazie Indice Introduzione e Capitolo 1 LO STAND DARD DDS S 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Il paaradigma Publish/Subscribee Mod dello DDS Mod dello DCPS Quaality Of Servicee Imp plementazioni OMG DDS Arch hitettura deceentralizzata Arch hitettura fedeerata Arch hitettura centtralizzata Capitolo 2 ESECUZIO ONE DI UNA A CAMPAG GNA TEST 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Anaalisi delle prob blematiche Solu uzione adottatta Con nfigurazione della campagna test Dep ployment Eseccuzione della campagna tesst Ben nchmark Con nclusione dellaa campagna di test Capitolo 3 ANALISI D DEI DATI 3.1 3.2 3.3 3.4 3.5 3.6 Outtlier Anaalisi e Rappressentazione dei Risultati Grafico della med dia Grafico della deviazione standard Grafico Box and W Whisker Creaazione dei rep port 7 10 0 10 11 1 12 2 14 4 16 6 18 8 18 8 20 0 21 1 24 4 24 4 24 4 25 6 26 28 8 30 0 31 1 34 4 37 7 37 37 7 39 9 42 2 43 4 44 46 6 IIII 49 9 Capitolo 5 ESEMPIO CAMPAGN NA DI TEST T 49 4.1 Testtbed 4.2 Testt Suite 4.3 Risu ultati della cam mpagna di tesst 49 9 50 0 52 2 Conclusioni e e sviluppi futu uri 54 4 Appendice A A 55 5 PROGETT TAZIONE U UML A.1 A.1.1 A.1.2 A.2 A.3 A.4 Diagrammi di caso d’uso D D Definizione de ella funzionalittà “Esecuzione test” D Definizione de ella funzionalittà “Analisi risu ultati” D Diagrammi di attività D Diagrammi de elle classi D Diagrammi di sequenza 55 55 6 56 61 1 65 8 68 69 9 Appendice B B 78 8 NIST NET T 78 B.1 B.2 B.3 SStruttura e fun nzionalità T Tool di configu urazione di NIST Net I tool opzionalli di NIST Net Bibliografia 79 9 81 1 82 2 83 3 IV V Indice Figure Figura 1 Siistema Publlish/Subscriibe....................................................................................................... 11 Figura 2 I livelli l di OM MG DDS ............................................................................................................... 13 Figura 3 Comunicazio C one dei partecipanti tram mite il Glob bal Data Space ............................................. 13 Figura 4 Sttruttura DC CPS ......................................................................................................................... 144 Figura 5 Descrizione D d delle Qualitty Of Servicce ..................................................................................... 177 Figura 6 RTI R DDS eseempio di arcchitettura decentralizzaata ................................................................. 18 Figura 7 Architettura A RTI DDS .............................................................................................................. 199 Figura 8 OpenSplice O e esempio di architettura a a federata .......................................................................... 200 Figura 9 L'architetturaa di OpenSpplice DDS ........................................................................................... 200 Figura 10 OpenDDS O e esempio di architettura a a Centralizzaata ................................................................. 21 Figura 11 Open O DDS .............................................................................................................................. 222 Figura 12 Schermata S " "Nuova Missura" ................................................................................................... 266 Figura 13 Invio I script .............................................................................................................................. 299 Figura 14 Avvio A con finestra f di debug.......... d ......................................................................................... 300 Figura 15 Avvio A con progress p moonitor .................................................................................................. 31 Figura 16 Misurazione M e del RTT nel n caso uniicast ................................................................................. 322 Figura 17 Misurazione M e del RTT nel n caso muulticast .............................................................................. 322 Figura 18 Funzioname F ento della campagna dii test ................................................................................. 33 Figura 19 Prelievo P deii risultati e pulizia p del testbed t ............................................................................. 35 Figura 20 Conclusione C e della cam mpagna test ........................................................................................... 366 Figura 21 Directory D coon i risultatti .......................................................................................................... 366 Figura 22 Misure M con outlier................................................................................................................... 38 Figura 23 Schermata S C Graficco......................................................................................................... 399 Crea Figura 24 Richiesta R laabel per il fiile da analizzzare. ................................................................................ 400 Figura 25 Analisi A dei risultati e crreazione deei grafici ........................................................................... 41 Figura 26 Grafico G dellla media ................................................................................................................ 43 Figura 27 Grafico G dellla deviazionne standard ........................................................................................ 444 Figura 28 Grafico G Boxx and Whiskker ...................................................................................................... 45 Figura 29 Grafico G Boxx and Whiskker ...................................................................................................... 466 Figura 30 Report R ..................................................................................................................................... 477 Figura 31 Creazione C r report ..................................................................................................................... 48 Figura 32 Il I Testbed ................................................................................................................................ 499 Figura 33 File F XML ................................................................................................................................ 500 Figura 34 Risultati R della campagnna test ................................................................................................. 522 Figura 35 Diagramma D a casi d'uso ................... . ......................................................................................... 55 Figura 36 Diagramma D a della funziionalità "Essecuzione teest" ................................................................ 566 V Figura 37 Diagramma D a della funziionalità Anaalisi risultatti.................................................................... 61 Figura 38 Diagramma D a di attività: Esecuzionee test ................................................................................ 666 Figura 39 Diagramma D a attività: Annalisi risultaati .................................................................................... 677 Figura 40 Diagramma D a di classe: Esecuzione E test .................................................................................. 68 Figura 41 Diagramma D a di classe: Analisi A Risuultati ................................................................................ 699 Figura 42 Diagramma D a di sequenzza: Area A ........................................................................................... 700 Figura 43 Diagramma D a di sequenzza: Esecuzioone test............................................................................. 71 Figura 44 Diagramma D a di sequenzza: Errore neell'esecuzio one del test ................... . ................................ 722 Figura 45 Diagramma D a di sequenzza: Test blocccato ................................................................................ 73 Figura 46 Diagramma D a di sequenzza: Eliminazzione appliccativi ............................................................. 744 Figura 47 Diagramma D a di sequenzza: Area B ........................................................................................... 75 Figura 48 Diagramma D a di sequenzza: Analisi risultati r ............................................................................. 766 Figura 49 Diagramma D a di sequenzza: Errore annalisi risultaati.................................................................. 777 Figura 50 NIST N Net ................................................................................................................................ 799 VII Introdu uzione Il presente lavoro l di tesi t si è svvolto nell’aambito del progetto C COSMIC, laboratorio l puubblico-privvato dei parrtner CINI, DIS-UNIN NA, CRIAI, SELEX-SI e SESM, nell’ambito n deell’attività di d tirocinio. Il lavoro di questa q tesi nasce n dall’aanalisi delle fasi in cui si articola l’esecuzion ne di test di peerformance:: • Determ minazione e configurazzione dei teestbed: è neecessario inddividuare gli g indirizzi IP dei nodi n parteciipanti e configurarli op pportunamennte; • Configuurazione deei parametrri di configu urazione: sccegliere le Q Quality of Service e i parameetri configurrabili a livelllo Benchm mark; • Esecuzione di test di performaance: lancio o degli scrippt con moniitoraggio a video v della sessionne di test; • Analisii a posteriorri dei risultaati ottenuti: creazione di d grafici, reeport e statiistiche. L’obiettivo è la realizzazione di un u tool chee fornisca un u supportoo automaticco alle fasi soopraelencatee. Il tool creatoo prende il nome n di Suunrise ed è stato s creato in collaborrazione con n Antonella N Niola, e conn l’ausilio dell’ing. d Chhristian Esposito e delll’ing. Antonio Strano.. Sunrise è stato svilupppato in Jaava per esssere utilizzato in oggni ambiennte, si preesenta con unn’interfacciaa user friendly per sem mplificarne l’utilizzo l e offre o una seerie di funziionalità per il deploymennt e l’esecuzzione autom matica di test di perform mance assessment per piattaforme p Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii DDS-compliaant: • Supporrto nella connfigurazionee dei param metri dei casii Test: o T Tipo di Trasporto (Uniccast, Multicast); o T Tipo di Messaggio (Sim mple, Complex con oppportuna dim mensione, Fu ull Avenue, C Compact Avvenue o defiinibile dall’utente); o Q QoS (Best Effort, Reeliable, Traansiet, Histtory, Owneership), rispettando i v vincoli; • o P Piattaforme DDS (RTI e OSPL); o F Formato dei dati (CDR,, XML, JSO ON, JAML); o T Tipo di Trasferimento (Locale, Rem moto); o dei paramettri del test in S Salvataggio i un file XM ML; o P Possibilità d configurarre più Sessioni di Test. di Supporrto nella sceelta dei nodii partecipan nti: o R Ricerca nellaa rete localee degli host on-line; o Innstallazionee automaticaa delle piatttaforme DD DS; o C Clean-up deii nodi a connclusione deel test; o S Salvataggio delle configgurazioni ussate; o S Salvataggio delle credeenziali di acccesso ai nodi n in un ffile criptato attraverso l’’algoritmo JCE_DES. J • Esecuzzione dei tesst di perform mance assesssment: o G Generazione e automaticaa del codicee a supportoo dei messagggi non pred definiti; o E Esecuzione in modalitàà debug perr il monitorraggio dellee attività in corso o in b background. • • Analisii automaticaa dei risultatti: o D Determinazi one delle metriche m end d to end; o G Generazione e di grafici e statiche deelle misure ottenute. Salvataaggio di un riepilogo r deella sessionee in un file pdf. Inn questo lavvoro di tesi si pone atteenzione allee problemattiche che biisogna affro ontare nella 8 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii coonduzione di d una camppagna di testt e di come il Sunrise permetta p di: • Eseguirre automaticamente i teest di perforrmance; • Rimuovvere i codicci e i file gennerati; • Disinsttallare gli appplicativi; • Analizzzare i risultaati ottenuti. N primo capitolo Nel c verrrà effettuatta una pano oramica suulla piattafoorma DDS e su varie im mplementazioni. N secondo capitolo veerrà trattatoo il significaato di Bencchmark, le pproblematicche e come Nel Suunrise offree una sempliificazione per p la condu uzione della campagna di test. N terzo caapitolo verrrà trattata la problem Nel matica delll’analisi deei dati prodotti dalla caampagna di test, della loro l rappressentazione e di come Sunrise S offrre una semp plificazione annche per queesto problem ma. N quarto capitolo Nel c viene mostratoo un caso d’uso d in cuui viene utillizzato Sun nrise per la coonduzione di d una camppagna di testt. N Nell’appendi ice A verrà mostrata laa documentaazione UML a supportto di Sunrisse riguardo lee parti che soono state annalizzate in questo lavo oro di tesi. N Nell’appendi ice B viene fornita unaa panoramicca sul simuulatore NIST T Net utilizzzato per la caampagna di test. N paragrafoo finale verrranno mostrrate le concclusioni e gli sviluppi fuuturi. Nel 9 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Capitoolo 1 Lo sta andard DDS N Giugno del 2004, ll’OMG1 ha definito un Nel n nuovo staandard, dettto “Data Distribution D Seervice (DD DS) Specificcation” [RIF F. 2] per i sistemi Real R Time. L’OMG DDS D è una sppecifica perr i sistemi data-distribbution basaati sul paraadigma Pubblish/Subscrribe, il cui sccopo è di fornire f una comune appplication-llevel interfaace che deffinisca chiaaramente il daata-distribuution servicee. I vantaggi v deell'uso del DDS D rispettoo ad altri sisstemi basati sul paradiggma Publish h/Subscribe soono: • Accopp piamento laasco tra le entità e sem mplicità di utilizzo; u • Architettura flesssibile ed ad dattabile graazie al discoovery autom matico; • Efficienza grazie alla a comuniicazione dirretta tra Pubblisher e Subbscriber; • minismo nellla consegnna dei dati; Determ • Scalabilità elevataa come consseguenza deell'accoppiaamento lascoo tra le entità; • Qualitàà di Serviziio altamentee parametrizzabile. 1 L'Object Management G Group (OMG) è un consorzio internazion nale, nonprofit, creato nel 1989 dall’inizziativa di otto o H ard, Philis Teleecommunicattions, Sun Myycrosystems ee Unisys, con l'obiettivo dii aziende tra cui: Canon, Hewlett‐Packa m relative r ai sisstemi softwarre distribuiti orientati aglii promuovere e standardizzzare le tecnologie e le metodologie oggetti. 100 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii 1.1 Il paradigm ma Publissh/Subsccribe Il modello Publish/Subsscribe ha risscosso un recente r succcesso, dal m momento ch he consente dii aumentaree l’indipenddenza softw ware dalle piiattaforme e dai contessti applicatiivi, tramite unn meccanism mo di comuunicazione ad a accoppiaamento lasco. Il modelllo globale è composto dii processi, detti d “parteccipanti”, chee ricoprono i seguenti ruoli: r • Publish her, gli eleementi attivi del sistem ma: responsabili della “pubblicaziione” degli eventi2; • Subscrriber, gli ellementi passsivi del sisstema: interressati alla rricezione degli d eventi verso cui c è stata esseguita una “sottoscriziione”; • Event Service, il i collante tra i Pub blisher e i Subscriberr: responsaabile della pubbliccazione, dellla sottoscrizzione e dellla consegna affidabile ddegli eventii. Figura 1 Sistema Pub blish/Subscriibe G Grazie all’evvent servicce, nel moodello Publlish/Subscriibe possonno essere distinti d tre diifferenti liveelli di disaccoppiamentto (decoupliing) [RIF. 15]: 1 • Space decouplingg: il Publisher e il Su ubscriber noon hanno nnecessità di conoscere l’entitàà con cui scaambiano i messaggi; m 2 Evento, in q questo contessto, viene inteeso come variaazione dello sttato di un’enttità del sistem ma. 11 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii • Time decoupling d : il Publisher e il Subsscriber non devono esssere attivi nello n stesso momennto, ad esem mpio il Publlisher potreb bbe pubbliccare eventi qquando il Su ubscriber è inattivoo, e un Subscriber potrrebbe riceveere una notiifica di un eevento prod dotto da un Publishher inattivo;; • Synchrronization decouplingg: il Publish her e il Subsscriber non sono sincro onizzati, la comuniicazione è di d tipo asinccrono3. M Molti sistemii Publish/Suubscribe sellezionano i dati tramitee un filtro, ddenominato Topic, che raappresenta una u sorta dii “gruppo": la pubblicaazione di unn evento neell’ambito di d un Topic X si traducee in un brooadcast verso tutti i membri m dell gruppo X X. I Topic, in genere, raaggruppano eventi com muni sia nel contenuto che nella sttruttura, inttroducendo la nozione dii “tipo” di evento. e La piattaformaa DDS utiliizza un appproccio che combina Topic T e key chhe univocam mente identiificano l’istaanza del datta-object [R RIF. 1]. 1.2 Modello M D DDS Laa piattaform ma DDS deffinisce una lista di paraametri di seervizio (Quaality Of Serrvice, QoS) chhe permettoono l’ottimiizzazione delle d risorsee del sistem ma, e di AP PI4 che perm mettono di otttenere altee prestazionni in term mini di lateenza e thrroughput5. L’architettu ura di un m middleware D DDS è basaata sul paraddigma data--centric, in cui tutte le iterazioni fra f le entità cooinvolte avvvengono in funzione deel tipo di daato trasmessso, e sono inndipendentii dalla loro orrigine o destinazione. Laa comunicaazione avviiene tramitee un “Glob bal Data Sppace”, in ccui tutti i partecipanti p poossono legggere e scriveere dati efficientementee e naturalm mente6, tram mite un’interrfaccia che 3 Si definiscee comunicazio one asincronaa una comunicazione non bloccante, in cui il mittentte invia il me essaggio e poii continua la p propria esecuzzione. 4 Application n Program(ming) Interfacee (Interfaccia di Programm mazione di un'Applicazion u ne), insieme di proceduree disponibili all programmattore, di solito raggruppate come set di strumenti speecifici per un determinato compito, perr ottenere un'astrazione sul servizio che si vuole utilizzzare. 5 La latenza rrappresenta ill tempo necesssario per trassmettere un m messaggio minimale da un estremo del ccollegamento o all'altro. Il throughput rappresenta indice dell'effettivo utilizzo della capacità deel link, ossia laa quantità di d dati trasmessii in un’unità di tempo, il seccondo. 6 Naturalmen nte significa che l’interfacciia è simile ad un’interfacciaa utilizzata perr leggere/scrivvere variabili locali. 122 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii peermette di semplificare s e il meccannismo d’inteegrazione trra i sistemi. La costruzzione delle Figgura 3 Comun nicazione dei partecipantii tramite il Gllobal Data Sp pace innterfacce daa parte dei progettisti solitamentee avviene esprimendo e i dettagli riguardo r al fluusso d’infoormazioni. Quando Q cam mbia il tipo o d’informazzione si otttiene un rip pple effect7 peer tutto il siistema, che porta al cam mbiamento di molti coomponenti cconnessi. Nel N modello Puublish/Subsscribe la sppecifica dellle interfacce è diretttamente imp mplementata tramite il m middleware, che distribuuisce i dati più p recenti ai Reader partecipanti, p , creando siaa un “Data Sppace”, dovee ogni parteecipante puuò leggere e scrivere, sia s un “Nam me Space”, dove ogni paartecipante può trovarre e condivvidere gli oggetti, o perrmettendo lla comuniccazione fra strrutture eteerogenee, inndipendenteemente daal sistema operativo, dall’archittettura del prrocessore e dal linguagggio di progrrammazione. Figura 2 I livelli di OMG DDS Laa specifica DDS D esprim me due livellli d’interfacccia: • Data Centric C Publish-Subscrribe (DCPS)), di basso livello, chee fornisce una u serie di 7 L’effetto ripple riprende l’immagin ne del movimento dell'acqua quando o si getta u un sasso, rap ppresentando o simbolicameente la modalità di propagazione degli errrori. 133 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii funzionnalità utili ad a un’appliccazione per la pubblicaazione e la ssottoscrizion ne dei dati, e un suupporto al trrasferimentoo affidabile alle destinaazioni; • Data Local L Reconnstruction Layel L (DLRL L), di livelllo opzionalee, che forniisce le API di accesso e di filtrro per la maanipolazione dei dati riicevuti dal D DCPS. 1.3 Modello M D DCPS Il DCPS è il cuore del modello m DD DS, si occup pa del marshhaling e unmarshaling g dei dati, e deefinisce le interfacce i s standard chhe permetton no alle appplicazioni dii scrivere/leeggere dati inn/da un Globbal Data Sppace, in manniera del tu utto traspareente rispettoo all’eterogeeneità delle piiattaforme sottostanti. s Figurra 4 Struttura a DCPS L’entità che fornisce l’aastrazione dello d spazio globale deei dati è il D Domain: tuttte le entità chhe intendonno partecipaare ad una pubblicazio one devono necessariaamente appaartenere ad allmeno un dominio, d in questo moddo è possib bile otteneree l’isolamennto e l’ottim mizzazione deella comunnicazione. Lo L standardd DDS preevede la possibilità p ddi supportaare domini m multipli, perm mettendo la creazione di d una separrazione logiica tra le divverse tipolo ogie di dati. L’associazionne tra le appplicazioni laato Publisheer e lato Subbscriber sonno realizzatte tramite il 144 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Toopic, il quaale associa un nome (uunivoco nel sistema), un tipo di dato e un insieme di poolicy QoS. L’utilità del Topic è di ottimizzzare l’implementazionne, sia tram mite la prealllocazione delle d risorse necessarie per la comu unicazione, sia realizzaando l’astraazione della tippizzazione del d dato. Laa definizionne del Topicc avviene traamite un forrmato stand dard (ad es. ID DL o XML)), in cui si specifica ill nome, chee lo identifiica all’internno di un do ominio e il tippo che ne definisce i dati conttenuti. La definizione d del tipo e la scelta del nome peermettono laa creazionee di un sistem ma di tipo “aperto”, “ inn quanto reaalizzano un’’interfaccia standard neell’ambito dell’interoo sistema distribuitto. I sotttoscrittori utilizzano seemplicemennte il Topic come carattteristica chee deve soddisfare il datto. N sistemi di Nei d tipo data--centric, le informazion i ni scambiatee risiedono in uno spazzio virtuale dii memoria condivisa. c T Tipicamente e i nuovi vallori sovrascrrivono quellli pre-esisteenti, quindi il middlewarre e i parteccipanti hannno bisogno di identificcare in manniera univocca l’istanza deell’oggetto cui c si riferissce il valoree. Un tipo di d approccioo centralizzaato è impratticabile per lee applicazionni Real Tim me che richiiedono alte prestazionii e tolleranzza agli errorri, quindi è neecessario pooter identifiicare l’istannza di un deeterminato oggetto. o L’utilizzo dell Topic per iddentificare il i dato è im mpraticabilee per un grran numeroo di oggettii, infatti, sii dovrebbe inntrodurre unn Topic diffe ferente per ogni o istanzaa di un oggeetto-dato. Peer ridurre il numero di Toopic l’OMG G DDS utillizza una combinazion c ne di Topicc e chiavi (key), perm mettendo di iddentificare univocamen u nte l’istanzaa del data-o object. La chiave c può essere form mata da un unnico campo o da un inssieme di cam mpi, il cui formato fo dipeende dal tipo di dato. La L specifica prrevede anchhe una seriee di Topic di d tipo builtt-in che fornniscono infformazioni riguardanti r loo stato del dominio d com me Topic reegistrati, Pu ublisher, Subbscriber e ppolicy QoS delle varie enntità. Il livello DCP PS fornisce due modaliità differentti per la notifica degli eeventi: • Listeneer; • Conditiion e WaitSSet. N caso dell Listener, il Nel i livello DCPS D definiisce un’inteerfaccia di callback peer ciascuna enntità, che permette p ad un’applicaazione di mettersi m in “ascolto” “ ddei cambiam menti dello 155 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii stato o deglii eventi rellativi alla stessa entittà. I Condiition e i W WaitSet perm mettono di inndividuare gli g eventi di interesse neel DDS. Lo o schema generale è: • L’appliicazione crrea una coombinazion ne specificaa di oggettti, come una Read Conditiion, e l’assoocia al WaittSet; • L’appliicazione asppetta sul WaaitSet finchéé una o più Condition ddiventano vere; v • L’appliicazione ricchiama le operazioni sui corrisppondenti ogggetti per estrarre le informaazioni necessarie. 1.4 Quality Q Off Service Laa propagazzione degli eventi avvviene tramitte il settagggio di QoS S, che perm mettono di deecidere il coomportamennto da assum mere e di otttimizzare l’’utilizzo dellle risorse. Lee Quality Of O Service (QoS) sonoo utilizzate per configgurare il sisttema, perm mettendo un coontrollo sia sulle perforrmance sia sulle risorse, preservanndo la moduularità, la sccalabilità e laa robustezzaa di un modeello Publishh/Subscribe. Il livello DC CPS, per staabilire la coompatibilitàà tra le policy offerte ddai Publisheer e quelle ricchieste dai Subscriber,, prevede unn meccanism mo di contrrollo realizzzato tramite un pattern nooto come RxxO (Requesst versus Offfered): il Subscriber S p specificcare una listta di valori può “rrichiesti” peer una particcolare QoS, analogameente il Publlisher può sspecificare una u lista di vaalori “offertti” per la steessa QoS. Sarà S compito o del DDS, al momentoo dell’assocciazione tra Puublisher e Subscriberr, stabile se s le QoS S sono com mpatibili, sse ciò non n avviene, l’aassociazionne non è realizzzata ed è sollevvata un’ecccezione del tipo IN NCOMPAT TIBLE_QOS S su ciascunn lato della comunicazi c ione. 166 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii NOME POLIC CY DURABILITY Y DEADLINE OWNERSHIPP RELIABILITY HISTORY DEFINIZIONE E Perm mette di controollare il cicllo di vita di unn dato s scritto nella reete. Speecifica il perioodo di aggiornnamento dellee istanze. Controolla l’aggiornaamento di un’isstanza da partee di più Publishers. VALOR RI TRANSIIET IIl sistema ha memoria m dei ddati pubblicati. VOLATIILE IIl sistema non n ha m memoria dei dati d ppubblicati. Un U periodo di duration L Lato Publisheer stabilisce oogni quanto ill Topic è aaggiornato. L Lato Subscrib ber è una rrichiesta minima di ffrequenza di aaggiornamentto che il P Publisher rem moto deve rrispettare. SHARE ED IIl servizio sup pporta ll’aggiornamen nto da parte ddi più Publish her. EXCLUSIVE O Ogni istanza può p essere m modificata da un solo P Publisher. RELIAB BLE IIl DDS garanttisce un sservizio affidaabile di cconsegna dei dati d inviati e assicura l’ev ventuale rritrasmissionee del ppacchetto in caso c di pperdita. BEST_EFF FORT IIl DDS si occu upa del ttrasporto di paacchetti nnella rete senzza ppreoccuparsi di d verificare ll’avvenuta con nsegna ddegli stessi. Specifica il livelllo di affidaabilità richiestto da un Subsccriber o offertto da un Publisher. Sppecifica il num mero d’istannze di un oggetto che dovrebbbero essere mantenute m in mem moria da un Suubscriber o da un Publishher. DESCRIZIONE E KEEP_A ALL IIl DDS conserrva tutti i vvalori delle isttanze. KEEP_LA AST IIl DDS ha meemoria ddell’ultimo vaalore ddell’istanza e scarta quelli ppiù vecchi. Figura 5 Deescrizione dellle Quality Of Service 177 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii 1.5 Im mplementtazioni OMG O DDS S Laa specificaa OMG DD DS, intenziionalmente,, non dà indicazioni i dettagliatee su come im mplementaree i servizi o gestire le risorse del DDS, quinndi i provider DDS son no liberi di inntrodurre innnovazioni. Ci C sono tre principali p im mplementazzioni dello sstandard DD DS: • RTI DD DS; • Prismteech OpenSpplice; • OpenD DDS. Lee varie impllementazionni differiscoono per i mo odelli di com municazionne, per le arcchitetture e lee tecniche d’’implementtazioni usatee. 1.6 Architettur A ra decenttralizzata Figura 6 RTI R DDS esem mpio di architettura decen ntralizzata L’architetturra DDS decentralizz d ata, unisce in uno stesso prrocesso i thread di coomunicazionne e di conntrollo che sono s utilizzzati dal DCP PS per istauurare la con nnessione e geestire le QoS. Il vantagggio di quest’architetturra è che ognni applicazione è auton noma e non haa bisogno di d nessun deemone, in questo q modo o la latenzaa e il jitter ssono minori rispetto a unn’architetturra centralizzzata e nonn vi è la presenza di un unico ppoint of failure. Uno svvantaggio è che alcunni dettagli della d config gurazione (ccome l’indiirizzo di multicast, m il nuumero di poorto, i param metri relativvi ai differeenti tipi di trasporto t e il modello reliability) deevono esserre definiti nel livello appplicativo con c un sovraaccarico dell lavoro da parte dello 188 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii svviluppatore e una magggiore probabbilità di com mmettere errrori. Figura 7 Architettura A RTI R DDS R Data Distribution RTI D n Service [R RIF. 16] è un networkk middlewaare per le ap pplicazioni diistribuite Real R Time, basato su un’architett u tura decentrralizzata. U Utilizza il modello m di coomunicazionne Publish--Subscribe implementtando l’APII DCPS (D Data Centrric Publish Suubscribe) alll’interno del d DDS (D Data Distrib bution Servvice) di OM MG per i sistemi Real Tiime. RTI DDS è composta c daa una librerria run-timee (RTI DDSS Library), uun database (RTI DDS D Database) e una serie di d processi (RTI DDS Task). La libreria l è linnkata all’ap pplicazione uttente, menttre i processsi demonee gestiscono o le sottosccrizioni e i servizi, mandano m e riccevono le pubblicazion p ni, effettuanno il marshaaling e l’unnmarshalingg dei parameetri. Anche il database, che contieene dati rigguardanti un gruppo di d Publisheer e di Sub bscriber, è agggiornato e condiviso dai processi. Questo tipo di architettura sim mmetrica permette p di agggiungere e rimuovere,, in manieraa del tutto diinamica, Puublisher e Suubscriber. RTI DDS consente il seettaggio di ulteriori u parrametri di QoS Q in aggiiunta a quellli standard sppecificati dal d modelloo DDS, per esempio è possibille sceglieree tra due modelli m di coomunicazionne, multiccast e u unicast, configurandoo rispettivvamente le policy TR RANSPOR RT_MULTIC CAST e TR RANSPORT T_UNICAST T. 199 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii 1.7 Architettur A ra federatta Figura 8 OpenSplicee esempio di architettura a f federata L’architetturra DDS fedeerata utilizzza un proceesso demonne distinto pper ogni intterfaccia di reete. Il demoone dovrebbbe essere innizializzato su ogni noddo prima deell’instaurazzione della coonnessione tra i vari partecipanti. Una voltta attivato, comunica con i dem moni DCPS prresenti suglli altri nodi per istauraare un canaale di comunnicazione cche può esssere di tipo unnicast o muulticast e coonfigurato sul s valore della d QoS Policy RELIIABILITY. Il demone peermette il disaccoppiaamento dellle applicazzioni dai dettagli d di comunicazzione e di coonfigurazionne del DCP PS. In caso di presenzaa di più parrtecipanti DDS sullo sttesso nodo, laa scalabilità risulta maggiore rispeetto agli alttri modelli architetturaali, infatti, è possibile seemplificare la configurrazione dellle policy peer un grupppo di partecipanti aven nti la stessa innterfaccia dii rete. Uno svantaggioo di quest’aarchitettura è sicurameente la presenza di un unnico point of failure e la l necessità di eseguire ulteriori coonfigurazionni. F Figura 9 L'arrchitettura dii OpenSplice DDS 200 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii O OPEN SPLIICE Data Distributioon Service [RIF. 17] è un’impleementazion ne standard deella specificca DDS della Prismtech, basato su un’archiitettura di ttipo federatta. Utilizza unna shared--memory per p collegarre sia le applicazionni che rissiedono in un nodo coomputazionale, sia gli host con unn insieme di d servizi coonfigurabili ed estendib bili. Questi seervizi forniscono dellee funzionallità aggiunttive come il servizioo di networrking e di duurability. Utilizzando U un’architetttura di tipo o shared-m memory, i ddati sono fisicamente f prresenti una sola volta su ogni maacchina. Un n Subscribeer non vede tutti i datii realmente prresenti nellaa shared meemory, ma solo s quelli d’interesse. d Ogni appliccazione è diirettamente linnkata alle liibrerie di OpenSplice, O in questo modo m è posssibile utilizzzare le caratteristiche deel DDS e comunicare, in manieraa trasparentte, con i serrvizi pluggaable tramitee la shared m memory. La configurazzione di OppenSplice è effettuataa tramite unn file XML L, che può esssere facilm mente modifi ficato da un utente. Quest’architeettura riportta un basso overhead, una u buona scalabilità e ottime performance, sooprattutto alll’aumentarre del numeero di Publlisher e di Subscriber e, in particcolare, alla prresenza di tipi complessi, infattti, quando più entitàà sono pressenti su un na singola m macchina, è possibile ridurre il nuumero di co opie da effe fettuare del dato che deve d essere traasferito tra Publisher e Subscriberr. 1.8 Architettur A ra centrallizzata Figu ura 10 OpenD DDS esempio o di architettu ura C Centralizzata a 21 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii L’architetturra DDS cenntralizzata utilizza un n singolo demone d opeerante su di d un nodo deesignato. Il demone si occupa della gestionee delle informazioni necessarie per creare e geestire le connnessioni traa i partecipaanti DDS in n un dominiio. I dati passsano direttamente dai Puublisher ai Subscriber, S mentre è necessaria n laa comunicazzione con ill processo demone d per il controllo e l’inizializzzazione deelle attività (come la registrazion r ne dei tipi di dato, la crreazione deii Topic e l’aassegnazionne, la modiffica e il mattching dellee QoS). Il vaantaggio di quuest’architettura sta neella sempliciità dell’imp plementazioone e della cconfigurazio one poiché tuutte le inform mazioni di controllo riisiedono in un'unica loocazione. L Lo svantaggio è, senza duubbio, la preesenza di unn solo demoone che costtituisce un unico u point of failure. Figu ura 11 Open DDS O OpenDDS [R RIF. 18] è un’implem mentazione dello standdard DDS bbasata sull'aarchitettura ceentralizzata,, che utilizzza le inteerfacce CO ORBA, deffinite dalla specifica DDS, per l’iinizializzazione e il coontrollo del servizio. Il dato viene trasmesso ddal livello di d trasporto (P Pluggable Transport), T t tramite uno dei protoco olli definiti dalla speciffica di Open nDDS: • TCP; • UDP; • Multicaast reliable; • Best efffort. Il livello di d trasportoo permette alle appllicazioni di d implemeentare dei protocolli 222 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii peersonalizzatti, liberi di eseguire e il marshaling m di dati con formato peersonalizzato o, dato che laa trasmissioone dei datti non avviiene tramite CORBA.. OpenDDS S usa dellee efficienti vaarianti del Common C Daata Representation (CD DR) di COR RBA. Il DCPS Info formation Repository è un server di CORBA A che agiscce come inttermediario (bbroker) tra il Publisher e i Subscribber. Quando o un client richiede r unaa sottoscriziione per un Toopic, il DC CPS Inform mation Reppository loccalizza il Topic T e avvvisa tutti i Publisher essistenti dellaa locazionee del nuovo Subscriberr. L’Informaation Repossitory non è coinvolta neella propagaazione dei dati, il suoo ruolo è lim mitato allo scopo di sttabilire l’asssociazione Puublisher/Subbscriber. OpenDDS crrea un propprio ORB e un thread separato s su cui lanciarre l’ORB. Utilizza U dei thhread per prrocessare l’II/O non-CO ORBA in ing gresso e in uscita, inolltre un threaad separato è creato per pulire p le rissorse in casso di chiusu ura inaspettaata della connessione. Un calling thhread viene utilizzato quando un dato vienee pubblicatoo tramite DDS, in queesto caso il daato viene innviato ad oggni Subscribber connessso. Nel casoo in cui l’innvio si blocca, allora i daati possono essere accoodati per poi essere man ndati su sepparati servicce thread, ch he leggono tuutti i dati giuunti al Subscriber e acccodati per laa lettura dallle applicaziioni. OpenDDS innclude un fille base di coonfigurazione della struuttura per laa configurazzione di un innsieme di ogggetti globaali come ad esempio e il livello l di deebug, l’alloccazione dellla memoria e la locazioone del DC CPS Inform mation Rep pository cossì come lee implemen ntazioni di traasporto per i Publisher e i Subscribber. 233 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Capitoolo 2 Esecu uzione di una campa agna te est U campagnna di testingg comporta la creazionee di numeroosi test e connfigurazion Una ni. Eseguire quuesti test manualmentee comporta un u enorme spreco di teempo, oltre ad essere soggetto s ad errrori ed estreemamente tedioso. t Suunrise perm mette di autoomatizzare la l fase di testing permeettendo di configurare i parametri deel test casse tramite un’interfaaccia user friendly, e di avviiare autom maticamente l’eesecuzione del Benchm mark per la conduzione c e dei test. 2.1 Analisi A dellle proble ematiche N Nell’esecuzio one di unna campaggna di teest devonoo essere affrontate numerose prroblematichhe, che ne auumentano laa difficoltà, oltre ad esssere una posssibile causa di errori. Inn ogni fasee della cam mpagna si possono commetteree degli errrori che ne possono coomprometteerne l’avanzzamento, poortando ad un notevolle spreco ddi risorse oltre che di teempo. Inn ciascuna delle d fasi della campagnna di testing g si possonoo evidenziarre delle prob blematiche diiverse: • Deployyment/Avvioo/Arresto: o A ogni appplicazione si affiancaano una serrie di scrippt, spesso di Ad d difficile 244 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii configurazioone e comprrensione; • o P Possibilità d commetterre errori nellla configurrazione deglli script; di o P Possibilità d scegliere politiche di p di testing incoompatibili. Ricomppilazioni e/oo Riconfiguurazioni: o D Durante le attività a di testing è spessso richiestaa una fase ddi riconfigu urazione tra d test succcessivi (es. editing due e man nuale di file XML); o G Gestione dellla consistennza dell’app plicazione sui s nodi dell testbed (co odice e file d configurazzione). di • Monitoorare la sesssione di test da un unico o terminale video. A fine di seemplificare l’esecuzione della caampagna è stato creatto un Bench Al hmark che peermette l’aavvio dellaa campagnaa in maniiera semiauutomatica, infatti, deeve essere coonfigurato e avviato, innoltre, neceessita che i nodi n siano correttamen c nte configurrati. Quindi see da un lato il Benchm mark offre unna semplificcazione, daall’altro nonn permette laa completa auutomatizzazzione della campagna. c 2.2 Soluzione S adottata Suunrise, perm mette di auttomatizzaree completam mente l’eseccuzione di uuna campag gna di test, offfrendo: • Supporrto automatiico alle fasi di deploym ment/avvio/aarresto; • Riconfi figurazione automatica a tra test succcessivi; • Gestionne automatica della connsistenza fraa test successivi; • Monitooraggio della sessione di d test da un n unico term minale videoo; • Pulizia dei nodi daa codici ed eventuali e fille; • Disinsttallazione deegli applicaativi. Trramite Sunrrise è possibbile semplificare notev volmente laa conduzionne di una caampagna di teest, senza ill timore di incorrere in i errori o di sceglieree politiche incompatib bili, infatti, traamite un’innterfaccia usser-friendlyy, guida l’uttente nella configuraziione di tuttii parametri 255 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii evvitando l’inssorgere di errori. e A Anche l’utennte meno espperto può utilizzare u Su unrise per laa conduzionne di una caampagna di teest, infatti, viene v guidaato nella coonfigurazion ne dei param metri, nellaa configurazzione degli hoost partecipanti e nell’eesecuzione del d test. 2.3 Configuraz C zione dellla campa agna testt L’interfaccia “Nuova Misura” M perm mette la con nfigurazionne dei param metri per l’esecuzione deel test. La fiinestra è forrmata princiipalmente da d 3 campi: • QoS coonfigurationn • Networrk configuraation • Lancio Script Figura 12 Scchermata "Nu uova Misura" " N campo QoS Nel Q configuuration è poossibile deffinire i paraametri per lla conduzio one del test (N New), aprirre una coonfigurazionne precedentemente redatta r (Op Open), visualizzare o rim muovere laa configurazzione. I parrametri per la conduzioone del testt rappresenttano il test 266 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii caase che com mpongono il i test suite.. Ogni test case è costtituito da unn vettore dii input che raappresenta le l direttive per p il sistem ma, ovvero i parametri funzionali per la defin nizione del coomportamennto. L’utentte determinaa la suite ad deguata, e inn tal caso uutilizza il test suite per l’aavvio del test. Sunriise permettte di defin nire i paraametri dellla campagn na tramite unn’interfacciaa che perm mette di connfigurare tuttti i parameetri che posssono esseree forniti al Benchmark. L’utente viiene guidatoo nella com mposizione del d test casse, evitando o che possa s viene sccegliere dellle politichee contrastannti. Alla fiine della composizionne, il test suite m memorizzato o in un filee XML chee verrà utiilizzato perr la configuurazione deei test che coompongonoo la campagnna. N campo Network Nel N connfiguration e possibilee definire i partecipantti al test (N New), aprire unna configuurazione prrecedentemente redattta (Open),, visualizzaare o rim muovere la coonfigurazionne. Nel caso c in cuui si inteenda apriree una connfigurazionee di rete prrecedentemeente creata bisogna insserire la passsword per l’utilizzo l deel file. I parttecipanti al teest possono essere sceltti secondo due d modalitàà: • Autom matica: si inserisce l’’intervallo di indirizzi IP entro cui trovarre gli host colleggati. • Manuuale: si inseerisce manuualmente l’iindirizzo IP P dell’host cche si vuolee includere nella campagna di d test. A ogni nodo selezionaato viene assegnato il ruolo Ad r che ricoprirà nellla campagn na. I dati di oggni partecippante (utennte e passw word) vengo ono memorrizzati in uun file cripttato, a cui Suunrise potràà attingere per le successive fasi dell’esecuuzione senzza che l’uteente debba reeinserirle. Per ogni noddo Sunrise verifica v chee siano instaallati gli appplicativi neecessari per laa campagna,, e nel caso in cui non siano installlati procedee con l’instaallazione. Un U ulteriore fille contenennte gli indirrizzi dei noddi partecipaanti e i ruolli ricoperti verrà utilizzato per la coonfigurazionne della cam mpagna dal Benchmark k. N campo Lancio Scrippt sono preseenti i campii: Nel • s Path loocale degli script; • Path loocale dove salvare s i risultati; 277 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii • Path reemoto dove salvare gli script; • Visualiizzare finesttra di debugg; • Eliminaare applicativi installati. N campo “P Nel Path localee degli scrippt” va inseriito il percorrso dove si trovano gli script, che veengono inseeriti selezioonandoli traamite la fun nzione di sffoglia. Gli script dono o forniti in foormato com mpresso, nellla funzionee di sfogliaa è presentee un filtro che autom maticamente viisualizza sollo i file di taale formatoo. N Campo “Path Nel “ localee dove salvaare i risultati” viene inserito il perrcorso in cuii si intende saalvate i risulltati prodottti dalla cam mpagna di tesst. N campo “Path Nel “ remotto dove salvvare gli scrript” si inseerisce il perrcorso dovee si intende innviare gi sccript partenndo da /hom me/$USER in cui US SER cambiaa secondo l’utente, il peercorso è ugguale per tuttti i partecippanti e nel caso c non siaa presente saarà Sunrise a crearlo. Il check “Vissualizzare finestra fi di debug” d perm mette di visuualizzare laa finestra di debug per coontrollare il procedimennto del test controlland do anche l’eeventuale prresenza di errori. Il check “Eliiminare appplicativi insstallati” permette di eliminare e glli applicativ vi installati duurante la configurazionne dei parteccipanti. U volta chhe sono statii compilati tutti Una t i camp pi necessari per l’esecuuzione dellaa campagna dii test si proccede con il lancio l dei teest (Esegui)). 2.4 Deployme D ent L’avvio dellaa campagnaa test avvienne inviando su tutte le macchine m im mpiegate glii script che coompongonoo il Benchmark. I partecipanti p i al test sonoo: • Nodo Principale: P rappresentaa nodo dovee risiede Sunrise; • Main Node: N rapprresenta il noodo dove rissiede il Benchmark chee attiva il Pu ublisher; • Second dary Node: rappresentaano i nodi Subscriber. S Siia il Main Node N che i Secondary S N Node hanno il middlew ware installatto. 288 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Figu ura 13 Invio script s Peer il collegaamento e l’invio versoo le altre maacchine vienne utilizzataa la libreriaa Ganymed SS SH-2 per Java, che implementta il proto ocollo SSH H-28. Tale libreria permette la coonnessione SSH verso altre macchhine all’interrno di un prrogramma JJava. G Ganymed SS SH-2 conseente la creaazione di una u sessionne SSH, siaa per l’esecuzione di coomandi rem moti che perr l’accesso alla shell, inoltre i perm mette il portt forwarding9 locale e reemoto, la traasmissione locale, l l’X11110, il trasfe ferimento SC CP11 e SFTP P12. Suunrise stabiilisce una connessione c e SCP con tutti i noddi partecipaanti, i param metri della coonnessione sono fornitii dal file di configurazzione della rete r che si è importato nel campo 8 SSH (Securee SHell, shell ssicura) è un p protocollo chee permette di stabilire una sessione rem mota cifrata ad d interfaccia aa linea di comaando con un aaltro host. Il protocollo SSH‐2 è la version ne rilasciata nel 1996. 9 Il port forrwarding, a volte v chiamato anche tun nneling, è l'o operazione ch he permette il trasferime ento dei datii (forwarding) da un compu uter ad un altrro tramite unaa specifica porrta di comuniccazione. 10 X Window System, noto o in gergo com me X Window w o X11 o anco or più sempliccemente X, è,, di fatto, il ge estore grafico o standard perr tutti i sistemi Unix. 11 SCP, Securre Copy, è un modo sicuro o per il trasferrimento di file e tra un comp puter locale e un host remoto o tra duee host remoti, utilizzando il protocollo SSSH. 12 SSH File Transfer T Protocol or SFTP è un protoccollo di rete che prevede il trasferimeento affidabile di file e laa manipolazion ne di funzionaalità su ogni flusso di dati. U Utilizzato con il protocollo SSSH ‐ 2 per forrnire il trasferrimento di filee sicuro, ma è destinato ad essere utilizzaabile anche co on altri protoccolli. 299 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii “N Network coonfigurationn”. Prelevaate le info ormazioni necessarie, Sunrise effettua e la coonnessione e invia a tuttti i nodi l’aarchivio con ntenete gli script. s Il Bennchmark vieene inviato inn formato coompresso, al a fine di veelocizzarne la trasmisssione, nella directory in ndicata nel caampo “Patth remoto dove salvaare gli scrript”. Una volta invviato l’arch hivio verrà sccompattato. Sunrise, suuccessivameente, invia il i file XML L contenentee il test suitte e invia il fille contenetee gli indirizzzi dei parteecipanti e i ruoli che ricoprono, r cche verrann no utilizzati daal Benchmaark per l’avvvio della cam mpagna di test. t Sii avvia la faase di esecuzzione della campagna di d test. 2.5 Esecuzion E ne della campagna c a test Suunrise perm mette una duplice d moddalità di vissualizzazionne della cam mpagna tesst, che può esssere selezioonata dalla finestra “Laancia misure” selezionaando o menno il check “Visualizza “ finnestra di deebug”. N caso in cui Nel c il check è selezionatto una finesstra di debugg mostra l’aandamento del d testing. A All’interno d della finestrra compaionno i log delle varie azzioni che sii stanno efffettuano, in quuesto modo l’utente puuò controllarre sia l’andaamento del test, ma sopprattutto l’in nsorgere di evventuali erroori. Figura 14 Avvvio con finesstra di debugg 300 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii N caso in cui Nel c il check non sia staato selezionato si avviaa un progresss monitor che c mostra l’aavanzamentto del test. Figura 15 Avvvio con prog gress monitorr Inn entrambe le modalitàà l’utente puuò decideree di annullarre l’esecuziione del tesst tramite il puulsante “Terrmina” nella finestra dii debug o “A Annulla” neel caso del pprogress mo onitor. L’avvio del test consiste nell’atttivazione del d Benchm mark, che rrappresenta il nucleo deell’attività di d conduzionne della cam mpagna di teest. 2.6 Benchmar B rk Peer valutare le performaance di mecccanismi deel tipo Publlish/Subscriibe, come ad a esempio RTI DDS o Open O Splicee, vengono utilizzate u le seguenti metriche: m • Latenzza, definitaa come ill Round Trip T Time tra l’inviio del meessaggio e l’acknoowledgmentt inviato dall Subscriberr; • Jitter, definito com me la deviazione stand dard della latenza. Laa latenza è un param metro impoortante per la valutazzione delle performan nce, infatti, raappresenta il tempo neccessario perr trasmettere un messagggio minim male da un estremo e del coollegamentoo all'altro. La L misura della d latenzaa è di fondaamentale im mportanza nell’ambito n deelle trasmissioni time critical, c esseendo fondam mentale la velocità v di trasmission ne oltre che laa sicurezza. Nel DDS, e di conseguuenza nelle varie impleementazionii, risulta fon ndamentale 31 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii laa valutazionne della latennza, infatti,, un tipico scenario s di utilizzo è ill controllo del d traffico aeereo, dove anche a un lieeve ritardo nella n trasmisssione può portare p a rissultati disastrosi. Laa latenza viene definitaa come il Roound Trip Time, T che raappresenta lla differenzaa tra: • L’istannte di arrivo dell’echo innviato dall’ultimo Subscriber attivvato (T2); • Il temppo di invioo del prim mo messagg gio da parte del Publlisher verso o il primo Subscriiber attivatoo (T1). Il Subscriberr echoer è sempre unnivoco e raappresenta l’ultimo atttivato, ancche se è il s u Subscriber ad esseree echoer, innserendo neel messaggio il cookie un Puublisher a sollecitare deel Subscribeer che dovràà comportarrsi da echoeer. N caso un Nel nicast il Puublisher invvia i messaggi a tutti i Subscriber attivi, ma m soltanto l’uultimo Subsscriber attivvato invierà l’echo. Figuraa 16 Misurazzione del RTT T nel caso uniicast N caso mu Nel ulticast il Publisher invvierà il messsaggio soloo al primo Subscriber,, che a sua voolta lo invieerà ai restannti, anche inn questo casso è soltantoo l’ultimo S Subscriber attivato a che innvierà l’echoo al Publishher. Figura 17 Misurazzione del RTT T nel caso mu ulticast 322 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Il Publisher memorizza m l’istante dii trasmissione del messaggio e l’iistante in cu ui riceve il m messaggio dii ack dall’ulltimo Subsccriber. Nel valutare v la differenza d ffra i due istaanti, valuta laa velocità di trasferimennto da un noodo al’altro. Peer rendere l’applicazio l one pronta per p la fase di test, venngono inviaati dei camp pioni, detti “w warm-up”, prima delll’invio dei campioni effettivi. L’invio L dei campionii warm-up peermette la conclusione c e di qualsiaasi attività che c impieghi il nodo Subscriber,, in questo m modo viene evitata e qualssiasi interfeerenza. A titolo di essempio analizziamo il caso c in cui si s è deciso di d realizzaree una campaagna di test chhe utilizzi l’’unicast. F Figura 18 Fun nzionamento della campaggna di test A fine dell’’esecuzione dei test, Sunrise Al S avv via una nuoova sessione SSH versso il Main N Node, in questa sessionee avvia l’eseecuzione deel Benchmarrk. Il Benchmarrk attiva i partecipanti p i sui vari nodi, n attivaando il Pubblisher per l’invio dei 333 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii m messaggi. Il Publisher per p ogni meessaggio inviato, attennde l’echo ddell’ultimo Subscriber atttivato e valuta la latenzza come diffferenza tra l’istante di invio del m messaggio e l’istante in cuui riceve l’eecho. Il vallore della laatenza vien ne calcolatoo per ogni m messaggio inviato. i La m modalità di trasmissione t e del messaaggio e la politica adotttata dipenddono dai parrametri del teest case, infaatti, per ognni test case si s può adopeerare una poolitica diffeerente. Ad esempio nel caaso in cui si è inseritta la politica Best Efffort la perrdita di meessaggi non n ritarda la traasmissione,, infatti, il DDS si occupa dell trasporto dei pacchhetti nella rete senza prreoccuparsi l’avvenutaa consegnaa degli stesssi, quindi i messagggi persi non n vengono reecuperati. Nel N caso inn cui si è inserita i unaa politica Reliable, R laa perdita dii messaggi prrovoca un ritardo r nellla trasmissiione, infattii, in questoo caso, avrremo il recu upero e la rittrasmissione del messaaggio. In questo q caso a fronte dii un ritardoo nella com municazione abbbiamo un trasferiment t to di tipo afffidabile. Le politiche da adottaree sono preseenti nel file X XML che viiene inviatoo insieme al a Benchmaark, e che contiene lee Quality of o Service, ovvvero le quaalità che il servizio s devve offrire. A fine dellla trasmisssione di tuttti i campio Alla oni si ottienne il RTT, ovvero la latenza l del m middleware, per ogni caampione invviato. I valo ori della lateenza vengonno scritti daal Publisher inn un file chhe viene poosto all’inteerno di unaa cartella chhe identificca il test caase, inoltre alll’interno dii ogni Subsccriber si troova un file contenete c ill riepilogo ddella campaagna di test coon il numeroo di campiooni ricevuti e il numero o di campionni persi. 2.7 Conclusio C ne della campagn c na di test A conclusionne della cam mpagna di test i file contenenti c i risultati sono presen nti sui nodi Puublisher e Subscriber. S Suunrise autom matizza la raccolta r deii risultati traa i nodi prelevando i riisultati dai vari v nodi e innserendoli dove d indicaato dall’utennte nel cam mpo “Path locale dove salvare i risultati”, doove trovereemo un filee compressoo e una carrtella conteenente i risuultati. Al teermine del 344 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii prrelievo dei risultati viiene ripulitoo il testbed d dalle eveentuali carteelle create, inoltre se l’uutente ha selezionato s il check “E Eliminare applicativi installati”, verrà disin nstallato il m middleware. Figgura 19 Prelieevo dei risulta ati e pulizia del d testbed Laa raccolta dei risultatti avviene stabilendo una conneessione SCP verso il Main e i Seecondary noode, all’inteerno della directory d rem mota viene prelevata laa cartella co ontenente i rissultati che viene inviaata nella directory d sellezionata dall’utente d pper il salvaataggio dei rissultati. In questa q directtory vengonno raccolti tutti t i risultaati in una caartella Resu ults, inoltre Suunrise crea un archivioo di tale carrtella al finee di facilitaarne l’eventuuale preliev vo da parte deell’utente. Dopo l’invio dei risultatti Sunrise efffettua la pu ulizia dei noodi, tramite una connesssione SSH ellimina le carrtelle createe per la condduzione della campagnna di test. N caso in cui Nel c l’utente abbia selezzionato di eliminare e glii applicativvi Sunrise diisinstalla il 355 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii m middleware e eliminando le cartelle create durante l’instaallazione edd eliminand do il file di coonfigurazionne delle varriabili d’ambbiente. A conclusionne del preliievo dei rissultati e della pulizia del test, unna finestra di notifica avvviserà l’uteente della coonclusione del test. Figura 200 Conclusionee della campaagna test U volta chhe la camppagna è terrminata, i risultati Una r proodotti si troovano nellaa directory seelezionata dall’utente d e sono prontti per esseree analizzati. Figgura 21 Direcctory con i rissultati 366 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Capitoolo 3 Analis si dei dati d L’organizzazzione e l’anaalisi dei risuultati dei teest cresce essponenzialm mente al creescere delle coombinazioni di test. Peer facilitaree l’analisi dei d risultati è stata sviluppata un’’ulteriore fuunzionalità in Sunrise chhe permettee di processaare i risultaati prodotti dalla campaagna di testt producend do grafici e reeport. Durante la faase di analissi abbiamo due probleematiche da affrontare ovvero la modalità m di raappresentaziione dei datti e la modaalità di comp portamento rispetto gli outlier. 3.1 Outlier O G outlier rappresenta Gli r ano dei cam mpioni dallle caratterristiche estrreme, ovveero che si diifferenzino molto dai restanti cam mpioni. Perr una distriibuzione noormale, la deviazione standard assuume valore 5, ciò signiifica che cirrca 2% di tuutti i dati chhe provengo ono da tale diistribuzionee sarebbero consideratii estremi. Quando Q un laboratorio misura ripetutamente loo stesso cam mpione e unno dei risulttati sembra essere lonttano dal resto, un outliier test può esssere utile per p poter preendere una decisione. d 377 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Figura 22 2 Misure con outlier L’outlier testt maggiormeente accettaato dalla com munità analitica è il tesst di Grubb b [RIF. 8]. N test di Grubb Nel G per la determinnazione deg gli outlier si s misura ddi quanto differisce d il vaalore, che sii pensa posssa essere unn outlier, daagli altri valori. Si calcoola il rapporrto Z come laa differenza fra l’outlierr e la mediaa diviso la deviazione d s standard. See Z è grand de, il valore è lontano daggli altri e quuindi è un ouutlier. Nel calcolare c la media e la ddeviazione standard si coonsiderano tutti t i valorii, compresoo l’outlier. U volta ideentificato l’ooutlier si puuò decidere se eliminarrlo o mantennerlo. Una Inn Sunrise è stato adottaato un diffeerente algorritmo per laa determinaazione deglii outlier, di piiù semplice approccio,, ma egualm mente funziionale. L’uttente inserissce la sogliia massima deella deviazioone standarrd (STD Th hreshold) deesiderata, ovvvero la disspersione massima m dei caampioni intoorno al valoor medio, e nel caso in n cui il valoore della deeviazione sttandard sia m maggiore dellla soglia coonsentita, si opera elim minando il vaalore massim mo e il valo ore minimo daalla lista deii valori. In questo q moddo si eliminaano gli outliier che forniscono lo sccostamento deella deviaziione standaard dal masssimo desid derato. Talee algoritmo può esseree applicato viisto che, nell’analisi deei risultati, si è riscontrrato un basso numero di outlier in n relazione all numero di campioni. U problem Una matica di talle algoritmoo è rappresentata dallaa convergennza, infatti, potremmo 388 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii troovarci in una u situazione in cui l’algoritmo non converrge in quannto l’elimin nazione del vaalore massim mo e minim mo non portta al raggiun ngimento deel valore di tolleranza desiderato. Peer raggiunggere la sogliia desiderataa si potrebb be arrivare ad a una situaazione in cu ui vengono elliminati tuttti i campiooni. Per eviitare l’insorrgere di talle problemaatica viene inserita la diimensione massima che c può ragggiungere la lista. Nel caso in cui l’algo oritmo non coonverga si eliminano e g outlier fiinché il num gli mero di cam mpioni non raggiunge il i massimo coonsentito, giunti g al quale l’algoritmo termin na, anche see non si è rraggiunto il valore di sooglia desideerata. 3.2 Analisi A e Rapprese R entazione e dei Risu ultati Suunrise perm mette di autoomatizzare il i processo di d analisi deei risultati. Peer poter annalizzare i risultati r proodotti dalla campagna di test si pparte dalla schermata “C Crea Graficco”. Figura 23 Schermata S Crea Grafico L’interfaccia “Crea Grrafico” è divisa in du ue campi, che c corrispondono allle due fasi neecessarie peer l’analisi dei d risultati e la generazzione dei grrafici. Laa prima opperazione daa compieree è selezion nare i file che c si intenndono analiizzare, che 399 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii veengono scellti attraversso un file chhooser. Sun nrise permeette di selezzionare i sin ngoli file o diirettamente la directoryy contenentee i file da analizzare. a U volta seelezionato il file viene Una ricchiesto di innserire una label, che identificherà i à le statisticche del file sia nel graffico che nel reeport. L’utennte può elim minare un elemento dallla lista dei file da anallizzare semp plicemente seelezionandoolo e premenndo il pulsannte “X”. Figurra 24 Richiestta label per ill file da analiizzare. U volta che sono stati selezionatii tutti i file che Una c si intendde analizzarre, inizia la fase in cui si impostano i parametrii per l’analissi. N campo “STD Threshhold” si insserisce il vaalore di soglia della deeviazione staandard che Nel oggni file può raggiungerre. N campo “Dimensioone massim Nel ma” si insserisce la dimensionee massimaa che può raaggiungere la l lista in seeguito all’elliminazionee degli outlier, nel casoo venga postto uguale a 0 si utilizza l’impostazione di deffault che è il 10% dei campioni della lista che si sta annalizzando. N campo “G Nel Grafico da visualizzaree” si scegliee il grafico che c si desiddera creare. Suunrise perm mette di sceggliere fra: • Graficoo della meddia • Graficoo della deviazione stanndard • Graficoo Box and Whisker W Siia il graficco della meedia che ill grafico della d deviazzione standdard rappreesentano la m modalità classsica di anallisi dei risulltati e vengo ono rappresentati attravverso graficci lineari. 400 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Laa creazione dei grafici avviene graazie alla librreria JFreeC Chart. JF FreeChart è una libreriaa Open Souurce [RIF. 13] che viene utilizzata per generarre una gran vaarietà di graafici. Le caratteristiche principali di d JFreeChaart sono: • Realizzzazione di grafici g in maaniera sia bidimension b nale che triddimensionale, come ad esempiio bar chartt (orizzontaali e verticaali), serie temporali, t iistogrammi,, grafici di Gantt e a torta; • Export diretto dei grafici nei formati imm magine PN NG (Portable Network Graphic) e JPEG (Joint ( Photoografic Expperts Group)); • Possibiilità di aggiuungere toolttip ai graficci; • Possibiilità di implementare unno zoom intterattivo suii grafici; • Gestionne degli eveenti del mouuse sui grafiici; • Generaazione di Im mage Map HTML; H • Export dei grafici in PDF tram mite iText; • Export dei grafici in SVG tram mite Batik; • Accesso ai dati proovenienti da sorgenti di d diversa natura (databbase, file, ettc.) tramite interfaccce dataset dedicate d giàà disponibilli nella libreeria. a e di d creazionee dei grafiici viene visualizzato v L’avanzamennto del proocesso di analisi m atttraverso unn progress monitor. Figuraa 25 Analisi dei d risultati e creazione deii grafici Durante l’annalisi vengoono analizzzati i file selezionati s c contengono le misure della che 41 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii laatenza per ogni campione inviato dal d Publisheer. I file nonn contengonno unicamen nte i valori daa analizzaree, ma anchee delle infoormazioni aggiuntive a c ne perm che mettono unaa semplice leettura nel caaso in cui si s intenda visionarli. v Per P la creazzione delle statistiche necessarie, Suunrise autom maticamentte estrapola le informazzioni necesssarie. I file che proven ngono dalla caampagna dii test possoono essere direttamentte utilizzati per la fasse di analisi, senza la neecessità di apportare delle modiifiche. Il processo p auutomatico ddi estrazion ne dei dati peermette di semplificarn s ne notevolm mente l’anaalisi, infatti, l’utente noon deve più ù prelevare m manualmente e dal file i dati di inteeresse e an nalizzarli coon un suppoorto esterno o, quali ad essempio Miccrosoft Exceel o Matlab,, ma può dirrettamente prendere p il ffile e crearee il grafico, coon un notevvole risparm mio di tempoo, ma sopraattutto evitanndo l’insorggere di posssibili errori chhe possono avvenire neella manipollazione dei dati. Dopo l’estraapolazione dei dati viene v calco olata la devviazione sttandard, qu ualora non risspettasse laa soglia stabbilita, vengoono eliminaati gli outlieer operando secondo laa procedura prrecedentemeente descrittta. I campioni c ricavati dall’analisi venggono utilizzzati per la geenerazione dei grafici. Secondo il tippo di grafico che si inteende valutarre si calcoleerà una statiistica diverssa. Peer la scelta del numeroo di campiooni da inviaare si fa unn compromeesso tra il numero n dei caampioni e l’’accuratezza della stim ma che si inttende raggiuungere, natturalmente maggiore m è il numero di campioni da inviare, maggiore m sarrà l‘accurateezza della laatenza ricav vata. 3.3 Grafico G de ella media a Il grafico dellla media raappresenta la l media ariitmetica deii campioni, data dalla somma dei caampioni divviso il numeero dei camppioni. Laa media ci fornisce f unaa buona appprossimazione del valorre medio deel RTT. 422 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Figura 26 2 Grafico della media 3.4 Grafico G de ella deviazione sta andard Il grafico deella deviazioone standarrd rappreseenta il valorre della devviazione standard dei caampioni. Laa deviazionee standard o scarto quaadratico meddio è un inddice di dispersione dei daati intorno al a valore attteso. Il term mine deviazzione standaard è stato iintrodotto in i statistica daa Karl Pearson (On thee dissectionn of asymmeetrical frequuency curvees, 1894) asssieme alla leettera greca σ che lo rapppresenta. Dove rappresennta la mediaa aritmetica.. Trramite la deeviazione standard s è possibile p vaalutare la vaariazione deella latenzaa, ovvero il raange di valori entro cui oscillaa la latenzaa di un deeterminato test. La valutazione v deell’oscillazione dei vaalori risulta fondamenttale al fine dell’analissi, infatti, permette p di stabilire la variazione v e quindi permette p dii configurare opportunnamente lee eventuali appparecchiatuure che utiliizzano DDS S, in modo da poter insserire una toolleranza ad deguata per faar fronte ad eventuali sccostamenti dai d valori atttesi. 433 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Figgura 27 Grafi fico della deviiazione stand dard 3.5 Grafico G Bo ox and Whisker W L’analisi dei dati parte dalla d visuallizzazione dei d dati, un modo efficciente per fare fa ciò è il grrafico Box and a Whiskeer, che chiaameremo sem mplicementte box plot. Il box plott si basa su statistiche roobuste13. Consideriam C mo, ad esempio, il calcolo c dellla media, una delle opperazioni sttatistiche piùù semplice possibile e supponiam mo di aver oottenuto la serie s 2-3-24--3-4-3, la cuui media è 3, 3 in questo caso non sono presentti gli outlierr. Supponiaamo che sia prresente un outlier, o che può p essere dovuto d ad un u errore o ad a atre causse, quindi ottteniamo la seerie 2-3-2-44-3-4-11-3, la l media, adesso, è 4 che c non è una u buona rrappresentazzione della teendenza cenntrale di unaa serie di 6 valori di cui c 5 sono al di sotto di 4 e solo o uno è più grrande. La media m non è robusta nel n caso in cui si osseervano deglli outlier. Questo Q può esssere visto osservandoo la dispersione o la diffusione dei dati, ovvero la deviazione standard. Laa mediana rappresentta una robu usta analisii statistica per rappreesentare la teendenza cenntrale di unaa serie di misure, m infaatti, rappreseenta la meddia di due medie. m Nel caaso in cui i valori anaalizzati risuultano “strani” la meddiana offre un’osservazzione sulla teendenza media dei datii, infatti, see consideriaamo la seriee 2-3-2-4-33-4-3, la meediana è 3, 13 Vengono cchiamate robu uste statistich he perché sono molto più resistenti (robuste) alla presenza degli ou utlier rispetto o alla classica aanalisi statistica basata sulla normale disstribuzione. 444 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii coonsiderandoo un outlieer, quindi la l serie 2-3 3-2-4-3-4-11-3, la meediana è an ncora 3, e coontinuerebbbe ad essere 3 anche se l’outlier an nziché esseree 11 fosse 1100, quindi la mediana è robusta risppetto gli outtlier. L’intervallo interquarttile, IRQ (IInterquartiile Range) è un modo rrobusto per descrivere laa dispersionee dei dati, rappresentan r ndo l’interv vallo entro il quale si trrova la med dia del 50% deei valori coonsiderati. Il primo e il terzo in nterquartile,, vengono ccalcolati riccavando la m mediana dei valori, succcessivamennte si divid dono i cam mpioni in duue intervallli, il basso inntervallo e l’alto intervaallo, nel casso i valori siano s “stranni”, ovvero ssi sospetta la l presenza dii outlier, la l medianaa è inclusaa in entram mbi gli inntervalli. L La medianaa calcolata neell’intervallo dei bassii valori rapppresenta il primo qu uartile, ovvvero il valo ore entro il quuale si trovva il 25% dei d campionni, mentre la medianaa ricavata nnel secondo o intervallo raappresenta il i terzo quaartile, ovveero il valoree entro il quuale si trovvano il 25% % dei valori piiù alti. La diistanza interquartile rapppresenta laa differenzaa fra il terzo e il primo quartile. q Figurra 28 Grafico o Box and Wh hisker Laa mediana e l’intervalllo interquaartile vengo ono utilizzaati per la crreazione deel Box and W Whisker. Il box plot è rappresenntato da un n blocco (B Box) la cuui altezza rappresenta r l’iintervallo interquartile i e, così che il valore di base rapppresenta iil primo interquartile, 455 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii m mentre il vallore più altto rappresennta il terzo o interquartiile, inoltre una barra orizzontale o raappresenta la l mediana.. Due righee, detti anche baffi (W Whisker) coorrispondono ai valori diistanti 1,5 volte v la disstanza interrquartile a partire risppettivamentee dal primo o dal terzo quuartile. A volte veengono anchhe rappresentati nel grafico i valoori che fuoriiescono dalll'intervallo Alle deelimitato daalle due righhe come punnti isolati. Inn Sunrise sii è scelto dii creare il grafico g Bow w and Whiskker affinchéé ci sia uno o strumento agggiuntivo peer la valutaazione dei risultati r otteenuti. L’utennte può otteenere una panoramica p geenerale dei dati tramitee valutandoo nello stessso momentoo varie stattistiche, oltrre ad avere unna maggioree visione deella dispersiione dei valo ori. Figura 29 Grafico G Box and a Whisker 3.6 Creazione C e dei repo ort A All’interno d ogni scheeda conteneete i grafici vi è un puulsante che consente alll’utente la di crreazione di un u file di reeport. L’utente selezion na il pulsantte “Crea pdf df” in una deelle schede deei grafici, e seleziona laa directory dove d salvarre il file, tram mite un filee chooser. Il report è un u file pdff che contieene i graficci precedenntemente crreati e una tabella di rieepilogo chee contiene: • Minimoo valore reggolare; 466 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii • Massim mo valore reegolare; • Primo quartile; q • Terzo quartile; q • Media; • Medianna; • Jitter. utazione geenerale della campagn na, inoltre Laa creazionee del repoort permettee una valu peermette all’’utente di analizzare a u serie di una d risultati anche succcessivamentte senza la neecessità di ricreare r i graafici. Figgura 30 Repo ort Laa creazione del report avviene a tram mite la libreeria iText. iT Text [RIF. 14] 1 è una libbreria che permette p di generare file PDF, perrmettendo di d possibile auutomatizzarre il processo di creazioone e manip polazione. L’automatizzzazione si reende necesssaria quando o: • Per mootivi di tem mpo o di dim mensioni, i documenti in formatoo PDF non può essere prodottto manualm mente; • Il conteenuto del doocumento deeve essere calcolato c in base a inpuut utente; 477 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii • Il conteenuto deve essere e persoonalizzato o personalizzzabile; • Il form mato PDF contenuto devve essere serrvito in un ambiente a W Web; • I docum menti devonno essere creeati in " battch process"". iT Text po’ essere utilizzatto per: • Serviree un PDF a un u browser;; • Generaare dinamicaamente docuumenti da file f XML o banche datii; • Utilizzaare le carattteristiche innterattive deel formato PDF; P • Aggiunngere segnallibri, numerri di pagina, filigrane, ecc; e • Dividerre, concatennare, e maniipolare le paagine PDF; • Automatizzare la compilazion c ne dei modu uli PDF; • Aggiunngere le firm me digitali per p un file PDF. P A Alla fine deella creazioone un meessaggio di d notifica avviserà l’utente delll’avvenuta crreazione dell report. Figuraa 31 Creazion ne report Con la creaziione del repport si concllude la camp pagna di tesst. 488 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Capitoolo 5 Esemp pio cam mpagna di tes st Inn questo caapitolo Sunrrise verrà utilizzato u peer la valutaazione dei ttempi di reecovery14 a seeguito del manifestarsi m di communnication failu ures. 4.1 Testbed T I test t sono staati eseguiti presso p il Laaboratorio Ittem-Cini “C Carlo Savy”” di Napoli. Figu ura 32 Il Testtbed Laa struttura del d Testbed è compostaa da 5 calcolatori: 4 conn funzioni P Publisher-Su ubscriber e unno avente come scopo quello di simulare il comportame c ento di una rete soggettta a faults. Suui primi è stato utiliizzato com me sistema operativo la distribuzzione linux x Red Hat 14 Tempo di rrecupero, ovvvero misura deella latenza ch he si garantiscce a seguito deella perdita dii messaggi. 499 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Ennterprise 4, sull’altro una u Mandrakke 9.1. Soono state create due reti r LAN con indirizzii 192.168.11.0 e 192.168.2.0 e su ubnet-mask 2555.255.255..0. Alla rette 192.168..1.0 appartengono i terminali t 2,, 3 e 4 av venti come inndirizzo IP rispettivam mente 192.1668.1.1, 192 2.168.1.2 e 192.168.1.33. Nella caampagna di teest sono statti configuratti come Seccondary Nod de. A rete 1922.168.2.0 apppartiene il terminale 1, avente come indirizzzo IP 192.168.2.1, la Alla fuunzione di questo q nodo, nella camppagna di tesst, è stata quuella di Prim mary Node. Il terminale numero n 5, invece, i pressentava duee interfacce di rete eth11 ed eth2 (eeth0 è stata laasciata inuttilizzata per permetterre al term minale la connessione ad internet) aventi, risspettivamennte, come inndirizzo IP,, 192.168.1..4 e 192.168.2.1. Quessti due indirrizzi hanno raappresentatoo, quindi, i gateway g perr la rete 192 2.168.1.0 e 192.168.2.00. Su questo o terminale è stata eseguiita la versioone 2.0.12 di d NIST Net, simulatoree di rete. 4.2 Test T Suite e Il test suite per p la realizzzazione deel test è stato creato trramite Sunrrise, nella sezione che peermette la generazione g del test suitte tramite laa creazione del file xmll. Figura 33 3 File XML N Nella conduzzione della campagna c d test si è im di mpostato: • Numero Writer paari a 1; 500 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii • Numero Reader vaariante da 1 a 3; • Tipo dii messaggioo Full Avenuue; • Periodoo di pubbliccazione 10000 µs; • Best Efffort e Reliaable; • RTI; • Tipologgia di traspoorto Unicastt; • Formatto CRD; • Numero di messagggi inviati pari p a 1000. R definniscono la scala, ovveero le dimennsioni del sistema. s Al Il numero di Writer e Reader n di partecipanti p i cresce il numero n di messaggi m daa inviare, portando ad crrescere del numero unna diminuzzione dellee prestaziooni. Essend do il DDS S scalabilee all'aumen ntare delle diimensioni del d sistema le l prestazionni non degraadano. Il messaggio di tipo FullAvenue naasce dalla sp pecifica del progetto deella comuniità europea A Avenue per l'interoperabbilità tra i siistemi esisteenti per il coontrollo del traffico aerreo. Il periodo dii pubblicaziione rappreesenta il periodo interccorrente traa una pubbllicazione e l’aaltra da partte del Publisher. Peer la configuurazione deelle Quality of Service si è scelto di d mettere a confronto due d diversi tippi di serviziio basati enttrambi su prrotocollo UDP: U • Best Efffort: servizzio di tipo innaffidabile in i cui si puòò avere la peerdita di paccchetti; • Reliablle: servizio di tipo affiddabile che viene v gestitto tramite acck, in cui laa perdita di pacchettti viene gesstita tramitee il recupero o e la ritrasm missione. Il middleware testato è la l RTI OMG G. DDS permettte di sceglieere una dopppia tipologia di trasporrto: • Unicastt: i parteciipanti sonoo direttamen nte collegaati fra loro, per cui si s conosce l’indirizzo di ognuuno di essi; • Multicaast: non si conosce c l’inndirizzo di ogni parteccipante, ma si conoscee l'indirizzo del gruuppo a cui apppartengonoo. Inn questo casso si è sceltoo di adoperaare l’Unicasst. 51 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Il CDR è il foormato stanndard del DD DS per la raappresentaziione dei datti. Il numero di campioni inviati i incidde sull’accu uratezza delll’analisi chhe vuole esssere svolta, peer questa caampagna si è deciso di inviare 10 000 campioni. Tale valore ben si adatta alle noostre esigennze, infattii, la campagna non risulta estrremamente lunga ed inoltre le statistiche calcolate risulltano abbasttanza accurrate. Laa campagnaa di test si è svolta in due d diversi scenari. s Nell primo scennario la cam mpagna si è svvolta senza attivare la funzionalittà di perditta dei pacchetti di NIST Net. Neel secondo sccenario si è simulata la perdita del 5% dei paccchetti. Il numero di messaggi persi p è datoo dal numerro dei pacchhetti che soono andati persi p o non soono stati riceevuti corretttamente nelll’intervallo o osservazioone. Inn entrambi i casi la campagna è stata realiizzata con il medesim mo test suitee e con la m medesima coonfigurazionne. 4.3 Risultati R della camp pagna di test Figura 344 Risultati deella campagnaa test 522 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Peer valutare le l performaance di RTI DDS valuttiamo l’andaamento dellla media al variare del nuumero di noodi, valutanndo lo scennario in cuii viene utiliizzato NIST T Net per simulare s la peerdita di paacchetti e loo scenario inn cui NIST T Net non viene v utilizzzato e quind di non vi è peerdita di paccchetti. N caso Reliable vi è molta Nel m differeenza tra i du ue scenari, infatti, i RTI garantisce un u servizio afffidabile di consegna dei dati innviati e assicura l’eventuale ritraasmissione in caso di peerdita. L’auumento deel valore del d RTT è dovuto meccanism mo di recup pero e di rittrasmissione dei messaaggi persi. N caso Best Effort abbbiamo pocca differenzza fra i duee scenari, inn quanto laa perdita di Nel paacchetti nonn provoca ritardi, infa fatti, RTI sii occupa del trasportoo dei messaaggi senza prreoccuparsi di verificaare l’avvennuta conseg gna, quindi nel caso iin cui si peerdano dei paacchetti nonn vengono recuperati. 533 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Conclu usioni e svilupp pi futurri Loo sviluppo di Sunrisee ha apportato una no otevole sem mplificazionee nella con ndizione di peerformance test permetttendo di: • Automatizzare la fase di eseecuzione deella campagna di perfformance assessment, a riducenndone i temppi, la possibbilità di erro ore e lo spreeco di risorsse; • Automatizza la faase di pulizzia dei nodii del testbeed, rimuoveendo il codiice e i file generatti e disinstalllando gli appplicativi in nstallati; • Automatizzare la raccolta r dei risultati, ceentralizzanddoli su di unn unico nodo o; • Automatizzare l’aanalisi dei risultati, permettendo p o di ricavaare una serrie di dati statisticci che ne peermettono laa caratterizzzazione; • Creare grafici e repport. Trramite Sunnrise anchee un “non addetto aii lavori” può p condurrre una cam mpagna di peerformabilitty. U possibile sviluppo per Sunrise è la possibiilità di poterrlo estenderre ad altri middleware Un m baasati sul parradigma Pubblish/Subscribe. 544 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Appendice A Progettazion ne UML L A.1 Diagrammii di caso d’uso Trramite i diagrammi di d casi d’uso è possibiile otteneree una visionne di alto livello del sistema, illusstrando le fuunzionalità che c offre ag gli utenti. N digramm Nel ma sottostaante si fornnisce una panoramica p a generale delle funzionalità di Suunrise, ovveero la possibbilità di eseeguire il testt e la possibbilità di anaalizzare i rissultati della caampagna otttenendo graafici e reporrt. «uses s» Analisi risulta ati Cre eazione grafico g «uses s» Cre eazione report r Esecu uzione te est Attore Figura 355 Diagramma a casi d'uso 555 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii A.1.1 De efinizione e della fun nzionalità à “Esecuz zione testt” A Analizziamo la funzionaalità di “Essecuzione teest”, tale funnzionalità include la funzionalità fu dii: 1. Configuurazione paarametri tesst: vengono settati i parrametri per ll’esecuzione del test; 2. Deployyment: si eseegue il test; 3. Raccolta dati: si raaccolgono i dati prodottti dal test; 4. Puliziaa del testbedd: si puliscoono tutti i nodi n del tesst sia da evventuali carttelle create che daggli applicatiivi installatii. Config gurazione parametri test «uses» « «uses» Deplo oyment Esecuzion ne test «uses» «uses» » Racccolta dati Attore Pulizia a del testb bed Fiigura 36 Diaggramma della a funzionalitàà "Esecuzionee test" 566 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Caso d’uso: Esecuzionee test SC CENARIO O: L’utente vuole v avviarre la campaagna di test. Prre-condizioone: L’utentte si trova nella n scherm mata “Nuovaa Misura”. Peercorso norrmale 1. L’utentte configuraa i parametrri per la cam mpagna di teest; 2. Includee (Configuraazione paraametri test);; 3. L’utentte avvia la fase f di deplooyment tram mite il pulsaante “Start”; 4. Includee (Deploymeent); 5. Il sistem ma raccogliie i dati proddotti dalla campagna; c 6. Includee (Raccolta dati); 7. Il sistem ma effettua la pulizia del d testbed; 8. Includee (Pulizia teestbed). Poost-condiziione: I risuultati della campagnaa sono pressenti nella directory selezionata s daall’utente e i nodi sono stati ripulitti. Peercorso alternativo 1:: A punto 3 see l’utente seeleziona il pulsante Al p “An nnulla” si ritorna alla scchermata in niziale. Caso d’uso: Configuraazione paraametri test SC CENARIO O: L’utente deve d configgurare i parametri per la l conduzioone della caampagna di teest. Prre-condizioone: L’utentte si trova nella n scherm mata “Nuovaa Misura”e ha già inserrito i file di coonfigurazionne. Peercorso norrmale 1. 2. L’utentte selezionaa gli script: a. Ill sistema visualizza un file chooseer che visuallizza solo i file compreessi; b. L L’utente seleeziona il filee desiderato o; L’utentte selezionaa la directoryy locale dov ve salvare i risultati: 577 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii a. Ill sistema visualizza un file chooseer; b. L L’utente seleeziona la dirrectory desiiderata. 3. L’utentte inserisce la directoryy remota; 4. IF l’uteente selezioona la modaalità di debu ug verrà apperta una finnestra che permette p di visualizzzare l’andaamento della campagnaa; 5. IF l’uteente selezioona di elimiinare gli app plicativi insstallati, i proogrammi in nstallati per l’esecuuzione del teest verrannoo eliminati. metri sono stati s configu urati. Poost-condiziione: I param Peercorso alternativo 1:: A punto 4 see l’utente noon selezionaa la modalittà di debug verrà aperto un progreess monitor Al chhe mostra l’avanzamennto della cam mpagna. Peercorso alternativo 2:: A punto 5 se l’utente non seleziiona di elim Al minare gli applicativi installati, questi non veerranno elim minati dalle macchine che c partecip pano alla cam mpagna. nt Caso d’uso: Deploymen SC CENARIO O: Il sistemaa avvia il proocesso di deeployment. Prre-condizioone: L’utentte ha lanciaato i test tram mite il pulsaante “Start””. Peercorso norrmale 1. IF l’utente ha sellezionato laa modalità di d debug, il sistema aapre una sch hermata di debug che c visualizzza il log deell’esecuzion ne del test; 2. Il sistem ma invia, a tutti i nodi partecipanti, l’archivioo contenentee gli script, ponendolo nella diirectory seleezionata dalll’utente; 3. Il sistem ma scompattta l’archiviio; 4. Il sistem ma avvia l’eesecuzione degli scriptt: a. Ill sistema essegue lo scrript che inteerpreta il fille XML gennerando un n file di log contenente i parametri del d test; 588 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii b. Ill file di logg viene datoo in ingresso allo scriipt, insiemee al file di memo che contiene i nodi n parteciipanti al tesst, che avviia il test, cconfigurato in base ai p parametri insseriti; c. 5. I risultati dell test sono presenti p sui nodi parteccipanti. L’utentte può blocccare l’esecuuzione del test t in qualssiasi momennto tramite il pulsante “Termiina” della fiinestra di deebug o “Ann nulla” nella finestra dell progress monitor. m ultati sono presenti p sui nodi parteccipanti. Poost-condiziione: Il test è stato esegguito e i risu Peercorso alternativo 1:: A punto 1 see l’utente noon ha selezionato la mo Al odalità di deebug, il sisteema avvia un u progress m monitor che mostra m l’avaanzamento del test. Peercorso alternativo 2:: A punto 2 see la directorry non esistee viene auto Al omaticamennte creata daal sistema. Peercorso alternativo 3:: A punto 4 see si verificaa un errore il sistema genera Al g un messaggio m ddi errore e ill test viene blloccato. Peercorso alternativo 4:: A punto 5 see l’utente bllocca l’esecuuzione del test, Al t il test viene v bloccaato. Caso d’uso: Raccolta dati d SC CENARIO O: Il sistemaa deve raccoogliere i risu ultati presennti sui nodi ppartecipantii. Prre-condizioone: Il sisteema ha conncluso la campagna c d test e i rrisultati dell test sono di prresenti sui nodi n partecippanti. Peercorso norrmale 1. Il sistem ma preleva i risultati presenti p sui vari nodi e li invia al nodo princcipale nella directorry indicata dall’utente per il salvattaggio dei risultati; r 2. Il sistem ma crea un archivio dei risultati prresenti sul nodo n princippale; Poost-condiziione: I risuultati sono presenti neella directoory indicataa dall’utentee sia sotto 599 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii foorma di archhivio, sia coome cartellaa. Caso d’uso: Pulizia dell testbed SC CENARIO O: Il sistemaa deve puliree il testbed dalle d appliccazioni instaallate. Prre-condizioone: Il sistema ha conccluso la cam mpagna di teest e i risulttati del test sono nella diirectory indiicata dall’uttente. Peercorso norrmale 1. Il sistem ma elimina le cartelle create c per l’esecuzione del test daii nodi parteccipanti. 2. IF l’uteente ha seleezionato di eliminare e glli applicativvi installati: a. Ill sistema eliimina le carrtelle conten nenti gli appplicativi insstallati; b. Ill sistema modifica m il fiile di config gurazione contenente le variabili d’ambiente d che fanno rifferimento aggli applicatiivi da rimuoovere. 3. Il sistem ma notifica l’utente chee il test è terrminato. Poost-condiziione: Il test si è concluso e i nodi sono s stati riipuliti. Peercorso alternativo 1:: A punto 2 see l’utente noon selezionaa l’opzione di eliminazzione degli aapplicativi installati, Al i il sistema non effettua e la disinstallazio d one e i nodii continueraanno ad averre gli appliccativi. 600 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii A.1.2 De efinizione e della fun nzionalità à “Analisi risultati” A Analizziamo la funzionaalità di “Annalisi risulta ati”, tale funnzionalità iinclude la funzionalità fu dii: • Configuurazione deei paramettri per l’an nalisi: venggono configgurati i parrametri per l’analissi dei risultaati; • Elaborazione dati: si elaboranno i risultatii, a sua voltta tale funzionalità inclu ude: o C Calcolo statiistiche: si calcolano le statistiche dei d dati. • Creazioone grafico: si crea il grafico; g • Creazioone report: si crea il reeport. Configurazzione dei Paramettri per l’anassisi «uses» Creazione grafico «uses» «uses» Analisi risultati r Creazione report « «uses» «uses» Atto ore Calcolo sttatistiche Elaborazione dati F Figura 37 Diaagramma dellla funzionaliità Analisi rissultati 61 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Caso d’uso: Analisi risultati SC CENARIO O: L’utente vuole v analizzzare i risulttati prodottii dalla camppagna di tesst. Prre-condizioone: L’utentte si trova nella n scherm mata “Crea grafico”. g Peercorso norrmale 1. L’utentte configuraa i parametrri per la creaazione dei grafici g e del report; 2. Includee (Configuraazione dei parametri p per p l’analisi)); 3. Se l’uteente selezioona il pulsannte “Ok” parrte l’elaboraazione dei ddati; 4. Includee (Elaborazione dati); 5. Includee (Creazione grafico); 6. IF l’uteente selezioona la creaziione del rep port; 7. Includee (Creazione report). Poost-condiziione: I graffici sono staati creati e, se l’utentee lo ha richiesto, il rep port è stato geenerato. Peercorso alternativo 1:: A punto 3 see l’utente seeleziona il pulsante Al p “An nnulla” si ritorna alla scchermata in niziale. Peercorso alternativo 2:: A punto 6 see l’utente noon selezionaa la creazion Al ne del reporrt, questo noon verrà creeato. Caso d’uso: Configuraazione dei parametri p per p l’analisii SC CENARIO O: L’utente vuole conffigurare i parametri p peer la creaziione dei grrafici e del reeport. Prre-condizioone: L’utentte si trova nella n scherm mata “Crea grafico”. g Peercorso norrmale 1. 2. L’utentte selezionaa i file da annalizzare: a. Ill sistema visualizza un file chooseer; b. L L’utente seleeziona il filee desiderato o. L’utentte inseriscee la label che c contrad ddistingue il i file processato all’iinterno del 622 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii graficoo; 3. I file daa processaree sono inserriti nella listta dei file daa analizzaree; 4. L’utentte inserisce la soglia massima m che può raggiunngere la devviazione staandard; 5. L’utentte inserisce la dimensioone massim ma che la listta dei dati più raggiung gere; 6. L’utentte selezionaa il tipo di grrafico da viisualizzare tra: t a. G Grafico dellaa media; b. G Grafico dellaa deviazione standard; c. G Grafico box and whiskeer. metri sono stati configu urati. Poost-condiziione: I param Peercorso alternativo 1:: A punto 1.b se l’utente seleziona una Al u directorry vengono automaticam mente selezzionati tutti i file f che conntiene. Peercorso alternativo 2:: A punto 3 se Al s l’utente seleziona un u file e preeme il pulssante “X” qquesto verràà eliminato daalla lista deii file da anaalizzare. Peercorso alternativo 3:: A punto 4 see l’utente noon inseriscee alcun valorre o inseriscce 0 viene ggenerato un messaggio Al dii errore. Peercorso alternativo 4:: A punto 5 see l’utente noon inseriscee alcun valo Al ore viene generato un m messaggio di d errore, se innserisce 0 viiene inseritoo il valore di d default. Peercorso alternativo 5:: A punto 6 see l’utente noon selezionaa alcun graffico viene geenerato un m Al messaggio di d errore. Caso d’uso: Elaborazioone dati SC CENARIO O: Il sistemaa deve analizzzare i file contenenti c i risultati. Prre-condizioone: L’utentte ha avviatto l’elaborazzione dei rissultati. 633 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Peercorso norrmale 1. 2. FOR ogni o file da elaborare: e a. Il sistema s estrrae i valori da d elaboraree presenti neel file; b. Il sistema s effeettua il calcoolo delle staatistiche deii dati; c. Incclude (Calcoolo statisticche). Il sistem ma memorizzza le statisstiche calcollate. morizzate. Poost-condiziione: Le staatistiche sonno state mem Peercorso alternativo 1:: A punto 1 see si verifica un errore viene Al v generaato un messaggio di errrore. Caso d’uso: Calcolo staatistiche SC CENARIO O: Il sistemaa deve calcoolare le statisstiche dei dati. d Prre-condizioone: I valorii da elaboraare sono statti estratti daal file. Peercorso norrmale 1. Il sisteema calcolaa la media, la deviazio one standarrd, il minim mo e massiimo valore regolarre, il primo e il terzo intterquartile e la mediana. 2. WHIL LE la deviazione standdard è mag ggiore dellaa soglia impposta dall’u utente, o il numeroo dei valori nella lista non n ha raggiiunto la dim mensione maassima: a. Ill sistema eliimina il valore minimo o e massimoo; b. Ill sistema riccalcola le sttatistiche. Poost-condiziione: Le staatistiche sonno state calccolate. Caso d’uso: Creazione grafico SC CENARIO O: Il sistemaa deve crearee i grafici. Prre-condizioone: Le statiistiche sonoo state mem morizzate. Peercorso norrmale 1. Il sistem ma utilizza le statistichhe memorizzzate per creare i graficii; 644 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii 2. Il sistem ma visualizzza i grafici richiesti r dalll’utente su schede diveerse. Poost-condiziione: I grafiici sono statti creati. Caso d’uso: Creazione report SC CENARIO O: Il sistemaa deve crearee il report. Prre-condizioone: Le stattistiche sonoo state mem morizzate, i grafici sonoo stati creatti e l’utente haa selezionatto il pulsante “Crea pdff”. Peercorso norrmale 1. 2. L’utentte selezionaa dove salvaare il report:: a. Ill sistema visualizza un file chooseer; b. L L’utente seleeziona la dirrectory dov ve salvare il file di repoort. Il sisteema crea un u file pdf contenete i grafici creati e unaa tabella dii riepilogo conteneente le statisstiche calcoolate per ogn ni file analizzzato; 3. Il sistem ma avvisa l’utente dell’avvenuta creazione c deel file. Poost-condiziione: Il repoort è stato crreato. A.2 Diagramm D mi di attivittà I diagrammi di attività consentonoo di visualiizzare il fluusso di eseccuzione dell sistema e coome cambiaa direzione secondo s le diverse d condizioni e diversi stimolli. A Analizziamo i diagramm mi di attiviità delle fu unzionalità “Esecuzione “ e test” e “A Analisi dei rissultati”. 655 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma attività: Esecuzione test t Figurra 38 Diagram mma di attiviità: Esecuzione test 666 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma attività: Analisi A risulltati Figu ura 39 Diagraamma attività à: Analisi risu ultati 677 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii A.3 Diagrammii delle cla assi I diagrammi d di classe peermettono di d rappresenttare le diverrse classi e le loro relazzioni. A Analizziamo le classi che c componngono le fu unzionalità “Esecuzion “ e test” e “A Analisi dei rissultati”. Diagramma di classe: Esecuzione E e test Peer eseguire il test si utillizzano le classi: • Misuraa: contiene tute t le procedute per laa configurazzione dei paarametri neecessari per l’esecuuzione del teest; • Parteciipante: conttiene tutte lee proceduree necessarie all’esecuzione del testt. Misura a -d debug : bool -e elimina_applica ativi : bool -p path_xml : strin ng -p path_conf_testb bed : string -p path_locale : sttring -p path_script : strring -p path_remota : string s +s set_path_xml(in path_file : string) : void +s set_path_conf_ _testbed(in patth_file : string) : void +s set_path_locale_risultati(in pa ath_locale : strring) : void +s set_path_scrip pt(in path_scrip pt : string) : void d +s set_path_remo ota(in path_rem mota : string) : void v +s set_debug() : void v +s set_elimina_ap pplicativi() : void +llancia_test() : void v +b blocca_test() : void +a analizza_param metro() : bool +a apri_console() : void Pa artecipante 1..1 0..1 +invio_s script() : void +esegui_ _script() : void +blocca_ _script() : void +elimina a_cartelle() : vo oid +elimina a_applicativi() +preleva a_risultati() F Figura 40 Diaagramma di classe: c Esecuzzione test 688 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di classe: Analisi A Risultati Peer analizzarre i risultati si utilizzanoo le classi: • ConfiguurazioneAnnalisiRisultaati: contienee tute le proocedute per la configurrazione dei parameetri per poteer analizzaree i risultati; • ElaboraDati: conttiene tutte le l procedure necessarie all’elaborrazione dei dati e alla generazzione delle statistiche; • Graficoo: contiene tutte le proccedure per la l generazioone dei grafi fici; • Report: contiene tuutte le proceedure per laa creazione del report. Config gurazioneAnalisiRisultati --threshold_STD D : double -lista_file -dim_max : int : bool -grafico_media -grafico_STD : bool -grafico_box_an nd_whisker : bo ool -statistiche + +set_threshold_ _STD(in valore : long) : void + +set_dim_max( (in valore : int) : void + +set_grafico_m media(in path_lo ocale : string) : void v + +set_grafico_ST TD(in path_scriipt : string) : voiid + +set_grafico_bo ox() : void + +memorizza_fil e(in path_file : string) : void + +elimina_file() : void + +crea_grafico(in n statistiche : sttatistiche) : void d + +crea_report(in n statistiche : sta atistiche) : void + +verifica_param metro() : bool + +mostra_grafico o() : void + +salva_report() ) : void Elabo oraDati 1..1 1..* +analizza_da ati() : void +calcola_stattistiche() : void 1..1 Rep port 0..1 +genera_rep port() : void +elabora_re eport() : void 1..1 Grafico 0..* +genera a_grafico() : voiid +elaborra_grafico() : vo oid F Figura 41 Diaggramma di cllasse: Analisii Risultati A.4 Diagrammii di seque enza I diagrammi di sequenza permettonno di visuallizzare com me gli attori interagisco ono con gli ogggetti del sistema in unna serie di passaggi seq quenziali. A Analizziamo i diagramm mi di sequennza per le funzionalità f à “Esecuzionne test” e “A Analisi dei rissultati”. 699 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza per l’eseecuzione deel test Peer rendere più leggibiile il diagraamma di seequenza l’aarea A di seguito ripo ortata verrà sinntetizzata con c le azionni set_param metri(), ana alisi_param metri() e Parrametri setttati, inoltre peer lo stesso motivo nonn vengono innseriti i paraametri dellee funzioni. Taale sequenzza rappresennta le operaazioni da efffettuare afffinché venggano selezio onati tutti i paarametri perr l’esecuzione del test. A se et_path_xml() ParrametroSettato o analizza_parrametro() set_pa ath_conf_testbed ParrametroSettato o analizza_parrametro() set_path_script ParrametroSettato o analizza_parrametro() set_path_locale_risu ultati ParrametroSettato o analizza_parrametro() set_ _path_remota a ParrametroSettato o analizza_parrametro() s set_debug() ParrametroSettato o analizza_parrametro() set_elim mina_applicativi() ParrametroSettato o analizza_parrametro() Figura 422 Diagramma a di sequenza:: Area A 700 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza: Esecuzione test Diagramma di d sequenzaa nel caso in cui l’uteente non bllocchi il tesst e non si verificano errrori durantee l’esecuzioone del test. Figgura 43 Diagramma di seq quenza: Eseccuzione test 71 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza: Errore nell’esecuzzione del test Diagramma di d sequenzaa nel caso inn cui si veriffica un errorre durante l’esecuzionee del test. Figura 444 Diagrammaa di sequenza: Errore nell'esecuzione d del test 722 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza: Test blooccato Diagramma di d sequenzaa nel caso inn cui l’utentee decide di bloccare l’eesecuzione del d test. F Figura 45 Diaagramma di sequenza: s Teest bloccato 733 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza: Eliminaazione appllicativi Diagramma di d sequenzaa nel caso in cui l’uteente ha connfigurato i pparametri in n modo da elliminare gli applicativi installati. Figura 46 4 Diagramm ma di sequenzza: Eliminazione applicatiivi 744 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza per l’anaalisi dei risu ultati Peer rendere più leggibiile il diagraamma di seequenza l’aarea B di seguito ripo ortata verrà sinntetizzata con c le azionni set_param metri(), verif ifica_param metri() e Parrametri setttati, inoltre peer lo stesso motivo nonn vengono innseriti i paraametri dellee funzioni. Taale sequenzza rappresennta le operaazioni da efffettuare afffinché venggano selezio onati tutti i paarametri perr l’analisi deei risultati. Figura 477 Diagramma a di sequenza: Area B 755 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza: Analisi Risultati Diagramma di d sequenzaa nel caso inn cui non si verificano v e errori nell’aanalisi dei riisultati. Figu ura 48 Diagraamma di sequ uenza: Analissi risultati 766 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Diagramma di sequenzza: Errore nell’analisii dei risultaati Diagramma di d sequenzaa nel caso inn cui si verifficano deglii errori nell’’analisi dei risultati. r Figura 49 Diagramma di sequ uenza: Erroree analisi risulttati 777 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Appendice B NIST Net N Peer la conduzzione della campagna di d test verràà utilizzato il i simulatoree di rete NIS ST Net. N NIST Net è stato s svilupppato come parte p di un progetto dii ricerca e svviluppo di programmi p deell’U.S. Naational Insstitute of Standards S and Technnology (NI NIST) Intern networking Teechnology Group G (ITG) G) [RIF. 20].. Laa simulazione di eventii discreti viene effettuaata con lo sccopo di aiuttare a capiree e valutare il comportam mento del protocollo di comun nicazione trra i compoonenti di un u sistema diistribuito, innfatti, grazie alla simulazione, abb biamo un modello m astrratto del sisstema e del suuo comportaamento, chee permette di d catturarnee le funzionnalità e di foocalizzare l’attenzione suulle proprieetà critiche della distrribuzione, come c la toppologia, la tempisticaa, la banda occcupata e laa scalabilità.. In questo senso s è neceessario un meccanismo m o di simulazzione per la coonduzione della d campaagna di test che forniscca una base per l’applicazione deii criteri per laa conduzionne dei test. Il I meccanissmo di simu ulazione puuò essere uttilizzato perr aiutare lo svviluppatore applicando e definenddo un livello o sottostantee al test, chhe permetta di valutare e comprendeere le funzzionalità e le perform mance di un u compleesso protocollo intercoomponente, oltre a consentire c u un’astrazion ne di uno scenario rreale perm mettendo la sim mulazione di fenomenni comportaamentali qu uali, ad esem mpio, la perrdita di paccchetti e la lim mitazione di d banda. 788 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Figura 50 NIIST Net B.1 Strutttura e fun nzionalità L’emulatore NIST Net è formato daa cinque parrti differentti: • Un moddulo del kerrnel Linux che c intercettta i pacchettti di rete. • Un toool a linea di d comando per aggiun ngere, rimuuovere e modificare lee regole di simulazzione di retee. • Un toool grafico X Windowss per aggiun ngere, rimuuovere e m modificare lee regole di simulazzione di retee. • Un moodulo del keernel Linuxx per monito orare il com mportamentto delle reg gole e delle statisticche. • Un modulo del keernel Linux per intercetttare i pacchhetti di retee e reindirizzzarli verso una loccazione alterrnativa. L’emulatore NIST Net fornisce f diversi tipi di simulazioni s : • Bandwidth limitattion (Limitaazioni di banda): b perm mette di sim mulare diveersi tipi di collegaamento di reete, controlllando il num mero di byttes passati aattraverso il kernel. Se il flussso di paccchetti è minore del bandwidth b desiderato, non effetttua alcuna operaziione, altrim menti ritardaa i pacchettii per soddisfare la conddizione inseerita. NIST 799 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Net perrmette di sccegliere se inviare i il daato, all’inizio, a metà o alla fine del d periodo di temppo. • Packet delay (Ritaardo dei paccchetti): perrmette di sim mulare diveersi tipi di ritardo, r che può esssere fisso, variabile controllato c dall’utentee o distribuuito, cioè variante v in accordoo con il trafffico di paccchetti. NIST T Net contieene una disttribuzione di d ritardo di default che lo moddifica in basse ad una tav vola di distrribuzione nuumerica. • Packet reorderingg (Riordino dei paccheetti): divide lo stream ddi pacchettii in stream i ognuno ddi essi. Se il i ritardo è separatti, inserendoo dei valorii di ritardo differenti in abbastaanza elevato, uno streeam dovreb bbe arrivaree significatiivamente prima p degli altri, foornendo un semplice s algoritmo di riordino r deii pacchetti. • Packet loss (Perdiita dei paccchetti): si possono sim mulare due ttipologie dii perdita di pacchettti, o uniforrme o dipendente dal trraffico. • Packet duplication (Duplicaazione dei pacchetti): viene settaata la perccentuale di duplicaazione dei pacchetti, può operrando in maniera m ranndom e siimulare la ritrasm missione di un u pacchettoo. • Packet diversion (Deviazione ( e dei paccheetti): si sim mula la deviaazione di pacchetti da pplicazioni uno stream di dati verso un altro indirizzzo o un’altrra porta, dovve alcune ap p deeviati. di rete catturano i pacchetti d una simuulazione vieene scelto in n base alle caratteristicche del sistema che si Loo scenario di inntendono siimulare, in modo da poter ved dere il com mportamentoo del sistem ma in tali sittuazioni. N NIST Net inntercetta i pacchetti p d rete nel momento in di i cui attraaversano il kernel del sistema operrativo. Dallla versione 2.2 in avaanti, il kerrnel Linux è stato pro ogettato in m maniera moddulare e consiste in due parti separate: • Funzionni “Core” compilate c neel kernel per fornire le funzionalitàà base al sisstema. • Modulii del kernel che possonno essere carricati e de-ccaricati succcessivamentte. M Molte funziooni del Kernnel Linux soono state sp postate in programmi p m modulari ch he possono esssere caricatti e de-cariccati dal “coore” kernel in qualsiasii momento. L’applicazzione NIST 800 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii N è installaata come unn modulo del Net d kernel, e può esserre inserita o rimossa in qualsiasi m momento. B.2 Tool di d configu urazione di NIST Net N Dopo aver caricato il modulo m di NIST N Net nel n kernel, si s può contrrollare il modo m in cui “m maneggia” il i traffico dii rete. Questto può esserre fatto utiliizzando unoo dei due tool: • cnistneet (basato suu un’interfacccia testualee da linea dii comando) • xnistneet (un’interfa faccia graficca X Window ws) Enntrambi poossono esseere usati peer avviare l’emulatoree di rete N NIST Net e spegnere, agggiungere, modificare e rimuovvere regole,, oltre ad ottenere sstatistiche. NIST Net peermette di avviare a e teerminare l’eemulazione senza rimuuovere le regole di retee, inoltre si puuò passare facilmente f d dalle operazzioni normaali a quelle di d emulazionne di rete. Laa regola di emulazionee può essere abilitata o disabilitatta, fornendoo grande fleessibilità ai teest. Il tool cnistnnet gestiscee regole basate su ind dirizzi sorgeente e desttinazione in nsieme alla reegola. Regole differrenti possonno essere usate u per modificare m ill comportam mento del traffico t tra G indirizzii sorgente e destinazzione posso ono essere diifferenti enndpoint sullla rete. Gli sppecificati inn formato nuumerico o host-name, e formato host o retee. Un numerro di porta TC CP o UDP può p anche essere e aggiuunto agli ind dirizzi per inndicare un’applicazion ne specifica dii rete. Dopo la definnizione degli indirizzi, vengono in nseriti i speccifici valori di emulazio one di rete, coome il banddwidth, ritarddi, e perditee. Il tool xnistneet fornisce le l stesse funnzionalità del cnistnet, senza l’ambbiente grafico. Sii possono definire glii indirizzi sorgente e destinazione usando gli stessi formati di oppzione di cnnistnet, neglli opportunii box. 81 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii B.3 I tool opzionali di NIST Net Oltre alle funnzioni base di emulazioone di rete, NIST Net fornisce f ancche e due moduli m addonn programm mi e relativi programmii: • Murgebbox: visualizzazione delle statistiche s dell’emulaazione NIIST Net, separattamente dal modulo NIIST Net • Nistspyy: metodo per p controllaare il trafficco di rete inn real time dda un indiriizzo di rete separatto (la destinnazione può essere speccificato com me un hostnaame o un in ndirizzo IP, e un numero n di porta p TCP)). Ridirigen ndo tutto il traffico veerso una deestinazione alternattiva, si puòò settare un’’applicazion ne monito per p controlllare tutto il traffico di rete deffinito dalle regole di NIST N Net. 822 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii Biblioggrafia [11] Gerarddo Paolo Castellote, “OMG Data D Distrribution Service: Arrchitectural Overview”, Military M Coommunications Conferrence (MILC COM 20033)-Oct 2003 3, Vol.1 pg 2442-247 [22] “OMG G Data Diistribution Service: Real-Time R Publish/Suubscribe Becomes B a Sttandard”, Jaanuary 20055 IndustryInnsight [33] “The Object O Manaagement Grroup (OMG))” www.om mg.org [44] Russo, Savy, Cotrroneo, Sergiio “Introduzzione a COR RBA”, 20022 McGraw-H Hill [55] “Data-ceentric pervvasive inforrmation is the wave of the fuuture”, Au ugust 2006 DefenseElecttronics [66] M. Xionng, J. Parsoons, J. Edm mondson, H. H Nguyen, D. C. Schm midt, “Evalluating the Peerformance of Publishh/Subscribe Platforms for f Informaation Managgement in Distributed D Real Time annd Embeddeed System”,, Vanderbiltt Universityy [77] www.wikkipedia.org [88] D.L. Massart, M J. Smeyers-Ve S erbeke,a X. Caprona and Karin Schlesierb b, “Visual Prresentation of Data byy Means of Box B Plots”, 01-APR-055 LCGC Euurope [99] Matthew J. Rutherfo ford Antonnio Carzanig ga Alexandder L. Wollf , “Simulaation-based teest adequacyy criteria forr distributedd systems”, 2006 Founndations of S Software En ngineering [110] Prismtecch “OpenSpplice User Manual” M [111] Jason T.. Roff, “Fonndamenti di UML”, 200 03 McGraw w-Hill [112] www.gaanymed.ethzz.ch/ssh2 833 Un supporto auttomatico per la racccolta e l’analisi di dati sperimentalii di un mid ddleware per la distribuzione di datii [113] www.jfreee.org/jfreecchart [114] www.low wagie.com//iText/ [115] P.Th. Eugester, E P.A A. Felber, R. Guerrao oui, A.-M. Kermarrec,, “The man ny faces of puublish/subsccribe”, ACM M Computinng Surveys (CSUR) – June J 20003 [116] RTI 20006 ”RTI Datta Distributiion Service – User’s Manual M v.4.11” [117] Prismtecch “OpenSpplice User’s Manual” [118] TAO Deeveloper’s Guide G [19] Mark Carrson, Darrin n Santay “NIST N Net – A Linux-bassed Networrk Emulation n Tool” [220] www-x.antd.nist.goov/nistnet/ 844