Uitgebreid voorstel Masterproef Informatica

FACULTEIT INGENIEURSWETENSCHAPPEN
EN ARCHITECTUUR
Vakgroep Industriële Technologie en Constructie
Uitgebreid voorstel Masterproef Informatica
Titel van het project: Integratie van experimentcontrole en meetfunctionaliteit in een
geavanceerde grafische userinterface voor toekomstig onderzoek over het internet
Datum indienen:
Naam student: Cedric De Pauw
Interne promotor: Geert Van hoogenbemt
In samenwerking met: IBCN IMinds
Algemene informatie voor extern bedrijf:
Naam van het bedrijf: Universiteit Gent – IBCN – iMinds
Adres: Gaston Crommenlaan 8, 9050 Gent
• Is dit de 1e masterproef in het bedrijf in samenwerking met onze opleiding? Nee
• Is er in het bedrijf inhoudelijke en technische begeleiding mogelijk? Ja
• Kan de student in het tweede semester (februari-mei) 3 dagen per week in het
bedrijf/onderzoekscentrum aanwezig zijn om te werken aan de masterproef? Ja
Begeleiding: ·
Externe promotoren – andere begeleiders:
Piet Demeester, Wim Vandenberghe, Brecht Vermeulen, Wim Van de Meerssche
Bespreking door de werkgroep
Beslissing:
goedgekeurd - herwerken tegen
(niet invullen bij indienen van een voorstel)
…/…
Minimale uitbreidingen:
Opmerkingen:
Advies van collega’s:
Faculteit Ingenieurswetenschappenen Architectuur
Vakgroep Industriële Technologie en Constructie
Campus Schoonmeersen, Valentin Vaerwyckweg 1, B-9000 Gent
www.ugent.be/ea/it-c
1 Inleidend kader en doelstelling van het project
De IBCN-groep (Internet Based Communication Networks and Services research group) bij iMinds is
een groep die instaat voor fundamenteel onderzoek voor internetgebaseerde communicatienetwerken
en -services. Een deel van deze onderzoeken hebben te maken met netwerktestbedden die verspreid
liggen over de hele wereld. Dergelijke testbedden zijn netwerkcomponenten waarmee onderzoekers op
een gecontroleerde manier experimenten kunnen uitvoeren. Het is echter nog niet mogelijk om deze
experimenten uit te voeren aan de hand van een gebruiksvriendelijke userinterface. Een onderzoeker
moet zich nog wagen aan testscripts en een overmaat aan shell-commando's. Dit project moet voor
het uitvoeren van tests een beter alternatief voorzien. Testen opstellen, testen uitvoeren en de
testresultaten ervan bekijken moet mogelijk zijn met eenzelfde tool.
2 Bespreking van de bestaande situatie
2.1 Bestaande tools
Over de hele wereld bestaan er onderzoekscentra die netwerktestbedden ter beschikking hebben. Van
deze testbedden kunnen onderzoekers een of meerdere nodes en links aanvragen, zodat een eigen
netwerk opgesteld en gebruikt kan worden. Het aansturen en opvolgen van experimenten op dergelijke
opstellingen wordt momenteel slechts beperkt ondersteund aan de hand van grafische userinterfaces.
De nadruk ligt in die bestaande tools nog steeds op de command line interface. De twee voornaamste
tools die de eerste stappen in deze richting genomen hebben, zijn LabWiki en Geni Desktop. Beide
laten echter nog veel te wensen over op vlak van de beschikbare functionaliteit en de
gebruiksvriendelijkheid.
Toch hebben beide tools enkele positieve kenmerken die hier kort even aangehaald worden. LabWiki is
de tool die het nauwst verbonden is met de testscripts zelf. De interface (afbeelding 1) is opgebouwd
uit drie kolommen. Zo is er een kolom voor het verslag (Plan), een kolom voor het bewerken van
scripts (Prepare) en een kolom voor de testgegevens en -logs (Execute). Voor het uitvoeren van een
test is het vereist een script manueel op te stellen in LabWiki en moeten alle gewenste testresultaten
op voorhand gekozen worden in dit script. Eens het experiment gestart is, wordt een overzicht
aangeboden van het logboek en de testresultaten. Deze resultaten kunnen dan direct worden
ingevoerd in de kolom van het verslag.
Afbeelding 1: Screenshot van LabWiki
Geni Desktop biedt voor het bekijken van meetresultaten meer flexibiliteit. De gewenste grafieken
kunnen hier ook tijdens het testen gekozen worden en dit aan de hand van een menu. Een
mogelijkheid om deze grafieken op een duidelijke manier te exporteren is in Geni echter niet aanwezig.
2.2 OMF en OML
De bouwstenen om deze tools mee te maken zijn te vinden in OMF (Orbit Management Framework) en
OML (OMF Measurement Library). OMF komt naar voor in de vorm van OEDL (OMF Experiment
Description Language).
OEDL is een scriptingtaal, gebaseerd op Ruby, die instaat voor het opstellen en uitvoeren van een
experiment. Een OEDL-script bestaat uit twee onderdelen: een Resource Description & Configuration
(RDC), en een Event & Task Description (ETD). De RDC somt de benodigde bronnen op en beschrijft
2
hun initiële configuratie. De ETD geeft een lijst van gebeurtenissen en de daaraan gelinkte handelingen
die moeten ondernomen worden als een dergelijke gebeurtenis voorkomt. De Experiment Controller
staat hier in voor het monitoren en het uitvoeren van deze handelingen.
Een typisch verloop van een experiment met OEDL wordt beschreven aan de hand van afbeelding 2.
Eerst geeft een onderzoeker een OEDL-script door aan de Experiment Controller. Uit dit OEDL-script
haalt de controller een reeks initialisatie-opdrachten en stuurt ze door naar de Aggregate Manager van
het testbed waarop de nodes zich bevinden. Deze Aggregate Manager moet dan aan de hand van de
gekregen opdrachten de nodes initialiseren zodat ze klaar zijn voor het experiment. De controller
stuurt vervolgens een reeks opdrachten door naar de nodes zelf. Dit is het moment waarop het testen
van start gaat.
OML komt aan bod bij de Measurement Library op de node zelf en bij de Measurement Collection op de
Aggregate Manager. Deze modules staan in voor het verzamelen en doorsturen van de testresultaten.
Met OML wordt aan de hand van Measurement Points gekozen welke data verzameld moeten worden in
de Measurement Library van een node. Ook is het in deze library mogelijk om filters in te stellen en om
preprocessing uit te voeren (bijvoorbeeld een gemiddelde waarde berekenen). Als de Measurement
Library klaar is met de gegevens, stuurt deze ze op naar de Measurement Collection module van het
testbed. Deze module verzendt de gegevens dan via een Measurement Stream naar een remote
collection point, waar de onderzoeker de resultaten kan ophalen.
Afbeelding 2: Het verloop van een experiment aan de hand van OEDL
(https://mytestbed.net/projects/omf/wiki/An_Introduction_to_OMF)
2.3 jFed
Het project waarop deze masterproef moet voortbouwen heet jFed (afbeelding 3). jFed is een
framework ontwikkeld in Java door de onderzoeksgroep van iMinds. Het doel van dit framework is
ondersteuning bieden voor testbedfederaties die de SFA (Slice-based Federation Architecture)
architectuur volgen. Een federatie is een verzameling voor testbedden die dezelfde API (Application
Programming Interface) ondersteunen. De jFed Library speelt aan de client-side de rol als wrapper
rond de federatiespecifieke API's. Op de achtergrond staat deze library onder andere in voor de SSLconnectie en het beheer van de bijhorende certificaten en private keys, het aansturen van een XmlRpclibrary en het omzetten van argumenten en resultaten. Boven die library kunnen dan modules
ontwikkeld worden die via jFed ondersteund worden op al deze testbedfederaties.
3
Ondersteuning voor OMF en OML moet in jFed nog voorzien worden. Dit is een sleutelcomponent om
testen te kunnen uitvoeren op deze testbeds.
Afbeelding 3: jFed architectuur (http://jfed.iminds.be/)
3 Gedetailleerde omschrijving van de opdracht
Voor de jFed corelibrary moet een API gemaakt worden die ondersteuning voorziet voor OML. Dit heeft
betrekking tot het opstellen van experimenten, het instellen van Measurement Points en het opvangen
en het verwerken van Measurement Streams. Voor OMF zal een API gemaakt worden door het IBCN
zelf.
De userinterface moet gemaakt worden in JavaFX, de vervanger van Java Swing. Deze taal steunt op
het gebruik van XML (Extensible Markup Language) en CSS (Cascading Style Sheet) om een
userinterface op te bouwen en vorm te geven. Het gebruik van CSS biedt als voordeel dat thema's en
effecten gemakkelijker te gebruiken zijn. Een tweede voordeel is het uitgebreidere aanbod van
basiscomponenten, waarmee het eenvoudiger is om nieuwe componenten op te bouwen.
Deze interface moet een onderzoeker in staat stellen om experimenten op te stellen en uit te voeren.
De verkregen testresultaten moeten real-time te bekijken zijn aan de hand van grafieken en na afloop
van het experiment moeten deze data exporteerbaar zijn.
Standaard biedt JavaFX een aantal componenten aan die een basisfunctionaliteit bezitten voor het
bekijken van de testgegevens aan de hand van grafieken. Zo kan een grafiek met vaste data getoond
worden. Hier is het doel deze grafieken aan te passen zodat een real-time overzicht te verkrijgen is en
zodat het exporteren van deze gegevens mogelijk is.
Voor het opstellen en uitvoeren van tests moeten nieuwe componenten gemaakt worden. Een
chronologisch beheer moet mogelijk gemaakt worden door de implementatie van een tijdlijn waar
interactief tests aan toegevoegd of verwijderd kunnen worden. Dit stelt een onderzoeker in staat om
op een duidelijke manier de start- en eindtijd en de duur van zijn experimenten te bekijken en te
beheren. De tijdlijn zelf moet dus instaan voor het aansturen van tests op meerdere nodes aan de
hand van meegeleverde scripts.
Het aanmaken en bewerken van de testscripts moet mogelijk gemaakt worden door een ingebouwde
editor die syntax-highlighting voor OEDL aanbiedt. Hiermee kan een onderzoeker gemakkelijk een
nieuw script opstellen, of een bestaand script aanpassen. Deze scripts moeten dan rechtstreeks
gebruikt kunnen worden om tests mee te initialiseren en uit te voeren. JavaFX biedt hiervoor gewone
tekstvelden en een HTML-editor aan. Er moet beslist worden welke basiscomponent het meest geschikt
is om deze OEDL-editor op voort te bouwen.
4 Mogelijke uitbreidingen en opties
De editor voor OEDL scripts kan uitgebreid worden met codeaanvullingen en syntaxcontrole. Dit kan de
vereiste basiskennis van OEDL van de onderzoeker verlagen, wat het gebruik van deze tool nog
makkelijker zou maken. Ook zouden vaak gebruikte tests opgesteld kunnen worden aan de hand van
een wizard waar slechts de juiste parameters moeten ingevuld worden.
Voor de documentatie van tests zou ondersteuning voor een Wiki kunnen geïmplementeerd worden.
Deze Wiki zou een onderzoeker dan vlot toegang kunnen bieden tot vorige studies en de bijhorende
testscripts en -resultaten.
4