Università degli Studi di Ferrara Facoltà di Ingegneria Università degli Studi di Ferrara Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica e dell’Automazione indirizzo Informatica ANALISI DEL TRAFFICO VOCE DI UN ENTE PUBBLICO Tesi di laurea di: ALBERTO TONELLO Relatore: Prof. Ing. GIANLUCA MAZZINI Anno accademico 2006-07 1 Università degli Studi di Ferrara Facoltà di Ingegneria Indice CAPITOLO 1........................................................................................................................ 3 Introduzione .................................................................................................................................................................. 3 1.1 La rete telefonica tradizionale ............................................................................................................................... 5 1.2 La rete dati e la commutazione di pacchetto ........................................................................................................ 6 1.3 La tecnologia VoIP ................................................................................................................................................. 7 1.3.1 Protezione delle conversazioni.......................................................................................................................... 8 1.3.2 VoIP e le compagnie telefoniche ...................................................................................................................... 9 1.3.3 Problemi aperti .................................................................................................................................................. 9 1.4 L’infrastruttura VoIP dell’Università di Ferrara ............................................................................................. 10 1.4.1 I server Linux .................................................................................................................................................. 12 1.4.2 Connessione con la rete telefonica nazionale .................................................................................................. 12 1.4.3 Database utenti ................................................................................................................................................ 13 1.4.4 I servizi di VoIP-Fe......................................................................................................................................... 13 CAPITOLO 2...................................................................................................................... 17 Asterisk ........................................................................................................................................................................ 17 I protocolli Asterisk: Iax ......................................................................................................................................... 19 I protocolli Asterisk: SIP ........................................................................................................................................ 19 I protocolli Asterisk: H.323 .................................................................................................................................... 22 I protocolli Asterisk complementari: RTP .............................................................................................................. 23 I protocolli Asterisk complementari: RTCP ........................................................................................................... 24 2.1 Archittettura interna di Asterisk ........................................................................................................................ 24 2.1.1 I moduli di Asterisk ........................................................................................................................................ 26 2.1.2 Asterisk Gateway Interface ............................................................................................................................. 27 2.2 Il diaplan di Asterisk ............................................................................................................................................ 28 2.3 Asterisk e i Database ............................................................................................................................................ 29 2.4 Sicurezza su Asterisk ............................................................................................................................................ 30 2.5 Conclusioni sull’importanza di Asterisk ............................................................................................................ 31 CAPITOLO 3...................................................................................................................... 33 MySQL ........................................................................................................................................................................ 34 3.1 Concetto di RDBMS ............................................................................................................................................. 35 2 Università degli Studi di Ferrara Facoltà di Ingegneria 3.2 Caratteristiche di MySQL ................................................................................................................................... 38 3.3 Principali Ragioni per usare MySQL ................................................................................................................. 40 3.4 Programmi per l’amministrazione di MySQL ................................................................................................... 43 CAPITOLO 4...................................................................................................................... 45 CDR ............................................................................................................................................................................. 45 4.1 CDR con MySQL.................................................................................................................................................. 48 4.2 CDR e VoIP-Fe ..................................................................................................................................................... 49 4.3 Python .................................................................................................................................................................... 50 4.4 Analisi CDR .......................................................................................................................................................... 52 CAPITOLO 5...................................................................................................................... 59 Analisi e ricerca di un modello .................................................................................................................................. 59 5.1 Analisi dei tempi interarrivo ............................................................................................................................... 61 5.1.1 Raccolta dei campioni e istogramma delle frequenze .................................................................................... 62 5.1.2 Calcolo di λ e distribuzione esponenziale ...................................................................................................... 63 5.1.3 Norma L2 e test del chi-quadro...................................................................................................................... 65 CONCLUSIONI .................................................................................................................. 71 BIBLIOGRAFIA E SITI DI RIFERIMENTO ......................................................................... 73 APPENDICE ...................................................................................................................... 75 3 Università degli Studi di Ferrara Facoltà di Ingegneria Capitolo 1 Introduzione U na delle realtà più interessanti e di maggiore attualità nel panorama odierno del mondo Information and Communications Technology (I.C.T.) è sicuramente la tecnologia VoIP, cioè la possibilità di utilizzare le sempre più versatili reti dati per fornire il servizio di telefonia, in sostituzione alle tradizionali linee PSTN. Questa sta assumendo un ruolo sempre più importante nel campo delle telecomunicazioni e viene indicata da molti come la tecnologia su cui puntare in futuro; infatti oltre ad aggiungere nuovi servizi evoluti al tradizionale servizio di fonia presenta anche un significativo risparmio economico per quanto riguarda il costo delle comunicazioni vocali a distanza, ma in particolar modo legato alla semplificazione delle infrastrutture oltre al fatto che l'implementazione di future opzioni non richiederà la sostituzione dell' hardware. Queste considerazioni sono avvalorate dal fatto che tutti i maggiori operatori telefonici stanno riversando buona parte delle loro risorse nella 4 Università degli Studi di Ferrara Facoltà di Ingegneria tecnologia VoIP cercando di garantire oltre a una qualità paragonabile alla telefonia analogica, una continuità e un’affidabilità di funzionamento per un servizio che è sempre più orientato alla diffusione di applicativi integrabili alla telefonia tradizionale e alle videochiamate sfruttando per l’appunto le reti IP. Gli obiettivi del VoIP sono per l’appunto quelli di integrare le reti di telecomunicazioni per poter trasportare dati, voce ed video, offrendo così un servizio multimediale e real-time. In questo contesto devono essere sviluppati dei centralini telefonici di nuova generazione che sfruttano il contesto della rete IP e garantiscano tutte le funzionalità delle centrali telefoniche analogiche tradizionali con la capacità anche di integrarsi alla normale rete telefonica. Questi centralini chiamati IP-PBX (Private Branch Exchange) non sono altro che server di rete su cui viene installato un software che è in grado di gestire e elaborare la comunicazione che viaggerà sotto forma di pacchetti IP sia questa costituita da video, audio o dati. Anche l’Università di Ferrara ha attraversato nel corso degli ultimi anni la migrazione alla tecnologia VoIP. La realizzazione di questo progetto, chiamato VoIP-Fe, non ha interessato soltanto gli aspetti relativi all'infrastruttura di rete, ma anche quelli legati ai servizi avanzati di fonia che sono stati appositamente progettati e realizzati in modo che siano gestiti direttamente dagli utenti via Web. Oltre a questo il progetto VoIP-Fe presenta come caratterista essenziale nella sua realizzazione la scelta di utilizzare solo tecnologie e software di tipo opensource. Il progetto ha portato alla realizzazione del nuovo sistema telefonico dell'intera Università di Ferrara ed è già in produzione e utilizzato dai suoi 1500 strutturati con circa 1800 apparecchi telefonici. Le dimensioni di questo progetto ne fanno tutt'oggi il primo e più importante esempio di utilizzo di questa tecnologia nella Pubblica Amministrazione italiana. 5 Università degli Studi di Ferrara Facoltà di Ingegneria 1.1 La rete telefonica tradizionale La rete telefonica tradizionale chiamata PSTN (Public Switched Telephony Network) ha due principali esigenze la trasmissione della voce e il routing cioè instaurazione della chiamata. La comunicazione tra due utenti viene realizzata tra le centrali componenti la rete PSTN instaurando un circuito fisico temporaneo dedicato, che viene realizzato allocando staticamente delle risorse di rete per costituire un circuito fisico che permetta la comunicazione. Quindi per tutta la durata della comunicazione, gli interlocutori dispongono di un canale dedicato non accessibile agli altri utenti, indipendentemente dal fatto che le parti siano in conversazione attiva. Per questo motivo la rete PSTN viene anche chiamata “rete a commutazione di circuito”. Al contrario le “reti a commutazione di pacchetto” instaurano dei circuiti virtuali senza dedicare in maniera esclusiva delle risorse ai due capi della comunicazione. Se da una parte l’instaurazione di un canale fisico fra la parte chiamante e quella chiamata garantisce una qualità costante durante tutta la chiamata, al tempo stesso questa soluzione comporta una bassa percentuale di utilizzazione della rete. Inoltre l’utilizzo del PCM (Pulse Code Modulation), come codec standard predeterminato a priori è limitante nel momento in cui si decida di utilizzare la rete telefonica per il trasporto di audio compresso con una maggiore efficienza, sia nel momento in cui si volesse trasportare audio ad una qualità più alta. Anche il tempo legato alla segnalazione e all’instaurazione della comunicazione è rilevante e influisce in maniera considerevole sul lavoro di gestione della chiamata da parte della rete. Le reti PSTN comportano investimenti proibitivi necessari a realizzare una rete capillare considerando poi il fatto che l’utilizzo della rete non è ottimizzato (le statistiche parlano di un utilizzo inferiore al 50% della banda disponibile) si può concludere che, tecnicamente, la tecnologia su cui si basa la telefonia classica sia migliorabile. 6 Università degli Studi di Ferrara Facoltà di Ingegneria L’evoluzione tecnologica si sta orientando sempre di più verso la realizzazione di reti convergenti (voce, dati e video) realizzate utilizzando protocolli basati su IP. 1.2 La rete dati e la commutazione di pacchetto La totalità delle reti dati oggi esistenti si basa sul concetto di commutazione di pacchetto: che prevede la suddivisione dell’informazione in pacchetti di dimensione abbastanza piccola a cui è aggiunta un'intestazione che contiene tutta l'informazione necessaria affinché il pacchetto possa venire inoltrato alla sua destinazione finale. I pacchetti vengono inviati individualmente attraverso la rete e vengono poi riassemblati nella loro forma originale quando arrivano a destinazione. Mentre in una rete a commutazione di circuito la capacità del canale trasmissivo è interamente dedicata ad una specifica comunicazione, la commutazione di pacchetto si rivela molto più efficiente nonostante la maggior quantità di dati inviata, in quanto i canali fisici sono utilizzati solo per il tempo strettamente necessario. Inoltre, poiché ogni pacchetto porta con sé la sua identificazione, una rete può trasportare nello stesso tempo pacchetti provenienti da sorgenti differenti. La commutazione di pacchetto permette quindi a più utenti di inviare informazioni attraverso la rete in modo efficiente e simultaneo, risparmiando tempo e costi mediante la condivisione di uno stesso canale trasmissivo (cavo elettrico, etere, fibra ottica ecc.). Storicamente la commutazione di pacchetto poneva qualche problema nel caso fosse necessaria una disponibilità garantita di banda o nelle trasmissioni real time: si pensi a una trasmissione video, dove le immagini arrivano con un flusso costante. Al giorno d'oggi è però possibile aggiungere una "priorità" ai pacchetti per garantire che un numero sufficiente di essi venga inviato, a scapito di altri pacchetti che non abbiano un'urgenza specifica. 7 Università degli Studi di Ferrara Facoltà di Ingegneria 1.3 La tecnologia VoIP Il Voice over IP è una tecnologia che rende possibile effettuare una conversazione telefonica sfruttando una connessione Internet o un’altra rete dedicata che utilizza il protocollo IP, anziché passare attraverso la rete telefonica tradizionale (PSTN) convertendo il segnale della voce in un segnale digitale. Questo può viaggiare compresso in "pacchetti" sulla rete dati, utilizzando un protocollo internet e subendo poi, il processo inverso per riconvertirlo in segnale vocale analogico. Le conversazioni VoIP non devono necessariamente viaggiare su Internet, ma possono anche usare come mezzo trasmissivo una qualsiasi rete privata basata sul protocollo IP, per esempio una LAN all’interno di un edificio o di un gruppo di edifici. Il VoIP oltre alla consueta telefonia introduce servizi più complessi integrando le infrastrutture di fonia con quelle dei dati e semplificando di gran lunga la gestione delle attività. E’ possibile infatti adottare sistemi di voice-mail per la gestione congiunta della telefonia e dei sistemi di messaggistica, come mail, fax e segreteria telefonica, configurabili gestibili e archiviabili direttamente da un’interfaccia web. Forme di comunicazione quali la Video conferenza, l'application sharing (applicativi su desktop condivisi), il white-boarding (applicazioni che consentono di vedere e interagire con una sorta di “lavagna”condivisa), e molti altri applicativi migliorano l'interazione e l'operatività a tutti i livelli. Altro punto di forza della tecnologia VoIP è il concetto di number portability. Infatti, una delle principali limitazioni della telefonia fissa tradizionale risiede nella sostanziale staticità del telefono destinatario. La tecnologia VoIP prescinde da questo concetto, avvicinandosi maggiormente alla fruibilità della telefonia mobile e quindi al concetto di “numero personale”. Un numero telefonico VoIP non individua più una specifica posizione fisica, ma identifica un utente e lo può seguire nei suoi spostamenti, purchè sia disponibile un accesso alla rete dati. Questo si traduce nella possibilità di spostare il proprio telefono VoIP da una sede a un'altra, ed essere immediatamente raggiungibile allo stesso 8 Università degli Studi di Ferrara Facoltà di Ingegneria numero. La gestione della sicurezza risulta inoltre essere semplificata visto che fonia e dati utilizzano le stesse risorse di rete a cui sono applicabili politiche di sicurezza unificate per l’accesso ai dati e alle risorse. Anche se al momento difetti di sicurezza non sussistono, con l’espansione di questa nuova modalità di comunicazione potranno verificarsi quegli inevitabili problemi che affliggono oggi la navigazione web. Per evitare l’insorgenza di tali problemi circa venti aziende di telecomunicazione e sicurezza informatica sparse nel mondo si sono unite in associazione, la VoIPSA (VoIP Security Alliance) per analizzare e individuare anticipatamente eventuali problemi di sicurezza a testimoniare l’importanza che questa tecnologia rappresenta come nuova frontiera della comunicazione. 1.3.1 Protezione delle conversazioni Il VoIP può offrire un significativo vantaggio per la tutela della privacy. Infatti in molte implementazioni VoIP il traffico vocale viaggia direttamente tra i terminali dei due utenti, e non attraversa una struttura di centrali di commutazione, su cui è normalmente installato un sistema di intercettazione anche se questo non è sempre vero, talvolta per motivi tecnici è necessario implementare sistemi VoIP che permettano l’intercettazione delle chiamata VoIP. In ogni caso utilizzando una connessione via Internet è possibile adottare una comunicazione sicura, con crittografia a chiave asimmetrica e firma digitale, che impediscono a terzi di intercettare la conversazione e manipolarla. Questo è un aspetto tutt’altro che sottovalutato anche dalle aziende, dove risulta fondamentale disporre di un canale sicuro per la comunicazione per mantenere riservate certe informazioni. 9 Università degli Studi di Ferrara Facoltà di Ingegneria 1.3.2 VoIP e le Compagnie Telefoniche VoIP è anche largamente utilizzato dalle compagnie telefoniche specialmente nei collegamenti internazionali. Per gli utenti questo utilizzo è completamente trasparente, nel senso che non si accorgono che le loro chiamate sono instradate su una rete IP anziché passare attraverso le normali centrali di commutazione. Telecom Italia, ad esempio, instrada su IP una percentuale significativa delle telefonate interurbane fra Milano e Roma (circa il 60%, dato del 2005). Le stesse compagnie utilizzano VoIP per abbattere i costi delle proprie chiamate interne, instradate attraverso la rete dati che collega gli uffici e le sedi interne. Inoltre riducono i costi delle chiamate verso l’esterno trasportandole, via rete, fino al punto più vicino alla centrale di commutazione. Alcune compagnie offrono un “gateway” (letteralmente via d’uscita) per connettere una rete VoIP alla normale rete a commutazione di circuito. Se si compone un normale numero telefonico, la chiamata viene instradata attraverso la connessione internet alla compagnia che gestisce il gateway, che provvederà ad effettuare il normale addebito del relativo costo. A volte le compagnie telefoniche sono anche proprietarie dirette del gateway, ed in questo modo realizzano un ulteriore risparmio. L’offerta VoIP da parte degli operatori di telefonia più grandi (su tutti Telecom Italia) verso i propri clienti si sta allargando, con le prime proposte commerciali che fanno leva sulla sempre crescente innovazione dei servizi legati all’audio-video over-IP, anche se tutt'oggi le installazioni di reti VoIP in edifici terziari ed abitazioni civili sono poche. 1.3.3 Problemi aperti Le reti IP non dispongono di per sé di alcun meccanismo in grado di garantire che i pacchetti di dati vengano ricevuti nello stesso ordine in cui vengono trasmessi, né 10 Università degli Studi di Ferrara Facoltà di Ingegneria alcuna garanzia relativa ingenerale alla qualità di servizio (Quality of Service (QoS)). Le applicazioni concrete del VoIP si trovano a dover affrontare problemi legati alla latenza e all’integrità dei dati. La difficoltà di fondo della tecnologia VoIP è la corretta ricostruzione dei pacchetti di dati ricevuti, tenuto conto del fatto che durante la trasmissione può cambiare la sequenza dei pacchetti e che alcuni pacchetti possono subire perdite o danneggiamenti delle informazioni contenute. E’ fondamentale quindi garantire che lo stream audio mantenga la sua correttezza temporale. Altro importante problema è mantenere il tempo di latenza dei pacchetti sufficientemente basso in genere minore di 300ms, in modo che l’utente non debba aspettare troppo tempo prima di ricevere le risposte durante le conversazione. È stato misurato infatti che il ritardo massimo accettabile per una comunicazione vocale è di 300ms. 1.4 L'Infrastruttura VoIP dell'Università di Ferrara Il servizio di fonia VoIP dell'Università di Ferrara, chiamato VoIP-Fe, è frutto della progettazione dell’infrastruttura di rete strettamente integrata nella rete MAN dell'Ateneo, realizzata nell'ambito del progetto Lepida@Unife all’intero del quale sono stati sviluppati tutti i componenti dell’infrastruttura per l’interconnessione, per il controllo degli accessi, per il monitoraggio, per la gestione della qualità, per l’allocazione delle risorse. L’intero progetto Lepida@Unife, è sviluppato con tecnologie open source per favorire il riuso e la salvaguardia degli investimenti e comprende oltre al servizio VoIP per la fonia anche il servizio Wi-Fe, per l'accesso wireless a Internet e Desktop-Fe, il desktop Web per l'accesso ai dati e alle applicazioni. La rete Lepida@Unife è gestita a layer 2 tramite Virtual LAN in grado di separare il traffico delle differenti strutture. Tutta la rete è basata sul protocollo IP, con un piano di numerazione privato in classe A. La conversione a indirizzi pubblici è realizzata mediante un sistema di NAT operante su un router open source, con accurate 11 Università degli Studi di Ferrara Facoltà di Ingegneria politiche di firewall. Il traffico di ogni utente è tracciato in ottemperanza alle attuali norme. La rete supporta in modo nativo IPv6 e Multicast. L’architettura dell’infrastruttura VoIP-Fe (rappresentata in figura 1) è realizzata su un software Asterisk installato su due server Linux per garantirne la ridondanza e quindi un servizio ad elevata affidabilità. Figura 1 : Architettura VoIP-Fè Questa architettura garantisce il funzionamento di 1800 i telefoni digitali, 150 i fax collegati, 3000 i numeri gestiti e inoltre 8 i nuovi servizi di peritelefonia sviluppati tra cui voice mail, click2dial, conference room, chiamata diretta IP ad altri enti. Il server è anche connesso a Internet, e ha quindi la possibilità di interconnettersi con operatori telefonici VoIP e di fare chiamate gratuite via Internet. 12 Università degli Studi di Ferrara Facoltà di Ingegneria 1.4.1 I Server Linux Mentre la parte relativa al software Asterisk sarà oggetto del prossimo capitolo ci limitiamo per adesso a descrivere gli altri componenti che si inseriscono nell’ambito del progetto VoIP-Fe e i motivi che hanno portato alla loro scelta. La decisione di usare dei server Linux è stata dettata da due motivi principalmente: innanzitutto il fatto che la piattaforma di riferimento del software Asterisk è appunto Linux (senza contare che è stata considerata l’esperienza sviluppata all’interno della facoltà proprio nella gestione di questa piattaforma). La seconda ragione è legata al perseguimento dell’utilizzo di tecnologie opensource che è il minimo comune denominatore dell’intero progetto. La scelta della distribuzione da adottare è caduta su Fedora che più delle altre garantiva certezze riguardo alla stabilità e agli aggiornamenti. Il dimensionamento del server, per quello che riguarda l’hardware, è il risultato di una fase di sperimentazione e test che ha portato all’utilizzo di un unico server con processore Pentium D e 1GB di RAM in grado di gestire completamente e senza sforzi l’intero carico della struttura in virtù dell’ottima integrazione con il server Linux e dell’estrema efficienza di Asterisk. 1.4.2 Connessione con la rete telefonica nazionale La scelta di una connessione con la rete telefonica tradizione consente al progetto VoIP-Fe di interfacciarsi con il mondo esterno oltre ad essere legata alla necessità di garantire una QoS (Quality of Service) costante anche durante le ore di punta. Questo ha permesso di evitare l’utilizzo di linee dedicate e inoltre ha dato la possibilità di scegliere tra nuovi operatori che forniscono un servizio VoIP. Si è deciso quindi di mantenere un collegamento preferenziale con un operatore telefonico affiancandogliene un altro per inoltrare le chiamate verso mobili con interessanti vantaggi economici. 13 Università degli Studi di Ferrara Facoltà di Ingegneria Inoltre rimane sempre la possibilità di inoltrare gratuitamente le telefonate sulla rete Internet attraverso il protocollo SIP. 1.4.3 Database utenti Per semplificare la gestione nella configurazione del server Asterisk si è deciso di interfacciarlo direttamente ad un database MySQL (tra l’altro è prevista una soluzione di base che utilizza i driver per MySQL, driver che sono già presenti nell’add on di Asterisk) per caricare le impostazione di configurazione legate al suo funzionamento. In questo database oltre alle informazioni relative all’accounting (indispensabili per il funzionamento dell’intera infrastruttura) sono presenti anche informazioni aggiuntiva inserite per il funzionamento dei servizi aggiunti implementati nell’ambito del progetto VoIP-Fe che offrono servizi di fonia avanzati e di cui verrà data in seguito una breve descrizione. Il database diviso in due tabelle memorizza nella prima, i dati su chi sia il proprietario del telefono e quali altri utenti abbiano il permesso di accedere alla configurazione dei servizi aggiuntivi del telefono, mentre nella seconda sono salvati, oltre ai dati necessari alla configurazione automatica dei telefoni, anche le impostazioni relative ai servizi aggiuntivi. 1.4.4 I Servizi di VoIP-Fe Una delle caratteristiche più importanti della tecnologia VoIP è quella di poter effettuare chiamate gratuite attraverso Internet, basate cioè sul protocollo SIP senza passare da nessun operatore telefonico. Utilizzando il protocollo ENUM è possibile utilizzare il servizio DNS per pubblicare un database distribuito contenente tutti i numeri di telefono contattabili direttamente da Internet senza passare sulla rete telefonica pubblica. 14 Università degli Studi di Ferrara Facoltà di Ingegneria L'Università di Ferrara ha aderito alla pubblicazione dei propri numeri attraverso questo servizio, rendendo quindi possibile chiamare direttamente da Internet i propri utenti. I servizi messi a disposizione da VoIP-Fe comprendono i servizi base messi a disposizioni da qualsiasi centralino telefonico e riguardano: • Segreteria telefonica: risponde alla chiamata dopo un numero configurabile di squilli. • VoiceMail: Il servizio Voicemail invia i messaggi della segreteria via e-mail, all'indirizzo specificato dall'utente. L'utente potrà quindi ascoltare i messaggi di segreteria con i tradizionali riproduttori multimediali presenti sui PC. • Trasferimento di chiamata (al volo): trasferisce una chiamata in corso verso un altro interno, premendo due pulsanti presenti sugli apparecchi telefonici e specificando attraverso il tastierino numerico il numero a cui girare la comunicazione. • Inoltro di chiamata: inoltra le chiamate entranti a un altro numero, dopo un numero di secondi configurabile. • Risponditore automatico: registra un messaggio vocale e lo imposta perché risponda automaticamente quando qualcuno telefona al proprio numero. • Richiama se occupato: se si telefona a un numero che risulta essere occupato, premendo il tasto 5 si attiva il programma di richiamo. A questo punto si può abbassare la cornetta. Appena il numero chiamato si libera viene stabilita la comunicazione. Inoltre sono stati implementati dei servizi avanzati di fonia basati su interfaccia Web. • Click2Dial: è possibile effettuare chiamate cliccando sul numero di telefono da chiamare presente nella rubrica di Ateneo oppure specificando il numero da chiamare direttamente da interfaccia Web. • Conference room: instaura comunicazioni telefoniche multipunto. Tali chiamate possono essere originate specificando i numeri coinvolti in un 15 Università degli Studi di Ferrara Facoltà di Ingegneria apposito form. Gli utenti invitati a partecipare alla comunicazione accettano la conferenza semplicemente sollevando la loro cornetta telefonica. • Chiamate di gruppo: inserisce più telefoni dentro uno stesso gruppo di lavoro. Ciò permette, a chi fa parte del gruppo, di ricevere sul proprio apparecchio le chiamate entranti sugli altri numeri • Blocco chiamate in uscita: blocca le chiamate di un telefono in uscita, impedendo a chiunque non conosca il pin di utilizzare l'apparecchio telefonico (e perciò il numero di telefono a esso associato). • Account virtuali: attiva e configura degli account secondari, utilizzabili con dispositivi mobili o softphone. • Chiamate gratuite verso l'esterno: chiamate gratuite ad altre organizzazioni aventi tecnologia VoIP. Per utilizzare tutti i servizi a disposizione gli utenti fanno uso delle stesse credenziali con cui accedono a tutti gli altri servizi informatici dell'Università di Ferrara. 16 Università degli Studi di Ferrara Facoltà di Ingegneria 17 Università degli Studi di Ferrara Facoltà di Ingegneria Capitolo 2 Asterisk A sterisk è un software open source sviluppato dalla Digium in ambiente Linux che permette di realizzare a basso costo una soluzione completa di PBX (private branch exchange) voice over ip, ossia una vera e propria centralina telefonica per uso privato e rappresenta una parte fondamentale nel progetto VoIP-Fe. Il suo nome proviene dal mondo Unix e Dos dove rappresenta un cosiddetto “carattere jolly” (*) cioè la possibilità di rappresentare ogni file. Asterisk è stato progettato per interfacciare qualsiasi tipo di apparato telefonico standard (sia hardware che software) con qualsiasi applicazione telefonica standard, in modo semplice e consistente è in grado cioè di gestire sia le comunicazioni VoIP che di interconnettersi con le linee PSTN sia analogiche che digitali. Oltre a questa presenta il vantaggio di essere un progetto Open Source, rilasciato sotto licenza GNU GPL. E’ possibile quindi per tutti accedere al suo contenuto liberamente inoltre 18 Università degli Studi di Ferrara Facoltà di Ingegneria attraverso la configurazione dei file e la modifica del codice sorgente si può personalizzare ogni aspetto di Asterisk per ogni esigenza. Esso si comporta come un PBX completo, supportando virtualmente tutte le caratteristiche della chiamata convenzionale, inoltre prevede lo sviluppo di numerose applicazioni fornendo una completa astrazione riguardo il collegamento fisico tra un’interfaccia e un’altra. La natura estremamente flessibile di Asterisk ne permette una facile evoluzione sia aumentandone le capacità a livello di codice sorgente, sia sviluppando tecnologie per il suo controllo e la sua gestione inoltre è possibile la distribuzione del carico realizzabile attraverso più installazioni di Asterisk ed integrate in un unico “sistema distribuito”. Figura 2 : Esempio architettura Asterisk Asterisk supporta tre protocolli VoIP: IAX (sviluppato specificatamente per Asterisk stesso), SIP e H.323 oltre ai protocolli standard per chiamate VoIP (RTP, RTCP). Questi verranno analizzati nelle pagine successive. 19 Università degli Studi di Ferrara Facoltà di Ingegneria I protocolli Asterisk : IAX L’ Inter Asterisk Xchange è usato per abilitare connessioni VoIP tra i server Asterisk e tra server e client che utilizzano lo stesso protocollo di fatto ora viene indicato con IAX2 in quanto il protocollo IAX è obsoleto. Utilizza un singolo flusso dati UDP per comunicare tra i due sistemi sia per il controllo che per i dati inoltre l’indipendenza dal codec gli permette in teoria di trasportare qualsiasi tipo di dati compreso il video. Il principale obiettivo del protocollo IAX è quello di minimizzare la larghezza di banda necessaria per la trasmissione dell'informazione prestando particolare attenzione al controllo, alle chiamate vocali individuali facilitando l’attraversamento per IAX l’attraversamento di un eventuale firewall, caratteristica che lo rende adatto a lavorare in reti NAT. La struttura di base del protocollo IAX permette di miscelare i segnali e più flussi di dati su un singolo flusso UDP tra due computer. Un'altra caratteristica importante è la capacità di minimizzare l'overhead in particolare riguardo i flussi voce trasportando su un singolo collegamento dati e segnali per più canali. Questa caratteristica chiamata trunking permette di unire più chiamate in un singolo insieme di pacchetti trasportando informazioni relative a più chiamate e riducendo quindi l’overhead senza introdurre ritardi. I protocolli Asterisk : SIP Il Session Initiation Protocol è un protocollo basato su IP che gestisce una sessione di comunicazione tra due entità per instaurare, modificare e terminare una sessione. E’ costituito da un'architettura modulare e capace di crescere con il numero degli utilizzatori del servizio utilizzando un protocollo di trasporto UDP. Di fatto SIP non fornisce servizi, ma primitive per implementarli per questo è usato come componente in un architettura più completa. 20 Università degli Studi di Ferrara Facoltà di Ingegneria Le sue funzioni principali possono essere riassunte in: • User location: determinazione dei terminali usati nella comunicazione; • User availability: identificazione della disponibilità delle parti ad impegnarsi in una comunicazione; • User capabilities: identificazione di media e parametri utilizzati; • Session setup: avviso, instaurazione dei parametri di una sessione su chiamate; • Session management: trasferimento e terminazione di una sessione, modifica dei parametri della sessione, e invocazione dei servizi. L’architettura di una rete SIP è composta essenzialmente da User Agent e server di rete. Gli User Agent sono dei terminali che possono assumere il ruolo di client e di server a seconda della situazione in cui ci si trova ad operare: • User Agent Client: inoltra le richieste di chiamata • User Agent Server: riceve le richieste e le soddisfa Figura 3 : User Agent Client-User Agent Server con Proxy server 21 Università degli Studi di Ferrara Facoltà di Ingegneria I server sono divisi in: • Proxy Server è un server intermedio in grado di rispondere direttamente alle richieste oppure di inoltrarle ad un client, ad un server o ad un ulteriore proxy. Al proxy server può essere delegata completamente la gestione della chiamata, evitando ai terminali utente di preoccuparsi di tutte le procedure di segnalazione nella loro interezza. • Redirect Server accetta le richieste SIP e invia al client una risposta di redirezione contenente l’indirizzo del server successivo. Questo tipo di server non accetta chiamate e non elabora o inoltra le richieste SIP. Figura 4 : Esempio funzionamento Redirect Server • Location Server implementa un servizio di risoluzione degli indirizzi: è dunque un database contenente informazioni sull'utente. • Registrar Server è un server dedicato o collocato in un proxy. Quando un utente è iscritto ad un dominio, invia un messaggio di registrazione del suo attuale punto di ancoraggio alla rete ad un Registrar Server. 22 Università degli Studi di Ferrara Facoltà di Ingegneria Figura 5 : Componenti ed architettura SIP I protocolli Asterisk : H.323 L’H.323 è un protocollo creato con l’obbiettivo di promuovere una standard in grado di fissare le specifiche per definire un' infrastruttura di trasmissione di dati multimediali, quali audio e video, su reti best-effort a commutazione di pacchetto, come quelle basate su protocollo IP. I componenti H.323 possono essere suddivisi in quattro categorie: • Terminali • Gateway • Gatekeeper • Multi Point Control Unit (MCU) Figura 6: Componenti ed architettura H.323 23 Università degli Studi di Ferrara Facoltà di Ingegneria Terminali Un Terminale H.323 e' un endpoint interconnesso alla rete in grado di comunicare in maniera bidirezionale interattiva real-time con un altro elemento H.323 e offrono funzionalità di controllo del sistema. Gateway Il gateway è un dispositivo, situato al confine tra la rete H.323 ed un’altra struttura, in grado di tradurre lo stream proveniente da un terminale H.323 e diretto verso un terminale dell’altra rete (ad es. PSTN, ISDN, ecc) e viceversa, inclusi i pacchetti di segnalazione e setup. Gatekeeper Dirige un gruppo di dispositivi H.323 e traduce gli indirizzi dei terminali o dei gateway nel corrispondente indirizzo IP. Opera un controllo della banda totale utilizzata, verifica l’autorizzazione delle chiamate ed eseguendo il routing delle stesse. Permette la definizione di politiche globali di sicurezza e di amministrazione del sistema. MCU Si tratta di un dispositivo in grado di supportare chiamate contemporanee tra tre o più end-point. E’ logicamente suddivisibile in due componenti: il multi-point controller (MC) che gestisce il controllo e la segnalazione delle chiamate e la negoziazione dei codec, ed il multi-point processor (MP) che effettua il mixing, la commutazione e l’elaborazione dei flussi audio, video e data tra gli end-point. I protocolli Asterisk complementari: RTP Il Real-Time Protocol fornisce le funzionalità di trasporto delle informazioni in H.323. In particolare, RTP consente il trasferimento in tempo reale punto a punto di informazioni interattive audio, video e dati su reti unicast o multicast: un tipico 24 Università degli Studi di Ferrara Facoltà di Ingegneria scenario di utilizzo è la videoconferenza. Le funzioni svolte da questo protocollo comprendono la ricostruzione al ricevitore della corretta sequenza dei pacchetti e della loro posizione nella scala dei tempi, consentendo quindi la ricostruzione dei sincronismi. RTP è basato sul protocollo UDP e viene usato in congiunzione con RTCP (RTP Control Protocol) che monitora la qualità del servizio e trasporta le informazioni riguardo ai partecipanti ad una sessione affiancando SIP e H.323 nella gestione della sessione stessa. Tuttavia in presenza di più sessioni distinte è necessario attivare più sessioni RTP, ognuna delle quali è identificata da una coppia di indirizzi di livello trasporto e nel caso di multicast l'indirizzo di destinazione è comune a tutti i partecipanti. I protocolli Asterisk complementari: RTCP Il Real-Time Control Protocol monitorizza l’invio dei dati e controlla e identifica i servizi. Dunque riconosce automaticamente il tipo di compressione utilizzato sulla linea e segnala al mittente e al destinatario eventuali problemi riscontrati sulla rete o sulla stazione di lavoro raccogliendo inoltre statistiche sulla qualità del servizio del protocollo RTP e trasportando le informazioni riguardo ai partecipanti ad una sessione. 2.1 Architettura interna di Asterisk Asterisk è un software modulare; a seconda delle esigenze possono essere aggiunti dei moduli alla sua struttura base permettendo al programmatore di concentrarsi su uno specifico problema e tralasciando eventuali aspetti accessori. Asterisk prevede sostanzialmente quattro tipi di moduli: le Applicazioni, i Canali, i Codec e i File. Questi verranno trattati in un secondo momento, prima infatti vale la pena analizzare come è organizzata la struttura interna di Asterisk. 25 Università degli Studi di Ferrara Facoltà di Ingegneria Figura 7 : Struttura Asterisk Il nucleo di Asterisk è costituito dai seguenti elementi: • PBX Switching: l'essenza di Asterisk, naturalmente, è quella di fare da Private Branch Exchange Switch, connettendo tra loro chiamate tra vari utenti. Lo Switching Core (nucleo) connette in modo trasparente gli utenti che chiamano utilizzando varie interfacce hardware e software; • Application Launcher: lancia applicazioni che offrono servizi come la voicemail, il file playback; • Codec Translator: usa codec caricati come moduli per la codifica e decodifica dei vari formati di compressione audio. Sono disponibili molti codec per soddisfare diversi bisogni e per raggiungere il miglior compromesso tra qualità audio e uso di banda; 26 Università degli Studi di Ferrara Facoltà di Ingegneria • Scheduler and I/O Manager: cura i compiti di basso livello di scheduling (interruzione e avvio di più processi) e di gestione del sistema per garantire performance ottimali sotto ogni condizione di carico. • Dynamic Module Loader : si occupa della gestione dei moduli in Asterisk che è effettuata in modo dinamico: questi vengono “caricati” e “scaricati” a seconda delle esigenze di configurazione. Inoltre prevede quattro moduli API (Application Program Interface – set di routines, protocolli e tools per creare applicazioni software) per facilitare l'astrazione dell'hardware e dei protocolli. I moduli API sono: • Channel API: si occupa del tipo di connessione sulla quale arriva una chiamata; • Application API: l'API dell'applicazione permette a vari moduli specializzati di essere inseriti per fornire varie funzioni. Conferenze, Paging, elenco di directory, Voicemail, trasmissione dati in linea, e molte altre funzionalità che un PBX deve offrire; • Codec Translator API: carica i codec in moduli per supportare vari formati di audio encoding e decoding come il GSM, il compressore a legge µ (usato negli USA) o quello a legge A (usato in Europa), e perfino l'MP3; • File Format API: si preoccupa della lettura e della scrittura di vari formati di file per la memorizzazione dei dati nel filesystem. 2.1.1 I moduli di Asterisk Le Applications di Asterisk sono dei moduli che vengono “invocati” in base a come è stato programmato il dialplan queste permettono grande flessibilità di gestione dando anche la possibilità di richiamare uno script esterno (AGI) 27 Università degli Studi di Ferrara Facoltà di Ingegneria I Channels implementano le varie tecnologie di comunicazione supportate da Asterisk. Ogni particolare channel ha il compito di curare tutti gli aspetti dipendenti dalla particolare tecnologia implementata come per esempio l’handshaking o il signaling. I Codec sono gestiscono i vari formati audio/video pensati per lo streaming. I moduli di tipo Codecs integrano una libreria in Asterisk che contiene i vari algoritmi di compressione utilizzati per codificare i vari stream audio/video. I moduli di tipo Files permettono di interfacciarsi alle risorse di cui Asterisk fa uso come per esempio file di configurazione in formato INI o database contenenti i parametri di configurazione quest’ultima soluzione prevede una grande flessibilità rispetto all’utilizzo diretto dei file ed è anche quella che è stata adottata per la gestione dei file di configurazione in VoIP-Fe. 2.1.2 Asterisk Gateway Interface Un’integrazione tramite AGI viene effettuata quando nel dialplan si necessita di una interazione con l'esterno non prefissata; in genere questo tipo di operazione è richiesta per effettuare azioni di gestione complesse come l’interfacciamento a un database o accedere a risorse di rete; operazioni che diventerebbero difficoltose o impossibili con l’uso delle applications. In modo analogo a come avviene per le CGI, le AGI permettono a programmi esterni di interagire direttamente con il dialplan, utilizzando qualunque linguaggio di programmazione, con l'unico requisito che tale linguaggio sia in grado di interagire con i tre descrittori stdin, stdout e stderr. Per scrivere script AGI sono disponibili librerie che si occupano di facilitarne la scrittura in molti linguaggi, fornendo librerie già pronte per l'uso per filtrare stdin e stdout. 28 Università degli Studi di Ferrara Facoltà di Ingegneria 2.2 Il dialplan di Asterisk Nel dialplan (ovvero "piano di chiamata") si definisce cosa deve fare il PBX quando riceve una chiamata, oppure quando un utente compone un numero in pratica controlla come le chiamate entranti e uscenti sono trattate e instradate e gestisce il comportamento di tutte le connessioni che attraversano il PBX. Figura 8 : Esempio di dialplan Il dialplan è composto da un gruppo di contesti che sono formati da collezioni di estensioni che rappresentano le istruzioni. I contesti possono anche fare riferimento a switch esterni permettendo l’allargamento del sistema verso l’esterno. I servizi implementati dai contesti includono importanti funzionalità, come la sicurezza, l’instradamento delle chiamate, l’esecuzione di messaggi e di istruzioni. Permettono inoltre funzioni di autenticazione con password e la possibilità di impostazione blacklist di utenti. Gli elementi costitutivi del dialplan sono contesti, estensioni, priorità e applicazioni ne verrà presentato sono un breve accenno. I contesti sono gruppi di estensioni che suddividono il dialplan in varie parti che possono interagire tra di loro; generalmente un’estensione definita in un contesto è completamente isolata dalle estensioni di un altro contesto. Il loro utilizzo più 29 Università degli Studi di Ferrara Facoltà di Ingegneria significativo è legato alla sicurezza: configurando i contesti è possibile impedire ad un determinato utente l’utilizzo di uno specifico servizio dando in ogni controllando quindi l’accesso al sistema. Le estensioni sono istruzioni definite all’interno dei contesti, e specificano cosa succede alle chiamate nel loro percorso attraverso il dialplan. Le priorità indicano l’importanza e l’ordine nell’esecuzione delle istruzioni. Le applicazioni specificano l’azione da eseguire sul canale corrente. 2.3 Asterisk e i Database I file di configurazione di Asterisk sono generalmente dei file di testo che vengono “caricati” all’avvio dell’applicazione e oltremodo possibile prevedere una soluzione che consente la gestione della configurazione Asterisk tramite Database effettuando le configurazioni attraverso pagine esterne script o pagine web. Questo tipo di soluzione prevede di non dover effettuare il reload oppure il restart quando vengono effettuati dei cambiamenti sul dialplan oppure sul profilo degli utenti infatti ogni configurazione e la relativa modifica viene ereditata direttamente dal Database. Inoltre attraverso l’uso di un database esterno è possibili gestire al meglio i progetti che richiedono implementazioni di server Asterisk ridondati oppure in modalità bilanciata. Ci sono due modalità per connettere Asterisk con un database esterno la prima prevede l’utilizzo del driver per MySQL, la seconda invece punta sul driver ODBC. Il driver per ODBC è certamente una delle soluzioni più flessibili in quanto utilizza l’approccio genericamente supportato da moltissimi Database, senza essere legato esclusivamente all’impiego di MySQL. Dall’altra parte è interessante sottolineare che gli sviluppatori di Asterisk abbiano previsto una soluzione di base che prevede i driver per MySQL già presenti nell’add on di Asterisk per rimarcare qualora ce ne fosse ancora bisogno il loro legame con il mondo open source. 30 Università degli Studi di Ferrara Facoltà di Ingegneria Il modulo di Asterisk preposto alla connessione con i database effettua le operazioni in realtime, in ogni caso se questo dovesse connettersi continuamente al database comporrebbe una gestione di quest’ultimo molto pesante. Il modulo Asterisk realtime può essere quindi configurato in due modalità: • Realtime statico: i dati sono prelevati dal server che ospita il DB esclusivamente nella fase iniziale e in corrispondenza dei reload di Asterisk. Il vantaggio di questa opzione, risiede nel carico molto leggero per il server e nella loro parziale indipendenza. Lo svantaggio è che non si tratta di un vero e proprio supporto realtime: dopo ogni cambiamento sul database occorre effettuare un reload di Asterisk • Realtime dinamico: in questa modalità ogni modifica nella configurazione del database si riflette immediatamente su Asterisk. Ovviamente se il server del DB dovesse venir meno tutti i vostri servizi si interromperebbero. 2.4 Sicurezza su Asterisk Per quello che riguarda i requisiti di sicurezza e stabilità dei sistemi coinvolti, nelle ultime versioni di Asterisk sono implementate diverse soluzioni orientate alla sicurezza e al supporto real time introducendo in particolare sistemi molto efficienti per il bilanciamento del carico (load balancing) e adatti a essere installati su piattaforme che prevedano la tolleranza ai guasti (faul tolerant) e tecniche di ridondanza. Per gli aspetti invece più strettamente legati al concetto di security è necessario implementare policy di sicurezza che impediscano a chiunque di chiamare qualsiasi destinatario definendo per esempio dei contesti multilivello per solo chiamate locali, internazionali ect. Vale sempre la pena inoltre specificare con quale identificativo di chiamate l’utente deve uscire sulla rete pubblica senza questo accorgimento potrebbe essere infatti possibile uscire con un identificativo fasullo. 31 Università degli Studi di Ferrara Facoltà di Ingegneria Spesso è utile anche consentire un numero limitato di chiamate simultanee per ogni utenza per non sovraccaricare eccessivamente il server. Come si è parlato ampiamente nella parte in cui sono state descritte le capacità dei moduli di Asterisk di collegarsi ad un generico database è importante che un server Asterisk di livello professionale si limiti ad implementare i servizi di base finalizzati a soluzioni Voice e Video Over IP. Sarebbe bene quindi installare tutto il resto, cioè apache web server, php, database di vario tipo, su altri server che possano quindi interfacciarsi opportunamente con la macchina Asterisk. Infine una caratteristica basilare che si ricollega all’uso del protocollo IAX è utilizzo delle porte in particolare la 4569 UDP è l’unica porta impiegata per la segnalazione e trasmissione della fonia. Risulta quindi particolarmente utile e adottare una policy restrittiva sui firewall per proteggere al meglio la propria rete voce e dati. 2.5 Conclusioni sull’importanza di Asterisk Lungo questa panoramica sono state analizzate le caratteristiche di Asterisk e diversi sono gli aspetti che rivestono un importanza rilevante e che gli hanno permesso di affermarsi nel mondo dei sistemi I.C.T. : • Estrema riduzione dei costi – combinato con un hardware telefonico Linux a basso costo, Asterisk può essere utilizzato per creare PBX con funzionalità maggiori di gran parte dei sistemi disponibili; • Controllo – Asterisk permette all’utente di avere il controllo del proprio sistema telefonico. Infatti la suanatura Open Source gli conferisce grande scalabilità e controllo nelle operazioni, • Rapida creazione e sviluppo – Asterisk permette alle applicazioni PBX e IVR di essere rapidamente create e sviluppate mettendo a disposizione dell’ utente una configurazione rapida e diagnostiche in tempo reale. 32 Università degli Studi di Ferrara Facoltà di Ingegneria • Ricche e ampie features di base – Non solo Asterisk è Open Source e sviluppa via software servizi molto costosi con sistemi proprietari, come voicemail, menù voce, IVR e servizi di conferenza, ma permette anche l’aggiunta di nuove features con rapidità e minimo sforzo; • Personalizzazione – Attraverso la semplice configurazione dei file e la modifica del codice sorgente, ogni aspetto di Asterisk può essere personalizzato. • Creazione dinamica del contenuto – Allo stesso modo in cui un server web permette all’utente una creazione dinamica del contenuto (es. consultazione degli orari dei treni, aggiunta di un post in un forum, modifica di password personale, ecc.), Asterisk permette di creare contenuto dinamico; • Dialplan estremamente flessibile – Il dialplan di Asterisk permette l’integrazione delle funzionalità di un PBX e un IVR. Molte delle features esistenti di Asterisk possono essere implementate utilizzando estensioni logiche. 33 Università degli Studi di Ferrara Facoltà di Ingegneria Capitolo 3 MySQL M ySQL è un Database management system (DBMS) relazionale, composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. Il codice di MySQL è di proprietà della omonima società, viene però distribuito con la licenza GNU GPL oltre che con una licenza commerciale. Esiste peraltro una clausola estensiva che consente l'utilizzo di MySQL con una vasta gamma di licenze libere. Esistono diversi tipi di MySQL Manager, ovvero di strumenti per l'amministrazione di MySQL. Uno dei programmi più popolari per amministrare i database MySQL è phpMyAdmin (richiede un server web come Apache_HTTP_Server ed il supporto del linguaggio PHP) le cui caratteristiche principali e le sue opzioni di configurazione standard verranno trattate in seguito. 34 Università degli Studi di Ferrara Facoltà di Ingegneria Nel 2004 si assiste all’introduzione di MySQL Cluster, che nato in origine come un database clusterizzato, scalabile e ad alte prestazioni, sviluppato per applicazioni complesse, come quelle che tipicamente si trovano nel settore delle telecomunicazioni, viene attualmente utilizzato anche nell'ambito del VOIP, dell'Internet billing, della gestione delle sessioni, dei siti di e-Commerce, dei motori di ricerca e persino nelle tradizionali applicazioni di back office. MySQL Cluster supporta le piattaforme VoIP ad alta disponibilità, effettuando chiamate telefoniche attraverso la connessione Internet broadband anziché utilizzando la tradizionale linea fissa, è economicamente molto vantaggioso. MySQL Cluster è un database comprovato che supporta piattaforme VoIP scalabili come SIP Express Router di iptelorg, per fornire in modo economico servizi VoIP ininterrotti e sempre disponibili a milioni di utenti. Anche Asterisk, come abbiamo visto nel capitolo precedente, si integra perfettamente con database Mysql per la gestione dei file di configurazione, ma anche per la gestione delle informazioni e per l’applicazione di funzionalità avanzate. In questo capitolo verrà presenta una carrellata sulle caratteristiche e il funzionamento di MySQL, per ovvie ragioni di sintesi alcuni aspetti verranno trascurati, per qualsiasi altro tipo di si rimanda ovviamente alla documentazione ufficiale di MySQL. 35 Università degli Studi di Ferrara Facoltà di Ingegneria 3.1 Concetto di RDBMS Introduciamo per prima cosa il concetto di database per poi elencare le caraterristiche di un DBMS relazionale. Un Data Base non è un altro che un insieme di dati logicamente correlati fra loro quindi i Data Base Management System (DBMS) sono i prodotti software in grado di gestire i database; le loro caratteristiche sono: • capacità di gestire grandi quantità di dati • condivisione dei dati fra più utenti e applicazioni • utilizzo di sistemi di protezione e autorizzazione per l'accesso ai dati stessi Possiamo identificare diversi tipi di database, in base alla loro struttura logica: • database gerarchici • database reticolari • database relazionali • database ad oggetti Il modello gerarchico, basato su strutture ad albero nelle quali ogni dato che non sia a livello radice ha uno e un solo padre, è quello che ha conosciuto il maggior utilizzo fino agli anni '80. Il modello reticolare deriva da quello gerarchico, rispetto al quale supera la rigidità della struttura ad albero nell'interdipendenza dei dati, ma la cui complessità ne ha impedito una larga diffusione. Il modello relazionale organizza i dati in tabelle, basandosi sulle relazioni fra essi. Il modello ad oggetti infine, il più recente, estende i concetti del modello relazionale adattandoli alla programmazione ad oggetti. I database di tipo relazionale sono, attualmente, di gran lunga i più diffusi. Il modello relazionale è stato introdotto nel 1970. Questo modello si basa sulle relazioni fra i dati, i quali vengono presentati in forma tabulare, cioè come un insieme di tabelle ciascuna composta da righe e colonne. Le caratteristiche di una tabella sono: • ogni tabella contiene i dati relativi ad una entità; 36 Università degli Studi di Ferrara Facoltà di Ingegneria • le colonne della tabella rappresentano i campi, ovvero le proprietà o attributi dell'entità; • le righe della tabella esprimono le ricorrenze dell'entità. Insieme al modello relazionale è stato introdotto il linguaggio SQL (Structured Query Language), che consente di operare sui dati tramite frasi che contengono parole chiave prese dal linguaggio corrente. Del linguaggio SQL sono stati pubblicati tre standard, l'ultimo dei quali risale al 1999. Visto l'ampio successo dei database relazionali, sono molti gli RDBMS presenti sul mercato ognuno dei quali ha le sue caratteristiche. La grande diffusione dei DB relazionali portò l'inventore del modello a definire, nel 1985, una serie di regole ("le 12 regole" di Codd) alle quali un DBMS dovrebbe attenersi per potersi considerare Relazionale. • Regola 0: il sistema deve potersi definire come relazionale, base di dati e sistema di gestione. Affinché un sistema possa definirsi sistema relazionale per la gestione di basi di dati (RDBMS), tale sistema deve usare le proprie funzionalità relazionali (e solo quelle) per gestire la base di dati. • Regola 1: l'informazione deve essere rappresentata sotto forma di tabelle. Le informazioni nel database devono essere rappresentate in maniera univoca, e precisamente attraverso valori in colonne che costituiscano, nel loro insieme, righe di tabelle. • Regola 2: La regola dell' accesso garantito:Tutti i dati devono essere accessibili senza ambiguità (questa regola è in sostanza una riformulazione del requisito per le chiavi primarie). Ogni singolo valore scalare nel database deve essere logicamente indirizzabile specificando il nome della tabella che lo contiene, il nome della colonna in cui si trova e il valore della chiave primaria della riga in cui si trova. • Regola 3: trattamento sistematico del valore NULLIl DBMS deve consentire all'utente di lasciare un campo vuoto, o con valore NULL. In particolare, deve gestire la rappresentazione di informazioni mancanti e quello di informazioni 37 Università degli Studi di Ferrara Facoltà di Ingegneria inadatte in maniera predeterminata, distinta da ogni valore consentito (per esempio, "diverso da zero o qualunque altro numero" per valori numerici), e indipendente dal tipo di dato. È chiaro inoltre che queste rappresentazioni devono essere gestite dal DBMS sempre nella stessa maniera. • Regola 4: la descrizione del database deve avvenire ad un livello logico tramite i metadati. • Regola 5: deve esistere un linguaggio che permetta la gestione dei dati (come SQL) • Regola 6: si possono creare delle viste per vedere una parte dei dati. queste viste devono essere aggiornabili • Regola 7: le operazioni che avvengono su database devono avvenire anche sulle tabelle • Regola 8: I dati memorizzati nel database devono essere indipendenti dalle strutture di memorizzazione fisiche • Regola 9: i dati devono essere indipendenti dalla struttura logica del database per garantire la crescita naturale e la manutenzione del database • Regola 10: le restrizioni sui dati devono essere memorizzate nel database • Regola 11: l'accesso ai dati è indipendente dal tipo di supporto per la lettura o memorizzazione degli stessi • Regola 12: l'accesso ai dati non deve annullare le restrizioni o i vincoli di integrità del linguaggio principale (SQL). Interpretando rigidamente queste regole, sono ben pochi i sistemi che potrebbero propriamente fregiarsi di questo titolo. Anche a MySql, soprattutto nelle versioni non recentissime, mancano alcune funzionalità, tuttavia la versione 5.0 introduce nuove funzionalità che vanno a colmare tali lacune e soprattutto mettono MySql sullo stesso piano dei DBMS concorrenti facendo diventare quello che è il più diffuso database open source un vero e proprio DBMS di livello enterprise. 38 Università degli Studi di Ferrara Facoltà di Ingegneria 3.2 Caratteristiche MySQL Il database MySQL è formato da un certo numero di programmi. Fra questi, il principale è naturalmente mysqld, cioè il server vero e proprio. Oltre a questo, nelle distribuzioni per Windows e per Linux in formato RPM esiste MySQL-Max, che è una versione del server compilata con funzionalità aggiuntive di cui le principali sono i supporti per le tabelle InnoDB e BDB. Le opzioni disponibili per mysqld, si possono specificare sia sul file di configurazione che sulla riga di comando, oltre a passarle allo script di avvio che le ritrasmette integralmente al server. MySQL è il programma client a riga di comando che consente di collegarsi al server MySQL per sfruttarne le funzionalità. Può essere usato in modo interattivo o non interattivo. Per lanciare il programma è sufficiente richiamarlo indicandogli utenza e password. È possibile anche indicare direttamente a quale database ci si vuole collegare. Per quello che riguarda il sistema dei permessi di MySQL il concetto essenziale da tener presente è che l'identificazione dell'utente non avviene semplicemente attraverso il suo nome utente, ma dalla combinazione di questo con la macchina da cui l'utente si collega. Quindi due utenti che si collegano con lo stesso nome ma da due indirizzi diversi, per MySQL sono due utenti diversi. I permessi possono essere gestiti in due modi: attraverso le istruzioni SQL GRANT e REVOKE, oppure con le normali istruzioni SQL (INSERT, UPDATE ecc.) sulle tabelle interessate. MySQL permette di utilizzare numerosi tipi diversi di tabelle per la memorizzazione dei dati. La distinzione più importante fra i diversi sistemi è quella fra transazionali e non transazionali. I motori transazionali offrono alcuni importanti vantaggi: sono più sicuri (infatti permettono di recuperare i dati anche in caso di crash di MySQL o di problemi hardware), consentono di effettuare più modifiche e convalidarle tutte insieme e permettono di ripristinare la situazione preesistente se qualcosa va male. 39 Università degli Studi di Ferrara Facoltà di Ingegneria Dal canto loro, i motori non transazionali hanno il vantaggio di una maggior velocità, minore utilizzo di spazio su disco e minor richiesta di memoria per gli update. Gli indici sulle tabelle costituiscono un aspetto fondamentale nella progettazione di un database: un indice infatti consente di velocizzare, spesso in maniera estremamente consistente, l'accesso ai dati in fase di lettura. Nella progettazione degli indici bisogna tenere conto che, come costo per la velocità che offrono in fase di lettura, comportano un rallentamento in fase di inserimento e aggiornamento dei dati. MySQL, a partire dalla versione 4.1, ha introdotto un supporto molto avanzato alla gestione di diversi character set. Infatti ci consente di gestire i set di caratteri a livello di server, database, tabella e singola colonna, nonché di client e di connessione. Sempre a partire da questa versione è stato introdotto in MySQL l’utilizzo delle subquery, che è stata probabilmente l'innovazione più attesa da parte degli utilizzatori di questo database. A lungo infatti è stato sottolineato come la mancanza di alcune funzionalità penalizzasse notevolmente MySQL nel confronto con altri RDBMS, e l'assenza delle subquery era sicuramente fra quelle che più si notavano. Per lo sviluppo delle stored procedures (procedure memorizzate) invece si è dovuto attendere fino al rilascio della versione 5.0. Una stored procedure è un insieme di istruzioni SQL che vengono memorizzate nel server con un nome che le identifica; tale nome consente in seguito di rieseguire l'insieme di istruzioni facendo semplicemente riferimento ad esso. I trigger sono oggetti associati a tabelle, che vengono attivati nel momento in cui un determinato evento si verifica relativamente a quella tabella. Quando definiamo un trigger, stabiliamo per quale evento deve essere attivato (inserimento di righe, modifiche o cancellazioni) e se deve essere eseguito prima o dopo tale evento. Le viste sono comunemente considerate un modo per mostrare i dati di un database con una struttura diversa da quella che hanno effettivamente sulla base dati. Un uso possibile delle viste è quello di concedere ad un utente l'accesso ad una 40 Università degli Studi di Ferrara Facoltà di Ingegneria tabella mostrandogli solo alcune colonne oppure altre possibili applicazioni riguardano la possibilità di leggere dati da più tabelle contemporaneamente. Una delle classiche problematiche che un DBMS deve gestire è l'accesso simultaneo ai dati da parte di diversi utenti, sia in lettura che in aggiornamento. Le soluzioni per questi problemi sono, nella forma più semplice, i lock sulle tabelle, e in quella più avanzata le transazioni. Il backup e il recovery dei dati sono, da sempre, attività fondamentali per garantire la sicurezza dei dati di un DBMS. In particolare, attraverso i backup effettuiamo salvataggi del contenuto del database ad un determinato momento, mentre il recovery è l'operazione con la quale ripristiniamo il contenuto del database a seguito di un danneggiamento. MySQL mette a disposizioni numerosi programmi client e utilities ed è inoltre dotato di numerose interfacce applicative e connettori che gli permettono di “legarsi” ad un vasto numero di linguaggi di programmazione. 3.3 Principali ragioni per usare MySQL 1. Scalabilità e flessibilità Mysql offre il massimo in termini di scalabilità, specie nella capacità di gestire le applicazioni embedded. E’ caratterizzato da una grande flessibilità di impiego per quello che riguarda la piattaforma sul quale è utilizzato sia questa Linux, UNIX o Windows oltre alla capacità di modificare la configurazione derivante dalle esigenze delle singole applicazioni con le quali interagisce, requisito derivato dalla sua natura open-source. 2. Elevate performance In base al tipo di applicazione da realizzare è possibile variare la configurazione per ottenere le migliori performance. MySQL è in grado di soddisfare le più esigenti aspettative di prestazioni di qualsiasi sistema con alta velocità di carico per l’utenza e di elaborazione delle transazioni. 41 Università degli Studi di Ferrara Facoltà di Ingegneria 3. Alta affidabilità MySQL offre una varietà di opzioni di configurazioni per garantire alta disponibilità e affidabilità con soluzioni ad alta velocità per garantire la replica delle informazioni e la ridondanza. 4. Consistente supporto per le transazioni MySQL dispone di uno dei più potenti motori di database transazionali sul mercato. Le caratteristiche includono il completo supporto alle proprietà “ACID” (atomicità, consistenza, isolamento, persistenza). La piena integrità dei dati è assicurata anche attraverso l'integrità referenziale, la transaction isolation levels e l’individuazione delle situazioni di deadlock. 5. Web e Data Warehouse MySQL è lo standard di fatto per siti web con alto traffico per il rendimento del suo query engine,in grado sia per di inserire dati velocemente, sia di fornire sostegno per a funzioni specializzate in veloci ricerche full text. Questi stessi punti di forza valgono anche per ambienti di data warehousing. Altre caratteristiche come B-tree and hash indexes riducono i requisiti di storage fino a ottanta per cento. 6. Protezione dei dati MySQL offre caratteristiche di sicurezza per garantire la massima protezione dei dati che è uno dei requisiti più importanti per un database professionale. In termini di autenticazione, MySQL fornisce potenti meccanismi per garantire che solo gli utenti autorizzati abbiamo accesso al database server, con la possibilità di bloccare gli utenti non autorizzati. Sono previsti anche il supporto SSL e SSH per garantire la protezione e la sicurezza delle connessioni nonché funzioni di crittografia per proteggere i dati sensibili. 7.Svilppo di Applicazioni Uno dei motivi per cui MySQL è il più popolare database open source, è che fornisce supporto completo per ogni necessità di sviluppo di applicazioni. All'interno del database, è garantito supporto per stored procedure, trigger, e molto altro ancora. 42 Università degli Studi di Ferrara Facoltà di Ingegneria MySQL fornisce anche connettori e driver (ODBC, JDBC, ecc) per sviluppare qualsiasi tipo di applicazione in molti linguaggi di programmazione. 8.Facilità di gestione MySQL offre una vasta gamma di opzioni di avvio rapido per qualsiasi piattaforma oltre a caratteristiche di auto-gestione modificabili a partire da file configurazione. MySQL fornisce anche una suite completa di gestione grafici e strumenti di per la risoluzione dei problemi, e il controllo del funzionamento di molti server MySQL da una singola postazione di lavoro. 9.Open source MySQL non è un tipico progetto open source, tutto il software è di proprietà ed è supportato da MySQL AB, ma il progetto offre una combinazione unica di libertà legata al mondo open source, unendo il sostegno e il supporto della casa produttrice. 10.Costi Utilizzare MySQL nella realizzazione di nuovi progetti porta le imprese a risparmiare molti fondi. Attraverso l'utilizzo di server MySQL è possibile effettuanre operazioni di scale-out con utilizzo di architetture hardware a basso costo che non vanno ad intaccare le prestazioni. Inoltre, l'affidabilità e la facilità di manutenzione del database MySQL permette agli amministratori di non perdere tempo nella risoluzione dei problemi di prestazioni, lasciando la possibilità di concentrarsi sullo sviluppo del software. 43 Università degli Studi di Ferrara Facoltà di Ingegneria 3.4 Programmi per l’amministrazione di MySQL PhpMyAdmin è probabilmente uno dei software più diffusi in assoluto nel mondo del web. Si tratta infatti di uno strumento open source, scritto in PHP, che consente l'amministrazione di MySQL attraverso un'interfaccia web. PhpMyAdmin è sviluppato da una comunità autonoma rispetto a MySQL AB ed è un'applicazione web-based che necessita quindi di un server web in grado di eseguire PHP. La sua comodità principale consiste nel consentire l'amministrazione del database anche da remoto senza la necessità che il server sia aperto a connessioni remote: infatti è il server web su cui viene eseguito PhpMyAdmin che effettua le connessioni a MySQL. Di conseguenza è sufficiente installare il software sul web server locale rispetto a MySQL per poter poi effettuare l'amministrazione attraverso un qualsiasi browser. L'accesso al server avviene con i diritti dell'utente che accede all'applicazione. PhpMyAdmin è uno strumento molto completo e complesso e le sue possibilità di configurazione e di utilizzo sono molte; la configurazione tipica Apache+PHP+MySQL, nella quale PHP è integrato come modulo di Apache, è in genere preferita per il mondo UNIX, ma è nel suo insieme multipiattaforma. Per installare phpMyAdmin sono quindi necessari i seguenti moduli: • Php 4.4.2: la più diffusa versione dell'interprete visto che Php 5 sta prendendo piede molto lentamente; • Apache 2.0.55: il webserver che processa gli script Php; • MySQL 4.1: la versione più diffusa del server di database MySQL che era anche quella consigliata prima della recente release 5.0 Una volta installato e configurato correttamente i seguenti moduli la configurazione di phpMyAdmin si esaurisce in pochi passi. Basta prelevare dalla sottodirectory libraries il file config.default.php, inseriamolo 44 nella directory principale Università degli Studi di Ferrara Facoltà di Ingegneria (phpMyAdmin) e rinominiamolo in config.inc.php. Questo è il nome del file di configurazione che il software utilizzerà, le opzioni possibili sono molte e sono tutte contenute in un array. A questo punto sarà sufficiente inserire la password utilizzata dall'utente root nel campo $cfg['Servers'][$i]['password'] Digitando nel browser localhost://phpMyAdmin/ visualizzeremo una pagina Web come quella in figura. Figura 9 : Esempio homepage di PhpMyAdmin 45 Università degli Studi di Ferrara Facoltà di Ingegneria Capitolo 4 CDR I l Call Detail Record è generato da Asterisk per ciascuna chiamata. Di fatto questo record contiene tutti i dettagli della chiamata effettuata e a partire dall’analisi dei questo è possibile stabilirne l’importo e a chi deve essere addebitato eventualmente. Figura 10 : Interfacciamento API con dbBilling Il dettaglio delle chiamate viene generalmente scritto da Asterisk su file .csv che colleziona quindi tutti i record, questi sono facilmente importabili e quindi adattabili in post elaborazione alle esigenze di documentazione addebiti del cliente. 46 Università degli Studi di Ferrara Facoltà di Ingegneria Come si vede dalla figura precedente Asterisk mette a disposizione della API per interfacciarsi direttamente ad un database che tiene traccia di quelle che sono i costi delle chiamate effettuate per singolo utente (billing). Per default, i records sono archiviati, come abbiamo detto, in un file di tipo CVS (valori separati da virgole) nel percorso /var/log/asterisk/cdr-csv. E' possibile inoltre specificare codici account e flags AMA (Automated Message Accounting), flags in base al channel (Zaptel et al) oppure all'utente (IAX, SIP) per agevolare la successiva interpretazione dell'accounting. Nell'intestazione del file è presente una spiegazione del significato dei vari campi, che sono: • accountcode: (stringa, 20 caratteri) • src: Numero Caller*ID (stringa, 80 caratteri) • dst: Estensione di Destinazione (stringa, 80 caratteri) • dcontext: Contesto • clid: Caller*ID con testo (80 caratteri) • channel: Channel usato (80 caratteri) • dstchannel: Channel di Destinazione se appropriato (80 caratteri) • lastapp: Ultima Applicazione se appropriato (80 caratteri) • lastdata: Dati dell'ultima Applicazione (argomenti) (80 caratteri) • start: Momento di Inizio della chiamata (date/time) • answer: Momento della Risposta alla chiamata (date/time) • end: Termine della chiamata (date/time) • duration: Durata totale in secondi (integer), dal dial all' hangup • billsec: Durata totale, in second in cui la chiamata è attiva (integer), dall'evento answer all' hangup • disposition: Esito della chiamata: ANSWERED, NO ANSWER, BUSY • amaflags: Specifico amaflag: DOCUMENTATION, BILL, IGNORE etc, specificato su base channel come l' accountcode. • user field: Un campo user-defined, massimo 255 caratteri 47 Università degli Studi di Ferrara Facoltà di Ingegneria In taluni casi, se appropriato, viene appeso il valore uniqueid: Unique Channel Identifier (32 caratteri) Di seguito una tipica stringa grezza generata da Asterisk dopo ogni chiamata: "","numero chiamante","numero chiamato","dialout1","""Caterina"" <CLI>","SIP/254-e008","Zap/5-1","Dial","Zap/g1/chiamato”,"2007-12-27 16:17:00","2007-12-27 16:17:16","2007-12-27 16:18:48",108,92,"ANSWERED","DOCUMENTATION" I metodi di archiviazione/gestione utilizzabili con Asterisk sono: • Asterisk cdr csv - Text files con valori separati da virgole (default) • Asterisk cdr SQLite - Registrazione CDR in un database SQLite • Asterisk cdr pgsql - Registrazione CDR in un database PostgreSQL databases • Asterisk cdr odbc - Registrazione CDR con qualsiasi database che supporti unixODBC • Asterisk CDR mysql - Registrazione CDR in un database MySQL databases • Asterisk cdr FreeTDS - Registrazione CDR in un database MS SQL oppure Sybase attraverso drivers FreeTDS 48 Università degli Studi di Ferrara Facoltà di Ingegneria 4.1 CDR con MySQL Asterisk può archiviare i CDR records in un database, MySQL in alternativa ai file di testo CSV e ad altri formati di database. A causa della particolare forma di licensing delle librerie MySQL client, il supporto per il billing tramite Mysql non viene integrato nella distributione standard di Asterisk, ma è comunque reperibile nella directory asterisk-addons del CVS. A questo punto per creare il database in MySQL: E' possibile creare velocemente (batch mode) la struttura del database registrando i precedenti comandi SQL in un file di testo, salvarlo con un nome appropriato, quindi impartire il seguente comando: 49 Università degli Studi di Ferrara Facoltà di Ingegneria Figura 11: tabella CDR 4.2 CDR e VoIP-Fe Nel contesto del progetto VoIP-Fe la soluzione che prevede di archiviare i CDR direttamente in un database MySQL è stata presa in considerazione, ma alla fine si è scelto di adottare un’ alternativa intermedia. Per una questione di efficienza legata comunque alle onerose operazioni di inserimento e di aggiornamento di un database di dimensioni crescenti e che, nelle ore di punta si poteva comunque trovare a dover archiviare molte chiamate che arrivavano in un minimo lasso di tempo, si è deciso di operare nella seguente maniera. Alla fine di ogni giornata il file .csv che contiene i record della chiamate relative alla giornata viene, attraverso l’utilizzo di uno script, memorizzato in una tabella di un database MySQL creata come indicato precedentemente (la tabella cdr appunto). Questo tipo di soluzione permette intanto di non gravare sulle operazioni per la memorizzazione delle informazioni relative alle chiamate, inoltre permette di creare due copie del “registro” delle chiamate: garanzia di ridondanza che in ogni sistema può risultare utile. Inoltre, nel caso in cui fossero registrate delle anomalie relative a 50 Università degli Studi di Ferrara Facoltà di Ingegneria qualche mal funzionamento del centralino e venissero generate degli errori nel file .csv, questi non verrebbero comunque registrati nel database MySQL così da mantenerlo il più possibile ordinato e consistente. Questo sistema permette quindi di avere una migliore gestione delle prestazioni (è molto meglio archiviare i file in una sola operazione che non dover ricorrere continuamente all’inserimento nel database!) e permette comunque di mantenere i record delle chiamate memorizzati in una struttura ordinata e di facile accesso a partire dalla quale ricavare informazioni o raggrupparle in base a criteri di selezione. A partire da questo “registro” delle chiamate, interpretando i dati, è possibile ricavare delle statistiche interessanti riguardo all’utilizzo della rete e sul suo traffico andando poi a verificare un possibile modello che ne descriva l’andamento. 4.3 Python Per interfacciarsi al database CDR c’era bisogno di un linguaggio di programmazione efficiente, ben integrato con MySQL, versatile e veloce. La scelta dopo un’ attenta analisi è ricaduta su Python che ha dimostrato di essere uno strumento valido e flessibile in molte situazioni. Python viene definito un linguaggio di scripting orientato agli oggetti. Infatti esso raccoglie in se la flessibilità e la semplicità dei linguaggi di scripting con la potenza di elaborazione e la ricchezza di funzioni dei più tradizionali linguaggi di programmazione di sistema. Le principali caratteristiche di questo linguaggio sono: Python è free. Questo per utenti linux è normale, ma fa piacere sottolinearlo condividendo profondamente i principi del software Open Source. In ambiente Windows Python potrebbe anche sostituire Visual Basic, liberandosi da tutti i problemi di licenza. è sufficiente consultare periodicamente il sito www.python.org per rendersi conto come Python, pur essendo distribuito gratuitamente, ha un notevole supporto tecnico e ha una comunità in costante crescita. 51 Università degli Studi di Ferrara Facoltà di Ingegneria Python è portabile. Python è stato scritto in ANSI C, quindi la sua portabilità deriva direttamente da quella del C. Questo ha permesso di scrivere presto un interprete Python per le principali piattaforme. Esiste un interprete Python per Unix, Linux, MS-DOS, MSWindows (95,98, NT e 2000), Macintosh, Amiga, BeOS, OS/2, VMS, QNX. Recentemente è stato scritto un interprete anche in java e anche per sistemi Palmari. Python è veloce. Python è un linguaggio interpretato. In questo caso "interpretato" non è sinonimo di lento, infatti Python "compila" il proprio codice in un bytecode molto efficiente. Questo permette di raggiungere prestazioni vicine ai linguaggi in codice nativo. Inoltre Python implementa molte strutture dati e funzioni come componente intrinseca del linguaggio. Queste strutture sono dette "built-in types and tools" e sono state sviluppate con accurata efficienza. Python gestisce la memoria automaticamente. Analogamente a ciò che avviene in Java, in Python esiste il meccanismo di "garbage collection", il quale permette di liberare il programmatore dall'ansia di allocazione della memoria. Python ha una sintassi chiara. Python presenta una sintassi pulita e sintetica. L'idea migliore è rappresentata dalla indentazione, che non serve più al programmatore per ordinare meglio il codice, ma diventa l'unico strumento per strutturare il codice. Questo permette un apprendimento più veloce e una maggiore facilità a leggere il codice scritto da altri. Python è ricco di librerie. Solo la dotazione standard offre numerose librerie alle quali si aggiungono moduli di terze parti che crescono continuamente. In internet si trova materiale relativo a HTML, PDF, XML, formati grafici, CGI e perfino interi web servers.Tutte queste caratteristiche stanno convincendo molti grandi attori del mercato informatico ad utilizzare Python, per esempio: 52 Università degli Studi di Ferrara Facoltà di Ingegneria • Red Hat ha implementato in Python il proprio tool di installazione. • Infoseek usa Python nei propri prodotti per la ricerca sul web. • Yahoo! ha sviluppato in Python alcuni servizi di internet. • La NASA usa Python per implementare i sistemi di controllo delle proprie missioni. 4.4 Analisi CDR Una volta compreso il funzionamento del sistema era necessario ricavare da questo dei dati di interesse a partire dalla loro memorizzazione nel database CDR. Si è quindi proceduto analizzando i parametri delle chiamate per poterle distinguere. Per prima cosa bisognava individuare i campi all’interno del singolo record della chiamata che fossero particolarmente significativi e utili all’analisi. I campi ritenuti più utili oltre al campo sorgente e destinazione della chiamata, che ci permettono di stabilire da dove proviene, sono quelli riguardanti la data in cui la chiamata è stata effettuata (espressi in AAAA/MM/GG HH/MM/SS) la sua effettiva durata, intesa come tempo in cui la chiamata è effettivamente attiva e che comporta quindi l’occupazione di un canale e lo stato dell’ applicazione che sta usando quel particolare canale, che ci permette di dire se una telefonata è “appesa” oppure se si tratta di un servizio di “voice mail”. Al fine di poter rendere la gestione dei dati estratti dallo script il più efficiente e pratico possibile si è parametrizzato la query SQL sulla base dell’ intervallo di tempo che si vuole andare a considerare per estrarre i campi di interesse delle varie chiamate. Dal punto di vista dell’implementazione si è deciso di eseguire una sola query SQL per estrarre i campi ritenuti più utili a partire dal singolo record e utilizzare la flessibilità e le molte funzioni messe a disposizione da Python per la gestione delle 53 Università degli Studi di Ferrara Facoltà di Ingegneria “stringhe” per suddividere le varie chiamate. Questo soluzione è stata scelta innanzitutto perché una gestione che prevedeva la separazione delle chiamate attraverso l’esecuzione di molte query SQL risultava molto lenta e molto onerosa dal punto di vista computazionale e poi perché molte volte risultava difficile rendere la complessità della situazione che si voleva analizzare attraverso i costrutti del linguaggio SQL. Per prima cosa sono stati divisi le chiamate per stabilire se queste fossero uscenti, entranti o interne rispetto al sistema e si è considerato il loro andamento durante i quattro trimestri dell’anno 2007 insieme alla durata delle chiamate stesse. Figura 12: andamento trimestrale delle chiamate Figura 13: andamento trimestrale della durata delle chiamate(min) 54 Università degli Studi di Ferrara Facoltà di Ingegneria Questo tipo di analisi è risultata particolarmente difficile poiché non esiste un maniera univoca per suddividere le chiamate, in quanto il sistema è in continua evoluzione e nel corso del tempo sono cambiati anche i parametri da analizzare all’interno del database. Oltre a questo erano presenti delle situazioni ibride di passaggio da una fase a un'altra di cui bisogna tenere conto. Questo ha reso particolarmente complicato riuscire a ricavare una regola generale per suddividere le chiamate secondo le direttrice a causa della disomogeneità della struttura dati che ha comportato la ricerca di tutta una casistica di situazioni diverse per la risoluzione dell’analisi. In seguito si è proceduto analizzando ulteriormente le chiamate verso l’esterno per poter ricavare informazioni riguardo il tipo di traffico che è solito produrre l’utenza del sistema. Si è passato quindi ad un’analisi più dettagliata delle chiamate uscenti verificandone la destinazione. Nella tabella sottostante sono riportati gli andamenti trimestrali delle chiamate uscenti verificando se queste fossero verso cellulari, numeri di rete fissa nazionale o internazionale. Figura 14: andamento trimestrale delle chiamate uscenti La seguente tabella invece indica la durata delle chiamate uscenti sempre divise per la loro destinazione. 55 Università degli Studi di Ferrara Facoltà di Ingegneria Figura 15: andamento trimestrale della durata delle chiamate uscenti (min) Un’ analisi di questo tipo risultava però poco dettagliata per quello che riguardava l’andamento delle chiamate specie per verificare il traffico del sistema e la sua occupazione durante i momenti di maggior impiego. Si è deciso quindi di considerare un andamento mensile delle chiamate per avere un maggior dettaglio e analizzarne l’evoluzione durante le singole fasce orarie della giornata per verificare i picchi di traffico del sistema. Viene riportato inseguito l’andamento delle chiamate del sistema per il mese di Ottobre 2007 diviso per fasce orarie e le relative durate delle chiamate. Figura 16: andamento mensile delle chiamate divise per fasce orarie 56 Università degli Studi di Ferrara Facoltà di Ingegneria Figura 17: andamento mensile della durata delle chiamate divise per fasce orarie Un’analisi simile è stata compiuta anche per le chiamate uscenti divise, come precedentemente, per la loro destinazione e considerandone quindi l’andamento per singole fasce orarie durante il periodo di un mese. Figura 18: andamento mensile delle chiamate uscenti divise per fasce orarie Figura 19: andamento mensile della durata delle chiamate uscenti divise per fasce orarie 57 Università degli Studi di Ferrara Facoltà di Ingegneria Per dati relativi agli altri mesi dell’anno si rimanda all’appendice dove sono raccolti tutti i dati che sono stati collezionati. I singoli script che provvedono all’analisi del database CDR generano, come risultato della loro elaborazione, dei file .csv che sono facilmente importabili, conoscendone la struttura, in fogli di calcolo per darne una rappresentazione grafica oppure in tabelle di un database per averne una rappresentazione ordinata e la possibilità di una facile consultazione. Figura 20:esempio di file .csv generato dagli script 58 Università degli Studi di Ferrara Facoltà di Ingegneria 59 Università degli Studi di Ferrara Facoltà di Ingegneria Capitolo 5 Analisi e ricerca di un modello I ndividuare la legge di distribuzione di probabilità che meglio si adatta ad un campione di dati vuol dire individuare, tra le tanti leggi teoriche, quella il cui andamento si avvicina maggiormente alla curva di frequenza empirica del campione. Se è possibile raccogliere dati reali sulle variabili aleatorie di interesse, essi possono essere utilizzati per determinare una distribuzione secondo due metodi: • I dati sono raccolti per generare una distribuzione empirica • I dati sono utilizzati per definire una distribuzione teorica Nel primo caso i dati sono raccolti per generare una distribuzione empirica, ovvero per definire una funzione di distribuzione empirica che verrà usata per produrre l’input in una simulazione. Tale approccio elimina inconveniente di non poter fare previsioni, poiché, almeno per distribuzioni continue, può essere ottenuto ogni valore compreso tra il minimo e il massimo osservati. Nel secondo caso, invece, i dati raccolti sono utilizzati per definire una distribuzione teorica. Vengono utilizzate tecniche statistiche per analizzare se una distribuzione 60 Università degli Studi di Ferrara Facoltà di Ingegneria teorica tra quelle note sia adatta a rappresentare i dati, effettuando i test di ipotesi per verificare la rappresentatività della distribuzione ipotizzata. I motivi per cui una distribuzione teorica in genere è preferibile a una empirica sono i seguenti: • le distribuzioni empiriche possono avere irregolarità (specialmente se i dati sono scarsi) mentre le distribuzioni teoriche sono più “smooth”, nel senso che tendono a regolarizzare i dati e rappresentano un comportamento generale; • le distribuzioni empiriche non permettono di generare valori al di fuori del range di valori osservati, mentre le misure di prestazione possono, a volte, dipendere anche da eventi “eccezionali” che corrispondono a valori fuori da tale range; • Le distribuzioni teoriche sono un modo compatto di rappresentare un insieme di valori, mentre in una distribuzione empirica, se ci sono n dati disponibili, si ha bisogno di 2n valori per rappresentarla: il dato e le corrispondenti probabilità cumulative (si hanno quindi grandi quantità di dati da memorizzare); • Le distribuzioni teoriche si possono variare più facilmente. L’identificazione delle caratteristiche statistiche dei parametri stocastici presenti nel modello che si prende in esame si compie a partire da un vasto insieme di misurazioni reali. Per ognuno dei parametri stocastici inseriti nel modello è necessario eseguire una campagna di raccolta di misure reali e quindi procedere secondo i passi seguenti: 1) costruzione della “distribuzione di frequenza” o “istogramma delle frequenze” dei campioni raccolti per il parametro in esame; 2) selezione di una particolare funzione di densità di probabilità per il parametro in esame; 3) stima dei parametri della funzione di densità di probabilità scelta; 61 Università degli Studi di Ferrara Facoltà di Ingegneria 4) validazione della distribuzione scelta per mezzo di test 5.1 Analisi dei tempi interarrivo Tra due chiamate successive Cn-1 e Cn trascorre un intervallo di tempo τn= in- in-1, che la teoria delle code modella come una variabile aleatoria con distribuzione nota. Figura 21 : tempi interarrivo Le distribuzioni più comunemente impiegate per modellare τn sono: • Distribuzione costante : f(τ)=δ(τ - τ0) dove δ è la funzione di Dirac • Distribuzione esponenziale: f(τ)=λe-λτ dove: E(τ) = λ-1 e σ(τ)=λ-1 λ è il numero medio di arrivi nell’unità di tempo F(τ) = 1-e-λτ è la probabilità cumulata La distribuzione esponenziale per la modellazione dell’intervallo di tempo tra arrivi successivi riveste particolare importanza ed è spesso impiegata perché c’è una buon accordo con le osservazioni sperimentali, inoltre gode di un certo numero di proprietà per cui è possibile determinare per via analitica, senza approssimazione, le principali caratteristiche di un sistema a coda. Infatti la distribuzione esponenziale è l’unica distribuzione a godere della proprietà secondo cui la distribuzione del tempo residuo è indipendente dal tempo già maturato. 62 Università degli Studi di Ferrara Facoltà di Ingegneria 5.1.1 Raccolta dei campioni e istogramma delle frequenze Per prima cosa è stato necessario raccogliere un campione di dati sufficientemente ampio da descrivere l’andamento dei tempi interarrivo. Inizialmente si è preso in considerazione la valutazione dei tempi interarrivo di una settimana lavorativa tipo (da lunedì a venerdì), in seguito, visto che il numero dei campioni era consistente fino ad un certo punto per descrivere l’andamento, si è preferito estendere l’analisi ad un intero mese considerando sempre e solo i giorni lavorativi, inutile sottolineare che nei fine settimana le chiamate presenti erano solo poche decine e che considerarle avrebbe probabilmente falsato l’analisi. A questo punto si è deciso di separare le chiamate in uscenti e entranti e considerare un analisi distinta per ognuna di queste due tipologie. Si è passati quindi a dividere le chiamate entranti e uscenti per singole fasce orarie e si sono considerati i tempi interarrivo dei due tipi di chiamate in ogni ora del giorno. Anche qui, ovviamente, l’analisi si è concentrata sulle ore del giorno che presentavano il maggior numero di chiamate e che coincidevano con le ore lavorative, cioè principalmente le fasce orarie che andavano dalle 7:00 alle 20:00. In seguito ci è resi conto che si poteva restringere ulteriormente il campo, visto l’estrema irregolarità che si presentava nelle ore dalle 7:00 alle 8:00 e dalle 18:00 alle 20:00, nonostante si stesse considerando un insieme di campioni che comprendeva l’andamento delle chiamate di un intero mese. Figura 22: distribuzione di frequenza reale dei tempi interarrivo(uscenti) 63 Università degli Studi di Ferrara Facoltà di Ingegneria Il grafico precedente mostra quanto l’andamento della densità di probabilità dei tempi interarrivo sia irregolare in quella particolare fascia oraria. Questo tipo di considerazione, che ha portato poi a utilizzare per l’analisi le ore che vanno dalle 8:00 alle 18:00, si è verificato essere valida sia per chiamate entranti che per quelle uscenti. Una volta collezionati i tempi interarrivo delle fasce orarie di interesse si è passati ad ordinarli e a considerare il loro andamento puntuale, per poter essere in grado di tracciare la distribuzione di frequenza relativa come è stato fatto per il grafico precedente. Per la visualizzazione delle tabelle e degli andamenti graficati delle distribuzioni si rimanda all’appendice. … Figura 23: esempio andamento puntuale dei tempi interarrivo(uscenti) 5.1.2 Calcolo di λ e distribuzione esponenziale La distribuzione delle frequenze reali ricavate a partire dagli andamenti puntuali hanno, grosso modo, l’andamento decrescente, simile alla distribuzione esponenziale negativa. Si è quindi passato a calcolare il tempo medio interarrivo per ogni singola fascia oraria e i conseguente valore di λ. Nella tabella successiva vengono riportati i valori trovati e in seguito ne viene graficato l’andamento. 64 Università degli Studi di Ferrara Facoltà di Ingegneria fascia oraria 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 Uscenti tempo medio inter. 25.239793 s 8.505055 s 7.180799 s 7.256796 s 7.660918 s 12.107805 s 15.191827 s 11.548961 s 12.141291 s 15.319090 s 23.756835 s λ 0,03962 0,117577 0,13926 0,137802 0,130533 0,082591 0,065825 0,086588 0,082364 0,065278 0,042093 Entranti tempo medio inter. 39.710411 s 14.515563 s 12.637622 s 12.088399 s 13.318548 s 27.688668 s 36.319970 s 26.946703 s 26.293710 s 39.152191 s 68.329496 s λ 0,025182 0,068892 0,079129 0,082724 0,075083 0,036116 0,027533 0,037110 0,038032 0,025541 0,014635 Figura 24: andamento lambda(uscenti) Una volta trovati i valori di lambda sono stati calcolati i valori della funzione f(τ)=λe-λτ corrispondenti e sono stati raccolti in tabelle, graficati e confrontati con i valori reali per verificarne se potevano essere una buona approssimazione rispetto all’andamento di questi ultimi. Per la consultazione dei valori e dei grafici si rimanda all’appendice. a distribuzione esponenziale è l’u godere della proprietà secondo cui la d 65 Università degli Studi di Ferrara Facoltà di Ingegneria 5.1.3 Norma L2 e test del chi-quadro Analizzando i vari andamenti e confrontando i valori calcolati con quelli reali si può riscontrare un andamento abbastanza fedele della curva calcolata rispetto a quella reale. Specie per le fasce orarie di punta in cui vengono registrate il maggior numero di chiamate sia entranti che uscenti l’andamento è pressoché fedele con quello della curva calcolata. I valori per cui si discosta maggiormente, come era prevedibile, vengono rilevati generalmente nella coda, ma anche nella parte superiore. Questa caratteristica è stata riscontrata in tutte le fasce orarie senza distinzione per il tipo di chiamata. Figura 25: confronto distribuzione reale con distribuzione esponenziale (uscenti) Di seguito viene riportato un andamento che presenta invece un elevato grado di irregolarità anche se per alcuni tratti si può notare come i valori reali seguano lo sviluppo della curva esponenziale. Figura 26: confronto distribuzione reale con distribuzione esponenziale (uscenti) 66 Università degli Studi di Ferrara Facoltà di Ingegneria Per avere un riscontro matematico con i dati osservati si è deciso di verificare la differenza tra la tendenza dei dati calcolati e quelli reale andando a calcolare l’errore come norma L2 e eseguendo anche il test del chi-quadro. Per eseguire il calcolo dell’errore in norma L2 si sono calcolati i valori attesi a partire dalla distribuzione di probabilità calcolata e sono stati confrontati con quelli reali secondo la seguente formula: dove xk rappresenta il vettore dei valori reali mentre yk quello dei valori calcolati. I valori della norma L2 calcolati sono riportati in tabella, ma specie per le fasce orarie dalle 17:00 in poi sono poco attendibili, visto che il numero di campioni è relativamente minore rispetto alle restanti fasce orarie e l’errore, così come viene calcolato, risulta minore anche se, confrontando la disomogeneità della curva reale rispetto all’andamento calcolato, questa differisce notevolmente dal punto di vista visivo. I risultati ottenuti mostrano comunque che sia per le chiamate entranti che per le uscenti l’errore minore, cioè una migliore approssimazione dei dati reali con il modello proposto, si riscontra nelle fasce centrali della giornata. errore in norma L2 fascia oraria entranti uscenti 8.00 39,2445228 75,5745387 9.00 51,1970420 75,0131717 10.00 64,1470442 67,7604773 11.00 54,5575515 77,3804776 12.00 49,5743570 63,3301485 13.00 54,4348104 70,3352216 14.00 45,7276969 61,8452614 15.00 57,2399228 74,5591615 16.00 55,3263608 58,9291167 17.00 36,0288882 52,3224390 18.00 22,9760626 64,1408369 L’errore calcolato con la norma L2 può dare l’idea di quella che è la bontà dell’approssimazione ma per saper se poter ritenere valido il modello si è deciso di utilizzare il test del chi-quadro. 67 Università degli Studi di Ferrara Facoltà di Ingegneria Il test del chi-quadro è un test statistico non parametrico atto a verificare se i valori di frequenza ottenuti tramite rilevazione, sono diversi in maniera significativa dalle frequenze ottenute con la distribuzione teorica. Questo test ci permette di accettare o rifiutare una data ipotesi. La formula per il test del chi-quadro è la seguente: dove ni sono i valori osservati e Ei i valori attesi. I valori ricavati da questa analisi sono risultati molto elevati per qualsiasi grado di libertà si possa applicare il test di significatività del chi-quadro. La risposta a questo fatto è da ricercarsi principalmente nella differenza tra i valori presenti nella coda e nella parte iniziale della distribuzione calcolata con quelli reali, che come si era fatto notare precedentemente differivano da questi ultimi in maniera sostanziale in tutti gli andamenti. In particolar modo, visto che i valori presenti nella coda hanno frequenze di attesa molto basse e si verificano per pochi campioni e visto che i valori iniziali si discostavano da quelli reali in tutte le fasce orarie, si è provato a condurre un analisi senza considerare queste due situazioni; i risultati sono riportati nella tabella sottostante. fascia oraria 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 test chi quadro entranti uscenti 69,3874535 119,1310666 58,2500484 53,0694300 54,5421400 34,3441155 48,9038926 42,6994442 42,1835091 44,6575852 82,9230217 111,9788669 99,9011010 129,5264463 71,8821904 145,9193660 68,6671034 138,1023731 76,9492938 112,9162344 75,3793931 79,8227910 68 Università degli Studi di Ferrara Facoltà di Ingegneria A partire da questi è invece possibile condurre il test di significatività del chi-quadro, ma per fare questo è necessario fissare due criteri: 1. il numero di gradi di libertà, che in una tabella formata da r righe e c colonne, è dato da: (r - 1) x (c - 1) 2. il valore massimo per il quale, in corrispondenza di una certa probabilità e dei gradi di libertà del sistema in studio, dobbiamo accettare l'ipotesi H. Se questo valore è superato, allora rifiutiamo H Generalmente le tabelle contenenti i dati ordinati dei tempi interarrivo vanno da un minimo di 70 a un massimo di 200 righe, mentre le colonne sono sempre due quella dei dati reali e quella dei dati calcolati. Quindi i gradi di libertà che possiamo considerare vanno da 50 a 140, considerando che sono state eliminate alcune delle righe che riguardavano i valori di coda e al massimo una riguardante la parte iniziale. La tabella seguente riporta i gradi di libertà da 50 a 70 per diversi valori di probabilità. 69 Università degli Studi di Ferrara Facoltà di Ingegneria Come si può vedere confrontando i dati relativi a questa tabella con quelli ricavati alcuni dei valori, in genere quelli riguardanti le fasce orarie dalle 16:00 in poi, non rientrano in quelli presenti in tabella per un massimo di 70 gradi di libertà. Invece è possibile notare come specie per le ore di punta (9:00-12:00), dove i campioni sono maggiori, il modello assuma valori per il test del chi-quadro che risultano compresi ampiamente nella tabella con probabilità uguale al 5-10%; quindi la probabilità che il loro andamento sia significativo rispetto al valore calcolato è verificabile con una probabilità del 90-95%. Entro opportune limitazione dovute alle valutazioni che sono state condotte si può quindi concludere che un modello di traffico esponenziale per i tempi interarrivo può risultare accettabile. 70 Università degli Studi di Ferrara Facoltà di Ingegneria 71 Università degli Studi di Ferrara Facoltà di Ingegneria Conclusioni Attraverso l’analisi del database delle chiamate del traffico telefonico del sistema VoIP-Fe sono state ricavate delle utili statistiche riguardo il loro andamento durante l’anno 2007, indicando quelle che sono le abitudini dell’utenza media che utilizza il sistema VoIP dell’Università di Ferrara. Questi dati, oltre ad dare un’idea sulla ripartizione del traffico lungo la giornata, sono stati utilizzati per la formulazione e la verifica di un modello, entro opportune ipotesi, che potesse indicare la distribuzione e l’andamento delle chiamate in accordo con opportune leggi statistiche. 72 Università degli Studi di Ferrara Facoltà di Ingegneria 73 Università degli Studi di Ferrara Facoltà di Ingegneria Bibliografia e Siti di Riferimento [1] “Reti di Telecomunicazione” - Gianluca Mazzini - Pitagora Editrice [2] “Statistica” – Murray R. Spiegel – McGraw-Hill [3] http://voip.html.it/ [4] http://www.unife.it/areainformatica/lepida-unife [5] http://www.unife.it/areainformatica/servizi/formazione/seminari/allegati/2007-06-20/brochurvoip.pdf [6] http://it.wikipedia.org [7] http://html.it [8] http://voiptech.altervista.org/it/articoli/asterisk/cdr.html [9] http://www.voip-info.org/wiki/ [10] http://www.kv.unife.it/voip/resolveUid/ [11] http://www.areski.net/asterisk-stat-v2/about.php [12] http://www.matematica.it/ 74 Università degli Studi di Ferrara Facoltà di Ingegneria 75 Università degli Studi di Ferrara Facoltà di Ingegneria Appendice In questa sezione vengono riportati divisi per tabelle i dati ricavati nelle varie analisi del database “CDR” , utilizzati per creare i grafici presenti nei capitoli precedenti. Nella prima parte vengono riportati gli andamenti delle chiamate dei diversi mesi dell’anno 2007 divisi per direttrici. La durata delle chiamate viene indicata in minuti. Nella seconda sono riportati una serie di tabelle con relativi grafici utili a suggerire l’andamento esponenziale degli interarrivi. Sono stati selezionati solo gli andamenti più significativi. 76 Università degli Studi di Ferrara Facoltà di Ingegneria Gennaio 2007 gen-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. gen-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. gen-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 9 8 13 127 1 0 5 26 2 29 6 71 9.00 2934 7597 2785 7346 2579 5195 1011 2378 1724 4690 50 277 18.00 406 1479 1264 5097 229 392 635 2534 554 2050 75 512 1.00 9 15 2 11 1 1 2 11 0 0 0 0 2.00 9 24 0 0 0 0 0 0 0 0 0 0 3.00 13 15 2 9 0 0 2 9 0 0 0 0 4.00 8 14 1 3 1 0 1 3 0 0 0 0 5.00 15 36 0 0 3 2 0 0 0 0 0 0 6.00 15 55 1 0 6 6 1 0 0 0 0 0 7.00 60 91 72 157 90 172 29 50 35 56 8 50 10.00 3516 9044 3548 10212 2863 5444 1209 3119 2252 6818 87 274 11.00 3571 8947 3601 11156 2740 5357 1285 3679 2205 6845 111 631 12.00 3372 9324 3607 10472 2674 5667 1370 4050 2155 6038 82 384 13.00 1561 4080 2392 6392 1737 3365 959 3015 1386 3079 47 297 14.00 1063 2984 1747 6002 825 1620 691 2217 992 3250 64 535 15.00 1434 4382 2235 7922 1132 2550 803 2615 1339 4625 93 681 16.00 1284 4366 2154 8146 1059 2249 886 3169 1181 4352 87 623 19.00 135 433 510 2157 49 47 262 1134 219 852 29 170 20.00 53 155 193 1105 6 5 68 420 106 402 19 281 21.00 16 164 65 1042 2 0 23 149 14 37 28 855 77 22.00 25 56 25 167 2 1 15 45 6 17 4 104 23.00 14 18 4 13 3 1 0 0 2 0 2 13 8.00 941 2184 907 2094 1132 2121 315 880 574 1167 18 45 17.00 941 3229 1918 7880 658 1205 811 2952 982 3829 125 1098 Università degli Studi di Ferrara Facoltà di Ingegneria Febbraio 2007 feb-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. feb-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. feb-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 22 20 43 187 2 1 8 65 29 50 6 71 1.00 20 25 37 92 1 1 8 15 27 22 2 55 2.00 19 45 30 23 3 2 3 2 27 20 0 0 3.00 29 38 26 28 2 2 3 10 23 18 0 0 4.00 14 24 32 28 2 2 1 3 31 24 0 0 5.00 23 46 23 17 6 6 0 0 23 17 0 0 6.00 19 61 39 44 8 9 7 4 26 20 6 19 7.00 131 169 206 636 158 384 83 328 103 156 20 151 8.00 2062 4497 1997 4822 2520 4890 670 1803 1287 2885 40 134 9.00 6596 15847 6183 16623 6015 12005 2150 5242 3918 10723 115 657 10.00 7905 18904 7924 22893 6616 12365 2793 7183 4940 14662 191 1047 11.00 8138 19542 8463 25422 6619 13071 2969 8298 5251 15754 243 1370 12.00 7897 19341 8124 23018 6312 12908 3080 8782 4892 13581 152 653 13.00 3845 8584 5256 13747 4051 7777 2205 6386 2942 6779 109 582 14.00 2378 6251 3968 13295 2038 3866 1685 5471 2173 7054 110 769 15.00 3257 9382 4970 17494 2642 5357 1850 6232 2912 9763 208 1497 16.00 3011 9584 4892 18166 2402 5036 1950 6815 2759 9814 183 1536 17.00 2289 7363 4295 17547 1550 2848 1882 6941 2194 8457 219 2147 18.00 1096 3816 2955 11774 552 874 1499 5722 1339 5191 117 859 19.00 327 1232 1261 5382 130 149 605 2726 585 2073 71 582 20.00 138 517 455 2136 18 37 162 856 262 893 31 386 21.00 72 390 159 1581 5 2 57 326 69 239 33 1015 78 22.00 51 167 86 317 3 2 28 93 53 104 5 119 23.00 43 54 47 154 8 6 5 24 38 76 4 53 Università degli Studi di Ferrara Facoltà di Ingegneria Marzo 2007 mar-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. mar-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. mar-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 46 52 51 251 3 2 12 85 32 52 7 113 1.00 33 50 47 286 2 2 8 15 35 90 4 180 2.00 27 53 36 30 3 2 4 2 32 27 0 0 3.00 37 55 33 36 2 2 4 13 29 22 0 0 4.00 23 37 32 28 2 2 1 3 31 24 0 0 5.00 32 61 25 17 6 6 0 0 25 17 0 0 6.00 33 84 51 182 8 9 14 70 27 20 10 90 7.00 230 296 367 1291 216 562 141 750 198 327 28 213 8.00 3753 7332 3506 8368 4380 8382 1204 3285 2235 4834 67 247 9.00 11680 26245 11145 29410 10610 20745 3849 9466 7100 18885 196 1058 10.00 14076 31068 14141 40587 11736 21265 4964 13051 8852 25992 325 1544 11.00 14852 32589 14866 43925 11688 21963 5199 14652 9268 27267 399 2004 12.00 15071 31275 14223 39462 11196 22297 5341 14707 8584 23390 298 1364 13.00 7261 13808 9108 23425 6946 13036 3798 10439 5126 11985 184 1000 14.00 4220 10503 7017 23006 3606 6451 2948 9469 3836 11975 233 1561 15.00 5633 15302 8619 29769 4597 8853 3213 10590 5047 16779 359 2398 16.00 5298 15793 8605 31502 4249 8727 3441 12010 4869 16907 295 2584 17.00 4006 11950 7634 29383 2799 5295 3336 11850 3983 14273 315 3259 18.00 1999 6522 5244 20483 1092 1712 2640 9926 2429 9050 175 1505 19.00 635 2081 2335 9244 253 338 1127 4670 1082 3590 126 983 20.00 253 778 754 3565 53 72 297 1399 410 1610 47 555 21.00 123 699 260 2171 10 4 89 439 129 575 42 1156 79 22.00 90 245 116 410 3 2 41 139 70 151 5 119 23.00 74 125 63 232 8 6 13 88 46 91 4 53 Università degli Studi di Ferrara Facoltà di Ingegneria Aprile 2007 apr-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. apr-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. apr-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 71 92 57 263 5 19 13 94 37 55 7 113 9.00 15092 32829 14641 38273 13676 26253 4963 12206 9443 24699 235 1367 18.00 2628 8319 6726 25760 1431 2280 3351 12533 3136 11317 239 1909 1.00 44 70 52 291 2 2 8 15 40 95 4 180 10.00 18137 39096 18541 52587 14794 26764 6420 16999 11711 33678 410 1910 19.00 875 2784 3145 12200 328 436 1541 6263 1422 4707 182 1229 2.00 42 75 37 35 3 2 4 2 32 27 1 5 3.00 52 79 39 55 2 2 4 13 35 41 0 0 11.00 19221 40933 19504 56741 14902 27640 6793 18965 12218 35483 493 2291 12.00 20349 39419 18636 51532 14253 28020 6930 18961 11325 30782 381 1789 20.00 393 1076 1004 4532 65 85 422 1823 519 2037 63 671 21.00 198 864 349 2617 12 4 118 575 180 804 51 1237 80 4.00 30 48 33 28 2 2 2 4 31 24 0 0 13.00 9885 17850 11808 30433 8835 16546 4959 13607 6583 15613 266 1212 22.00 120 317 137 446 5 5 48 148 83 173 6 123 5.00 43 72 25 17 6 6 0 0 25 17 0 0 14.00 5375 13357 9155 30031 4586 8043 3813 12377 5052 15473 290 2180 23.00 95 181 84 282 9 6 21 102 53 101 10 78 6.00 44 115 53 185 8 9 14 70 29 24 10 90 15.00 7147 19216 11301 38240 5970 11398 4208 13823 6624 21495 469 2921 7.00 301 385 485 1754 260 669 183 846 253 547 49 360 16.00 6792 19378 11243 40545 5312 10694 4424 15274 6397 21694 422 3576 8.00 4901 9386 4540 10971 5553 10347 1548 4202 2910 6418 82 350 17.00 5093 15428 9899 37843 3513 6762 4329 15229 5157 18183 413 4431 Università degli Studi di Ferrara Facoltà di Ingegneria Maggio 2007 mag-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. mag-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. mag-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 86 146 61 265 8 21 15 94 39 56 7 113 1.00 56 85 55 298 2 2 9 20 41 95 5 182 2.00 54 104 38 39 3 2 4 2 32 27 2 9 3.00 56 85 41 57 2 2 4 13 37 43 0 0 4.00 34 55 33 28 2 2 2 4 31 24 0 0 5.00 60 96 26 78 6 6 1 60 25 17 0 0 6.00 64 134 68 234 8 9 29 120 29 24 10 90 9.00 19220 41805 19584 50327 17903 34600 6647 16033 12633 32662 304 1631 10.00 22664 49331 24855 69501 19526 35425 8604 22691 15714 44343 537 2466 11.00 24217 52404 25855 74242 19590 36858 9022 24924 16193 46312 640 3005 12.00 24853 49951 24521 66542 18381 36398 9027 24636 15018 39695 476 2209 13.00 12211 22636 15788 40881 11375 21558 6629 18397 8820 21064 339 1418 14.00 6711 17158 12072 39045 6002 10285 5085 16181 6627 20133 360 2730 15.00 8955 24156 15061 49937 7744 14872 5595 18201 8898 28126 568 3608 18.00 3364 10675 8778 32847 1833 2970 4428 16140 4027 14082 323 2624 19.00 1174 3758 4147 15468 392 542 2036 7916 1880 6105 231 1446 20.00 506 1316 1307 5732 75 92 577 2340 650 2574 80 817 21.00 233 994 440 3142 16 7 146 654 235 1142 59 1345 81 22.00 141 366 163 594 5 5 64 226 90 209 9 158 23.00 112 230 99 309 9 6 31 125 58 105 10 78 7.00 366 500 678 2620 329 862 252 1217 366 790 60 612 16.00 8716 24679 14894 52417 6883 13801 5866 19929 8493 28360 535 4128 8.00 6235 12000 6039 15021 7202 13500 2086 5846 3848 8661 105 513 17.00 6399 19666 13133 48838 4370 8589 5783 20075 6826 23076 524 5687 Università degli Studi di Ferrara Facoltà di Ingegneria Giugno 2007 giu-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. giu-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. giu-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 97 174 75 372 9 21 22 104 45 79 8 188 9.00 23410 50762 24397 62555 22095 43323 8404 20577 15623 40032 370 1945 18.00 4147 12819 10795 40144 2197 3564 5467 19846 4917 17092 411 3205 1.00 65 99 63 383 2 2 10 22 46 100 7 260 10.00 27261 60109 30853 85776 23914 44149 10917 28797 19295 54081 639 2897 19.00 1445 4629 5081 18947 455 677 2514 9772 2273 7397 294 1776 2.00 67 125 41 45 3 2 5 5 34 30 2 9 3.00 71 106 43 66 2 2 4 13 39 53 0 0 11.00 28847 62956 32120 92007 23688 45357 11294 31442 20069 56977 749 3585 12.00 28904 59848 30382 82461 22323 44930 11275 30689 18540 49169 567 2603 20.00 610 1769 1607 7165 88 105 700 3042 796 3137 111 985 21.00 284 1140 551 3715 18 7 186 803 285 1373 80 1537 82 4.00 40 65 33 28 2 2 2 4 31 24 0 0 13.00 14213 27327 19359 49940 13956 26841 8172 22624 10780 25623 406 1692 22.00 169 432 199 767 5 5 82 266 102 298 15 202 5.00 71 109 26 78 6 6 1 60 25 17 0 0 14.00 8035 20690 15067 48117 7400 12840 6249 19809 8387 25159 431 3148 23.00 139 270 112 443 9 6 37 141 65 223 10 78 6.00 78 148 80 258 8 9 37 126 29 24 14 107 15.00 10893 29476 18713 61883 9536 18352 6979 22758 11074 34976 660 4147 7.00 449 593 854 3177 384 988 307 1421 467 934 80 822 16.00 10542 29563 18566 64868 8447 17081 7282 24739 10635 35208 641 4919 8.00 7713 14940 7568 18698 8808 16692 2625 7216 4813 10817 130 664 17.00 7822 24103 16209 59256 5224 10291 7187 24737 8393 27707 629 6811 Università degli Studi di Ferrara Facoltà di Ingegneria Luglio 2007 lug-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. lug-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. lug-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 112 196 87 384 9 21 27 111 52 85 8 188 9.00 27627 59697 28732 74114 25575 50150 9960 24615 18329 47309 442 2189 18.00 4754 14810 12587 46586 2505 4056 6422 23243 5677 19476 488 3866 1.00 74 156 70 422 2 2 12 51 51 110 7 260 2.00 72 139 43 48 3 2 7 8 34 30 2 9 10.00 32263 71157 36319 100988 27945 52520 12935 34629 22654 63198 728 3159 11.00 34005 74899 38089 108926 27558 53214 13450 37609 23748 67111 883 4204 19.00 1648 5333 5970 22495 536 795 2985 11509 2628 8767 357 2218 3.00 77 129 47 78 2 2 5 14 42 64 0 0 12.00 33211 70439 36134 98503 26189 53114 13454 37330 22023 58180 657 2991 20.00 692 1926 1898 8255 100 119 825 3535 927 3518 146 1201 21.00 313 1197 641 4112 18 7 224 960 330 1563 87 1588 83 4.00 44 72 34 29 2 2 2 4 32 25 0 0 13.00 16133 31817 22760 59201 16182 31288 9688 27146 12583 29938 488 2116 22.00 186 476 227 876 5 5 91 316 112 354 24 205 5.00 76 115 26 78 6 6 1 60 25 17 0 0 14.00 9394 24106 17627 56570 8468 14943 7356 23722 9736 29273 534 3574 23.00 149 287 125 464 9 6 45 153 70 233 10 78 6.00 89 164 104 442 8 9 52 145 29 24 23 272 15.00 12729 34502 21925 72441 10932 21190 8240 27273 12939 40527 746 4641 7.00 511 662 986 3601 435 1063 379 1622 517 1033 90 945 16.00 12392 34998 21824 76663 9869 19797 8657 29915 12439 41235 720 5511 8.00 9049 17481 8895 21978 10212 19431 3089 8495 5649 12713 157 768 17.00 9180 28309 18945 70184 6089 12054 8537 29813 9683 32301 725 8069 Università degli Studi di Ferrara Facoltà di Ingegneria Agosto 2007 ago-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. ago-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. ago-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 119 205 91 416 9 21 30 139 53 88 8 188 1.00 78 172 72 448 2 2 13 52 51 110 8 285 2.00 77 162 45 78 3 2 9 38 34 30 2 9 3.00 81 136 48 79 2 2 5 14 43 65 0 0 4.00 48 78 34 29 2 2 2 4 32 25 0 0 5.00 82 130 26 78 6 6 1 60 25 17 0 0 6.00 98 173 114 454 8 9 58 156 29 24 27 273 9.00 30894 66784 31472 81853 27679 54518 10918 27345 20068 52121 485 2386 10.00 35947 79167 40068 112444 30341 57485 14422 39364 24814 69399 830 3680 11.00 38081 83348 42203 121512 29936 58414 15006 43004 26193 73984 996 4521 12.00 36578 78439 39871 109815 28212 57878 14960 42056 24176 64296 735 3462 13.00 17451 35044 24756 64809 17352 33846 10575 29783 13641 32735 539 2290 14.00 10110 26011 19064 61611 8978 15969 7996 26224 10484 31490 583 3895 15.00 13829 37705 23732 79378 11654 22816 8987 30544 13936 43847 809 4987 18.00 5063 15756 13339 49751 2582 4126 6842 25125 5981 20409 516 4217 19.00 1797 5573 6368 24105 559 823 3195 12464 2797 9270 376 2371 20.00 732 2009 1976 8578 111 127 858 3670 968 3642 150 1265 21.00 333 1273 666 4197 18 7 237 1023 342 1585 87 1588 84 22.00 201 487 235 917 5 5 95 338 116 373 24 205 23.00 161 304 136 498 9 6 50 178 75 240 11 79 7.00 563 698 1069 3944 479 1116 424 1756 551 1146 94 1042 16.00 13463 37962 23717 82973 10480 21040 9468 33166 13462 44074 779 5730 8.00 10093 19757 9770 24150 11023 21483 3377 9398 6223 13852 170 898 17.00 9929 30492 20379 75039 6358 12593 9269 32525 10324 34008 786 8504 Università degli Studi di Ferrara Facoltà di Ingegneria Settembre 2007 set-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. set-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. set-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 136 232 95 444 9 21 31 147 56 108 8 188 9.00 36104 77667 36891 96432 31852 62944 12886 32284 23393 61475 611 2672 18.00 5926 18494 15370 57884 2866 4669 7862 29119 6898 23613 610 5151 1.00 91 190 75 462 2 2 15 66 52 110 8 285 2.00 88 177 48 129 3 2 11 81 35 39 2 9 3.00 91 156 49 80 2 2 5 14 44 65 0 0 10.00 42242 92262 46949 131119 34984 66715 16975 46015 28955 80768 1017 4336 11.00 45169 97023 49147 142482 34343 67555 17601 50704 30372 86456 1166 5320 12.00 42638 91927 46868 128744 32432 66669 17636 49446 28321 75125 911 4172 19.00 2086 6543 7293 27452 620 879 3673 14066 3183 10650 437 2736 20.00 808 2181 2231 9895 127 138 952 4114 1098 4098 181 1682 21.00 391 1366 731 4669 21 12 260 1118 369 1841 102 1708 85 4.00 58 91 34 29 2 2 2 4 32 25 0 0 13.00 20273 40972 29055 76541 19920 38922 12428 35232 15942 38452 684 2856 22.00 231 579 260 1112 5 5 106 459 127 441 27 212 5.00 88 141 26 78 6 6 1 60 25 17 0 0 14.00 11873 30144 22236 72606 10319 18563 9412 31308 12141 37004 682 4293 23.00 179 340 150 588 9 6 55 245 80 244 15 98 6.00 115 199 148 622 8 9 81 220 29 24 38 378 15.00 16273 43953 27862 93139 13315 26364 10636 35818 16288 51525 937 5796 7.00 664 827 1249 4666 545 1348 522 1972 621 1437 106 1256 16.00 15866 44994 27835 97473 12063 24395 11210 39121 15681 51810 936 6540 8.00 11840 22932 11473 28324 12690 24727 3994 11153 7279 16188 200 982 17.00 11649 35637 23810 87735 7266 14410 10833 38423 12054 39893 923 9418 Università degli Studi di Ferrara Facoltà di Ingegneria Ottobre 2007 ott-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. ott-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. ott-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 149 244 108 491 9 21 33 149 64 116 11 225 1.00 107 216 76 466 2 2 15 66 53 115 8 285 2.00 96 213 49 130 3 2 12 82 35 39 2 9 3.00 99 170 50 82 2 2 5 14 45 67 0 0 9.00 41100 89229 42777 112498 36882 73502 14949 37418 27111 72146 716 2933 10.00 48217 105812 54250 151186 40420 77534 19631 53401 33438 92801 1179 4983 11.00 51012 110428 56482 163140 39213 77572 20277 57947 34857 99173 1340 6018 12.00 48110 105022 53621 147762 37131 76443 20190 56741 32398 86349 1033 4672 18.00 6866 21754 17936 67143 3277 5395 9165 33771 8059 27454 712 5917 19.00 2428 7828 8421 31817 708 1013 4262 16414 3656 12386 503 3016 20.00 928 2609 2558 11397 139 159 1077 4631 1273 4761 208 2004 21.00 435 1456 827 5128 23 12 286 1267 427 2090 114 1770 86 4.00 72 115 34 29 2 2 2 4 32 25 0 0 5.00 96 151 26 78 6 6 1 60 25 17 0 0 6.00 123 211 198 1042 9 9 113 340 32 28 53 673 7.00 769 1034 1425 5299 625 1576 624 2249 681 1572 120 1478 8.00 13539 26212 13317 33296 14500 28238 4629 12735 8457 19393 231 1168 13.00 22835 47044 33432 87680 22775 44863 14419 40348 18196 43913 816 3417 14.00 13745 35512 25909 84265 12010 21742 11094 36354 14027 42954 787 4956 15.00 18817 51719 32355 107856 15639 31269 12510 42024 18777 59184 1067 6646 16.00 18340 52225 32296 112894 14015 28225 13084 45487 18123 59919 1081 7486 17.00 13380 40900 27529 100096 8420 16664 12555 43784 13924 46086 1050 10225 22.00 271 669 286 1259 7 7 117 547 139 464 30 247 23.00 189 357 164 617 9 6 59 252 89 261 16 104 Università degli Studi di Ferrara Facoltà di Ingegneria Novembre 2007 nov-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. nov-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. nov-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 172 283 110 492 9 21 34 149 65 117 11 225 1.00 111 222 81 500 2 2 16 76 54 115 11 308 2.00 109 254 52 146 3 2 13 85 36 39 3 21 3.00 107 181 52 82 2 2 7 14 45 67 0 0 9.00 45549 99696 48383 127333 41646 83412 16967 41998 30619 82065 796 3269 10.00 53146 117577 61050 170276 45165 86922 22101 59790 37646 104997 1301 5487 11.00 56305 123019 63510 182548 44161 87485 22670 64721 39335 111089 1497 6736 12.00 52735 116572 60426 165442 41662 86192 22767 63454 36450 96700 1209 5287 18.00 7675 24774 20251 76202 3684 6267 10308 37853 9144 31629 799 6719 19.00 2706 8794 9469 35842 797 1159 4792 18521 4108 13750 569 3570 20.00 1062 2949 2906 13031 148 171 1212 5122 1443 5495 251 2413 21.00 503 1648 922 5624 27 13 316 1444 473 2288 133 1891 87 4.00 79 131 39 35 2 2 5 8 34 26 0 0 5.00 105 166 27 78 6 6 2 60 25 17 0 0 6.00 138 236 225 1133 9 9 138 430 34 29 53 673 7.00 871 1165 1571 6095 673 1694 684 2525 758 1913 129 1656 8.00 14944 29253 15205 38097 16283 31958 5320 14481 9626 22344 259 1272 13.00 25232 52902 37861 98849 25665 50452 16461 45614 20500 49434 899 3800 14.00 15569 40383 29560 95215 13728 24892 12651 40895 15997 48825 911 5494 15.00 21081 58285 36786 122412 17793 35950 14149 47399 21416 67450 1220 7562 16.00 20524 59172 36501 127549 15865 32051 14800 51016 20490 67924 1203 8607 17.00 14881 45574 30901 112267 9503 19149 14090 48835 15658 52388 1153 11044 22.00 305 711 321 1453 7 7 129 605 153 565 39 282 23.00 201 391 172 657 9 6 61 288 94 264 17 104 Università degli Studi di Ferrara Facoltà di Ingegneria Dicembre 2007 dic-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. dic-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. dic-07 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 0.00 182 297 115 519 10 22 38 175 66 119 11 225 1.00 120 233 85 517 2 2 16 76 57 130 12 311 2.00 117 266 53 149 3 2 14 87 36 39 3 21 3.00 120 199 53 82 2 2 8 15 45 67 0 0 4.00 87 140 39 35 2 2 5 8 34 26 0 0 5.00 115 182 27 78 6 6 2 60 25 17 0 0 6.00 150 256 252 1203 9 9 156 483 43 45 53 673 7.00 935 1255 1676 6415 715 1842 722 2620 821 2126 133 1667 9.00 48764 107357 52882 139289 45298 91283 18544 46199 33485 89673 852 3415 10.00 57042 127244 66750 186174 49154 95102 24230 65236 41120 115144 1398 5793 11.00 60311 132794 69253 199098 47971 95169 24736 70507 42918 121491 1591 7097 12.00 56256 125767 65888 179972 45198 93265 24886 69172 39664 105028 1338 5771 13.00 26987 56868 41435 107735 27903 55202 18085 49976 22390 53805 959 3952 14.00 16978 44258 32461 104417 14970 27247 13930 44899 17548 53655 982 5862 15.00 22780 62965 40123 134106 19399 39445 15561 52482 23253 73487 1308 8136 16.00 22265 64560 39928 138967 17224 35159 16265 55757 22352 73932 1303 9276 18.00 8370 27320 22152 83675 4042 6983 11259 41568 10009 34869 884 7237 19.00 2939 9462 10332 38911 865 1243 5214 20124 4513 15009 605 3776 20.00 1125 3146 3155 14112 174 185 1306 5494 1573 6049 276 2569 21.00 538 1730 984 6044 29 15 336 1531 506 2582 142 1929 88 22.00 323 767 336 1538 8 9 134 630 161 616 41 291 23.00 215 430 183 701 9 6 63 293 103 303 17 104 8.00 15992 31545 16560 41553 17575 34514 5787 15755 10503 24506 270 1291 17.00 16132 49646 34007 123488 10430 21099 15487 53853 17252 57957 1268 11678 Università degli Studi di Ferrara Facoltà di Ingegneria Divisione per trimestri second_tri primo_tri ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 89485 207015 108278 337073 73468 139746 41684 127131 63475 187947 3119 21995 INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 85825 195140 124420 363749 75097 145498 48057 141826 73210 202327 3134 19593 quarto_tri terzo_tri ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT 89474 206636 117022 361296 64829 133113 47398 152105 66280 190699 3341 18492 ENTRANTI dur-ENTRANTI OUT-TOT dur-TOT INTERNE dur-INTERNE OUT-CELL dur-CELL OUT-NAZ. dur-NAZ. OUT-INTERN. dur-INTERN. 89 93936 239586 148794 445916 87589 179445 59574 175766 85387 249222 3833 20926 Università degli Studi di Ferrara Facoltà di Ingegneria Andamento chiamate uscenti 8:00-9:00 t n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 50 105 94 94 52 79 60 68 58 62 51 57 54 61 43 27 50 30 38 28 27 36 19 32 prob valori λ*e^(-λt) reali 0.039620 0.025840 0.038081 0.054264 0.036602 0.048579 0.035180 0.048579 0.033813 0.026873 0.032500 0.040827 0.031237 0.031008 0.030024 0.035142 0.028858 0.029974 0.027737 0.032041 0.026659 0.026357 0.025624 0.029457 0.024628 0.027907 0.023672 0.031525 0.022752 0.022222 0.021868 0.013953 0.021019 0.025840 0.020202 0.015504 0.019417 0.019638 0.018663 0.014470 0.017938 0.013953 0.017241 0.018605 0.016572 0.009819 0.015928 0.016537 … 90 tempo medio interarrivo = 25.239793 s lambda = 0.039620 errore in norma L2 = 75,5745387 Università degli Studi di Ferrara Facoltà di Ingegneria Andamento chiamate uscenti 12:00-13:00 t n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 396 747 661 552 544 435 372 331 301 270 233 204 183 154 138 109 110 76 73 89 65 56 56 37 39 prob valori λ*e^(-λt) reali 0.130533 0.060979 0.114559 0.115029 0.100540 0.101786 0.088237 0.085002 0.077439 0.083770 0.067963 0.066985 0.059646 0.057284 0.052347 0.050970 0.045941 0.046350 0.040319 0.041577 0.035385 0.035879 0.031055 0.031414 0.027255 0.028180 0.023920 0.023714 0.020993 0.021250 0.018424 0.016785 0.016169 0.016939 0.014190 0.011703 0.012454 0.011241 0.010930 0.013705 0.009592 0.010009 0.008419 0.008623 0.007388 0.008623 0.006484 0.005698 0.005691 0.006006 … 91 tempo medio interarrivo = 7.660918 s lambda = 0.130533 errore in norma L2 = 63,3301485 Università degli Studi di Ferrara Facoltà di Ingegneria Andamento chiamate uscenti 16:00-17:00 t n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 167 284 298 263 248 221 199 182 180 177 142 149 155 111 100 94 96 89 65 82 75 59 52 57 38 prob valori λ*e^(-λt) reali 0.082364 0.040682 0.075852 0.069184 0.069855 0.072594 0.064332 0.064068 0.059245 0.060414 0.054561 0.053837 0.050248 0.048477 0.046275 0.044336 0.042616 0.043849 0.039247 0.043118 0.036144 0.034592 0.033286 0.036297 0.030655 0.037759 0.028231 0.027040 0.025999 0.024361 0.023943 0.022899 0.022050 0.023386 0.020307 0.021681 0.018701 0.015834 0.017223 0.019976 0.015861 0.018270 0.014607 0.014373 0.013452 0.012667 0.012389 0.013886 0.011409 0.009257 … 92 tempo medio interarrivo = 12.141291 s lambda = 0.082364 errore in norma L2 = 58,9291167 Università degli Studi di Ferrara Facoltà di Ingegneria Andamento chiamate uscenti 18:00-19:00 t n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 37 94 89 78 76 65 78 73 65 63 65 50 48 57 54 42 41 45 42 39 37 33 19 35 31 prob valori λ*e^(-λt) reali 0.042093 0.017746 0.040358 0.045084 0.038695 0.042686 0.037100 0.037410 0.035570 0.036451 0.034104 0.031175 0.032698 0.037410 0.031351 0.035012 0.030058 0.031175 0.028819 0.030216 0.027631 0.031175 0.026492 0.023981 0.025400 0.023022 0.024353 0.027338 0.023350 0.025899 0.022387 0.020144 0.021464 0.019664 0.020580 0.021583 0.019731 0.020144 0.018918 0.018705 0.018138 0.017746 0.017391 0.015827 0.016674 0.009113 0.015986 0.016787 0.015328 0.014868 … 93 tempo medio interarrivo = 23.756835 s lambda = 0.042093 errore in norma L2 = 64,1408369 Università degli Studi di Ferrara Facoltà di Ingegneria Andamento chiamate entranti 9:00-10:00 t n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 108 243 226 216 187 183 163 139 140 125 119 98 113 101 84 90 75 65 60 75 54 48 55 53 52 prob valori λ*e^(-λt) reali 0.068892 0.030560 0.064305 0.068761 0.060024 0.063950 0.056028 0.061121 0.052298 0.052915 0.048817 0.051783 0.045567 0.046123 0.042534 0.039332 0.039702 0.039615 0.037059 0.035371 0.034592 0.033673 0.032289 0.027731 0.030139 0.031975 0.028133 0.028580 0.026260 0.023769 0.024512 0.025467 0.022880 0.021222 0.021357 0.018393 0.019935 0.016978 0.018608 0.021222 0.017369 0.015280 0.016213 0.013582 0.015134 0.015563 0.014126 0.014997 0.013186 0.014714 … 94 tempo medio interarrivo = 14.515563 s lambda = 0.068892 errore in norma L2 = 51,1970420 Università degli Studi di Ferrara Facoltà di Ingegneria Andamento chiamate entranti 12:00-13:00 t n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 126 252 250 213 222 203 189 174 151 141 119 125 124 112 82 85 75 80 70 77 68 55 41 47 36 prob valori λ*e^(-λt) reali 0.075083 0.033871 0.069652 0.067742 0.064614 0.067204 0.059940 0.057258 0.055605 0.059677 0.051582 0.054570 0.047851 0.050806 0.044390 0.046774 0.041179 0.040591 0.038200 0.037903 0.035437 0.031989 0.032874 0.033602 0.030496 0.033333 0.028290 0.030108 0.026244 0.022043 0.024346 0.022849 0.022585 0.020161 0.020951 0.021505 0.019435 0.018817 0.018030 0.020699 0.016725 0.018280 0.015516 0.014785 0.014393 0.011022 0.013352 0.012634 0.012386 0.009677 … 95 tempo medio interarrivo = 13.318548 s lambda = 0.075083 errore in norma L2 = 49,5743570 Università degli Studi di Ferrara Facoltà di Ingegneria Andamento chiamate entranti 15:00-16:00 t n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 70 75 71 59 67 59 39 34 48 47 39 45 46 35 38 39 35 33 29 30 30 36 23 25 prob valori λ*e^(-λt) reali 0.037110 0.014835 0.035758 0.038462 0.034456 0.041209 0.033200 0.039011 0.031991 0.032418 0.030826 0.036813 0.029703 0.032418 0.028620 0.021429 0.027578 0.018681 0.026573 0.026374 0.025605 0.025824 0.024672 0.021429 0.023773 0.024725 0.022907 0.025275 0.022073 0.019231 0.021269 0.020879 0.020494 0.021429 0.019747 0.019231 0.019028 0.018132 0.018335 0.015934 0.017667 0.016484 0.017023 0.016484 0.016403 0.019780 0.015805 0.012637 0.015230 0.013736 … 96 tempo medio interarrivo = 26.946703 s lambda = 0.037110 errore in norma L2 = 57,2399228