Hvad er middleware?
Middleware er softwarelaget der sidder mellem forskellige systemer og oversætter, sætter data i kø og formidler dem så systemerne slipper for at kende hinanden direkte. Det fungerer som en tolk mellem parter uden et fælles sprog. Konkrete former er beskedkøer, integrationsmotorer og API-gateways. Nytten ses tydeligst ved systemskift: Skift den ene side uden at røre den anden.
Middleware er et af de ord der beskriver noget ud fra hvor det sidder snarere end hvad det gør. Navnet betyder nærmest “software i midten”, og det indfanger pointen: Middleware er limen mellem systemer der ellers ville have svært ved at tale med hinanden. For den der skal forstå hvordan et systemlandskab hænger sammen, er det et nøglebegreb. Her er forklaringen.
Sammenligningen: tolken
Forestil dig to personer der skal handle med hinanden, men ikke taler samme sprog. De kunne kæmpe sig igennem med fagter og løsrevne ord, men det bliver langsomt og fuldt af misforståelser. Sætter man i stedet en tolk mellem dem, løser det sig. Hver af dem taler sit eget sprog til tolken, som oversætter begge veje. Parterne behøver aldrig at lære hinandens sprog; de behøver kun at tale med tolken.
Middleware er tolken mellem systemer. To systemer kan være bygget på helt forskellige måder, tale forskellige formater og have forskelligt tempo. I stedet for at tvinge dem til at forstå hinanden direkte sætter man et mellemlag imellem. Hvert system taler med middlewaren på sin egen måde, og den oversætter og formidler. Systemerne slipper for at kende hinandens indre.
Hvad middleware faktisk gør
Bag billedet af tolken ligger nogle konkrete opgaver. Middleware gør typisk tre ting, ofte i kombination:
- Oversætter. Forskellige systemer beskriver den samme ting på forskellige måder. Middlewaren omdanner data fra det ene format til det andet så modtageren forstår hvad afsenderen mener.
- Sætter i kø. Hvis modtageren er optaget eller midlertidigt nede, kan middlewaren holde beskederne i kø og levere dem når det kan lade sig gøre, i stedet for at de går tabt. Flowet overlever at en part ikke er klar lige nu.
- Formidler. Den sørger for at de rigtige data tager den rigtige vej til det rigtige system, og dirigerer beskeder derhen hvor de skal når mange systemer er involveret.
Tilsammen gør de at systemerne kan samarbejde uden at være tæt koblet sammen. Hvert system gør sit, og mellemlaget holder det hele sammen.
Konkrete former
Middleware er et samlebegreb snarere end et enkelt produkt, og det findes i flere former:
- Beskedkøer. De tager imod beskeder og holder på dem til modtageren er klar. Så går intet tabt hvis den ene side er optaget, og systemer der arbejder i forskelligt tempo, kan alligevel spille sammen.
- Integrationsmotorer. De oversætter og dirigerer data mellem mange systemer og er navet når et helt landskab skal hænge sammen.
- API-gateways. Den fælles indgang foran flere tjenester regnes også som en form for middleware fordi den sidder mellem forbrugerne og tjenesterne og formidler.
Fælles for dem alle: De sidder i midten og står for formidlingen så systemerne på hver side kan holdes uafhængige af hinanden.
Nytten ved systemskift
Her ligger måske den stærkeste grund til at interessere sig for middleware, også som beslutningstager. Når systemer taler direkte med hinanden, bliver de tæt sammenflettede. Skifter I det ene ud, er I ofte tvunget til at ændre i alt det der var koblet til det fordi afhængighederne løber på kryds og tværs. Et systemskift bliver så et stort, risikabelt projekt der breder sig langt ud over selve systemet.
Med middleware imellem brydes den afhængighed. Systemerne taler med mellemlaget, ikke direkte med hinanden. Skal I skifte det ene ud, er det stort set nok at justere dets kobling til middlewaren. Den anden side kan lades urørt fordi den kun kender mellemlaget. I kan skifte den ene side uden at røre den anden.
Det gør systemlandskabet mere fleksibelt og fremtidssikret. Systemer bliver skiftet ud over tid, og et mellemlag gør hvert sådant skift mindre smertefuldt.
Et konkret eksempel: Lad os sige at I skifter ERP-system, noget de fleste organisationer gør før eller siden. Uden middleware, hvor webløsning, lager og økonomi taler direkte med det gamle ERP-system, skal hver eneste af de koblinger laves om til det nye. Med et mellemlag imellem taler de i stedet med middlewaren, og kun dens ene kobling (den til ERP-systemet) skal skiftes ud. De andre systemer mærker knap nok skiftet. Det er forskellen mellem at røre det hele og at røre ét punkt.
Vi hos Weapp bygger integrationer med den rette mængde mellemlag: nok til at holde systemerne uafhængige, uden unødig kompleksitet. Se vores ydelser eller kontakt os.
Ofte stillede spørgsmål
Hvad betyder middleware?
Ordet betyder nærmest "softwaren i midten", altså software der sidder mellem andre systemer. Opgaven er at formidle mellem dem ved at oversætte mellem forskellige formater, sætte beskeder i kø og sørge for at data når det rigtige sted hen. Systemerne på hver side behøver så ikke at kende hinanden i detaljer, men taler hver for sig med mellemlaget der håndterer koblingen.
Kan du give et eksempel på middleware?
Beskedkøer er et almindeligt eksempel: De tager imod beskeder fra et system og holder på dem til modtageren er klar. Så går intet tabt hvis den ene side er optaget. Integrationsmotorer oversætter og dirigerer data mellem mange systemer. Også en API-gateway regnes som en form for middleware. Fælles for dem er at de sidder mellem systemerne og formidler.
Hvad er forskellen på middleware og et API?
Et API er den kontaktflade et enkelt system tilbyder så andre kan tale med det. Middleware er laget mellem systemerne. Det bruger og koordinerer sådanne kontaktflader: Det oversætter, sætter i kø og dirigerer. Man kan sige at API’er er dørene på systemerne mens middleware er formidleren der sørger for at det rigtige tager den rigtige vej mellem dørene.
Hvorfor er middleware en fordel ved systemskift?
Fordi det bryder den direkte afhængighed mellem systemerne. Når systemer taler via et mellemlag i stedet for direkte med hinanden, kan I skifte det ene ud uden at røre det andet: Kun koblingen til mellemlaget skal justeres. Uden middleware, hvor alt er tæt koblet sammen, tvinger et skift på den ene side ændringer frem overalt hvor det system var koblet på.
Har alle integrationer brug for middleware?
Nej. Skal kun to systemer kobles sammen, kan en direkte integration være nok og være enklere. Middleware kommer til sin ret når flere systemer skal hænge sammen, når data skal oversættes mellem formater eller når flows skal kunne tåle at en part midlertidigt er nede. Jo flere og mere forskelligartede systemerne er, desto større bliver nytten af et koordinerende mellemlag.