SYSTEMDOKUMENTATION AF POC

Relaterede dokumenter
SYSTEMBESKRIVELSE DIGITALISERINGSSTYRELSEN POC PÅ ORKESTRERINGSKOMPONENTEN. Version: 1.1. Godkender: Forfatter:

D INTEGRATIONSDESIGN FOR DATAAFTAGERE

Bilag C.1 Kundens opgavebeskrivelse

Navision Stat (NS 9.2)

ecpr erstatnings CPR Design og arkitektur

KIH Database. Systemdokumentation for KIH Databasen. 1. maj Side 1 af 13

Mit overblik - Orkestreringskomponenten. FDA September 2019

2. Systemarkitektur... 2

Navision Stat (NS 9.3)

Integration SF1920 NemLogin / Digital fuldmagt Integrationsbeskrivelse - version 1.0.0

Version Dato Beskrivelse /11/2012 Initial version /03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Data repository løsningsbeskrivelse

OS2faktor. Windows Credential Providers. Version: Date: Author: BSG

Guide til integration med NemLog-in / Signering

Webservice kald. System-til-system integration. Ny Easy. ATP 1. februar 2017

Specifikationsdokument for servicen PID-CPR

OpenTele datamonitoreringsplatform

NemHandelsRegistret (NHR) - Bulk-funktionalitet

STS Designdokument. STS Designdokument

Machine Learning til forudsigelser af central KPI

Digital post Snitflader Bilag A5 - REST HTTP returkoder Version 6.3

OS2 Opgavefordeler. Løsningsbeskrivelse Version 2. Udarbejdet af Miracle A/S Simon Møgelvang Bang

Microservices. Hvad er det og hvordan kommer du i gang?

Agenda. Kort om Docpoint a/s. Passer Lasernet ind i en moderne IT-arkitektur?

Kom godt i gang med Digital Transformation via din Microsoft ERP-platform

Præsentation af BSK regionens identity and access management platform

Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk indlæsning af datafiler.

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

STS Designdokument. STS Designdokument

OS2faktor. Pseudonym API. Version: Date: Author: BSG

Citrix CSP og Certificate Store Provider

Guide til kravspecifikation

Serviceplatformen informationsmateriale. Leverandørmøde 7. februar 2013

EasyIQ ConnectAnywhere Release note

Internet Information Services (IIS)

AuthorizationCodeService

Guide til NemLog-in Security Token Service

DOKUMENTBROKER Koncept

Vejledning i at anvende åbningskvittering. Juli 2016

Specifikationsdokument for servicen PID-CPR

AutoProces Tværkommunal procesdeling. Løsningsbeskrivelse og tilbud om udvikling

Cloud revolutionerer udviklingen af it-løsninger hos Danmarks Miljøportal

Indholdsfortegnelse. Systembeskrivelse kapitel 8 Administrationsdatabase

Vejledning i opsætning af MQ

Microsoft Pinpoint Guide

Arkitektur for begyndere

OS2faktor. AD FS Connector Vejledning. Version: Date: Author: BSG

Copyright 2014 Netcompany A/S. Alle rettigheder forbeholdes.

Web services i brug. Anvendelse uden for biblioteksverdenen

Vejledning i at anvende åbningskvittering. August 2019

Copyright 2005 Microsoft Corporation. All rights reserved. Vedbæk Januar Nyhedsbrev. Version 3.0 SP3 HOT FIX 009

Vejledning til Retsinformation web services test stubs

GIS Is Advancing Rapidly Integrating and Leveraging Many Innovations

CLOUD COMPUTING VEJLEDNING I STORT OG SMÅT NÅR DU OVERVEJER AT GÅ I SKYEN

SOSI STS Dokumentationsoverblik

GENUDBUD AF NEMREFUSION. 28. november 2013

PHP Quick Teknisk Ordbog

WHITEPAPER DokumentBroker

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

Procedurer for styring af softwarearkitektur og koordinering af udvikling

OpenTele Server Performance Test Rapport

Advanceret dokument- og sagshåndtering med SharePoint Server Michael Ekegren Manager - Netcompany A/S

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright

Hvornår er dit ERP-system dødt?

TeamShare 2.1 Versionsnoter Oktober 2009

Installation og Drift. Aplanner for Windows Systemer Version 8.15

SIGIL Sådan opretter du en e- bog Step by Step

Grænseflade til afhentning og indberetning af prøvekarakterer i dansk og matematik på Optagelse.dk

OIS - Applikationskatalog

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Velkommen til den nye og forbedrede Dynamicweb 9

Micusto Cloud v2. Micusto Cloud er et fleksibelt, brugervenligt cloudsystem til CMS er, webshop- og intranetsystemer.

Cloud i brug. Migrering af Digitalisér.dk til cloud computing infrastruktur

Sikker udstilling af data

Teknisk Dokumentation

DKAL Snitflader REST HTTP returkoder

Denne installationsvejledning beskriver hvordan man installerer EFI webservices til kommunikation mellem Navision Stat og Skat.

R E D C A P M A N U A L. Importér data til REDCap fra CSV-fil. Opbyg din eksisterende database i REDCap Version 1.0

Beskrivelse af fejlkoder. Version 7.0, KMD Indkomst WEBService IndkomstEnkeltForespoergsel og MQService IndkomstMasseForespoergsel

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning

RELEASE NOTES. HR Manager Talent Recruiter v3.29

Installation og Drift. Aplanner for Windows Systemer Version

Curriculum Vitae. Type År Sidst Niveau Type År Sidst Niveau

Vejledning i at anvende besvarelsesformular. Juli 2016

Datatekniker med programmering som speciale

Installationsvejledning

Nyheder i Remote Support Platform 3.0

GLOBAL GIS PLATFORM RAMBØLL BO GRAVE INTEGRATED BUSINESS TECHNOLOGY

Digital Sundhed Program for infrastruktur og sikkerhed

Funktionsbeskrivelser i TMTand 3.1

Introduktion til Microsoft R. Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus

Mindstekrav til udstyr (fase 1) Løsningsbeskrivelse

Snitfladebeskrivelse for Snitfladebeskrivelse STD-8 KMD Boligstøtte Version 1.0.0,

Vejledning i at anvende besvarelsesformular. August 2019

Koncept for systemforvaltning af den fælles open source kode, herunder procedure for opfølgning på software-versioner af OpenTele

Virksomhedspræsentation for IDA

Vejledning til Teknisk opsætning

Succes med intranet til Office 365. Den 13. august 2014 Webtop A/S s. 1

Transkript:

DIGITALISERINGSSTYRELSEN POC PÅ ORKESTRERINGSKOMPONENTEN SYSTEMDOKUMENTATION AF POC Version: 1.1 Status: Endelig Godkender: Forfatter: Copyright 2019 Netcompany. All rights reserved

Dokumenthistorik Version Dato Forfatter Status Bemærkninger 1.0 2019-05-22 Endelig 1.1 2019-06-12 Endelig Tilrettet pba. review-kommentarer fra DIGST Referencer Reference Titel Forfatter Version [FDA] FDA guidelines for REST baserede services https://arkitektur.digst.dk/metoder/retningslinjerwebservices (pr. 12. juni 2019) Digitaliseringsstyrelsen 0.9 Indholdsfortegnelse 1 Introduktion... 3 2 Teknologier... 3 2.1 Docker... 3 2.2 Kubernetes... 3 2.3 GovCloud... 3 2.4 KrakenD... 3 2.5 Apache Camel... 3 2.6 MongoDB... 3 2.7 Azure... 3 3 Setup beskrivelse... 4 3.1 OK-applikation-container... 4 3.2 KrakenD-container... 4 3.3 MongoDB-container... 4 3.4 Arkitektur... 4 4 Funktionalitet... 5 4.1 Snitflade for dataaftagere... 5 4.2 Snitflade for dataleverandør... 6 5 Tekniske detaljer... 6 5.1 CPR-validering... 6 5.2 Circuit breaker... 7 5.3 Swagger... 7 5.4 Drift... 7 6 Datakilde-setup... 7 2019 Netcompany 2

1 Introduktion Formålet med dette dokument er at beskrive teknologier, arkitektur og funktionalitet i POC af Orkestreringskomponent (POC- OK). 2 Teknologier Dette afsnit beskriver kort de teknologier, der er brugt i POC-OK-løsningen. Teknologier er valgt ud fra, at det på sigt skal være muligt at afvikle applikationen på GovCloud. 2.1 Docker Docker er en open-source software containerization-platform, der gør det muligt at pakke en applikation i en container, der fungerer som en isoleret virtuel maskine. Ved brug af Docker kan man standardisere udviklings-, byg-, test- og produktionsmiljøer. POC-OK består af Docker-containere, der er sat op i et Kubernetes-miljø. 2.2 Kubernetes Kubernetes er en open-source container-orkestrator. Ved brug af Kubernetes kan man opsætte flere containere til at arbejde sammen, og den hjælper med at køre containere på flere virtuelle maskiner, skalere op og ned ved tilføjelse og fjernelse af containere, når efterspørgsel ændrer sig osv. POC-OK består af flere containere, og derfor er denne teknologi brugt i løsningen. 2.3 GovCloud GovCloud er et udviklings- og driftsmiljø, der tilbydes af Statens IT som Platform as a Service. Planen var at deployere POC-OKapplikationen til GovCloud, men platformen var desværre ikke klar til udvikling/drift af applikationer på tidspunktet, hvor udviklingsfase af POC-OK startede. På grund af det, var det nødvendigt at finde anden platform for drift og udvikling og Microsoft Azure blev valgt som alternativ. 2.4 KrakenD Kraken er en REST API Gateway, der er en del af GovCloud-platform. Tanken er, at den udviklede POC-OK skal være kompatibel med GovCloud-platformen. Derfor er KrakenD en del af POC-OK, hvor der opsættes endpoints til datakilder, og KrakenD bruge således som en simpel proxy mellem OK-applikationen og datakilder. 2.5 Apache Camel Apache Camel er et Java-baseret open-source framework, der tilbyder regelbaseret routing. Hvornår en datakildes endpoint skal kaldes er defineret ved brug af Camel-regler. POC-OK bruger foskellige Enterprise Integration Patterns, dvs. Splitter, Content Based Router, Dynamic Router og Aggregator, der alle er en standard-del af Apache Camel. Den er også brugt for at opsætte timeouts ved kald til datakilder og processering af flere parallelle kald. 2.6 MongoDB MongoDB er en open-source cross-platform NoSQL-database, der er nemt at bruge og at skalere. Den gemmer data i JSONdokument-format, der er standard og hurtigt at hente. I Orkestreringskomponent-løsningen blive MongoDB brugt til at gemme CPR-nummer-liste, der bliver brugt til CPR-filtrering, for forskellige datakilder. 2.7 Azure Microsoft Azure er en cloud-platform, hvor man kan bygge, administrere og deployere applikationer ved brug af forskellige frameworks. Platformen tilbyder forskellige services, og en af dem er en Azure Kubernetes Service (AKS), hvor POC-OK er deployeret. 2019 Netcompany 3

3 Setup beskrivelse POC af Orkestreringskomponent består af 3 Docker-containere, der kører i Azure Kubernetes Service: OK-applikation-container KrakenD-container MongoDB-container 3.1 OK-applikation-container OK-applikation-container er baseret på en Spring Boot-applikation, der indeholder en Java-applikation, der bl.a. gør brug af Apache Camel-frameworket. 3.2 KrakenD-container KrakenD-container indeholder KrakenD API Gateway version 0.9. 3.3 MongoDB-container MongoDB-container indeholder MongoDB-dokumentdatabase. 3.4 Arkitektur Dette afsnit giver en kort oversigt over og beskrivelse af arkitekturen i POC-OK. Portal POC-OK OK-applikation Apache Camel KrakenD Datakilde 1 Datakilde 2 MongoDB Datakilde 3 Flowet i løsningen, når en portal anvender data fra POC-OK på vegne af en borger, er som følger: 1. Kald fra en portal til POC-OK bliver modtaget i OK-applikation 2. OK-applikation tjekker, om CPR-nummeret er til stede i MongoDB for datakilder, der skal kaldes, for at hente data 3. OK-applikation kalder specifikke endpoints i KrakenD, der refererer til datakilder, der skal kaldes (dvs. de datakilder, der ikke benytter CPR-filtrering, eller hvor CPR-filtrering har givet et positivt svar ift. at skulle kalde datakilden) 4. KrakenD afvikler kaldet til datakilderne På grund af begrænsninger i KrakenD Gateway API er det ikke muligt at kommunikere med SOAP-baserede services og heller ikke med ASP.NET Web API-baserede services. Nogle af datakilder er derfor konfigureret direkte i OK-applikation (derfor er OKapplikation forbundet direkte til Datakilde 3). 2019 Netcompany 4

4 Funktionalitet Dette afsnit beskriver funktionalitet, der er udstillet i POC-OK. Funktionalitet er opdelt i to snitflader: Snitflade for dataaftagere Snitflade for dataleverandør Snitflader følger guidelines fra digitaliser.dk ([FDA] og helt generelle REST-koncepter. 4.1 Snitflade for dataaftagere En portal kan kalde POC-OK for at hente data på vegne af en borger. Det er muligt at hente data om borgeren ved brug af hent borgerdata -metode på to forskellige niveau: oversigtsniveau og detaljeret niveau. Detaljeret niveau returnerer alt data om en borger. Dette kan være en meget dyr operation for en datakilde. Derfor er det muligt at hente data på oversigtsniveau (for at en portal kan vise liste af sager i brugergræsefladen) og bageefter, når brugeren trykker på en enkelt sag i listen for at udfolde den, er det muligt at hente detaljer omkring specifik sag ved brug af hent sagsdata (da hent ydelsesdata er identificeret undervejs i projektet, blev det aftalt, at det ikke implementeres i POC en). Metode hent borgerdata har følgende flow: 1. En portal kalder POC-OK for at hente data på vegne af en borger 2. Kaldet fra portalen modtages i OK-applikationen 3. OK-applikationen validerer CPR-nummer modtaget i kaldet. Hvis det ikke er gyldigt, returnerer den kode 400 (Bad request) 4. OK-applikationen tjekker, om CPR-nummer modtaget i kaldet er til stede i filtreringsdatabasen og benytter denne information til at bestemme hvilke datakilder, der skal hentes data fra 5. OK-applikationen opdeler kaldet for hver datakilder, der skal kaldes, og udfører kald til datakilder parralelt (først til KrakenD endpoint, der redirekter kaldet til selve datakilden) 6. Når datakilde svarer med data (kommer gennem KrakenD, som sender data tilbage til OK-applikation), bliver data deserialiseret, sammenstillet med data fra andre datakilder i et samlet svar og sendt til den kaldende portal 2019 Netcompany 5

Metode hent sagsdata har følgende flow: 1. En portal kalder POC-OK for at hente data på vegne af en borger 2. Kaldet fra portalen modtages i OK-applikation 3. OK-applikation kalder KrakenD-endpoint, der redirekter kaldet til selve datakilden 4. Når datakilde svarer med data, sender KrakenD data tilbage til OK-applikation, hvor data bliver deserialiseret og sendt til portalen 4.2 Snitflade for dataleverandør Før Orkestreringskomponenten laver et kald ud til en datakilde, tjekker den om CPR-nummeret, der er sendt i kaldet, er til stede i databasen. Orkestreringskomponent udfører kun et kald til en datakilde, der supporterer CPR-filtrering, hvis CPR-nummeret er til stede i databasen for den givne service. Ellers svarer den til portalen, at datakilder ikke har noget data om borgeren (204 No content). Som en dataleverandør er det muligt at tilføje eller/og fjerne CPR-numre til og fra CPR-liste, der er gemt i databasen. Opdatering kan ske som en batch-opdatering ved brug af tilføj/fjern CPR-numre -metoden. Dog kræver metoden, at dataleverandør holder styr på, hvilke CPR-numre der allerede findes i database og medsender kun ændringer i CPR-liste. For at gøre det nemmere for dataleverandør er der udstillet en metode, der erstatter eksisterende CPR-liste med en CPR-liste der er medsendt i kaldet. Desuden er det muligt at rydde op i databasen og fjerne alle CPR -numre fra listen ved brug af denne metode med en tom CPR-liste. CPR-liste er gemt som en liste af dokumenter i MongoDB, der består af et CPR-nummer og et id for en dataleverandør. 5 Tekniske detaljer Dette afsnit beskriver tekniske detaljer om POC-OK-løsningen. 5.1 CPR-validering Orkestreringskomponenten udfører validering af CPR-nummeret, der er medsendt i kaldet. Validering tjekker, om CPR-nummer består af 10 cifre, men det er et check, der kan udvides til yderligere kompleksitet. 2019 Netcompany 6

5.2 Circuit breaker Der er udviklet et circuit breaker-pattern i POC-OK ved brug af Netflix Hystrix-bibliotek (der bliver brugt, hvis en datakilde bliver utilgængelig). 5.3 Swagger Der er for metoder, der er en del af snitfladen for dataleverandører, udviklet en brugergrænseflade ved brug af Swaggerbibliotek: HOST_ADDRESS:8080/swagger-ui.html#/ 5.4 Drift Der er udviklet et scripts for hver komponent, der udfører byg af projekt og Docker-images, tagging og upload af images til et Container Registry. 6 Datakilde-setup For at opsætte en ny datakilde i Orkestreringskomponenten, skal der udføres følgende steps: 1. Tilføje nye endpoints til OK-applikation, der udstiller CPR-filtreringsmetoder 2. Tilføje nye endpoints i KrakenD, der peger på datakilden 3. Tilføje nye endpoints i OK-applikation, der peger på endpoints i KrakenD 2019 Netcompany 7