UPnP – Wikipedia
Universal Plug and Play (UPnP) är en samling kommunikationsprotokoll som är sammanställda av UPnP Forum. UPnP tillåter olika typer av enheter från olika tillverkare att ansluta till nätverk och underlättar implementationen av nätverk i hemmet eller på företag. En enhet kan helt automatiskt ansluta till ett nätverk, erhålla en IP-adress, meddela sina egenskaper och bli upplyst om andra enheters närvaro och egenskaper.
Översikt
[redigera | redigera wikitext]UPnP arkitekturen tillåter P2P-nätverk för datorer, nätverksenheter och trådlösa enheter. Det är en distribuerad öppen arkitektur baserad på TCP/IP, UDP och HTTP.
UPnP möjliggör kommunikation mellan alla enheter i ett nätverk (LAN). Några av egenskaperna är:
- Oberoende av kommunikationsmedium och enheter. UPnP kan köras över de flesta kommunikationsmedium som Ethernet, Wi-Fi, bluetooth och FireWire. Inga drivrutiner används, allmänna protokoll används istället.
- Arkitekturen tillåter tillverkare att använda valfria användargränssnitt genom webbläsare.
- Oberoende av programspråk och operativsystem. Alla programspråk och operativsystem kan användas för att konstruera UPnP-produkter.
- Internetbaserade teknologier. UPnP-teknologin är byggd på bland annat IP, TCP, UDP, HTTP och XML.
- Varje UPnP-enhet kan ha enhetsspecifika tjänster utöver den grundläggande arkitekturen.
Grunden för UPnP-nätverk är IP-adressering. Varje enhet måste ha en Dynamic Host Configuration Protocol (DHCP)-klient och söka efter en DHCP-server när den ansluter till ett nätverk. Om det inte finns någon DHCP-server tillgänglig så måste enheten tilldela en adress till sig själv.
Grunden i ett UPnP-nätverk
[redigera | redigera wikitext]Enheter
[redigera | redigera wikitext]En UPnP-enhet är ansluten till ett nätverk och erbjuder enhetsspecifika tjänster (funktioner), enheten kan även ha flera inbyggda enheter. En tv med inbyggd digital-tv-dekoder och stöd för UPnP kan bestå av en text-tv-tjänst och klock-tjänst, men har även en nästlad enhet i form av en dekoder. Olika typer av UPnP-enheter associeras med olika typer av tjänster och inbyggda enheter, tjänster i en dvd-spelare skiljer sig exempelvis från tjänster i en klimatanläggning. Varje enhet tillhandahåller en enhetsbeskrivning som beskriver enheten och dess tjänster i form av ett XML-dokument.
Tjänster
[redigera | redigera wikitext]För att kontrollera tillståndet för enheter i ett UPnP-nätverk används tjänster. En tjänst erbjuder funktioner för att ändra tillståndet för en enhet, tillståndet modelleras med tillståndsvariabler. En klimat-tjänst kan ha en tillståndsvariabel, indoor_temp, som definierar klimatanläggningens tillstånd och en funktion, set_temp, som tillåter användare att kontrollera tjänsten. Enhetsbeskrivningen har en pekare i form av en URL till en tjänstebeskrivning där information om tjänsterna beskrivs i ett XML-dokument.
En tjänst består av en tillståndstabell, kontrollserver och en händelseserver. Tjänstens tillstånd modelleras genom tillståndsvariabler som uppdateras när tillståndet förändras. Funktionsförfrågningar (exempelvis set_temp) skickas till kontrollservern som exekverar dem, uppdaterar tillståndstabellen och returnerar ett svar. Händelseservern skickar händelsemeddelanden till intresserade enheter varje gång tillståndet för tjänsten förändras, till exempel, en skrivartjänst skickar meddelande om att bläcket är slut i skrivaren.
Kontrollpunkter
[redigera | redigera wikitext]En kontrollpunkt i ett UPnP-nätverk är en enhet som kan upptäcka och kontrollera andra enheter. När en enhet har upptäckts så kan kontrollpunkten:
- Erhålla enhetsbeskrivningen och få en lista på associerade tjänster.
- Erhålla tjänstebeskrivningar för relevanta tjänster.
- Anropa funktioner för att kontrollera tjänsten.
- Registrera sig till tjänstens händelseserver för att erhålla tillståndsmeddelanden när tjänstens tillstånd förändras.
Teknologier
[redigera | redigera wikitext]Eftersom UPnP till stor del utnyttjar vanliga standardprotokoll som används överallt på Internet och i andra nätverk, så kan UPnP implementeras på redan befintliga strukturer.
TCP/IP
[redigera | redigera wikitext]TCP/IP-protokollen lägger grunden för alla andra protokoll som används av UPnP
HTTP, HTTPU, HTTPMU
[redigera | redigera wikitext]HTTPU (unicast) och HTTPMU (multicast) är varianter av HTTP för att skicka meddelanden över UDP/IP. Protokollen används av SSDP.
SSDP
[redigera | redigera wikitext]Både enheter och kontrollpunkter använder Simple Service Discovery Protocol (SSDP). Kontrollpunkter kan skicka SSDP-förfrågningar över HTTPMU för att upptäcka enheter och tjänster som finns i nätverket. Enheter skickar SSDP-svar över HTTPU till kontrollpunkter.
GENA
[redigera | redigera wikitext]Generic Event Notification Architecture (GENA) används för att skapa närvaro-meddelanden som skickas över SSDP och för signalering av förändringar i tillstånd.
SOAP
[redigera | redigera wikitext]Simple Object Access Protocol (SOAP) används för att skicka kontrollmeddelanden till enheter och returnera resultat och felmeddelanden.
XML
[redigera | redigera wikitext]Extensible Markup Language (XML) är en viktig del av UPnP och används för enhets- och tjänstebeskrivningar, kontrollmeddelanden och händelsemeddelanden.