Eindverslag bachelorproject

Maat: px
Weergave met pagina beginnen:

Download "Eindverslag bachelorproject"

Transcriptie

1 Eindverslag bachelorproject Open source databaseondersteuning in TOPdesk Enterprise BSc-project (IN3700) bij TOPdesk Namen: Remco Luitwieler Tom Pesman Datum: 4 juli 2007 Bedrijf: TOP Informatie Systemen B.V. Universiteit: Technische Universiteit Delft Faculteit EWI Begeleiders: Roel Spilker (TOPdesk) Michel Fleur (TOPdesk) Hans-Gerhard Gross (TU Delft) Bernard Sodoyer (TU Delft)

2 Inhoudsopgave 1. Samenvatting Organisatie Inleiding Het bedrijf Structuur binnen TOPdesk Totstandkoming project De opdracht Documenten Inleiding V-model Plan van aanpak Requirements Analysis Document System Design Document Object Design Document Testplan Analyse TOPdesk Enterprise Templates Database constraints MySQL Matchen functionaliteiten Integratie Ontwerp DatabaseTool Templates ExceptionTransformer Testcases Implementatie DatabaseTool Klassen Testcases Templates Vereniging Datatypen Template invullen Testcases Problemen ExceptionTransformer Testcases Klasse Lege database aanmaken en bestaande database streamen Aanbevelingen Inleiding DatabaseTool Transform exceptions InsertCount Create database en add user in templates opnemen nl.ogdsoftware.database.statements Klassen strikter maken Batch AlterTable nl.ogdsoftware.database.definition nl.ogdsoftware.expression nl.ogdsoftware.tas.structure nl.ogdsoftware.database.exception.uniquekeyconstraintviolatedexception Buildsysteem Upgrade Apache Ant Upgrade JUnit Slagen build Builden en testen JUnit report Javadoc juni 07 Bachelorproject IN3700 1

3 7.9 Alternatieve database Indices Cleanstep MySQL FULL JOIN Conclusie Literatuurlijst Bijlage A: Opdracht TOPdesk Bijlage B: Mapping Topdesk typen naar DBMS typen juni 07 Bachelorproject IN3700 2

4 1. Samenvatting Gedurende het laatste kwartaal van de bachelorfase is deze afsluitende stage gepland hiervoor hebben wij het bedrijf TOPdesk gekozen, omdat de opdracht ons aanstond en het ons een leuk bedrijf leek. Dit bleek achteraf te kloppen en wij hebben deze stageperiode dan ook als prettig ervaren. Zoals we reeds bij software-engineering hadden geleerd in de kwartalen voorgaand aan het bachelorproject is het belangrijk eerst documenten te maken volgens een model. Eerst denken dan doen, wij hebben diverse documenten gemaakt om zo de code te leren kennen en een passende oplossing te bedenken. Tijdens de implementatiefase komen er toch vaak dingen boven water die men niet had voorzien, zo bleek het integreren van MySQL in de applicatie niet zo makkelijk. Dit kwam vooral door tekortkomingen van MySQL, gelukkig was onze opdracht niet alleen het integreren van MySQL, maar ook het maken van testklassen, dat dit ging lukken stond als een paal boven water en naar ons idee is dit ook ruimschoots gelukt. De opbouw van dit document is in grote lijnen zoals het project verlopen is. Er wordt verschillende keren verwezen naar andere meer technische documenten, maar in dit document wordt getracht inzicht te verschaffen in ons project voor zowel mensen van binnen als buiten de organisatie. 2. Organisatie 2.1 Inleiding Dit hoofdstuk beschrijft hoe het bedrijf TOP Informatie Systemen B.V. in elkaar zit en geeft achtergrondinformatie over het bedrijf. Tevens wordt hier het ontstaan van onze opdracht nader toegelicht. 2.2 Het bedrijf TOP Informatie Systemen B.V. (ofwel TOPdesk) gevestigd te Delft bestaat sinds Inmiddels werken er circa 220 mensen en zijn er behalve in Delft ook nog vestigingen in Kaiserslautern (Duitsland) en London (Engeland). De vestigingen in Duitsland en Engeland hebben als hoofdtaken advies en verkoop, de ontwikkelafdeling en helpdesk van de hele organisatie bevindt zich in Delft. Het bedrijf TOPdesk is in 1993 ontstaan uit de zusterorganisatie Operator Group Delft (OGD). OGD is een ICT-dienstverlener met een helpdesk, omdat er geen geschikte software was om de helpdesk te ondersteunen is er intern gewerkt aan een software oplossing wat uiteindelijk TOPdesk is geworden. Zoals meestal ontstond het product omdat er vraag was naar een makkelijke oplossing voor een probleem. TOPdesk biedt een makkelijke oplossing voor ICT-helpdesks van middelgrote tot grote bedrijven. TOPdesk maakt het mogelijk voor medewerkers van deze ICT-helpdesks om volgens ITILprocessen (Information Technology Infrastructure Library) te werken. Figuur 1 Overzicht van de beheerscyclus, zoals deze door ITIL onderkend wordt. juni 07 Bachelorproject IN3700 3

5 ITIL bevordert procesmatig werken, dit zorgt voor kosten- en tijdsbesparing. In figuur 1 staat een plaatje van ITIL in TOPdesk. Een incident komt binnen bij incidentbeheer (hier worden de problemen centraal ingevoerd), vervolgens gaat het naar probleembeheer (structurele problemen worden hier herkend), vervolgens wijzigingsbeheer (voorbereiden, uitvoeren, controleren, gereedmelden), dan configuratiebeheer (bijhouden welke apparatuur er aanwezig, licenties), de problemen worden door probleembeheer aan de configuraties gekoppeld. Centraal binnen het proces staat de Service Level Agreement (SLA), deze bevat afspraken over het aan te bieden serviceniveau van de dienstverlening (hoe lang mag een printer kapot zijn, bijvoorbeeld: maximaal vier uur). TOPdesk is leverbaar in drie varianten: Lite, Professional en Enterprise. De Lite versie is kleine bedrijven en de Enterprise is het neusje van de zalm qua functionaliteiten. TOPdesk heeft 2200 klanten in 30 landen. De meeste producten worden verkocht in respectievelijk: Nederland, Engeland, Duitsland en België. 2.3 Structuur binnen TOPdesk Binnen TOPdesk is grofweg de volgende structuur van toepassing: Figuur 2 Organisatie TOPdesk Binnen de organisatie heerst een prettige werksfeer en wordt informeel met elkaar omgegaan. Wij zaten voor de realisatie van ons project op de ontwikkelafdeling en kregen begeleiding van iemand uit het TOPdesk 4 team, dat zich bezig houdt met ontwikkeling van TOPdesk Enterprise Totstandkoming project TOPdesk Enterprise ondersteunde tot voor kort PostgreSQL, dit is een open source database, maar met de komst van de nieuwe versie 8.2 werkt deze niet meer met TOPdesk Enterprise. Er was al langer van klanten uit de vraag of MySQL niet ondersteund werd. Onder meer omdat MySQL open source is en er momenteel geen enkele open source database meer ondersteund wordt was dit een leuk project voor studenten, het is leerzaam en een goedkope oplossing voor TOPdesk. Tevens wilde men testklassen hebben om de opbouw van statements binnen TOPdesk Enterprise te controleren. Deze tests controleren de correctheid van de laag tussen de code en de verschillende databases. Met deze tests is het dus makkelijk te controleren of databases (nog steeds) ondersteund worden door TOPdesk Enterprise. juni 07 Bachelorproject IN3700 4

6 2.5 De opdracht De opdracht zoals wij die gekozen hebben van het BlackBoard van de TU Delft is bijgevoegd als Bijlage A Opdracht TOPdesk. Deze opdracht geeft een omschrijving van de organisatie en een korte beschrijving van de opdracht. Hieruit kwamen de volgende deelopdrachten naar voren: 1. Vooronderzoek doen naar open source databases (zie RAD Bijlage D Vooronderzoek) 2. Template maken voor gekozen database 3. Testomgeving maken 4. Tests maken voor templates, statements en DatabaseTool De onderzoeksvragen die hieruit voortkomen zijn: 1. Is het mogelijk een open source database te ondersteunen binnen TOPdesk Enterprise? 2. Hoe ziet een geschikte testomgeving eruit? juni 07 Bachelorproject IN3700 5

7 3. Documenten 3.1 Inleiding Dit hoofdstuk geeft een overzicht van de gemaakte documenten en hun inhoud het is raadzaam alle documenten bij de hand te hebben tijdens het lezen van dit verslag, want er wordt diverse keren naar verwezen. 3.2 V-model Om het proces inzichtelijk te houden, voor ons, de opdrachtgever en de begeleider van de TU hebben wij ervoor gekozen om het V-model te gebruiken. In figuur 3 staat het model en de op te leveren documenten en delen van het systeem. System Requirements Analyse Operation Plan van Aanpak Geaccepteerd systeem Software Requirements Elicitation Client Acceptance Requirements Analysis Document Getest systeem Requirements Analysis Document Requirements Analysis Testplan System Integration & Test Geïntegreerd systeem Preliminary Design Component Integration & Test System Design Document Geteste units Detailed Design Unit Test Object Design Document Sourcecode Implementation Figuur 3 Overzicht V-model en bijbehorende documenten 3.3 Plan van aanpak Beknopt document met oorsprong en beschrijving van het probleem en hoe wij het aan gaan pakken. 3.4 Requirements Analysis Document Eisen stellen aan de implementatie, voorstelling maken van de implementatie. Functionele en nietfunctionele eisen opstellen, use cases ten behoeve van tests en algemene indruk van de werking van het te maken systeem. juni 07 Bachelorproject IN3700 6

8 3.5 System Design Document De packages en hun functionaliteiten worden gespecificeerd. Hoe ziet het geheel eruit. Welke verdere overwegingen zijn er gemaakt, welke grenscondities gelden. 3.6 Object Design Document Specificatie van de componenten, uitleg welke keuzes er gemaakt zijn, onder andere performance gerelateerd. Klassen krijgen nu ook methoden, variabelen, attributen en de onderlinge hiërarchie wordt duidelijk. 3.7 Testplan Hierin worden de afwegingen met betrekking tot de tests uitgelegd en er worden eisen gesteld aan de manier en methode van testen. juni 07 Bachelorproject IN3700 7

9 4. Analyse 4.1 TOPdesk Enterprise TOPdesk Enterprise is volledig in Java geprogrammeerd, inmiddels zijn ze aangekomen bij versie 4, deze versie is volledig web-based. De sourcecode is vanaf de eerste versie tot nu steeds verder uitgegroeid, waardoor het nu een complex geheel is. Figuur 4 Timeline TOPdesk historie Doordat de code complex is hebben we eerst wat uitleg gekregen over hoe het ongeveer werkt, daarna hebben we zelf in de code gekeken en aan de hand daarvan wat vragen gesteld over hoe dingen met elkaar samenwerken. Tijdens het maken van het plan van aanpak liepen wij al tegen diverse problemen aan en beseften wij dat het handig is om direct al te weten hoe we het aan gingen pakken, om zo later problemen te voorkomen. Voor onze opdracht was het belangrijk om te weten hoe er nu met de diverse databases gecommuniceerd werd. Hoewel SQL een gestandaardiseerde taal is verschillen de implementaties per DBMS. Niet elk statement is bij elke database hetzelfde. TOPdesk gebruikt hiervoor een hiërarchie van templates. 4.2 Templates Templates zijn opgebouwd volgens bepaalde regels en zijn een op zichzelf staande taal, bijlage B Templatetaal van het Requirements Analysis Document bevat een uitleg van deze taal. Bij het starten van TOPdesk Enterprise worden de files samengevoegd en in niveaus ingedeeld. Zo wordt er een hiërarchie gecreëerd zie figuur 5, hierna volgt een stapsgewijze uitleg. Als eerste wordt de meest algemene template (translator.templates) ingelezen, daarna de sql-specifiekere template (translator_sql.templates), deze overschrijft eventueel aanwezige properties die reeds ingelezen waren. Vervolgens wordt de DBMS-specifieke (translator_sql_[db-specifiek].templates) template ingelezen en deze overschrijft ook weer reeds aanwezige properties mits ze in deze file staan. Zodoende ontstaat er een structuur die properties kan bevatten van alle drie de niveaus die wordt opgeslagen in het geheugen. Het maken van een statement binnen de TOPdesk code gebeurt door een statementobject te maken, dit statementobject wordt met behulp van de template vertaald naar een DBMS specifieke query. Hoe het maken van een statement precies in z n werk gaat is hier verder niet relevant en wordt nauwkeuriger uitgelegd in het Requirements Analysis Document paragraaf 3.1. juni 07 Bachelorproject IN3700 8

10 Opdracht Inlezen templates Stap 1 translator.templates Inlezen property.entity1=file1 property.entity2=file1 property.entity3=file1 Stap 2 translator_sql.templates Inlezen property.entity3=file2 property.entity4=file2 Stap 3 translator_sql_[db-specifiek].templates Inlezen property.entity2=file3 property.entity3=file3 property.entity5=file3 Resultaat property.entity1=file1 property.entity2=file3 property.entity3=file3 property.entity4=file2 property.entity5=file3 Figuur 5 Diagram inlezen templates Om de juiste template te selecteren wordt bij de installatie van TOPdesk een properties file gecreëerd waarin staat welke database gebruikt wordt. Om bijvoorbeeld een connectie met de database te maken wordt vanuit het programma een statement gegenereerd, dit is een standaard statement van TOPdesk. Vervolgens staat er in elke DBMS-specifieke template wat de vertaling is per DBMS. Zo staat er dus in de MSSQL-template: connection.info.property.url.default-value=jdbc:sqlserver://host:1433 In de MySQL-template staat: connection.info.property.url.default-value=jdbc:mysql://host:3306/database We zien nu dus dat de aanroep bij beiden hetzelfde is (wat voor de = staat) en de waarde (na de = ) verschilt, zo is dit dus voor alle DBMS-specifieke zaken vastgelegd. Dit is handig, want als men nu een database toevoegt hoeft er voor de aanroep (in de java-code) niets te veranderen, het enige wat moet gebeuren is een template toevoegen. Voor het toevoegen van deze template is het handig om te weten of deze gaat werken, daarvoor hebben wij dus testklassen gemaakt. Dit is voor het toevoegen heel handig, want het opstellen aan de hand van de Reference Manual van MySQL is behoorlijk moeilijk en zo is het snel te controleren of alle functionaliteiten werken. Anders moet dat via trial and error en dat is tijdrovend en niet geheel waterdicht, want dan weet je niet of je alles gehad hebt. Zo hebben wij wel onze eerste versie van de template getest, hierover meer in 6.4 Lege database aanmaken en bestaande database streamen. juni 07 Bachelorproject IN3700 9

11 TOPdesk Deel van de TOPdesk applicatie die de database functionaliteit gebruikt Statement generator Inlezen templates Oracle JDBC API s MSSQL MSSQL HSQLDB PostgreSQL 2005 Database Figuur 6 Overzichtsdiagram uitvoeren statement In figuur 6 is te zien hoe het inlezen van de templates gebeurt in de huidige implementatie van de TOPdesk software. Om uit te zoeken welke zaken in de template van de nieuwe database dienen te staan hebben wij een programma geschreven dat de doorsnede zoekt tussen de templatefiles van de op dit moment ondersteunde databases (MSSQL2000, MSSQL2005 en Oracle). Hierin staan dus alle gegevens uit de templates van de ondersteunde databases en van de bovenliggende templates (algemeen en sql) die bij alle drie voorkomen (zie figuur 5). Dit zijn dus de minimale functionaliteiten die ook in de template van een nieuwe database dienen te staan. Uitgezocht dient dus te worden of deze voor de nieuwe database apart ingegeven moeten worden, omdat ze zich nu op niveau 3 of hoger bevinden, of dat ze gewijzigd dienen te worden, omdat ze zich nu op niveau 1 of 2 bevinden. Per gegeven constraint dient dit dus uitgezocht te worden in de Reference Manual van de betreffende nieuwe database Database constraints Het is niet zomaar mogelijk elk DBMS toe te voegen, want deze hebben niet alle functionaliteiten die door TOPdesk gebruikt worden. Het is dus belangrijk eerst te weten welke functionaliteiten TOPdesk gebruikt en vervolgens controleren of deze ook door het DBMS ondersteunt worden. Vaak kan dit opgezocht worden in zogeheten Reference Manuals van het DBMS. Welke functionaliteiten TOPdesk gebruikt kregen wij aangeleverd via een document dat reeds door iemand opgesteld was. Dit document was niet helemaal compleet, maar was een goede basis. De verschillende functionaliteiten gevraagd door TOPdesk Enterprise zijn te verdelen in de volgende categorieën: Transacties Datatypes Statements Resultaten aggregaat functies Constraint typen juni 07 Bachelorproject IN

12 Special data en quoting Exceptions mapping Transacties De belangrijkste eisen van TOPdesk is dat de database moet kunnen omgaan met transacties. Als een database dit niet kan dan is deze database niet geschikt voor gebruik met TOPdesk. Datatypen TOPdesk heeft een aantal typen in Java gedefinieerd die op de datatypen van de template worden gemapt, die vervolgens weer op de database gemapt moeten worden. Bijvoorbeeld de LONG in Java is een INT8 in de template en in de MSSQL database is dit een BIGINT. Statements De syntax en attributen van een statement kunnen per DBMS verschillen, dat een SELECT FROM in elke DBMS voorkomt is logisch, maar bij sommige is dit misschien anders. Wat voor TOPdesk ook belangrijk is is de nestingsdiepte van SELECT-statements. Resultaten aggregaat functies Wat gebeurt er als men het aantal elementen in een lege tabel opvraagt? Krijgt men een 0 of een NULL. Constraint typen TOPdesk maakt gebruik van Primary en Foreign keys en bepaalde index-methoden. Voor de Foreign keys moeten minimaal de DELETE en RESTRICT constraints aanwezig zijn. Special data en quoting Hoe moet er gequote worden om gereserveerde woorden uit te sluiten, dit is erg belangrijk ook met het oog op de toekomst, want wat nu nog geen gereserveerd woord is kan dat in een nieuwere release van het product wel zijn. Welke karakters mogen niet in een string voorkomen bijvoorbeeld een quote teken in een string kan hem opeens afbreken, waardoor er een ongeldig statement ontstaat, of een verkeerd statement. Exceptions mapping De DBMS controleert altijd of een bepaalde query geldig en mogelijk is, wanneer dit niet het geval is zal er een foutmelding gegenereerd worden en geretourneerd worden aan de cliënt. Bijvoorbeeld wanneer een gebruiker met een verkeerd wachtwoord probeert in te loggen wordt er door de DBMS een foutmelding gegenereerd, deze foutmelding wordt door de JDBC-API teruggegeven aan TOPdesk en bestaat uit een vendorcode en een SQL-state. Deze combinaties staan voor bepaalde foutmeldingen. TOPdesk heeft een laag tussen de JDBC API s en eigen exceptions gemaakt, deze laag vertaalt de verschillende foutmeldingen van de DBMS (vendorcode en SQL-state) naar de TOPdesk exceptions. 4.3 MySQL MySQL is een wijdverspreide open source database met meer dan 5 miljoen installaties wereldwijd. Het is erg populair omdat het in veel gevallen gratis is, veel functionaliteiten bevat en ook nog eens stabiel is. Op dit moment zijn er verschillende versies van MySQL beschikbaar: MySQL 5.0 Database Server Community Edition Generally Available MySQL 5.1 Database Server Community Edition Bèta MySQL 5.2 Database Server Community Edition Alpha Voor de analyse van de functionaliteit hebben wij gekozen voor de MySQL 5.0, want dit is een stabiele release, in een Bèta of Alpha release kunnen kinderziekten voorkomen. Van de connector zijn de volgende versies beschikbaar: MySQL Connector/J Generally Available MySQL Connector/J Alpha Ook voor de connector gebruiken we de Generally Available versie om bovenstaande redenen. Via de website van MySQL is het mogelijk in de Reference Manual te zoeken, hierin staat onder meer de syntax en attributen van statements. Het is dus zaak deze te matchen met de door TOPdesk Enterprise gewenste functionaliteiten. juni 07 Bachelorproject IN

13 4.3.1 Matchen functionaliteiten Transacties MySQL werkt met verschillende storage-engines te weten: MyISAM en InnoDB. InnoDB is als enige transactioneel en daardoor zullen we deze storage-engine kiezen. Datatypen MySQL ondersteunt alle gangbare datatypen, we zullen de juiste mapping moeten bepalen, maar voorzien hierin geen problemen. Statements De syntax en attributen van een statement zijn in MySQL soms iets anders dan in andere DBMS, maar alle gangbare statements komen er in voor. Nestingsdiepte is wat onduidelijk in de documentatie, maar er staat dat we er van uit mogen gaan dat dit mogelijk is tot een redelijke diepte, dit zal dus in de orde van 100 liggen, maar hier zullen we wel op moeten testen. Resultaten aggregaat functies Het makkelijkste is om dit te proberen voor verschillende datatypen middels een testbestandje, het zal geen problemen veroorzaken, zolang er maar bekend is wat er gaat gebeuren. Constraint typen MySQL ondersteunt het gebruik van Primary en Foreign keys en heeft onder andere DELETE en RESTRICT als cascading opties. Functionele indexes worden door MySQL niet ondersteund, maar dit zal alleen problemen geven op niveau van performance. Het is dus belangrijk te weten hoe veelvuldig dit gebruikt wordt. Special data en quoting De gereserveerde woorden van MySQL zijn grotendeels gelijk aan die van andere databases. Quoting gebeurt met backticks ( ` ). Karakters die niet in een string mogen voorkomen zijn de backslash ( \ ), want deze geven aan dat er een bepaald karakter na komt. Exceptions mapping De vendorcodes en SQL states die MySQL genereert zijn nergens gedocumenteerd. Deze zullen we door middel van tests moeten achterhalen. 4.4 Integratie De tests die wij maken zullen altijd moeten slagen, want anders zou het betekenen dat een template incorrect is. Daarom is het handig om onze tests in de nachtelijke build te integreren, hierover meer in het Testplan. Gedurende ons project hebben wij gewerkt op een eigen SVN branch, dit is de volledige programmacode, maar wijzigingen zijn apart van de productieversie. Deze SVN branch moet later weer geïntegreerd (merge) worden met de productieversie. Wijzigingen in de bestaande code hebben wij dus expliciet aangegeven en goed gedocumenteerd, want deze integratie zal waarschijnlijk na onze stageperiode plaatsvinden. juni 07 Bachelorproject IN

14 5. Ontwerp 5.1 DatabaseTool Ontwerp voor de toevoeging van MySQL aan de DatabaseTool is vrij eenvoudig, dit komt door dat het programma ontworpen is om eenvoudig nieuwe DBMS toe te voegen. Door 3 abstracte klassen te extenden kan er een nieuw DBMS toegevoegd worden. De klassen zijn de DatabaseHandler, SettingsManager en de GuiCreator zoals weergegeven in Figuur 7. Figuur 7 DatabaseTool uitbreiding 5.2 Templates Voor de template van MySQL was het niet nodig om een ontwerp middels een diagram te maken, dit is namelijk een tekstfile die door de java.util.properties wordt ingelezen. In de analysefase hebben we de vereiste regels opgezocht en deze gaan we bij de implementatiefase invullen met behulp van de Reference Manual van MySQL. 5.3 ExceptionTransformer In Database constraints onder het kopje exceptions mapping wordt er gesproken over een laag tussen de JDBC API en de TOPdesk applicatie om de SQLExceptions om te zetten naar TOPdesk exceptions. Deze SQLExceptions zijn niet voor elk DBMS het zelfde, daarom is er voor elk DBMS een eigen ExceptionTransformer geïmplementeerd. In de onderstaande figuur is te zien dat MSSQL zijn eigen ExceptionTransformer heeft, voor MySQL moet een MySQLExceptionTransformer worden gemaakt. De ExceptionTransformer voor MySQL is te maken door een extends te maken van de JDBCExceptionTransformer. Figuur 8 Uitbreiding ExceptionTransformer 5.4 Testcases Een belangrijk onderdeel van de opdracht is dat de bovenstaande implementaties voor MySQL en de bestaande DBMS getest moeten worden. Om deze structuur bij de implementatie goed te hebben kijken we nu al naar hoe we het testsysteem gaan opzetten. We willen dat elke testcase wordt gedraaid op elk DBMS die we vooraf specificeren. Daarom maken we gebruik van een geparametriseerde basisklasse, juni 07 Bachelorproject IN

15 deze klasse zal een bestand inlezen waarin de te testen databases staan. Zie het ODD voor het ontwerp hiervan. De testcases zijn afgeleid van de use cases zoals gemaakt in het RAD. Tijdens het testen van ALTER TABLE x ALTER COLUMN y is het handig om niet alles te testen, want anders komen er heel veel overbodige tests. Daarom hebben wij ervoor gekozen om uit te zoeken welke wijzigingen van kolommen er momenteel plaatsvinden. Tijdens het starten van TOPdesk Enterprise worden alle Cleansteps (zie 6.4 Lege database aanmaken en bestaande database streamen voor uitleg van Cleansteps) doorlopen, daar hebben wij een stukje code voor gemaakt die kijkt welke ALTER COLUMNS er plaatsvinden en daar hebben we onze tests op gebaseerd. In de applicatie vinden geen ALTER TABLE statements plaats, dus hebben we alle tot nu toe gebruikte wijzigingen van kolommen in onze tests verwerkt. juni 07 Bachelorproject IN

16 6. Implementatie Door de onderlinge afhankelijkheden is de volgorde van implementatie erg belangrijk. Allereerst moet het mogelijk zijn om via de DatabaseTool databases en gebruikers aan te maken. Daarna een werkende template maken met de bijbehorende testcases. Als laatste de ExceptionTransformer maken, deze klasse zorgt voor de juiste omzetting van de foutmeldingen. 6.1 DatabaseTool De DatabaseTool is een applicatie die wordt gebruikt om TOPdesk Enterprise bij klanten te installeren. Alle DBMS die door TOPdesk Enterprise worden ondersteund zijn hierin opgenomen. Dit programma is zo opgebouwd dat er eenvoudig nieuwe DBMS toegevoegd kunnen worden, dit gebeurd door de onderstaande 3 klassen aan te maken en de DBMS specifieke eigenschappen hierin op te nemen Klassen Hieronder de klassen die geïmplementeerd moeten worden om MySQL ondersteuning toe te voegen aan de DatabaseTool. MySQLCreator extends GuiCreator Deze klasse zorgt er voor dat de GUI de juiste velden weergeeft om met een MySQL database te kunnen verbinden. MySQLDatabaseHandler extends DatabaseHandler Deze klasse bevat methoden om met de DBMS te verbinden en daar een database en een gebruiker aan te maken of te verwijderen. Ook zijn er 2 methoden om een database te valideren. MySQLSettingsManager extends SettingsManager Bevat de twee bovenstaande klassen, en heeft dus alle informatie om een verbinding met een DBMS op te zetten en daar de gevraagde bewerkingen op uit te voeren Testcases Om de werking van deze geïmplementeerde klassen te valideren hebben we 3 test klassen gemaakt. TestCreateDrop test of er een database met gebruiker aangemaakt kan worden en of deze database en gebruiker ook weer verwijderd kunnen worden. TestValidate maakt gebruik van de 2 valideer methoden van de DatabaseHandler. Voor de DatabaseTool is de DatabaseAlreadyExistsException een belangrijke exception, hiervoor is dan dus ook een testcase TestDatabaseAlreadyExistsException gemaakt. We hebben het ontwerp enigszins moeten aanpassen, omdat de DatabaseTool test zodanig verschilde van de ExceptionTransformer en Template tests konden de niet de RunBasicParameters klasse gebruiken. daarom hebben we een extra geparametriseerde basis klasse moeten maken, de RunDatabaseToolParameters klasse, zoals te zien is in het ODD. 6.2 Templates De templates zijn geen java sourcecode, maar ze zijn eigenlijk java.util.properties files. Er is een vastgestelde volgorde van inlezen van de template files daardoor hebben ze een hiërarchische opbouw en ze hoeven niet volledig ingevuld te zijn. Zie voor meer uitleg 4.2 Templates Vereniging Op basis van een reeds bestaande jsp pagina (/tas/web/secure/test/template_view.jsp) hebben wij een eigen jsp gemaakt (/tas/web/secure/test/template_intersection.jsp) deze pagina kan voor de 3 belangrijkste databases de intersection geven van de template key waarden. Deze key waarden hebben we als requirements genomen voor het maken van de MySQL template, omdat we zo zeker wisten dat deze al voor andere databases specifiek waren (MSSQL 2005, Oracle en PostgreSQL) Datatypen Een van de belangrijkste regels uit de templates zijn de datatype definities. Hier worden de TOPdesk datatypen (java String,Date,Integer) gemapt op de DBMS datatypen. We hebben de mapping van TOPdesk datatypen naar die van MSSQL, Oracle, PostgreSQL en HSQLDB bekeken om zo met behulp van de Reference Manual van MySQL de juiste keuzes te maken voor onze mapping in de template. Zie Bijlage B: Mapping Topdesk typen naar DBMS typen. juni 07 Bachelorproject IN

17 6.2.3 Template invullen De verkregen keys ingevuld met behulp van de Reference Manual van MySQL. Zoals te zien in paragraaf 4.2 Templates zijn de templates hiërarchisch opgebouwd, daarom hebben we geprobeerd om zoveel mogelijk keys die in een hoger niveau goed staan deze niet in de MySQL template weer te overschrijven, tenzij het echt nodig was doordat er iets specifiek voor MySQL moest staan Testcases Om de werking van de template te valideren hebben we testcases gemaakt die zoveel mogelijk regels van de template file probeert te testen door allerlei statements te maken. Wat de precieze dekking is van het aantal geteste regels is moeilijk te omschrijven omdat het een textfile betreft, deze wordt ingelezen en in het geheugen bewaard, dus geautomatiseerd uitlezen (bijvoorbeeld met Clover) wat de dekking is kan niet. Wij hebben de meest gangbare statements gekozen om te testen. Deze zijn terug te vinden in het RAD. Omdat er geen documentatie is die specificeert wat de uitvoer moet zijn van verschillende statements, hebben we de uitvoer van MSSQL en Oracle als eis genomen en gezorgd dat MySQL hier aan voldoet ( Function equivalence testing ). Van deze tests zijn use cases gemaakt die terug te vinden zijn in het RAD. Eisen aan de tests zijn terug te vinden in het Testplan ook vindt u hier een voorbeeldcode van een testklasse Problemen Tijdens het maken en testen van de template zijn we tegen diverse problemen aangelopen onder andere fouten in de code en fouten in de template. Deze waren na wat zoeken op te lossen, maar ook zijn we twee tekortkomingen van MySQL tegengekomen die cruciaal zijn om de TOPdesk Enterprise applicatie te draaien. Dit zijn een grens van maximaal 64 indices/foreign keys. Ook is de zogenaamde FULL JOIN niet geïmplementeerd. Totdat deze twee problemen opgelost zijn is het niet mogelijk om de TOPdesk applicatie met vertrouwen te draaien op MySQL. Voor een eventuele oplossing zie MySQL en 7.11 FULL JOIN. 6.3 ExceptionTransformer Elke DBMS heeft zijn eigen specifieke ExceptionTransformer, deze klasse zorgt ervoor dat SQLExceptions van de JDBC API worden omgezet aan de hand van hun SQLStates en VendorCodes naar TOPdesk exceptions. TOPdesk Enterprise houdt rekening met deze TOPdesk exceptions en daarom is een goede mapping van belang Testcases Als eerste worden de testcases gemaakt, omdat de JDBC API pas de SQLStates en VendorCodes geeft als de exception plaatsvindt. Er is documentatie over de SQLStates en VendorCodes maar het is moeilijk om te voorspellen welke SQLState en VendorCode er teruggegeven gaat worden. Het leek ons dus makkelijker om de fouten te veroorzaken middels testcases en vervolgens in te vullen in de betreffende ExceptionTransformers, deze bleken niet voor alle reeds ondersteunde databases compleet te zijn. In Tabel 1 de lijst met exceptions waarvoor we testcases hebben gemaakt. Deze testcases hebben we ook opgenomen in ons voorstel voor nachtelijke tests. TestAuthenticationException Inloggen met foutief wachtwoord/gebruikersnaam TestDatabaseNetworkingException De verbinding met het DBMS wordt onderbroken TestDatabaseResourceNameException Database niet gevonden TestDataFormatException Verschillende data-typen in bron en doel (b.v. subselect) TestDeleteConstraintException Verwijderen van een record waar nog een voorwaarde aan zit TestDuplicateIndexException Creatie dubbele index TestForeignKeyConstraintViolatedException Secundaire sleutel voorwaarde overtreden TestNoSuchColumnException Kolom bestaat niet TestNoSuchConstraintException Voorwaarde bestaat niet TestNoSuchIndexException Index bestaat niet TestNoSuchTableException Tabel bestaat niet TestTransactionException Transactie is reeds gecommit/rolled back TestUniqueKeyConstraintViolatedException Unieke sleutel regel is overtreden (creëeren dubbele waarde) Tabel 1 Exceptions waarvoor testcases gemaakt zijn om de ExceptionTransformer te vullen. juni 07 Bachelorproject IN

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

6. Het maken van een database

6. Het maken van een database 6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor

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

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

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Databases - Inleiding

Databases - Inleiding Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden

Nadere informatie

Software Test Plan. Yannick Verschueren

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

Nadere informatie

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

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens

Nadere informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases

Nadere informatie

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC Aantekeningen IRDB Vak: IRDB > Infrma1ca Rela1nele DataBase Onderstaande database scripts zijn gebaseerd p PstgreSQL. Standaarden Schrijf SQL wrden al1jd in hfdlefers, k al werkt het met kleine lefers;

Nadere informatie

Installatie SQL: Server 2008R2

Installatie SQL: Server 2008R2 Installatie SQL: Server 2008R2 Download de SQL Server 2008.exe van onze site: www.2work.nl Ga naar het tabblad: Downloads en meld aan met: klant2work en als wachtwoord: xs4customer Let op! Indien u een

Nadere informatie

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

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

Nadere informatie

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn: 5. De oefendatabase 5.1. Inleiding In de volgende hoofdstukken ga je oefenen / werken met SQL. Om te kunnen oefenen heb je natuurlijk wel een database nodig. In dit hoofdstuk wordt besproken hoe je deze

Nadere informatie

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

5/5 Red Carpet. 5/5.1 Inleiding

5/5 Red Carpet. 5/5.1 Inleiding Management Services 5/5 Red Carpet 5/5.1 Inleiding Met de overname van Ximian is Novell ook eigenaar geworden van de Red Carpet-technologie. Hoewel het aannemelijk is dat het hier een tijdelijke oplossing

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

Installatiehandleiding Business Assistent

Installatiehandleiding Business Assistent Installatiehandleiding Business Assistent Wijzigingsgeschiedenis Versie Datum Omschrijving Status 0.1 25-09-2014 Eerste opzet van het installatie Concept document. 1.0 04-11-2014 Geen: Commercieel maken

Nadere informatie

Leones. Business Case Service Management Tool

Leones. Business Case Service Management Tool Leones Business Case Service Management Tool Inhoudsopgave 1. AFBAKENING... 3 1.1 DOEL... 3 1.2 AANNAMES... 3 1.3 HUIDIGE SITUATIE... 3 1.4 PROBLEEMSTELLING... 3 1.5 WAT ALS ER NIETS GEBEURT?... 3 2. OPTIES...

Nadere informatie

SQL & Datamodelleren

SQL & Datamodelleren SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...

Nadere informatie

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

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

Nadere informatie

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

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

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren Handleiding om te beginnen met mysql WorkBench. In twee stappen 0. WorkBench verbinden met mysql 1. een hallo

Nadere informatie

Installatiehandleiding Business Assistent

Installatiehandleiding Business Assistent Installatiehandleiding Business Assistent Wijzigingsgeschiedenis Versie Datum Omschrijving Status 0.1 25-09-2014 Eerste opzet van het installatie Concept document. 1.0 04-11-2014 Geen: Commercieel maken

Nadere informatie

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Studenten: Peter Asnong Rik Broens Tom De Keyser Daan Gielen Kris Gregoire Koen Olaerts Toon Wouters Inhoudsopgave

Nadere informatie

AFO 139 Automatische export

AFO 139 Automatische export AFO 139 Automatische export 139.1 Inleiding Vubis Smart beschikt over de mogelijkheid om volledig automatisch beschrijvingen te exporteren naar bestanden op de server. Andere bibliotheken (ongeacht of

Nadere informatie

Het omzetten van een ER-diagram naar SQL

Het omzetten van een ER-diagram naar SQL Het omzetten van een ER-diagram naar SQL Huub de Beer Eindhoven, 4 juni 2011 Omzetting ER-diagram naar SQL in twee stappen 1: ER-Diagram relationeel model Onderwerp van hoofdstuk 3 Entiteittype relatie,

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

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

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

Nadere informatie

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

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

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

1 Labo 4 H 8 Jobs, Alerts en Operators H 9 Monitoring en Troubleshooting

1 Labo 4 H 8 Jobs, Alerts en Operators H 9 Monitoring en Troubleshooting 1 Labo 4 H 8 Jobs, Alerts en Operators H 9 Monitoring en Troubleshooting SQL Server 2008 R2 - Labo 4-1 1.1 Database Mail Configureer database mail zodat e-mail wordt verstuurd met je eigen e-mailadres

Nadere informatie

Installatiehandleiding Cane Webservices.nl Integratie

Installatiehandleiding Cane Webservices.nl Integratie Installatiehandleiding Cane Webservices.nl Integratie Inhoud INHOUD... 1 1. INTRODUCTIE... 2 DOELSTELLING DOCUMENT... 2 GERELATEERDE DOCUMENTEN... 2 GEBRUIK VAN HET DOCUMENT... 2 LEZERS DOELGROEP... 2

Nadere informatie

Upgrade naar People Inc 3.5.0

Upgrade naar People Inc 3.5.0 I Inhoudsopgave Hoofdstuk 1 1 1.1 Installeren... van de upgrade 2 1.2 Uitvoeren... van de upgrade 5 1.3 Installatie... Applicatie Server 9 1.4 Installatie... Gebruikers programma's 15 1.5 Afronding...

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

Software Test Documentation

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

Nadere informatie

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1 relationele databases 9.1 hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit Als voorbeeld nemen we een eenvoudige database, bestaande uit twee tabellen. De

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

INSTALLATIE NIS UPDATE Q3-2014-03 Q3-2014-03

INSTALLATIE NIS UPDATE Q3-2014-03 Q3-2014-03 INSTALLATIE NIS UPDATE Q3-2014-03 Q3-2014-03 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

Nadere informatie

Cash Software B.V. 2518 AD Den Haag (T) 070-3560570 (E) info@cash.nl 1

Cash Software B.V. 2518 AD Den Haag (T) 070-3560570 (E) info@cash.nl 1 Dit volledige document is eigendom van Cash Software B.V. Niets uit dit document mag worden vermenigvuldigd, openbaar gemaakt, vertaald in enige taal, in enige vorm of met enig middel zonder voorafgaande

Nadere informatie

INSTALLATIE NIS UPDATE 2014-Q4 2014-Q4

INSTALLATIE NIS UPDATE 2014-Q4 2014-Q4 INSTALLATIE NIS UPDATE 2014-Q4 2014-Q4 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

Nadere informatie

Op de Virtual Appliance is MySQL voorgeïnstalleerd. MySQL is momenteel de meest gebruikte database op het internet.

Op de Virtual Appliance is MySQL voorgeïnstalleerd. MySQL is momenteel de meest gebruikte database op het internet. Het installeren van WordPress Nu je een volledig werkende virtuele server hebt is het tijd om er een applicatie op te installeren. We beginnen met de blogtool WordPress. De database De eerste stap is het

Nadere informatie

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

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

Zonnepanelen Hoe krijg je de data op je website?

Zonnepanelen Hoe krijg je de data op je website? Zonnepanelen Hoe krijg je de data op je website? Beste website-bezoeker, Omdat ik al heel wat vragen kreeg over het gedeelte zonne-energie op mijn website, heb ik besloten om de werkwijze die ik gevolgd

Nadere informatie

SQL SERVER 2008. Werking van Database Snapshots

SQL SERVER 2008. Werking van Database Snapshots KATHOLIEKE HOGESCHOOL KEMPEN GEEL SQL SERVER 2008 Werking van Database Snapshots ELINE STEYVERS BRAM DE SMEDT JOEY LEMMENS WOORD VOORAF Werking van Database Shapshots is bedoeld om mensen wegwijs te maken

Nadere informatie

Software Test Plan. Yannick Verschueren

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

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

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

Inhoudsopgave. Hoofdstuk 1: Ant...4

Inhoudsopgave. Hoofdstuk 1: Ant...4 Inhoudsopgave Hoofdstuk 1: Ant...4 1.1 Inleiding...4 1.2 Ant installeren...5 1.3 Ant gebruiken...7 1.3.1 Een project maken...7 1.3.2 Mijn eerste Ant-script...10 1.3.2.1 Projects...10 1.3.2.2 Targets...11

Nadere informatie

Les 10 : Aanmaken van een database (deel2).

Les 10 : Aanmaken van een database (deel2). Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van

Nadere informatie

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank v Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank 1 Introductie: data en informatie 1.0 Wat leer je in dit hoofdstuk? 1.1 Verschil tussen gegevens en

Nadere informatie

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen Gebruikers handleiding Lizard Configuration Manager ToolTip Installatie Installeer eerst het volgende: Installeer python 2.5.2; zie de map Breda\Tooltip\lcm\install\python-2.5.2.msi Ga naar dos (run/uitvoeren

Nadere informatie

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten. MySQL talk Trage website? Het optimaliseren van een bestaande website die een MySQL database heeft is niet altijd even makkelijk. Het probleem kan namelijk op veel verschillende plekken zitten: de database

Nadere informatie

Perceptive Process. Release Notes. Version: 3.5.x

Perceptive Process. Release Notes. Version: 3.5.x Perceptive Process Release Notes Version: 3.5.x Written by: Product Knowledge, R&D Date: December 2015 2015 Lexmark International Technology, S.A. All rights reserved. Lexmark is a trademark of Lexmark

Nadere informatie

1. * Database worden vaak gebruikt in Client-Server architectuur.

1. * Database worden vaak gebruikt in Client-Server architectuur. Naam Studentnummer Klas Herkansing [ ] ja, nee [ ], zoja uit welk jaar? kernbegrippen relationele database Minimaal drie van de vijf vragen goed beantwoorden. 1. * Database worden vaak gebruikt in Client-Server

Nadere informatie

ROBOMIND ACADEMY DESKTOP LICENTIE HANDLEIDING

ROBOMIND ACADEMY DESKTOP LICENTIE HANDLEIDING ROBOMIND ACADEMY DESKTOP LICENTIE HANDLEIDING Wanneer je een gratis RoboMind Academy Account aanmaakt krijg je daarbij ook een gratis 30-dagen trial licentie voor de offline RoboMind Desktop software.

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

Microsoft Dynamics CRM 2011

Microsoft Dynamics CRM 2011 Data Quality Solutions Microsoft Dynamics CRM 2011 Datum: 12-4-2012 Versie 1.5 Versie 2.1 Datum: 01/06/2012 Inhoud 1. Inleiding... 3 2. KVK-integratie... 4 3. Update service... 5 4. Leadgenerator... 6

Nadere informatie

Handleiding voor de applicatiebeheerder van Business Assistent

Handleiding voor de applicatiebeheerder van Business Assistent Handleiding voor de applicatiebeheerder van Business Assistent Wijzigingsgeschiedenis Versie Datum Omschrijving Status 0.1 02-10-2014 Eerste opzet van het installatie Concept document. 0.2 14-10-2014 Lezerscorrectie

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

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho.

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho. Automatisering voor Financiële Dienstverleners Werken met Queries en Merge Documenten For more information visit our website at www.pyrrho.com Date: Document Nr: 30 maart, 2007 UBizzMerge, Versie 4.0 Status:

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

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

INSTALLATIE NIS UPDATE 2014-Q4-01 2014-Q4-01

INSTALLATIE NIS UPDATE 2014-Q4-01 2014-Q4-01 INSTALLATIE NIS UPDATE 2014-Q4-01 2014-Q4-01 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

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

Inhoud. Endnote X7 Handleiding Mediacentrum maart 2015 Page 2

Inhoud. Endnote X7 Handleiding Mediacentrum maart 2015 Page 2 Inhoud Over Endnote... 3 Endnote installeren... 4 Een library aanmaken... 5 Voordat je begint!... 6 Tussenvoegsels in namen... 6 Referenties invoegen in een Worddocument/Cite while you write... 7 Handmatig

Nadere informatie

INSTALLATIE NIS UPDATE Q2-2014-02 Q2-2014-02

INSTALLATIE NIS UPDATE Q2-2014-02 Q2-2014-02 INSTALLATIE NIS UPDATE Q2-2014-02 Q2-2014-02 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

Nadere informatie

Instellen back up Microsoft SQL database Bronboek Professional

Instellen back up Microsoft SQL database Bronboek Professional Instellen back up Microsoft SQL database Bronboek Professional In deze handleiding word een drietal punten besproken. Deze punten zijn allen noodzakelijk voor het inrichten van een goede back up voor de

Nadere informatie

Functionele beschrijving: scannen naar van Brug software.

Functionele beschrijving: scannen naar van Brug software. Functionele beschrijving: scannen naar van Brug software. Algemeen Met de KYOCERA scannen naar van Brug Software beschikt u over een efficiënte oplossing om uw documenten te scannen naar het Notarieel

Nadere informatie

Supportdesk Pro Basis Instructie

Supportdesk Pro Basis Instructie Supportdesk Pro Basis Instructie Inhoudsopgave 1 Supportdesk Pro 2 1 Inleiding 2 2 Werkwijze 2 2 Zaken 3 2.1 Introductie 3 2.2 Zaken beheren 3 2.3 Handmatig invoeren zaken basis 4 2.4 Verwerken zaken 4

Nadere informatie

Installatie King Task Centre

Installatie King Task Centre Installatie King Task Centre In deze handleiding wordt beschreven hoe u het King Task Centre moet installeren. Deze handleiding geldt voor zowel een nieuwe installatie, als voor een upgrade van een bestaande

Nadere informatie

Zelftest DB2 for z/os basiscursus

Zelftest DB2 for z/os basiscursus Zelftest DB2 for z/os basiscursus Document: n1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST DB2 FOR Z/OS BASISCURSUS

Nadere informatie

Databases en SQL Foundation (DBSQLF.NL)

Databases en SQL Foundation (DBSQLF.NL) Databases en SQL Foundation (DBSQLF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48

Nadere informatie

Programmeren: Visual Basic

Programmeren: Visual Basic PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Algemene Kennis: 01. Programmeren Programmeren is het schrijven van een computerprogramma, een concrete verzameling instructies

Nadere informatie

Van een ER-diagram naar een database specificatie in SQL

Van een ER-diagram naar een database specificatie in SQL Van een ER-diagram naar een database specificatie in SQL Huub de Beer Eindhoven, 4 juni 2011 Inhoudsopgave 1 Inleiding 1 2 Van een ER-diagram naar het relationele model 1 3 Van relationeel model naar SQL

Nadere informatie

SQL Plan Management in Oracle11g Harald van Breederode

SQL Plan Management in Oracle11g Harald van Breederode SQL Plan Management in Oracle11g Harald van Breederode Sinds de introductie van de Cost Based Optimizer (CBO) in Oracle7 hebben zowel database beheerders als database ontwikkelaars de wens om deze optimizer

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

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

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

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5 1 Inhoudsopgave. Inleiding.... 3 1 Databases en Data Base Management Systems.... 3 2 Tabellen.... 3 3 Wat is SQL?... 5 4 Gegevens opvragen (deel 1).... 5 4.1 Boolean operatoren.... 7 4.2 IN en BETWEEN

Nadere informatie

Handleiding configuratie en gebruik tekenmodule

Handleiding configuratie en gebruik tekenmodule Handleiding configuratie en gebruik tekenmodule B3Partners Inhoudsopgave 1 Inleiding...2 2 Configuratie tekenmodule...3 2.1 Database tabel...4 2.2 WMS Service...5 2.3 Gegevensbron en kaartlaag...6 2.4

Nadere informatie

Secure Application Roles

Secure Application Roles Secure Application Roles Beheer de toegang tot de database 1. Inleiding Het realiseren van geautoriseerde toegang tot een database lijkt eenvoudig. Echter, vaak blijkt dat dezelfde combinatie van gebruikersnaam

Nadere informatie

Handleiding OpenCart - factuursturen.nl

Handleiding OpenCart - factuursturen.nl Handleiding OpenCart - factuursturen.nl www.webwinkelfacturen.nl Samenvatting Dit is de handleiding voor de koppeling van OpenCart naar Factuursturen.nl. De koppeling zorgt dat voor bestellingen in OpenCart

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

The Nanny Versie Informatie

The Nanny Versie Informatie The Nanny Versie Informatie The Nanny versie 4.2.2 29 Mei 2012 Document versie 1.2 Copyright 2012 TecSoft B.V. Kaatsheuvel. Niets uit de uitgave mag worden vermenigvuldigd, Pagina opgeslagen 1 van 7 in

Nadere informatie

Software Test Document

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

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

WebUntis 2014 Instructies basisinstallatie

WebUntis 2014 Instructies basisinstallatie WebUntis 2014 Instructies basisinstallatie Copyright 2013 Untis Benelux Rotterdam Installatie WebUntis 1 1 Algemeen...2 1.1 Java JRE 7... 2 1.2 Apache Tomcat... 2 1.3 Een database.... 4 1.4 JDBC-Driver...

Nadere informatie

Installatie Avalanche Windows

Installatie Avalanche Windows Installatie Avalanche Windows Deze handleiding beschrijft de stappen om software voor Avalanche Windows op een huidige omgeving te updaten en te installeren. Tijdens deze installatie, kunnen anders gebruikers

Nadere informatie

HOWTO: Microsoft Domain Controller en Linux DNS-server. geschreven door Johan Huysmans

HOWTO: Microsoft Domain Controller en Linux DNS-server. geschreven door Johan Huysmans HOWTO: Microsoft Domain Controller en Linux DNS-server geschreven door Johan Huysmans 1. Over deze howto. Deze howto behandelt verschillende aspecten van een MS Windows Domain Controller gebruik makend

Nadere informatie

Indoor Navigation System

Indoor Navigation System Project Indoor Navigation System Onderwerp: Indoor Navigation System Document: Handleiding Ontwikkeltools Groep: EII6RTa Auteurs: 1. Jordi Betting 109277 2. Jerome Bos 113180 3. Theo Miltenburg 112883

Nadere informatie

Factuur2King 2.0.3 Multi User release notes

Factuur2King 2.0.3 Multi User release notes Factuur2King 2.0.3 Multi User release notes Deze nieuwe versie van Factuur2King, versie 2.0.3, bevat nieuwe functionaliteit en oplossingen voor problemen die naar voren zijn gekomen sinds de release van

Nadere informatie

Selenium IDE Webdriver. Introductie

Selenium IDE Webdriver. Introductie Selenium IDE Webdriver Het Wielsem 10, 5231 BW s- Hertogenbosch, telefoon 073-6409311 e- mail info@testwork.nl internet http://www.testwork.nl 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Selenium IDE... 3 3

Nadere informatie

Functionele beschrijving: Scannen naar AFAS Profit.

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

Nadere informatie