Inhoud. Gelaagde Architecturen (4): Voorbeelden. Gelaagde Architecturen (4): Voorbeelden

Maat: px
Weergave met pagina beginnen:

Download "Inhoud. Gelaagde Architecturen (4): Voorbeelden. Gelaagde Architecturen (4): Voorbeelden"

Transcriptie

1 Gelaagde Architecturen (4): Voorbeelden Voorbeelden bij de artikelen Gelaagde architecturen -3 van Leo Pruijt en Wiebe Wiersema, Hogeschool Utrecht. De artikelen beschrijven het Logica In Lagen -referentiemodel en de stappen om tot een Logisch en Fysiek Lagenmodel te komen. De artikelen zijn gepubliceerd in Release - Vakblad voor de Software Architect, vanaf december 200. En in Optimize Onafhankelijk vakblad voor de Oracle professional, vanaf februari 20. Inhoud. CASUS: AANWEZIGHEIDSREGISTRATIESYSTEEM LOGISCH LAGENMODEL... 3 STAP : BEPAAL DE KWALITEITSDOELEN... 3 STAP 2: ONDERKEN LOGISCHE LAGEN... 4 STAP 3: BEPAAL DE COMMUNICATIEREGELS TUSSEN DE LAGEN... 5 STAP 4: TOETS DE GESCHIKTHEID VAN HET LAGENMODEL... 6 STAP 5: DOCUMENTEER HET LAGENMODEL FYSIEK LAGENMODEL: PHP IMPLEMENTATIE... 8 STAP 6: EVALUEER DE KWALITEITSDOELEN EN KIES DE TECHNOLOGIE... 8 STAP 7: ONDERKEN EN ONTWERP DE FYSIEKE LAGEN... 9 STAP 8: ONTWERP DE COMMUNICATIE TUSSEN DE LAGEN... 0 STAP 9: TOETS DE GESCHIKTHEID VAN HET LAGENMODEL... STAP 0: DOCUMENTEER HET LAGENMODEL FYSIEKLAGENMODEL: RUBY ON RAILS IMPLEMENTATIE... 2 STAP 6: EVALUEER DE KWALITEITSDOELEN EN KIES DE TECHNOLOGIE... 2 STAP 7: ONDERKEN EN ONTWERP DE FYSIEKE LAGEN... 3 STAP 8: ONTWERP DE COMMUNICATIE TUSSEN DE LAGEN... 5 STAP 9: TOETS DE GESCHIKTHEID VAN HET LAGENMODEL... 6 STAP 0: DOCUMENTEER HET LAGENMODEL... 6 Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema

2 . Casus: Aanwezigheidsregistratiesysteem Een Regionaal Opleiding Centrum is wettelijk verplicht de aan- en afwezigheid van een deelnemer aan een van de (vele) opleidingen te registreren. Het betreffende ROC is voortgekomen uit fusies van verschillende instituten die zeer verschillend omgingen met de aanwezigheidsregistratie. Eén uniform bedrijfsproces, ondersteunt door een nieuw informatiesysteem, moet eenheid brengen en een aanzet geven tot een goede registratie van de aan- en afwezigheid. Significante use cases (onder de 26 use cases) Aanwezigheid registreren per klas Docent Overzicht aanwezigheid per student Ziekmelding deelnemer registreren Administratief medewerker Activiteiten beheren Belangrijke domeinklassen Location * * Education Department Institute * * Classroom Course Participant Class * Activity -starttime -endtime Teacher 0.. Presence -presence : bool -reason : string ActivityType Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 2

3 2. Logisch Lagenmodel Leo Pruijt Stap : Bepaal de kwaliteitsdoelen Kwaliteitsdoel De informatie die wordt vastgelegd moet absoluut betrouwbaar zijn. Vereiste kwaliteiten:. Alle gegevens die worden vastgelegd, moeten gecontroleerd zijn. Het systeem moet eenvoudig en tegen lage kosten aangepast en uitgebreid kunnen worden, omdat het een lange tijd gebruikt zal gaan worden. Vereiste kwaliteiten: 2. Goede analyseerbaarheid van het systeem. 3. Domeingenerieke logica wordt slechts op één plek vastgelegd en van daaruit hergebruikt. 4. De applicaties zijn zoveel mogelijk onafhankelijkheid van wijzigingen in de database-structuur. 5. DBMS, applicatieserver, randapparatuur, et cetera moeten eenvoudig vervangen kunnen worden. De mogelijkheid tot fraude met de aanwezigheidsregistratie moet voorkomen worden. Vereiste kwaliteiten: 6. Het systeem moet op alle toegangsniveaus beveiligd zijn. De beheerkosten van het systeem moeten laag zijn en ook bij groeiend gebruik (meer opleidingen, ook toegang voor studenten) zal een hoge responsiesnelheid gegarandeerd moeten worden. 7. Goede schaalbaarheid. 8. Responsiesnelheid gemiddeld max sec (rapportages uitgezonderd). Het systeem moet eenvoudig met andere applicaties (zoals Schoolplan) en hun opvolgers/vervangers kunnen communiceren. 9. Open standaard voor communicatie. ISO 9 26 Quality Attribute Accuracy Maintainability: Analysability, Changeability, Stability Portability: Adaptability Security Efficiency: Resource utilasation, Time behaviour Interoperability Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 3

4 Stap 2: Onderken logische lagen 2. Bepaal welke lagen nodig zijn om de kwaliteitsdoelen te realiseren In onderstaande tabel staat aangegeven welke lagen (uit het LIL-referentiemodel) onderscheiden zijn om de kwaliteitsdoelen uit de vorige stap te behalen. Kwaliteitsdoel Benodigde lagen. Alle gegevens die worden vastgelegd, moeten gecontroleerd zijn. Domeingeneriek 2. Goede analyseerbaarheid van het systeem. Presentatie Taakspecifiek, Domeingeneriek Infrastructuur abstractie 3. Domeingenerieke logica wordt slechts op één plek vastgelegd en van daaruit hergebruikt. Presentatie/Taakspecifiek, Domeingeneriek 4. De applicaties zijn zoveel mogelijk onafhankelijkheid van wijzigingen in de database-structuur. Infrastructuur abstractie, Infrastructuur 5. DBMS, applicatieserver, randapparatuur, et cetera moeten eenvoudig vervangen kunnen worden. Infrastructuur abstractie, Infrastructuur 6. Het systeem moet op alle toegangsniveaus beveiligd zijn. Infrastructuur 7. Goede schaalbaarheid Responsiesnelheid gemiddeld max sec (rapportages uitgezonderd) Open standaard voor communicatie Orden de lagen en definieer ze Taak Domein InfrastructuurAbstractie Infrastructuur Laag Taak Domein Infrastructuurabstractie Infrastructuur Bevat de logica (conform het LIL-referentiemodel) Presentatie en Taakspecifieke logica Domeingenerieke logica Infrastructuurabstractie Infrastructuur Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 4

5 Stap 3: Bepaal de communicatieregels tussen de lagen 3. Bepaal welke standaardregels gelden en waarom De regels, 2, 3 en 5 in de onderstaande tabel zijn afgeleid van de standaardregels. Het gerelateerde kwaliteitsdoel vormt de motivatie voor de regel. 3.2 Bepaal welke uitzonderingsregels gelden en waarom Regel 4 en 6 vormen uitzonderingsregels. Regel 7 ondervangt een nadeel van regel 6. Regel. Bij verwijdering, wijziging of invoer (DUC-acties) van gegevens mag de domeinlaag niet worden overgeslagen. 2. Geen aanroepen van de Domeinlaag naar de Taaklaag die ten koste gaan van de herbruikbaarheid. Dit wordt bereikt met regel 3 en De infrastructuurabstractielaag mag nooit worden overgeslagen. 4. Aanroep vanuit alle lagen naar de security component in de Infrastructuurlaag is toegestaan (via de infrastructuurabstractielaag). Kwaliteitsdoel. Alle gegevens die worden vastgelegd, moeten gecontroleerd zijn. 2. Goede analyseerbaarheid van het systeem. 3. Domeingenerieke logica wordt slechts op één plek vastgelegd en van daaruit hergebruikt. 4. De applicaties zijn zoveel mogelijk onafhankelijkheid van wijzigingen in de database-structuur. 5. DBMS, applicatieserver, randapparatuur, et cetera moeten eenvoudig vervangen kunnen worden. 6. Het systeem moet op alle toegangsniveaus beveiligd zijn Goede schaalbaarheid. 6. Bij read-only acties mag de domeinlaag worden overgeslagen 7. Read-only acties, waarbij de domeinlaag wordt overgeslagen moeten via een databasestructuurabstractie mechanisme werken. 8. Responsiesnelheid gemiddeld max sec (rapportages uitgezonderd) Open standaard voor communicatie. Grafische weergave van het lagenmodel op hoofdlijnen NB De details van de regels zijn niet zichtbaar! Taak Domein InfrastructuurAbstractie Infrastructuur Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 5

6 Stap 4: Toets de geschiktheid van het lagenmodel De significante use case Aanwezigheid registreren is hiervoor uitgekozen, omdat die de kern van de systeemfunctionaliteit representeert. In het sequence diagram op analyseniveau is te zien welke functionaliteit nodig is om de use case af te handelen. In het sequence diagram op designniveau is te zien hoe de use case kan worden afgehandeld, rekening houdend met het lagenmodel. Ook is te zien waar de functionaliteit dan (logisch) terecht komt, zonder dat er al voor een specifieke implementatietechniek gekozen is. Aanwezigheid registreren Docent Sequence diagram op analyse-niveau voor de use case: Aanwezigheid registreren Teacher getallclasses() :Class :Activity :Participant :Presence getactivities() getdetails() getparticipants() getdetails() createpresence() create() Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 6

7 Sequence diagram op design-niveau voor de use case: Aanwezigheid registreren Taaklaag Domeinlaag Infrastructuur Abstractielaag :RegPresenceUI :RegPresenceController :Class :Activity :Participant :Presence DbFacade Teacher initialise() initialise() getallclasses() getallclassdata() selectclass() selectclass() getactivities() getdetails() getactivitydata() selectactivity() selectactivity() getparticipants() getdetails() getparticipantdata() setpresence() setpresence() createpresence() create() InsertPresenceData() Stap 5: Documenteer het lagenmodel De resultaten van de stappen -3 vormen de kern van de documentatie. In het artikel Gelaagde architecturen(): Introductie wordt behandeld wat in de documentatie van een lagenmodel duidelijk gemaakt moet worden, zodat de systeemontwikkelaars er goed mee aan het werk kunnen gaan. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 7

8 3. Fysiek Lagenmodel: PHP implementatie Leo Pruijt Met dank aan de studententeams van de Informatica-opleiding van de Hogeschool Utrecht voor hun inbreng, onderzoek en toepassingen op het gebied van PHP: Ruben Mijwaart, Onno Dijkstra, Bili Xiahilil, Ismaël sadkaoui; Martijn Gastkemper, Redmar Stienstra, Tom Zitter. Stap 6: Evalueer de kwaliteitsdoelen en kies de technologie 6. Evalueer de kwaliteitsdoelen De in stap geïnventariseerde kwaliteitsdoelen dekken ook de gangbare technologische risico s af. Er worden geen nieuwe kwaliteitsdoelen onderkend. Wel wordt als extra, technische maatregel vastgesteld dat het MVC-pattern zal worden toegepast in verband met het kwaliteitsdoel Goede analyseerbaarheid van het systeem. 6.2 Kies de technologie die bij die doelen past Met Doctrine.2 kunnen de kwaliteitsdoelen, 2, 3, 4, 5, 6 en 7 gehaald worden. Met Zend en Smarty kan met name kwaliteitsdoel 2 gehaald worden. Met Zend-ACL kan kwaliteitsdoel 6 (deels) gehaald worden, met de beperking dat de beveiliging alleen op controllerniveau geïmplementeerd wordt. Met XML/SOAP voor externe communicatie kan kwaliteitsdoel 8 gehaald worden. Met JQuery kan de interactie dynamisch gemaakt worden. NB Een meer complete verantwoording van de technologie keuzen vormt onderdeel van het Architecture Notebook/SAD. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 8

9 Stap 7: Onderken en ontwerp de fysieke lagen 7. Onderken de fysieke lagen 7.. Tier model Een 3-tier deployment model combineert een goede performance met een (voor dit systeem) afdoend niveau van beveiliging. Client Tier Web Tier EIS Tier Apache/PHP server: Browser HTML Smarty Zend Framework Oracle Database JavaScript ondersteund door jquery Doctrine 7..2 Lagenmodel Het logische lagenmodel en het technische raamwerk uit stap 5 moeten gecombineerd worden tot een fysiek lagenmodel, waardoor goed werkende applicaties kunnen worden ontwikkeld die voldoen aan de gestelde kwaliteitseisen. Taak (View & Controller: Zend, Smarty, JQuery) Domein (Model: Doctrine) InfrastructuurAbstractie (Doctrine) Infrastructuur 7.2 Ontwerp de fysieke implementatie van de lagen Onder 7. is al aangegeven welke technologie per laag gebruikt zal worden. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 9

10 Als aanvulling daarop worden de volgende implementatiekeuzen gemaakt: Taak-laag View-functionaliteit en Controller functionaliteit (conform het MVC pattern) worden gescheiden in aparte klassen. View en Controller klassen worden niet gescheiden in aparte packages of directories, maar samenhangende combinaties van view- en controllerklassen worden juist bij elkaar geplaatst. Domein-laag: Alle domeingenerieke logica (validaties, berekeningen, ) wordt herbruikbaar gemaakt door deze in (OO)entities op te nemen. Daarmee wordt het Domain Model pattern [Fowler03] gevolgd voor DUC-acties. De domeinfunctionaliteit zal in logische componenten worden ingedeeld. Infrastructuurabstractie-laag Doctrine bevat een Object Relational Mapper (ORM) die de vertaalslag tussen de objectgeörienteerde klassen (entities) en de database tabellen regelt. Daarmee wordt het Data Mapper pattern [Fowler03] gevolgd. Er zal gebruik gemaakt worden (juist ook voor de R- en zoekacties) van de Doctrine Query language (DQL), die Doctrine automatisch vertaald naar DBMS-specifieke SQL. Daarmee wordt het Data Mapper pattern [Fowler03] gevolgd. Stap 8: Ontwerp de communicatie tussen de lagen 8. Evalueer de communicatieregels gedefinieerd op logisch niveau. De regels van logisch model kunnen gehandhaafd blijven, met de volgende beperkingen: Regel 4 is overbodig, omdat er geen aparte security component komen. Voor deze applicatie wordt een afdoende niveau van beveiliging bereikt met Zend-ACL, maar daarbij wordt de beveiliging alleen op controllerniveau geïmplementeerd. Doctrine is een framework dat een deel van de infrastructuurabstractielaag invult m.b.t. database benadering. Maar Doctrine wordt ook gebruikt voor de implementatie van de domein functionaliteit. Dit gebeurt op zo n manier dat Doctrine niet eenvoudige manier vervangen kan worden door een ander framework of ORM-mapper. 8.2 Ontwerp de fysieke communicatie tussen de lagen De koppeling tussen taaklaag en domeinlaag wordt op de volgende wijze geminimaliseerd. De domeinfunctionaliteit (verdeeld over logische componenten zal alleen via een Facade benaderbaar zijn. Aanroepen vanuit de Taaklaag naar de Infrastructuurabstractielaag mag alleen Read-acties betreffen en mogen alleen in DQL. Aanroepen vanuit de Domeinlaag naar de Infrastructuurabstractielaag mag alle soorten acties betreffen, maar mag alleen in DQL. Er worden geen domeinobjecten geretourneerd van domein- naar taaklaag, maar er wordt gebruik gemaakt van het Data Transfer Objects pattern [Fowler03] of van arrays. In dit specifieke geval zullen de facade methodes van de domeinlaag multidimensionale PHP arrays retourneren. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 0

11 Stap 9: Toets de geschiktheid van het lagenmodel Op fysiek niveau ziet de afhandeling van een use case er modelmatig als volgt uit: Taaklaag Domeinlaag Infrastr. abstr.laag Infrastruct. laag :View :Controller :Facade :Domain :Domain2 :Doctrine-ORM :DBMS Teacher read() update() Verder verdient het aanbeveling om door middel van een prototype aan te tonen dat de gemaakte keuzen leiden tot een werkende applicatie die aan de diverse niet-functionele eisen voldoet. Stap 0: Documenteer het lagenmodel De resultaten van de stappen -3 en 6-8 vormen de kern van de documentatie. In het eerste artikel over de Gelaagde Architecturen wordt behandeld wat in de documentatie van een lagenmodel duidelijk gemaakt moet worden, zodat de systeemontwikkelaars er goed mee aan het werk kunnen gaan. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema

12 4. FysiekLagenmodel: Ruby on Rails Implementatie Wiebe Wiersema Stap 6: Evalueer de kwaliteitsdoelen en kies de technologie Het gekozen raamwerk is Ruby on Rails (RoR), Rails is een open-source framework dat is bedoeld om webapplicaties in korte tijd te bouwen met behoud van goed onderhoudbare applicatie code. RoRvolgt het MVC principe voor de indeling van de applicatielogica en is technologie onafhankelijk opgezet. RoR kan zowel op Windows als op de Unix familie van operating systemen ontwikkeld en gehost worden en kan gebruik maken van de meeste populaire databases zoals Oracle, MySql, SqlServer etc. Daarnaast heeft RoR het convention over configuration principe waardoor heel veel zaken standaard ingevuld zijn zonder dat daarvoor extra instellingen nodig zijn. Evalueer de kwaliteitsdoelen De kwaliteitsdoelen zijn haalbaar, met als kanttekening dat de doelen 5,6,7 zorgvuldig met de opdrachtgever afgestemd moeten worden of ze door de te kiezen technologie afgedekt zijn. Kies de technologie die bij die doelen past Kwaliteitsdoel 0. Alle gegevens die worden vastgelegd, moeten gecontroleerd zijn.. Goede analyseerbaarheid van het systeem. 2. Domeingenerieke logica wordt slechts op één plek vastgelegd en van daaruit hergebruikt. 3. De applicaties zijnzoveel mogelijk onafhankelijkheid van wijzigingen in de database-structuur. 4. DBMS, applicatieserver, randapparatuur, et cetera moeten eenvoudig vervangen kunnen worden. 6. Het systeem moet op alle toegangsniveaus beveiligd zijn. 7. Goede schaalbaarheid. 8. Responsiesnelheid gemiddeld max sec (rapportages uitgezonderd). Invulling. Dit doel wordt ingevuld door alle domein generieke logica in de Model classes onder te brengen en in de overige classes (View, Controller) geen gegevens logica onder te brengen. 2. Door een indeling van de applicatie in model, view en controller classes is de opbouw overzichtelijk 3. De model classes dwingen dit af 4. Wijzigingen in de database structuur werken door in de Model classes. De view classes wijzigen alleen als dit nodig is vanwege wijzigingen in de te tonen informatie. 5. RoR is technologie onafhankelijk opgezet. Wijzigingen in infrastructuur worden verborgen door de configuratie en de infrastructuur abstractie logica. 6. Functie beveiliging in Ruby vindt plaats in de controller classes. Hiervoor dient een zogenaamd filter ingesteld te worden die valideert of de toegang tot een functie geautoriseerd is (bijv. met behulp van de gem declarative_authorization). Het beperken van gegevens toegang is geen standaard ondersteuning voor, hiervoor dient in de model classes extra logica geprogrammeerd te worden.toegang naar de database is met een wachtwoord beveiligd. 7. RoR is een stateless applicatie. Dit type applicaties kenmerkt zich door een goede schaalbaarheid. RoR is op dit vak geen uitzondering maar vraagt wel meer resources (RAM en CPU) dan een bijvoorbeeld een Java, PHP of.net applicatie. Door gebruik te maken van software zoals Passenger wordt het gebruik van RAM beperkt. 8. Lijkt realistisch gegeven de performance van RoR websites op dit moment. Is wel een punt van aandacht. 9. Open standaard voor communicatie. 0. RoR communiceert met XML en REST webservices door middel van de ActiveResource component en kan XML/SOAP gebruiken middels het SOAP4R component. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 2

13 Stap 7: Onderken en ontwerp de fysieke lagen 7. Onderken de fysieke lagen 7..Tier model Een 3-tier deployment model combineert een goede performance met een (voor dit systeem) afdoend niveau van beveiliging. Rails is een stateless architectuur. Dit betekent dat deze heel goed horizontaal te schalen is, mits de database snel genoeg kan blijven reageren gedurende piekbelasting. Het product Phusion Passenger werkt als loadbalancer door verscheidene Rails instances op te starten en aanvragen over deze instances te verdelen Lagenmodel Het logische lagenmodel en het technische raamwerk uit stap 5 moeten gecombineerd worden tot een fysiek lagenmodel, waardoor goed werkende applicaties kunnen worden ontwikkeld die voldoen aan de gestelde kwaliteitseisen. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 3

14 7.2 Ontwerp de fysieke implementatie van de lagen Onder 7. is al aangegeven welke technologie per laag gebruikt zal worden. Het onderstaande figuur gaat dieper in op de componenten die een Ruby on Rails applicatie bevat. Browser or Web Enabled Application HTTP, RSS, ATOM Apache, Nginx Requests Webserver Forwards Runs forked rails instances XML XHTML, XML, CSS, JS, Images Passenger Responds Responds Loadbalances RAILS Action Webservice Action View Dispatcher Renders Starts Delegates Action Controller Action View Redirects Instantiates Models Delivers Instantiates Models Active Record Action Mailer Active Resource Queries Data Mails Mail Server Requests Replies RESTfull Service HTTP, XHTML Database Elementen van de Ruby on Rails architectuur:. Dispatcher De webserver (bijv. apache) geeft aanroepen door aan de Dispatcher. De Dispatcher start de afhandeling van de aanroep door een controller class (kind van Action Controller) te instantierenen een eenmethod aan te roepen op basis van de routing regels die ingesteld zijn in de routing configuratie. Hiermee worden aanroepen gekoppeld aan de logica die de aanroep kan afhandelen. 2. Controller De controller class bevat de logica rondom het verloop en de afhandeling van een aanroep. De meeste methods in een controller class zijn de volgende twee smaken: a. Presentatie voorbereidend Als een gebruiker een object opvraagt met een zogenaamde get, dan instantieert de controller de juiste model classes en geeft deze door aan de view die gebruikt wordt om het gevraagde object te tonen. b. Actie verwerkend Als een gebruiker een bewerking van een object wil uitvoeren (bijv. post of delete) dan instantieert de controller de juiste model classes, verwerkt de gevraagde verandering en vraagt de model classes om zichzelf te valideren en op te slaan. 3. Active Record Alle model classes erven van Activerecord. De logica om de database te benaderen is veilig geabstraheerd achter de methods van ActiveRecord. In een model class wordt gegevens specifieke logica, berekeningen en veld validaties opgenomen. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 4

15 4. Action View Action laadt templates op basis van de aangeroepen method op de controller en converteert deze naar html, xml etc. naar gelang de behoefte van de aanroeper. 5. Action Webservice Deze class is bedoeld om op makkelijke wijze SOAP XML Services en de bijbehorende WSDL te publiceren. Door deze class te overerven met een zogenaamde api class en in deze api class de interface te specificeren kan vrij eenvoudig een webservice worden opgebouwd en gepubliceerd. 6. Action Mailer Actionmailer wordt gebruikt om mails vanuit de Rails applicatie te versturen. Het opbouwen van de inhoud van de mail gebeurt op dezelfde wijze als de inhoud van webpagina s alleen worden nu templates gebruikt die mailinhoud genereren. 7. Active Resource Activeresource is bedoeld om eenvoudig restfull services aan te roepen en het resultaat van de aanroep als een model class terug te geven. Het stelt wel specifieke eisen aan hoe gegevens worden opengesteld door de leverende partij. Een alternatief hiervoor is het gebruik van SOAP4R. Door het volgen van de standaard Ruby on Rails architectuur zijn de volgende implementatiekeuzen gemaakt: Taak-laag View-functionaliteit en Controller functionaliteit (conform het MVC pattern)worden gescheiden in aparte klassen Controllers en Views. Models worden geïnstantieerd als kinderen van Active Resource of Active Record. Model, View en Controller klassen worden gescheiden in aparte directories geplaatst conform de rails conventies. Domein-laag: Alle domeingenerieke logica (validaties, berekeningen, ) wordt herbruikbaar gemaakt door deze in de model classes op te nemen. Daarmee wordt het Domain Model pattern [Fowler03] gevolgd. Alle benadering van de database gaan via een Model class die erft van ActiveRecord. Infrastructuurabstractie-laag ActiveRecord verzorgt de vertaalslag tussen de objectgeörienteerde klassen (entities) en de database tabellen. Daarmee wordt het Data Mapperpattern[Fowler03] gevolgd. Het systeem gebruikt (juist ook voor de R- en zoekacties) de ActiveRecordQuery interface, die ActiveRecordautomatisch vertaald naar DBMS-specifieke SQL. Daarmee wordt het Data Mapperpattern[Fowler03] gevolgd. Het systeem volgt voor het benaderen van externe webservices dezelfde aanpak de externe services worden achter modellen verborgen en daarmee zijn deze op het juiste abstractie niveau vanuit de de controller classes te gebruiken. Stap 8: Ontwerp de communicatie tussen de lagen 8. Evalueer de communicatieregels gedefinieerd op logisch niveau. De regels van logisch model kunnen gehandhaafd blijven zonder beperkingen. 8.2 Ontwerp de fysieke communicatie tussen de lagen Dekoppeling tussen taaklaag en domeinlaag wordt op de volgende wijze geminimaliseerd. De taaklaag maakt alleen gebruik van de interfaces zoals aangeboden door de methods en getters/setters van de Model classes. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 5

16 Stap 9: Toets de geschiktheid van het lagenmodel Op fysiek niveau ziet de afhandeling van een use case er modelmatig als volgt uit: Stap 0: Documenteer het lagenmodel De resultaten van de stappen -3 en 6-8 vormen de kern van de documentatie. In het artikel Gelaagde architecturen(): Introductie wordt behandeld wat in de documentatie van een lagenmodel duidelijk gemaakt moet worden, zodat de systeemontwikkelaars er goed mee aan het werk kunnen gaan. Hogeschool Utrecht/Leo Pruijt en Wiebe Wiersema 6

Methods. Meer inzicht in een gelaagde architectuur. Het bepalen van het fysieke lagenmodel is een. Deel 3: Ontwerpen van een fysiek lagenmodel

Methods. Meer inzicht in een gelaagde architectuur. Het bepalen van het fysieke lagenmodel is een. Deel 3: Ontwerpen van een fysiek lagenmodel Methods Een lagenmodel maakt deel uit van de meeste software architecturen. Het gekozen lagenmodel kan het succes van een applicatie maken of breken. Een goed lagenmodel zorgt ervoor dat bepaalde kwaliteitsdoelen

Nadere informatie

Capita Selecta Design Patterns voor administratieve applicaties

Capita Selecta Design Patterns voor administratieve applicaties Capita Selecta voor administratieve applicaties Bij afstudeerproject: Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder 26 augustus 2006 Inhoud 26

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

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access Gebruik van cryptografie voor veilige jquery/rest webapplicaties Frans van Buul Inter Access 1 Frans van Buul frans.van.buul@interaccess.nl 2 De Uitdaging Rijke en veilige webapplicaties Een onveilig en

Nadere informatie

Meer inzicht in een gelaagde architectuur

Meer inzicht in een gelaagde architectuur 22 Methodology Leo Pruijt is als hogeschooldocent verbonden aan het lectoraat Architectuur van Digitale Informatiesystemen aan de Hogeschool Utrecht. Lagenmodellen vormen een belangrijk onderdeel van de

Nadere informatie

HDN DARTS WEB AUTHENTICATIE

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

Nadere informatie

Verantwoording van het Logica In Lagen referentiemodel

Verantwoording van het Logica In Lagen referentiemodel Verantwoording van het Logica In Lagen referentiemodel Bijlage bij Meer inzicht in gelaagde architectuur - Deel 1: Uitleg, terminologie en methoden [Pruijt10]. Leo Pruijt, Lectoraat Architectuur van Digitale

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

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

De architect: in spagaat tussen mensen en technische details. Illustratie met een simpel voorbeeld

De architect: in spagaat tussen mensen en technische details. Illustratie met een simpel voorbeeld De architect: in spagaat tussen mensen en technische details Illustratie met een simpel voorbeeld Illustratie van stap voor stap naar een architectuur aan de hand van een voorbeeld Overview Exercise Assistant:

Nadere informatie

Technologie en Interactie 3.2: software architectuur

Technologie en Interactie 3.2: software architectuur Technologie en Interactie 3.2: software architectuur Manual IAM-TDI-V2-Technologie en Interactie. Jaar 0809 blok 2 Oktober 2008 Fons van Kesteren 1/8 Inhoud Technologie en Interactie 3.2: software architectuur...

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

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

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Voorbeeldproject Een Haagse SOA Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Aanleiding Vanuit de visie

Nadere informatie

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder Stand van zaken 17 Maart 2007 Inhoud Probleemgebied afstudeerproject Oplossingsgebied afstudeerproject

Nadere informatie

Samengaan van Geo-informatie en Service Oriëntatie

Samengaan van Geo-informatie en Service Oriëntatie Samengaan van Geo-informatie en Service Oriëntatie Waterbodem Applicatie (WAB*info) 10 juli 2008 Gaston Lamaitre Data-ICT-Dienst, Delft Inhoud Wat doet Rijkswaterstaat? Doel van WAB*info De randvoorwaarden

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

CEL. Bouwstenen voor een elektronische leeromgeving

CEL. Bouwstenen voor een elektronische leeromgeving CEL Bouwstenen voor een elektronische leeromgeving FACTSHEET CEL VERSIE 1.0 DECEMBER 2001 CEL - Bouwstenen voor een elektronische leeromgeving Inhoudsopgave Wat is CEL? 1 Uitgangspunten 1 De eindgebruiker

Nadere informatie

Exercise assistant on-line

Exercise assistant on-line Exercise assistant on-line Onderwerpen - Introductie Exercise Assistant - On-line volgens MVC principe - Problemen bij MVC principe - Mogelijke oplossing - Richtingen onderzoek - Mogelijkheid tot meedoen

Nadere informatie

Een suite van web applicaties om geografische informatie in de organisatie te presenteren

Een suite van web applicaties om geografische informatie in de organisatie te presenteren M A P I N F O E X P O N A R E Een suite van web applicaties om geografische informatie in de organisatie te presenteren INTRODUCTIE VAN MAPINFO EXPONARE MapInfo Exponare is ontwikkeld om gebruikers toegang

Nadere informatie

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database Datum: 25-09-2007 Auteur: ing. E.L. Floothuis Versie: 0.1 Status: Concept Kopersteden 22-4 Postbus 157 7500 AD Enschede Tel: 053 48

Nadere informatie

Responsive web applicaties op Oracle

Responsive web applicaties op Oracle APEX Responsive web applicaties op Oracle Spreker(s) : Datum : E-mail : Arian Macleane & Jacob Beeuwkes 06-06-2013 info@transfer-solutions.com WWW.TRANSFER-SOLUTIONS.COM Outline Trends APEX intro APEX

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

Technisch Ontwerp VISSIM-PPA Koppeling

Technisch Ontwerp VISSIM-PPA Koppeling 1 Technisch Ontwerp VISSIM-PPA Koppeling Revisie Versie Datum Omschrijving 1.0 25 juli 2013 Initiële versie 1.1 26 juli 2013 Toevoeging van TDI regeltoestand. Toevoeging van bestandsnaam filtering. 1.2

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

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 05 juni 2009. Versie 3.8.0

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

Nadere informatie

Applicatie-Architecturen

Applicatie-Architecturen Applicatie-Architecturen joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Onderwerp Programming in the large! ( programming in the small)! Bijvoorbeeld: KU Leuven Veel verschillende functionaliteit

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

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

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

Nadere informatie

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Page 1 1 Kees Vianen Senior Sales Consultant Technology Solutions Oracle Nederland Agenda Geschiedenis van Oracle Portal Portal

Nadere informatie

Opdrachtformulering (pagina 3 van 7)

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

Nadere informatie

Applicatie-Architecturen

Applicatie-Architecturen Applicatie-Architecturen joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Programmeren in het echt! Programming in the large Deel van groter geheel! In teamverband! Open opdracht!! Inhoud:

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.Inleiding...3

Inhoudsopgave. Hoofdstuk 1.Inleiding...3 Struts Inhoudsopgave Hoofdstuk 1.Inleiding...3 1.1.Design patterns...3 1.1.1.Model 1 Architectuur...3 1.1.2.Model 2 Architectuur (MVC)...4 1.2.Frameworks...6 Hoofdstuk 2.Struts installatie...7 2.1.Installatie

Nadere informatie

Project plan. Erwin Hannaart Sander Tegelaar 61849 62407

Project plan. Erwin Hannaart Sander Tegelaar 61849 62407 Project plan Erwin Hannaart Sander Tegelaar 61849 62407 I4C2 I4C1 1 Inhoudsopgave Doel en doelgroep van het project... 3 Beschrijving van het project... 4 Benodigde materialen... 5 Te verwachten resultaten,

Nadere informatie

Je gaat nu een Zend-Project maken in de map C:/wamp/www (de document root van de webserver) met behulp van Zend Tool..

Je gaat nu een Zend-Project maken in de map C:/wamp/www (de document root van de webserver) met behulp van Zend Tool.. Hoofdstuk 2 Een ZF project maken het Model-View-Controller pattern Je hebt nu ZF geïnstalleerd en geconfigureerd. We gaan aan de hand van een Zend-project onderzoeken of deze installatie en configuratie

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

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 11 maart 2009. Versie 1.1.0

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

Nadere informatie

Software Design Document

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

Nadere informatie

Maximo Tips and Tricks

Maximo Tips and Tricks Maximo Tips and Tricks Agenda Tips & Tricks 1. Scherm lay-out on demand 2. Koppelen Excel en Maximo 3. Foto s toevoegen aan records 4. Type ahead functie 5. Scripting voor calculaties en validaties 6.

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

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens Nieuwbouw Vereenvoudigd en versnelt Java ontwikkeling Huub Cleutjens Inhoud IBS en Java Keuzes: taal / architectuur Productiviteit / arbeidsdeling IBS Java Development Accelerator Persistence UI Persistence

Nadere informatie

INHOUDSOPGAVE 3. 3.5 Het Boekenwinkeltje... 90 3.5.1 Registreer.aspx... 90 3.6 Opgaven... 97

INHOUDSOPGAVE 3. 3.5 Het Boekenwinkeltje... 90 3.5.1 Registreer.aspx... 90 3.6 Opgaven... 97 Inhoudsopgave 1 Inleiding 8 1.1 Het.Net Framework................................ 8 1.1.1 Het.Net Ontwikkelingsmodel....................... 8 1.1.2 Compilatie en Uitvoering in.net.....................

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

DATAMODELLERING CRUD MATRIX

DATAMODELLERING CRUD MATRIX DATAMODELLERING CRUD MATRIX Inleiding In dit whitepaper wordt de datamodelleervorm CRUD Matrix beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld

Nadere informatie

BRP-BZM Use Case Realisations Guidelines

BRP-BZM Use Case Realisations Guidelines BRP-BZM Use Case Realisations Guidelines Versie 2.0 02-09-2011 Definitief Versiehistorie Datum Versie Auteur 23-12-2010 0.1 Eerste versie R.F. Schaaf 04-01-2011 1.0 Feedback verwerkt R. Schaaf en D. Geluk

Nadere informatie

Zelftest Java EE Architectuur

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

Nadere informatie

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA

Onder de motorkap van Microsoft Azure Web Sites. Eelco Koster Software architect ORDINA Onder de motorkap van Microsoft Azure Web Sites Eelco Koster Software architect ORDINA Agenda Introductie Architectuur Project Kudu Azure Resource Manager Doel Dieper inzicht geven in de werking van Azure

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

APEX en JasperReports

APEX en JasperReports APEX en JasperReports een Dream Team! Spreker(s) : Datum : E-mail : Vincent Deelen 28 mei 2013 vincent.deelen@transfer-solutions.com WWW.TRANSFER-SOLUTIONS.COM Outline APEX en rapporten Oracle BI publisher

Nadere informatie

Is APEX a worthy substitute for Oracle Forms?

Is APEX a worthy substitute for Oracle Forms? your oracle solu+ons partner Is APEX a worthy substitute for Oracle Forms? APEX for mission critical applications: the Groupm business-case By Ronny Boeykens & Stijn Van Raes iadvise o Opgericht in 2004

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

Java op het Oracle 9i platform

Java op het Oracle 9i platform Java op het Oracle 9i platform Brede ondersteuning MVC-architectuur In dit artikel zal Erwin Groenendal ingaan op de ondersteuning van Java op het Oracle 9i platform. Naast de Oracle 9i database bestaat

Nadere informatie

SMART-Microsoft Software Factory

SMART-Microsoft Software Factory Binnen Visual Studio 2005 heeft Microsoft de zogenaamde Tools geïntroduceerd. Met deze tools kan iedereen zijn eigen visuele Domein Specific Language () definiëren. Hierbij kunnen zowel de taalelementen

Nadere informatie

Enterprise. RESTful Webservices. serieus alternatief voor SOAP?

Enterprise. RESTful Webservices. serieus alternatief voor SOAP? 12 Enterprise Paul Bakker is ontwikkelaar en trainer bij Info Support B.V. Blog: http://blogs.infosupport.com/ blogs/paul_bakker Email: paulb@infosupport.com Het afgelopen jaar is er veel te doen geweest

Nadere informatie

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix'

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

Nadere informatie

A.C. Gijssen. 0.3 PHP en MySQL

A.C. Gijssen. 0.3 PHP en MySQL PHP en MySQL A.C. Gijssen 0.3 PHP en MySQL PHP en MySQL 0.4 Inhoudsopgave Voorwoord Deel 1 Over PHP 1.1 Inleiding...13 1.2 Wat is PHP?...14 1.3 De geschiedenis van PHP...15 1.4 Editor...16 1.5 PHP en websites...17

Nadere informatie

GeoKey en Catalog Services

GeoKey en Catalog Services GeoKey en Catalog Services de sleutel tot geo-informatie Studiedag NCG 18 mei 2004 ronald.bottelier@geodan.nl Programma > Begrippen > Actualiteiten in meta-informatie > Visie op doorontwikkeling > GeoKey

Nadere informatie

Software Factories. Toepassing van Domain Specific Languages. achtergrond

Software Factories. Toepassing van Domain Specific Languages. achtergrond In de software-industrie zijn budget- en deadline-overschrijdingen aan de orde van de dag, er wordt vaak niet aan de gestelde verwachtingen voldaan. Dit kan worden voorkomen door software-ontwikkeling

Nadere informatie

Technische architectuur Beschrijving

Technische architectuur Beschrijving A gemeente Eindhoven Technische architectuur Beschrijving Specificatiecriteria Versie 1.1 A. van Loenen Technisch Beleidsadviseur B&E 21-Sep-2011 avl/fd11027578 Colofon Uitgave Gemeente Eindhoven Realisatie

Nadere informatie

UML is een visuele taal om processen, software en systemen te kunnen modeleren.

UML is een visuele taal om processen, software en systemen te kunnen modeleren. Vragen inleinding UML 1. Wat is UML? UML is een visuele taal om processen, software en systemen te kunnen modeleren. 2. Waar bestaat UML uit? Notaties(zijn symbolen, commentaar en waarden etc.) en diagrammen(grafische

Nadere informatie

i ll take off to the cloud

i ll take off to the cloud i ll take off to the cloud Webbased applicaties gebouwd door ILE programmeurs Gepresenteerd door: Drs. Martijn van Breden Lead software architect Pantheon Automatisering 26-4-2017 1 Historie Pantheon Ontstaan

Nadere informatie

Cursus Software Architecture (T32311 en T32811)

Cursus Software Architecture (T32311 en T32811) Software Architecture, T 32311 en T32811 Cursus Software Architecture (T32311 en T32811) Dit tentamen bestaat uit 3 vragen, waarbij vraag 1 en vraag 3 elk uit 2 deelvragen bestaan. Voor dit tentamen kunt

Nadere informatie

Uitleg algemene structuur WTell

Uitleg algemene structuur WTell Uitleg algemene structuur WTell Brondocument C:\WebServer\Handleiding\WTellAlgemeen\WTellStructuurGlobaal.odt Versiebeheer Versie Datum Uitleg 1.0v 21-09-11 1e versie met uitleg globale structuur WTell

Nadere informatie

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Behoudens uitzondering door de wet gesteld, mag zonder schriftelijke toestemming van de rechthebbende op het auteursrecht van

Nadere informatie

Delft-FEWS & Web Services

Delft-FEWS & Web Services Delft-FEWS & Web Services Presentatie Delft-FEWS Gebruikers dag 2018 Marc van Dijk, Rudie Ekkelenkamp, Stef Hummel 5 Juni 2018 Delft-FEWS & (Web) Services 1. Delft-FEWS 2. Roadmap 3. Standaarden Verzamelen

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

Toepassingen van webservices. Hans Janssen, SaNS-Expertisecentrum

Toepassingen van webservices. Hans Janssen, SaNS-Expertisecentrum Toepassingen van webservices Hans Janssen, SaNS-Expertisecentrum 2 Toepassingen van Webservices: App s en meer Even voorstellen: SaNS en Hans Webservices voor applicatie-integratie Iedereen z n eigen SOA

Nadere informatie

Zope. Een technische introductie. Martijn Pieters Antraciet BV mj@antraciet.nl. V1.2-26 september 1999

Zope. Een technische introductie. Martijn Pieters Antraciet BV mj@antraciet.nl. V1.2-26 september 1999 Een technische introductie Zope Martijn Pieters Antraciet BV mj@antraciet.nl V1.2-26 september 1999 Kerkstraat 19 Postbus 256 1400 AG Bussum The Netherlands e info@antraciet.nl t +31 (0)35 625 4545 f +31

Nadere informatie

Weblogic 10.3 vs IAS 10.1.3

Weblogic 10.3 vs IAS 10.1.3 Vision ~ Knowledge ~ Results Weblogic 10.3 vs IAS 10.1.3 OGh Fusion Middleware/ SOA Dag 19 Mei 2010, Het Oude Tolhuys Edwin Biemond email edwin.biemond@whitehorses.nl Web http://blogs.whitehorses.nl/,

Nadere informatie

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% Naam project Lost And Found Animals Url Lokaal gehost Groepsleden Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% 1. Beveiliging in de toepassing Naam gebruiker Wachtwoord

Nadere informatie

Cursus Analyse voor Web Applicaties 1. Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML

Cursus Analyse voor Web Applicaties 1. Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML Cursus Analyse voor Web Applicaties 1 Organisatie Opleiding Module Onderwerp Syntra AB Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML Analyse op basis van SDM en UML

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

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site Kies File>New>Blank Page>PHP Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site Geef de site een passende naam. Kies ook de juiste map voor de webdocumenten.

Nadere informatie

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen:

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

Nadere informatie

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

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

Nadere informatie

Inhoud. Introductie tot de cursus

Inhoud. Introductie tot de cursus Inhoud Introductie tot de cursus 1 De functie van de cursus 7 2 De inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen van de cursus 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en wijze van studeren

Nadere informatie

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

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

Nadere informatie

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving

Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder Stand van zaken 3 november 2007 Inhoud Aanleiding Design Patterns XML en Webservices Keuze administratief

Nadere informatie

B.Sc. Informatica Module 4: Data & Informatie

B.Sc. Informatica Module 4: Data & Informatie B.Sc. Informatica Module 4: Data & Informatie Djoerd Hiemstra, Klaas Sikkel, Luís Ferreira Pires, Maurice van Keulen, en Jan Kamphuis 1 Inleiding Studenten hebben in modules 1 en 2 geleerd om moeilijke

Nadere informatie

..over. Geoportalen. en: Interoperabiliteit, Open Standaarden en WebService Architecturen. Presentatie GIN 17 november 2004 Theo Thewessen Geodan IT

..over. Geoportalen. en: Interoperabiliteit, Open Standaarden en WebService Architecturen. Presentatie GIN 17 november 2004 Theo Thewessen Geodan IT ..over Geoportalen en: Interoperabiliteit, Open Standaarden en WebService Architecturen Presentatie GIN 17 november 2004 Theo Thewessen Geodan IT Locatie als integrator binnen Geoportalen Location Interoperabiliteit:

Nadere informatie

2BA Deeplink Gebruiksbeschrijving

2BA Deeplink Gebruiksbeschrijving 2BA Deeplink Gebruiksbeschrijving Document versie: 1.0 SCVN 02 Uitgiftedatum: 2006-5-1 Status: Conceptueel Auteur: 2BA Inhoudsopgave Inhoudsopgave... 2 1 Wat is deeplink?... 3 2 Deeplink gebruiken... 4

Nadere informatie

Ontsluiten iprova via Internet Voorbeeld methoden

Ontsluiten iprova via Internet Voorbeeld methoden Ontsluiten iprova via Internet Voorbeeld methoden 12-12-2016 Inhoudsopgave 1 Inleiding... 3 2 Algemene aandachtspunten... 4 3 Voorbeeld methoden... 6 3.1 Ontsluiten via een (bestaande) telewerken oplossing

Nadere informatie

XAMPP Web Development omgeving opzetten onder Windows.

XAMPP Web Development omgeving opzetten onder Windows. XAMPP Web Development omgeving opzetten onder Windows. Inhoudsopgave 1. Lees dit eerst... 2 2. Inleiding... 2 1 Xampp downloaden... 2 2 Installatie Xampp 1.7.4 op externe harddisk... 3 3 XAMPP herconfiguren...

Nadere informatie

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni 2008. Arthur Donkers, 1Secure BV arthur@1secure.nl SOA Security en de rol van de auditor... ISACA Roundtable 2 juni 2008 Arthur Donkers, 1Secure BV arthur@1secure.nl 1 SOA Web 2.0, web services en service oriented architecture (SOA) is tegenwoordig de

Nadere informatie

Technologieverkenning

Technologieverkenning Technologieverkenning Videocontent in the cloud door de koppeling van MediaMosa installaties Versie 1.0 14 oktober 2010 Auteur: Herman van Dompseler SURFnet/Kennisnet Innovatieprogramma Het SURFnet/ Kennisnet

Nadere informatie

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica ECTS fiche Module info OPLEIDING STUDIEGEBIED AFDELING MODULE MODULENAAM Programmeren 5 MODULECODE B STUDIEPUNTEN 10 VRIJSTELLING MOGELIJK ja Handelswetenschappen en bedrijfskunde HBO Informatica Evaluatie

Nadere informatie

Hoe bouw ik een component? Drs. Arjan Burger

Hoe bouw ik een component? Drs. Arjan Burger Hoe bouw ik een component? Drs. Arjan Burger Zelf bouwen in Joomla! Veel standaard componenten aanwezig Zelf bouwen: meer mogelijkheden Maatwerk (redelijke tot grondige) PHP kennis vereist Meeliften op

Nadere informatie

Program overview. Year 2013/2014 Electrical Engineering, Mathematics and Computer Science

Program overview. Year 2013/2014 Electrical Engineering, Mathematics and Computer Science Program overview 5-Jun-017 0:17 Year 013/014 Organization Electrical Engineering, Mathematics and Computer Science Education Minors EWI Code Omschrijving ECTS TI-Mi-110-13 TI-Mi-110-13 Software Ontwerpen

Nadere informatie

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium Zelftest OOAD/UML Document: N0767Test.fm 30/08/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is gebaseerd op de inhoud van onze cursus OO

Nadere informatie

Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit

Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit Inleiding Op het gebied van scholing van de taal Java zijn er vele aanbieders op de markt.

Nadere informatie

Base24 database suite

Base24 database suite Base24 database suite Introductie De Base24 database suite is een zeer geavanceerde database oplossing die ontworpen is voor de management, opslag, inzage en uitwisseling van medische informatie zoals

Nadere informatie

Aansluiten op VPI. (VolmachtBeheer Producten Interface)

Aansluiten op VPI. (VolmachtBeheer Producten Interface) Aansluiten op VPI (VolmachtBeheer Producten Interface) Auteur : Max Wout en Bram Doveren (Colimbra) Versie : 1.1 Datum : 27 april 2009 Inhoudsopgave 1 Algemeen... 3 1.1 Aanleiding... 3 1.2 Doel van dit

Nadere informatie

Whitepaper. Connected Android Apps. Inleiding

Whitepaper. Connected Android Apps. Inleiding Whitepaper Connected Android Apps Inleiding Dit jaar zou wel eens het jaar van de tablet kunnen worden. De mobiele markt heeft met de komst van de tablet al laten zien dat mobiliteit niet stopt bij het

Nadere informatie