Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
_

...

Toc500925727
_Toc500925727
Minlog 2

...

Anchor
_

...

Toc500925728
_Toc500925728
Design og arkitektur


Anchor
_Toc379810710
_Toc379810710
Indhold
Minlog 2
Design og arkitektur
Indledning
Dokumenthistorik
Formål
Overblik
Snitflader
Komponenter
Webservice
Sikkerhed
Statuskomponent
Forretningslag
Databasedesign
Caching
Ikke funktionelle krav
Sikkerhed
SLA logning
Audit logning


Anchor
_Toc500925729
_Toc500925729

...

Indledning


Anchor

...

_

...

Toc500925730
_Toc500925730
Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

1.1

12-12-2017

Openminds

Ny borgerservice

1.0

14-06-2017

Openminds

 

...

...



Anchor
_Toc500925731
_Toc500925731
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. Anchor_Toc379810712_Toc379810712 Anchor_Toc379537352_Toc379537352 Et eller andet her mod siger sig selv
Anchor_Toc379810713_Toc379810713 Anchor_Toc379537353_Toc379537353

Anchor
_Toc500925732
_Toc500925732

...

Overblik

MinLog2 er delt i to applikationer, Registration og Lookup.
Registration tilbyder services til.

...

  • Forespørgsel på logninger til borger opslag.
  • Forespørgsel på logninger til medhjælpslog.

Image Added

Forretningsdata persisteres i en relationel database.

Lookup services findes i 2 sikkerhedsvarianter

  1. DGWS
  2. OIOIDWS

...

Anchor
_Toc500925733
_Toc500925733
Snitflader

Løsningen har en ekstern snitflade, der udstiller de ovenfor nævnte services som webservices.
Der er ikke afhængigheder til andre services, men til komponenter til håndtering af autentifikation (SEAL) og SLA logning (NSPUtils).
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.

Anchor
_Toc379810715
_Toc379810715
Anchor
_Toc379537355
_Toc379537355

...

En servlet, der fortælle hvilken version af løsningen, der er den aktuelle.

Anchor
_Toc500925738
_Toc500925738
Forretningslag

...

Indeholder logikken til insert af data fra Registration samt forespørgsel fra Lookup.
Registration, gør udelukkende brug af JPA til at håndtere forbindelsen til databasen. Alt insert sker via standard preparedStatements. Dette er gjort med henblik på af holde JPA ude af domain pakken, da direkte insert i databasen, fra servicen, er en midlertidig løsning.
Lookup, bruger JPA dels til forbindelsen, men også mapning til domain. Dog er alle queries defineret som rå SQL, i koden, således at intet bliver autogeneret. Dette er gjort for at imødekomme tidligere erfaringer på platformen, om at autogeneret SQL fra JPA kan blive unødig kompleks og forringe performance.

Afhængigheder mellem komponenter.

Anchor
_Toc500925739
_Toc500925739
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
_Toc368486172
_Toc368486172
. Database layout kan ses i filen "shared/shared-configuration/src/main/resources/sql/initial_schema.sql".
For at forhindre at der kan forekomme dublikater ved insert, laves der en SHA256 hash over en række værdier, af databasen.

Anchor
_Toc500925740
_Toc500925740
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.

Anchor
_Toc371059120
_Toc371059120
Anchor
_Toc485225566
_Toc485225566
Anchor
_Toc500925741
_Toc500925741
Ikke funktionelle krav

...