Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootBehandlingsrelationsservice (BRS) - Leverancebeskrivelse
includeroottrue

Version 0.13, 2019-07-12



Table of Contents


Formål

Dette dokument beskriver installation og konfiguration af Behandlingsrelations-servicen (BRS).


Servicen omfatter to komponenter:

  • brs-frontend .war til installation i NSP-miljøer (de decentrale dNSP miljøer og det centrale cNSP miljø). Denne indeholder webservices til opslag af evidens for behandlingsrelationer og hent af alarm-notifikationer.
  • brs-backend .war til installation i det centrale Backoffice miljø. Denne service indeholder batchjobs til løbende opfølgning på evidens for behandlingsrelationer og generering af alarm-notifikationer.

...

Krav til applikationsservere

Komponenterne er udviklet og testet

...

i Docker ved anvendelse af et base-image for NSP platformen.

Komponenternes konfiguration er således tilpasset deployering på WildFly 8.2 applikationsservere med OpenJDK 8

...

.

Krav til operativsystem

Der stilles ingen krav til operativsystemet udover, ud over det åbenlyse krav om at Java er understøttet på operativsystemet. Ubuntu Linux bruges som operativsystem på NSP’en, men udviklingen af komponenten er foretaget på hhv. OS X og Windows 10, og disse platforme kan ligeledes afvikle komponenterneat det skal være Linux, og docker skal være installeret.

Krav til database

Komponenten er testet mod MariaDB version 10.0. Det er den samme MySQL version som bliver brugt på NSP platformen (NIAB version 1.1.3).

Krav til hardware

Der er nogle minimumskrav for at kunne afvikle komponenten fornuftigt til testformål. Dog skal man forvente at bruge high-end hardware (både cpu, ram, netkort & diske) for at kunne opfylde svartidskravene på NSP platformen.

...

Herunder beskrives opsætningen af databaserne, samt oprettelsen af tabellerne. Alle filer der refereres til kommer fra et SVN checkout. Den seneste version samt tidligere releases kan findes på https://svn.nspop.dk/svnsrc/triforkcomponents/brs/trunk/

Tilgang til Stamdataudstillet database

...

Følgende sql scripts skal køres på ”followup” databasen (i nævnte rækkefølge):

  1. Behandlingsrelationcompose/commondatabase/srcbrs/main/resources/sql/database/04-create-treatmentrelationfollowup-tables.sql
  2. Behandlingsrelationcompose/commondatabase/srcbrs/main/resources/sql/database/05-mysql-treatmentrelationfollowup-alter-tables.sql

NB: followup-databasen kan slettes, når migrering til Kafka er gennemført (se driftsvejledning for detaljer om migrering).

Oprettelse af database og tabeller i dNSP/cNSP-miljøer

...

Følgende sql scripts skal køres på ”followup” databasen (i nævnte rækkefølge):

  1. Behandlingsrelationcompose/commondatabase/srcbrs/main/resources /sql/database/06-create-followup-tables.sql
  2. Behandlingsrelationcompose/commondatabase/srcbrs/main/resources /sql/database/07-mysql-followup-alter-tables.sql

Deployment på Wildfly 8

Denne sektion beskriver deployment processen på Wildfly 8

Konfiguration af properties

Der kræves forskellige property-filer afhængigt af om der er tale om deployment på dNSP/cNSP eller Backoffice. Hvis der deployes på NSP, skal der være en brs-frontend.properties til rådighed, og hvis der deployes til Backoffice, skal der være en brs-backend.properties til rådighed.

I Backoffice-miljøet placeres brs-backend.properties i Wildfly 8’s standalone/configuration folderen til Wildfly. Tilsvarende placeres brs-frontend.properties i samme folder i NSP-miljøerne.

Konfiguration af logging

I filen standalone/configuration/standalone.xml indsættes en logging-profil.

På NSP/frontend indsættes følgende under ”logging-profiles”

Code Block
<logging-profile name="brs-frontend">
    <size-rotating-file-handler name="METRICS-FILE">
        <formatter>
            <pattern-formatter pattern="%d{dd MMM yyyy HH:mm:ss:SSS} app=%c, logLevel=%p, thread=%t, %m%n"/>
        </formatter>
        <file relative-to="jboss.server.log.dir" path="metrics.log"/>
        <rotate-size value="10M"/>
        <max-backup-index value="5"/>
        <append value="true"/>
    </size-rotating-file-handler>
    <size-rotating-file-handler name="FRONTEND-FILE">
        <level name="DEBUG"/>
        <formatter>
            <pattern-formatter pattern="%d{dd MMM yyyy HH:mm:ss:SSS} app=%c, logLevel=%p, thread=%t, %m%n"/>
        </formatter>
        <file relative-to="jboss.server.log.dir" path="brs-frontend.log"/>
        <rotate-size value="10M"/>
        <max-backup-index value="5"/>
        <append value="true"/>
    </size-rotating-file-handler>
    <size-rotating-file-handler name="FRONTEND-AUDIT-FILE">
        <formatter>
            <pattern-formatter pattern="%d{dd MMM yyyy HH:mm:ss:SSS} app=%c, logLevel=%p, thread=%t, %m%n"/>
        </formatter>
        <file relative-to="jboss.server.log.dir" path="brs-frontend-audit.log"/>
        <rotate-size value="10M"/>
        <max-backup-index value="5"/>
        <append value="true"/>
    </size-rotating-file-handler>
    <root-logger>
        <level name="INFO"/>
        <handlers>
            <handler name="FRONTEND-FILE"/>
        </handlers>
    </root-logger>
    <logger category="audit.dk.nsi.brs" use-parent-handlers="false">
        <level name="INFO"/>
        <handlers>
            <handler name="FRONTEND-AUDIT-FILE"/>
        </handlers>
    </logger>
    <logger category="dk.nsi.brs.common.metrics" use-parent-handlers="false">
        <level name="DEBUG"/>
        <handlers>
            <handler name="METRICS-FILE"/>
        </handlers>
    </logger>
    <logger category="org.hibernate">
        <level name="WARN"/>
    </logger>
    <logger category="org.springframework">
        <level name="WARN"/>
    </logger>
    <logger category="httpclient.wire">
        <level name="WARN"/>
    </logger>
    <logger category="org.apache">
        <level name="WARN"/>
    </logger>
    <logger category="com.sun">
        <level name="WARN"/>
    </logger>
</logging-profile>

På Backoffice/backend laves samme konfiguration, blot angives “backend” i stedet for “frontend”.

Eksempel på opsætning af logning findes i integration/src/test/resources/standalone.xml

Deployment af komponenter

Alle komponenter der skal deployes til Wildfly, skal kopieres til mappen ”standalone/deployments”.

...

NB: followup-databasen kan slettes, når migrering til Kafka er gennemført (se driftsvejledning for detaljer om migrering).

Deployment

Denne sektion beskriver hvordan komponenten deployes.

Jenkins

BRS bygges med NSP's Jenkins server via følgende jobs:

  • BRS_build - Bygger koden (sker automatisk ved commits)
  • BRS_push_snapshot - Pusher det nyeste snapshot image til NSP Docker Registry

NSP er selv ansvarlige for at pushe release versioner af BRS til NSP Docker Registry gennem Jenkins.

Docker

BRS består af to docker images som pushes til NSP Docker Registry under navnene:

  • registry.nspop.dk/components/brs/brs-frontend:snapshot
  • registry.nspop.dk/components/brs/brs-backend:snapshot

Docker-compose

BRS leveres samtidig som et sæt af Docker Compose filer i folderen https://svn.nspop.dk/src/components/brs/trunk/compose.


Compose folderen indeholder 5 underfoldere:

configurationHer ligger alle de konfigurationsfiler som det forventes af driften tilretter til det anvendte miljø.
databaseHer ville alle de databasefiler som det forventes at driften lægger på en NSP database ligge, hvis der var nogen
developmentHer ligger en Docker Compose fil til brug for udvikling. Se Guide til Udviklere.
testHer ligger en Docker Compose fil der kan starte BRS i en standalone test konfiguration.
releaseHer ligger den Docker Compose fil som det forventes driften anvender på både test og produktionsmiljøerne.

Konfiguration af properties

I folderen https://svn.nspop.dk/src/components/brs/trunk/compose/configuration findes følgende konfigurationsfiler:


backend/brs-backend.dev.propertiesKonfiguration af brs-backend til udviklingsbrug.
backend/brs-backend-log4j.xmlLogopsætning af brs-backend.
backend/brs-backend.propertiesKonfiguration af brs-backend.
backend/crl.skipSkipliste til certificate revocation tjek.
backend/properties/Capgemini_Sogeti_Danmark_AS_SOR_FOCES.jksKeystore til SOR kald.
backend/properties/module.xmlModule-fil.
frontend/brs-frontend.dev.propertiesKonfiguration af brs-frontend til udviklingsbrug.
frontend/brs-frontend-log4j.xmlLogopsætning af brs-frontend.
frontend/brs-frontend.propertiesKonfiguration af brs-frontend.
frontend/crl.skipSkipliste til certificate revocation tjek.
frontend/properties/Capgemini_Sogeti_Danmark_AS_SOR_FOCES.jksKeystore til SOR kald.
frontend/properties/module.xmlModule-fil.
sores/*Konfiguration til brug i udviklersetup.


Filerne brs-backend.properties og brs-frontend.properties skal tilrettes til de forskellige miljøer hvorpå de installeres. Filerne indeholder en konfiguration der passer i en standalone test konfiguration. Se driftsvejledningen for en beskrivelse af indholdet af filerne.

Konfiguration af logning

Logning konfigureres i log4j-filerne nævnt ovenfor. Se driftsvejledningen for en mere detaljeret beskrivelse af hvad der logges.

Der benyttes en rolling file appender, hvor størrelsen af log filerne og antallet af gemte log filer konfigureres med de to environment variable: LOG_MAX_FILE_SIZE og LOG_MAX_BACKUP_INDEX.

Deployment af komponenter

...

Herunder følger en tabel over komponenter, samt en kort beskrivelse af deres formål.

followupjob
KomponentKomponent(er)Beskrivelse
brs-backend
replicationserviceOpsamling af behandlingsrelationer til opfølgning fra frontend.
followupservlet
Kontrol af opfølgninger til sletning eller oprettelse af alarm-notifikationer.

CleanupjobSletning af gamle notifikationer.
brs-frontendbehandlingsrelationsserviceService til forespørgsel på behandlingsrelationer.

notifikationsserviceService til hent af notifikationer
.ReplicationjobJob til overførsel af behandlingsrelationer til opfølgning til backend
.

Der henvises til driftsvejledningen for yderligere information

...

Når der kommer opgraderinger til en komponent, vil der medfølge releasenotes, der beskriver opgradering, fallback, osv. for den enkelte komponent.

...

Al konfiguration på NSP og Backoffice foregår ved redigering af hhv. brs-frontend.properties og brs-backend.properties, der placeres i standalone/configuration folderen under Wildfly. En skabelon til disse filer findes i integration/src/test/resources. Filerne konfigureres og placeres i standalone/configuration biblioteket på Wildfly.

Bemærk at brs-frontend.properties og brs-backend.properties i visse situationer ”overlapper”, dvs. indeholder ens properties. Dette skyldes bl.a. at funktionalitet til opslag af evidens for en behandlingsrelation findes i både frontend og backend.

For en oversigt over de enkelte properties og deres default-værdier henvises til driftsvejledningen, som også findes under ”docs”.

Whitelisting af services

Adgang til BRS services styres på CVR niveau. Adgang til services kan styres enten via property filen, eller via en lignende konfiguration i whitelist_config tabellen.

...

Start/genstart af komponenterne

Alle komponenter kan genstartes ved ”touch” af de enkelte war filer på Wildfly. Alternativt kan Wildfly genstartes ved at køre kommandoen

service wildfly8 restart

BRS backend og frontend startes og stoppes med Docker Compose kommandoer.

Standalone test

For en standalone test af BivWSP hentes "compose" folderen for den ønskede version med Subversion og kommandoen "docker-compose up" køres i folderen "test".

NSP Miljø

På et NSP miljø hentes "compose" folderen for den ønskede version med Subversion og kommandoen "docker-compose up" køres i folderen "release".

Ændringslog


Version

Dato

Ændring

Ansvarlig

0.1

2011-06-15

Initielt dokument

Trifork

0.2

2011-06-21Opdatering af databaseoprettelser på NSP og DoDis opfølgningstabeller

Trifork

0.3

2011-07-27Opdateret jf. ny struktur med generel notificationsservice.

Trifork

0.4

2011-08-10Opdateret dokumentation med GOS services

Trifork

0.5

2011-10-05Opdateres dokumentation med CPRABBS service

Trifork

0.6

2011-11-28Dokumentation opdateret med whitelist_config tabeloprettelse

Trifork

0.7

2013-10-21Opdateret kilde

Trifork

0.82014-03-12Opdateret med beskrivelse af propertyfil, og detaljer for hver propertyTrifork
0.92016-09-01Opdateret til Wildfly 8Trifork
0.102016-11-11Opdateret logning til profilerTrifork
0.112017-03-09Tilrettet BRS2Trifork
0.122017-03-14Rettet betegnelse på NSP-miljøerTrifork
0.132019-07-12Dokument fra repository lagt i confluence. Tidligere dokument dokuments indhold var - forkert - arkitektur dokumentetKvalitetsIT
0.142020-07-23Opdateret med beskrivelse af docker-setup.KvalitetsIT
0.152020-11-23Gennemlæst og foretaget smårettelser (i krav til applikationsserver og operativsystem, hvor Docker er sat som krav)KvalitetsIT