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
© Copyright 2024 ExpyDoc