Nijmegen, maart 2003 Afstudeerscriptie Michel Groenenstijn

Maat: px
Weergave met pagina beginnen:

Download "Nijmegen, maart 2003 Afstudeerscriptie Michel Groenenstijn"

Transcriptie

1 Nijmegen, maart 2003 Afstudeerscriptie Michel Groenenstijn

2 VOORWOORD Na bijna zes jaar studeren is mijn studie Informatica bijna afgerond en kan ik terugkijken op de leukste en meest leerzame periode die ik tot nu toe beleefd heb. Ik heb me na de eerste twee jaar van mijn studie gespecialiseerd in de richtingen Internet en Embedded Systems; beide thema s zijn in mijn afstudeeropdracht naar voren gekomen. Het eindresultaat van mijn studieperiode is deze scriptie, waarin een verslag van mijn afstuderen wordt beschreven. Ik heb me tijdens mijn studie naast studeren ook met diverse andere activiteiten bezig gehouden. Allereerst ben ik een aantal jaren actief geweest binnen de studievereniging van Informatica, hetgeen een onvergetelijke ervaring vormde en waarvan ik veel geleerd heb. Daarnaast ben ik tijdens mijn studie voor het eerst werkzaam geweest op het vakgebied waarvoor ik werd opgeleid, de IT. In verschillende functies heb ik veel geleerd over het uitvoeren van projecten, het managen ervan en het runnen van een bedrijf. Toen het moment daar was dat het einde van mijn studie in zicht kwam en ik moest beginnen met afstuderen heb ik ervoor gekozen een bedrijf te kiezen dat in Nijmegen gevestigd is, maar niet een bedrijf waar ik werkzaam was of was geweest. Op deze manier kreeg ik de gelegenheid eens ergens anders rond te kijken, zonder dat de diverse activiteiten die ik naast mijn studie nog deed moesten wijken voor mijn stage. De keuze voor <GX> was toen snel gemaakt en ik heb mijn stage daar in een heel gezellige en leerzame omgeving uit kunnen voeren. Mijn hele studie heb ik met erg veel plezier ervaren en ik kijk met trots terug op de afgelopen jaren. Omdat het bedanken van mensen onlosmakelijk verbonden is met het vergeten van verschillende personen die eigenlijk bedankt zouden moeten worden, wil ik hier volstaan met het dank zeggen aan iedereen die mij de afgelopen jaren heeft geholpen, door vriendschap, begeleiding, collegialiteit of op welke andere manier dan ook. Michel Groenenstijn Nijmegen, maart 2003

3 Webstatistieken, architectuur en opslag INHOUDSOPGAVE Voorwoord... 1 Inhoudsopgave Inleiding <GX> Begeleiding Over deze scriptie Opdracht Context Formulering Belang van de opdracht Probleemstelling Architectuurprincipes Server-side Java Messaging Queue Publish/subscribe systeem Mechanismen Persistence Databases Serialization Prevalence Prevalence Principe Prevayler Over prevalence Snelheid Transparant Determinisme Prevalent hypothesis Systeem evolutie Replicatie Conclusie Ontwerp Architectuur Voorbeelden Voorbeeld Voorbeeld Voorbeeld Datamodel Statistieken Model Hits en sessies Clusters Data-flow Implementatie Systeemeisen Elementen Klassen Algemene klassen Statistiekensysteem Padensysteem Michel Groenenstijn, maart 2003

4 Webstatistieken architectuur en opslag Huidige paden- en sessiessysteem Voorbeeld Resultaten Werking Performance Proces Orientatie Ontwerp Implementatie Toekomst User-interface Gebruikers Informatie Prevalence API Conclusie Systeemeisen Probleemstelling Bronnen Bijlage A Javadoc nl.gx.stats.sessions SessionManager SessionPublisher SessionSystemListener SessionSystemSubscriber nl.gx.stats Counter (abstract) CountTuple CountTupleSet CountTupleValue Hit HitFactory HitPublisher Session Settings nl.gx.stats.stats CounterManager HitCounter HitOverwriteCounter HitSystemListener HitSystemSubscriber SessionCounter SessionOverwriteCounter nl.gx.stats.elements HitElement (interface) SessionElement (interface) nl.gx.stats.tracks TrackerCounter TrackerCounterManager TrackerSystemListener TrackerSystemSubscriber nl.gx.stats.currentsessions CurrentSessionsManager CurrentSessionsSystemListener CurrentSessionsSystemSubscriber Michel Groenenstijn, maart

5 Webstatistieken, architectuur en opslag 1 INLEIDING Deze scriptie bevat een verslag van mijn afstudeerstage die ik heb uitgevoerd bij <GX> in de periode september 2002 tot en met februari Tijdens deze stage heb ik mij bezig gehouden met het ontwerpen en implementeren van een systeem om statistieken over het gebruik van websites te berekenen en beschikbaar te stellen. In deze scriptie beschrijf ik welke stappen ik heb genomen om tot dit systeem te komen en onderbouw ik de keuzes die ik hierin gemaakt heb. 1.1 <GX> <GX> is een webtechnologie bedrijf dat zich richt op content- en webmanagement, het ontwikkelen van online applicaties en het integreren van systemen in portaaloplossingen. <GX> biedt op deze gebieden verschillende diensten aan, waaronder advies, ontwikkeling, integratie en support. <GX> is in 1998 opgericht en is de opvolger van de stichting <GX> groep, die is opgericht in Inmiddels werken er 35 mensen bij <GX>, een aantal dat nog altijd groeit. <GX> is gevestigd in het Mercator-I gebouw op de campus van de Universiteit van Nijmegen. Het portfolio van <GX> bevat onder andere klanten als Voetbal International, PSV, de politie, Planet Internet, Mercedes- Benz en diverse gemeenten. 1.2 Begeleiding Tijdens mijn stage ben ik zowel vanuit de KUN als vanuit <GX> begeleid. Mijn begeleider bij de KUN is Jeroen Bruijning. Jeroen is werkzaam bij TNO (voorheen KPN Research) en geeft daarnaast één dag per week les aan de KUN, vanuit de afdeling ITT. Zijn begeleiding bestond voornamelijk uit het in de gaten houden van de academische kant van mijn afstuderen en het bieden van ondersteuning bij het schrijven van de scriptie. Jeroen is tevens degene die mijn werk na afloop zal beoordelen. Hij wordt hierin bijgestaan door een referent, Theo Schouten, die ook werkzaam is aan de KUN. Vanuit <GX> ben ik begeleid door Martijn van Berkum. Martijn staat aan het hoofd van de afdeling delivery management bij <GX>. De begeleidende rol van Martijn was voornamelijk gericht op het bewaken van de voortgang en het bieden van technische ondersteuning waar nodig. 1.3 Over deze scriptie Dit document is verdeeld in verschillende hoofdstukken, waarin de diverse onderdelen van mijn afstuderen worden besproken. Allereerst wordt de opdracht zoals ik die heb geformuleerd en uitgevoerd beschreven; deze opdracht vormde basis van mijn afstuderen en vormt dus ook de basis van deze scriptie. Vervolgens zal ik een aantal algemene methoden en technieken die ik heb gebruikt bij het uitvoeren van mijn opdracht bespreken, in het hoofdstuk Architectuur. Van deze verschillende methoden wordt er één in het bijzonder belicht in het hoofdstuk Prevalence. De besproken technieken en methoden heb ik gebruikt bij het maken van een ontwerp, dat behandeld wordt in het gelijknamige hoofdstuk. De manier waarop dit ontwerp in de praktijk is gebracht als een daadwerkelijk systeem, wordt beschreven in het hoofdstuk Implementatie. Aan het einde van deze scriptie zal ik nog ingaan op de resultaten van de diverse tests van het systeem, zal ik het proces dat ik gevolgd heb om tot dit systeem en deze opdracht te komen bespreken en zal ik enkele suggesties doen voor verdere ontwikkelling van het systeem en gebieden 4 Michel Groenenstijn, maart 2003

6 Webstatistieken architectuur en opslag aangeven waarop nog verder onderzoek gedaan kan worden. De scriptie wordt afgesloten met een concluderend hoofdstuk waarin antwoord zal worden gegeven op mijn probleemstelling. De diverse diagrammen die in deze scriptie zijn gebruikt zijn niet gebaseerd op een bepaalde standaard-methode, zoals het veel gebruikte UML. Reden hiervoor is dat deze methode teveel mogelijkheden bevat en daarom niet geschikt is voor de relatief simpele diagrammen die hier gepresenteerd worden. In plaats daarvan heb ik gekozen voor een eigen type diagram, waaruit de informatie die moet worden overgebracht duidelijk moet blijken. Waar nodig zijn deze diagrammen in de tekst verder verduidelijkt. Michel Groenenstijn, maart

7 Webstatistieken, architectuur en opslag 2 OPDRACHT Om mijn afstuderen zo goed mogelijk te laten verlopen, heb ik eerst de opdracht die ik moest gaan doen geformuleerd en gekeken naar de omgeving waarin deze opdracht uitgevoerd moest worden. In dit hoofdstuk zal deze omgeving worden beschreven en wordt een concrete formulering van de opdracht gegeven. 2.1 Context Het Internet is al jarenlang het snelst groeiende informatiemedium dat we kennen. Dagelijks worden er talloze nieuwe websites op het Internet geplaatst en neemt de hoeveelheid informatie die te vinden is explosief toe. In deze paragraaf wordt er kort gekeken naar de werking van het Internet en welke rol statistieken hierin spelen. Schematisch kan het Internet als volgt voorgesteld worden: Figuur 2.1 : Het Internet We zien hierin het Internet, weergegeven als een grote verzameling websites. Daarnaast zien we gebruikers die met behulp van een computer gebruik maken van het Internet door het bezoeken van websites. Deze gebruikers noemen we bezoekers van een website. Een bezoek aan een website kan worden gedefinieerd als een aaneengesloten tijd waarin een bezoeker één of meer pagina s van een website (bestaande uit een aantal verschillende pagina s) bezoekt. Binnen één bezoek kan een bezoeker meerdere pagina s van een website bezoeken. Het opvragen van één zo n pagina door de computer van een bezoeker noemen we een hit. Over deze bezoeken en hits die een website krijgt kunnen statistieken berekend worden. Zo kan er bijvoorbeeld worden gekeken naar de hoeveelheid verschillende bezoekers die een website aantrekt 6 Michel Groenenstijn, maart 2003

8 Webstatistieken architectuur en opslag of kan berekend worden hoeveel keer een bepaalde pagina binnen een website opgevraagd wordt. Voor veel websites worden zulke statistieken berekend; op de meeste van deze websites vormen de statistieken een vast en belangrijk onderdeel. Op het Internet zijn talloze websites waarop eigenaars van een webpagina de mogelijkheid wordt geboden statistieken te laten berekenen over hun website. Zoveel aanbieders van statistieken als er zijn, zoveel verschillende manieren van berekenen zijn er. De ene manier is gericht op het analyseren van logbestanden van webservers (waarin elke hit die binnenkomt wordt opgeslagen), de andere manier is erop gericht real-time informatie over bezoeken aan een website te berekenen door het bijhouden van een groot aantal tellers. De werking van veel van zulke statistiek-pakketten wordt door de makers ervan strikt geheim te houden. Ik zal in deze scriptie dan ook niet ingaan op de manier waarop andere producten werken, maar me alleen richten op mijn eigen opdracht. 2.2 Formulering De opdracht die ik uit moest gaan voeren werd in eerste instantie als volgt geformuleerd: Ontwerp en implementeer een systeem waarmee op configureerbare wijze gegevens over het gebruik van een website verkregen en bekeken kunnen worden. Naast deze formulering werd ook een richting gegeven waarin ik een oplossing kon gaan zoeken. Deze richting werd gegeven in de vorm van het werk van een andere afstudeerder bij <GX>, Erik van Lith, die eerder met ongeveer dezelfde opdracht aan de slag was gegaan. In dit werk wordt een architectuur beschreven voor een systeem dat statistieken genereert door het analyseren van logbestanden van een webserver. Dit systeem bleek echter, nadat het gerealiseerd was, niet schaalbaar; bij druk bezochte websites werden de logbestanden die geanalyseerd moesten worden te groot om in een redelijke tijd door het systeem verwerkt te kunnen worden. De architectuur van dit systeem bevatte echter wel veel elementen die een goede oplossing voor het probleem boden en geschikt waren voor hergebruik. De opdracht moest dus uitgevoerd worden met dit werk als basis. Concreet betekende deze opdracht dat ik in de eerste plaats een geschikt ontwerp moest maken, in de vorm van een ontwerpdocument. Vervolgens moest op basis van dit document een systeem geïmplementeerd worden dat aan de gestelde eisen voldoet. Deze eisen worden besproken in het hoofdstuk Implementatie. Daarnaast behoorde het maken van documentatie die het mogelijk maakt dat iemand anders aan het systeem verder kan werken ook tot de opdracht. 2.3 Belang van de opdracht Statistieken over het gebruik van een website zijn met name voor bedrijven van groot belang. Hierbij valt bijvoorbeeld te denken aan het succes van een bepaalde aanbieding op de website, het inzien van welke delen van een website wel en welke niet populair zijn bij bezoekers, het bekijken van welke volgorden van het opvragen van pagina s veel gebruikt worden, enzovoort. Dit soort informatie is erg belangrijk voor bedrijven; op basis hiervan kan besloten worden bepaalde informatie meer en andere informatie minder aan te bieden, kan duidelijk worden welk soort bezoekers voor welke informatie de website bezoekt en kan de structuur van de website aangepast worden om veelgebruikte pagina s makkelijk bereikbaar te maken. Een groot nadeel van veel bestaande statistiek-pakketten is het feit dat ze nauwelijks instelbaar zijn. De meeste pakketten bieden een vaste verzameling statistieken aan waarin geen wijzigingen mogelijk zijn, waardoor gebruikers van een dergelijk pakket niet de mogelijkheid hebben om precies die informatie te verkrijgen die ze willen. Het systeem dat in de opdracht is beschreven biedt deze Michel Groenenstijn, maart

9 Webstatistieken, architectuur en opslag mogelijkheid wel en vormt dus een interessante toevoeging aan de verzameling bestaande pakketten. Voor <GX> in het bijzonder is het systeem interessant omdat het makkelijk te integreren is in bestaande oplossingen, zoals portalen, een centrale plek op het Internet waarin meerdere verschillende websites zijn ondergebracht. Dit wordt mogelijk gemaakt omdat de broncode van het systeem eigendom is van <GX> en dus toegankelijk en aanpasbaar, iets dat bij de meeste bestaande pakketten niet zo is. 2.4 Probleemstelling De probleemstelling van deze scriptie bestaat uit twee verschillende onderdelen. Het eerste deel heeft direct betrekking op de opdracht en is als volgt te formuren: Welke architectuur is het meest geschikt voor een systeem dat real-time statistieken berekent op een flexibele en configureerbare manier?. Daarnaast wordt er gekeken naar een specifiek onderdeel van de opdracht, namelijk de opslag. Eén van de technieken waarnaar ik hierbij heb gekeken is Object Prevalence, een nieuwe manier om het persistent maken van informatie in de vorm van objecten te implementeren. Dit deel van de probleemstelling is als volgt te formuleren: Voor welk soort applicaties is Object Prevalence wel en niet geschikt en waarom is dit zo?. In de loop van deze scriptie wordt op beide bovenstaande vragen antwoord gegeven. In de conclusie wordt een samenvattend antwoord op beide vragen geformuleerd. 8 Michel Groenenstijn, maart 2003

10 Webstatistieken architectuur en opslag Michel Groenenstijn, maart

11 Webstatistieken, architectuur en opslag 3 ARCHITECTUURPRINCIPES Om het systeem in zijn uiteindelijke vorm te implementeren, heb ik gebruik gemaakt van een aantal bestaande architectuurprincipes. Deze principes spelen een belangrijke rol in de uiteindelijke opzet van het systeem en zijn een essentieel onderdeel van het ontwerp en de implementatie. Het gaat hierbij alleen om principes die een inhoudelijke rol hebben gespeeld in het ontwerp en de implementatie van het systeem, en niet om ondersteunende technieken zoals het platform en de ontwikkelomgeving. De gebruikte principes die hier besproken worden zijn achtereenvolgens server-side Java voor het beschikbaar maken van dynamische webpagina s, messaging voor het heen en weer sturen van informatie tussen verschillende onderdelen van het systeem en persistence voor het persistent maken van data. Elk van deze principes wordt hieronder afzonderlijk besproken. 3.1 Server-side Java Om webpagina s op het Internet beschikbaar te maken is een computer nodig waarop software draait die het mogelijk maakt deze webpagina s op te vragen met een browser. Zo n computer wordt een webserver genoemd. De software die vroeger op een webserver draaide was vrij simpel en kon in feite alleen statische webpagina s beschikbaar maken voor computers die verbonden waren met het Internet. Naarmate de toepassingen op het Internet steeds meer interactief werden, ontstond de behoefte om aan de kant van de webserver dynamisch webpagina s te kunnen genereren. De inhoud van een webpagina ligt hierbij niet vast, zoals bij statische pagina s, maar is afhankelijk van bepaalde factoren zoals input van gebruikers of berekeningen die worden uitgevoerd op de webserver. Een schema van hoe dit principe werkt is te vinden in Figuur 3.1. Een mogelijkheid om webpagina s dynamisch te genereren zijn Java Servlets. Hiervoor is door Sun Microsystems, de Java Servlet API gemaakt, waarin precies gespecificeerd wordt hoe dit generen van webpagina s met servlets gedaan moet worden. Een servlet is een webpagina die bestaat uit Java code; zodra deze webpagina opgevraagd wordt, wordt de Java-code uitgevoerd. Deze code genereert dan de webpagina in de vorm van HTML en stuurt deze naar de webbrowser die de pagina opgevraagd heeft. Aangezien de pagina gegeneerd wordt door Java-code, kan de kracht van Java en het object-georiënteerd programmeren hiervoor gebruikt worden; dit biedt de maker van de website veel flexibiliteit en mogelijkheden voor het toevoegen van dynamiek aan webpagina s. Figuur 3.1 : Statische en dynamische webpagina s De werking van Java Servlets ziet er schematisch als volgt uit: 10 Michel Groenenstijn, maart 2003

12 Webstatistieken architectuur en opslag Figuur 3.2 : Java Servlets Een bezoeker vraagt een webpagina op met zijn computer, links in Figuur 3.2. Dit houdt in dat de browser van de bezoeker een request maakt, waarin staat welke pagina de bezoeker wil opvragen. Deze request wordt naar de webserver gestuurd, die vervolgens de request bekijkt om te bepalen voor welke servlet de request bedoeld is; de webserver stuurt de request dan door naar de juiste servlet. Zodra een request binnen komt bij een servlet, wordt de methode voor het verwerken van een request aangeroepen. Dit is de plaats in de code waar is vastgelegd hoe de webpagina gegenereerd moet worden. Hierbij kan eventuele input van de bezoeker (die is opgeslagen in de request) gebruikt worden, maar kan ook gebruikt worden gemaakt van andere, bestaande Java objecten. Zodra de servlet de webpagina gegenereerd heeft, wordt deze via de webserver teruggestuurd naar de browser van de gebruiker en verschijnt de webpagina op het scherm. Om de werking van Java Servlets verder duidelijk te maken, volgt hier een simpel maar illustratief voorbeeld. Stel, iemand wil een webpagina maken die op het moment dat een bezoeker de webpagina opvraagt de tekst Welkom op deze webpagina of Helaas zijn wij gesloten laat zien, al naar gelang het een doordeweekse dag of een dag in het weekend is. De code om dit systeem te maken bestaat uit twee klassen, de servlet WeekendServlet en de Java-klasse Dag en ziet er als volgt uit: 1 public class Dag { 2 private Date date; 3 4 public Dag() { 5 this.date = new Date(); 6 } 7 8 public void isweekend() { 9 if(date.getday() == 0 date.getday() == 6) { 10 return true; 11 } else { 12 return false; 13 } 14 } 15 } Figuur 3.3 : Dag Michel Groenenstijn, maart

13 Webstatistieken, architectuur en opslag 1 public class WeekendServlet extends HttpServlet { 2 3 public void doget(httpservletrequest req, HttpServletResponse res) { 4 PrintWriter out = res.getwriter(); 5 6 Dag d = new Dag(); 7 if(d.isweekend()) { 8 out.println( Helaas zijn wij gesloten ); 9 } else { 10 out.println( Welkom op deze webpagina ); 11 } } 14 } Figuur 3.4 : WeekendServlet De klasse Dag bevat een datum date en een methode isweekend(). Op het moment dat een Dag geinstantieerd wordt, wordt de datum van het object gezet op het huidige tijdstip door een nieuw Date-object te instantiëren (regel 5 in Figuur 3.3). De methode isweekend() geeft true als resultaat als het zaterdag of zondag is (dit wordt berekend door te kijken of het dagnummer 0 of 6 is), en false als het een andere dag is. De WeekendServlet-klasse is de klasse waarin is vastgelegd hoe de pagina gegenereerd moet worden. Om aan te geven dat deze klasse een servlet is, is er de toevoeging extends HttpServlet aan meegegeven. Het systeem weet zo dat het een servlet betreft en zorgt dat de klasse als zodanig benaderd wordt. De methode doget (regel 3 in Figuur 3.4) is een methode die elke servlet moet hebben; hierin wordt vastgelegd wat de servlet moet doen op het moment dat er een request binnenkomt. De request die binnenkomt bij de servlet wordt als parameter aan deze methode meegegeven; in dit voorbeeld is deze parameter req genoemd. Daarnaast wordt het resultaat dat deze servlet terug moet sturen naar de browser van de bezoeker (de eigenlijke webpagina) meegegeven aan de doget-methode. Deze parameter is in dit voorbeeld res genoemd. Om de tekst die we op het scherm van de bezoeker willen laten zien te kunnen sturen moet er eerst een kanaal zijn waarheen deze tekst gestuurd kan worden. Omdat deze tekst in de vorm van een webpagina aan de bezoeker moet worden getoond, wordt zo n kanaal aan de hand van de variabele res gemaakt; deze variabele representeerde immers het resultaat dat terug naar de browser van de gebruiker wordt gestuurd. Het maken van dit kanaal gebeurt in regel 4 van Figuur 3.4. Vervolgens wordt een nieuw Dag-object geinstantieerd en wordt aan dit object gevraagd of het een dag in het weekend is (regel 7). Als dit zo is wordt de tekst Helaas zijn wij gesloten naar het gemaakte kanaal (en dus naar de browser van de bezoeker) gestuurd; als dit niet zo is wordt de tekst Welkom op deze webpagina gestuurd. 3.2 Messaging Om verschillende onderdelen van een systeem informatie uit te laten wisselen, iets dat in vrijwel elk systeem nodig is, moeten deze onderdelen met elkaar kunnen communiceren. Er kan bij zulke communicatie tussen twee componenten altijd onderscheid gemaakt worden tussen minstens twee actoren: de component die een bericht wil versturen en de component waarnaar het bericht gestuurd moet worden. Deze componenten worden zender respectievelijk ontvanger genoemd. Daarnaast speelt de informatie die uitgewisseld moet worden, het bericht, een belangrijke rol. 12 Michel Groenenstijn, maart 2003

14 Webstatistieken architectuur en opslag Een manier om communicatie tussen verschillende componenten van een systeem te bewerkstelligen is door in de zender en ontvanger precies vast te leggen hoe de communicatie plaats moet vinden. In de zender wordt gespecificeerd naar welke ontvanger een bericht gestuurd moet worden en wordt vastgelegd hoe de ontvanger het bericht precies zal verwachten. Op dezelfde manier wordt in de ontvanger vastgelegd waar een bericht vandaan komt en op welke manier het ontvangen moet worden. Deze methode van communicatie heeft belangrijke nadelen. Doordat er precies in zender en ontvanger wordt vastgelegd hoe de communicatie verloopt zal, in het geval dat er een wijziging optreedt in de zender, de ontvanger ook moeten worden aangepast en vice versa. Ook als de manier van het oversturen van berichten verandert moeten zender en ontvanger worden aangepast. Deze manier van communicatie is dus niet erg flexibel en daarom niet geschikt voor gebruik in een operationeel systeem. Een alternatieve benadering van de communicatie tussen zender en ontvanger is messaging. Bij messaging kan een zender berichten naar een ontvanger sturen zonder dat er iets bekend is over de ontvanger of de manier van communiceren. Belangrijk in dit concept is een centrale derde component die deze manier van communicatie mogelijk maakt. Hoe deze component precies werkt, zullen we in het vervolg zien. Messaging is op twee manieren toe te passen, voor twee verschillende situaties. De eerste situatie is het geval waarin er sprake is van één zender en één ontvanger die willen communiceren. De faciliteit die messaging voor deze situatie biedt is de queue. De tweede situatie is wanneer er sprake is van één of meerdere zenders en/of één of meerdere ontvangers. Belangrijk hierbij is op te merken dat het gaat om mogelijk meer dan één zender of ontvanger; als er gedurende enig moment tijdens het functioneren van een systeem sprake kan zijn van meerdere zenders, meerdere ontvangers of beide, is deze situatie van toepassing. Messaging biedt hiervoor ondersteuning in de vorm van het publish/subscribe systeem Queue In dit systeem vormt de queue de centrale component die het versturen van berichten tussen zender en ontvanger mogelijk maakt. Een schematische weergave van de queue is te vinden in Figuur 3.5. Figuur 3.5 : Queue De zender, links, wil een bericht versturen naar de ontvanger, rechts. Hiervoor verstuurt de zender het bericht naar de queue, de centrale component in het midden. Berichten die bij de queue binnen komen worden achter elkaar geplaatst: een bericht dat als eerste bij de queue aankomt staat vooraan, een bericht dat als tweede aankomt daarachter, enzovoort. Vanaf de queue worden berichten naar de ontvanger verzonden, ofwel doordat de ontvanger periodiek kijkt of er nieuwe berichten zijn ofwel doordat de queue de ontvanger waarschuwt als er een nieuw bericht is. Deze methode biedt duidelijke voordelen boven de methode die eerder werd beschreven. De zender hoeft niets te weten over de ontvanger of over de manier waarop informatie verzonden wordt. Hij stuurt het bericht simpelweg naar de queue en gaat er vervolgens van uit dat het bericht aan zal Michel Groenenstijn, maart

15 Webstatistieken, architectuur en opslag komen, ongeacht hoe. In de zender hoeft niet te worden gespecificeerd hoe de ontvanger werkt, net zoals in de ontvanger niet hoeft te worden vastgelegd hoe de zender werkt. Beide componenten kunnen dus onafhankelijk van elkaar opereren en wanneer nodig afzonderlijk worden aangepast Publish/subscribe systeem Het doel van een zender is vaak niet het versturen van informatie naar een specifieke ontvanger, maar het beschikbaar maken van bepaalde informatie voor geïnteresseerde ontvangers. De zender heeft dan vooraf geen informatie over hoeveel of welke ontvangers het bericht zullen krijgen; in feite is dit voor de zender ook niet van belang. Andersom kan het ook zijn dat een ontvanger geïnteresseerd is in berichten van meerdere zenders, zonder er veel waarde aan te hechten welke zender welk bericht stuurt. Voor dit geval biedt messaging het publish/subscribe systeem aan. Een schematische voorstelling van het publish/subscribe systeem wordt gegeven in Figuur 3.6. Figuur 3.6 : Publish/subscribe systeem Verschillende zenders willen hun berichten beschikbaar stellen voor geïnteresseerde ontvangers. Daartoe versturen zij hun bericht naar een centrale component, het topic. Ontvangers die berichten van bepaalde zenders willen ontvangen maken hun interesse bekend bij het topic, waarna het topic berichten die door zenders verstuurd zijn doorstuurt naar deze ontvangers. De naam van de centrale component, topic, hetgeen onderwerp betekent, is niet voor niets zo gekozen. In een systeem dat uit veel componenten bestaat worden er vaak veel verschillende soorten berichten tussen verschillende zenders en ontvangers heen en weer gestuurd. Daarbij is niet elke ontvanger geïnteresseerd in elk soort bericht. Het publish/subscribe systeem maakt het mogelijk de verschillende soorten berichten die worden verstuurd te classificeren in verschillende onderwerpen. Hiertoe worden verschillende topics gemaakt, voor elk soort bericht één. Vervolgens kan per ontvanger worden aangegeven van welke onderwerpen (nul of meer) de ontvanger berichten wil ontvangen. Net zo kan een zender, afhankelijk van het soort bericht dat verstuurd wordt, zijn bericht naar één of meerdere topics sturen. Een schematische weergave hiervan is te vinden in Figuur Michel Groenenstijn, maart 2003

16 Webstatistieken architectuur en opslag Figuur 3.7 : Publish/subscribe systeem Meer over het gebruik van messaging is te vinden in de hoofdstukken Ontwerp en Implementatie Mechanismen Om het werken met messaging zo flexibel mogelijk te maken, biedt vrijwel elk systeem dat messaging implementeert een aantal mechanismen aan dat de gebruiker van een dergelijk systeem zo veel mogelijk controle geeft over de manier waarop berichten worden verstuurd. Enkele belangrijke mechanismen, te weten bevestiging, persistence, prioriteit en expiratie worden in het vervolg besproken Bevestiging Tijdens het versturen van berichten kan er van alles misgaan. Zo kan de lijn waarover de berichten worden verstuurd onbetrouwbaar zijn, waardoor een bericht maar gedeeltelijk of helemaal niet aankomt of kan er iets bij de ontvanger van een bericht fout gaan op het moment dat het bericht is aangekomen maar nog niet verwerkt. In zulke gevallen is het vaak wenselijk dat de zender het bericht opnieuw stuurt, zodat de ontvanger het bericht alsnog kan ontvangen. De zender moet dan echter wel weten dat er iets is misgegaan en dat het bericht opnieuw verstuurd moet worden. In deze situatie kan het bevestigingsmechanisme gebruikt worden; hierbij stuurt de ontvanger bij elk bericht dat aankomt een bevestiging van ontvangst terug naar de zender. Zodra de zender zo n bericht krijgt, is het bericht goed aangekomen en hoeft er niet opnieuw verzonden te worden. Heeft de zender echter na een bepaalde tijd nog geen bevestiging ontvangen, wordt het bericht opnieuw verstuurd, net zolang tot er een bevestiging volgt Persistence Michel Groenenstijn, maart

17 Webstatistieken, architectuur en opslag Als tijdens het versturen van berichten het systeem waarop de centrale messaging component (een topic of een queue) draait plotseling uitvalt, zijn alle berichten die door een zender gestuurd zijn maar nog niet door een ontvanger ontvangen weg. Deze berichten worden immers in het vluchtige geheugen van de computer waarop de centrale component draait bewaard. Om dit te voorkomen bieden de meeste messaging systemen de mogelijkheid om berichten persistent te maken; berichten die verstuurd worden, worden dan opgeslagen op een vast medium (zoals een harde schijf). Als een systeem dat uitgevallen is opnieuw wordt ingeschakeld worden de berichten die op het moment van uitvallen onderweg waren van zender naar ontvanger, terug ingelezen vanaf het vaste medium. Deze berichten kunnen zo alsnog verstuurd worden waardoor er geen informatie verloren gaat Prioriteit Verschillende berichten die verstuurd worden bevatten meestal verschillende soorten informatie. Het komt vaak voor dat bepaalde informatie belangrijker is dan andere; de zender kan dit aangeven door een bericht een bepaalde prioriteit mee te geven. De centrale component, de queue of het topic, zal proberen berichten met een hoge prioriteit eerder bij ontvangers af te leveren dan berichten met een lage prioriteit. Dit zou dus kunnen betekenen dat een bericht dat heel belangrijk is en in een queue terecht komt, direct vooraan in die queue wordt gezet om als eerste bij de ontvanger bezorgd te kunnen worden. Het eerder bezorgen van berichten met een hoge prioriteit dan berichten met een lage prioriteit gebeurt bijna altijd op een best-effort basis; er wordt niet gegarandeerd dat berichten met een hoge prioriteit eerder aankomen dan berichten met een lage prioriteit Expiratie De meeste messaging-systemen bieden de mogelijkheid om berichten een geldigheidsduur mee te geven; dit houdt in dat als een bericht niet voor een bepaald moment door een ontvanger ontvangen is, het bericht niet meer verzonden hoeft te worden en dus verwijderd kan worden uit de queue of van het topic. Het instellen van het moment waarop een bericht verloopt kan in de meeste systemen door middel van het opgeven van een tijdstip of door aan te geven binnen hoeveel tijd vanaf het moment dat de zender het bericht verstuurt, het bericht aangekomen moet zijn bij de ontvanger. 3.3 Persistence Gegevens in een systeem worden in het algemeen gemanipuleerd in het intern geheugen van een computer. Omdat dit geheugen geen data vast kan houden als de computer uit staat, en data dus verloren gaat als een systeem om wat voor reden dan ook plotseling uitvalt, is het van groot belang deze data op te slaan op een niet-vluchtig medium, zoals een harde schijf. Het op deze manier beveiligen van data tegen verlies wordt persistence genoemd; de data wordt persistent (letterlijk: blijvend ) gemaakt. Het persistent maken van objecten (in dit geval iets specifieker: Java objecten) houdt in dat de data die opgeslagen is in het object persistent gemaakt moet worden. Omdat de definitie van een object (welke velden zijn er en welke methoden bevat het object) al vastgelegd is in de klasse-definitie van het object, hoeven alleen de waarden van de verschillende velden van een object te worden opgeslagen. Dit is immers de data die verandert tijdens de levensduur van een object en die niet te reconstrueren is in het geval dat een systeem uitvalt. Het persistent maken van objecten kan op veel verschillende manieren; een aantal belangrijke wordt in het vervolg besproken. 16 Michel Groenenstijn, maart 2003

18 Webstatistieken architectuur en opslag Databases Eén van de oudste en meest bekende manieren van het opslaan van data is de database, en in het bijzonder de relationele database (andere typen databases, zoals de object database, worden hier niet besproken). Een relationele database bestaat uit één of meer verschillende tabellen die data bevatten. Binnen een tabel is data opgeslagen in verschillende rijen, waarbij elke rij één samenhangende hoeveelheid data bevat. De data in één rij is opgeslagen in verschillende kolommen, waarbij elke kolom een elementair stukje data bevat. Alle rijen in één tabel hebben dezelfde kolommen en bevatten dus ook dezelfde soort data. Gegevens in verschillende tabellen kunnen naar elkaar refereren door middel van sleutels. Om duidelijk te maken hoe data in een relationele database is opgeslagen, volgt hier een voorbeeld. Stel, we willen een simpel adresboek maken waarin bedrijven en hun contactpersonen worden opgeslagen. Hiervoor bepalen we eerst dat van een bedrijf een naam, een adres en een plaats wordt opgeslagen. Van een contactpersoon wordt een naam, een telefoonnummer en het bedrijf waar deze persoon werkzaam is opgeslagen. Als voorwaarde wordt gesteld dat alleen contactpersonen worden opgeslagen van bedrijven die ook in het bestand zitten. Een relationele database voor deze gegevens zou er als volgt uit kunnen zien: Figuur 3.8 : Relationele database In deze database zijn twee tabellen gemaakt, één voor bedrijven en één voor contactpersonen. De kolommen in de tabel Bedrijven zijn Id, Naam, Adres en Plaats. De kolom Id wordt gebruikt om een bedrijf uniek te kunnen identificeren; waarom deze kolom nodig is, wordt later duidelijk. Elke rij in deze tabel bevat de gegevens van één bedrijf. In de tabel contactpersonen is in elke rij één contactpersoon opgeslagen. Deze tabel bestaat uit de kolommen Id, Naam, Telefoonnummer en Bedrijf. De kolom Id wordt in deze tabel gebruikt om contactpersonen uniek te identificeren. Zo is het bijvoorbeeld mogelijk dat er bij een bepaald bedrijf twee mensen met dezelfde naam op eenzelfde afdeling werken, en dat elke afdeling binnen dat bedrijf één telefoonnummer heeft. Van deze twee personen zou dan precies dezelfde informatie worden opgeslagen in deze database; de twee personen zouden niet meer te onderscheiden zijn. De kolom Id in de tabel Bedrijven wordt in de contactpersonen tabel gebruikt om aan te geven bij welk bedrijf een persoon werkt. Er had hier gekozen kunnen worden om de naam van het bedrijf bij een contactpersoon op te slaan. Echter, op het moment dat er dan twee bedrijven met dezelfde naam in de database terecht komen is niet meer te onderscheiden of een contactpersoon werkzaam is bij het ene of het andere bedrijf. Door elk bedrijf een uniek nummer te geven is ondubbelzinnig aan te geven bij welk bedrijf een contactpersoon werkt. In het voorbeeld zijn er twee contactpersonen die werkzaam zijn bij Philips Research (bedrijf nummer 3) en zijn er voor KPN Telecom geen contactpersonen opgeslagen. Van zowel Ernst & Young als Schiphol Airport is er één contactpersoon in de database opgeslagen. Michel Groenenstijn, maart

19 Webstatistieken, architectuur en opslag Serialization Het standaard opslag-mechanisme van Java is Serialization. Met deze techniek wordt de informatie die in objecten is opgeslagen direct weggeschreven naar een vast medium zoals een harde schijf. Het wegschrijven een object houdt in dat alle referenties binnen het object naar andere objecten worden gevolgd, en alle objecten waarnaar verwezen wordt ook worden opgeslagen, net zolang tot het volledige object is opgeslagen. In Java code ziet het wegschrijven van een object er als volgt uit: 1 String s = new String( Dit is een string ); 2 Date d = new Date(); 3 4 FileOutputStream f = new FileOutputStream("bestand"); 5 ObjectOutputStream oo = new ObjectOutputStream(f); 6 oo.writeobject(s); 7 oo.writeobject(d); 8 s.flush(); Figuur 3.9 : Serialization, opslag In dit voorbeeld worden twee objecten, een String en een Date, gemaakt. Vervolgens wordt een stream gemaakt naar een bestand genaamd bestand (regel 4). Vanuit deze stream wordt een nieuwe stream gemaakt om objecten in weg te kunnen schrijven (regel 5). In regel 6 en 7 worden de beide gemaakte objecten vervolgens weggeschreven. Om vervolgens de weggeschreven objecten weer in te lezen kan de volgende code gebruikt worden: 1 FileInputStream in = new FileInputStream("bestand"); 2 ObjectInputStream oi = new ObjectInputStream(in); 3 String s = (String)oi.readObject(); 4 Date d = (Date)oi.readObject(); Figuur 3.10 : Serialization, inlezen Eerst wordt er in regel 1 een stream naar het juiste bestand gemaakt. Om vanuit deze stream objecten in te kunnen lezen wordt in regel 2 een objectstream gemaakt. Vervolgens kunnen met behulp van de readobject-methode de String en de Date die waren weggeschreven, opnieuw worden ingelezen. Het gebruik van serialization heeft als grootste voordeel de simpele manier waarop het in een systeem geïmplementeerd kan worden; er hoeft nauwelijks code toegevoegd te worden om objecten te serializen. Daarnaast is het gebruik van serialization erg snel; het object wordt immers vrij letterlijk op schijf opgeslagen zonder dat er een vertaling naar een bepaalde structuur hoeft plaats te vinden. Serialization wordt echter niet gezien als een erg betrouwbare manier van het opslaan van gegevens. Als tijdens het schrijven van een object naar de harde schijf de computer vastloopt, gaan de gegevens die weggeschreven werden verloren. Om dit probleem te omzeilen, moet de programmeur zelf ondersteuning inbouwen voor het op meerdere plaatsen opslaan van gegevens. Daarnaast is het formaat waarin de objecten op de harde schijf worden opgeslagen moeilijk leesbaar; er is geen vaste structuur waarin met hand wijzigingen aangebracht kunnen worden. Hierdoor is het bij het corrupt raken van (een deel van) de gegevens vaak onmogelijk om de deze 18 Michel Groenenstijn, maart 2003

20 Webstatistieken architectuur en opslag gegevens nog te herstellen. Meer geavanceerde opties zoals transacties en toegangsbeheer, zaken die bij de meeste databases wel aanwezig zijn, moeten allemaal door de programmeur worden gemaakt bij het gebruik van serialization. Tot slot is een systeem dat gebruik maakt van serialization niet erg toekomstvast: als de structuur van de onderliggende data verandert (iets wat vrijwel altijd gebeurt door een veranderende omgeving, evoluerende eisen, enzovoort), kan met de weggeschreven data niets meer gedaan worden; de opgeslagen informatie bevat namelijk een bepaald object; zodra de structuur van zo n object verandert kan de oude data niet meer worden ingelezen. Uitzondering hierop is de zeer simpele wijziging van het toevoegen van een attribuut aan een object; serialization zal bij het inlezen van informatie (over een oud object, zonder de nieuwe attributen) in het nieuwe object de attributen die niet worden gevonden in de opgeslagen informatie leeg laten; dit biedt enige flexibiliteit, maar is in de meeste gevallen niet het gewenste resultaat. Ook op het moment dat de makers van Java bijvoorbeeld de onderliggene programmeertaal veranderen waarbij er wijzigingen optreden in de methode van serializen, is de opgeslagen data in de meeste gevallen onbruikbaar Prevalence Een relatief nieuwe techniek voor het persistent maken van objecten is prevalence. Op deze techniek ga ik in deze scriptie dieper in dan op de andere technieken; om deze reden is aan prevalence een apart hoofdstuk gewijd en wordt er hier dus niet verder op ingegaan. Michel Groenenstijn, maart

Dynamische webapplicaties in Java

Dynamische webapplicaties in Java Dynamische webapplicaties in Java October 7, 2006 In java is het mogelijk dynamische webpagina s te implementeren. De code om de dynamische gegevens te genereren staat in servlets of Java Server Pages

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

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

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

INFITT01 Internettechnologie WEEK 2

INFITT01 Internettechnologie WEEK 2 INFITT01 Internettechnologie WEEK 2 Programma Contexts Listeners Scope/Attributes Thread safety Taken container Een servlet draait in een container (servlet container). De container, die ten dienste van

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

PHP-OPDRACHT SITE BOUWEN

PHP-OPDRACHT SITE BOUWEN PHP-OPDRACHT SITE BOUWEN PERIODE 4 LEERJAAR 1 Opleiding: Duur: Applicatieontwikkelaar 1 onderwijsperiode (4-8 weken) Voorkennis: Basiscursus PHP 5.4 Victor Peters (978 90 125 8499 9) Basiscursus XHTML,

Nadere informatie

Werken op afstand via internet

Werken op afstand via internet HOOFDSTUK 12 Werken op afstand via internet In dit hoofdstuk wordt uitgelegd wat er nodig is om op afstand met de ROS artikel database te kunnen werken. Alle benodigde programma s kunnen worden gedownload

Nadere informatie

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn. Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een

Nadere informatie

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar ProjectHeatmap Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar 1 Inhoudsopgave Inleiding...3 Gheat...4 Info...4 Voordelen...4 Nadelen...4 Google Fusion Tables...5 Info...5 Voordelen...5 Nadelen...5 OLHeatmap...6

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid

4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid Internet Protocol Telematica Quality Of Service (Netwerk laag) Hoofdstuk 5 4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid n Pakketten kunnen verloren raken

Nadere informatie

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,

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

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Beknopte dienstbeschrijving Beveiligen van e-mail m.b.v. digitale certificaten en PKI Document: Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Inhoudsopgave 1. Inleiding 2 2. Snel te

Nadere informatie

Quickstart handleiding

Quickstart handleiding Inleiding Allereerst hartelijk bedankt voor het aanschaffen van. U heeft met deze aankoop een goede keuze gemaakt voor een zeer professionele E-mail marketing tool. In deze quickstart handleiding zullen

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

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

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze

Nadere informatie

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers Verslag SE Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers In dit verslag zullen wij een beschrijving geven, over welke

Nadere informatie

INFITT01 - Internettechnologie WEEK 8

INFITT01 - Internettechnologie WEEK 8 INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de

Nadere informatie

Inhoud leereenheid 8. Programmeren in JavaLogo (1) Introductie 73. Leerkern 75. Samenvatting 94. Zelftoets 95. Terugkoppeling 97

Inhoud leereenheid 8. Programmeren in JavaLogo (1) Introductie 73. Leerkern 75. Samenvatting 94. Zelftoets 95. Terugkoppeling 97 Inhoud leereenheid 8 Programmeren in JavaLogo (1) Introductie 73 Leerkern 75 1 Inleiding 75 1.1 Wat is programmeren? 75 1.2 Logo, Java en JavaLogo 76 2 Eerste programma s 77 2.1 Pen en Tekenblad 77 2.2

Nadere informatie

Overgang naar elektronische aangifte via Digipoort

Overgang naar elektronische aangifte via Digipoort Overgang naar elektronische aangifte via Digipoort Pagina 1 van 13 1 maart 2014 Inhoud 1. SBR en Digipoort... 3 2. De aangifte omzetten naar SBR... 4 3. De aangifte genereren... 6 3.1. Aangifte omzetbelasting

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

DrICTVoip.dll v 2.1 Informatie en handleiding

DrICTVoip.dll v 2.1 Informatie en handleiding DrICTVoip.dll v 2.1 Informatie en handleiding Nieuw in deze versie : Koppeling voor web gebaseerde toepassingen (DrICTVoIPwebClient.exe) (zie hoofdstuk 8) 1. Inleiding Met de DrICTVoIP.DLL maakt u uw software

Nadere informatie

Plan van Aanpak Afstuderen

Plan van Aanpak Afstuderen Plan van Aanpak Afstuderen Michiel Graat 27-09-2005 Inhoudsopgave 1 Inleiding 3 1.1 Terminologie............................. 3 1.2 Opdracht............................... 4 1.3 JavaCard...............................

Nadere informatie

Externe pagina s integreren in InSite en OutSite

Externe pagina s integreren in InSite en OutSite Externe pagina s integreren in InSite en OutSite Document-versie: 1.1 Datum: 04-10-2013 2013 AFAS Software Leusden Niets uit deze uitgave mag verveelvoudigd worden en/of openbaar gemaakt worden door middel

Nadere informatie

Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.

Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten. Doel van deze lesbrief Deze lesbrief is bedoeld om je op de hoogte te brengen van de basisbegrippen die gangbaar zijn bij object georiënteerd programmeren (OOP). In deze lesbrief kom je korte codefragmenten

Nadere informatie

Software Design Document

Software Design Document Software Design 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

case: toestandsdiagrammen

case: toestandsdiagrammen Hoofdstuk 13 case: toestandsdiagrammen In dit hoofdstuk wordt het maken van de eerste versie van de toestandsdiagrammen voor het boodschappensysteem van Hans en Jacqueline uitgewerkt. 13.1 Vind klassen

Nadere informatie

Handleiding helpdesk. Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark

Handleiding helpdesk. Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark Datum: 08-10-2014 Versie: 1.0 Auteur: Inge van Sark Inhoudsopgave Inhoudsopgave... 2 1. Beheer helpdesk... 3 1.1. Settings... 3 1.2. Applicaties... 4 1.3. Prioriteiten... 5 1.4. Gebruik mailtemplates...

Nadere informatie

De nieuwe generatie Toegangsbeheer.

De nieuwe generatie Toegangsbeheer. De nieuwe generatie Toegangsbeheer. Toekomstgericht Toegangsbeheer. Software eigenschappen. Simpel en visueel. Simpel betekent niet basis, het betekent dat het product correct werd ontworpen. Het systeem

Nadere informatie

privacy statement WerkvoorWerk.nl Privacy Statement aandachtig door te nemen. De schuin geschreven gebruiksvoorwaarden van WerkvoorWerk.nl.

privacy statement WerkvoorWerk.nl Privacy Statement aandachtig door te nemen. De schuin geschreven gebruiksvoorwaarden van WerkvoorWerk.nl. privacy statement WerkvoorWerk.nl WerkvoorWerk.nl neemt de privacy van haar gebruikers zeer serieus en zal informatie over u op een veilige manier verwerken en gebruiken. In dit document wordt het Privacy

Nadere informatie

Eindtoets. Opgaven. 1 Gegeven is het domeinmodel van figuur 1. Domeinmodel voor betalingen. Eindtoets I N T R O D U C T I E.

Eindtoets. Opgaven. 1 Gegeven is het domeinmodel van figuur 1. Domeinmodel voor betalingen. Eindtoets I N T R O D U C T I E. Eindtoets I N T R O D U C T I E Deze eindtoets is bedoeld als voorbereiding op het tentamen. Het is belangrijk dat u de eindtoets pas probeert te maken op het moment dat u denkt klaar te zijn met de tentamenvoorbereiding.

Nadere informatie

Voordat u gebruik kunt maken van ZorgMail in KraamZorgCompleet, zijn een aantal instellingen nodig:

Voordat u gebruik kunt maken van ZorgMail in KraamZorgCompleet, zijn een aantal instellingen nodig: Hoofdstuk 1 ZorgMail instellen en gebruiken Vanuit KraamZorgCompleet is het voortaan mogelijk om via ZorgMail beveiligd te communiceren met andere partijen in de zorg, mits zij ook zijn aangesloten bij

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.JMS...2

Inhoudsopgave. Hoofdstuk 1.JMS...2 Inhoudsopgave Hoofdstuk 1.JMS...2 1.1.Inleiding...2 1.2.Messaging architectuur...3 1.2.1.Point to point domein...3 1.2.2.Publish/Subscribe domein...4 1.2.3.Synchrone - asynchrone verwerking...4 1.2.4.De

Nadere informatie

Bericht Creëren en versturen binnen Wes 4 U mail

Bericht Creëren en versturen binnen Wes 4 U mail Bericht Creëren en versturen binnen Wes 4 U mail Berichten maken en versturen met Wes 4 U mail is simpel, doeltreffend en snel! Belangrijk is dat u reeds bent voorzien van een lijst met emailadressen van

Nadere informatie

Handleiding voor enquêtes voor ProZo!

Handleiding voor enquêtes voor ProZo! Handleiding voor enquêtes voor ProZo! Versie 1.1, 1 mei 2012 1 Voorwoord Deze handleiding neemt u stap voor stap mee in de aanvraagprocedure en het beheren van uw ProZo! enquêtes. We raden u aan deze handleiding

Nadere informatie

15 July 2014. Betaalopdrachten web applicatie gebruikers handleiding

15 July 2014. Betaalopdrachten web applicatie gebruikers handleiding Betaalopdrachten web applicatie gebruikers handleiding 1 Overzicht Steeds vaker komen we de term web applicatie tegen bij software ontwikkeling. Een web applicatie is een programma dat online op een webserver

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Handleiding Office 365 IN EEN NOTENDOP ALLES OVER OFFICE 365 CARLO KONIJN CHI COMPUTERS HEERHUGOWAARD

Handleiding Office 365 IN EEN NOTENDOP ALLES OVER OFFICE 365 CARLO KONIJN CHI COMPUTERS HEERHUGOWAARD 2014 Handleiding Office 365 IN EEN NOTENDOP ALLES OVER OFFICE 365 CARLO KONIJN CHI COMPUTERS HEERHUGOWAARD Inhoud Inleiding... 2 Aanmelden bij office 365 via het portaal.... 2 Het portaal en gebruikers:...

Nadere informatie

case: use-case-diagram

case: use-case-diagram Hoofdstuk 9 case: use-case-diagram Dit hoofdstuk beschrijft de totstandkoming van de use-cases voor EasyShop, het maaltijdsysteem van Hans en Jacqueline. Het zijn de functionele systeemeisen die hier worden

Nadere informatie

IMP Uitwerking week 13

IMP Uitwerking week 13 IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het

Nadere informatie

WebHare Professional en Enterprise

WebHare Professional en Enterprise WebHare Professional en Enterprise Publicatie module Site inrichting handleiding Datum 19 november 2002 Aantal pagina s: 31 Versie: 2.01 Doelgroep Sysops Gebruikers met site aanmaak rechten Gebruikers

Nadere informatie

Financieringsverstrekkersportaal. Aansluitdocument

Financieringsverstrekkersportaal. Aansluitdocument Financieringsverstrekkersportaal Aansluitdocument Colofon Documentnaam: Fink financieringsverstrekkersportaal aansluitdocument Versie: 0.3 Datum: 17 september 2015 Versiebeheer Releasedatum Wijziging Versie

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

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

De ontwikkelaar heeft het recht om af te zien van verdere ontwikkeling en/of ondersteuning van dit pakket.

De ontwikkelaar heeft het recht om af te zien van verdere ontwikkeling en/of ondersteuning van dit pakket. 1. Licentieovereenkomst BELANGRIJK! LEES DEZE OVEREENKOMST ALVORENS DE SOFTWARE TE INSTALLEREN! Het aanvaarden van deze overeenkomst geeft u het recht tot gebruik van deze software, de software blijft

Nadere informatie

Organiseer uw verschillende SOAP services in één scenario

Organiseer uw verschillende SOAP services in één scenario 1 Organiseer uw verschillende SOAP services in één scenario Wouter Luijten wouterluijten@creetion.com 2 Introductie Tijdens de implementatie van een proces heeft u vaak te maken met een veelvoud aan services.

Nadere informatie

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd

Nadere informatie

Software Design Document

Software Design Document Software Design 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

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

Technische beschrijving pseudonimisatie gegevensverzameling NIVEL Zorgregistraties eerste lijn

Technische beschrijving pseudonimisatie gegevensverzameling NIVEL Zorgregistraties eerste lijn Bijlage 2 bij Privacyreglement NIVEL Zorgregistraties eerste lijn Technische beschrijving pseudonimisatie gegevensverzameling NIVEL Zorgregistraties eerste lijn Pseudonimisatie Onder 'pseudonimisatie'

Nadere informatie

Sporthuis/GoSport Roy Schungel 1570046

Sporthuis/GoSport Roy Schungel 1570046 Sporthuis/GoSport 1570046 Document Informatie Versie Datum Status Aanpassingen Getroffen pagina s 1.0 20-06-2013 Definitief Colofon Soort document: Versie: 1.0 Afstudeerscriptie Opdrachtgever: Opdrachtgever:

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

Software-Ontwikkeling I Academiejaar 2006-2007

Software-Ontwikkeling I Academiejaar 2006-2007 Software-Ontwikkeling I Academiejaar 2006-2007 Project: Bibliotheekbeheer 1 1. Digitale bibliotheek a. Inleiding Bibliotheken houden onder meer hun collecties van uitleenbare artikels bij in digitaal formaat.

Nadere informatie

Back-up Online van KPN Handleiding Windows XP, Vista, 7, 8 v 1.0 PC Client built2013 13.0.0.13167

Back-up Online van KPN Handleiding Windows XP, Vista, 7, 8 v 1.0 PC Client built2013 13.0.0.13167 Back-up Online van KPN Handleiding Windows XP, Vista, 7, 8 v 1.0 PC Client built2013 13.0.0.13167 Gebruikershandleiding Back-up Online Pagina 1 1 Inhoudsopgave 1 Inleiding... 3 2 Installatie... 4 2.1 Installatie

Nadere informatie

AFO 142 Titel Aanwinsten Geschiedenis

AFO 142 Titel Aanwinsten Geschiedenis AFO 142 Titel Aanwinsten Geschiedenis 142.1 Inleiding Titel Aanwinsten Geschiedenis wordt gebruikt om toevoegingen en verwijderingen van bepaalde locaties door te geven aan een centrale catalogus instantie.

Nadere informatie

Handleiding. Online backup PC

Handleiding. Online backup PC Handleiding Online backup PC Inhoudsopgave 1. Installatie 2 2. Configuratie eerste keer 4 3. Bepalen waarvan een backup gemaakt moet worden 5 4. Instellen wanneer de backup wordt uitgevoerd 5 5. Beveiliging

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Handleiding OSIRIS Self Service. Schermen en procedures in OSIRIS voor docenten en studenten

Handleiding OSIRIS Self Service. Schermen en procedures in OSIRIS voor docenten en studenten Schermen en procedures in OSIRIS voor docenten en studenten Onderhoud en versiebeheer Dit document is eigendom van de projectleider Implementatie Osiris Volg. Wijzigingen aan het document worden geïnitieerd

Nadere informatie

Tinus Plotseling 29-12-2002. MySQL

Tinus Plotseling 29-12-2002. MySQL Tinus Plotseling 29-12-2002 MySQL Inhoudsopgave Inleiding... 3 MySQL Geschiedenis... 3 MySQL Toepassingen... 3 MySQL Voordelen... 4 MySQL Nadelen... 4 MySQL bij ASCI... 4 PostgreSQL... 5 ORACLE... 6 MS

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

HANDLEIDING TRACK & 1. Track & Trace e-mails bewerken 2. 1.1 Algemeen 3 1.2 E-mails 3 1.3 E-mails bewerken 4 1.4 Triggers 4 1.5 Beschikbare Tags 5

HANDLEIDING TRACK & 1. Track & Trace e-mails bewerken 2. 1.1 Algemeen 3 1.2 E-mails 3 1.3 E-mails bewerken 4 1.4 Triggers 4 1.5 Beschikbare Tags 5 HANDLEIDING TRACK & INHOUDSOPGAVE Trigger Based Track & Trace e-mails 1. Track & Trace e-mails bewerken 2 1.1 Algemeen 3 1.2 E-mails 3 1.3 E-mails bewerken 4 1.4 Triggers 4 1.5 Beschikbare Tags 5 2. Track

Nadere informatie

Opfrisdocument elektronische aangifte

Opfrisdocument elektronische aangifte Opfrisdocument elektronische aangifte Inleiding: Omdat wij regelmatig vragen krijgen over de elektronische aangifte, hebben wij e.e.a. maar eens voor u op een rijtje gezet. Uitgangspunt van dit document

Nadere informatie

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april 2009. Versie 2.1.0

Technisch ontwerp. Projectteam 6. Project Web Essentials 02 april 2009. Versie 2.1.0 Projectteam 6 Faculteit Natuur en Techniek Hogeschool Utrecht Projectleider: Hans Allis, hans.allis@student.hu.nl Technisch ontwerp Project "Web Essentials" 02 april 2009 Versie 2.1.0 Teamleden: Armin

Nadere informatie

Testplan. Versie 1 28-10-2004

Testplan. Versie 1 28-10-2004 Testplan Versie 1 28-10-2004 Groep 40 Naam Stud. nr. Vakken Jarry Claessen 0508757 SE, C2 Sebastian Groeneveld 0433350 SE, C2 Mark de Haas 0481832 SE Jeroen van Steenbergen 0515103 SE, C2 1 Unittestplan

Nadere informatie

Handleiding bij WSM MailformGenerator

Handleiding bij WSM MailformGenerator 1. Voorwoord Welkom bij de handleiding voor de WSM MailformGenerator. Deze handleiding hebben we gemaakt om je snel en gemakkelijk uit te leggen hoe de WSM MailformGenerator werkt. Deze handleiding is

Nadere informatie

PRIVACY STATEMENT. Toelichting De informatie die VraagHugo uit jouw antwoorden verkrijgt, bestaat uit de volgende informatie:

PRIVACY STATEMENT. Toelichting De informatie die VraagHugo uit jouw antwoorden verkrijgt, bestaat uit de volgende informatie: PRIVACY STATEMENT De Diensten van VraagHugo zijn gericht op ondernemingen en ondernemers. Toch worden er persoonsgegevens verwerkt, van jou als zelfstandig ondernemer of van jou als contactpersoon namens

Nadere informatie

Invoice Portal. Handleiding

Invoice Portal. Handleiding Invoice Portal Handleiding Inhoud Invoice Portal... 3 Activerings e-mail... 3 Account activeren... 4 Inloggen Invoice Portal... 4 Facturenscherm... 5 Selectiemogelijkheden... 6 Enkelvoudige downloads...

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

HDN DARTS WEB AUTHENTICATIE

HDN DARTS WEB AUTHENTICATIE HDN DARTS WEB AUTHENTICATIE HDN Helpdesk T: 0182 750 585 F: 0182 750 589 M: helpdesk@hdn.nl Copyright Communications Security Net B.V. Inhoudsopgave 1. INLEIDING OP HET ONTWERP... 3 1.1 HET DOEL VAN DIT

Nadere informatie

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix'

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix' Gimme Five! Op weg naar TYPO3 5.0 'Phoenix' Waarom TYPO3 5.0? Waarom TYPO3 5.0? Enkele redenen: Waarom TYPO3 5.0? Enkele redenen: Complexiteit De TYPO3 Core architectuur heeft zijn limiet bereikt en is

Nadere informatie

Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw

Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw In de whitepaper waarom u eigen documenten niet langer nodig heeft schreven we dat het rondmailen van documenten geen

Nadere informatie

SYNTRA-WEST. Cursus OOP. Deel

SYNTRA-WEST. Cursus OOP. Deel SYNTRA-WEST Cursus OOP Deel Syntra-West voorheen VORMINGSINSTITUUT VOOR KMO Syntra-West Doorniksesteenweg 220 8500 Kortrijk Tel. 056/26.02.00 Fax 056/22.81.07 i Inhoudsopgave SYNTRA-WEST... 0 CURSUS OOP...

Nadere informatie

eerste voorbeelden in Java

eerste voorbeelden in Java Beginselen van programmeren 2 eerste voorbeelden in Java vereisten: een editor: om programma in te tikken en te bewaren een Java compiler: zet ingetikte (bron-) programma om naar byte-code een Java Virtuele

Nadere informatie

PRIVACY STATEMENT OUDERMATCH.NL

PRIVACY STATEMENT OUDERMATCH.NL PRIVACY STATEMENT OUDERMATCH.NL Oudermatch neemt uw privacy zeer serieus en zal informatie over u op een veilige manier verwerken en gebruiken. Om uw privacy te waarborgen, handelt Oudermatch altijd in

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

Handleiding Plesk. Eddy De Bock

Handleiding Plesk. Eddy De Bock Handleiding Plesk Eddy De Bock 1 1 STARTPAGINA Hier krijgt u een samenvattend overzicht van de functies die Plesk u biedt. 2 GEBRUIKERS Hier kan u gebruikers aanmaken, verwijderen en beheren. Onder Gebruikersrollen

Nadere informatie

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt

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

HTML. Media. Hans Roeyen V 3.0

HTML. Media. Hans Roeyen V 3.0 Media Hans Roeyen V 3.0 12 maart 2015 Inhoud 1. (Multi)Media op websites... 3 2. Flash en Websites... 4 3. Video op je website... 4 3.1. YouTube insluiten op de pagina... 4 3.2. Video zonder YouTube...

Nadere informatie

VBA voor doe het Zelvers - deel 10

VBA voor doe het Zelvers - deel 10 VBA voor doe het Zelvers - deel 10 Handleiding van Auteur: leofact Oktober 2014 handleiding: VBA voor doe het Zelvers - deel 10 VBA voor Doe het Zelvers is een reeks artikelen, bedoelt voor mensen die

Nadere informatie

Voorstel contactmoment

Voorstel contactmoment Voorstel contactmoment Welbergweg 80-84 Postbus 768 7550 AT Hengelo Tel: 074 259 40 08 Fax: 074 256 64 24 Door: N. Bruins 2-2- 2011 Versiebeheer Versie Status Datum Auteur Reden wijziging 0.1 Concept 20-01-

Nadere informatie

Basisregistratie ondergrond (BRO) Uitgiftehandboek

Basisregistratie ondergrond (BRO) Uitgiftehandboek Basisregistratie ondergrond (BRO) Uitgiftehandboek Grondwatermonitoringput Datum augustus 2015 Versie 0.6 Colofon Bestuurskern Dir. Ruimtelijke Ontwikkeling Plesmanweg 1-6 Den Haag Contactpersoon M.R.H.E.

Nadere informatie

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous 2006-2007 Voorwoord 1 Inhoudsopgave 2 Hoofdstuk 1 Inleiding 3 Hoofdstuk 2 icafe 2.1 Het idee 2.2 Mogelijkheden

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang

Nadere informatie

Cookies. Krishna Tateneni Jost Schenck Vertaling van het handboek: Niels Reedijk Vertaler/Nalezer: Tom Albers Vertaler/Nalezer: Alexander S.

Cookies. Krishna Tateneni Jost Schenck Vertaling van het handboek: Niels Reedijk Vertaler/Nalezer: Tom Albers Vertaler/Nalezer: Alexander S. Krishna Tateneni Jost Schenck Vertaling van het handboek: Niels Reedijk Vertaler/Nalezer: Tom Albers Vertaler/Nalezer: Alexander S. Koning 2 Inhoudsopgave 1 Cookies 4 1.1 Beleid.............................................

Nadere informatie

Nieuw modules. Scherm met lijst

Nieuw modules. Scherm met lijst Nieuw modules In de nieuwe modules wordt gebruik gemaakt van een nieuwe vormgeving die beter aansluit bij die van bekende sites. In dit gedeelte worden de verschillende onderdelen in deze vormgeving uitgelegd

Nadere informatie

Whitepaper. Personal Targeting Platform. De juiste content Op het juiste moment Aan de juiste persoon

Whitepaper. Personal Targeting Platform. De juiste content Op het juiste moment Aan de juiste persoon Whitepaper Personal Targeting Platform De juiste content Op het juiste moment Aan de juiste persoon Introductie 2 Geïntegreerde personalisering 2 Het opbouwen van een profiel 2 Segmenteren en personaliseren

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

Documentatie. InstantModules Q42. Versie 1.1

Documentatie. InstantModules Q42. Versie 1.1 Documentatie InstantModules Q42 Versie 1.1 Inhoudsopgave Inhoudsopgave... 2 Voor gebruikers... 3 InstantComment... 3 InstantTagging... 5 Voor webmasters... 9 InstantComment... 9 InstantTagging... 11 Voor

Nadere informatie

1. Startpagina 1. 2. Gebruikers 1. 3. Mail 2

1. Startpagina 1. 2. Gebruikers 1. 3. Mail 2 Inhoudsopgave 1. Startpagina 1 2. Gebruikers 1 3. Mail 2 3.1 Een nieuwe e-mailbox aanmaken 2 3.2 Een e-mailalias aanmaken 2 3.3 Een e-mailbox/e-mailalias verwijderen 2 3.4 E-mail doorsturen en naar een

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

De online winkel is te bereiken via www.vbh24.nl en via een link op de site www.vbh-nl.com.

De online winkel is te bereiken via www.vbh24.nl en via een link op de site www.vbh-nl.com. Handleiding VB24 In deze handleiding staat de uitleg van alle functies van VBH24. Om deze handleiding voor u zo overzichtelijk mogelijk te maken vindt u hieronder een inhoudsopgave. Inloggen... 2 Navigatiemenu....

Nadere informatie