Page History
Indhold
Table of Contents |
---|
Indledning
...
Indledning
Dokumenthistorik
Formål
Overblik
Snitflader
Komponenter
Webservice
Sikkerhed
Statuskomponent
Forretningslag
Databasedesign
Caching
Ikke funktionelle krav
Sikkerhed
SLA logning
Audit logning
...
Dokumenthistorik
Version | Dato | Ansvarlig | Beskrivelse |
1.2 | 07-09-2018 | Openminds | Specificering af OIOIDWS service |
1.1 | 12-12-2017 | Openminds | Ny borgerservice |
1.0 | 14-06-2017 | Openminds |
...
...
...
Formål
Dette dokument giver et overblik over MinLog2 applikationerne med fokus på design og arkitektur.
Dokumentet giver et overblik over løsningens snitflader samt den interne struktur. Desuden indeholder det en beskrivelse af håndtering af ikke funktionelle krav.
...
...
Overblik
MinLog2 er delt i to applikationer, Registration og Lookup.
...
Lookup services findes i 2 sikkerhedsvarianter
- DGWS
- OIOIDWS
...
Snitflader
Løsningen har en ekstern snitflade, der udstiller de ovenfor nævnte services som webservices.
...
Udover MinLog2's egen database, er løsningen afhængig af stamdatamodulets databaser, til berigelse af logdata ved Lookup. Principperne for anvendelse af stamdata fra stamdatamodulet afviges dermed, idet der ikke anvendes enkeltopslags- services eller kopiregisterservices. Dette er dog accepteret i MinLog 2-sammenhæng.
...
Komponenter
Løsningen er designet som en JEE applikation bestående af følgende komponenter. Hvis der er ting der adskiller sig i de to applikationer, bliver det nævnt specifikt:
...
...
Webservice
CXF webservice komponent, der udstiller de forretningsmæssige services. Denne komponent håndterer protokol og headers.
...
...
Sikkerhed
Sikkerheden er implementeret i 2 varianter DGWS og OIOIDWS.
...
Autenficering af brugeren er foretages premature af STS. Bemærk at der efter aftale ikke er gjort brug af whitelisting på det udstillede services.
...
...
...
Statuskomponent
...
...
Monitorering
En simpel servlet, der returnerer ok (http kode 200), hvis systemet er tilgængeligt. Desuden er det muligt at få detaljer om, hvilke komponenter, der er i live eller fejler.
...
En servlet, der fortælle hvilken version af løsningen, der er den aktuelle.
...
Forretningslag
Indeholder forretningslogikken.
...
En stateless ejb(controller) modtager kald fra webservicelaget og delegerer til andre klasser, der hver især håndterer hhv. validering, caching, groupering samt håndtering af persistens.
...
Domain
For Lookup Indeholder domain, JPA klasser til persistering. I Registration er det POJO's.
...
Afhængigheder mellem komponenter.
...
Databasedesign
Log events, består af to dele. En source og en destination. Destination indeholder alt information om logningen, mens source er kaldekæden gennem systemerne. Se Løsningsbeskrivelsen for nærmere beskrivelse. Disse gemmes i hver sin tabel Anchor
For at forhindre at der kan forekomme dublikater ved insert, laves der en SHA256 hash over en række værdier, af databasen.
...
...
Caching
I MinLog2-Lookup er der en feature der kan opdele logninger i en række forskellige grupper. Det er et krav at der er mulighed for at bruge paginering ved disse grupper. Det giver problemer da grupperne nødvendigvis skal dannes på baggrund af hele søge resultatet og ikke blot over en delmængde. Hvis det skulle være muligt er man nød til at søge hele resultatet frem hver gang der forespørges på en ny side.
For at imødekomme begge krav, er der anvendt caching(ehcache) i Lookup. Når data er blevet grupperet bliver det cached. Der anvendes en nøgle generet ud fra de forskellige parametere i forespørgselen.
...
...
Ikke funktionelle krav
...
Sikkerhed
Løsningen er sikret med IDCard, der enten kan repræsentere en person eller en myndighed. I tilfælde af Lookupid anvendes OIOIDWS.
Ved hver enkelt servicekald verificeres det, at kalderen har den fornødne rolle (myndighed eller medarbejder), og at det medfølgende IDCard overholder levetidskravet til det konkrete kald.
...
SLA logning
Der logges med brug af NSPUtils biblioteket: Et filter opretter en log entitet, der senere beriges med messageID fra Medcom headeren.
SLAloggen gemmes i en tekstfil, og dens udseende kan konfigureres.
...
Audit logning
Ved alle kald registreres
...