Nord Toelichting Techniek
Upcoming SlideShare
Loading in...5
×
 

Nord Toelichting Techniek

on

  • 372 views

 

Statistics

Views

Total Views
372
Views on SlideShare
370
Embed Views
2

Actions

Likes
0
Downloads
2
Comments
0

2 Embeds 2

http://www.slideshare.net 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Nord Toelichting Techniek Nord Toelichting Techniek Presentation Transcript

  • 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