Mellanprogramvara

Från Rilpedia

Version från den 28 maj 2009 kl. 14.22 av LA2-bot (Diskussion)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Mellanprogramvara (även MW, middleware (från engelskan) eller mellanvara) är mjukvara mellan nätverk och applikationer. Denna mjukvara tilhandahåller tjänster såsom identifiering, autentisering och säkerhet. En vanlig analogi brukar vara att middleware är som ett lim mellan två redan existerande mjukvarukomponenter.

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

Innehåll

Definition

Det finns många definitioner av middleware. Från till exempel publikationen av ett NGI (Next Generation Internet) seminarium som ägde rum 1997 kan man läsa att ”Middleware 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ö”.

Protokollstacken
Applikationslagret
Transportlagret
Nätverkslagret
Länklagret
Fysiska lagret

Om man tittar på var i protokoll stacken middleware finns, så skiljer sig meningarna åt beroende på vad man sysslar med. Programmerare kanske ser det som att allt under API är middleware, medan det även finns de som ser allt över nätlagret som middleware. RFC 2768[1] definierar dock att middleware är det som finns ovan transportlagret och under applikationslagret.

Ursprung

Middleware 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 middleware kunde användas för att öka applikationsprestandan i distribuerade domäner.

Typer av Middleware

Bland de vanligaste typerna av Middleware ä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 objekt-orienterad programmering.


Vanliga tjänster

Enligt Internet2[3] så finns det 5 huvudtjänster som alla andra middleware tjä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).

Den femte är Certificates and public key infrastructure.

Objektorienterad Middleware

Objektorienterad Middleware (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

  1. RFC2768
  2. Wolfgang Emmerich, "Software Engineering and Middleware: 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

Externa länkar

Vad är middleware?

Annan definition: Vad är middleware?

Personliga verktyg