INDHOLD
Beskrivelse
CRK'en har til formål at stille konfiguration til rådighed for DCC'en på en form der let kan modificeres og gøres tilgængelig for DCC i alle NSP-miljøer -- centrale såvel som decentrale.CRK består af et antal schedulerede jobs - hvert job indlæser definitionen af et endpoint med tilhørende actions fra en ekstern kilde, hentet via HTTP eller direkte i filsystemet (der benyttes en XML konfigurationsfil som input).
CRK'en udstiller ingen eksterne snitflader.
CRK som sådan har kun en enkelt ekstern afhængighed, nemlig en database, "crk". Denne benyttes til at gemme konfigurationsdata og stille disse til rådighed for DCC'en.
Support ansvarlig: Arosii
Forretningsanvendelse
(Der er ikke nogen forretnings anvendelse beskrivelse)
Relaterede registre og services
Applikationsbeskrivelse
CRK komponenterne indkapsler følgende funktionalitet:
- `EndpointdefinitionJob`: Schedulering og check af om ekstern kilde er ændret.
- `EndpointService`: Forretningslogik til indlæsning af endpoint, herunder versionering.
- `EndpointDao`: Indkapsler databaseadgang vedrørende endpoints.
- `ActionDao`: Indkapsler databaseadgang vedrørende actions.
- `CrkWebApplicationContext`: En specialiseret spring applicationContext.
- `SLALogHelper`: Opsætning af SLALog
Datastruktur, Intern register: Central Rute Konfiguration (CRK)
Register properties:
Central Rute Konfiguration
CRK'en har til formål at stille konfiguration til rådighed for DCC'en på en form der let kan modificeres og gøres tilgængelig for DCC i alle NSP-miljøer -- centrale såvel som decentrale.
CRK anvender databasen til dels at læse eksisterende endpoint definitioner, dels til oprettelse af nye definitioner og deaktivering af ældre versioner.
Databasen består af 2 tabeller, som tilsammen udgør en versioneret repræsentation af de eksterne endpointdefinitioner.
Entitetsbeskrivelser
actions
Action angiver hvordan det enkelte endpoint kaldes
Objektet indeholder informationen:
--------------------------------------
- `name`: uri på den angivne action - Hentet fra ekstern definition og benyttes af DCC
- `model`: Indeholder pt altid værdien 'synchronous_timeout'
- `timeout`: angiver den maksimalt tilladelige svartid for den eksterne service der kaldes gennem DCC.
- `useProxy`: Angiver hvorvidt DCC'en må sende forespørgslen gennem en proxy (SOSI-GW). Indlæst fra ekstern kilde.
- `proxyOverride`: (valgfri) Vedligeholdes af driften og giver mulighed for at overskrive useProxy.
- `idcardmaxage`: (valgfri) Medsendes til gateway, såfremt en sådan benyttes, og anvendes til check for udløbne id-kort.
- `endpointId`: Den version af endpoint, som en given action er knyttet til. Relation til endpoints tabellen
- `inheritedEndpoint`: Såfremt en action "forsvinder" fra den eksterne kilde, bevares den som udgangspunkt i konfigurationen, med angivelse af hvor den er kopieret fra. Relation til endpoints tabellen
- `active`. Angiver hvorvidt pågældende action er aktiv eller ej. Kan f.eks. benyttes af driften til helt at fjerne actions, der forsvinder fra den eksterne kilde.
endpoints
Endpoints Konfiguration til brug for Viderstillingservicen, DCC
Objektet indeholder informationen:
--------------------------------------
- `configId`: Navnet på det konfigurerede job i spring konfigurationen.
- `name`: Det eksterne navn, defineret i den eksternt indlæste fil.
- `url`: Adressen på det eksterne endpoint.
- `externaltime`: Tidsstempel defineret i den eksterne kilde. Benyttes ved genindlæsning til at kontrollere om der er sket ændringer.
- `active`: Angiver hvorvidt denne (version af) endpoint definition er aktiv eller ej.
- `version`: Ved genindlæsning oprettes altid en ny version (række i tabellen), og de foregående deaktiveres.
override
"override" tabellen anvendes til at overstyre de url'er de DCC'er der kører på dnsp'erne anvender til at kalde videre med således vi kan ramme de services der kører på dnsp'erne også.
(undtagelses håndtering af regionernes DNS, hvor det hedder noget forskelligt i de forskellige regioner (kører på regionernes net), hvorved der kan overrides forskellige dele af url'en, f.eks. hostname)
Objektet indeholder informationen:
--------------------------------------
name
node
serviceUrl
useProxy
timeout
idcardmaxage
doNotVerifySSLHostName
wsaHeadersProcessing
Fil: xml-konfiguration (CRK)
Filen indeholder definitioner af endpoints med tilhørende actions
Tabelbeskrivelser
Tabel: actions
CREATE TABLE actions (
id bigint(20) NOT NULL auto_increment,
endpointId bigint(20) NOT NULL,
inheritedEndpoint bigint(20),
name varchar(4096) NOT NULL,
timeout bigint(20) NOT NULL,
model varchar(255) NOT NULL,
active boolean default false,
idcardmaxage int(11),
useProxy boolean NOT NULL,
proxyOverride boolean,
primary key(id)
);
CREATE INDEX IX_ACT_1 ON actions (endpointId, active); -- bruges af view
ALTER TABLE actions ADD CONSTRAINT act_ep1 FOREIGN KEY (endpointId) REFERENCES endpoints (id); -- bruges af DCC
ALTER TABLE actions ADD CONSTRAINT act_ep2 FOREIGN KEY (inheritedEndpoint) REFERENCES endpoints (id);
Tabel: endpoints
CREATE TABLE endpoints (
id bigint(20) NOT NULL auto_increment,
configId varchar(255) NOT NULL,
name varchar(255) NOT NULL,
url varchar(4096) NOT NULL,
lastModified Datetime NOT NULL,
externaltime Datetime NOT NULL,
createdtime Datetime NOT NULL,
version bigint(20) NOT NULL,
active boolean NOT NULL,
primary key(id)
);
CREATE UNIQUE INDEX IX_EP_1 ON endpoints (configId, version);
CREATE INDEX IX_EP_2 ON endpoints (active); -- bruges af view
CREATE INDEX IX_EP_3 ON endpoints (createdtime); -- bruges af view
Tabel: override
Desc crk.override;
| id | bigint(10) | NO | PRI | NULL | |
| name | varchar(255) | NO | | NULL | |
| node | varchar(255) | YES | | NULL | |
| serviceUrl | varchar(255) | YES | | NULL | |
| useProxy | tinyint(1) | YES | | NULL | |
| timeout | bigint(20) | YES | | NULL | |
| idcardmaxage | int(11) | YES | | NULL | |
| doNotVerifySSLHostName | tinyint(1) | YES | | NULL | |
| wsaHeadersProcessing | varchar(32) | YES | | NULL | |