Inhoudsopgave Inhoudsopgave... 1 Dankwoord... 7 Voorwoord... 8 Projectsamenvatting... 9 Projectfiche Projectdefinitie Inleiding...

Maat: px
Weergave met pagina beginnen:

Download "Inhoudsopgave Inhoudsopgave... 1 Dankwoord... 7 Voorwoord... 8 Projectsamenvatting... 9 Projectfiche... 10 Projectdefinitie... 12 Inleiding..."

Transcriptie

1

2

3 Inhoudsopgave Inhoudsopgave 1 Dankwoord 7 Voorwoord 8 Projectsamenvatting 9 Projectfiche 10 Projectdefinitie 12 Inleiding 15 Wat is benchmarken 15 Soorten benchmarks 15 Benchmarken in combinatie met monitoren 16 Resultaten 16 Build environement 16 Taal 16 Ontwikkelingspakket 17 SharpDevelop add-in tree architecture 17 Inleiding 17 Add-in bestanden 18 Probleemstelling 20 Inleiding 20 Connectieprobleem 20 Oplossing 20 Connectie aantal correct bepalen 20 Code 21 Een wachttijd bij het vragen van een nieuwe connectie 22 Andere problemen 23 As Soon As Possible benchmarken 24 Inleiding 24 Databaseservers 24 Code 29 Codegeneratie 29 Benchmarken zelf 30 Webservers 31 Code 35 Codegeneratie 35 Benchmarken zelf 36 Socketservers 36 Inleiding 36 Voorstudie 37 Inleiding 37 De klasse ClientSocket 38 Hoe gebruiken 39 Code 43 Codegeneratie 43 Benchmarken zelf 43 Continuous Rate benchmarken 45 Inleiding 45 Databaseservers 46 Code 46 Codegeneratie 46 Benchmarken zelf 46 Webservers 48

4 Code 48 Codegeneratie 48 Benchmarken zelf 49 Socketservers 51 Code 52 Codegeneratie 52 Benchmarken zelf 52 Monitoring 55 Lokaal 55 Een ander machine: servermonitoring 55 Inleiding 55 APUS Performance Monitoring Protocol 55 Inleiding 55 Serverconfiguratie instellen 55 Sleutelwoorden 55 Resultaat 55 Serverconfiguratie opvragen 56 Sleutelwoorden 56 Resultaat (teruggekregen data) 56 Ruwe info 56 Sleutelwoorden 56 Resultaat (teruggegeven data) 57 Gedetaileerde info 58 Sleutelwoorden 58 Resultaat (teruggegeven data) 58 Andere 58 Sleutelwoorden 58 Resultaat 58 Lokaal: De APUS kant 58 Monitoren in combinatie met een benchmark 62 Server: APUS SMT 63 Inleiding 63 Structuur van APUS SMT 64 TaskHandler 64 Communicatie met APUS 65 StartListening 65 WDYH 65 RQ;RI 66 Logging 67 PerformanceInfoContainer 69 Grafisch 70 Code 70 Uitbreidbaarheid van APUS SMT 71 APUS SMT Gebruiken 72 Tclap 72 Mogelijke parameters 73 Besluit 74 Conclusies Dieter Vandroemme 76 Lijst van afbeeldingen 77 Bijlagen 78

5 Projectweken Dieter Vandroemme 78 Inleiding 78 De usercontrol: fase één 78 Inleiding 78 De beginsituatie 79 De eindsituatie 80 Al verwezenlijkt 80 Te verwezenlijken 81 Korte toelichting 81 Afhankelijkheden 81 Groepen 81 Statementlist 81 Add-in based 82 De usercontrol: fase twee 83 Inleiding 83 Add-in based ontwikkelen 83 De add-in tree en add-in bestanden 83 Hoe ik dit toegepast heb 85 Slot 88 Projectweken 89 Inleiding 89 Powermeter 89 Inleiding 89 Overzicht 89 PmConnection 89 ValuePM 91 De termios klasse 91 Praktijk (code uitleg) 91 Vereiste instellingen voor de Extech De rts lijn disablen is een must 92 Open 92 Read & Write 92 Write 92 Read 93 Protocoll Extech Soorten bytes 93 Data blocks 93 Performance Info ophalen 98 CPU 98 Windows 98 Win32_Processor 98 Hoe ophalen 98 Linux 98 Gebruikte bestanden 98 Verklaring 99 Hoe Parsen 100 Berekening 101 Geheugen 101 Windows 102 Gebruikte klassen 102 Hoe ophalen102 Linux 102

6 Gebruikte bestanden 102 Verklaring102 Hoe Parsen 103 Disk 104 Windows 104 Gebruikte wmi klassen104 Hoe ophalen104 Linux 105 Gebruikte bestanden 105 Verklaring105 Hoe Parsen 106 Netwerk 107 Windows 107 Gebruikte WMI klassen 107 Hoe ophalen107 Linux 107 Gebruikte bestanden 107 Verklaring108 Hoe Parsen 108 Berekening 108 Conclusie 109

7 Dankwoord In de eerste plaats willen wij graag Johan De Gelas en Brecht Kets bedanken voor hun technische ondersteuning Ook willen wij hen bedanken voor het vertrouwen die zij in ons gesteld hebben om dit project tot een goed einde te brengen Verder zouden wij graag Jef Daels, Ingrid Viaene en Hans Ameel willen bedanken en de rest van het docentenkorps waarbij we met onze vragen terecht konden Zo ook onze ouders waardoor het mogelijk was deze opleiding te doen en in het bijzonder willen wij ook ons team bedanken voor de fijne sfeer en de aangename tijd die we in het lab mochten doorbrengen Figuur 1: Het Sizing Servers team

8 Voorwoord Als twee ambitieuze studenten was het voor ons een buitenkans om aan dit project mee te werken Zo kwamen we in aanraking met enkele Vlaamse KMO s: - Debreuck & Neirynck (Ieper) - EnergyICT Energie monitoring & beheer (Kortrijk) - IndieGroup - Collaborative software (Kortrijk) - MCS - Facility management software (Antwerpen) - Minoc Online Top 10 IT website (Turnhout) - Network en Storage Solutions Pre Press software (Pittem) - Savaco Server & netwerk integrator (Kortrijk) Waarvoor ons project gebruikt wordt om onderzoek te verrichten door het research team: Elisabeth van Dijk, Jens Delagrange en Stijn Verslycken En enkele grotere bedrijven zoals bijvoorbeeld Intel die wat meer uitleg gaven over de nieuwste technologie op het vlak van servers en bedrijven zoals Supermicro waar we enkele van hun toestellen mogen gebruiken om te testen Dit onderzoek houdt dan in dat met behulp van onze tool de schaling van een server kan worden gemeten op een eenvoudige en goedkope wijze Zo kan om een voorbeeld te geven nagegaan worden bij welk aantal gebruikers het toestel begint te vertragen en hoeveel stroom die verbruikt Indien u meer vragen hebt over de dienstverlening van het project Sizing Servers kunt u terecht bij onze coach en bij onze projectbegeleider respectievelijk: Johan De Gelas en Brecht Kets Het software team: Dieter Vandroemme

9 Projectsamenvatting Stages voor laatstejaarsstudenten Multimedia & Communicatie Technologie Academiejaar Student : Student : VANDROEMME DIETER CAVELIERE LEANDRO Jan Frans Willemslaan 6, 8630 Veurne Cockerillplaats 2, 3600 Genk Optie: OA Optie: NW Stagetitel: Sizing Servers: APUS stress-testing en monitoring tool Stageomschrijving: Twee studenten werken verder aan de ontwikkeling van APUS een stress-testing tool, uniek in de IT-wereld, die ontwikkeld werd om een antwoord te bieden aan de tekortkomingen van de industriële benchmarks De hoofdopdracht is het ontwikkelen van een dynamische socket-library (c#) en van de servermonitoring tool (c++, Linux + Solaris) De studenten hebben veel inbreng in het uitvoeren van deze basisopdracht Daarnaast is er nog ruimte voor eigen uitbreidingen De stagair zal zowel met Vlaamse als buitenlandse bedrijven in contact komen In samenwerking met: HOGESCHOOL WEST-VLAANDEREN DEPARTEMENT PIH Graaf Karel de Goedelaan Kortrijk Externe stagebegeleider: Kets Brecht Stagecoach PIH: De Gelas Johan

10 Projectfiche Projectfiche Stage Multimedia & Communicatietechnologie Projectmedewerker(s): ProjectID : 704 Naam: Voornaam: Optie Vandroemme Dieter OA Naam: Voornaam: Optie: Cavaliere Leandro NW 2 Begeleiders: Naam bedrijf : Hogeschool West-Vlaanderen Begeleider van het bedrijf : Naam: Kets Voornaam: Brecht Coach van MCT: Naam: De Gelas Voornaam: Johan 3 Projecttitel: Sizing Servers: APUS stress-testing en monitoring tool 4 Projectopgave: Twee studenten werken verder aan de ontwikkeling van APUS een stress-testing tool, uniek in de IT-wereld, die ontwikkeld werd om een antwoord te bieden aan de tekortkomingen van de industriële benchmarks De hoofdopdracht is het ontwikkelen van een dynami 5 Input: Apus Stress Tool: De student werkt verder op de bestaande architectuur Server Monitor: De student begint van niets, en heeft enkel als referentie een (basis) monitor op Windows 6 Output: Apus Stress Tool: Een socket library, samen met een addin-based stresstest en een omgeving die de gegevens van de server monitor kan visualiseren Server Monitor: Een server monitor af, geschreven in c++, die cpu, geheugengebruik, hd-gebruik en stroomverbruik

11 7 Criteria om succes te meten: De output 8 Wat het project niet realiseert: 10 Planning: ID Milestones Verantwoordelijk Timing (einddatum) 1 Af hebben van de conncurrent rate benchmark Dieter 23/03/ De server monitor zowel de client als de stress test tool Dieter en Leandro 21/04/ Het af hebben van de socketlibrary Dieter en Leandro 15/06/ Handtekening: Projectmedewerker(s) : Naam: Vandroemme Dieter Naam: Cavaliere Leandro Datum: 22/03/2007 Datum: 22/03/2007 Handtekening: Handtekening: Projectbegeleider(s): Naam: Brecht Kets Naam: De Gelas Johan Datum: 22/03/2007 Datum: 22/03/2007 Handtekening: Handtekening:

12 12 Projectdefinitie APUS staat voor APplication Unique Stresstesting en is de officiële naam van het project Sheridan wat de codenaam is De bedoeling van dit project is dan ook niet veranderd Die is nog altijd, ik quoteer: Een nieuw softwareproject kan de systeembeheerder voor een groot vraagteken plaatsen: is de huidige beschikbare server krachtig genoeg om de nieuwe database software intensief te laten gebruiken? Indien een nieuwe server aangeschaft wordt, in welke hardwarecomponenten moet er extra geïnvesteerd worden om flessenhalzen te voorkomen? Wat als er in de toekomst veel meer of intensiever gebruikt gemaakt wordt van deze applicatie? De softwareontwikkelaar die een goede service wil leveren naar zijn klanten toe heeft soortgelijke vragen: hoe goed schaalt de ontwikkelde database applicatie op de aanwezige servers van de klant? Hoe kan hij of zij hard maken dat de software wel degelijk zal schalen met intensiever gebruik, meer gebruikers of een combinatie van beide? Leveren de aangeprezen optimalisaties in de nieuwste versie werkelijk betere prestaties bij intensief gebruik? De huidige benchmark tools zoals TPC 1 kunnen hierop geen antwoord bieden Omdat deze benchmarks ontworpen zijn om vooral de hardwarefabrikanten en database software vendors de kans te geven om hun product te onderscheiden van de competitie, heeft de gemiddelde systeemadministrator en softwareontwikkelaar geen boodschap aan deze benchmarks De testmethodes zijn complex, arbeidsintensief, duur en vereisen een heel netwerk van clients Zelfs al slaagt men erin om de benchmark succesvol uit te voeren, dan zijn de resultaten weinig relevant voor de eigen situatie: de database applicatie gebruikt in de benchmark, wijkt meestal sterk af van het eigen software project 1 Transaction Processing Performance Council (TPC) is een not-for-profit organisatie welke performance benchmarks uitvoert voor IT applicaties, zoals bijvoorbeeld databases Meer info op :

13 13 Figuur 2: Vergelijking TCP met Sheridan (APUS) Het PWO 1 project Sizing Servers wil nieuwe methodologieën en softwaretools (Sheridan) aanreiken die een antwoord bieden op bovenstaande vragen 1 Projectmatig Wetenschappelijk onderzoek

14 14 Figuur 3: Visie van Sheridan (APUS)

15 15 Inleiding Wat is benchmarken De term benchmarken kan voor allerhande dingen worden gebruikt, zo kan de efficiëntie van een productieomgeving ook gemeten worden En dit voorbeeld geeft dan ook meteen de algemene omschrijving van benchmarken terug, namelijk: Kijken hoe efficiënt iets gebeurt Specifiek voor ons is benchmarken het testen van allerhande servers Het unieke aan dit project is dat vanuit één applicatie verschillende gebruikers kunnen worden gesimuleerd Niet dat het al niet mogelijk was om een server te testen, maar dit kan enkel via bijvoorbeeld het al eerder, in de projectdefinitie, vermelde TCP Zoals eerder gezegd is bouwt deze stage verder op het project Sheridan van vorig jaar, officieel benoemd tot APUS Dan werd er immers veel onderzoek gedaan naar verschillende databaseservers zoals Sqlserver, MySql, en nagedacht over hoe het programma er moest uitzien Het geheel oogde al zeer professioneel en één specifieke benchmark is uit de bus gekomen, namelijk een type waarbij zoveel mogelijk queries in een zo kort mogelijke tijd worden afgevuurd Deze kreeg de toepasselijke naam As Soon As Possible Dit jaar werden er enkele grote en minder grote problemen in dit systeem opgelost en werd er een nieuw type benchmark toegevoegd Ook werd het mogelijk om webservers en socketservers te testen Soorten benchmarks De twee beschikbare soorten benchmarks zijn As Soon As Possible (ASAP) en Continuous Rate (CR) De beide types zijn bruikbaar om zowel databaseservers, webservers en socketservers te testen As Soon As Possible benchmarking betekent dat er in een zo n kort mogelijke tijd zoveel mogelijk requests 1 naar de server worden gestuurd 1 Een instructie naar de server toe, in het geval van databases is dit een query

16 16 Continuous Rate Benchmarken verschilt er dan in dat er een wachttijd tussen de verschillende requests kan ingesteld worden om zo gebruikers realistisch te simuleren Bijvoorbeeld: Gemiddeld om de twee seconden klikt een gebruiker op een link in een website Benchmarken in combinatie met monitoren U kunt indien u dit wenst een server monitoren, het toestel volgen op CPU gebruik, harde schijf gebruik, en zelfs stroomverbruik Hiervoor werd een tool ontwikkeld, APUS Server Monitoring Tool (SMT), voor zowel het Windows als het Linux platform Deze tool kan lokaal op het toestel gebruikt worden om alles in de gaten te houden en kan deze info dan wegschrijven naar een tekstbestandje Vanuit APUS zelf kan er ook een connectie naar APUS SMT worden gelegd om zo over het netwerk de server te kunnen monitoren Hierbij kunnen allerhande instellingen worden gemaakt zoals het loggen op de server aan of uit zetten Dit kan zonder een server te benchen, maar kan ook samen met een benchmark starten waarbij resultaten per concurrency 1 grafisch worden weergegeven in lijsten en grafieken In het hoofdstuk Monitoring komt dit alles uitgebreid aan bod Resultaten De resultaten van een benchmark zijn natuurlijk zeer belangrijk Hieruit kan dan uitgemaakt worden waar de eventuele bottleneck is Als ze tegenvallen kan dit door iets kleins zijn als iets dat niet of verkeerd ingesteld is De monitorresultaten zijn ook belangrijk, zo kunt u bijvoorbeeld zien hoeveel stroom een server verbruikt onder maximale belasting en kan bepaald worden of er eventueel een ander toestel in de plaats moet komen Build environement Taal APUS zelf is geschreven in C# omdat deze populair is in de industrie en in MCT programmeren ook wordt gegeven in deze taal 1 Aantal simultane gebruikers

17 17 Wat het voor de opvolgers een stuk gemakkelijker maakt om de code te interpreteren Voor APUS SMT werd C++ gekozen omdat deze taal zeer performant is en die zowel op Linux als Windows mits wat aanpassingen zonder problemen kan uitvoeren Ontwikkelingspakket APUS en APUS SMT Windows zijn ontwikkeld in Microsoft Visual Studio 2005 omdat die al vertrouwd is van de lessen programmeren en webtechnologie en naar onze bevindingen het beste wat er op de markt te vinden is APUS SMT Linux werd ontwikkeld in NetBeans wat ook wel een vrij goede en gratis tool is Het is wel een stuk trager dan Visual Studio, omdat deze in Java geschreven is, en de mogelijkheden iets beperkter zijn Zo zijn er bijvoorbeeld nergens watches 1 te bekennen wat handig is bij het debuggen SharpDevelop add-in tree architecture Inleiding Uit het standpunt dat uitbreidbaarheid van APUS zo eenvoudig mogelijk moest zijn werd deze gebouwd steunend op het add-in tree model van SharpDevelop Het best kunt u dit vergelijken met een geavanceerd plug-in systeem In ieder project dient er een addin bestandje geplaatst te worden, deze is niets meer dan een Xml bestand ApusCore, die een aangepaste versie van de SharpDevelop Core Module is (http:icsharpcodenet/opensource/sd/defaultaspx), zorgt voor het interpreteren van deze bestandjes bij het starten van APUS In APUS is het mogelijk om add-ins in- en uit te schakelen, samen met afhankelijke add-ins, indien deze niet essentieel zijn 1 Een weergave waarmee kan gekeken worden welke data in een bepaald object zit

18 18 Figuur 4: APUS Add-in Manager Add-in bestanden Deze manier van werken zal nu vrij bondig uitgelegd worden, meer informatie kunt u vinden op <AddIn author = "<<Auteurs, gescheiden door komma 's>>" copyright = "<<>>" description = "<<>>"> <Manifest> <Identity name = "<<Alias van de assembly>>" version = "<<>>" /> <Dependency addin = "<<Van welke add-in deze afhankelijk is, bijvoorbeeld ApusCore>>" version = "<<>>" /> </Manifest> <Runtime> <Import assembly = "<<>>" /> </Runtime> </AddIn> AddIn coreaddin Het coreaddin attribuut wordt gebruikt om aan te duiden dat een module absoluut noodzakelijk is voor de correcte werking van het programma

19 19 Indien deze eigenschap op false staat zal de module nog altijd ingeladen worden,maar beschikt de gebruiker om de functionaliteit uit te schakelen via de Add-in manager Manifest Het manifest element is verplicht in elk add-in bestand en is verantwoordelijk voor het identificeren van de huidige add-in Identity Exact één element van dit type moet toegevoegd worden om een add-in correct te benoemen De name eigenschap is verantwoordelijk voor de interne naamgeving van de module en de version eigenschap zal de versie van de module aanduiden name Toegelaten waarden: a-z A-Z 0-9 version In het formaat MajorMinorBuildRevision Dependency Een dependency element is optioneel en kan een oneindig aantal keren voorkomen in het manifest element addin De interne naam van de add-in die vereist is voor de correcte werking van deze module version Een bepaalde versie of een range van versies die compatibel zijn met de huidige versie van deze add-in De version eigenschap is optioneel Bijvoorbeeld of 1300 Versie 20 komt overeen met alle versies die beginnen met 20 (20**) Runtime Het runtime element is verplicht in elk add-in bestand en is verantwoordelijk voor het koppelen van NET assemblies aan de add-in bestanden Import Dit element zorgt ervoor dat een bepaalde NET assembly wordt ingeladen wanneer deze add-in wordt aangesproken assembly Een relatieve of absolute padverwijzing naar een NET assembly (dll of exe)

20 20 Probleemstelling Inleiding In het project waren nog enkele problemen aanwezig die er vorig jaar niet uitgehaald zijn Hiervan zullen de grootste omschreven worden: degene die te maken hebben met het connectiebeheer Connectieprobleem Bij het hebben van afhankelijkheden 1 in een actie 2 kon het gebeuren dat het programma crashte met de reden dat er te weinig beschikbare connecties naar de server waren Initieel werd deze bepaald door het dubbele -als pseudo oplossing- van de maximum concurrency Een voorbeeld om dit te verduidelijken: ACTIE1 QUERY1 --> openen connectie query1 Bij resultaat QUERY2 --> openen en sluiten connectie query2 QUERY3 --> openen en sluiten connectie query3 Bij resultaat QUERY4 --> openen en sluiten connectie query4 --> sluiten connectie query1 Hier ziet u dat er dus drie connecties nodig zijn voor deze actie in plaats van twee, aangereikt in de oplossing van vorig jaar Oplossing Connectie aantal correct bepalen Indien er met een datatable (buffered) gewerkt wordt, wordt sowieso al intern de connectie vrijgegeven aan de connectionpool voor hij zijn resultaat zal beginnen lezen, want bij een datatable werkt dit als volgt: MySqlDataAdapter adapter = new MySqlDataAdapter (commandcommand as MySqlCommand); DataSet set = new DataSet (); adapterfill (set); 1 Met afhankelijkheden wordt bedoeld dat voor ieder terugkerend resultaat van een query een andere wordt uitgevoerd, die andere is dan de afhankelijke 2 Een actie is de term die gebruikt wordt waarmee een groep queries, URLs, bedoeld wordt afgevuurd naar de server

21 21 adapterdispose (); Bij een datareader (streaming) is dit niet het geval, bij deze is het vereist om een open connectie te blijven hebben tot het einde van de actie De oplossing nu bestaat er uit dat er per actie per afhankelijkheidsniveau gecontroleerd wordt of er gebruik gemaakt wordt van een datatable of datareader en wordt er per niveau maximaal één extra connectie toegewezen Het maximum van toegewezen connecties van alle acties wordt dan uiteindelijk gebruikt om de grootte van de connectionpool te bepalen, grootte = maximale concurrency * maximaal toegewezen connecties voor een actie Code Dit is een summier overzicht hoe het intern in zijn werk gaat ---> Bij het genereren van de code public AGMethod Convert (string name, OMCompilationUnit cu) ---> Kijken of er een datareader of datatable wordt gebruikt voor welke query en dit bijhouden CheckExecutionTypes(cuStatements, 0, 0); private void CheckExecutionTypes (List<ApusQueryScriptDOMIStatement> statements, int level, int parentindex) Store the variablename of the statement string declarestatementname = ""; Store the index of the statement int index = 0; ---> Een object die de index van de eventuele parent bijhoud, de eigen index, hoe diep die in de structuur zit (niveau) en of er een datatable of een datareader wordt gebruikt (respectievelijk streaming of buffered) StatementIsStreamingOrBuffered streamingorbuffered = new StatementIsStreamingOrBuffered (); The list of the next set of statements List<ApusQueryScriptDOMIStatement> substatements = new List<ApusQueryScriptDOMIStatement> (); foreach (OMIStatement statement in statements) Check if it is a declarestatement to store it if the type is streaming if (statement is OMDeclareStatement)

22 22 OMDeclareStatement declarestatement = (statement as OMDeclareStatement); Store the name of the declare statement if (declarestatementvariabletype == OMVarTypeQuery) declarestatementname = declarestatementvariablename; else if (statement is OMAssignStatement) OMAssignStatement assignstatement = statement as OMAssignStatement; Check the execute expression to know if it is streaming or buffered OMIExpression expr = (statement as OMAssignStatement)ValueExpression; if (expr is OMExecuteExpression) streamingorbufferedindex = index; index++; streamingorbufferedparentindex = parentindex; streamingorbufferedlevel = level; if ((expr as OMExecuteExpression)Type == ApusQueryScriptDOMExecuteTypeStreaming) streamingorbufferedstreaming = true; else streamingorbufferedstreaming = false; _statementisstreamingorbufferedadd (declarestatementname, streamingorbuffered); else if (statement is OMForEachStatement) OMForEachStatement foreachstatement = statement as OMForEachStatement; Check the substatements also and increase the level foreach (OMIStatement substatement in foreachstatementstatements) substatementsadd (substatement); int passedlevel = level + 1; CheckExecutionTypes (substatements, passedlevel, streamingorbufferedindex); Een wachttijd bij het vragen van een nieuwe connectie De verschillende threads 1 zijn niet altijd op hetzelfde ogenblik klaar met het vrijgeven van een connectie aangezien de ene query langer kan duren dan de andere Hiervoor is een simpele work-a-round bedacht waarbij het principe is dat u een wachttijd kunt opgeven bij het vragen van een nieuwe connectie public IPooledConnection RequestConnection (int timeout) 1 Taken die tegelijkertijd worden uitgevoerd

23 23 IPooledConnection connection = RequestConnection (); if (connection == null) ---> Er wordt een partiële timeout bepaald, indien hij geen connectie krijgt wacht ie gedurende die tijd Deze wachttijd bepaald dan ook hoeveel keer er opnieuw geprobeerd wordt om een connectie te verkrijgen int partialtimeout = 5; if (timeout < partialtimeout) partialtimeout = timeout; int tries = (int) MathRound ((double) (timeout / partialtimeout), 0, MidpointRoundingAwayFromZero); int trycount = 0; while (connection == null) SystemThreadingThreadSleep (partialtimeout); ---> Als er geen connectie beschikbaar is, krijgt die de waarde null connection = RequestConnection (); if (trycount++ == tries) break; return connection; Andere problemen De connectionpooling zelf gebeurt met behulp van een wachtrij, als er een nieuwe connectie gemaakt wordt verdwijnt die uit die wachtrij, omgekeerd wordt die er weer aan toegevoegd Dit werkte naar behoren tot het aantal simultane threads te hoog werd die deze wachtrij aanspraken Bijgevolg werd er dan een interne fout gegenereerd waardoor altijd een nul werd toegevoegd in plaats van het correcte ID Om dit op te lossen werd de code die toevoegt of verwijdert aan de wachtrij threadsafe gemaakt, wat betekent dat geen andere thread de wachtrij mag benaderen als die al niet aangesproken wordt

24 24 As Soon As Possible benchmarken Inleiding Zoals in de inleiding van dit document vermeld werd is dit de originele benchmark Deze werkte al, mits enkele problemen, voor databaseservers en nu is dezelfde test ook al aanwezig voor webservers en socketservers Databaseservers Deze is vrij simpel in omgang, u voegt een nieuw ASAP database benchmark project toe aan een nieuwe of bestaande solution, daar voegt u een querystructuur aan toe waar alle acties in terecht komen Deze acties zijn gemakkelijk te importeren vanuit een log van een databaseserver, dit kan een tekst bestand zijn maar ook bijvoorbeeld een Xml bestand Figuur 5: Een databaseserver log importeren stap één

25 25 Figuur 6: Een databaseserver log importeren stap twee Bij de volgende stap kunt u dan de structuur verder bepalen, zo kunt u queries afhankelijk van elkaar maken en/of groeperen in acties

26 26 Figuur 7: De structuur bepalen Bij het klikken op Ok worden de queries dan geïmporteerd Niet vergeten een connectie naar de server toe te voegen

27 27 Figuur 8: Het toevoegen van een nieuwe connectie Dan is het nog een kwestie van de juiste instellingen te maken

28 28 Figuur 9: De juiste instellingen maken en uit te voeren Figuur 10: De benchmark starten waarna de code gecompileerd wordt Nu is het enkel kwestie van op de Play knop te klikken en te wachten op resultaat Ook is het mogelijk om een Performance Monitor te selecteren, deze wordt nader besproken in het hoofdstuk Monitoring

29 29 Figuur 11: Het resultaat bij uitvoeren Code Codegeneratie De code die gegenereerd wordt werd al deels besproken in het hoofdstuk Probleemstelling Deze wordt nu in grote lijnen uitgelegd Om te compileren wordt de statische klasse 'QueryScriptCompilerWrapper' aangesproken, die verwijst dan door naar de klasse die de voor deze benchmark juiste code zal genereren op basis van argument 'benchmarktype' Het argument 'structure' is dan de structuur die u zelf gemaakt hebt bij het importeren van een databaseserver log public static CompilerResult Compile (Structure structure, BenchmarkType benchmarktype) if (benchmarktype == BenchmarkTypeAsSoonAsPossible) return ASAPQueryScriptCompilerCompile (structure); else if (benchmarktype == BenchmarkTypeContinuousRate) return CRQueryScriptCompilerCompile (structure); return null;

30 30 Vervolgens wordt in dit geval de 'ASAPQueryScriptCompiler' klasse gebruikt Hier wordt voor iedere actie een functie aangemaakt Ieder van deze functies is aan te spreken via een delegate 1 public static CompilerResult Compile (Structure structure) foreach (Function function in structurefunctions) string conformedmethodname = ConformToCSharpName (functionname); AGMethod method = CompileFunction (conformedmethodname, function, pool); if (method!= null) clsmethodsadd (method); else LoggingServiceErrorFormatted (typeof (ASAPQueryScriptCompiler), "Error compiling function '0'", functionname); return result; Benchmarken zelf De delegatelijst van de gegenereerd assembly wordt per concurrency, per precision 2 en per run 3 door elkaar gegooid en de items in de lijst worden aangesproken op volgende manier: private object ExecuteThreaded (object state) BenchmarkFunctionHandler function = state as BenchmarkFunctionHandler; string msg; long time; uint itemsprocessed; string functionname; 1 Een verwijzing naar een functie 2 Het aantal keer dat de benchmark wordt uitgevoerd om pieken eruit te halen 3 Het aantal requests / de concurrency, bijvoorbeeld: als hij bezig is aan concurrency vijf en het aantal requests is honderd dan is de run twintig

31 31 uint numerrors = 0; BenchmarkResult result = functioninvoke (out msg, out time, out itemsprocessed, out functionname, out numerrors); add time to customtime lock (_lock) _customtime += time; _itemsprocessed += itemsprocessed; return result; Webservers U voegt een nieuw ASAP web http benchmark project toe aan een nieuwe of bestaande solution, daar voegt u een web http structuur aan toe waar alle acties in terecht komen Deze acties zijn gemakkelijk te importeren vanuit een log van een webserver Figuur 12: Een webserver log importeren stap één

32 32 Figuur 13: Een webserver log importeren stap twee Daarna kunt u de structuur bepalen, merk op dat in tegenstelling tot de querystructures u hier niet items van elkaar afhankelijk kunt maken Het is immers ook niet de bedoeling dat als een URL wordt afgevuurd er vervolgens als antwoord erop een andere wordt afgevuurd

33 33 Figuur 14: De structuur bepalen Niet vergeten een connectie toe te voegen Figuur 15: Het toevoegen van een nieuwe connectie De juiste instellingen maken

34 34 Figuur 16: De juiste instellingen maken en uit te voeren Figuur 17: De benchmark starten waarna de code gecompileerd wordt Nu is het enkel kwestie van op de Play knop te klikken en te wachten op resultaat

35 35 Figuur 18: Het resultaat bij uitvoeren Code Codegeneratie Om te compileren wordt de statische klasse ConverterWrapper' aangesproken, die verwijst dan door naar de klasse die de voor deze benchmark juiste code zal genereren op basis van argument 'benchmarktype' Het argument 'structure' is dan de structuur die u zelf gemaakt hebt bij het importeren van een webserver log public static CompilerResult Compile (WebHTTPStructureGroup structure, ServerConnection serverconnection, BenchmarkType benchmarktype) if (benchmarktype == BenchmarkTypeAsSoonAsPossible) return ASAPConverterCompile (structure, serverconnection); else if (benchmarktype == BenchmarkTypeContinuousRate) return CRConverterCompile (structure, serverconnection); return null; Vervolgens wordt in dit geval de 'ASAPConverter' klasse gebruikt Hier wordt voor iedere actie een functie aangemaakt

36 36 public static CompilerResult Compile (WebHTTPStructureGroup structure, ServerConnection serverconnection) foreach (WebHTTPStructure function in structurefunctions) string conformedmethodname = ConformToCSharpName (functionname); AGMethod method = CompileFunction (conformedmethodname, function, serverconnection); if (method!= null) clsmethodsadd (method); ConverterWrapperFireFunctionCompiled (new FunctionCompileEventArgs (function, "", true)); else LoggingServiceErrorFormatted (typeof (ASAPConverter), "Error compiling function '0'", functionname); ConverterWrapperFireFunctionCompiled (new FunctionCompileEventArgs (function, "", false)); return result; Benchmarken zelf Het benchmarken zelf gebeurt intern op volgende manier private object ExecuteThreaded (object state) BenchmarkFunctionHandler function = state as BenchmarkFunctionHandler; string msg; long time; uint urlsprocessed; string functionname; uint numerrors = 0; BenchmarkResult result = functioninvoke (out msg, out time, out urlsprocessed, out functionname, out numerrors); add time to customtime lock (_lock) _customtime += time; _urlsprocessed += urlsprocessed; return result; Socketservers Inleiding Een databaseserver of webserver zijn in wezen ook socketservers, maar deze hebben een vastomlijnd protocol met implementatie in verschillende data access libraries zoals bijvoorbeeld ADONET Voor andere socketservers, bijvoorbeeld een MSN server, bestaat het protocol intern wel maar de implementatie is strikt in de client en de server

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

Nadere informatie

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: Eenvoudig voorbeeld. Er wordt verondersteld dat er met VS 2008 EXPRESS gewerkt wordt. Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: (Sommige schermafdrukken zijn afkomstig

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

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

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

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet. Hoofdstuk 2 Een ASP.NET applicatie met ADO.NET opzetten In dit hoofdstuk ga je een eenvoudige website opzetten, waarbij je een aantal gegevens uit een database ophaalt. Je moet je kennis van ADO.NET dus

Nadere informatie

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Om eens wat ervaring op te doen met de Windows Azure Marketplace heb ik een publieke en gratis databron gekozen

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

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008 judge Teamhandleiding DOMjudge (versie..0mukp) 31 mei 008 /\ DOM DOM judge Inhoudsopgave 1 Inleiding Samenvatting.1 Inlezen en wegschrijven............................... Insturen van oplossingen...............................3

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

DOMjudge teamhandleiding

DOMjudge teamhandleiding judge DOMjudge teamhandleiding Samenvatting /\ DOM DOM judge Hieronder staat de belangrijkste informatie kort samengevat. Dit is bedoeld om snel aan de slag te kunnen. We raden echter ten zeerste aan dat

Nadere informatie

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

Maak een pivot uit een Generic.List

Maak een pivot uit een Generic.List Maak een pivot uit een Generic.List Introductie in extensions, reflection en code generation Nivo: 400 Introductie In bepaalde gevallen komt het voor dat je een Generic.List van een specifieke class hebt,

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

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

Versturen van email vanuit een Delphi VCL toepassing

Versturen van email vanuit een Delphi VCL toepassing Versturen van email vanuit een Delphi VCL toepassing Voor Delphi bestaan uiteraard verschillende libraries om emails te versturen, maar in dit voorbeeld wordt een C# Dotnet library gebruikt en aangesproken

Nadere informatie

File Uploads met standaard ASP.NET

File Uploads met standaard ASP.NET File Uploads met standaard ASP.NET In deze tutorial gaan we een aspx pagina maken (met codebehind), waarmee je een bestand kan uploaden naar de webserver. Noot: de hier beschreven code gaat niet in op

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

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Installatiehandleiding. ixperion Word Import. voor Windows 2008 R2 64bit. Smartsite ixperion WordImport Implementatie. Copyright 2010-2011

Installatiehandleiding. ixperion Word Import. voor Windows 2008 R2 64bit. Smartsite ixperion WordImport Implementatie. Copyright 2010-2011 Installatiehandleiding ixperion Word Import voor Windows 2008 R2 64bit Copyright 2010-2011 Versie 1.0.0 Seneca 2011 1 Auteur: ing. Silvio Bosch Versiebeheer: Versie Status Datum Omschrijving en wijzigingen

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

Stappenplannen MailPlus SOAP API

Stappenplannen MailPlus SOAP API Stappenplannen MailPlus SOAP API Stappenplannen MailPlus SOAP API oktober 2009 Introductie Dit document bevat stappenplannen welke u als technische gebruiker van MailPlus op weg kunnen helpen met de koppeling

Nadere informatie

Micro Computer Service Center. Installatie

Micro Computer Service Center. Installatie Micro Computer Service Center Installatie MCSC BDR versie 2.7 van 01/01/2013 2013 Contents I. Uit te voeren bij MCSC voor vertrek naar de klant... 3 1. Bdr opzetten... 3 2. Bdr aanmaken in McscCom... 3

Nadere informatie

Les 15 : updaten van gegevens in de database (deel2).

Les 15 : updaten van gegevens in de database (deel2). Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken

Nadere informatie

TECHNICAL DESIGN DOCUMENT

TECHNICAL DESIGN DOCUMENT TECHNICAL DESIGN DOCUMENT BACHELORPROJECT IN3405 John Ciocoiu 1358227 Elwin Dokter 1275909 TECHNISCHE UNIVERSITEIT DELFT FACULTEIT EWI WOENSDAG 28 APRIL 2010 VERSIE 1 COMMISSIE: Ing. D.J. van Roest (opdrachtgever)

Nadere informatie

InterSmart: A Twitter based quiz application for PowerPoint audiences

InterSmart: A Twitter based quiz application for PowerPoint audiences Scriptie ingediend tot het behalen van de graad van PROFESSIONELE BACHELOR IN DE ELEKTRONICA-ICT InterSmart: A Twitter based quiz application for PowerPoint audiences David De Beuckelaer bachelor elektronica-ict

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

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Dit kan gebruikt worden in zowel een ASP.NET web applicatie als een desktop applicatie.

Dit kan gebruikt worden in zowel een ASP.NET web applicatie als een desktop applicatie. Introductie Dit artikel laat zien hoe je een Image in een C# applicatie kan opslaan in een database en het kan ophalen uit de database om het te laten zien. Voor de database gebruiken we MS SQL maar voor

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

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

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes

Nadere informatie

HANDLEIDING DMS Plugin Installatie, configuratie & werking

HANDLEIDING DMS Plugin Installatie, configuratie & werking HANDLEIDING DMS Plugin Installatie, configuratie & werking Dit document is de handleiding voor de installatie, configuratie en werking van de DMS Plugin. Versie 1-12/09/2005 Inhoudstafel 1 Installatie...

Nadere informatie

Hands-on TS adapter IE advanced

Hands-on TS adapter IE advanced Hands-on TS adapter IE advanced Tijdens deze hands-on opdracht wordt een Teleservice verbinding opgebouwd naar de S700 en KTP700 Basic PN. De basis instelling zoals het toekennen van een IP-adres en het

Nadere informatie

Automatische Installatie op IIS server

Automatische Installatie op IIS server Automatische Installatie op IIS server In de map Web staat het installatiebestand : Je kan de install starten door het aanklikken van het msi bestand vanuit Verkenner. Na installatie is steeds een manuele

Nadere informatie

Webplatform & Klantmanagement. 112 Applicaties. Met Microsoft technologie. Robert Kieboom Technisch Directeur Robert@citygis.nl CityGIS B.V.

Webplatform & Klantmanagement. 112 Applicaties. Met Microsoft technologie. Robert Kieboom Technisch Directeur Robert@citygis.nl CityGIS B.V. Webplatform & Klantmanagement 112 Applicaties Met Microsoft technologie Robert Kieboom Technisch Directeur Robert@citygis.nl CityGIS B.V. Agenda Onderwerpen: Beschrijving van het probleemdomein Mobiele

Nadere informatie

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 1 Inhoudsopgave INHOUDSOPGAVE 2 1 VERBINDING MET DE API 4 1.1 QUICK START 4 2 SMS PARAMETERS 5 2.1 VERPLICHTE PARAMETERS 6

Nadere informatie

KDE afstandsbediening-instellingen. Michael Zanetti Vertaler/Nalezer: Tom Albers

KDE afstandsbediening-instellingen. Michael Zanetti Vertaler/Nalezer: Tom Albers Michael Zanetti Vertaler/Nalezer: Tom Albers 2 Inhoudsopgave 1 Inleiding 5 1.1 Benodigdheden....................................... 5 2 Gebruik 6 2.1 Afstandsbedieningen en modi...............................

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

Fun met webparts in ASP.Net

Fun met webparts in ASP.Net Fun met webparts in ASP.Net Deel 2:User controls en Webparts door Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Inhoudsopgave FUN MET WEBPARTS IN ASP.NET... 1 DEEL 2:USER CONTROLS EN WEBPARTS...

Nadere informatie

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM Tips & Tricks Eigen Widgets in CRM Eigen Widgets in CRM Introductie De WebUI van CRM 7.0 maakt het mogelijk om je eigen widgets te maken en deze in je eigen view te gebruiken. Dat kan door gebruik te maken

Nadere informatie

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Werkomgeving. Android Studio. Android - werkomgeving 1/6 Android - werkomgeving 1/6 Werkomgeving Android Studio Installatie Ga naar de volgende URL: http://developer.android.com/sdk/index.html Klik op de knop "Download Android Studio for Windows" om het programma

Nadere informatie

Implementatie AssurePay ASP.NET. ideal

Implementatie AssurePay ASP.NET. ideal Implementatie AssurePay ASP.NET ideal Implementatie AssurePay ASP.NET 2 van 11 Inhoudsopgave Microsoft ASP.NET... 3 Classic ASP... 9 Implementatie AssurePay ASP.NET 3 van 11 Microsoft ASP.NET Implementeren

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

Instellingen Microsoft ISA server

Instellingen Microsoft ISA server Instellingen Microsoft ISA server Om Teleblik media door de Microsoft ISA server te kunnen afspelen is er een speciale regel nodig, die dit verkeer expliciet toestaat. Het verdient aanbeveling om deze

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

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

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 1 Inhoud Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 2 Geluidsbronnen simulator, deel 2 Inleiding De weergave versnellen

Nadere informatie

Multi user Setup. Firebird database op een windows (server)

Multi user Setup. Firebird database op een windows (server) Multi user Setup Firebird database op een windows (server) Inhoudsopgave osfinancials multi user setup...3 Installeeren van de firebird database...3 Testing van de connectie met FlameRobin...5 Instellen

Nadere informatie

Testrapport Kiezen op Afstand Inhoudelijke Stresstest

Testrapport Kiezen op Afstand Inhoudelijke Stresstest Testrapport Inhoudelijke Stresstest Dit document heeft 10 pagina 's Testrapport 1nhoudelijke Stresstest vo.21 Document historie Versie Datum Bijzonderheden Autorisatie 0.1 20-09-2006 Opzet 0.2 22-09-2006

Nadere informatie

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale

Nadere informatie

Handleiding voor het installeren van VBA scripts in Outlook

Handleiding voor het installeren van VBA scripts in Outlook Handleiding voor het installeren van VBA scripts in Outlook Brondocument E:\OutLook\InstallerenVBAScriptOutlook.odt Versiebeheer Versie Datum Uitleg 1.0v 21-03-12 1e versie na draaien prototype klant 1.1v

Nadere informatie

Kennissessie INSPIRE. Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum.

Kennissessie INSPIRE. Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum. Kennissessie Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum Thijs Brentjens Inhoud Download Services Pre-defined datasets via Atom feeds Pre-defined

Nadere informatie

MobiDM App Handleiding voor Windows Mobile Standard en Pro

MobiDM App Handleiding voor Windows Mobile Standard en Pro MobiDM App Handleiding voor Windows Mobile Standard en Pro Deze handleiding beschrijft de installatie en gebruik van de MobiDM App voor Windows Mobile Version: x.x Pagina 1 Index 1. WELKOM IN MOBIDM...

Nadere informatie

JSF webapplicatie performance

JSF webapplicatie performance JSF webapplicatie performance Kees Broenink (JSF expert), 27 januari 2009 JSF webapplicatie performance... 1 Applicatieserver in productie... 2 HotSpot... 2 Geheugen... 2 Webapplicatie performance analyse...

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Importeren van grids uit de WADI database

Importeren van grids uit de WADI database Importeren van grids uit de WADI database Ministerie van Verkeer en Waterstaat Directoraat-Generaal Rijkswaterstaat Rijksinstituut voor Kust en Zee/RIKZ S O F T W A R E S O L U T I O N S Versies: Versie

Nadere informatie

Gebruik van raadpleeg- en downloadservices in GIS desktop software

Gebruik van raadpleeg- en downloadservices in GIS desktop software Gebruik van raadpleeg- en downloadservices in GIS desktop software Inhoud ArcGIS... 2 Gebruik WMS in ArcGIS... 2 GetFeatureInfo request... 6 Gebruik WFS in ArcGIS... 7 WFS service toevoegen... 7 Enkel

Nadere informatie

Programmeerstructuren met App Inventor

Programmeerstructuren met App Inventor Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement

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

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

Nadere informatie

15 July 2014. Betaalopdrachten web applicatie beheerders handleiding

15 July 2014. Betaalopdrachten web applicatie beheerders handleiding Betaalopdrachten web applicatie beheerders 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

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

Naam: Sander van Schie Datum: 28-03-2014 Klas: SBICO-IB2 Doel: Uitleg Toegang tot vcloud Doelgroep: Nieuwe cursisten Versie: 1.0.0

Naam: Sander van Schie Datum: 28-03-2014 Klas: SBICO-IB2 Doel: Uitleg Toegang tot vcloud Doelgroep: Nieuwe cursisten Versie: 1.0.0 Naam: Sander van Schie Datum: 28-03-2014 Klas: SBICO-IB2 Doel: Uitleg Toegang tot vcloud Doelgroep: Nieuwe cursisten Versie: 1.0.0 1 Inhoudsopgave Inleiding... 3 Stap 1: Inloggegevens en wachtwoord...

Nadere informatie

Standard Parts Installatie Solid Edge ST3

Standard Parts Installatie Solid Edge ST3 Hamersveldseweg 65-1b 3833 GL LEUSDEN 033-457 33 22 033-457 33 25 info@caap.nl www.caap.nl Bank (Rabo): 10.54.52.173 KvK Utrecht: 32075127 BTW: 8081.46.543.B.01 Standard Parts Installatie Solid Edge ST3

Nadere informatie

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt. Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl info@darwin-it.nl KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren

Nadere informatie

BSCW-WebDAV Handleiding

BSCW-WebDAV Handleiding BSCW-WebDAV Handleiding Strategische informatievoorziening Februari 2005 versie 2 Gebruik van deze handleiding Deze handleiding is bedoeld om medewerkers en studenten te ondersteunen bij het gebruik van

Nadere informatie

Snelle installatiegids voor Symbian

Snelle installatiegids voor Symbian Snelle installatiegids voor Symbian Versie 1.0 Inhoudsopgave 1. WELKOM BIJ MOBIDM... 2 2. INSTALLATIE VAN DE AFARIA VOOR SYMBIAN... 3 2.1. SOFTWARE INSTALLEREN... 3 3. BEVEILIGING... 6 4. NIEUWE APPLICATIES...

Nadere informatie

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10 CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel

Nadere informatie

Werking van de Office Connector, en het oplossen van fouten.

Werking van de Office Connector, en het oplossen van fouten. Werking van de Office Connector, en het oplossen van fouten. De Office Connector zorgt ervoor dat de Microsoft Officeomgeving gebruikt kan worden als ontwerp en genereeromgeving voor documenten waarbij

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

Een eenvoudige webserver maken in Lazarus

Een eenvoudige webserver maken in Lazarus Een eenvoudige webserver maken in Lazarus Michaël Van Canneyt 2 december 2011 Samenvatting Free Pascal - en dus ook Lazarus - kan meerdere TCP/IP componenten compileren: Synapse, Indy en lnet. Free Pascal

Nadere informatie

The Nanny Personeel. Lokaal inloggen

The Nanny Personeel. Lokaal inloggen The Nanny Personeel Lokaal inloggen Inleiding Binnen uw organisatie wordt gebruik gemaakt van The Nanny Personeel. The Nanny Personeel is een webapplicatie. Echter, in tegenstelling tot de meeste websites,

Nadere informatie

Aquo Domeintabellen Services (Aquo DS) Handleiding Webservice

Aquo Domeintabellen Services (Aquo DS) Handleiding Webservice Aquo Domeintabellen Services (Aquo DS) Handleiding Webservice handleiding voor de programmeur Auteur: Informatiehuis Water Documentbeheer Wijzigingshistorie Datum Versie Auteur Wijziging Aat van den Heuvel

Nadere informatie

VB Magazine Online 2004 01/08 1 / 6

VB Magazine Online 2004 01/08 1 / 6 Een van de krachtigste elementen binnen Visual Basic 2003 vind ik wel de mogelijkheid om objecten te overerven; ook wel inheritance genoemd. U kunt niet alleen uw eigen classes en business objecten overerven,

Nadere informatie

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van

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

Release notes Swing 5.0.6 & 5.0.7

Release notes Swing 5.0.6 & 5.0.7 Release notes Swing 5.0.6 & 5.0.7 Copyright 2016 Swing Jive Swing is een product van ABF Research Jive Full screen weergave Swing 5 beschikt nu ook over een full screen weergave. Deze is te activeren via

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

Security web services

Security web services Security web services Inleiding Tegenwoordig zijn er allerlei applicaties te benaderen via het internet. Voor bedrijven zorgt dit dat zei de klanten snel kunnen benaderen en aanpassingen voor iedereen

Nadere informatie

http://www.smsgatewayapi.com/gateway.php?username=username&password=password&message= MESSAGE&to=RECEIVER&sender=FROM

http://www.smsgatewayapi.com/gateway.php?username=username&password=password&message= MESSAGE&to=RECEIVER&sender=FROM SMS GATEWAY API Via onze HTTP gateway API kan u onze diensten op een eenvoudige manier integreren in uw bestaande software. Wij beschikken over een HTTP-interface die via een HTTP GET request uw sms berichten

Nadere informatie

Een eerste applicatie

Een eerste applicatie Een eerste applicatie 2.1 Inleiding Programmeren in Visual Basic.NET doe je niet alleen door regels met code te schrijven. Je begint met het ontwerpen van een venster in de design mode met allerlei controls,

Nadere informatie

Functionele beschrijving: scannen naar Exact Globe.

Functionele beschrijving: scannen naar Exact Globe. Functionele beschrijving: scannen naar Exact Globe. Algemeen Met de KYOCERA scannen naar Exact Globe beschikt u over een efficiënte oplossing om uw documenten te scannen naar Exact Globe. Met deze oplossing

Nadere informatie

Update Hoofdstuk 11 Beveiligde E mail. 11.4.1 Software installeren. gebaseerd op de volgende versie: Mozilla Thunderbird 3.1.10

Update Hoofdstuk 11 Beveiligde E mail. 11.4.1 Software installeren. gebaseerd op de volgende versie: Mozilla Thunderbird 3.1.10 Update Hoofdstuk 11 Beveiligde E mail gebaseerd op de volgende versie: Mozilla Thunderbird 3.1.10 11.4.1 Software installeren 5. Vervalt De Importeerassistent zit niet meer in de nieuwe versie 6. Vervalt

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

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

Absentie Presentie Server Migratie

Absentie Presentie Server Migratie Absentie Presentie Server Migratie Auteur A. Boerkamp Versie V1.2 Datum 11-08-2010 Status Voor Intern / Extern gebruik Pincash International, 3066GS Rotterdam, Anthonetta Kuijlstraat 43-45, 010-2868000

Nadere informatie

4 ASP.NET MVC. 4.1 Controllers

4 ASP.NET MVC. 4.1 Controllers 4 ASP.NET MVC ASP.NET is het.net raamwerk voor het bouwen van webapplicaties. De MVC variant hiervan is speciaal ontworpen voor het bouwen van dergelijke applicaties volgens het Model-View-Controller paradigma.

Nadere informatie

ASP.NET Test 2009-2010. Jan Van Ryckeghem

ASP.NET Test 2009-2010. Jan Van Ryckeghem ASP.NET Test 2009-2010 Jan Van Ryckeghem Inhoud Exceptionhandling H4... 3 Try Catch slide 25... 3 Error pagina slide 29... 3 Error.aspx... 3 Error.aspx.cs... 4 Web.config... 4 Logbestand aanmaken... 4

Nadere informatie

Introductie. NAV performance. Derk Jan Oelemans. Manager Development, BI en E-Business Qurius Business Solutions

Introductie. NAV performance. Derk Jan Oelemans. Manager Development, BI en E-Business Qurius Business Solutions Introductie Microsoft Global Partner of the Year 2007 NAV performance Manager, BI en E-Business Qurius Business Solutions Performance domeinen Functionele alternatieven Datamodel wijzigingen standaard

Nadere informatie

Cloud Computing. Definitie. Cloud Computing

Cloud Computing. Definitie. Cloud Computing Cloud Computing Definitie In de recente literatuur rond Cloud Computing zijn enorm veel definities te vinden die het begrip allemaal op een verschillende manier omschrijven. Door deze diversiteit zijn

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

MULTIFUNCTIONELE DIGITALE SYSTEMEN

MULTIFUNCTIONELE DIGITALE SYSTEMEN MULTIFUNCTIONELE DIGITALE SYSTEMEN Installatie e-bridge Re-Rite 7 Installatie Re-Rite 7 Set-up starten Start de set-up uit de installatie map De InstallShield Wizard wordt gestart De Visual C++ Runtime

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

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Handleiding Migratie. Bronboek Professional

Handleiding Migratie. Bronboek Professional Handleiding Migratie Bronboek Professional Laatste wijziging: 25/02/2015 Inhoudsopgave Controles en acties vooraf pag. 1 Installatie en configuratie Microsoft SQL met de Bronboek Helpdesk Tool pag. 3 Migratie

Nadere informatie

Gebruikershandleiding

Gebruikershandleiding Gebruikershandleiding versie: 18 maart 2013 Multrix Desktop Portal Toegang tot uw applicaties via het internet Handleiding Multrix Desktop Portal - NED Pagina 1 van 12 Inleiding Dit document biedt u een

Nadere informatie

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf

Nadere informatie

Veel gestelde vragen nieuwe webloginpagina

Veel gestelde vragen nieuwe webloginpagina Veel gestelde vragen nieuwe webloginpagina Op deze pagina treft u een aantal veel gestelde vragen aan over het opstarten van de nieuwe webloginpagina http://weblogin.tudelft.nl: 1. Ik krijg de melding

Nadere informatie