Her finder du løsningsarkitektur for Orkestreringskomponenten, der viser komponenter, services og snitflader til hhv datakilder og dataanvender samt den tekniske infrastruktur.
Redaktør: Kurt Hansen
Indledning
I nedenstående gives en overordnet beskrivelse af opbygningen af Orkestreringskomponenten, hvor der fokuseres på den interne opbygning, herunder hvilke funktioner der er implementeret samt de snitflader der er til visningsklienter og datakilder. Endvidere er der en angivelse af den underliggende infrastruktur.
Beskrivelsen er opdelt i et afsnit der er koncentreret omkring Orkestreringskomponentens primære funktionalitet og snitflader samt et afsnit der beskriver den Indeks funktionalitet der tilbydes til datakilder.
Beskrivelser sker gennem ArchiMate diagrammer med uddybende tekst.
Opbygning af orkestreringskomponenten
Figurtekst: Services og funktioner i Orkestreringskomponenten (blå) og de anvendte teknologier (grøn). Grå elementer er uden for Orkestreringskomponenten, fx borger.dk som visningsklient.
Servicen Overbliksliste udfører funktionen Udvælg datakilder for den enkelte forespørgsel om overblik fra visningsklienten, baseret på oplysningerne i Indeks samt hvilke Aftaler der er indgået mellem de enkelte datakilder og visningsklienter. Funktionen Sammenstil kalder de relevante datakilder parallelt og venter på svar fra datakilder op til en tidsgrænse som er defineret i Konfiguration.
Servicen Detalje udfører funktionen Viderestil til en detaljeservice hos en enkelt datakilde og venter på svar op til en tidsgrænse defineret i Konfiguration.
De to services Overblik og Detalje implementeres generisk for alle typer af forretningsobjekter og deles om en række fælles funktioner:
Adgangskontrol til kald, for henholdsvis overblik og detalje services, for hvert enkelt forretningsobjekt; baseret på oplysninger om indgåede Aftaler, samt genkendelse af visningsklienten vha. certifikater.
Validering, hvis en datakilde ikke svarer inden for perioden eller med et ikke validt svar, håndteres dettes som fejl, der formidles til visningsklienten sammen med svarene fra de øvrige datakilder.
Fejlhåndtering oversætter fejlbeskeder fra sammenstilling, viderestilling eller fra den enkelte datakilde til en fælles model og brugervendte fejlbeskeder, der kan anvendes af visningsklienter direkte.
Komponenten anvender en fælles platformsservice Logning til at gemme oplysninger om de enkelte kald fra visningsklienter, samt resulterende kald til datakilder. Logelementerne udformes så de tydelig afspejler hvilke komponenter og funktioner der bidrager til den samlede oplevede svartid for slutbrugeren.
Orkestreringskomponenten er implementeret som en Java applikation med anvendelse af det generelle Java Spring rammeværk. Størstedelen af Orkestreringskomponentens funktionalitet realiseres gennem integrationsrammeværket Apache Camel og dens indbyggede funktioner. Da Java ikke indeholder standardfunktionalitet til validering af JSON-datastrukturer anvendes her et tredjeparts bibliotek til denne specifikke funktion.
Indeksfunktionalitet
Figurtekst: Services og funktioner i Indekskomponenten (blå) og de anvendte teknologier (grøn). Grå elementer er uden for løsningens scope, dvs. datakilder.
Følgende services realiseres af Indekskomponenten.
Indeksopslag anvendes af Orkestrering og vil blive kaldt, for hver visning af overblik og har derfor stor indflydelse på den oplevede svartid. Derfor er funktionen implementeret som ét servicekald der samler alle oplysninger til brug ved udvælgelse af datakilde.
Indeksopdatering er en af to services hvor datakilder kan opdatere Binært Indeks. Servicen lader datakilder tilføje eller fjerne et enkelt CPR-nummer, så Orkestreringskomponenten kun kalder datakilden for visninger, hvor kilden faktisk har oplysninger.
Indeksoverskrivning er den anden service til Datakilders opdatering. Servicen er implementeret med resursestyring, således opdateringen af indekset ikke har indflydelse på performance af Indeksoplag.
Opbevaring er CPR-numre er personoplysninger og kræver derfor ekstra beskyttelse. Orkestreringskomponenten beskytter indholdet af Indeks ved at pseudonymisere ved brug af en hashing-funktion.
Den samlede tekniske løsning driftes på to adskilte fysiske lokaliteter. Indeks-komponenten er Orkestreringskomponentens eneste databærende komponent og behovet for synkronisering af data på tværs af de to lokaliteter er løst ved anvendelse af databaseteknologi, som indeholder særlige funktioner til dette.
Indekskomponenten realiseres med udgangspunkt i en standard open source SQL-database (PostgreSQL) med tilhørende webservices, der implementeres i Java Spring.