SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
N.O.R.D.
      Nederlandse Overledene Registratie Donoren
                   "The making of"

Tjerk Valentijn
ET ICT
27-10-2009
Het project

• Registreren van overledenen in NL ziekenhuizen aan de
hand van medische status en donatieformulier
• In de jaren 90 een diskette-applicatie (zoals vroeger bij de
belastingaangifte), sinds 2001 een web-applicatie
• ~100 ziekenhuislocaties
• ~130 gebruikers (3 tot 5 concurrent)
• 40.000 records per jaar (110 - 150 p.dag)
• Gemiddelde gebruiker heeft nauwelijks
computervaardigheden




                           NORD techniek                    2
Problemen met de huidige applicatie

• De oorspronkelijk opzet past niet bij de actuele wensen
• Er is geen consistente GUI
• Het datamodel is niet flexibel
• De gebruikers en de NTS zitten niet op 1 lijn wat definities
betreft
• Er bestaat (in DWH) een complexe, niet transparante laag
met PL/SQL "filters" die conclusies trekken over de
ingevoerde gegevens



                           NORD techniek                   3
De oplossing

• Client-server (4e generatie), we maken geen gebruik
  meer van de omweg van de 3e generatie web-
  applicaties. De server handelt geen GUI events af
• Hoeven dus ook geen HTML op de server samen te
  stellen
• Door client-side eventafhandeling kunnen we een snelle
  en gebruiksvriendelijke GUI maken zodat de gebruikers
  zoveel mogelijk geholpen worden bij het invoeren. Dit is
  vergelijkbaar met DPA


                        NORD techniek                  4
Waaraan moet een deeloplossing voldoen?

• Een grote 'community' (veel en goede
  documentatie, google, forums etc.)
• Voor ontwikkelaars door ontwikkelaars
• Goede testbaarheid
• Vanuit oogpunt van de Java programmeur
• Productiviteit, minder werk zonder flexibiliteit en
  transparantie op te geven
• Eenvoud (dingen zijn waar je ze verwacht)
• Modulariteit (verwisselbaarheid)


                       NORD techniek                    5
NORD techniek   6
Kenmerken van een REST architectuur

• Alternatief voor SOAP en andere RPC (Remote
  Procedure Call) methoden
• Maak gegevens beschikbaar via unieke URLs
• Gebruik de vier werkwoorden van het web (GET, PUT,
  POST, DELETE) om de gegevens achter de URLs te
  manipuleren
• Werkt client-server waarbij de server geen informatie
  over de client bijhoudt tussen requests
• Gelaagdheid, caching, ontkoppeling, schaalbaarheid



                        NORD techniek                 7
Spring

Wat krijg je?
 •
     Goede testbaarheid, Spring regelt de koppeling tussen
     objecten en de applicatie kan buiten de server werken
     en getest worden
 •
     Gebruikte frameworks (Hibernate) worden eenvoudiger,
     Spring regelt de noodzakelijke "loodgieterij"

Welke onderdelen?
 •
     Spring IOC (Inversion Of Control) container om
     declaratief objecten te koppelen
 •
     Spring MVC om eenvoudig REST webservices te
     maken
 •
     Spring testframework om persistence te testen in
     geisoleerde transacties
                           NORD techniek                8
Spring MCV




  NORD techniek   9
Alternatieven voor Spring MVC als web-controller

• Handgeschreven servlets (veel programmeren)
• Een JAX-RS implementatie (instabiel, onvolwassen)
• Het Restlet framework (degelijk, maar te veel
  mogelijkheden)
• Grails (te exotisch, gebruikt Groovy ipv Java)




                       NORD techniek                  10
Integration tests met Spring




         NORD techniek         11
Hibernate: Java <--> DB

* Is gericht op de Java ontwikkelaar, maar niet bedoeld om de
database te negeren of te verwaarlozen




                             NORD techniek                      12
Hibernate: wat heb je er aan?

• Declaratieve manier om Java objecten en een
  database te koppelen. In combinatie met Spring wordt
  Hibernate nog eenvoudiger
• Declaratieve manier om caching van objecten toe te
  passen om de database te ontlasten
• Hibernate update alleen de database als object(en)
  daadwerkelijk aangepast zijn
• Zeer configurabel, maar dat is optioneel
• Eenvoudig ontwikkelen en testen tegen een 'in-
  memory' database in plaats van een zware Oracle
  database via het netwerk

                       NORD techniek                13
Hibernate: een voorbeeld




        NORD techniek      14
JQuery

is voornamelijk een DSL (Domain Specific Language) voor
webpagina's zoals SQL is voor Relationele databases

Wat levert dit op?

• Biedt ontwikkelaars een API bovenop JavaScript om snel
  en crossbrowser te kunnen werken met de DOM
  (Document Object Model)
• De ontwikkelaar kan DOM objecten eenvoudig selecteren,
  groeperen, filteren en bewerken
• Biedt ontwikkelaars een manier om componenten binnen
  een GUI los te koppelen door middel van 'custom events'
• Biedt veel plugins en een eenvoudige manier om plugins
  te schrijven
                         NORD techniek                15
Testen

Automatisch testen staat centraal in dit project. Middelen?

Client
• Unit tests met Qunit (van de makers van JQuery)
• Functionele tests (use cases) met Selenium

Server
• Unit tests van Java code met JUnit
• Integration tests met Spring, afhankelijkheden zijn tijdens
  tests te vervangen door 'test doubles'


                            NORD techniek                     16
Bean validation (JSR 303)
 • Standaard, declaratief validatieframework voor de
   bussinesslaag van applicaties
 • Mogelijkheden om de validaties naar meerdere lagen
   (database of GUI) te exporteren
 • Voorbeeld:
@NotNull(message="is verplicht") @Past
private Date overlijdenDatum;

@Min(value = -1, message="mimimaal 0") @Max(value = 150,
message="maximaal 150")
private int leeftijd;

@NotNull(message="is verplicht") @Pattern(regexp = VALID_PATNUM,
message="mag alleen uit cijfers en letters bestaan")
private String patientNummer;


                              NORD techniek                    17
Tools

• Iedere ontwikkelomgeving kan unit tests uitvoeren
• Iedere ontwikkelomgeving biedt hulp om het werken met
  Spring en Hibernate te vereenvoudigen
• Iedere ontwikkelomgeving biedt hulp met syntax
  highlighting voor Java, JavaScript, CSS, HTML etc.
• Iedere ontwikkelomgeving biedt hulp met refactoring

Verder nog:
• Firefox developer plugins:
• Firebug
• Live HTTP Headers
• Online tools zoals JSLint en:
• http://tools.mozilla.com/

                          NORD techniek              18
NORD techniek   19
Samenvattend: wat werkt?

• REST als communicatie-architectuur
• JSON als communicatieformaat
• GSON om JSON Strings naar Java objecten te vertalen en
  weer terug
• Spring MVC om webservices te bouwen
• Spring integration tests en Junit unit tests
• Hibernate om de applicatie aan de database te koppelen
• JQuery selectors, plugins en event-binding
• Bean validation voor declaratieve validaties
• Caching verminderd communicatie tussen lagen,
  bijvoorbeeld ETags en Hibernate object cache
• JavaScript als volwaardige programmeertaal



                        NORD techniek                20
Toepasbaarheid op de afdeling

• Hoe snel kan iemand met alleen basale
  Java kennis hiermee productief worden?
• Wat is het beste opleidingstraject voor
  mensen met alleen basale Java kennis? 




                 NORD techniek              21
Einde




NORD techniek   22

Weitere ähnliche Inhalte

Ähnlich wie Nord Toelichting Techniek

PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
Richard Tuin
 
How Oracle Management Cloud enabled a successful scratch of a 7-year old per...
How Oracle Management Cloud enabled a successful scratch of a 7-year old per...How Oracle Management Cloud enabled a successful scratch of a 7-year old per...
How Oracle Management Cloud enabled a successful scratch of a 7-year old per...
Lucas Jellema
 
Open Source ECM Alternatief Alfresco
Open Source ECM Alternatief AlfrescoOpen Source ECM Alternatief Alfresco
Open Source ECM Alternatief Alfresco
Edwin van der Geest
 
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
FARO
 

Ähnlich wie Nord Toelichting Techniek (20)

Techdays 2013 NL - Serious Request met Windows Azure
Techdays 2013 NL - Serious Request met Windows AzureTechdays 2013 NL - Serious Request met Windows Azure
Techdays 2013 NL - Serious Request met Windows Azure
 
Open IT-architectuur zet beheer publieke&private buitenruimte weer op de kaart
Open IT-architectuur zet beheer publieke&private buitenruimte weer op de kaartOpen IT-architectuur zet beheer publieke&private buitenruimte weer op de kaart
Open IT-architectuur zet beheer publieke&private buitenruimte weer op de kaart
 
IMPACT Framework en Evaluatie by Clemens Neudecker
IMPACT Framework en Evaluatie by Clemens NeudeckerIMPACT Framework en Evaluatie by Clemens Neudecker
IMPACT Framework en Evaluatie by Clemens Neudecker
 
Webservices
WebservicesWebservices
Webservices
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
 
About Node.js
About Node.jsAbout Node.js
About Node.js
 
Basis Javascript
Basis JavascriptBasis Javascript
Basis Javascript
 
IT- Presentatie.Net 2011 05
IT- Presentatie.Net 2011 05IT- Presentatie.Net 2011 05
IT- Presentatie.Net 2011 05
 
Introductie robot framework
Introductie robot frameworkIntroductie robot framework
Introductie robot framework
 
SURF Lego - SURFwired - Edwin Verheul - NWD23
SURF Lego - SURFwired - Edwin Verheul - NWD23SURF Lego - SURFwired - Edwin Verheul - NWD23
SURF Lego - SURFwired - Edwin Verheul - NWD23
 
How Oracle Management Cloud enabled a successful scratch of a 7-year old per...
How Oracle Management Cloud enabled a successful scratch of a 7-year old per...How Oracle Management Cloud enabled a successful scratch of a 7-year old per...
How Oracle Management Cloud enabled a successful scratch of a 7-year old per...
 
Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatie
 
Techdays System Center 2012 Operations Manager end-to-end management walter ...
Techdays  System Center 2012 Operations Manager end-to-end management walter ...Techdays  System Center 2012 Operations Manager end-to-end management walter ...
Techdays System Center 2012 Operations Manager end-to-end management walter ...
 
Unleash the power of raven db
Unleash the power of raven dbUnleash the power of raven db
Unleash the power of raven db
 
Hoe kies ik het juiste javascript front end framework?
Hoe kies ik het juiste javascript front end framework?Hoe kies ik het juiste javascript front end framework?
Hoe kies ik het juiste javascript front end framework?
 
Open Source ECM Alternatief Alfresco
Open Source ECM Alternatief AlfrescoOpen Source ECM Alternatief Alfresco
Open Source ECM Alternatief Alfresco
 
SODA - Overdracht van digitaal archief in 10 stappen
SODA - Overdracht van digitaal archief in 10 stappenSODA - Overdracht van digitaal archief in 10 stappen
SODA - Overdracht van digitaal archief in 10 stappen
 
Flex In De Praktijk
Flex In De PraktijkFlex In De Praktijk
Flex In De Praktijk
 
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
 

Nord Toelichting Techniek

  • 1. N.O.R.D. Nederlandse Overledene Registratie Donoren "The making of" Tjerk Valentijn ET ICT 27-10-2009
  • 2. Het project • Registreren van overledenen in NL ziekenhuizen aan de hand van medische status en donatieformulier • In de jaren 90 een diskette-applicatie (zoals vroeger bij de belastingaangifte), sinds 2001 een web-applicatie • ~100 ziekenhuislocaties • ~130 gebruikers (3 tot 5 concurrent) • 40.000 records per jaar (110 - 150 p.dag) • Gemiddelde gebruiker heeft nauwelijks computervaardigheden NORD techniek 2
  • 3. Problemen met de huidige applicatie • De oorspronkelijk opzet past niet bij de actuele wensen • Er is geen consistente GUI • Het datamodel is niet flexibel • De gebruikers en de NTS zitten niet op 1 lijn wat definities betreft • Er bestaat (in DWH) een complexe, niet transparante laag met PL/SQL "filters" die conclusies trekken over de ingevoerde gegevens NORD techniek 3
  • 4. De oplossing • Client-server (4e generatie), we maken geen gebruik meer van de omweg van de 3e generatie web- applicaties. De server handelt geen GUI events af • Hoeven dus ook geen HTML op de server samen te stellen • Door client-side eventafhandeling kunnen we een snelle en gebruiksvriendelijke GUI maken zodat de gebruikers zoveel mogelijk geholpen worden bij het invoeren. Dit is vergelijkbaar met DPA NORD techniek 4
  • 5. Waaraan moet een deeloplossing voldoen? • Een grote 'community' (veel en goede documentatie, google, forums etc.) • Voor ontwikkelaars door ontwikkelaars • Goede testbaarheid • Vanuit oogpunt van de Java programmeur • Productiviteit, minder werk zonder flexibiliteit en transparantie op te geven • Eenvoud (dingen zijn waar je ze verwacht) • Modulariteit (verwisselbaarheid) NORD techniek 5
  • 7. Kenmerken van een REST architectuur • Alternatief voor SOAP en andere RPC (Remote Procedure Call) methoden • Maak gegevens beschikbaar via unieke URLs • Gebruik de vier werkwoorden van het web (GET, PUT, POST, DELETE) om de gegevens achter de URLs te manipuleren • Werkt client-server waarbij de server geen informatie over de client bijhoudt tussen requests • Gelaagdheid, caching, ontkoppeling, schaalbaarheid NORD techniek 7
  • 8. Spring Wat krijg je? • Goede testbaarheid, Spring regelt de koppeling tussen objecten en de applicatie kan buiten de server werken en getest worden • Gebruikte frameworks (Hibernate) worden eenvoudiger, Spring regelt de noodzakelijke "loodgieterij" Welke onderdelen? • Spring IOC (Inversion Of Control) container om declaratief objecten te koppelen • Spring MVC om eenvoudig REST webservices te maken • Spring testframework om persistence te testen in geisoleerde transacties NORD techniek 8
  • 9. Spring MCV NORD techniek 9
  • 10. Alternatieven voor Spring MVC als web-controller • Handgeschreven servlets (veel programmeren) • Een JAX-RS implementatie (instabiel, onvolwassen) • Het Restlet framework (degelijk, maar te veel mogelijkheden) • Grails (te exotisch, gebruikt Groovy ipv Java) NORD techniek 10
  • 11. Integration tests met Spring NORD techniek 11
  • 12. Hibernate: Java <--> DB * Is gericht op de Java ontwikkelaar, maar niet bedoeld om de database te negeren of te verwaarlozen NORD techniek 12
  • 13. Hibernate: wat heb je er aan? • Declaratieve manier om Java objecten en een database te koppelen. In combinatie met Spring wordt Hibernate nog eenvoudiger • Declaratieve manier om caching van objecten toe te passen om de database te ontlasten • Hibernate update alleen de database als object(en) daadwerkelijk aangepast zijn • Zeer configurabel, maar dat is optioneel • Eenvoudig ontwikkelen en testen tegen een 'in- memory' database in plaats van een zware Oracle database via het netwerk NORD techniek 13
  • 14. Hibernate: een voorbeeld NORD techniek 14
  • 15. JQuery is voornamelijk een DSL (Domain Specific Language) voor webpagina's zoals SQL is voor Relationele databases Wat levert dit op? • Biedt ontwikkelaars een API bovenop JavaScript om snel en crossbrowser te kunnen werken met de DOM (Document Object Model) • De ontwikkelaar kan DOM objecten eenvoudig selecteren, groeperen, filteren en bewerken • Biedt ontwikkelaars een manier om componenten binnen een GUI los te koppelen door middel van 'custom events' • Biedt veel plugins en een eenvoudige manier om plugins te schrijven NORD techniek 15
  • 16. Testen Automatisch testen staat centraal in dit project. Middelen? Client • Unit tests met Qunit (van de makers van JQuery) • Functionele tests (use cases) met Selenium Server • Unit tests van Java code met JUnit • Integration tests met Spring, afhankelijkheden zijn tijdens tests te vervangen door 'test doubles' NORD techniek 16
  • 17. Bean validation (JSR 303) • Standaard, declaratief validatieframework voor de bussinesslaag van applicaties • Mogelijkheden om de validaties naar meerdere lagen (database of GUI) te exporteren • Voorbeeld: @NotNull(message="is verplicht") @Past private Date overlijdenDatum; @Min(value = -1, message="mimimaal 0") @Max(value = 150, message="maximaal 150") private int leeftijd; @NotNull(message="is verplicht") @Pattern(regexp = VALID_PATNUM, message="mag alleen uit cijfers en letters bestaan") private String patientNummer; NORD techniek 17
  • 18. Tools • Iedere ontwikkelomgeving kan unit tests uitvoeren • Iedere ontwikkelomgeving biedt hulp om het werken met Spring en Hibernate te vereenvoudigen • Iedere ontwikkelomgeving biedt hulp met syntax highlighting voor Java, JavaScript, CSS, HTML etc. • Iedere ontwikkelomgeving biedt hulp met refactoring Verder nog: • Firefox developer plugins: • Firebug • Live HTTP Headers • Online tools zoals JSLint en: • http://tools.mozilla.com/ NORD techniek 18
  • 20. Samenvattend: wat werkt? • REST als communicatie-architectuur • JSON als communicatieformaat • GSON om JSON Strings naar Java objecten te vertalen en weer terug • Spring MVC om webservices te bouwen • Spring integration tests en Junit unit tests • Hibernate om de applicatie aan de database te koppelen • JQuery selectors, plugins en event-binding • Bean validation voor declaratieve validaties • Caching verminderd communicatie tussen lagen, bijvoorbeeld ETags en Hibernate object cache • JavaScript als volwaardige programmeertaal NORD techniek 20
  • 21. Toepasbaarheid op de afdeling • Hoe snel kan iemand met alleen basale Java kennis hiermee productief worden? • Wat is het beste opleidingstraject voor mensen met alleen basale Java kennis?  NORD techniek 21