Mellanprogramvara

Mellanprogramvara (även MW, middleware (från engelskan) eller mellanvara) är mjukvara mellan operativsystemet på servrar i nätverk och/eller klienter och själva slutanvändartjänsten som ligger på klienten. Mellanprogramvara tillhandahåller tjänster såsom identifiering, autentisering och säkerhet. En vanlig analogi brukar vara att mellanprogramvara är som ett lim mellan två redan existerande mjukvarukomponenter.

Mellanprogramvara används oftast för att stödja distribuerade system, såsom vanliga webbservrar

Definition 
Det finns många definitioner av mellanprogramvara. Från till exempel publikationen av ett NGI (Next Generation Internet) seminarium som ägde rum 1997 kan man läsa att ”Mellanprogramvara kan ses som ett återanvändbart, utvecklingsbart set av tjänster och funktioner som används ofta av många applikationer för att fungera väl i en nätverksmiljö”.

Ursprung 
Mellanprogramvara började användas under slutet av 1970-talet och början av 1980-talet. I ett projekt vid namn I-WAY, där man jobbade med att koppla ihop datorer till ett (i USA) nationellt nätverk, kom man snart fram till att för att få ett ordentligt hög-prestanda nätverk så behövdes tjänster som då inte fanns. Globus, ett annat projekt, demonstrerade hur mellanprogramvara kunde användas för att öka applikationsprestandan i distribuerade domäner.

Typer av mellanprogramvara  
Bland de vanligaste typerna av Mellanprogramvara är:

 transaktionell mellanprogramvara (transactional MW): Tillhandahåller verktyg och miljö för att utveckla och sprida distribuerade applikationer (typiskt databaser).
 procedurell mellanprogramvara (procedural MW): Tillåter en klient att anropa funktioner på en server, som att det vore lokalt. Typexempel: RPC.
 meddelandeinriktad mellanprogramvara (message-oriented MW - MOM): Tillhandahåller verktyg för att överföra data från program till program genom meddelandeskickande.
 objekt- och komponentmellanvara (object and component MW): vidareutveckling av procedurell mellanprogramvara som dessutom möjliggör användande av distribuerad objektorienterad programmering.

Vanliga tjänster 
Enligt Internet2 så finns det 5 huvudtjänster som alla andra mellanprogramvarutjänster är beroende av. Dessa är:
Identifiers: Används för att hålla koll på vilken person, grupp eller vilket objekt som hanteras.
Authentication: Processen att säkerställa (exempelvis en användarens) identitet.
Directories: Innehåller information som används för att exempelvis beskriva vilken väg specifik nätverkstrafik ska ta, eller spara information om användare.
Authorization: Definierar vad som är tillåtet (tex vad en användare får göra).
Certificates and public key infrastructure.

Objektorienterad mellanprogramvara 
Objektorienterad mellanprogramvara (OOM) skapades för att kunna använda det objektorienterade programmeringsmönstret i distribuerade system. Det ger bland annat tillgång till att använda distribuerade objekt, vilket betyder att en klient kan anropa ett objekts funktion som ligger på en annan dator, allt medan klienten tror att anropet sker lokalt. 

Exempel på teknologier som stödjer objektorientering är CORBA, Java RMI, JINI, DCOM och .NET.

Källor

Externa länkar
Vad är middleware?

Datorprogram