Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Nord Toelichting Techniek

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Ontwikkelen in de browser
Ontwikkelen in de browser
Cargando en…3
×

Eche un vistazo a continuación

1 de 22 Anuncio

Más Contenido Relacionado

Similares a Nord Toelichting Techniek (20)

Más reciente (20)

Anuncio

Nord Toelichting Techniek

  1. 1. N.O.R.D. Nederlandse Overledene Registratie Donoren "The making of" Tjerk Valentijn ET ICT 27-10-2009
  2. 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. 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. 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. 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. 6. NORD techniek 6
  7. 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. 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. 9. Spring MCV NORD techniek 9
  10. 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. 11. Integration tests met Spring NORD techniek 11
  12. 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. 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. 14. Hibernate: een voorbeeld NORD techniek 14
  15. 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. 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. 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. 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. 19. NORD techniek 19
  20. 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. 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. 22. Einde NORD techniek 22

×