976.21 Event broker
Beskrivelse af epic af it-understøttelse af Styrelsen for Arbejdsmarked og Rekrutterings forretning
Indholdsfortegnelse
Afgrænsning af epic
Afgrænsning | ||
---|---|---|
Som en STAR vil jeg have implementeret en event broker ifm ESCO-projektet, som afløser for en traditionel webservice baserede på punkt-til-punkt integration for at STAR kan optimere den it-understøttende arkitektur ift. ESCO_STAR nomenklaturen. | ||
Acceptkriterier | ||
Nr. | Beskrivelse | Relevant for |
976.21.1 | Som STAR arkitekt vil jeg have udvidet eventbrocker POC til at kunne afsende og modtager events, logge ind og udgående beskeder | Taxonomy |
976.21.2 | Som STAR arkitekt vil jeg have reference implementering og dokumentation af denne så de forskellige delsystemer/siloer (Jobnet, JobAG, EURES, DFDG, CV silo m.v.) følger samme model | Taxonomy |
976.21.3 | Som STAR arkitekt vil jeg have to nugetpakker en til afsende og en til at modtage beskeder | |
976.21.4 | Som STAR arkitekt vil jeg have sikkerhed på køer | |
976.21.5 | Som STAR og eksterne service aftagere vil jeg gerne have udstille REST service på STAR wiki (Via en ny wiki uploader) | |
976.21.6 | Som STAR ønsker jeg, at Metadata til Events refaktoreres i STAR Foundation med henblik på forbedret logning og forbedret fejlsøgningsmuligheder | DFDG, JobSearch og Taxonomy |
976.21.7 | Som STAR ønsker jeg, at DFDG i sin Event kommunikation med JobSarch benytter sig af de i STAR Foundation refaktorerede Metadata til Events for at understøtte det fremadrettede Event design | DFDG og JobSearch |
976.21.8 | Som STAR ønsker jeg, at JobSearch i sin Event kommunkation med DFDG benytter sig af de i STAR Foundation refaktorerede Metadata til Events for at understøtte det fremadrettede Event design | DFDG og JobSearch |
Flere TBD!!!! | ||
Kandidater til acceptkriterier men som det ikke re afklaret om de skal bo i denne eller en anden ESCO STAR epic | ||
976.x.1 | Initialt load | |
976.x.2 | Fallback løsning | |
976.x.3 | Taxonomy model som kopieres ud i de forskellige aftager siloer. | |
976.x.4 | Kø opsætning. | |
976.x.5 | Analyse af fejlhåndtering, hvad skal der til, evt. genkørsel, overvågning, andre overvejelser. | |
976.x.6 | Besked rækkefølge |
Kriterier for tilsagn til serviceaftager i forhold til STARs snitflader | Berørte acceptkriterier | Bemærkninger | |||
---|---|---|---|---|---|
N/A |
Oversigt over berørte webservices
N/A
Beskrivelse af epic
Baggrund
Her udfylder PO oplysninger om baggrund for epic'en, herunder fx om der ligger politisk aftale eller lovgivning bag. Særligt vigtigt, at dette fremgår, hvis det ikke fremgår i en overliggende ISB, hvortil der evt. kan henvises.
Denne epic er den tekniske implementering af STAR eventbroker baseret arkitektur baseret på RabbitdMQ. Implementeringen er koblet sammen med ESCO STAR som dermed bliver det første område der hvor en eventbroker anvendes til distribution ad data mellem STAR's delsystemer/siloer.
976.21.1 Som STAR arkitekt vil jeg have udvidet eventbrocker POC til at kunne afsende og modtager events
I forbindelse med CV projektet blev der udarbejdet en POC både på silo opdeling/.net core og eventbroker (RabbitMQ). Delen vedrører RabbitMQ blev ikke tilendebragt og for at sikre de udenståender der var tilbage bliver afklaret og løst er accept kriterier 976.21 og 976.21.2 defineret.
Følgende udeståender at på POC mangler:
- Afsendelse af beskeder
- Modtagelse af beskeder
- Logning af beskeder der sendes og modtages
976.21.2 Som STAR arkitekt vil jeg have reference implementering og dokumentation af denne så de forskellige delsystemer/siloer (Jobnet, JobAG, EURES, DFDG, CV silo m.v.) følger samme model
For at sikre at alle der (delsystemer og siloer) skal implementerer anvendelsen af eventbroker følger den samme referenceimplementering skal denne etableres og dokumenteres på wiki.
Dette omfatter:
- XXXX arkitekter laver bullets
I forbindelse med taxonimy - ESCO STAR skal det også dokumenteres hvordan rammerne er for design i de enkelte delsystemer og siloer.
976.21.3 Som STAR arkitekt vil jeg have to nugetpakker en til afsende og en til at modtage beskeder
I forbindelse med STAR-foundation vil der være udstille to nugetpakker i forbindelse med eventbroker der skal anvendes i alle delsystemer og siloer.
976.21.4 Som STAR arkitekt vil jeg have sikkerhed på køer
Identificering og implementering af sikerhedmodel på køer.
976.21.5 Som STAR og eksterne service aftagere vil jeg gerne have udstille REST service på STAR wiki (Via en ny wiki uploader)
I forbindelse med det input der er kommet fra STAR og de eksterne serviceaftagere mht. REST snitfladerne er der behov for at etablerer en udstilling at servicesnitflader på STAR wiki efter samme model som de eksisterende SOAP servicesnitflader. Det har i praksis vist sig at Swagger udstillingen ikke er tilstrækkeligt og STAR har sat ja overfor de eksterne at der etableres en sådan automatisk wiki uploader.
I forhold til ESCO STAR så er dette behov er ekstra i fokus i forhold til udstillings af ESCO STAR stillingsbetegnelser pga de eksterne, da de har en stor forståelsesbehov.
Opgaven omfatter:
- Ny version af DFDG's wiki uploader der kan loader REST snitflader til wiki
- Udstilling af kodelister fra Siloer
Opgaven omfatter ikke udstilling at ESCO STAR koder, selvom DiscoAMS i dag er udstillet.
(Ønsker ESCO STAR udstillet på STAR wiki, er dette et separat accept kriterie og opgaven er heller ikke med i estimat)
Placering af de ny REST snitflade på wiki skal være i den nye struktur og pt er der defineret følgende siloer
For hver service er der den samme struktur som vi kender fra SOAP service dvs.
- Niveau 1: Oversigtside for service, denne side oprettes manuelt. Se eksempel CVService - REST
- Niveau 2: Forretningsbeskrivelse, denne side oprettes manuelt. Se eksempel 951... CVService (2020-4) - Obs den nye CV REST service!
- Niveau 3: Den automatiske genereret snitflade fra wiki uploader.
Der uploades pr. release og pr version som i dag
Sider med "[UDV]" i titel overskrives ikke - Kodelister: Kodelister fra en silo udstille samlet på niveau 1 efter samme model som på SOAP Se eksempel JobSearch CodeLists
976.21.6 Som STAR ønsker jeg, at Metadata til Events refaktoreres i STAR Foundation med henblik på forbedret logning og forbedret fejlsøgningsmuligheder
Den eksisterende implementering af Metadata for Events i STAR Foundation og brugen heraf er blevet drøftet i deltagerkredsen STARs IT arkitekt Kasper Birkelund Larsen, DFDGs Lead Developer Thomas Søby og DFDGs IT arkitekt Ole Sørensen på et møde den 4. december 2020. Det er deltagerkredsens vurdering, at den eksisterende implementering ikke er holdbar i forhold til ibrugtagning en egentligt EventBroker.
I den eksisterende implementering af Metadata for Events og brugen heraf ses følgende uhensigtmæssigheder:
- Metadata værdien PublisherApplicationName, der skal angive det interne STAR system, som har publiseret eventet, er en streng værdi, som kan initieres med en vilkårlig tekst. Dette giver os ikke muligheden for at spore hvorfra de enkelte Events er publiseret, da værdien kan være en vilkårlig tekst.
- Metadata værdien CorrelationId, der skal indeholde samme GUID på alle Events, som måtte være publiseret i forbindelse med en forretningsgang (fra ét servicekald eller fra ét batchjob). I dag initeries denne værdi med et selvstædigt GUID for hvert Event, hvilket betyder, da de enkelte Events ikke kan spores tilbage til en given forretningsgang, eksempelvis ét servicekald.
- Metadata værdien CorrelationId skal benyttes logningsmæssigt hos både det publiserende system samt hos de antagne systemer, således at Events og dermed forretningsgangen kan spores på tværs af systemer. I dag logger de aftagne systemer (dem som modtager og behandler Events) via STAR Foundation dog med sit egent CollerationId og ikke med eventets CorrelationId, hvilket gør, at forretningsgangen ikke kan spores på tværs af systemet.
- Metadata værdien PublisherContext, som er en streng værdi, der kan benyttes til at udveksle kontekstspecifik indhold mellem det publiserede system og de aftagne systemer. I dag skaber metadata værdien forviring, da det ikke er klart for udviklere, hvad indeholdet bør være.
- Metadata for Events indeholder ikke en værdi, hvori det kan angives, hvem der er årsagen til Events, altså information om den udførende part (ActiveOrganisation og RequestUserMetadata) af forretningsgangen.
- Metadata for Events indeholder ikke en specifik værdi, som kan angive en identifikation af, hvem eventet relaterer sig til, eksempelvis et CPR-nummer, et CVR-nummer eller en ESCO STAR ConceptUri. Dette betyder, at rent logningsmæssigt ikke kan spore, hvilke Events, der er publiseret samt aftaget og behandlet for eksempelvis en given borger.
For at imødekomme disse uhensigtsmæssigheder refaktoreres Metadata for Events, så strukturen bliver som følgende:
- MessageType (string), der forbliver uændret og skal indeholde typenavnet på Eventet, eksempelvis CvCreatedEvent.
- PublisherApplication (enum), der med en enum værdi angiver, hvilket internt STAR system, der har publiseret Eventet. Der tages udgangspunkt i de værdier, som er beskrevet i STARs sikkerhedsmodel, når STAR er den kaldende organisation.
- EnqueueTime (DateTimeOffset), der angiver tidspunktet, hvorpå det publiserende system har publiseret Eventet.
- CorrelationId (Guid), der ved publisering af Events skal angive, det CorrelationId, som er skabt til den forretningsgang eksempelvis ét servicekald (request) eller ét batchjobbet (proces), hvori Eventet publiseres. Det betyder også, at flere Events kan have samme CorrelationId, hvis forretningsgangen publiserer flere Events. Når de enkelte Events aftages, skal aftageren genbruge Eventets CorrelationId i forhold til logning m.m., hvilket sikrer, at forretningsgange og de tilhørende Events kan spores på tværs af systemer.
- PublisherSecurityContext (DTO baseret på ISecurityContext), der vil erstatte PublisherContext (string) og i stedet være en typestærk struktur indeholdende oplysninger om, hvem der var årsagen til Eventet. Dette kan eksempelvis være en sagsbehandler i et KSS system, en borger på Jobnet eller et internt system i STAR.
- Identification (string), der er optionel, hvor en identifikation til brug for logning kan angives, eksempelvis en borgers CPR-nummer, et CVR-nummer eller en ESCO STAR ConceptUri. Når de enkelte Events aftages, skal aftageren genbruge denne identifikation i forhold til logning m.m., hvilket sikrer, at identifikationen og de tilhørende Events kan spores på tværs af systemer.
For at sikre sporbarheden for Events tilrettes STAR.Foundation med henblik på:
- At aftagerdelen for Events (Subscribe) genbruger CorrelationId fra Eventets Metadata til logning m.m., når Events aftages og behandles fra STAR.Foundation.
- At aftagerdelen for Events (Subscribe) genbruger Identification fra Eventets Metadata til logning m.m., når Events aftages og behandles fra STAR.Foundation.
976.21.7 Som STAR ønsker jeg, at DFDG i sin Event kommunikation med JobSarch benytter sig af de i STAR Foundation refaktorerede Metadata til Events for at understøtte det fremadrettede Event design
DFDG overgår til at benytte en ny version af STAR.Foundation, som indeholder den nye struktur for Metadata til Events. Samtidig sørger DFDG for:
- At de Events, som sendes til JobSearch benytter og overholder krav til den nye struktur for Metadata til Events, herunder kravene for værdierne til PublisherApplication, CorrelationId, PublisherSecurityContext og Identification.
- At de Events, som modtages fra JobSearch benytter og overholder krav til den nye struktur for Metadta til Events, herunder kravene for genbrug af værdier fra CollectionId og Identifikation i forhold til logning.
976.21.8 Som STAR ønsker jeg, at JobSearch i sin Event kommunkation med DFDG benytter sig af de i STAR Foundation refaktorerede Metadata til Events for at understøtte det fremadrettede Event design
JobSearch overgår til at benytte en ny version af STAR.Foundation, som indeholder den nye struktur for Metadata til Events. Samtidig sørger JobSearch for:
- At de Events, som sendes til DFDG benytter og overholder krav til den nye struktur for Metadata til Events, herunder kravene for værdierne til PublisherApplication, CorrelationId, PublisherSecurityContext og Identification.
- At de Events, som modtages fra DFDG benytter og overholder krav til den nye struktur for Metadata til Events, herunder kravene for genbrug af værdier fra CollectionId og Identifikation i forhold til logning.
Jobsearch arbejde er udført og godkendt som dele under - JOB-3064Getting issue details... STATUS og - JOB-2765Getting issue details... STATUS
Efter RappidMQ er implementeret på T-miljøerne, er der via - JOB-3595Getting issue details... STATUS udført en end-to-end test, hvor det er dokumenteret, at både ændringer på eksisterende stillingsbetegnelser og nyoprettelser foretaget i administrationsmodulet, slår igennem i Jobsearch.
ToDo - Skal afklares
- Involvering af CV og EURES projekterne
- Herunder Borger og Virk/Sag områderne
- Anbefaling om at Jeppe Hartmund fra Virk/Sag involveres i arkitekturafklaringer
- Det skal afklares hvor meget tid Jeppe har til dette arbejde.
- Risici - high level
- Hvad betyder det for EventBroker planen at driftstransitionen udskydes til 2020-4½ (Start februar 2021)
- DFDG og SF kan formentlig nå deadline til 2021-1, men det er tvivlsomt om KMD kan nå at drifte RabbitMQ til 2021-1.
- Hvilken konsekvens har dette for planen og ESCO projektet?
- Fallback planen skal beskrive og håndtere dette.
- Hvornår kommer der et testmiljø til RabbitMQ?
- DFDG arkitekten vurderer at det er problematisk at udvikle til "Localhost"
- Issue: Der er p.t. ikke ledige ressourcer til at udføre EventBroker opgaverne.
- Revi-projektet: Der kommer ca. 600K til Revi opgaver, som skal implementeres i starten af 2021
- Stadig travlhed med CV opgaver til minimum 20. november
- NemLog-in3 migrering.
Aktiviteter
- Ole deltager den 29-10 i Workshop med KMD vedr. RabbitMQ.
- Carsten og Rolf påbegynder nedbrydning af Epic 976.21.
- FA Gruppen, Estimering og frigørelse af kapacitet til EventBroker opgaverne.Jens, undersøger muligheden for at kunne tiltrække ekspert bistand, afklarer herunder Jeppes tilgængelighed.
Nedbrydning af opgaver
Epic 976.21 Event Broker
- Skal nedbrydes til User Stories
Forskellige emner/spor som skal nedbrydes i Epic
- Kompetencer
- Uddannelse af konsulenterne
- Sidemandsoplæring - bistand fra RabbitMQ ekspert
- Vidensoverdragelse fra referencegruppen
- Razvan, Ole, Kasper, Søby skal overdrage viden til ESCO / RabbitMQ teamet
- Virksomhedsbesøg? Er der behov for et referencebesøg igen.
- Drift og support at RabbitMQ
- Monitorering - hvorledes skal dette etableres?
- Risiko analyse
- Hvad betyder det at driftstransitionen udskydes til 2020-4½?
- DFDG kan formentlig nå deadline til 2021-1, men det er tvivlsomt om KMD kan nå at drifte RabbitMQ til 2021-1.
- Dokumentationsstruktur
- Det skal afklares hvilken model til dokumentation der skal benyttes.
- Fejlhåndtering og fejlsøgning
- Bemærk: Link til support sporet. Der skal udarbejdes guidelines til supporten.
- Sikkerhed og GDPR
- Logning og audit trail
- Fallback strategi
- Der skal beskrives en eksplicit plan hvis RabbbitMQ ikke er klar til drift 2021-1
- Model for kø struktur
- Hvilke køer til hvilke siloer
- Reference implementering
- Reference implementering med RabbitMQ
- Arkitektur
- Konsolidering af PoC mht. principper og praktikker, herunder opdatering af STAR.Foundation
- Har vi de korrekte metadata på Events
- Tykke vs. Tynde Events - herunder forskellige scenarier, behov og siloers kendskab til hinanden
- Udrulningsplan
- 2021-1 release, Silent release - aftagerne kommer ikke til at benytte data.
Regler
Her udfylder PO oplysninger om eksisterende eller forventede regler om registrering og indberetning.
Forventet påvirkning af jobcenter-, a-kasse- eller ydelsessystemer
Her beskriver PO overordnet, hvordan epic'en forventes at påvirke aftagerne. Særligt vigtigt, at dette fremgår, hvis det ikke fremgår i en overliggende ISB, hvortil der evt. kan henvises.
Acc.kr. xxx.1.1 - xxx
Acc.kr. xxx.1.2 - xxx
Særlige krav til test
Test scenarie | Berørte systemområder (herunder nye batchjobs*) | Identificeret af |
---|---|---|
* Batchjobs
- bør testes både med delta og fuldt load,
- bør hvis der er afhængigheder køres med normalt load fra BI i ét testmiljø i hele testperioden
- bør testes i samarbejde med teams som har afhængigheder
- kørselstid, særligt hvis det er en del af NightlyBatch
Konsekvenser for drift/idriftsættelse
I forbindelse med idriftsættelse:
- Skal der køres et fuldt dataload ved første kørsel af et batchjob - aftal med SF hvornår load skal køres:
- Skal der køres konvertering:
- Skal der køres databasescripts for opdatering af tabeller i databasen:
Efter idriftsættelse:
Arkitektur- og implementeringsnoter
Konceptuel løsningsmodel for ibrugtagelse af en EventBroker i forbindelse med ESCO STAR projektet
Nedenstående figur viser den konceptuelle løsningsmodel for, hvordan en EventBroker tænkes ibrugtaget i forbindelse med ESCO STAR projektet. Figuren viser for ESCO STAR projektet de i STAR City interne komponenter til Taxonomy, JobSearch og DFDG, som er påvirket og involveret i den eventbaseret arkitektur, som EventBrokeren skal understøtte. Ligeledes illustrerer figuren, hvordan events udmynter sig til WSRM beskeder, som vore aftagere kan hente på normal vis i DFDG.
Her beskriver PO/FA om arkitekturen og teknikken bag løsningen, om der f.eks. anvendes:
- Nye dataområder:
- Nye snitflader:
- Nye komponenter:
- Nye miljøer:
- Nye teknologier:
- Nye aftagertyper:
- Eller afvigelser fra principperne:
- Eventuelle behov for reduktion af teknisk gæld skal afdækkes:
Der gives en beskrivelse af hvorledes disse tænkes håndteret/implementeret i løsningen og om dette har været vendt med STAR arkitekten.
Husk GDPR stillingtagen
Ingen personfølsomme data i epics
Illustrationer, skærmdumps m.v. må ikke indeholde cpr.nr., CV. nr., rigtige personnavne på borgere eller deres kontaktoplysninger i form af e-mail, telefonnr., adresse m.v.
- Ja, det er tjekket, at epic ikke indeholder dette.
Angiv hvem der har foretaget dette tjek:
Angiv dato for tjek:
Opbevaring af oplysninger i STARs it-systemer
Ved oprettelse af nye dataområder skal der tages stilling til, hvornår formålet med data ophører og dermed fastlægges en slettepolitik.
Ved indførelse af nye data på eksisterende dataområder skal GDPR slettejobs opdateres.
Hvem må tilgå oplysningerne?
Afsnittet må ikke blot slettes, hvis det vurderes ikke relevant. Det skal dokumenteres at man har forhold sig til nedenstående.
Husk det er hensynet til borgeren der tæller højst. Der skal være hjemmel til at sagsbehandler må tilgå oplysninger. Formålet skal være som led i administrationen af beskæftigelsesreglerne eller ydelsesadministration.
Korrekte sikkerhedsattributter på services
PO skal for hver enkelt servicemetode angive hvilke myndighedstyper, der må kalde de forskellige servicemetoder.
Tilladte organisationer (eksempel - se den fulde liste over myndighedstyper på siden DFDGs sikkerhedsmodel )
Alle borgere | Egne borgere | Tidligere egne borgere | Gæsteadgang | Anden Aktør - egne borgere | Anden Aktør - gæsteadgang | |
---|---|---|---|---|---|---|
A-kasse | X | |||||
JobCenter | X | X | ||||
Kommune | X | |||||
STAR | X | |||||
AUB | ||||||
UDK | ||||||
STIL |
A-kasse filtrering
Hvis a-kassen må anvende metoden, må a-kassen så se / hente alle data? Eller skal der foretages filtrering ift. at a-kassen fx kun må se nogle udfaldsrum / kodelisteværdier? Husk at filtreringen skal ramme eventuel visning på Jobnet aht. sagsbehandlerlogin
Sagsbehandlerlogin på Jobnet - tag stilling til adgang!
En sagsbehandler i et jobcenter kan tilgå en borger tilknyttet det konkrete jobcenter.
En sagsbehandler i en a-kasse kan tilgå en borger, som er medlem af a-kassen og KG 1 (tilmeldt og ikke-tilmeldt) eller KG 8 og tilmeldekategori 5 - dimittend.
Begrænsninger kan foretages via (a-kasse-) filtrering, eller ved at afgrænse på action niveau på konkrete sider på Jobnet.
Stillingtagen: Beskriv kort, at der er taget stilling til sagsbehandlerlogin
Redigeringshistorik
Hvis der opdateres til nyt confluence dokumentformat, hvor der ikke kan angives Tjek ind / Publish kommentater, skal der tilføjes kommentarer om indholdsmæssige ændringer, der foretages når dokumentet er i version 0.3 eller højere.
Dato | Version | Hvem | Hvad er ændret? |
---|---|---|---|