configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

12
SECONDA UNIVERSITA’ DEGLI STUDI DI NAPOLI FACOLTA’ DI SCIENZE MM. FF. NN. Corso di Laurea in Matematica e Informatica Configurazione automatica di ambienti di testing per reti di calcolatori Relatore: Candidato: Prof. Stefano Marrone Bruno Interlandi matr. 852/446

Upload: bruno-interlandi

Post on 05-Jul-2015

80 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

SECONDA UNIVERSITA’ DEGLI STUDI DI NAPOLIFACOLTA’ DI SCIENZE MM. FF. NN.

Corso di Laurea in Matematica e Informatica

Configurazione automatica di ambienti di testingper reti di calcolatori

Relatore: Candidato: Prof. Stefano Marrone Bruno Interlandi

matr. 852/446

Page 2: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Sommario

Sistemi critici

Generazione automatica di testo

Il Linguaggio ATL

Applicazione al testing di reti di calcolatori

Page 3: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Sistemi criticiDef: I sistemi critici sono sistemi per i quali un loro malfunzionamento può avere serie conseguenze.

Esistono varie tipologie di sistemi critici: Sistemi mission-critical o money-critical, ovvero tali che

un fallimento può comportare perdite notevoli in termini finanziari (es. web server, base stations, ecc.).

Le reti di calcolatori fanno parte di questa tipologia, perciò risulta importante testarne l’affidabilità prima di realizzarle.

Sistemi safety-critical o life-critical, ovvero tali che un

fallimento può comportare danni alle persone(es. macchine per dialisi, treni o aerei, controllo delle centrali nucleari ecc.)

Page 4: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Problema

Testare le reti di calcolatori assicurandosi:

Di evitarne la realizzazione fisica solo per i test in quanto troppo dispendiosa

La maggior affidabilità possibile

Di ridurre la quantità di tempo necessario per effettuare il test

Perciò risulta utile testare le reti virtualmente

Page 5: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Obiettivo della tesi

Testare virtualmente una rete di calcolatori:

Creare configurazione automatica di reti di calcolatori: ci serviremo per questo scopo delle tecniche di Model-to-Text transformation

Test delle reti tramite software per la creazione di Virtual Machines

Page 6: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Model to text transformationApprocci template based

Un template è un file contenente codice semicompilato, cioè in cui vi sono spazi temporaneamente vuoti da riempire. Un template rappresenta il modello che verrà generato.Un esempio di template è quello che applica una classe Java ad un elemento di tipo Entity con Xpand(tecnica di M2T): <<IMPORT meta::model>><<EXTENSION my::ExtensionFile>> <<DEFINE javaClass FOR Entity>> <<FILE fileName()>> Package <<javaPackage()>>; Public class <<name>> { // implementation } <<ENDFILE>><<ENDDEFINE>>

Page 7: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Model to text transformationApprocci visitor based

Fornire meccanismi visitor che attraversano la rappresentazione interna di un modello e permettono la scrittura di codice in una stringa di testo

Alcuni esempi di approcci visitor-based sono:

Jamda: Framework object-oriented che provvede una serie di classi che rappresentano modelli UML, un API per la manipolazione dei modelli e un meccanismo visitor(chiamato CodeWriters). Atlas transformation language(ATL): Linguaggio sviluppato da Obeo e Inria secondo gli standard QVT(Query, View, Transformation).Le query Atl sono i costrutti che rendono possibile effettuare trasformazioni Model-to-Text .

Page 8: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Modello reti di calcolatori Supponiamo di voler testare un modello UML con Profilo IMS

Il Modello di riferimento è composto da una serie di terminali collegati a due reti locali che a loro volta sono collegate a dei router che consentono l’accesso alla rete internet.

Il Profilo IMS è formato da vari stereotipi, in particolare per il caso di studio ci serviremo dello stereotipo Network cui abbiamo assegato i dati di cui avremo bisogno: IP, Lower IP, Upper IP

Page 9: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Atlas Transformation Language(ATL)

Vediamo ora come realizzare una query che scriva in un file di testo le informazioni delle reti localiquery UML2TEXT =let filename: String = 'VirtualboxUML.xml' inlet network: Sequence(UML!Class) = UML!Class.allInstances()->asSequence() inlet filtrati: Sequence(UML!Class) = network->select(x|x.hasStereotype('Network')) inlet Local: Sequence(UML!Class) = filtrati->select(x|not x.hasStereotype('Internet')) in( Local->collect(x | x.print())->sum()).writeTo(filename);

uses UML2TXTLib;

Questa query serve a creare un file, che si chiamerà VirtualboxUML.xml , in cui saranno scritte le informazioni contenute nelle reti che hanno stereotipo Network ma e esclude quelle con stereotipo Internet .La query si serve della libreria UML2TXTLib definita come segue:

library UML2TXTLib;

helper context UML!Class def: hasStereotype(stereotype : String) : Boolean =self.getAppliedStereotypes()->exists(e|e.name = stereotype);

helper context UML!Class def: getTagValue(stereotype : String, tag : String) : String=self.getValue(self.getAppliedStereotype(stereotype),tag);

helper context UML!Class def: print() : String=self.name + self.getTagValue('IMS::Network','IP') + self.getTagValue('IMS::Network','Lower IP') + self.getTagValue('IMS::Network','Upper IP') + '\n';

Page 10: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Virtualbox Utilizzeremo il software Virtualbox per effettuare il test. Virtualbox permette

la creazione di macchine virtuali.

Page 11: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

<?xml version="1.0"?><VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.10-windows"> <Global> <ExtraData> <ExtraDataItem name="GUI/Input/AutoCapture" value="true"/> <ExtraDataItem name="GUI/Input/HostKey" value="163"/> <ExtraDataItem name="GUI/LanguageID" value="it"/> <ExtraDataItem name="GUI/LastWindowPostion" value="298,89,770,550"/> <ExtraDataItem name="GUI/MaxGuestResolution" value="auto"/> <ExtraDataItem name="GUI/TrayIcon/Enabled" value="false"/> <ExtraDataItem name="GUI/UpdateCheckCount" value="7"/> <ExtraDataItem name="GUI/UpdateDate" value="1 d, 2010-06-19, stable"/> </ExtraData> <MachineRegistry/> <MediaRegistry> <HardDisks/> <DVDImages/> <FloppyImages/> </MediaRegistry> <NetserviceRegistry> <DHCPServers> <DHCPServer networkName="HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter" IPAddress="192.168.56.100" networkMask="255.255.255.0" lowerIP="192.168.56.101" upperIP="192.168.56.254" enabled="1"/> </DHCPServers> </NetserviceRegistry> <SystemProperties defaultMachineFolder="Machines" defaultHardDiskFolder="HardDisks" defaultHardDiskFormat="VDI" remoteDisplayAuthLibrary="VRDPAuth" webServiceAuthLibrary="VRDPAuth" LogHistoryCount="3"/> <USBDeviceFilters/> </Global></VirtualBox>

Caso di studio: test reti Per configurare le reti bisognerà modificare opportunamente il file Virtualbox.xml. L’idea è di dividerlo in tre files:

Header.xml

Parte di codice da modificare Trailer.xml

Page 12: Configurazione automatica di ambienti di testing per reti di calcolatori - tesi di laurea

Caso di studio: test reti

helper context UML!Class def: print() : String='<DHCPServer networkName="'+ self.name + '" IPAddress="' + self.getTagValue('IMS::Network','IP')+ '" networkMask="255.255.255.0" lowerIP="' + self.getTagValue('IMS::Network','Lower IP') + '" upperIP="' + self.getTagValue('IMS::Network','Upper IP') + '" enabled="1"/>' + '\n';

<DHCPServer networkName="HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter" IPAddress="192.168.1.1" networkMask="255.255.255.0" lowerIP="192.168.1.2" upperIP="192.168.1.254" enabled="1"/><DHCPServer networkName="HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter 2" IPAddress="192.168.1.1" networkMask="255.255.255.0" lowerIP="192.168.1.2" upperIP="192.168.1.254" enabled="1"/>

Utilizzando la query definita precedente, modificando solamente la funzione di stampa come segue:

Cioè facendo in modo che venga stampata la parte di codice da modificare inserendo le informazioni contenute nel modello.

Il risultato è costituito dalle seguenti righe di codice:

Unendo i tre file ottenuti(header.xml, VirtualboxUML.xml e trailer.xml) otteniamo il file desiderato(Virtualbox.xml) che una volta messo al posto del file originale ci permetterà di avere le reti configurate come richiesto.È ora possibile effettuare il test delle reti.