Your SlideShare is downloading. ×
Nord Toelichting Techniek
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Nord Toelichting Techniek

266
views

Published on

Published in: Technology, Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
266
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 6. NORD techniek 6
  • 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
  • 19. NORD techniek 19
  • 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
  • 22. Einde NORD techniek 22

×