UPnP (Universal Plug and Play)

ITpedia

UPnP używa otwartych protokołów, jak TCP/IP, HTTP oraz XML. Jest też otwarta na inne technologie, w tym HAVi, LonWorks, CEBus, EIB czy X10 – one także mogą funkcjonować w sieci UPnP przez most UPnP lub proxy. Stos TCP/IP jest bazą, na której została posadowiona reszta protokołów. Użycie powszechnych standardów – IP, TCP, UDP, IGMP, ARP czy DHCP – podwyższa kompatybilność UPnP. W rezultacie niewiele potrzeba, ażeby urządzenia UPnP zostały zaakceptowane w istniejących środowiskach. SSDP (Simple Service Discovery Protocol) określa procedury odnajdywania usług w sieci. Jest oparty na HTTPU oraz HTTPMU. Ponadto definiuje metody zarówno dla punktu sterowania – do alokowania zasobów, jak również dla urządzeń – do powiadamiania o swojej obecności w sieci. W efekcie każdy punkt sterowania ma kompletną informację na temat stanu sieci. SSDP używają punkty sterowania i same urządzenia. GENA (Generic Event Notification Architecture) określa wysyłanie i odbieranie powiadomień, używając protokołów HTTP over TCP/IP i Multicast UDP. Definiuje także subskrybentów i nadawców powiadomień. Formaty GENA są używane w UPnP do tworzenia komunikatów anonsujących obecność w sieci wysyłanych przy użyciu SSDP. Punkt sterujący, „zainteresowany“ otrzymywaniem zawiadomień o zdarzeniu, będzie wywoływał źródło zdarzenia przez wysyłanie żądań. Subskrypcja musi być co jakiś czas odnawiana. SOAP (Simple Object Access Protocol) definiuje użycie XML (Extensible Markup Language) i HTTP do zdalnego wywoływania procedur; staje się on standardem komunikacji przez Internet opartej na RPC (Remote Procedure Call). Korzystając z istniejącej infrastruktury internetowej, może działać skutecznie z zaporami ogniowymi i proxy. SOAP może także wykorzystywać SSL (Secure Socket Layer). Częściej jednak UPnP używa SOAP do przekazywania wiadomości sterujących do urządzenia i komunikatów do punktów sterowania. Twórcą UPnP jest Microsoft. Do Forum UPnP należą: Broadcom, Canon, Cisco, Compaq, Ericsson, Hewlett-Packard, Honeywell, IBM, Intel, Philips, Siemens, Sony, Thomson Multimedia i Virata Corporation.
UPnP używa otwartych protokołów, jak TCP/IP, HTTP oraz XML. Jest też otwarta na inne technologie, w tym HAVi, LonWorks, CEBus, EIB czy X10 – one także mogą funkcjonować w sieci UPnP przez most UPnP lub proxy. Stos TCP/IP jest bazą, na której została posadowiona reszta protokołów. Użycie powszechnych standardów – IP, TCP, UDP, IGMP, ARP czy DHCP – podwyższa kompatybilność UPnP. W rezultacie niewiele potrzeba, ażeby urządzenia UPnP zostały zaakceptowane w istniejących środowiskach. SSDP (Simple Service Discovery Protocol) określa procedury odnajdywania usług w sieci. Jest oparty na HTTPU oraz HTTPMU. Ponadto definiuje metody zarówno dla punktu sterowania – do alokowania zasobów, jak również dla urządzeń – do powiadamiania o swojej obecności w sieci. W efekcie każdy punkt sterowania ma kompletną informację na temat stanu sieci. SSDP używają punkty sterowania i same urządzenia. GENA (Generic Event Notification Architecture) określa wysyłanie i odbieranie powiadomień, używając protokołów HTTP over TCP/IP i Multicast UDP. Definiuje także subskrybentów i nadawców powiadomień. Formaty GENA są używane w UPnP do tworzenia komunikatów anonsujących obecność w sieci wysyłanych przy użyciu SSDP. Punkt sterujący, „zainteresowany“ otrzymywaniem zawiadomień o zdarzeniu, będzie wywoływał źródło zdarzenia przez wysyłanie żądań. Subskrypcja musi być co jakiś czas odnawiana. SOAP (Simple Object Access Protocol) definiuje użycie XML (Extensible Markup Language) i HTTP do zdalnego wywoływania procedur; staje się on standardem komunikacji przez Internet opartej na RPC (Remote Procedure Call). Korzystając z istniejącej infrastruktury internetowej, może działać skutecznie z zaporami ogniowymi i proxy. SOAP może także wykorzystywać SSL (Secure Socket Layer). Częściej jednak UPnP używa SOAP do przekazywania wiadomości sterujących do urządzenia i komunikatów do punktów sterowania. Twórcą UPnP jest Microsoft. Do Forum UPnP należą: Broadcom, Canon, Cisco, Compaq, Ericsson, Hewlett-Packard, Honeywell, IBM, Intel, Philips, Siemens, Sony, Thomson Multimedia i Virata Corporation.

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

Adresowanie urządzenia

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.

Wykrywanie urządzenia

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.

Opis urządzenia

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:

  • typ urządzenia,
  • URL dla sterowania,
  • ikony,
  • URL dla prezentacji,
  • nazwę producenta,
  • numer seryjny,
  • kod produktu
  • i inne tego typu informacje.

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.

Sterowanie

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.

Wiadomości o zdarzeniach

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.

-
-