Løsningen er designet som en JEE applikation bestående af følgende komponenter:
Webservice
JaxWS webservice komponent, der udstiller de forretningsmæssige services. Denne komponent håndterer protokol og headers.
Håndtering af headers
WSSecurity
IDCard læses fra SOAPHeader og sættes det på threadlocal. Kan kortet ikke læses, eller er signaturen ugyldig afvises brugeren.
I svaret tilføjes en WSSecurity header med et timestamp.
Medcom
På vej ind gemmes Medcom header på Threadlocal. På vej ud tilføjes Medcom header baseret på den indkomne.
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.
Versionsinfo
En servlet, der fortælle hvilken version af løsningen, der er den aktuelle.
Forretningslag
Indeholder forretningslogikken samt sikkerhed.
Autentifikation og autorisation
IDCard fra Threadlocal og autentificerer kalderen ved at kontrollere, at kortet er gyldigt og ikke udløbet.
Herefter autoriseres brugeren, idet det verificeres, at denne har det fornødne niveau (medarbejder eller virksomhed) og er at finde på en hvidliste.
Forretningslogik
En stateless ejb modtager kald fra webservicelaget og delegerer til andre services, der hver især håndterer hhv. dannelse af erstatningsCPRnumre samt håndtering af persistens.
Domain
Indeholder JPA klasser til persistering.