Mellanprogramvara (även MW, middleware (från engelskan) eller mellanvara) är mjukvara mellan operativsystemetservrar 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 redigera

Det finns många definitioner av mellanprogramvara. Från till exempel publikationen av ett NGI (Next Generation Internet) seminarium som ägde rum 1997[1] 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 redigera

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 redigera

Bland de vanligaste typerna av Mellanprogramvara är[2]:

  • 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 redigera

Enligt Internet2[3] 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 redigera

Objektorienterad mellanprogramvara (OOM) skapades för att kunna använda det objektorienterade programmeringsmönstret i distribuerade system[4]. 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 redigera

  1. ^ [1] Arkiverad 7 oktober 2012 hämtat från the Wayback Machine. Research challenges for the next generation internet
  2. ^ Wolfgang Emmerich, "Software Engineering and Mellanprogramvara: a Roadmap", in Proceedings of the Conference on The Future of Software Engineering (ICSE '00), ACM, 2000, pp. 117-129
  3. ^ Internet2
  4. ^ ”Introduktion till OOM”. Arkiverad från originalet den 26 september 2007. https://web.archive.org/web/20070926212959/http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline%2Ftopics%2Fmiddleware&file=intro_OOM.xml&xsl=article.xsl&. Läst 16 juni 2019. 

Externa länkar redigera