UPnP jest architekturą typu „każdy z każdym” komputerów osobistych, urządzeń inteligentnych i bezprzewodowych. Jest architekturą rozproszoną, otwartą, wspierającą TCP/IP i Web. Co jest takiego uniwersalnego, że w nazwie UPnP znalazło się U? Głównie brak sterowników (wspólne protokoły), ale nie tylko. Urządzenia UPnP mogą być zaimplementowane z użyciem dowolnego języka programowania i w dowolnym systemie operacyjnym. Ponadto UPnP wspiera HTTP. Duży wpływ na UPnP mają producenci.
UPnP nadaje się do tworzenia sieci domowych i dla małych przedsiębiorstw. Umożliwia przesyłanie danych między dwoma urządzeniami pod kontrolą dowolnego urządzenia sterującego w sieci. UPnP jest niezależna od systemu operacyjnego, języka programowania i fizycznego medium.
W architekturze UPnP zdefiniowano urządzenie sterowane – CD (Controlled Device). Dla uproszczenia będą one dalej nazywane urządzeniami. Kiedy tylko urządzenie jest dołączane do sieci, wtedy rozgłasza wiadomość o swojej zdolności do świadczenia usług. Innymi urządzeniami są punkty sterujące CP (Controll Point), które działają jak sterowniki. Mogą one otrzymywać wiadomości dotyczące dostępności urządzenia, a także wysyłać zapytania w celu zlokalizowania urządzenia UPnP. Tak więc punkt sterowania może zlokalizować urządzenie zarówno przez otrzymanie wiadomości, jak i przez własne zapytania. W każdym razie po zlokalizowaniu urządzenia punkt sterowania może otrzymywać opisy urządzenia i jego usługi. Może również otrzymać stronę webową, która reprezentuje urządzenie. Używając opisów i strony webowej (jeśli jest jedna), urządzenie sterujące może powoływać usługi.
Urządzenia UPnP i punkty sterowania mają sześć warstw funkcjonalnych:
0 – adresowanie urządzenia (IP addressing);
1 – wykrywaniu urządzenia (URL i usługi);
2 – opis urządzenia i usług;
3 – sterowanie innymi urządzeniami UPnP;
4 – komunikaty o zdarzeniach;
5 – prezentacja (albo strona webowa dla urządzenia).
Warstwy od 0 do 2 są fundamentem – istnieją one we wszystkich urządzeniach UPnP i wszystkich punktach sterowania. Wszystkie wyższe warstwy są opcjonalne.
Spis treści |
Warstwa adresowania jest tam, gdzie urządzenia i punkty sterujące otrzymują adres IP. Adresy mogą pochodzić z serwera DHCP lub można używać Auto IP do przypisania adresu IP. Auto IP jest szkicem (draft) standardu IETF Dynamic Configuration IPv4 Link-Local Addresses. Dostawcy mogą oferować UPnP w różnych fizycznych sieciach. Jedynym warunkiem jest wspieranie IP.
Poszukiwanie lub ogłaszanie to sprawa warstwy wykrywającej (discovery layer). Kiedy urządzenie jest dołączane do sieci, ogłasza swoją obecność przez wysłanie wariantu multicast HTTP (HTTPMU). UDP jest używany do rozpoznawania właśnie dlatego, że jest multicastowy. TCP jest natomiast używany dla opisu, sterowania i zdarzeń. Punkt sterowania będzie odpowiadał za pomocą wariantu unicast HTTP, a więc i HTTPU. Urządzenie używa HTTPMU do rozgłoszenia informacji o swojej lokalizacji, natomiast punkt sterowania używa HTTPMU do wysyłania zapytań w rodzaju „kto tu jest?”. Obydwa typy urządzeń używają protokołów GENA i SSDP, które są zdefiniowane przez IETF. HTTPMU nie jest częścią standardu HTTP, został opracowany na użytek UPnP. Na rysunku 352 pokazano wszystkie warstwy. Punkt sterowania, który został dołączony do sieci, może się dowiedzieć, czy istnieją jakieś węzły. Wysyła w tym celu komunikat HTTPMU, a każde urządzenie z zaimplementowanym UPnP przysyła w odpowiedzi HTTPU.
Punkt sterowania może po rozpoznaniu urządzenia otrzymać jego opis. Informacja wysyłana przez urządzenie jest wyrażona w XML; jest on używany w całej implementacji UPnP.
Opis zawiera:
Typy urządzeń zostały zdefiniowane przez UPnP Forum. Każdy typ urządzenia ma jeden lub kilka szablonów do określania zawartości i prezentacji danych.
Aby zainicjować jakąś akcję urządzenia, punkt sterujący wysyła wiadomość sterującą, używając definicji zawartych w dokumencie opisującym urządzenie. Aby wymieniać informacje, warstwa sterująca stosuje protokół W3C (World Wide Web Consortium) o nazwie SOAP (Simple Object Access Protocol). SOAP jest określany jako „lekki, oparty na XML protokół, przeznaczony do wymiany informacji w zdecentralizowanych, rozproszonych środowiskach”. Wywołane urządzenie odpowiada przy użyciu SOAP.
Warstwa wysyłania wiadomości o zdarzeniach jest tą, w której punkt sterujący nasłuchuje powiadomienia dotyczącego zmiany stanu urządzenia UPnP. Na razie jest to trochę skomplikowane. Ażeby otrzymać wiadomość o zdarzeniu, punkt sterujący dokonuje „subskrypcji” takich wiadomości. W sieci może być wiele punktów sterowania i wiele urządzeń z zaimplementowanym UPnP. Punkt sterujący mógłby chcieć nasłuchiwać wielu usług, ale nie wszystkich. Subskrypcja i negacja subskrypcji zdarzeń umożliwiają punktowi sterującemu selekcję.
Kiedy usługa może mieć miejsce wewnątrz urządzenia, wtedy informuje o tym wszystkich bieżących subskrybentów. W ten sposób mają oni istotną wiedzę na temat stanu urządzenia. Wiadomości o zdarzeniach używają rozszerzenia do HTTP zdefiniowanego w propozycji standardu IETF. Protokół GENA został zdefiniowany po to, aby wysyłać i odbierać zawiadomienia z użyciem HTTP przez TCP i UDP.