Inhoudsopgave:
Wat is middleware en waarvoor wordt het gebruikt?
Middleware is software die zorgt voor de connectie en communicatie tussen verschillende soorten IT-systemen. Denk hierbij aan de verbinding tussen systeemapplicaties, softwarepakketten, besturingssystemen en bepaalde hardware . Via deze connectie kunnen data worden overgezet van het ene systeem naar het andere. De meest bekende soort middleware is de verbindende software tussen een besturingssysteem en de applicaties die hierop werken.
Wist je dat? Het woord middleware werd voor de eerste keer gebruikt tijdens de NAVO Software Engineering Conference in 1968. Op dat moment waren de mogelijkheden beperkt tot het koppelen van oude en nieuwe software.
Hoe werkt middleware?
Middleware werkt als een communicatienetwerk tussen IT-systemen en applicaties. Het is een automatische ‘vertaler’ van aanvragen en antwoorden. Op deze manier begrijpen de verschillende elementen in een softwaresysteem elkaar, en kunnen ze onderling goed samenwerken.
Middleware is bijvoorbeeld aan zet wanneer een persoon zich aanmeldt bij een webshop (bijvoorbeeld die van Hema of Amazon). De gebruikersnaam en het wachtwoord dat de gebruiker invoert, worden door de middleware vertaald en doorgegeven aan de database in een vorm die voor het systeem leesbaar is. Deze database geeft dan een antwoord, namelijk of de gegevens correct zijn of niet. Dit antwoord moet weer vertaald worden voor de front-end van de webshop, die de gebruiker wel of geen toegang zal geven tot zijn persoonlijke omgeving .
Om als ‘vertaler’ te kunnen optreden kan middleware gebruik maken van verschillende frameworks. Dit zijn onder meer:
- Representational State Transfer (REST)
- Web Services
- JavaScript Object Notation (JSON)
- Simple Object Access Protocol
- Enterprise Service Bus
- Application Programming Interface
Let op! Vaak wordt middleware verward met een API . Maar die twee zijn niet helemaal hetzelfde: een API is een tool die gebruikt wordt door middleware om de koppeling tussen platformen te verzorgen.
Welke soorten middleware bestaan er?
Er bestaat niet één soort middleware. Afhankelijk van de taken die het systeem mogelijk moet maken, zal er voor de ene of andere middleware gekozen worden. Middleware die ervoor moet zorgen dat servers de commando’s van gebruikers goed begrijpen zal bijvoorbeeld niet dezelfde zijn als middleware die de het afhandelen van de wachtrij van een ticketingsysteem vlot doet verlopen.
Vaak worden er ook verschillende middlewarepakketten gebruikt binnen één IT-infrastructuur. Hoe lastiger de communicatie tussen systemen is, hoe meer middleware er nodig zal zijn. Ook als er meer taken moeten worden uitgevoerd kiest men vaak voor veel en verschillende middlewarepakketten.
De twee meest gebruikte soorten middleware zijn die voor integraties en voor het gebruik van applicaties. Binnen deze twee categorieën bestaan er ook nog onderverdelingen.
Integration middleware
Dit soort middleware zorgt ervoor dat applicaties onderling met elkaar communiceren en goed integreren. Tot deze categorie behoren onder meer:
- Middleware voor verwerkingen en processen: zorgt voor een simultane communicatie tussen systemen. De belangrijkste elementen die hierbij gebruikt worden zijn de stub en het skeleton. De stub stuurt de aanvraag naar de server (dit kan gaan over een informatieaanvraag of een instructie voor de server). Het skeleton zorgt ondertussen voor de vertaling, zodat de server de aanvraag ook begrijpt. Zodra de server de aanvraag ontvangen heeft en een antwoord heeft geformuleerd, wordt dit bericht weer op dezelfde manier vertaald en teruggestuurd naar de applicatie.
- Middleware voor distributed objects: zorgt ervoor dat er met distributed objects gewerkt kan worden. Met deze term bedoelt men dat verschillende data van één aanvraag over verschillende serverlocaties verdeeld zijn. Bijvoorbeeld: een gebruiker vraagt naar het weer. Hierbij vraagt hij niet naar één gegeven, maar naar een combinatie van data die samen het weerbeeld vormen. Deze data, of objects, staan verspreid. Of het zal regenen staat op locatie X, welke windkracht er is op locatie Y en de luchtvochtigheid op locatie Z. In dit geval moet de middleware al deze objects verzamelen om antwoord te kunnen geven op de vraag. Ook bij middleware georiënteerd op objecten wordt er trouwens gebruik gemaakt van stubs en skeletons voor het versturen en vertalen van aanvragen en antwoorden.
- Middleware voor tekstberichten: met message-oriented middleware (MOM) kan de ene applicatie de tekstberichten van de andere begrijpen en beantwoorden, en vice versa. De synchronisatie van deze communicatie verloopt niet in real-time, omdat de applicaties niet rechtstreeks gekoppeld zijn. MOM kan op twee manieren werken:
- Point-to-point: hierbij worden berichten alleen ontvangen
- Publish/subscribe: hierbij worden berichten gepubliceerd, ontvangen en opgeslagen
- Middleware voor componenten: configureert softwarecomponenten zodat deze onderling kunnen samenwerken. Een component is een stukje software dat op zelfstandig kan werken, een eigen interface heeft en met andere componenten kan samenwerken. Dit soort middleware kan de componenten zelfs terwijl ze in werking zijn configureren. Hierdoor is het een heel flexibel soort middleware, die geprogrammeerd kan worden om de verschillende functies en applicaties binnen een component te configureren.
- Agent-middleware: dit soort middleware kan verschillende taken uitvoeren en op verschillende manieren werken, bijvoorbeeld met objecten of via processen. Het is een middleware die in staat is om alle bovenstaande taken uit te voeren.
Application middleware
Deze middleware zorgt voor de goede werking van applicaties op een specifiek besturingssysteem. Deze middlewarepakketten krijgen een samenstelling die afhankelijk is van de eigenschappen van de applicatie die met het besturingssysteem moet communiceren.
Tot deze categorie behoren onder meer:
- Data access middleware (DAM): deze middleware zorgt ervoor dat informatie uit verschillende databronnen toegankelijk is voor de applicaties. Vandaar dat deze middleware vooral gebruikt wordt voor informatieaanvragen en het beheer van gateways (digitale toegangspoorten) naar de data op de servers.
- Desktop middleware: deze middleware kan ingezet worden voor de volgende taken:
- veranderingen aanbrengen in de manier waarop informatie wordt gepresenteerd aan de gebruiker;
- datastromen controleren;
- back-ups maken en ophalen (bijvoorbeeld als gegevens bij een datamigratie verloren zijn gegaan);
- Informatie in de database beheren;
- communicatieprocessen tussen applicaties en het besturingssysteem beheren;
- software-infrastructuur beheren (installatie en gebruik);
- encryptie verzorgen;
- toegangscontrole regelen.
- Web middleware: deze middleware biedt ondersteuning bij het gebruik van web services, zoals het downloaden van een archief van een website, of het raadplegen van de e-mail. Hierbij maakt de middleware gebruik van interfaces , die steeds verbeterd worden. De verbeteringen worden aangebracht op basis van de reacties en de voorkeuren van de gebruiker. Denk hierbij bijvoorbeeld aan de tekstsuggesties bij het typen van een e-mail of zoekresultaten die steeds beter bij de voorkeuren van een gebruiker passen.
- Real time middleware: dit soort middleware zorgt ervoor dat de gebruiker bij een vraag steeds het meest actuele antwoord te zien krijgt. Als hij of zij op een bepaalde dag bijvoorbeeld vraagt hoeveel producten er de afgelopen 24 uur verkocht zijn, zal het antwoord om 9.00 uur niet hetzelfde zijn als om 21.00 uur. Met realtime middleware kan dit verschil duidelijk worden, en hoeft de gebruiker niet te wachten tot de volgende dag voordat het totaal geüpdatet is. Er bestaan diverse soorten realtime middleware:
- voor het realtime raadplegen van de database;
- voor het verwerken van data;
- voor het verzenden van de aanvraag en het antwoord.
Let op! Naast al deze soorten middleware bestaat er ook nog middleware die ontwikkeld is voor een specifiek doel of bedrijfsspecifieke activiteit. Deze middleware valt niet onder integration middleware of application middleware, maar wordt binnen een organisatie ontwikkeld voor de communicatie tussen specifieke systemen, zoals het geval kan zijn in een ziekenhuis met veel verschillende softwarepakketten gericht op de gezondheidszorg.