Skrevet av: Kjetil Svihus

Det er åpenbart fortsatt behov for å kunne tilby meldingsløsninger som er i stand til å levere kritiske meldinger asynkront og effektivt. Det er akkurat det IBM MQ kan tilby.

Hva er IBM MQ og hvorfor er det relevant?

Har du hørt om IBM MQ? Eller kanskje WebSphere MQ eller MQ Series, som er eldre versjoner av IBM MQ. Har du ikke helt forstått hva det er og hvorfor det er relevant? Det er du ikke alene om, men vi jobber med dette til daglig, så i dette innlegget skal du få en liten innføring. Kanskje er det akkurat det du trenger i din organisasjon.

Hva er meldingsorienterte mellomvareprodukter (MOM)?

Meldingsorienterte mellomvareprodukter er programvare eller maskinvareinfrastruktur som håndterer sending og mottakelse av meldinger mellom distribuerte systemer. Dette gjør det mulig for applikasjoner, tjenester og meldings-endepunkter, som sender eller mottar meldinger, å være på heterogene plattformer, med forskjellige operativsystem, forskjellige applikasjon språk, forskjellige prosessorer og forskjellige nettverksprotokoller. Mellomvaren skaper et distribuert kommunikasjons lag som gjør jobben lettere for applikasjonsutvikleren, ved å skjerme utvikleren fra denne kompleksiteten, og lar applikasjonene samhandle med hverandre.  

Meldingskøen leveres vanligvis av mellomvaren for å støtte asynkron utveksling av meldinger. Meldingene på køen blir liggende til de blir behandlet av en tjenesteforbruker. Via meldingskøen kan applikasjoner bli implementert uten å vite noe om hverandre. 

En god måte å forstå MOM kontra å lage applikasjoner som kommuniserer direkte med hverandre, er å se på det gamle telefonsystem i forhold til det moderne. I det gamle telefonsystemet måtte telefonoperatøren koble de to koblingene sammen, for at de skulle snakke med hverandre.

Gammel telefonoperatør

I moderne telefonsystem er det ingen operatør som trenger å koble noe sammen. I tillegg må ikke personen som skal motta samtalen være tilgjengelig, siden man kan legge igjen en beskjed (voicemail). Denne meldingen vil personen lese når han/hun blir ledig. Dette er hovedforskjellen mellom gammelt og moderne telefonsystem. 

Denne måten å tenke kommunikasjon på, gjør at vi kommer til ideen om løs kobling. Tett kobling fører til mange avhengigheter av kommunikasjonen mellom de to applikasjonene. Dette inkluderer serveren til hver av dem, applikasjonene til hver av den, nettverket mellom de osv. Tett kobling krever også at begge applikasjonene er oppe samtidig. Når det gjelder løs kobling spiller det ingen rolle om mottaks-serveren er nede når avsender-serveren sender meldingen, eller motsatt. Dette kalles også meldingsuavhengighet, og reduserer kompleksiteten.

Tett kobling vs løs kobling

Tett kobling vs løs kobling

MOM har flere typer meldingssystem

MOM har flere typer meldingssystemer forhindre at det blir koblinger som dette:

Spaghettikoblinger

Spaghettikoblinger

Punkt-til-punkt

Applikasjoner sender meldinger til en kø og mottar meldinger fra kø. Applikasjonen som sender meldingen må bare vite navnet på destinasjonen, men trenger ikke å vite hvor den er. Mottakeren kan være et enkelt endepunkt eller en liste med endepunkter. 

Publiser/abonner

Applikasjoner abonnerer på et emne. Når en avsender sender melding om et emne, så vil undermegleren sende en kopi til alle applikasjoner som abonnerer på emne 

Apache Kafka

Apache Kafka er et alternativt meldingssystem som bruker publiser/abonner for å støtte event streams processing. Det er en programvare-plattform med åpen kildekode.

Hva er IBM MQ?

IBM MQ sørger for at meldingene blir levert en gang, og bare en gang, slik at utvikleren slipper å tenke på utvikling av kommunikasjonskode. IBM MQ forenkler og akselerer sending av melding om du er i skyen, på mobilen eller i en IoT (internet of things) enhet. Den gir høy ytelse, høy sikkerhet og høy stabilitet. IBM MQ kan bli brukt til å utvide eksisterende infrastrukturer i IT systemet til en bedrift. Sagt på en annen måte - IBM MQ sikrer levering av en melding på en pålitelig måte én gang, med transaksjonsintegritet. Dette er grunnen til at den brukes til virkelig kritiske meldingsløsninger. Et eksempel på dette er når du tar ut eller sender penger fra kontoen din, da er du avhengig av at meldingen med den debeten kun skal bli sendt en gang.

MQ Fundamentals

MQ Fundamentals

Er IBM MQ relevant i dag?

Dette kan være et viktig spørsmål for mange, men for de som allerede bruker MOM, så er ikke dette et spørsmål i det hele tatt. MOM er mer viktig i dag enn det noen gang har vært. MOM er en viktig del for å bygge løsninger som er effektive, skalerbare og alltid tilgjengelige.

Kritiske applikasjoner er avhengig av sikret asynkrone transaksjoner. Asynkrone transaksjoner er skalerbare, feiltolerante og løst koblet. Det er flere og flere mikrotjenester som trenger sikker kommunikasjon, i tillegg til dette så er det også blitt mer behov for å støtte event streaming.

Konklusjon

Så svaret på spørsmålet om IBM MQ fortsatt er relevant idag er definitivt ja. MOM bygger de kritiske broene mellom systemene våre, uavhengig av hvor de er, hvilket språk, operativsystem eller sky de er i. For å forklare med en setning, muligheten for IBM MQ å levere en melding på en pålitelig måte én gang, med transaksjonsintegritet, er grunnen til at IBM MQ brukes til virkelig kritiske meldingsløsninger.

 

Kilde: What is IBM MQ and Why is it Relevant?