Utsending av meldinger til kø

FS-databasen er tilrettelagt for å sende meldinger til en kø (MQ) ved endringer på objekter - som støtte til hendelsesbasert integrasjon

Enkelt forklart fungerer meldingskøen på denne måten:

  1. Endringer kommer inn i FS-basen fra ulike kilder
  2. Triggere er installert på de tabellene i FS der man lytter på endringer
  3. Endringsmelding konstrueres og sendes til meldingskø
  4. Eksterne klienter lytter på kø og henter data fra FS-API basert på melding

Endringsmelding

Meldinger fra FS til meldingskøen er på følgende form:

{
  "sub":"{ressurs}/{id}",
  "{ressurs}_id":"{id}",
  "iss":"FS-{miljø}",
  "iat":"1539075071295",
  "operation":"create",
  "jti":"71373065-040c-43e0-8208-bb2bb0de6cbb"
}

Kort om innholdet i meldingen (ref.):

  • sub: Subject claim (her: individkall på ressurs)
  • ID for ressursen (ID for eiende ressurs hvis det er snakk om en subressurs)
  • iss: Issuer claim (her: FS-miljø - demo / prod)
  • iat: Issued at (tidsstempel, Unix Epoch Time)
  • operation (create / update / delete)
  • jti: JWT ID claim (generert GUID)

Meldingsexchange

Meldingskøene (Rabbit MQ) kjører pr. i dag for UiO på USIT, samt under IntArk for andre institusjoner:

  • UiO:
    • URL: mq-prod01.uio.no
    • Port: 5671
    • Virtual Host: /no/uio/fs
    • Exchange: ex_fs_messages
  • IntArk:
    • URL: mq-{inst}.intark.uh-it.no
    • Port: 5671
    • Virtual Host: Foreløbig ikke standardisert
    • Exchange: Foreløbig ikke standardisert

En routing key blir sendt med på formen (eksempel):

no.{inst}.fs.FS-{miljø}.{ressurs}.{operation}

(Der {inst} er domene for institusjon)

Integrasjonspunkter

Det må settes opp to integrasjonspunkter i WS Tjeneste/WS Auth:

  • Tjenestekode MQ med URL til meldingskøen, med typisk mønster for RabbitMQ:
    • URL: amqps:{URL} port:5671 vh:{Virtual Host} ex:{Exchange}
    • Brukernavn: Ikke standardisert, men ofte "fsws"
    • Passord
  • Tjenestekode WSINTERN med URL til FS-API i aktuelt FS-miljø:
    • URL: https://fsapi-test.uio.no eller https://api.fellesstudentsystem.no

Status

Foreløpig er dette i produksjon for UiO, og i test for de andre store universitetene.

Meldinger er implementert for mange ressurser, men ikke alle.

Teknisk info

Hvis det er satt opp MQ-integrasjoner (se over), skjer følgende:

  • Triggere på de underliggende tabellene i FS kaller PK_MQ.P_LagMelding (i db)
  • PK_MQ.P_LagMelding lager en melding i FS_SYSTEM.MQ_BUFFER
  • Jobben FSAPI_MQ_SEND (i fs-api-db) sjekker bufferet jevnlig (pr. i dag hvert 5. minutt), dvs. den løper igjennom bufferet og gjør følgende:
    • Informasjonen i bufferet mappes til meldingsformatet
    • Meldingen sendes til meldingskø av PK_FSWS_MQ.F_SendMessage (i fsws-db)
    • PK_FSWS_MQ.F_SendMessage kaller WebserviceKall.sendMq (i fsws-intern)

Evt. feil som oppstår i denne prosessen logges i varselloggen.

Objekter det sendes meldinger fra

Vi implementerer MQ-triggerfunksjonalitet for alle tabeller ved behov.

Oversikt over tabeller, triggertyper og meldinger så langt (det kommer fler):

Ressurs Tabell Ins Upd Del Status
campuser Campus C U D Ferdig
fag Fag C U D Ferdig
kvalifikasjonsgrunnlag KvalGrunnlag C U D Ferdig
land Land C U D Ferdig
roller Rolle C U D Ferdig
steder Sted C U D Ferdig
steder Institusjon U U U Ferdig
steder Fakultet U U U Ferdig
studienivaer Studieniva C U D Ferdig
           
personer Person C U D Ferdig
personer Student U U U FerdigFerdig
personer Fagperson U U U Ferdig
personer PersonTelefon U U U Ferdig
personer PersonBilde U U U Ferdig
personroller PersonRolle C U D Ferdig
semesterregistreringer Registerkort C U D Ferdig
semesterregistreringer Studentkort U U U Ferdig
deltakere Deltaker C U D Ferdig
deltakere DeltakerTelefon U U U Ferdig
fnrEndringer Fnr_Endring C U D Ferdig
           
studieprogrammer Studieprogram C U D Ferdig
kull Kull C U D Ferdig
studieretter StudieprogramStudent C U D Ferdig
           
emner Emne C U D Ferdig
undervisning Undervisningsenhet C U D Ferdig
undervisningsaktiviteter UndAktivitet C U D Ferdig
studentundervisning Undervisningsmelding C U D Ferdig
studentunderv.aktiviteter Student_Pa_Und.parti U U U Ferdig
studentunderv.aktiviteter Aktivitet_Onske U U U Ferdig
           
evukurs EtterUtdKurs C U D Ferdig
evukursdeltakere KursDeltakelse C U D Ferdig
           
kommisjoner Kommisjon C U D Ferdig
vurderingstider Vurderingstid C U D Ferdig
vurderingskombinasjoner Vurderingskombinasjon C U D Ferdig
vurderingsenheter VurdKombEnhet C U D Ferdig
studentvurderinger StudentVurdKombProtokoll C U D Ferdig
studentvurderinger VurdKombMelding C U D Ferdig

 

 

Publisert 14. feb. 2018 09:09 - Sist endret 28. mars 2022 18:23