SECONDA UNIVERSITA’ DEGLI STUDI DI NAPOLI
FACOLTA’ DI SCIENZE MM. FF. NN.
Corso di Laurea in Matematica e Informatica
Conf...
Sommario

 Sistemi critici
Generazione automatica di testo
Il Linguaggio ATL
 Applicazione al testing di reti di calco...
Sistemi critici
Def: I sistemi critici sono sistemi per i quali un loro
malfunzionamento può avere serie conseguenze.
Esis...
Problema
 Testare le reti di calcolatori assicurandosi:
 Di evitarne la realizzazione fisica solo per i test in
quanto t...
Obiettivo della tesi
 Testare virtualmente una rete di calcolatori:

 Creare configurazione automatica di reti di
calcol...
Model to text transformation
Approcci template based
Un template è un file contenente codice semicompilato, cioè in cui vi...
Model to text transformation
Approcci visitor based
 Fornire meccanismi visitor che attraversano la rappresentazione
inte...
Modello reti di calcolatori
 Supponiamo di voler testare un modello UML con Profilo IMS

Il Modello di riferimento è comp...
Atlas Transformation Language(ATL)
 Vediamo ora come realizzare una query che scriva in un file di testo le
informazioni ...
Virtualbox
 Utilizzeremo il software Virtualbox per effettuare il test. Virtualbox permette
la creazione di macchine virt...
Caso di studio: test reti
 Per configurare le reti bisognerà modificare opportunamente il file
Virtualbox.xml. L’idea è d...
Caso di studio: test reti
 Utilizzando la query definita precedente, modificando solamente la
funzione di stampa come seg...
Upcoming SlideShare
Loading in …5
×

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

256 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
256
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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: Prof. Stefano Marrone Candidato: Bruno Interlandi matr. 852/446
  2. 2. Sommario  Sistemi critici Generazione automatica di testo Il Linguaggio ATL  Applicazione al testing di reti di calcolatori
  3. 3. Sistemi critici Def: 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.)
  4. 4. 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
  5. 5. 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
  6. 6. Model to text transformation Approcci 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>>
  7. 7. Model to text transformation Approcci 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 .
  8. 8. 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
  9. 9. Atlas Transformation Language(ATL)  Vediamo ora come realizzare una query che scriva in un file di testo le informazioni delle reti locali query UML2TEXT = let filename: String = 'VirtualboxUML.xml' in let network: Sequence(UML!Class) = UML!Class.allInstances()->asSequence() in let filtrati: Sequence(UML!Class) = network->select(x|x.hasStereotype('Network')) in let 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';
  10. 10. Virtualbox  Utilizzeremo il software Virtualbox per effettuare il test. Virtualbox permette la creazione di macchine virtuali.
  11. 11. Caso di studio: test reti  Per configurare le reti bisognerà modificare opportunamente il file Virtualbox.xml. L’idea è di dividerlo in tre files: <?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> Header.xml Parte di codice da modificare Trailer.xml
  12. 12. Caso di studio: test reti  Utilizzando la query definita precedente, modificando solamente la funzione di stampa come segue: 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'; 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: <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"/> 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.

×