SpotSim: Test gedreven ontwikkeling van sensornetwerk applicaties

Maat: px
Weergave met pagina beginnen:

Download "SpotSim: Test gedreven ontwikkeling van sensornetwerk applicaties"

Transcriptie

1 SpotSim: Test gedreven ontwikkeling van sensornetwerk applicaties Nick Dijkshoorn 17 augustus 2009 (herziene versie) Bachelor Thesis: Bachelor of Computer Science Supervisors: Rudolf J. Strijkers, Robert J. Meijer, Dick van Albada Signed:

2 Samenvatting Deze scriptie is een studie naar het test gedreven ontwikkelen van sensornetwerk applicaties. Er wordt verkend wat test gedreven ontwikkeling inhoudt en hoe deze techniek kan worden gebruikt om de kwaliteit van sensornetwerk applicaties te verbeteren. Daarvoor worden een aantal test methodieken onder de loep genomen, zoals JUnit en simulatie. Daarnaast beschrijft deze scriptie een Java framework dat test gedreven ontwikkeling van sensornetwerk applicaties voor de Sun SPOT omgeving mogelijk maakt.

3 Inhoudsopgave 1 Introductie Probleemstelling Doelstellingen Test gedreven ontwikkeling Test gedreven ontwikkeling Cyclus Soorten testen Test gedreven ontwikkeling voor sensornetwerken State of the art sensornetwerk simulators Sun SPOT Functionaliteiten van Solarium Architectuur van Solarium Solarium designkeuzes SpotSim simulator voor Sun SPOT Gewenste functionaliteiten Beschrijving Implementatie van het framework Problemen en oplossingen Bug in de multihop code van de SPOT bibliotheek Initialisatietijd per SPOT SpotSim toepassingen Sun SPOT in het onderwijs Implementeren van proofs of concepts SPOT Bounce demo Kwantitatieve analyse Resource gebruik Communicatievertragingen Toekomstig werk 35 8 Conclusie 37 Bijlagen: 38 Lijst met afkortingen 40 A SPOT Bounce demo code 41 B van de Universiteit van Antwerpen 45 2

4 3

5 1 Introductie Draadloze sensornetwerken (WSN) is een zeer boeiend en snel evoluerend onderzoeksdomein. Door sensoren te voorzien van reken- en communicatiemogelijkheden, wordt het mogelijk om de reële wereld te koppelen aan een computersysteem. De nuttige toepassingen zijn legio, bijvoorbeeld het monitoren van fysieke- of omgevingsfactoren. Draadloze sensornetwerken worden geïntegreerd in de bestaande computerinfrastructuur om eindgebruikerapplicaties mogelijk te maken. Deze applicaties communiceren met de software op één of meerdere sensornetwerken om gebruik te maken van de diensten die de sensornetwerken aanbieden. Een draadloos sensornetwerk bestaat uit ruimtelijk verspreide autonome apparaatjes (sensorknopen) die zijn voorzien van sensoren. De grootte van deze apparaten kan variëren van die van een zandkorrel tot die van een schoenendoos. Het aantal sensorknopen in een draadloos sensornetwerk kan gaan van enkele apparaatjes tot enkele duizenden. Figuur 1.1: Monitoring Volcanic Eruptions with a Wireless Sensor Network [3] Voorbeeld van een sensornetwerk dat de activiteiten van een vulkaan in de gaten houdt. Elke sensorknoop meet seismische activiteiten en stuurt de meetresultaten door naar het basisstation waar de metingen door een computer worden verwerkt. Het programmeren van sensornetwerken is met de huidige staat van ontwikkeling een uitdagende taak [1]. De eigenschappen van sensornetwerken staan loodrecht tegenover de aannames van het internet. Traditionele netwerk concepten en technologieën zijn daarom niet toepasbaar op sensornetwerken. Enkele uitdagingen van sensornetwerken zijn: Beperkte rekenkracht en geheugencapaciteit. Dynamische netwerktopologie (uitval of verplaatsing van knopen). 4

6 Intermitterende connectiviteit: er is niet altijd een eind-naar-eind route. Lange of variabele vertragingen. Hoge error-rates. Grote schaal (een sensornetwerk kan uit veel knopen bestaan). Algoritmen moeten ondanks de schaal toch efficiënt kunnen functioneren. Tijdens de ontwikkeling van sensornetwerk applicaties kan test gedreven ontwikkeling (TDD) helpen om de kwaliteit van de sensornetwerk applicatie te verbeteren [2]. Door een sensornetwerk te simuleren kunnen specifieke testen op de programmatuur worden uitgevoerd. Een simulator kan bijvoorbeeld extreme omgevingen nabootsen waarin sensornetwerken worden toegepast. Denk hierbij aan omgevingen als dijken, bergen en militaire operaties. Door deze situaties na te bootsen kan een sensornetwerk applicatie grondig worden getest. 1.1 Probleemstelling Aan de Universiteit van Amsterdam wordt onderzoek gedaan op het gebied van sensornetwerken met behulp van Sun SPOT [4] (Sun Small Programmable Object Technology), een draadloze sensornetwerk platform ontwikkeld bij Sun Microsystems. De Universiteit van Amsterdam heeft voor dit platform gekozen omdat het de mogelijkheid biedt om het netwerk te programmeren. Hierdoor is het bijvoorbeeld mogelijk om met behulp van Sun SPOT onderzoek te doen naar het UPVN concept [12], waarbij een applicatie het netwerk programmeert. Sun heeft voor het Sun SPOT platform ook een emulator met de naam Solarium ontwikkeld om SPOT applicaties op een desktop computer te kunnen draaien. Hierdoor is het mogelijk om SPOT applicaties eenvoudig te testen zonder de hardware zelf of scenario s te testen die in de echte wereld lastig zijn te beheersen. De mogelijkheden van Solarium zijn echter te beperkt om SPOT applicaties op realistische wijze mee te testen. Het nabootsen van realistische scenario s vereist een hoop handelingen en is te complex om handmatig uit te voeren. Momenteel is het met Solarium alleen mogelijk om handmatig virtuele SPOTs te instantiëren, te configureren en sensorwaarden in te voeren. Daardoor is Solarium niet in staat om realistische scenario s na te bootsen. Verder is de communicatie tussen virtuele SPOTs beperkt tot single-hop: alle virtuele SPOTs kunnen met elkaar communiceren en kennen geen (dynamische) netwerktopologie. Dit terwijl een dynamische netwerktopologie juist een prominent kenmerk is van sensornetwerken. Multihop communicatieprotocollen vormen daarom een belangrijk onderzoeksgebied van sensornetwerken, maar kunnen niet worden getest met Solarium. De simulatiemogelijkheden voor het SPOT platform zijn dus te beperkt om SPOT applicaties op test gedreven wijze te ontwikkelen. 1.2 Doelstellingen Het doel van dit onderzoek is om een simulatie framework voor het Sun SPOT platform te ontwikkelen. Met behulp van dit framework kunnen de sensoren vanuit een applicatie worden geprogrammeerd en wordt multihop communicatie mogelijk gemaakt. Het framework zorgt ervoor 5

7 dat de tekortkomingen van Solarium worden opgeheven waardoor het mogelijk wordt om het Sun SPOT platform te gebruiken voor test gedreven ontwikkeling van sensornetwerk applicaties. Multihop communicatieprotocollen zijn hierin een belangrijk test onderdeel. Bij het ontwikkelen van een software architectuur moet er rekening worden gehouden met het eenvoudig kunnen uitbreiden en implementeren van nieuwe functionaliteiten. 6

8 7

9 2 Test gedreven ontwikkeling 2.1 Test gedreven ontwikkeling Test gedreven ontwikkeling (TDD) is een software ontwikkeling techniek waarbij software wordt ontwikkeld door het schrijven van testen. Dit leidt tot een hogere productiviteit en kwaliteit [5]. De techniek maakt gebruik van korte ontwikkel-iteraties die zijn gebaseerd op vooraf geschreven testen. Deze testen definiëren nieuwe functionaliteiten of gewenste verbeteringen. Elke iteratie produceert de code die nodig is om de testen van die iteratie te laten slagen. Uiteindelijk herstructureert de programmeur de code zonder de werking ervan te veranderen. Een belangrijk TDD sleutelconcept is dat de testen worden opgesteld voordat de code wordt geschreven. Hierdoor wordt er tijdens het schrijven van de programmacode al feedback verkregen Cyclus Test(en) toevoegen Testen uitvoeren Kleine aanpassing Testen uitvoeren Code opschonen ontwikkeling gaat verder Figuur 2.1: Schematische weergave van de Test Gedreven Ontwikkeling cyclus. 1. Test(en) toevoegen In test gedreven ontwikkeling begint elke nieuwe functionaliteit met het schrijven van een test. Elke nieuwe test moet in het begin falen omdat die is geschreven voordat de functionaliteit is geïmplementeerd. Om een test te schrijven moet de ontwikkelaar de specificaties en eisen van de te ontwikkelen software goed begrijpen. 2. Alle testen uitvoeren en controleer of nieuwe testen falen Deze stap valideert of de testen correct werken en of nieuwe testen falen. Nieuwe testen moeten namelijk falen zolang er nog geen nieuwe code is geschreven, er is immers nog geen code om de test te laten slagen. 3. Code schrijven In deze stap wordt nieuwe code geschreven met als doel de test te laten slagen. De nieuwe code hoeft in deze stap nog niet perfect te zijn, zolang de test maar slaagt. Dit is acceptabel omdat de code later wordt opgeschoond. Het is wel belangrijk dat de nieuwe code alleen als doel heeft om de test te laten slagen. Verdere (en niet-geteste) functionaliteiten mogen niet worden voorspeld en zijn dus niet toegestaan. 8

10 4. Voer het geautomatiseerd testen uit en controleer of alle testen slagen Als alle testen slagen is de programmeur verzekerd dat de code aan de geteste eisen voldoet. 5. Code opschonen Nu kan de code worden opgeschoond. Door de testen opnieuw uit te voeren is de ontwikkelaar verzekerd dat het opschonen van de code geen functionaliteiten heeft beschadigd. Het verwijderen van duplicaties is een belangrijk aspect van software design. In dit geval is dit ook van toepassing op het verwijderen van duplicaties tussen de testcode en de programmacode. 6. Herhalen De gehele cyclus kan worden herhaald om nieuwe functionaliteiten toe te voegen Soorten testen Test gedreven ontwikkeling kan worden onderverdeeld in verschillende soorten testen. Elke soort test wordt in een bepaalde fase van het ontwikkelproces toegepast. 1. Unittesten Een zeer belangrijk onderdeel van test gedreven ontwikkeling is het schrijven van Unit Testen, ook wel unittesten genoemd. Unittesten is een methode om softwaremodulen of kleine stukjes code (units) afzonderlijk te testen op een correcte werking. Bij unittesten zal voor iedere unit een test ontwikkeld worden, een unittest. Deze testen bevatten beweringen (assertions) die waar of onwaar zijn. De Unit Testen worden geautomatiseerd uitgevoerd en blijven gedurende het hele ontwikkelproces bestaan. Dit betekent dat na aanpassingen van de code alle testen nog moeten werken. Doordat alle testen iedere keer worden uitgevoerd, worden functionele wijzigingen direct opgemerkt. Om Unit Testen te definiëren en op geautomatiseerd wijze uit te voeren is een zogenaamd xunit framework vereist. Er zijn verscheidene xunit frameworks beschikbaar waarbij elk framework op een specifieke programmeertaal is gericht. Op Wikipedia is een uitgebreide lijst met deze frameworks te vinden [6]. 2. Integratietesten Na het unittesten volgt het integratietesten. Daarbij worden individuele softwarecomponenten tot een groep gecombineerd en getest. Het doel van integratietesten is om te controleren of aan de functionele, prestatie en betrouwbaarheidseisen van de groepen wordt voldaan. De testen zijn zo geconstrueerd dat kan worden bepaald of alle componenten binnen de groep op de juiste wijze met elkaar interacteren. Via de interfaces worden passende parameters en invoerdata aan de groepen aangeboden. 3. Systeemtesten Na het integratietesten volgt het systeemtesten. De groepen van de integratietesten worden gecombineerd tot een geheel systeem en vervolgens als geheel getest. Daarbij wordt getest op gebreken tussen zowel gekoppelde groepen alsmede het gehele systeem. Systeemtesten worden door middel van blackboxtesten getest. Voor deze testmethode is geen kennis van het design of de onderliggende code vereist. 4. Systeem integratietesten Na het uitvoeren van systeemtesten kunnen systeem integratietesten worden uitgevoerd. Daarbij wordt getest of meerdere geïntegreerde systemen op juiste wijze samenwerken. 9

11 2.2 Test gedreven ontwikkeling voor sensornetwerken Test gedreven ontwikkeling kan ook voor de ontwikkeling van sensornetwerk applicaties worden toegepast. De eigenschappen van sensornetwerken zorgen er voor dat het testen van sensornetwerk applicaties complexer is dan het testen van reguliere applicaties. De beperkte hulpbronnen van sensorknopen zorgen ervoor dat reguliere programmeertalen en modellen slecht bruikbaar zijn voor sensornetwerken. Daarom zijn er nieuwe programmeertalen en modellen specifiek voor sensornetwerken ontwikkeld. De reguliere xunit test frameworks zijn daarom onbruikbaar voor de meeste sensornetwerken. Daarnaast speelt de interactie tussen sensorknopen een belangrijke rol binnen sensornetwerken. Om het gedrag van een sensornetwerk applicatie te testen is het juist belangrijk om de interactie tussen sensorknopen te testen. De meest gebruikte testplatformen voor de ontwikkeling van sensornetwerken zijn daarom sensornetwerk simulators en sensornetwerk testbedden. Het gebruik van een echte sensornetwerk testbed biedt de meest realistische testomgeving waardoor er nauwkeurige testresultaten kunnen worden verzameld. Er kleven echter twee serieuze beperkingen aan deze aanpak. Ten eerste brengt de grote schaal van een testbed hoge kosten met zich mee, die voor academici vaak onacceptabel zijn. Ten tweede is het met een testbed lastig om een reproduceerbare omgeving te creëren. Voor sommige toepassingen, bijvoorbeeld het monitoren van een vulkaanuitbarsting, is het gebruik van een testbed ongewenst omdat er schade aan de apparatuur kan ontstaan. Voor het gebruik van een sensornetwerk simulator gelden deze beperkingen niet. Sensornetwerk simulators imiteren echte sensornetwerken door middel van een computerprogramma. Om de werkelijkheid na te bootsen worden vereenvoudigde modellen van de werkelijkheid gebruikt. Daardoor is simulatie minder volledig en nauwkeurig dan het testen met fysieke hardware State of the art sensornetwerk simulators De afgelopen jaren zijn er meerdere sensornetwerk simulators ontwikkeld. Sommige van deze simulators zijn gebaseerd op reguliere (netwerk) simulators, anderen zijn volledig opnieuw opgebouwd. De doelstellingen van de sensornetwerk simulators lopen behoorlijk uiteen. Sommige simulators proberen een sensornetwerk op een zo laag mogelijk niveau te imiteren om een zo realistisch mogelijke simulatie mogelijk te maken. Andere simulators, waaronder SHAWN [9], imiteren een sensornetwerk op een hoger niveau om bijvoorbeeld een specifiek probleem of effect te onderzoeken. Een simulator is bruikbaar voor test gedreven ontwikkeling als de programmacode van een sensornetwerk applicatie ook daadwerkelijk wordt getest door middel van de simulatie. De code van de sensornetwerk applicatie wordt gebruikt om het gedrag van een sensorknoop te emuleren. Een gemodificeerde versie of een formele beschrijving van de applicatie is ongeschikt omdat daarmee niet de applicatiecode zelf wordt getest. Dit is niet in overeenstemming met de gedachtegang van test gedreven ontwikkeling. Geschikte sensornetwerk simulators kunnen in context met dit onderzoek in grofweg twee categorieën worden onderverdeeld. 1. Generieke sensornetwerk simulators Generieke sensornetwerk simulators zijn niet aan een specifiek sensornetwerk platform gebonden. Deze simulators maken gebruik van generieke modellen om het gedrag van een sen- 10

12 sornetwerk te beschrijven. De generieke modellen zullen afwijken van die van een specifiek sensornetwerk platform waardoor de simulaties minder realistisch zullen zijn. Door middel van uitbreidingen, vaak in de vorm van modules, kunnen platform-specifieke eigenschappen aan de simulator worden toegevoegd. De ontwikkeling van deze modules vereist kennis van zowel de simulator als het sensornetwerk platform. 2. Platform specifieke sensornetwerk simulators Specifieke sensornetwerk simulators zijn beperkt tot een bepaald sensornetwerk platform en bieden out-of-the-box de meest realistische simulatie van het specifieke platform. De implementaties binnen de simulator komen overeen met de implementaties op echte sensorknopen. Deze simulators zijn beperkt tot een bepaald platform en hebben daarom vaak minder uitbreidingsmogelijkheden. In state of the art sensornetwerk simulators wordt steeds vaker de component gebaseerde architectuur gebruikt om modulaire uitbreidingen mogelijk te maken. Onder andere J-Sim [11] en SENSE [10] maken gebruik van deze architectuur die is gebaseerd op het component-port model. In het component-port model [10] [13] communiceert een component met andere componenten via inports en outports. Een inport implementeert een bepaalde functionaliteit en is dus gelijk aan een functie. Een outport dient als een abstractie van een functie pointer: het definieert welke functionaliteit het van anderen verwacht. Het fundamentele verschil tussen een object en een component in het component-port model is dat de interacties van een componenten met anderen volledig kunnen worden opgevangen door de interface. Voor een object is dit niet het geval. Een object kan bijvoorbeeld een functie van elk ander object aanroepen zolang het een pointer of referentie naar dat object heeft. Dergelijke communicatie is echter niet weerspiegeld in de interface of declaratie van het object en wordt alleen zichtbaar door de geïmplementeerde code te onderzoeken. Het resulterende probleem is dat elke functie aanroep naar een extern object een impliciete onderlinge afhankelijkheid introduceert tussen objecten. Door deze impliciete onderlinge afhankelijkheden zijn objecten slecht herbruikbaar. Dankzij outports onderscheiden componenten zich van objecten. Outports leggen restricties op de runtime interacties tussen componenten. Het belangrijke gevolg van outports is dat de ontwikkeling van een onderdeel nu volledig gescheiden kan worden van de context waarin het onderdeel gebruikt zal worden. Dit leidt tot echte herbruikbare componenten. Daarnaast zijn componenten eenvoudiger uit te breiden. Elk component kan door een ander component worden vervangen, zolang de component de benodigde functionaliteiten levert. Vrijwel alle sensornetwerk simulators maken gebruik van discrete-event simulatie. Hierbij is de tijd opgedeeld in kleine blokjes. De toestand van het systeem wordt op basis hiervan stapsgewijs berekend, door middel van iteratie. De gebeurtenissen die de veranderingen van het systeem veroorzaken worden beschreven met een lijst van chronologische gebeurtenissen. Een gebeurtenis kan bijvoorbeeld een verandering van een sensorwaarde zijn. Alle gebeurtenissen samen vormen een scenario, wat als een test kan worden beschouwd. De virtuele tijd binnen de simulatie kan relatief aan de echte tijd worden gekozen, zo is het mogelijk om simulaties versneld of vertraagd te laten uitvoeren. 11

13 3 Sun SPOT Sun SPOT [4] (Sun Small Programmable Object Technology) is een open source draadloze sensornetwerk technologie. Sun SPOT bestaat uit een combinatie van hardware en software dat bij Sun Microsystems is ontwikkeld. Sun SPOT onderscheidt zich van andere sensornetwerken doordat het is gebouwd op de Squawk Java Virtual Machine [7]. Applicaties voor SPOTs worden daarom in de Java programmeertaal geschreven. Daarvoor kunnen standaard Java IDEs worden gebruikt. Sun SPOT is ontwikkeld om de ontwikkeling van nieuwe toepassingen en apparaten te bevorderen. Programmeurs die nog nooit met embedded apparaten hebben gewerkt, kunnen nu verder denken dan toetsenbord, muis en scherm. De programma s die ze schrijven gaan op compleet nieuwe wijze interactie met elkaar, met de omgeving en met gebruikers aan. 3.1 Functionaliteiten van Solarium Solarium is een desktop applicatie om de software op Sun SPOTs te beheren. Middels een USB basisstation worden SPOTs op draadloze wijze gedetecteerd. Alle gedetecteerde SPOTs worden binnen de Solarium applicatie visueel getoond middels de weergave methode naar keuze (boomen/of rooster-weergave). Solarium biedt voor elke SPOT een aantal acties, waaronder het uploaden van een applicatie naar de SPOT. Figuur 3.1: Een virtuele SPOT met controle paneel om de sensoren te beheren. Solarium bevat een emulator die het mogelijk maakt om Sun SPOT applicaties op een desktop computer te draaien. Hierdoor kan een SPOT applicatie worden getest zonder het op een echte SPOT te moeten laden of zonder de hardware zelf. Anders dan discrete-event simulatoren is Solarium een emulator, die kan worden gebruikt om een deel van de omgeving te simuleren. Binnen Solarium wordt een geëmuleerde SPOT uitgedrukt als een virtuele SPOT. Elke virtuele SPOT dient handmatig door de gebruiker te worden aangemaakt en te worden voorzien van een SPOT applicatie. Een virtuele SPOT wordt dan visueel binnen Solarium weergegeven, inclusief LEDs en twee switches die op echte SPOTs aanwezig zijn. Alle sensoren worden handmatig beheerd met een controle 12

14 paneel (Figuur 3.1). Daarnaast kan Solarium de (tekstuele) uitvoer van een SPOT applicatie tonen, zodat er debug informatie kan worden gebruikt tijdens het testen. Virtuele SPOTs kunnen met elkaar communiceren door radioverbindingen te openen. Hiervoor kunnen broadcast en point-topoint verbindingen worden gebruikt. Deze virtuele radioverbindingen vinden plaats via reguliere en multicast sockets. Virtuele SPOTs kunnen ook met echte SPOTs communiceren. Het basisstation fungeert dan als extra hop. De functionaliteiten van de Solarium applicatie zijn echter te beperkt om simulaties gebaseerd op een scenario uit te voeren. Het nabootsen van realistische scenario s vereist een hoop handelingen en is te complex om handmatig uit te voeren. Momenteel is het met Solarium alleen mogelijk om handmatig virtuele SPOTs te instantiëren, te configureren en sensorwaarden in te voeren. Daardoor is Solarium niet in staat om realistische scenario s na te bootsen. Verder is de communicatie tussen virtuele SPOTs beperkt tot single-hop: alle virtuele SPOTs kunnen met elkaar communiceren en kennen geen (dynamische) netwerktopologie. Dit terwijl een dynamische netwerktopologie juist een prominent kenmerk is van sensornetwerken. Multihop communicatieprotocollen vormen daarom een belangrijk onderzoeksgebied van sensornetwerken, maar kunnen niet worden getest met Solarium. De simulatiemogelijkheden voor het SPOT platform zijn dus te beperkt om SPOT applicaties op test gedreven wijze te ontwikkelen. 3.2 Architectuur van Solarium Sun SPOT is geheel open source. Echter, de architectuur van Solarium en bijbehorende emulator is amper gedocumenteerd. Ook de broncode is amper voorzien van uitleg, waardoor het onnodig lastig is om met de code aan de slag te gaan. Door de broncode te bestuderen heb ik de nodige kennis opgedaan over de architectuur van Solarium. User application SPOT library Emulator Squawk VM User application SPOT library Emulator Squawk VM User application SPOT library Emulator Squawk VM Solarium vspot 1 vspot 2... vspot n Figuur 3.2: Solarium architectuur Binnen Solarium worden zowel echte SPOTs als virtuele SPOTs (vspot) gerepresenteerd door een virtueel object. Voor elke virtuele SPOT start Solarium een nieuw proces dat verantwoordelijk is voor de emulatie van één virtuele SPOT. Dit proces is opgebouwd uit vier lagen. 1. Squawk VM 13

15 Squawk is een micro Java virtuele machine voor embedded systemen en kleine apparaten. De virtuele machine interpreteert code en voert vervolgens de bijbehorende taken uit. 2. Emulator De emulator bootst de interactie met de omgeving na door gebruik te maken van een simpel model. Daardoor moet de gebruiker de sensorwaarden expliciet instellen. 3. SPOT library De SPOT bibliotheek bevat functionaliteiten voor de SPOT. 4. User application De SPOT applicatie die door de gebruiker is geschreven. De emulator laag van elke virtuele SPOT interacteert met Solarium middels een eigen socket verbinding (zwarte pijlen in Figuur 3.2). Over deze verbinding wordt onder andere de uitvoer van de virtuele SPOT naar Solarium gecommuniceerd. Een voorbeeld daarvan is het doorgeven aan Solarium dat de eerste LED moet gaan branden. Solarium verwerkt de ontvangen opdracht van de emulator en zorgt ervoor dat de betreffende LED binnen de GUI gaat branden. Maar Solarium stuurt ook opdrachten naar de virtuele SPOT. Dit gebeurt bijvoorbeeld als de gebruiker met de muis op één van de twee switches drukt. De emulator ontvangt van Solarium een melding dat een switch is ingedrukt en zorgt ervoor dat dit door de SPOT applicatie wordt opgemerkt. Alle virtuele SPOTs kunnen onderling met elkaar communiceren. De emulator realiseert dit door socket verbindingen met de emulator van andere virtuele SPOTs te maken (witte pijlen). Daarnaast ontvangt elke emulator via een gedeeld multicast adres broadcast pakketten van andere virtuele SPOTs. 3.3 Solarium designkeuzes Uit de architectuur van Solarium kunnen een aantal designkeuzes worden afgeleid. Het was voor mijn onderzoek interessant om deze designkeuzes te verkennen en daarmee te bepalen wat de doelstellingen van Sun zijn geweest. Er zijn verschillende manieren om meerdere virtuele sensorknopen op een fysieke computer te emuleren [16]. Sun heeft ervoor gekozen om elke virtuele SPOT in een lichtgewicht Virtual Machine (Squawk) te draaien. Deze methode heeft als voordeel dat de SPOT applicatie en SPOT bibliotheek zonder modificaties kunnen worden gebruikt voor het emuleren van virtuele SPOTs. Daardoor levert deze methode transparantie met betrekking tot de software die wordt getest. Deze aanpak heeft echter ook nadelen. Elke Virtual Machine gebruikt de nodige hoeveelheid geheugen. Hierdoor is het aantal virtuele SPOTs dat op een computer geëmuleerd kan worden beperkt. Een ander nadeel is dat de performance wordt gedrukt. Elke Virtual Machine is een eigen proces. Het besturingssysteem zal door middel van context switches elk proces afwisselend toegang geven tot de processor. Deze context switches leveren een bepaalde overhead op. Elke virtuele SPOT is een proces. Om de draadloze communicatie tussen virtuele SPOTs te emuleren is er interprocescommunicatie (IPC) nodig. IPC technieken zijn grofweg te verdelen in vier categorieën: message passing, synchronisatie, shared memory en remote procedure calls (RPC). Sun heeft ervoor gekozen om IPC door middel van sockets (message passing) te implementeren. Een groot voordeel van sockets is dat het op de meeste besturingssysteem aanwezig is. Hierdoor hoeft 14

16 Sun alleen de API s aan te roepen en geen eigen implementatie te schrijven. Daarnaast kan een multicast socket worden gebruikt om SPOT broadcastberichten op alle virtuele SPOTs af te leveren. Een ander bijkomend voordeel van sockets is dat IPC tussen meerdere computers mogelijk is. Een proces op computer A kan communiceren met een proces op computer B. Dit kan worden gebruikt om Solarium gedistribueerd te maken. De vraag blijft natuurlijk of Sun dit voordeel heeft laten meewegen in hun keuze. Het ontbreken van realistische vormen van communicatie is waarschijnlijk een afweging geweest tussen functionaliteiten en het tijdsbestek waarin Solarium ontwikkeld moest worden. In de Sun SPOT Emulator handleiding [17] wordt beschreven dat realistische simulatie van de draadloze radiocommunicatie wellicht een uitdagende uitbreiding voor de toekomst is. Virtuele SPOTs worden handmatig aangemaakt en de sensorwaarden moeten handmatig door de gebruiker worden ingesteld. Hierdoor wordt duidelijk dat Sun er voor heeft gekozen om Solarium te richten op kleinschalig testen van SPOT applicaties. Uit de bovenstaande designkeuzes kan worden geconcludeerd dat de huidige versie van Solarium is ontwikkeld om SPOT applicaties op kleine schaal te testen. Flexibiliteit van het programma, om het bijvoorbeeld uit te breiden of aan te passen, speelt een belangrijke rol terwijl schaalbaarheid een ondergeschikte rol speelt. 15

17 4 SpotSim simulator voor Sun SPOT Uit hoofdstuk 3 blijkt dat de Solarium applicatie te weinig functionaliteiten heeft om test gedreven ontwikkeling van SPOT applicaties mogelijk te maken. De oplossing die ik hiervoor presenteer is een Java framework met de naam SpotSim. Dit framework breidt de functionaliteiten van Solarium uit zodat het mogelijk wordt om SPOT applicaties op test gedreven wijze te ontwikkelen. Ik heb ervoor gekozen om de Solarium code als basis voor het framework te gebruiken. Hierdoor hoeft niet alles opnieuw geschreven te worden. Solarium bevat immers een solide basis die al redelijk wat functionaliteiten bevat. Solarium is open source en heeft een heldere objectgeoriënteerde structuur en is daardoor vrij eenvoudig aan te passen. 4.1 Gewenste functionaliteiten Met het framework wil ik de basis leggen om simulaties voor het Sun SPOT platform mogelijk te maken. Realistische netwerk simulatie is een complex probleem, daarom is het framework beperkt tot een aanzet om realistische netwerk simulaties te kunnen doen. De onderstaande functionaliteiten zijn in het framework geïmplementeerd. Deze functionaliteiten zijn tot stand gekomen door de literatuurstudie van hoofdstuk 2 en door te redeneren vanuit de gebreken van Solarium. Multihop communicatie tussen virtuele SPOTs. Simulatie scenario programmeren vanuit een programma. Aantal sensorknopen programmeren. Sensoren programmeren. Netwerktopologieën programmeren. Uitvoer van de simulatie. Deze uitvoer kan onder andere worden gebruikt om testen te valideren. Visuele weergave van SPOTs. Applicatie uitvoer (tekst). Schaalbaar (gedistribueerde opzet). 4.2 Beschrijving Een scenario vormt het hart van het framework. Een scenario bestaat uit een door de gebruiker geschreven programma dat een bepaald scenario nabootst. De gebruiker doet dit door de sensoren van SPOTs met behulp van een sequentieel programma te programmeren. Vanuit het scenario 16

18 programma kan het netwerk ook worden geprogrammeerd zodat de gewenste netwerktopologie wordt gevormd. Het framework is gebaseerd op het algemene UPVN concept [12] waarbij er op een andere manier naar netwerken wordt gekeken. Het doel van UPVN is om de applicatie meer controle over het netwerk te geven. In het UPVN concept kan de applicatie invloed uitoefenen op het netwerk door middel van een applicatiecomponent (AC) die draait op een netwerkelement (NE). De applicatie zal virtuele netwerkelementen (VNE s) aanmaken en via deze virtuele netwerkelementen de echte netwerkelementen (NE s) besturen. Applicatie NC Applicatie NC Om een bepaalde handeling te verrichten en daarbij aan te passen aan de omgeving NE NE AC AC Scenario VNE VNE Om erachter te komen wat het netwerk doet in bepaalde omstandigheden Figuur 4.1: Schematische beschrijving van het framework op basis van het UPVN concept. Door het UPVN concept op de bestaande Solarium architectuur toe te passen wordt het mogelijk om het netwerk te programmeren en een netwerktopologie te vormen. Dit is een vereiste om multihop communicatie mogelijk te maken. Het UPVN concept kan vrij eenvoudig worden toegepast op de bestaande architectuur van Solarium. Solarium maakt namelijk al gebruik van virtuele netwerkelementen (in de vorm van virtuele SPOTs) om invloed uit te oefenen op de applicatie. Solarium doet dit door sensorwaarden met de emulator uit te wisselen. De emulator zorgt voor de netwerkfunctionaliteiten en is dus gelijk aan een netwerkelement (NE). De SPOT bibliotheek levert het netwerkcomponent (NC) zodat de SPOT applicatie gebruik kan maken van de functionaliteiten die het netwerk levert. In de Solarium architectuur ontbreekt echter het applicatiecomponent (AC). Daardoor kan er via virtuele netwerkelementen (VNE s) geen invloed op de netwerkelementen (NE s) worden uitgeoefend. Het netwerk kan dus niet worden geprogrammeerd en er kan geen netwerktopologie worden gevormd. Door het applicatiecomponent (AC) aan de architectuur toe te voegen kan het netwerk wel worden geprogrammeerd. Door het netwerk te programmeren kan een netwerktopologie worden gevormd en wordt multihop communicatie mogelijk gemaakt. In een scenario wordt elke sensorknoop dus gerepresenteerd door een virtueel netwerkelement (VNE). Elke sensorknoop bestaat weer uit een sensornetwerk applicatie en een netwerkelement (NE). Het netwerkelement (NE) levert de benodigde netwerkfunctionaliteiten zoals het verzenden en ontvangen van pakketten. Vanuit een SPOT applicatie wordt het netwerkcomponent (NC) gebruikt om met het netwerkelement (NE) te communiceren. Het scenario programma kan via een virtueel netwerkelement (VNE) communiceren met de applicatie. Op deze wijze kan er vanuit het scenario programma met een SPOT applicatie worden gecommuniceerd. Een voorbeeld daarvan is het programmeren 17

19 van sensoren vanuit een scenario. De verticale zwarte pijl van Figuur 4.1 drukt de wisselwerking tussen een scenario en de sensornetwerk applicatie uit. Een scenario probeert er achter te komen wat het netwerk doet in bepaalde omstandigheden. Het netwerk reageert op de acties uit het scenario en weerspiegelt daarmee het scenario. Door de weerspiegeling op te vangen (de uitvoer van de sensornetwerk applicatie) kan worden bepaald of het netwerk op de gewenste manier op een scenario reageert. Daarmee wordt test gedreven ontwikkeling van sensornetwerk applicaties mogelijk. Deze architectuur heeft echter ook een beperking. Het is het vrijwel onmogelijk om unittesten op de kleinste softwarecomponenten uit te voeren. Door vanuit een scenario alleen de omgeving (sensoren en de netwerktopologie) te programmeren is het vrijwel onmogelijk om specifieke modulen of kleine stukjes code van de sensornetwerk applicatie afzonderlijk te testen. Deze componenten zijn namelijk niet afzonderlijk te benaderen vanuit het framework. De overige soorten testen (integratietesten, systeemtesten en systeem integratietesten) vinden plaats op een hoger abstractieniveau en zijn daardoor wel te benaderen door de omgeving te programmeren. Via de omgeving worden parameters aan de sensornetwerk applicatie aangeboden. De sensoren en netwerktopologie treden op als interface van de sensornetwerk applicatie. 18

20 4.3 Implementatie van het framework User application User application User application SPOT library SPOT library SPOT library Emulator SpotSim Emulator SpotSim Emulator SpotSim Multihop whitelist nnnn.nnnn.nnnn.nnnn nnnn.nnnn.nnnn.nnnn Squawk VM Squawk VM Squawk VM Solarium vspot 1 vspot 2... vspot n SpotSim Figuur 4.2: SpotSim architectuur. De grijs gearceerde vlakken zijn onderdelen van het framework die aan Solarium zijn toegevoegd. Het centrale component van het SpotSim framework bevindt zich binnen Solarium. Het centrale component bestaat uit een aantal Java klassen en functioneert als centrale coördinator voor Solarium. Een virtuele SPOT wordt binnen SpotSim gerepresenteerd door een instantie van het SpotSimNode object. Dit object levert een interface voor een virtuele SPOT. Voor elke virtuele SPOT binnen SpotSim wordt een bijbehorende virtuele SPOT (vspot) binnen Solarium aangemaakt. Tussen beide virtuele SPOT objecten vindt interactie plaats. Op deze wijze kan SpotSim een virtuele SPOT binnen Solarium aansturen. Deze aanpak brengt een groot voordeel met zich mee. Door virtuele SPOTs binnen Solarium te behouden hoeft er maar weinig code aan het framework te worden toegevoegd, veel functionaliteiten (sensorwaarden, communicatie met de emulator laag, etc) worden immers al aangeboden door vspots binnen Solarium. Het framework benut deze reeds bestaande functionaliteiten. Om multihop communicatie te realiseren is de emulator uitgebreid. Binnen de emulator is een SpotSim component toegevoegd dat fungeert als een firewall. De component bepaalt of een inkomend of uitgaand bericht (afkomstig van andere SPOTs) ontvangen of verzonden mag worden. Daarvoor gebruikt het SpotSim component een whitelist, een lijst met adressen van SPOTs waarmee een SPOT mag communiceren. Een network topologie wordt gevormd door elke emulator van de juiste whitelist te voorzien. Figuur 3.3 zal dit verduidelijken. De centrale SpotSim component zorgt voor de distributie (pushen) van de whitelisten naar de emulators. Hiervoor maakt SpotSim gebruik van de bestaande socket verbinding (zwarte lijnen) tussen Solarium en elk SPOT proces (emulator). De emulator herkent berichten die afkomstig zijn van SpotSim aan de hand van de SpotSim prefix. Deze berichten worden dan doorgestuurd naar het SpotSim component binnen de emulator (firewall). 19

21 whitelist 2 3 whitelist whitelist 1 3 whitelist 3 4 Figuur 4.3: Voorbeeld van een network topologie op basis van whitelisten. Om multihop communicatie te realiseren moet elke emulator dus weten met welke SPOTs wel en niet gecommuniceerd mag worden. Er zijn verschillende methoden om dit te realiseren. De pull-methode is ongeschikt. Bij de pull-methode vraagt de emulator bij elk binnenkomend of uitgaand bericht aan SpotSim of dit is toegestaan. Deze methode zorgt voor vertragingen doordat er telkens toestemming gevraagd moet worden. Dit zorgt tevens voor een hoge belasting op SpotSim, zeker wanneer elke emulator opvraagt of een binnenkomend broadcastbericht geaccepteerd moet worden. De push-methode is een betere oplossing. Bij de push-methode stuurt SpotSim informatie naar de emulators. Op basis van deze informatie kan elke emulator bepalen of een inkomend of uitgaand bericht wel of niet ontvangen of verzonden mag worden. Veranderingen in de netwerktopologie worden direct naar desbetreffende emulators gesynchroniseerd waardoor de informatie in de emulators altijd up-to-date is. In de meest voorkomende sensornetwerk topologieën kan elke sensorknoop maar met een beperkt aantal buren communiceren. Het aantal buren waarmee wel gecommuniceerd kan worden is daardoor veel kleiner dan het aantal buren waarmee niet gecommuniceerd kan worden. Het pushen van lijsten waarmee wel gecommuniceerd mag worden (whitelisten) is daardoor een efficiëntere methode dat het pushen van lijsten waarmee niet gecommuniceerd mag worden (blacklisten). Gedistribueerde implementatie De beschreven implementatie maakt het mogelijk om op eenvoudige wijze een groot aan virtuele SPOTs aan te maken. Maar het experiment dat in hoofdstuk 6.1 wordt beschreven toont aan dat het maximum aantal virtuele SPOTs dat gesimuleerd kan worden in grote mate afhankelijk is van de hoeveelheid geheugen van de computer. Het proces van een virtuele SPOT gebruikt namelijk ongeveer 38MB aan geheugen. Een haalbare oplossing voor dit probleem is een gedistribueerde aanpak waarbij de virtuele SPOT processen over meerdere computers worden verdeeld. 20

22 User application SPOT library Emulator SpotSim Squawk VM User application SPOT library Emulator SpotSim Squawk VM User application SPOT library Emulator SpotSim Squawk VM Solarium vspot 1 vspot 2... vspot n SpotSimHost1 vspot 2 SpotSimHost2 vspot n SpotSim pc1 pc2 pc3 Figuur 4.4: SpotSim gedistribueerde architectuur. De grijs gearceerde vlakken zijn onderdelen van het framework. Net als bij de niet-gedistribueerde versie van SpotSim draait er op één computer (pc1) het centrale component. Vanuit dit component worden alle virtuele SPOT processen, die zijn verspreid over meerdere computers, aangestuurd. De overige computers (hosts) zijn voorzien van een SpotSim applicatie met de naam SpotSimHost. Al deze hosts zijn middels een socket verbinding met de centrale SpotSim component verbonden. Deze architectuur is gebaseerde op het master-slave model waarbij Solarium als master optreedt. Omdat één computer een gecentraliseerde rol vervult is de implementatie tot bepaalde hoogte schaalbaar. De virtuele SPOT processen die normaliter op één computer draaien komen nu verspreid over meerdere computers te draaien. SpotSim zorgt ervoor dat er een virtuele verbinding tussen Solarium en elk SPOT proces ontstaat. Dankzij deze virtuele verbinding maakt het voor Solarium geen verschil of een SPOT proces lokaal of op een andere computer draait. De beperking in de niet-gedistribueerde versie van Solarium wordt veroorzaakt doordat het aantal SPOT processen dat op één computer kan draaien beperkt is. Deze beperking wordt niet zozeer veroorzaakt door de Solarium applicatie zelf. Het is daardoor een voor de hand liggende keuze om alleen de SPOT processen gedistribueerd te maken. Hierdoor hoeft de architectuur van Solarium niet te worden veranderd, waardoor de implementatie relatief eenvoudig is. Het introduceren van de SpotSimHost applicatie is een vereiste om de virtuele verbindingen tussen Solarium en de SPOT processen op andere computers te realiseren. De SpotSimHost applicatie is verantwoordelijk voor de volgende functionaliteiten: Starten van een virtueel SPOT proces. De opdracht (inclusief parameters) om een virtueel 21

23 SPOT proces te starten is altijd afkomstig van de centrale SpotSim component. Stoppen en opschonen van een virtueel SPOT proces. Ook deze opdracht is altijd afkomstig van de centrale SpotSim component. Virtuele verbinding tussen Solarium en elk SPOT proces. Over deze verbinding worden onder andere sensorwaarden verzonden. Het feit dat de SPOT processen nu verspreid over meerdere computers draaien, brengt een extra complicatie met zich mee. Om een virtuele SPOT met een andere virtuele SPOT te laten communiceren moet bekend zijn op welke computer (ip-adres) een virtuele SPOT zich bevindt. Voor elke virtuele SPOT moet dus bepaald kunnen worden op welk ip-adres het bijbehorende proces bereikbaar is. Deze mapping gebeurt op basis van het unieke 64-bit IEEE extended MAC adres [14] dat elke virtuele SPOT krijgt toegekend door Solarium. Deze mapping is reeds ingebouwd in Solarium. In de standaard implementatie van Solarium wordt het lokale ip-adres in de voorste 32 bits geplaatst, waardoor er nog 32 bits overblijven om elke SPOT uniek te identificeren. Tijdens het toevoegen van een nieuwe virtuele SPOT weet SpotSim al op welke computer en bijbehorend ip-adres het SPOT proces komt te draaien. Deze informatie wordt aan Solarium doorgespeeld zodat niet het lokale, maar het correcte externe ip-adres in het MAC adres wordt ingekapseld. De emulator laag kan daardoor aan de hand van een MAC adres van een SPOT achterhalen op welk ip-adres de betreffende virtuele SPOT draait. Om te controleren of de implementatie werkt, heb ik een experiment met drie computers uitgevoerd. Elke computer is voorzien van een packet sniffer zodat het netwerk verkeer tussen computers kan worden gemonitord. Op elke computer komt één SPOT te draaien die is voorzien van de SPOT Bounce demo applicatie. Deze applicatie laat één bal langs alle SPOTs rollen en zorgt er voor dat er op voorspelbare wijze communicatie tussen SPOTs plaatsvindt. De packet sniffer weerspiegelde deze voorspelbare communicatie tussen de computers en bevestigde dat de implementatie correct functioneerde. 4.4 Problemen en oplossingen Tijdens de ontwikkeling van het framework deden zich een aantal significante problemen voor Bug in de multihop code van de SPOT bibliotheek Tijdens het testen van mijn multihop implementatie werd duidelijk dat de maximale hop-count 15 was. Dit houdt in dat pakketten die over een route van meer van 15 hops gaan niet worden verzonden. Na enig onderzoek werd duidelijk dat de maximale hop-count kon worden opgehoogd door de NET_DIAMETER constante in de SPOT bibliotheek aan te passen. De aanpassing resulteerde in het gewenste effect en pakketten konden nu over routes met meer dan 15 hops worden verzonden. Echter, bij pakketten met een hop-count van meer dan 14 wordt een extra byte achteraan de payload van het pakket toegevoegd. Dit ongewenste verschijnsel zorgt er onder andere voor dat ontvangen strings onjuist worden uitgelezen. De oorzaak van dit verschijnsel ligt aan het feit dat pakketten met een hop-count van meer dan 14 op afwijkende wijze worden behandeld. Er wordt onder andere een extra byte aan de pakket header toegevoegd. 22

24 Bovenstaande constateringen wijzen op een fout in de multihop code van de SPOT bibliotheek. Het oplossen van deze mogelijke bug valt niet binnen de scope van dit onderzoek en is niet noodzakelijk voor de werking van het framework. Daarom heb ik deze bug niet zelf opgelost, maar gedeeld [15] met de Sun SPOT community op het SunSpotWorld.com forum. Een software reseacher van Sun heeft de bug bevestigd en toegevoegd aan de Sun SPOT bug database. De ontdekking van deze multihop bug bevestigt dat mijn onderzoek uniek is. Voorheen was het met Solarium niet mogelijk om multihop communicatie te simuleren waardoor de bug niet eerder is ontdekt Initialisatietijd per SPOT Het starten van een applicatie op een virtuele SPOT gaat in Solarium gepaard met een tweetal operaties die de nodige tijd en processorcapaciteit vergen. De applicatie voor op de SPOT wordt allereerst gecompileerd tot een JAR bestand. Daarna worden alle JAR bestanden (eventueel van meerdere programma s) gecombineerd tot één SUITE bestand. Door meerdere SPOT programma s tot één SUITE bestand te combineren zijn de programma s beter in staat om externe bronnen te delen. Beide stappen worden voor elke virtuele SPOT opnieuw uitgevoerd en nemen ongeveer drie seconden in beslag. De initialisatietijd kan drastisch worden teruggedrongen door de herhalingen van beide stappen te elimineren. De eerste stap, het compileren van een JAR bestand, kan volledig worden overgeslagen door dit eenmalig uit te voeren. De locatie van het JAR bestand kan daarna als parameter voor de applicatie worden gebruikt. De stap waarin het SUITE bestand wordt gegenereerd wordt eenmalig uitgevoerd. Daarna wordt hetzelfde SUITE bestand gebruikt voor alle SPOTs. Beide verbeteringen zijn in het framework geïmplementeerd. De verbeterde initialisatietijd is in Figuur 4.5 weergegeven met grafiek Initialisatietijd in seconden 112, , Ge Win Orig 27,5 SP 63,1 SP SP ,0 mid 0,0% st inee Gem 8,96 17,9 30,9 19,3 72,1% OTS OTs OTs deld l odifi 0 Depl ceer 10 SPOTS 20 SPOTs 30 SPOTs Aantal SPOTs 1 Originele initialisatietijd (Solarium) 2 Verbeterde initialisatietijd (framework) Figuur 4.5: Initialisatietijd van SPOTs. De Solarium methode vergeleken met de methode van het framework. Zowel de originele als de efficiëntere implementatie laten een groei zien die wat sneller is dan lineair met het aantal SPOTs. Het aanmaken van elke SPOT vereist dezelfde operaties en dus dezelfde tijd. Maar naarmate er meer SPOTs zijn toegevoegd neemt de processorbelasting toe. Daardoor is er minder processorcapaciteit beschikbaar om een nieuwe SPOT aan te maken. Het aanmaken van 23

25 een SPOT zal dus steeds meer tijd in beslag nemen naarmate het aantal reeds aangemaakte SPOTs toeneemt. Met de Fit[] functie van Mathematica [24] zijn de volgende twee formules voor de meetresultaten opgesteld. t Solarium = N N 2 (4.1) t framework = N N 2 (4.2) De eerste term verklaart de lineaire groei. De tweede term verklaart de additionele groei die afhankelijk is van de N SPOTs die reeds zijn toegevoegd (processorcapaciteit). Deze term laat zien dat de initialisatietijd van het framework minder afhankelijk is van het aantal toegevoegde SPOTs dan bij Solarium het geval is. 24

26 25

27 5 SpotSim toepassingen 5.1 Sun SPOT in het onderwijs In tegenstelling tot de meeste sensornetwerk platformen worden Sun SPOTs geprogrammeerd in de Java programmeertaal. De Java programmeertaal is populair in het onderwijs [18]. Daardoor is het programmeren van Sun SPOTs relatief eenvoudig voor studenten. Dit maakt het Sun SPOT platform interessant voor het onderwijs. Colleges Sun SPOTs worden reeds gebruikt voor colleges op Universiteiten [19] [20]. Door SPOT applicaties te schrijven en te testen maken studenten kennis met draadloze sensornetwerken. Het testen op echte SPOTs is niet altijd een optie. Vaak is het aantal beschikbare SPOTs beperkt en is het dus lastig om studenten de gewenste testopstellingen te laten realiseren. Daarnaast is het met echte SPOTs lastig om een reproduceerbare omgeving te creëren. Simulatie is een beter alternatief. Door te simuleren kunnen reproduceerbare omgevingen worden gecreëerd en worden echte SPOTs overbodig. Onderzoek UPVN op de SPOT Robin Fidder is een student aan de Universiteit van Amsterdam die onderzoek doet met behulp van het Sun SPOT platform. Robin heeft het UPVN (User Programmable Virtualized Network) concept op de SPOT geïmplementeerd. Daarmee kan de AODV [21] routerings manager van de SPOT worden beïnvloed vanuit een SPOT applicatie. Hierdoor wordt het mogelijk om bijvoorbeeld routes met daarin de warmste sensorknoop te mijden. Door middel van experimenten wordt bepaald of de implementatie correct functioneert. Tijdens deze experimenten is het belangrijk dat de netwerktopologie kan worden beheerst, zodat kan worden vastgesteld of een pakket de juist route neemt. Tijdens experimenten met echte SPOTs kwam Robin tot de conclusie dat het onmogelijk is om de netwerktopologie te beheersen. Factoren van buitenaf, zoals bijvoorbeeld een hand, blijken een grote invloed op de draadloze communicatie tussen SPOTs te hebben. Deze invloed is groot genoeg om de netwerktopologie te laten veranderen. Daardoor kan niet met zekerheid worden vastgesteld of een pakket de gewenste route heeft genomen. Simulatie biedt de uitkomst. SpotSim biedt de mogelijkheid om te experimenten met vaste netwerktopologieën door middel van simulatie. De door Robin gemodificeerde SPOT code kan rechtstreeks door de simulator worden gebruikt. Het ontbreken van packet-loss en signaalsterkte in de simulatie vormt geen beperking. Deze variabele factoren zijn namelijk met echte SPOTs onmogelijk te controleren wat zal resulteren in een onbeheersbare testomgeving. 26

Software Test Documentation

Software Test Documentation FACULTEIT INGENIEURSWETENSCHAPPEN & WE- TENSCHAPPEN DEPARTMENT OF COMPUTER SCIENCE AND APPLIED COMPUTER SCIENCE Software Test Documentation Software Engineering Nicolas Carraggi, Youri Coppens, Christophe

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Deze vakinhoudelijke uitwerking is ontwikkeld door het Redactieteam van de Schooleamenbank vmbo voor dit

Nadere informatie

Beschrijving toolset Netwerk/Protocol/Applicatie test Datum 11 januari 2012 Auteur Louis de Wolff Versie 1.0

Beschrijving toolset Netwerk/Protocol/Applicatie test Datum 11 januari 2012 Auteur Louis de Wolff Versie 1.0 Beschrijving toolset Netwerk/Protocol/Applicatie test Datum 11 januari 2012 Auteur Louis de Wolff Versie 1.0 Netwerk evaluatie tools Inleiding In een pakket geschakelde netwerk gebeurt de communicatie

Nadere informatie

Nederlandse samenvatting (Dutch summary)

Nederlandse samenvatting (Dutch summary) Nederlandse samenvatting (Dutch summary) Ditproefschriftpresenteerteen raamwerk voorhetontwikkelenvanparallellestreaming applicaties voor heterogene architecturen met meerdere rekeneenheden op een chip.

Nadere informatie

Software Test Plan. PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015

Software Test Plan. PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Software Test Plan PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie 1 Versie

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

Les 11: systeemarchitectuur virtuele machines

Les 11: systeemarchitectuur virtuele machines Les 11: systeemarchitectuur virtuele machines Geavanceerde computerarchitectuur Lieven Eeckhout Academiejaar 2008-2009 Universiteit Gent Virtuele machines Motivatie Interfaces Virtualisatie: inleiding

Nadere informatie

Revisie geschiedenis. [XXTER & KNX via IP]

Revisie geschiedenis. [XXTER & KNX via IP] Revisie geschiedenis [XXTER & KNX via IP] Auteur: Freddy Van Geel Verbinding maken met xxter via internet met de KNX bus, voor programmeren of visualiseren en sturen. Gemakkelijk, maar niet zo eenvoudig!

Nadere informatie

Software Test Document

Software Test Document Software Test Document PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie

Nadere informatie

Software Mobiliteit. UAMS - 6 maart 2001. Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel http://prog.vub.ac.

Software Mobiliteit. UAMS - 6 maart 2001. Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel http://prog.vub.ac. Software Mobiliteit Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel http://prog.vub.ac.be/~tjdhondt p. 1 Overzicht Stelling Objecttechnologie Distributie Mobiliteit Evolutie Besluit p.

Nadere informatie

Naar de cloud: drie praktische scenario s. Zet een applicatiegerichte cloudinfrastructuur op. whitepaper

Naar de cloud: drie praktische scenario s. Zet een applicatiegerichte cloudinfrastructuur op. whitepaper Naar de cloud: drie praktische scenario s Zet een applicatiegerichte cloudinfrastructuur op whitepaper Naar de cloud: drie praktische scenario s Veel bedrijven maken of overwegen een transitie naar de

Nadere informatie

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture Software architecture IM0203 TERUGKOPPELING PROEFTENTAMEN Vraag 1 Vraag 1a Veel van de in het werkboek besproken patterns kunnen ingezet worden voor het referentiesysteem. We lopen de patterns hier stuk

Nadere informatie

Datalogging. Introductie

Datalogging. Introductie Introductie Datalogging omvat het verzamelen, opslaan en analyseren van data. Datalogging systemen zullen gewoonlijk gedurende een bepaald tijdsbestek een gebeurtenis of proces bewaken met behulp van sensors

Nadere informatie

Hardware-software Co-design

Hardware-software Co-design Jan Genoe KHLim Versie: maandag 10 juli 2000 Pagina 1 Wat is HW/SW Co-design Traditioneel design: De verdeling tussen de HW en de SW gebeurt bij het begin en beiden worden onafhankelijk ontwikkeld Verweven

Nadere informatie

Zelftest Java concepten

Zelftest Java concepten Zelftest Java concepten Document: n0838test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA CONCEPTEN Om de voorkennis nodig

Nadere informatie

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie.

Samenvatting Field programmabale gate arrays (FPGA s) Dynamische herconfiguratie. Samenvatting Field programmabale gate arrays (FPGA s) zijn heel aantrekkelijk als ontwerpplatform voor digitale systemen. FPGA s zijn geïntegreerde schakelingen die geprogrammeerd of geconfigureerd kunnen

Nadere informatie

APPENDIX 3. Visueel voetmodel ter simulatie van voetkinematica aan de hand van planetaire drukdata (Friso Hagman)

APPENDIX 3. Visueel voetmodel ter simulatie van voetkinematica aan de hand van planetaire drukdata (Friso Hagman) APPENDIX 3. Visueel voetmodel ter simulatie van voetkinematica aan de hand van planetaire drukdata (Friso Hagman) 1. Introductie De doelstelling van het SIMKINPRES-project is het ontwikkelen van een klinisch

Nadere informatie

Tim Mallezie Architectuur van besturingssystemen: Vraag A2.

Tim Mallezie Architectuur van besturingssystemen: Vraag A2. Procesbeheer: kenmerken van moderne besturingssystemen. 1. Bespreek de (drie) meest typische kenmerken van moderne besturingssystemen. 2. In hoeverre beantwoorden UNIX, Linux en Windows NT hieraan? Geef

Nadere informatie

Parasoft toepassingen

Parasoft toepassingen Testen op basis van OSB en Digikoppeling Voor de bestaande Overheid Service Bus en de nieuwe standaard Digikoppeling zijn verschillende test- omgevingen opgezet. Hiermee kan het asynchrone berichtenverkeer

Nadere informatie

Programmeren in C ++ met wxwidgets les 5

Programmeren in C ++ met wxwidgets les 5 Elektrotechniek/Embedded Systems engineering inf2d Programmeren in C ++ met wxwidgets les 5 cursus 2009-2010 ir drs E.J Boks Les 5 Grafische toolkits Basisbeginselen gebruik grafische toolkit WxWidgets

Nadere informatie

OpenText RightFax. Intuitive Business Intelligence. Whitepaper. BI/Dashboard oplossing voor OpenText RightFax

OpenText RightFax. Intuitive Business Intelligence. Whitepaper. BI/Dashboard oplossing voor OpenText RightFax OpenText RightFax Intuitive Business Intelligence Whitepaper BI/Dashboard oplossing voor OpenText RightFax Beschrijving van de oplossing, functionaliteit & implementatie Inhoud 1 Introductie 2 Kenmerken

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

Three Ships CDS opschalingsdocument Overzicht server configuratie voor Three Ships CDS

Three Ships CDS opschalingsdocument Overzicht server configuratie voor Three Ships CDS CDS opschalingsdocument Overzicht server configuratie voor CDS 1. Algemeen Dit document geeft een overzicht van een aantal mogelijke hardware configuraties voor het inrichten van een serveromgeving voor

Nadere informatie

ADVANCED KNOWLEDGE SERVICES (AKS )

ADVANCED KNOWLEDGE SERVICES (AKS ) ADVANCED KNOWLEDGE SERVICES (AKS ) EEN KRACHTIG NIEUW BUSINESS IMPROVEMENT PARADIGMA OM COMPLEXITEIT TE BEHEERSEN DEMO AKS BUSINESS BENEFITS: VAKANTIEDAGEN SOP EEN KRACHTIG NIEUW BUSINESS IMPROVEMENT PARADIGMA

Nadere informatie

Netwerk Interfacing Data Logging.

Netwerk Interfacing Data Logging. Handleiding Netwerk Interfacing Data Logging. EduTechSoft.nl 2009-2010 H.O.Boorsma. Pagina - 2 - Netwerk Interfacing Data Logging Pagina - 3 - Inhoud Inleiding.... 4 Beschrijving van het programma....

Nadere informatie

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder Een.NET-besturingssysteemtoolkit Discovering Cosmos Sijmen J. Mulder Agenda Boek 1 Cosmos: a very short introduction Boek 2 Modern Operating Systems Pauze Boek 3 The Design and Implementation of the Cosmos

Nadere informatie

PROJECT: IRIS. (Plan van aanpak) Naam Functie Paraaf

PROJECT: IRIS. (Plan van aanpak) Naam Functie Paraaf Plan van aanpak IRIS Documenthistorie Revisies Versie Status Datum Wijzigingen PROJECT: IRIS (Plan van aanpak) Goedkeuring Dit document behoeft de volgende goedkeuringen: Versie Datum goedkeurin g Naam

Nadere informatie

Introduktie: Wireless Knowhow (Zie voor daadwerkelijke Wireless Sophisti netwerk koppeling de laatste 2 pagina s)

Introduktie: Wireless Knowhow (Zie voor daadwerkelijke Wireless Sophisti netwerk koppeling de laatste 2 pagina s) Introduktie: Wireless Knowhow (Zie voor daadwerkelijke Wireless Sophisti netwerk koppeling de laatste 2 pagina s) Om een apparaat als Sophisti op een beveiligd draadloos netwerk te kunnen gebruiken, moet

Nadere informatie

Beveiligingsaspecten van webapplicatie ontwikkeling met PHP

Beveiligingsaspecten van webapplicatie ontwikkeling met PHP RADBOUD UNIVERSITEIT NIJMEGEN Beveiligingsaspecten van webapplicatie ontwikkeling met PHP Versie 1.0 Wouter van Kuipers 7 7 2008 1 Inhoud 1 Inhoud... 2 2 Inleiding... 2 3 Probleemgebied... 3 3.1 Doelstelling...

Nadere informatie

Video Conferencing anno 2012

Video Conferencing anno 2012 White paper Video Conferencing anno 2012 +31 (0) 88 121 20 00 upc.nl/business Pagina 1 van 8 Video Conferencing De behoefte aan video-vergaderen groeit. Mensen gaan steeds flexibeler om met de begrippen

Nadere informatie

Opdrachtformulering (pagina 3 van 7)

Opdrachtformulering (pagina 3 van 7) Afstudeerovereenkomst van Tim Wils Bijlage 1 Opdrachtformulering (pagina 3 van 7) Dit project betreft een eigen framework (soort API) waarmee relatief gemakkelijk en in korte tijd eindproducten opgezet

Nadere informatie

Plugwise binnen de zakelijke omgeving

Plugwise binnen de zakelijke omgeving Plugwise binnen de zakelijke omgeving Plugwise is een gebruiksvriendelijk energiemanagementsysteem voor de zakelijke markt. Per stopcontact wordt er gemeten hoeveel elektriciteit er verbruikt wordt en

Nadere informatie

Installatie- en gebruikshandleiding Risicoverevening. 11 april 2007 ZorgTTP

Installatie- en gebruikshandleiding Risicoverevening. 11 april 2007 ZorgTTP Installatie- en gebruikshandleiding Risicoverevening 11 april 2007 ZorgTTP Inleiding In het kader van Risicoverevening wordt gepseudonimiseerd informatie aangeleverd aan het College voor Zorgverzekeringen

Nadere informatie

Hoe kunt u profiteren van de cloud? Whitepaper

Hoe kunt u profiteren van de cloud? Whitepaper Hoe kunt u profiteren van de cloud? Whitepaper Auteur: Roy Scholten Datum: woensdag 16 september, 2015 Versie: 1.1 Hoe u kunt profiteren van de Cloud Met de komst van moderne technieken en de opmars van

Nadere informatie

E-Fax. Gebruikers handleiding

E-Fax. Gebruikers handleiding E-Fax Gebruikers handleiding Inhoud 1. Inleiding... 3 2. Fax-over-IP (T.38)... 4 2.1 Introductie... 4 2.2 Achterliggende techniek... 4 2.3 Procedures... 5 2.4 Installatie en benodigdheden... 5 2.5 Tarieven...

Nadere informatie

Marktscan Digikoppeling 2017

Marktscan Digikoppeling 2017 Testrapport Marktscan Digikoppeling 2017 Versie: 1.0 Datum: 18-6-2015 Auteur: egem Datum : 2 juni 2017 Versie : 1.0 Inhoudsopgave 1. Inleiding... 2 2. Managementsamenvatting... 3 3. Testopzet... 4 3.1

Nadere informatie

VirtualBox: hoe werkt het?

VirtualBox: hoe werkt het? VirtualBox: hoe werkt het? Handleiding van Auteur: ReD123NaX Oktober 2014 VirtualBox: hoe werkt het? In deze nieuwsbrief ga ik wat vertellen over virtualisatie. Virtualisatie is dé uitkomst wanneer je

Nadere informatie

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010)

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010) Plan van Aanpak Christophe Deloo, Roy Straver & Machiel Visser Versie 4 (26-06-2010) Inhoudsopgave Voorwoord... 2 1 Inleiding... 3 1.1 Aanleiding... 3 1.2 Accordering en bijstelling... 3 1.3 Toelichting

Nadere informatie

De handboek van Desktop Sharing. Brad Hards Vertaler/Nalezer: Freek de Kruijf

De handboek van Desktop Sharing. Brad Hards Vertaler/Nalezer: Freek de Kruijf Brad Hards Vertaler/Nalezer: Freek de Kruijf 2 Inhoudsopgave 1 Inleiding 5 2 Het Remote Frame Buffer-protocol 6 3 Desktop Sharing gebruiken 7 3.1 Desktop Sharing uitnodigingen beheren.........................

Nadere informatie

CONFIDENTIEEL. EIB-RPT-880076 3 van 12. Samenvatting

CONFIDENTIEEL. EIB-RPT-880076 3 van 12. Samenvatting EIB-RPT-880076 3 van 12 Samenvatting Inleiding Dit rapport beschrijft de prototypekeuring van de SDUMJGA stemmachine RS- Vote. De RS-Vote stemmachine is bedoeld voor elektronisch gefaseerd stemmen en is

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Comodo Personal Firewall

Comodo Personal Firewall Comodo Personal Firewall Comodo Personal Firewall is een van de beste firewalls: eenvoudig in gebruik, compleet, professioneel, gemakkelijk te begrijpen en ook nog eens gratis. Comodo Firewall vraagt eerst

Nadere informatie

Variability in Multi-tenant SaaS Applications:

Variability in Multi-tenant SaaS Applications: Variability in Multi-tenant SaaS Applications: Gastcollege voor het vak Product Software Jaap Kabbedijk, MSc. Universiteit Utrecht, Nederland 1 Wat gaan we behandelen? Introductie Uitleg ontwikkeling SaaS

Nadere informatie

Cloud handleiding Versie: 1.0 Datum: 23-7-2014

Cloud handleiding Versie: 1.0 Datum: 23-7-2014 Cloud handleiding Versie: 1.0 Datum: 23-7-2014 2 Inhoud Inleiding... 5 Inrichting SequreBox Cloud... 5 1. Inloggen... 6 2. Abonnementen voeg camera toe... 8 3. Controleer beelden... 9 4. Camera Stel Alarm

Nadere informatie

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat: Training Trainingscode Duur Gepubliceerd Taal Type Leermethode Kosten SF2015V8 4 dagen 02/02/2015 Nederlands & Engels Developer, basis Invidueel & klassikaal Op aanvraag Deze training richt zich op het

Nadere informatie

Midi PDF Bladmuziek lezer

Midi PDF Bladmuziek lezer Inleiding. Ruim 20 ordners aan bladmuziek, meeste daarvan uitgeprint van een PDF. Even snel een nummer opzoeken wil dan ook niet, terwijl ik alles wel op alfabetische volgorde heb. Dat was het niet helemaal

Nadere informatie

Monitoring. SolidBE B.V. Maarten Schoutenstraat SV Waddinxveen

Monitoring. SolidBE B.V. Maarten Schoutenstraat SV Waddinxveen Monitoring SolidBE B.V. Maarten Schoutenstraat 19 2741SV Waddinxveen 1 Inhoudsopgave Monitoring...3 Introductie...3 Netwerkcomponenten...4 Back-up...4 Discovery...4 Poller...5 SNMP-traps...5 Maintenance...5

Nadere informatie

SD-WAN, de nieuwe IT- Infrastructuur. Een functionele en technische uitleg waarom SD-WAN zo populair is.

SD-WAN, de nieuwe IT- Infrastructuur. Een functionele en technische uitleg waarom SD-WAN zo populair is. SD-WAN, de nieuwe IT- Infrastructuur Een functionele en technische uitleg waarom SD-WAN zo populair is. 01 Waarom SD-WAN Blz. 1 02 Uitleg SD-WAN Blz. 2 03 Functionaliteiten Blz. 3-4 04 Veilige toegang

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Friesland College Leeuwarden

Friesland College Leeuwarden Voorwoord In dit project stel ik een hele snelle computer samen voor het bedrijf Peer B.V.. Ook laat ik zien wat het grote verschil is tussen Windows 7 en Windows 8, de voor en nadelen laat ik zien. Ook

Nadere informatie

Ministerie van Infrastructuur en Milieu Beheerst naar beheer

Ministerie van Infrastructuur en Milieu Beheerst naar beheer Document D-2 Ministerie van Infrastructuur en Milieu Beheerst naar beheer Versie 1.0 Datum 15 juli 2014 Status Definitief Colofon Versie 1.0 Contactpersoon Paul Leunissen M 06-5250 6691 Paul.Leunissen@minienm.nl

Nadere informatie

Elbo Technology BV Versie 1.1 Juni 2012. Gebruikershandleiding PassanSoft

Elbo Technology BV Versie 1.1 Juni 2012. Gebruikershandleiding PassanSoft Versie 1.1 Juni 2012 Gebruikershandleiding PassanSoft Versie 1.1 Juni 2012 2 Inhoud: Opstart scherm PassanSoft... 1 Het hoofdmenu van PassanSoft wordt geopend... 4 Verklaring extra knoppen weergegeven

Nadere informatie

Virtueel of Fysiek. Uitdagingen bij migratie naar Windows 7

Virtueel of Fysiek. Uitdagingen bij migratie naar Windows 7 Het jaar 2011/2012 staat voor veel organisaties in het teken van Windows 7. De overstap van Windows XP naar Windows 7 lijkt in eerste instantie eenvoudig te zijn maar blijkt in de praktijk toch complex.

Nadere informatie

Oplossingen voor niet-functionerende Bridgemate Pro

Oplossingen voor niet-functionerende Bridgemate Pro Document revisie: 1.3 Publicatiedatum: mei 2006 Oplossingen voor niet-functionerende Bridgemate Pro Het kan voorkomen dat een Bridgemate niet functioneert naar behoren. Er kunnen hier verschillende oorzaken

Nadere informatie

Inrichting Systeem: Locaties & Toegang

Inrichting Systeem: Locaties & Toegang Inrichting Systeem: Locaties & Toegang EasySecure International B.V. +31(0)88 0000 083 Info@EasySecure.nl Support.EasySecure.nl v2.0.11 22-09-2014 In deze handleidingen worden de volgende functies binnen

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 DocumentManager

Functionele beschrijving: scannen naar UNIT4 DocumentManager Functionele beschrijving: scannen naar UNIT4 DocumentManager Algemeen Met de KYOCERA Scannen naar UNIT4 DocumentManager beschikt u over een efficiënte oplossing om uw documenten te scannen naar UNIT4 DocumentManager

Nadere informatie

Release datum: 11 juni 2012

Release datum: 11 juni 2012 Highlights 1 HSExpert versie 5.2 Begin juni is versie 5.2 van HSExpert gereleased. In versie 5.2 zijn vooral wijzigingen op het RiAxion (Arbo) dossier doorgevoerd. Daarnaast zijn er wat kleinere wijzigingen

Nadere informatie

De nieuwste build van CarmenTV Injector heeft een aantal verbeterde en nieuwe functies.

De nieuwste build van CarmenTV Injector heeft een aantal verbeterde en nieuwe functies. CarmenTV Injector De nieuwste build van CarmenTV Injector heeft een aantal verbeterde en nieuwe functies. Het beginscherm van Injector vindt u hierboven. In het scherm ziet u een overzicht van taken, welke

Nadere informatie

Portability, Interoperability of toch maar Connectivity Portability, Interoperability of toch maar Connectivity.

Portability, Interoperability of toch maar Connectivity Portability, Interoperability of toch maar Connectivity. Portability, Interoperability of toch 1 Even Voorstellen Diploma s: 1980 Bachelor of Science Civil Engineering (Cairo, Egypte) 1986 Doctoraal in Geodesie (TU Delft, Nederland) Enige Automatiseringservaring:

Nadere informatie

BDD/Gherkin. Een introductie

BDD/Gherkin. Een introductie BDD/Gherkin Een introductie Organisatie SYSQA B.V. Pagina 2 van 10 Inhoudsopgave 1. Inleiding... 3 2. BDD... 4 3. Gherkin... 5 4. BDD-Tools... 6 5. Voordelen... 7 6. Benodigde kennis en vaardigheden...

Nadere informatie

Het ontwerpproces verloopt meestal volgens een vastomlijnd traject: 1)opstellen van de specificaties - van de klant - normering - onze eigen spec's

Het ontwerpproces verloopt meestal volgens een vastomlijnd traject: 1)opstellen van de specificaties - van de klant - normering - onze eigen spec's Kennismaking met ADD-Controls. De firma ADD-Controls ontwerpt en fabriceert elektronica voor industriële toepassingen. Een groot deel hiervan bestaat uit machinebesturingen. Voorbeelden hiervan zijn: een

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.RMI...2

Inhoudsopgave. Hoofdstuk 1.RMI...2 - CORBA Inhoudsopgave Hoofdstuk 1.RMI...2 1.1.Inleiding...2 1.2.De remote...4 1.3.Het remote...5 1.4.De server...6 1.5.De server opstarten...8 1.6.De client applicatie...8 1.7.De stub en skeleton en...10

Nadere informatie

Dynamische Patiënt Simulaties via Windows Based Terminal Testverslag van fase 2 van het ICT project

Dynamische Patiënt Simulaties via Windows Based Terminal Testverslag van fase 2 van het ICT project Dynamische Patiënt Simulaties via Windows Based Terminal Testverslag van fase 2 van het ICT project Doelstelling Het doel van fase 2 van het project Interfacultaire communicatie training via een virtuele

Nadere informatie

Documentatie Distributed Services Enterprise Service Bus

Documentatie Distributed Services Enterprise Service Bus Documentatie Distributed Services Enterprise Service Bus Pleun Willemsen en Walter Ebbers 19 april 2012 v1.0 1 Inhoudsopgave 1 Inleiding 4 1.1 Opdracht................................ 4 2 Analyse 5 3 Ontwikkelomgeving

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De Arduino-microcontroller in de motorvoertuigentechniek (2) De Arduino-microcontroller in de motorvoertuigentechniek (2) E. Gernaat (ISBN 978-90-79302-11-6) 1 Procescomputer 1.1 Microprocessoren algemeen De informatie-verwerking zoals is behandeld, is vrijwel geheel

Nadere informatie

Soft-Solutions. Stageverslag

Soft-Solutions. Stageverslag Soft-Solutions Stageverslag Naam: Marc Schattorie Website: http://marc.schattorie.nl Klas: EI32BIT School: Gilde Opleidingen Datum: 18-04-2011 t/m 24-06-2011 Bedrijf: Soft-Solutions Website: http://www.soft-solutions.nl

Nadere informatie

Plan van aanpak Toogle

Plan van aanpak Toogle Plan van aanpak Toogle Gemaakt door, Kevin Donkers Paul v.d. Linden Paul Eijsermans en Geert Tapperwijn 1 Inhoudsopgave 1 Inhoudsopgave...2 2 Inleiding...3 3 Projectopdracht...4 4 Projectactiviteiten...5

Nadere informatie

Handleiding Faxdiensten

Handleiding Faxdiensten Handleiding Faxdiensten Auteur: Marketing Datum: 01-10-2014 Versie: 2.0 Aantal bladen: 12 Nummer: 1018 2 P a g i n a Inhoud 1. Inleiding... 3 2. Beheer E-Fax IN- en E-Fax OUT-diensten... 4 3. E-Fax-overzicht...

Nadere informatie

Onderzoeksvaardigheden 2

Onderzoeksvaardigheden 2 Performance van Phonegap Naam: Datum: april 2012 Studentnummer: 0235938 Opleiding: CMD Docenten: Pauline Krebbers Modulecode: MEDMO101DT Modulenaam: Onderzoeksvaardigheden 2 / Media & Onderzoek Inhoudsopgave

Nadere informatie

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan

Uitgebreid voorstel Masterproef Informatica. Titel van het project: Rolnummerherkenning van op een kraan HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Rolnummerherkenning van op een kraan Datum: 17/11/12 Naam student: Cédric Verstraeten Interne promotor: Tim De Pauw In samenwerking

Nadere informatie

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3.

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3. Versie 1.0 05.03.2015 02 1. Over LEVIY Wat doet LEVIY? 08 5. Openen van de activiteit Hoe wordt de activiteit geopend? 2. Algemene definities Behandelen van terugkerende definities. 09 6. Inloggen op het

Nadere informatie

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties 2 Supportdesk Pro Introductie Inhoudsopgave I Supportdesk Pro 3 1 Inleiding... 3 2 Werkwijze... 3 II Zaken 4 1 Introductie... 4 2 Zaken beheren... 4 3 Handmatig... invoeren zaken basis 4 4 Verwerken...

Nadere informatie

Analyse probleem remote execution

Analyse probleem remote execution Analyse probleem remote execution Karel Nijs 2005-09-28 1.1 Beschrijving van het project De bedoeling van de GUI is een gemakkelijke uitvoering van verschillende checks van ICs. De GUI moet in Tcl/Tk ontworpen

Nadere informatie

Software Design Document

Software Design Document Software Design Document Mathieu Reymond, Arno Moonens December 2014 Inhoudsopgave 1 Versiegeschiedenis 2 2 Definities 3 3 Introductie 4 3.1 Doel en Scope............................. 4 4 Logica 5 4.1

Nadere informatie

Application interface. service. Application function / interaction

Application interface. service. Application function / interaction Les 5 Het belangrijkste structurele concept in de applicatielaag is de applicatiecomponent. Dit concept wordt gebruikt om elke structurele entiteit in de applicatielaag te modelleren: softwarecomponenten

Nadere informatie

Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht. Analyse. Inleiding. Doelstellingen

Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht. Analyse. Inleiding. Doelstellingen Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht Analyse Inleiding Bij het beoefenen van karate zijn er meerdere trainingsvormen. Een individuele trainingsvorm is de kata, waar een vast

Nadere informatie

Switch. Handleiding 200.106.110117

Switch. Handleiding 200.106.110117 Switch Handleiding 200.106.110117 Hartelijk dank voor uw aanschaf van deze uitbreiding van uw Plugwise systeem. Met de Switch kunt u draadloos de elektrische stroom naar de apparaten in uw Plugwise netwerk

Nadere informatie

BRENGT ZIEKENHUIZEN IN CRISISSIMULATIE TOT LEVEN

BRENGT ZIEKENHUIZEN IN CRISISSIMULATIE TOT LEVEN BRENGT ZIEKENHUIZEN IN CRISISSIMULATIE TOT LEVEN Voordelen van de training met ISEE Hospital online Realistische weergave van afdelingen, personeel, middelen en patiënten Maak eenvoudig training scenario's

Nadere informatie

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13 5 Inhoud Inhoud Over dit boek 7 1 Eclipse IDE (Integrated Development Environment) 9 2 Functionele specificatie 13 3 Implementatie grafische gebruikersinterface 31 4 De klassen en methoden 57 5 Technische

Nadere informatie

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270)

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270) instructie Industriële automatisering 3 (ICT09.3/CREBO:53270) pi.ict09.3.v1 ECABO, 1 april 2002 Alle rechten voorbehouden. Niets uit deze uitgave mag worden vermenigvuldigd, overgenomen, opgeslagen of

Nadere informatie

BATTLEFIELD INTERNET. Presentatie KIVI, 26 september 2017 Arjen Holtzer,

BATTLEFIELD INTERNET. Presentatie KIVI, 26 september 2017 Arjen Holtzer, BATTLEFIELD INTERNET Presentatie KIVI, 26 september 2017 Arjen Holtzer, arjen.holtzer@tno.nl OVER TNO 2 Battlefield Internet 3 Battlefield Internet BATTLEFIELD INTERNET Gebruikerservaring Eenvoudig koppelen

Nadere informatie

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Chris de Kok 223548 TDI 3 Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Inhoud Inleiding... 3 Black box / White box... 3 XP... 3 SimpleTest... 3 Eclipse plugin... 4 GroupTest...

Nadere informatie

Programmeren: Visual Basic

Programmeren: Visual Basic PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Document Afbaking 01. VERSCHILLENDE PROGRAMMEERTALEN 02. PROGRAMMEER PAKKETTEN 03. GUI 03.1 GUI ELEMENTEN 03.2 GUI EIGENSCHAPPEN

Nadere informatie

Je ziet dus daadwerkelijk staan wat de verbindingssnelheid is die men zou verwachten: 270Mbps.

Je ziet dus daadwerkelijk staan wat de verbindingssnelheid is die men zou verwachten: 270Mbps. Het lijkt erop dat er nogal wat verwarring bestaat omtrent de werking van de wireless verbindingen die verzorgd worden door de combinatie wireless router/ wireless usb. De verwarring zal er uit bestaan

Nadere informatie

Windows Basics. yvan vander sanden. 22 februari 2015

Windows Basics. yvan vander sanden. 22 februari 2015 Windows Basics yvan vander sanden 22 februari 2015 Windows is nog altijd een veel gebruikt operating system. Als technicus moet je bekend zijn met het Windows operating system om gebruikers te kunnen helpen,

Nadere informatie

Introductie nieuwe SOAP interface Blokkade distributie Diverse verbeteringen Verbeterde logging Verschuiven gereserveerde planningen

Introductie nieuwe SOAP interface Blokkade distributie Diverse verbeteringen Verbeterde logging Verschuiven gereserveerde planningen Marlin De Marlin release die momenteel beschikbaar is op de acceptatieomgeving van PCA Mobile, zal op 23 september gepromoveerd worden naar de productieomgeving. Deze release bevat de volgende nieuwe functionaliteiten

Nadere informatie

SYSTEEMEISEN VOOR FACET FEBR. 2013

SYSTEEMEISEN VOOR FACET FEBR. 2013 SYSTEEMEISEN VOOR FACET FEBR. 2013 Het nieuwe computerexamensysteem Facet kan zowel offline als online gebruikt worden. Bij een online-afname worden de opgaven rechtstreeks ingelezen via het internet van

Nadere informatie

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen:

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen: Transit Herkent u het? Steeds dezelfde uitdagingen in migratieprojecten; meerdere variabelen, in verschillende stadia en in een blijvend veranderende omgeving, managen. Grote hoeveelheden gegevens over

Nadere informatie

Head Pilot v Gebruikershandleiding

Head Pilot v Gebruikershandleiding Head Pilot v1.1.3 Gebruikershandleiding Inhoud 1 Installatie... 4 2 Head Pilot Gebruiken... 7 2.2 Werkbalk presentatie... 7 2.3 Profielen beheren... 13 2.3.1 Maak een profiel... 13 2.3.2 Verwijder een

Nadere informatie

PictoWorks Netwerk infrastructuur

PictoWorks Netwerk infrastructuur PictoWorks Netwerk infrastructuur dongle server file server validatie bestandsuitwisseling Op de file server bevindt zich de client-software van PictoWorks: {PictoWorks-directory} thumbs\ pictogrammen\

Nadere informatie

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon Intramed OnLine instellen en gebruiken Voor Android tablet of telefoon Inhoudsopgave Hoofdstuk 1 Algemeen...1 1.1 Toegang tot inlogportalen...1 Hoofdstuk 2 Basic account...3 2.1 Microsoft Remote Desktop

Nadere informatie

Monitoring as a Service

Monitoring as a Service Monitoring as a Service APERTOSO NV Guido Gezellaan 16 9800 Deinze Tel.: +32 9 381 64 50 Probleemstelling IT diensten kampen vaak met het probleem van een gebrek aan een duidelijke, allesomvattende monitoringoplossing.

Nadere informatie

Zelftest Java EE Architectuur

Zelftest Java EE Architectuur Zelftest Java EE Architectuur Document: n1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA EE ARCHITECTUUR Nota:

Nadere informatie

Microsoft Excel. It s all about Excel - VBA

Microsoft Excel. It s all about Excel - VBA X Microsoft Excel Stap in de wereld van Visual Basic for Applications (VBA) binnen het Microsoft Office programma Excel. Leer hoe deze programmeertaal precies in elkaar zit en hoe u deze in de dagelijkse

Nadere informatie

TRAIN SERVICE & SHUNTING PLANNER

TRAIN SERVICE & SHUNTING PLANNER TRAIN SERVICE & SHUNTING PLANNER BOB HUISMAN Dit projectplan is het startpunt voor de student om 1) een voorkeur voor een project uit te spreken en 2) te gebruiken als start informatie bij begin project.

Nadere informatie

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB Connect Social Business Plan van Aanpak voor mijn stage bij ConnectSB Joey Kaan September 28, 2014 Inhoudsopgave 1 Achtergronden 1 2 Probleemstelling & Doelstelling 2 2.1 Leren Professioneel Functioneren..................

Nadere informatie

Functionele beschrijving: Scannen naar AFAS Profit.

Functionele beschrijving: Scannen naar AFAS Profit. Functionele beschrijving: Scannen naar AFAS Profit. Algemeen Met de Kyocera Scannen naar AFAS Profit beschikt u over een efficiënte oplossing om uw documenten te scannen naar AFAS Profit. Met deze oplossing

Nadere informatie