Hva er middleware?

Av Weapp · Oppdatert

Middleware er programvarelaget som sitter mellom ulike systemer og oversetter, setter i kø og formidler data slik at systemene slipper å kjenne til hverandre direkte. Det fungerer som en tolk mellom parter uten felles språk. Konkrete former er meldingskøer, integrasjonsmotorer og API-gatewayer. Nytten merkes tydeligst ved systembytter: Bytt den ene siden uten å røre den andre.

Middleware er et av disse ordene som beskriver noe ut fra hvor det sitter, snarere enn hva det gjør. Det betyr omtrent mellomvare, altså programvare i midten, og det fanger poenget: Middleware er limet mellom systemer som ellers ville ha problemer med å snakke med hverandre. For den som skal forstå hvordan et systemlandskap henger sammen, er det et nøkkelbegrep. Her er forklaringen.

Sammenligningen: tolken

Tenk deg to personer som skal gjøre forretninger, men som ikke snakker samme språk. De kunne ha prøvd seg med gester og løsrevne ord, men det blir tregt og fullt av misforståelser. Setter man i stedet en tolk mellom dem, løser det seg. Hver av dem snakker sitt eget språk til tolken, som oversetter begge veier. Partene trenger aldri å lære hverandres språk; de trenger bare å snakke med tolken.

Middleware er den tolken mellom systemer. To systemer kan være bygd på helt forskjellige måter, bruke ulike formater og ha ulikt tempo. I stedet for å tvinge dem til å forstå hverandre direkte setter man et mellomlag imellom. Hvert system snakker med middlewaren på sin egen måte, og den oversetter og formidler. Systemene slipper å kjenne til hverandres indre.

Hva middleware faktisk gjør

Bak tolkebildet ligger noen konkrete oppgaver. Middleware gjør gjerne tre ting, ofte i kombinasjon:

  • Oversetter. Ulike systemer beskriver det samme på ulike måter. Middlewaren gjør om data fra det ene formatet til det andre slik at mottakeren forstår hva avsenderen mener.
  • Setter i kø. Hvis mottakeren er opptatt eller nede en stund, kan middlewaren holde meldingene i kø og levere dem når det går, i stedet for at de går tapt. Prosessen overlever at en part ikke er klar akkurat nå.
  • Formidler. Den sørger for at riktige data tar riktig vei til riktig system, og ruter meldinger dit de skal når mange systemer er involvert.

Til sammen gjør dette at systemene kan samarbeide uten å være tett koblet sammen. Hvert system gjør sitt, og mellomlaget holder det hele sammen.

Konkrete former

Middleware er et samlebegrep snarere enn ett enkelt produkt, og det finnes i flere former:

  • Meldingskøer. De tar imot meldinger og holder på dem til mottakeren er klar. Slik går ingenting tapt hvis den ene siden er opptatt, og systemer som jobber i ulikt tempo, kan likevel samhandle.
  • Integrasjonsmotorer. De oversetter og ruter data mellom mange systemer og er navet når et helt landskap skal henge sammen.
  • API-gatewayer. Den felles inngangen foran flere tjenester regnes også som en form for middleware fordi den sitter mellom klientene og tjenestene og formidler.

Felles for alle: De sitter i midten og tar seg av formidlingen slik at systemene på hver side kan holdes uavhengige av hverandre.

Nytten ved systembytter

Her ligger kanskje den sterkeste grunnen til å bry seg om middleware, også som beslutningstaker. Når systemer snakker direkte med hverandre, blir de tett sammenvevd. Bytter dere ut det ene, må dere ofte endre alt som var koblet til det fordi avhengighetene går på kryss og tvers. Et systembytte blir da et stort, risikabelt prosjekt som sprer seg langt utenfor selve systemet.

Med middleware imellom brytes den avhengigheten. Systemene snakker med mellomlaget, ikke direkte med hverandre. Skal dere bytte ut det ene, holder det stort sett å justere det systemets kobling mot middlewaren; den andre siden kan stå urørt fordi den bare kjenner til mellomlaget. Dere kan bytte den ene siden uten å røre den andre.

Det gjør systemlandskapet mer fleksibelt og fremtidssikkert. Systemer kommer til å bli byttet ut over tid, og et mellomlag gjør hvert slikt bytte mindre smertefullt.

En konkret måte å se det på: Si at dere bytter ERP-system, noe de fleste organisasjoner gjør før eller senere. Uten middleware, der nettside, lager og økonomi snakker direkte med det gamle ERP-systemet, må hver av disse koblingene lages på nytt mot det nye. Med et mellomlag imellom snakker de i stedet med middlewaren, og bare én kobling, den mot ERP-systemet, må byttes ut. De andre systemene merker knapt byttet. Det er forskjellen på å røre alt og å røre ett punkt.

Vi i Weapp bygger integrasjoner med passe mye mellomlag: nok til å holde systemene uavhengige, uten unødvendig kompleksitet. Se tjenestene våre eller ta kontakt.

Ofte stilte spørsmål

Hva betyr middleware?

Ordet betyr omtrent mellomvare: programvare som sitter i midten, mellom andre systemer. Oppgaven er å formidle mellom dem, altså oversette mellom ulike formater, sette meldinger i kø og sørge for at data havner på riktig sted. Systemene på hver side trenger da ikke å kjenne hverandre i detalj, men snakker hver for seg med mellomlaget som tar seg av koblingen.

Kan du gi et eksempel på middleware?

Meldingskøer er et vanlig eksempel: De tar imot meldinger fra ett system og holder på dem til mottakeren er klar slik at ingenting går tapt hvis den ene siden er opptatt. Integrasjonsmotorer oversetter og ruter data mellom mange systemer. Også en API-gateway regnes som en form for middleware. Felles for dem er at de sitter mellom systemene og formidler.

Hva er forskjellen på middleware og et API?

Et API er kontaktflaten et enkelt system tilbyr for at andre skal kunne snakke med det. Middleware er laget mellom systemene som bruker og samordner slike kontaktflater: Det oversetter, setter i kø og ruter. Man kan si at API-er er dørene på systemene, mens middleware er formidleren som sørger for at riktig ting tar riktig vei mellom dørene.

Hvorfor er middleware nyttig ved systembytter?

Fordi det bryter den direkte avhengigheten mellom systemene. Når systemer snakker via et mellomlag i stedet for direkte med hverandre, kan dere bytte ut det ene uten å røre det andre; bare koblingen mot mellomlaget må justeres. Uten middleware, med alt tett koblet sammen, tvinger et bytte på én side frem endringer overalt der det systemet hadde koblinger.

Trenger alle integrasjoner middleware?

Nei. Skal bare to systemer kobles sammen, kan en direkte integrasjon være nok og enklere. Middleware kommer til sin rett når flere systemer skal henge sammen, når data må oversettes mellom formater, eller når prosesser må tåle at en part er nede en periode. Jo flere og mer ulike systemene er, desto større blir nytten av et samordnende mellomlag.