Indhold

Introduktion

Formål

Formålet med dette dokument er at beskrive systemarkitekturen for DDTV.

Læsevejledning

Nærværende dokument er tiltænkt udviklere og IT-arkitekter med interesse i DDTV og dens opbygning.

Overblik over DDTV

Løsningens afhængigheder

DDTV anvender NSP libraries:

Øvrige afhængigheder:

Løsningens overordnede opbygning

Nedenstående diagram viser opbygningen af DDTV services: 

Den aktive del af DDTV lever udelukkende i NSP backend, og alle oplysninger opbevares i én simpel database (DDTV DB, se 5. Udkast til ER-model)

Der er i praksis er tale om 3 typer af services:

OIOIDWS og DGWS servicen udstilles gennem DCC på cNSP instanser og bør kun anvendes gennem DCC.

Services og jobs anvender i varierende grad CPR og SOR oplysninger til dels at validere eksistens af borger/organisation, søge status på borger/organisation og finde oplysninger knyttet til borger/organisation. Det sker udelukkende gennem anvendelse af services på NSP (PersonInformationService for CPR og SORES for SOR).

Digital Post sendes gennem Digital Post Adapteren.

EDI sendes gennem EDI-portalens API.

For yderligere indflyvning, sekvensdiagrammer, state-diagrammer mv. henvises til Arkitektur og design.

Moduler og driftsarkitektur

De tre services er forholdsvis ens opbygget, og har en del fælles kode som de deles om via et maven-modul, har samme programstruktur og bruger samme database-modul.

De tre services har tilsammen følgende moduler i maven:

ModulnavnBeskrivelse
ddtv-schemas   Dette modul definerer API'en for de to services, der kan kaldes ekternt, hhv. en OIO-IDWS WSDL fil for den borgervendte service DDTV-citizen, samt en DGWS WSDL fil for DDTV-dentist-servicen. Modulets primære formål er at generere Java-kode ud fra WSDL'erne, som kan bruges i de andre moduler.
ddtv-common

Fælles kode for de services, primært utility-funktioner, bl.a. til logning, samt DAO-klasser.

ddtv-integrations

Modul som indeholder integrationer:

  • PersonInformation til CPR-opslag
  • SORES til opslag af tandlæger i SOR
  • DigitalPost til afsendelse af digital post til borgere
  • EDIMessage til afsendelse af EDI beskeder til tandlæger
ddtv-citizen-serviceModul, som implementerer den borgervendte OIO-IDWS webservice.
ddtv-dentist-serviceModul, som implementerer den DGWS webservicen til brug for tandlæger.
ddtv-batch-serviceModul, som implementerer de 5 batchjobs nævnt ovenfor.
ddtv-integrationtestModul som indeholder integrationstests for de services, der kan kaldes eksternt.

Driftsarkitektur

I praksis er de alle services installeret i BackOffice. Det er også her at alle ændringer bliver persisteret til databasen.

Sikkerhed

Brugertyper

De enkelte brugertyper bestemmes ud fra modellen, der udstilles i Security API. Disse regler er opsummeret i skemaerne herunder. Sikkerhedsmodellen tager udgangspunkt i Security API - Guide til anvendere.

I kolonnen "Mapning til DdtvActor" kan man se, hvordan værdierne bliver gemt i DdtvActor-klassen i Java-koden. 

Brugertypen: BorgerVerifikationMapning til DdtvActor
SecurityContextTicketAudienceSkal matche audience for IDWS servicen, defineret i property ddtv.audience i application.properties  


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUserUserTypeSkal være CitizenactorType


IdentifierSkal være deractorIdType


IdentifierFormatSkal være deractorId


GivenNameVerificeres ikke - må gerne være der


SurNameVerificeres ikke - må gerne være der


CredentialsVerificeres ikke - må gerne være der

PrincipalUserIdentifierHvis angivet, skal der være givet fuldmagt (PowerOfAttorneyPrivileges)
procurationGiverId

OrganisationIdentifierMå ikke være der


IdentifierFormatMå ikke være der

Client
Verificeres ikke - må gerne være der
Brugertypen: SystemVerifikationMapning til DdtvActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUser
Må ikke være der

PrincipalUser
Må ikke være der

OrganisationIdentifier

Skal være der.

Hvis der i property'en whitelisted.cvrs i application.properties er angivet en ikke-tom kommasepareret liste af cvr-numre skal actorId kunne findes i listen.

actorId


IdentifierFormatSkal være deractorIdType

Beslutninger

På NSP har man flere brugertyper, herunder følgende, som er relevante for DDTV:

Servicen DDTV-Citizen kan kun anvendes af Citizen med OIOIDWS-kald. En borger kan selv anvende servicen, eller den kan anvendes af en fuldmagtshaver.

Servicen DDTV-Dentist kan kun anvendes af System, dvs. der kaldes med DGWS systemkald.