Bruk av AMQP for meldingsutveksling

AMQP (Advanced Message Queuing Protocol) versjon 1.0 skal benyttes for meldingsutvekslingen for digital dialog med helsenorge.no. En generell beskrivelse av AMQP standarden finnes hos OASIS: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-overview-v1.0-os.html

Oppsett av AMQP-meldingen skal gjøres i henhold til spesifikasjon https://helsenorge.atlassian.net/wiki/spaces/HELSENORGE/pages/1656651781

For å sende å motta meldinger kan kodebiblioteket Helsenorge Messaging benyttes.

NHN benytter Tjenestebuss for håndtering av AMQP køer, dokuementasjon av tjenesten er tilgjengelig her: https://www.nhn.no/tjenester/tjenestebuss

Krav og anbefalinger for klienter som benytter AMQP

Id

Krav

Begrunnelse

Id

Krav

Begrunnelse

1

En klient skal holde en persistent forbindelse og gjenbruke denne for sending og mottak

Opprettelse og avslutning er en dyr operasjon og medfører økt og unødvendig last på løsningen. Anbefaling fra Microsoft ligger her.

2

En klient skal håndtere frakopling av Service bus på en robust måte

Ved restart eller annen utilgjengelighet av Service Bus skal klienten automatisk gjenopprette tilkopling

3

En sender og mottaker skal settes opp med kun en factory per sender/mottak

Det er en begrensing på 1000 connections per kø. Helsenorge sin kø har svært mange avsendere, og hver sender skal ha kun en factory.

Ved bruk av Helsenorge.Messaging settes dette ved configverdien "MaxFactories": 1

4

En kommunikasjonspart bør arve køer fra virksomheten

Det er mulig å sette opp at kommunikasjonsparter arver køer fra overliggende virksomhet. Dersom dette er mulig, bør det gjøres for å redusere antall køer og connections og gjøre overvåkning enklere.

5

Meldingstørrelse skal begrenses til maksimalt 40Mb

Meldingsbuss håndterer maksimal størrelse på 50Mb.

Brukstilfeller som sender store meldinger (over 1Mb) skal avtales spesielt for å vurdere egnethet.

6

En klient skal ha mulighet til å legge inn konfigurasjon på hvilke køer det skal lyttes på og hvilke kommunikasjonsparter som løsningen håndterer.

Klienten skal håndtere at ikke alle køer som klienten hart tilgang til skal lyttes til.

Det vil bli en god del feilede påloggingsforsøk dersom dette kun håndteres basert på hvilke køer klienten har tilgang til og klienten kan risikere låsing av brukeren med for mange feilede påloggingsforsøk.