30
CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP 31 Capítulo 3 TECNOLOGÍA UPNP Una de las tendencias tecnológicas para el futuro próximo es que los dispositivos del hogar permitirán conectarse fácilmente entre sí. La necesidad de interconexión entre los dispositivos de electrónica de consumo y facilitar su uso a los usuarios es un campo de trabajo con mucha proyección actualmente. Dentro de una red domótica se pueden separar tres redes con fines distintos: La red de control, que está destinada al control de sensores, actuadores y electrodomésticos inteligentes. La red de datos, destinada a la conexión de ordenadores entre sí y con sus periféricos. La red multimedia, una red de alta capacidad utilizada para los aparatos electrónicos inteligentes para compartir grandes volúmenes de información. Las tres arquitecturas más relevantes para la red multimedia son HAVi 12 , Jini 13 y UPnP, que presentan básicamente las mismas características pero están apoyadas por diferentes compañías del sector. UPnP es un conjunto de protocolos o arquitectura muy extendida, propuesta por Microsoft y promulgada por el UPnP Forum [13] que permite que varios dispositivos de red se configuren por sí mismos. Las objetivos de UPnP son permitir a los dispositivos comunicarse entre sí y simplificar la implementación de redes en el hogar (intercambio de datos, comunicaciones y entretenimiento) y entornos corporativos. Es una arquitectura abierta y distribuida basada en protocolos y especificaciones preexistentes, tales como UDP, SSDP, SOAP, XML, además se apoya sobre la pila de protocolos TCP/IP de Internet que, de forma 12 Home Audio Video Interoperability. 13 http://www.jini.org

Capítulo 3 TECNOLOGÍA UP P - bibing.us.esbibing.us.es/.../11954/fichero/4+-+CAP.3+-+Tecnologia+UPnP.pdf · CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP 32 independiente

  • Upload
    dangtu

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

31

Capítulo 3 TECNOLOGÍA UPNP

Una de las tendencias tecnológicas para el futuro próximo es que los dispositivos

del hogar permitirán conectarse fácilmente entre sí. La necesidad de

interconexión entre los dispositivos de electrónica de consumo y facilitar su uso

a los usuarios es un campo de trabajo con mucha proyección actualmente.

Dentro de una red domótica se pueden separar tres redes con fines distintos:

La red de control, que está destinada al control de sensores, actuadores y

electrodomésticos inteligentes.

La red de datos, destinada a la conexión de ordenadores entre sí y con

sus periféricos.

La red multimedia, una red de alta capacidad utilizada para los aparatos

electrónicos inteligentes para compartir grandes volúmenes de

información.

Las tres arquitecturas más relevantes para la red multimedia son HAVi12, Jini13 y

UPnP, que presentan básicamente las mismas características pero están

apoyadas por diferentes compañías del sector.

UPnP es un conjunto de protocolos o arquitectura muy extendida, propuesta por

Microsoft y promulgada por el UPnP Forum [13] que permite que varios

dispositivos de red se configuren por sí mismos. Las objetivos de UPnP son

permitir a los dispositivos comunicarse entre sí y simplificar la implementación

de redes en el hogar (intercambio de datos, comunicaciones y entretenimiento) y

entornos corporativos. Es una arquitectura abierta y distribuida basada en

protocolos y especificaciones preexistentes, tales como UDP, SSDP, SOAP, XML,

además se apoya sobre la pila de protocolos TCP/IP de Internet que, de forma

12 Home Audio Video Interoperability.

13 http://www.jini.org

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

32

independiente al fabricante, sistema operativo y lenguaje de programación

permite a las aplicaciones de los dispositivos conectados a una red controlar,

negociar e intercambiar información y datos de forma sencilla y transparente al

usuario, evitando así que tenga que ser un experto en la configuración de redes,

dispositivos o sistemas operativos. Además, la tecnología UPnP es independiente

del medio físico, pudiendo trabajar sobre la línea telefónica, red eléctrica de baja

tensión, Ethernet, radiofrecuencia e IEEE 1394.

La principal característica de la arquitectura UPnP es que es capaz de detectar

cuando se conecta un nuevo equipo o dispositivo a la red, asignándole una

dirección IP, un nombre lógico, informando a los demás de sus funciones y

capacidad de procesamiento, e informarle, a su vez, de las funciones y

prestaciones de los demás. De esta forma, se alivia al usuario de la configuración

de la red y de los dispositivos. UPnP se encarga de todos estos procesos cada vez

que se conecta o se desconecta un equipo.

El hogar digital basado en UPnP prevé abarcar redes cableadas e inalámbricas,

dispositivos de entretenimiento, equipos telefónicos, control del hogar, y

muchos dispositivos más, uniendo varias redes domésticas en una única red

lógica de dispositivos programables (Figura 3-1).

Figura 3-1: Integración UPnP

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

33

3.1 DESCRIPCIÓN DE LA TECNOLOGÍA UPNP

La arquitectura UPnP es un conjunto de estándares abiertos y tecnologías para

conectar de forma transparente los aparatos, equipos y servicios, ampliando el

concepto de Plug and Play para soportar descubrimiento, configuración y

control. El UPnP Forum está comprometido con la interoperabilidad de los

dispositivos en muchos ámbitos y ha establecido grupos de trabajo para:

automatización del hogar y seguridad, pasarelas de Internet, imagen e

impresión, audio/vídeo, dispositivos móviles y electrodomésticos.

UPnP se construye sobre protocolos y tecnologías existentes. UPnP usa

protocolos como TCP/IP, UDP/IP, HTTP como base. Sobre estos, se hace uso de

otros protocolos para implementar las distintas fases o procedimientos de la red

UPnP.

La Figura 3-2 se muestra la pila de protocolos usada por la arquitectura UPnP.

Figura 3-2: Arquitectura de UPnP

La arquitectura UPnP utiliza el modelo de “protocolo de Internet abierto”. En

esta arquitectura los proveedores de dispositivos no están obligados a aplicar la

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

34

tecnología de un único fabricante, ya que se intenta garantizar el correcto

funcionamiento de los dispositivos con productos de diversos fabricantes.

Las ventajas para los desarrolladores son obvias, la elección del lenguaje y del

sistema operativo les da flexibilidad para elegir la mejor plataforma para su

dispositivo a la vez que, en principio, sus productos serán capaces de interactuar

con otros dispositivos que también sigan el estándar UPnP.

3.1.1 PROTOCOLOS

A continuación se describen, de forma breve, cada uno de los protocolos que

están presentes en la pila de protocolos UPnP.

3.1.1.1 TCP/IP

TCP/IP (Transmission Control Protocol/Internet Protocol) es la base sobre la cual

se desarrolla el resto de protocolos de UPnP. TCP/IP es un conjunto de

protocolos que permite abarcar distintos medios físicos y proporcionar

compatibilidad entre múltiples fabricantes. Se basa en la noción de dirección IP,

esto es, en la idea de brindar una etiqueta numérica a cada equipo que se

conecta a la red. TCP es un protocolo del nivel de transporte orientado a

conexión y fiable.

3.1.1.2 UDP/IP

UDP (User Datagram Protocol) es la base sobre la que se sustenta el envío de

mensajes HTTPU y HTTPMU, ya que permite el envío de datagramas sin que haya

establecida una comunicación previa.

3.1.1.3 HTTP, HTTPU, HTTPMU

HTTPU y HTTPMU son variantes de HTTP, en concreto, HTTP unicast y HTTP

multicast respectivamente. Estas variantes son utilizadas para la entrega de

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

35

mensajes sobre UDP/IP en los casos en los que se use multicast o no sea

necesario establecer una conexión.

3.1.1.4 SSDP

El Protocolo de Descubrimiento Sencillo de Servicios (Simple Service Discovery

Protocol) es un protocolo que permite la búsqueda de dispositivos UPnP en una

red. Detecta dispositivos y servicios en red que usan el protocolo de detección

SSDP, como los dispositivos UPnP. También anuncia dispositivos y servicios SSDP

que se ejecutan en el equipo local.

3.1.1.5 GENA

La Arquitectura de Notificación de Eventos Generales (Generic Event Notification

Architecture) permite enviar y recibir notificaciones usando HTTP sobre TCP/IP y

HTTPMU sobre UDP/IP. El multicast UDP es útil puesto que permite que una

misma notificación se distribuya a un grupo potencialmente numeroso de

receptores utilizando una sola petición. GENA define los conceptos de suscriptor

y publicador de notificaciones que posibilitan el mecanismo de eventos, usado

por UPnP para avisar de cambios en el estado de los servicios. Cuando se

produce una suscripción a un servicio, éste envía mensajes de eventos

notificando de cambios en el estado del dispositivo. Estos mensajes de eventos

tienen formato XML. Además de esto, GENA también se utiliza para crear

mensajes de anuncio de presencia para ser enviados mediante SSDP.

3.1.1.6 SOAP

El Protocolo de Acceso Sencillo a Objetos (Simple Object Acces Protocol)

proporciona un mecanismo estándar para empaquetar mensajes. Define cómo

dos objetos en diferentes procesos pueden comunicarse por medio de

intercambio de datos XML. De esta forma, en UPnP se hace uso de XML y HTTP

para ejecutar llamadas a procedimientos remotos (RPC), enviando mensajes de

control a dispositivos y recogiendo los resultados o los errores en cada caso.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

36

Cada petición de control es un mensaje SOAP que contiene la acción invocada y

el conjunto de parámetros necesarios, y su respuesta es otro mensaje del mismo

tipo con el estado o resultado de la acción del dispositivo al que se le solicitó la

petición. Aunque existen multitud de protocolos creados para facilitar la

comunicación entre aplicaciones (RPC de Sun, DCE de Microsoft, RMI de Java y

ORPC de CORBA) SOAP se está convirtiendo en el estándar para la comunicación

basada en RPC por Internet. Entre sus ventajas podemos citar: no está asociado

con ningún lenguaje, no se encuentra fuertemente asociado a ningún de

transporte, no está atado a ninguna infraestructura de objeto distribuido,

aprovecha los estándares existentes en la industria y permite la interoperabilidad

entre múltiples entornos.

3.1.1.7 XML

El Lenguaje de Etiquetado Extensible (Extensible Markup Language) juega un

papel fundamental en el intercambio de datos. Es un lenguaje muy similar a

HTML pero su función principal es describir datos y no mostrarlos como es el

caso de HTML. XML es un formato que permite la lectura de datos a través de

diferentes aplicaciones, concretamente permite estructurar, almacenar e

intercambiar información. En UPnP se usa para las descripciones de dispositivos

y servicios, mensajes de control y eventos.

3.1.2 COMPONENTES DE UNA RED UPNP

Una red UPnP define varios tipos de componentes. Estos componentes incluyen

puntos de control, dispositivos y servicios. A continuación se describen estos

elementos.

3.1.2.1 Dispositivos

Los dispositivos UPnP (Figura 3-3) son contenedores lógicos para un servicio o

conjunto de servicios, y en ocasiones para otros dispositivos (dispositivos

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

37

integrados). Los dispositivos embebidos pueden ser descubiertos y usados

independientemente del dispositivo contenedor principal. Cada dispositivo UPnP

puede ofrecer cualquier cantidad de servicios. Por sí mismo, un dispositivo no

hace más que proporcionar una descripción propia de su información, tal como

el fabricante, el nombre del modelo, y número de serie. Los servicios del

dispositivo son los que proporcionan la funcionalidad real.

Figura 3-3: Diagrama UML de dispositivo UPnP

Existen diferentes categorías de dispositivos UPnP, estandarizados en función del

conjunto de servicios que proporciona el dispositivo. Esta información, junto con

las propiedades como las que se hizo referencia anteriormente, se guarda en un

documento XML de descripción que el dispositivo debe alojar para enviarlo

cuando sea necesario.

3.1.2.2 Servicios

Cada servicio (Figura 3-4) en un dispositivo UPnP puede contener cualquier

número de acciones, una acción tiene un nombre, un conjunto de parámetros de

entrada y un valor de retorno opcional. Cada argumento tiene un nombre, un

valor y una dirección. La dirección puede ser de entrada o de salida,

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

38

dependiendo de si el argumento es pasado a la acción o si es devuelto desde la

acción como resultado.

Un servicio posee un identificador de servicio (URI) que lo identifica, de forma

unívoca, de entre el conjunto de servicios presentes. Puede mantener las

variables que representan el estado actual de ese servicio. Estas variables de

estado tienen un nombre, un tipo, un valor por defecto y un valor actual, y

presentan un rango de valores admisibles. Si una variable dispara un evento para

indicar un estado, esa variable es denomina de notificación de evento (evented).

Un servicio consiste en una tabla de estado, un servidor de control y un servidor

de notificación de eventos. La tabla de estado contiene las variables que se

actualizan cuando ocurre algún cambio en el estado del servicio. El servidor de

control recibe solicitudes de acción, las lleva a cabo, actualiza la tabla de estado y

devuelve el resultado. El servidor de notificación de eventos publica

actualizaciones de los cambios en el estado del servicio.

Figura 3-4: Diagrama UML de servicio UPnP

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

39

3.1.2.3 Punto de control

Un punto de control es una entidad de red que invoca la funcionalidad de un

dispositivo (Figura 3-5). Es capaz de descubrir y controlar a otros dispositivos y en

términos de cliente-servidor en una red UPnP, el punto de control se considera el

cliente y la función de servidor se refleja en el dispositivo.

Figura 3-5: Punto de control invoca acción

Una vez que el punto de control encuentra el dispositivo es capaz de:

Conseguir la descripción del dispositivo y la lista de servicios asociados.

Conseguir las descripciones de los servicios en los que está interesado.

Invocar acciones para controlar el servicio.

Suscribirse a los eventos del servicio. Siempre que cambie el estado del servicio, el servidor de notificación de eventos enviará un evento al punto de control.

En definitiva, un punto de control descubre los dispositivos, invoca las acciones

relativas a sus servicios y se suscribe a las notificaciones de eventos. Por el

contrario, un dispositivo responde a las acciones invocadas por el punto de

control y envía los eventos cuando las variables cambian de estado.

3.2 FUNCIONAMIENTO DE UPNP

Para describir el funcionamiento de UPnP vamos a basarnos en el desarrollo de

seis pasos o etapas básicas: Direccionamiento, Descubrimiento, Descripción,

Control, Notificación de Eventos y Presentación.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

40

3.2.1 DIRECCIONAMIENTO

Debido a que todas las comunicaciones de UPnP se apoyan sobre el famoso

Protocolo de Internet (IP), un dispositivo debe obtener una dirección IP antes de

que pueda unirse a una red compatible con UPnP. En esto precisamente consiste

el primer paso, también conocido como fase cero, conseguir una dirección para

los dispositivos y puntos de control conectados a la red. Todos los razonamientos

que se exponen en esta fase son válidos tanto para los dispositivos como para los

puntos de control.

El direccionamiento es el proceso por el cual un dispositivo adquiere

automáticamente una dirección IP. Permite a un dispositivo unirse a la red y

prepararse para establecer comunicaciones con otros dispositivos y puntos de

control. Los protocolos de direccionamiento implementados en los dispositivos

UPnP permiten que estos puedan unirse a una red IP dinámicamente y adquirir

una dirección sin necesidad de configuración por parte del usuario.

Los dispositivos UPnP pueden utilizar el protocolo DHCP14, basado en UDP, para

recuperar una dirección IP de un servidor DHCP. Para ello tanto dispositivos

como puntos de control deben disponer de un cliente DHCP. Al ser conectados a

la red, lo primero que deben hacer es buscar un servidor DHCP que les

proporcione una dirección. Si existe este servidor en la red, deben utilizar la

dirección que les sea asignada.

Si la red no dispone de un servidor DHCP, se debe usar el direccionamiento IP

automático (Auto-IP) para obtener la dirección IP. Mediante este mecanismo, el

dispositivo toma una dirección de forma aleatoria dentro del rango 169.254/16,

minimizando así posibles colisiones con otros dispositivos. Este rango es

14 Dynamic Host Configuration Protocol.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

41

establecido por la ICANN15 para la auto-configuración de IP en redes privadas.

Una vez asignada la dirección IP mediante Auto-IP, se debe comprobar que no

está siendo usada por ningún otro elemento dentro de la red mediante el uso de

ARP16. Cada dispositivo debe verificar periódicamente la existencia de un

servidor DHCP en la red, para gestionar el procedimiento de direccionamiento.

En tal caso, se descarta la IP asignada de forma automática y se procede con la

asignación dinámica haciendo uso del servidor DHCP.

En principio, un dispositivo o punto de control intenta ponerse en contacto con

un servidor DHCP para obtener una dirección IP. Si no consigue localizar al

servidor, el dispositivo hace uso de Auto-IP, lo que permite a los dispositivos

seleccionar direcciones sin que se encuentre presente un servidor que las asigne.

Puede resultar necesaria la resolución de nombres a direcciones IP debido a que

los dispositivos pueden implementar capas de protocolo superiores a UPnP. Para

poder disponer de esta funcionalidad los dispositivos deben incorporar un cliente

DNS y soportar el registro dinámico de DNS.

3.2.2 DESCUBRIMIENTO

La fase de descubrimiento (Figura 3-6) define como un dispositivo anuncia su

presencia y de que forma los puntos de control lo descubren. Un dispositivo

UPnP es un elemento de la red que puede ser descubierto y controlado por un

punto de control. El proceso de descubrimiento permite a los puntos de control

encontrar los dispositivos y servicios de interés y obtener información acerca de

ellos. Los dispositivos utilizan SSDP para anunciar sus servicios a los puntos de

control, y los puntos de control lo utilizan para buscar dispositivos.

15 Internet Corporation for Assigned Names and Numbers.

16 Address Resolution Protocol.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

42

Figura 3-6: Protocolos. Fase de Descubrimiento

Una vez que un dispositivo ha adquirido una dirección IP, el protocolo SSDP

permite dar a conocer sus servicios a los puntos de control de la red. Del mismo

modo, cuando se agrega un punto de control a la red, el protocolo SSDP permite

la búsqueda de los dispositivos de interés en la red. Estos contestarán en caso de

que exista coincidencia con el criterio del mensaje de búsqueda. El mensaje que

se intercambian en ambos casos es un mensaje de descubrimiento que contiene

detalles esenciales acerca del dispositivo o sus servicios, tales como el tipo de

dispositivo, el identificador, y un puntero a una información más detallada.

En la Figura 3-7 se representa el proceso en el que un nuevo dispositivo anuncia

su presencia, proporciona sus descripciones y ejecuta las acciones invocadas por

un punto de control.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

43

Figura 3-7: Descubrimiento

Se debe tener en cuenta que cuando un dispositivo o punto de control se

inicializa y se une a la red, debe esperar un tiempo aleatorio de entre 300 y 3000

milisegundos antes de mandar ningún mensaje de descubrimiento. Estos rangos

se han fijado así para evitar problemas cuando muchos dispositivos se conectan

a la red al mismo tiempo (300 ms) y para minimizar retrasos en la recuperación

de una red (3000 ms).

Cada dispositivo en sus respuestas de anuncio y descubrimiento incluye una URL

de su documento XML de descripción de dispositivo, a través de la cual, se

proporciona a los puntos de control la información necesaria para recuperar las

descripciones de los dispositivos y sus servicios.

Todos los servicios contenidos en un dispositivo presentan tres direcciones URL,

que proporcionan la información necesaria para que los puntos de control se

comuniquen con ellos:

La URL de Control es donde el punto de control envía peticiones para

controlar el servicio. Los fabricantes de dispositivos UPnP especifican una

para cada dispositivo.

La URL de Suscripción a Eventos, como su propio nombre indica, es donde

los puntos de control envían solicitudes para suscribirse a eventos. Hay

una URL de este tipo por servicio dentro de cada dispositivo. Si un

servicio no tiene variables de eventos (variables evented), y por tanto no

tiene notificación de eventos, el elemento URL de Suscripción a Eventos

debe aparecer, pero estará vacío.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

44

La URL de descripción indica a los puntos de control la localización desde

la que recuperar el documento de descripción de servicio. El documento

de descripción de servicios es devuelto a través de una petición HTTP de

tipo GET.

Un punto de control tiene dos posibilidades en cuanto a la búsqueda de

dispositivos, por un lado puede recoger un mensaje de anuncio enviado por un

dispositivo, y por otro, puede solicitar la respuesta del dispositivo utilizando un

mensaje de descubrimiento enviado por el propio punto de control.

Los dispositivos deben refrescar sus mensajes de anuncio cada cierto tiempo, ya

que tienen un tiempo de vida limitado. Por este motivo no están obligados a

cancelar los mensajes que mandaron previamente anunciando sus capacidades

al desconectarse de la red.

3.2.2.1 Anuncio

Una vez que un dispositivo se une a la red, anuncia sus dispositivos embebidos y

servicios a los puntos de control mediante mensajes NOTIFY definidos por GENA

de tipo multicast y usando el protocolo SSDP. Estos mensajes se envían a la

dirección y puerto (239.255.255.250:1900) por defecto, indicados por ICANN

para uso con el protocolo SSDP. Los puntos de control se dedican a escuchar por

este puerto los mensajes que llegan, conociendo así las capacidades de las que

se disponen en la red. Estos mensajes no requieren de respuesta alguna. Un

detalle a tener en cuenta respecto a los mensajes de anuncio es el tiempo de

validez del mismo, que indica el periodo en que el dispositivo se encuentra

disponible. Tras concluir ese periodo sin reenviar un mensaje de anuncio con la

nueva duración, el dispositivo dejará de estar disponible en la red.

Durante el proceso de anuncio, y considerando que un dispositivo raíz tiene d

dispositivos integrados y ofrece k tipos de servicios distintos, se envían un total

de 3+2d+k mensajes de anuncios a la red. Esto se puede deducir, suponiendo

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

45

dispositivos distintos, interpretando el número de mensajes que debe enviar un

dispositivo:

Un mensaje por cada tipo de servicio con NT = tipo de servicio.

Un mensaje por cada tipo de dispositivo (raíz o integrado) con NT = tipo

de dispositivo.

Un mensaje por cada dispositivo (raíz o integrado) con NT = UUID del

dispositivo.

Un mensaje referente al dispositivo raíz con NT = upnp:rootdevice.

Tras conectarse un dispositivo a la red, éste envía un mensaje de anuncio, que es

una petición multicast con el método NOTIFY. Para estos mensajes no es

necesario el envío de respuesta alguna.

Cuando un dispositivo va a dejar de estar disponible en la red, puede enviar un

mensaje, con el método NOTIFY poniendo la directiva ssdp:byebye en la

cabecera NTS, por cada mensaje enviado previamente con ssdp:alive en el NTS.

Estos mensajes con el campo ssdp:byebye no son obligatorios y en caso de no

enviarlos los puntos de control borrarán de la caché toda la información recogida

anteriormente de los mensajes ssdp:alive tras expirar el tiempo indicado por

max-age. En este mensaje de anuncio de desconexión se eliminan algunas

cabeceras innecesarias para el aviso de desconexión y salvo una de ellas, las

demás presentan las mismas características que las explicadas en el mensaje de

anuncio de conexión. En este caso la cabecera NTS presenta la notificación SSDP

con la forma ssdp:byebye.

Tanto para el mensaje de anuncio de conexión como para el de desconexión, en

caso de no indicar el número de puerto en la cabecera HOST, el receptor asumirá

que el puerto SSDP por defecto es el 1900.

3.2.2.2 Búsqueda

Este procedimiento se pone en marcha cuando existe un punto de control que

requiere un tipo de dispositivo o de servicio determinado. Es entonces, cuando el

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

46

punto de control envía un mensaje multicast a la dirección y puerto

especificados en el apartado anterior, 239.255.255.250:1900.

En este caso, al contrario que en el método de anuncio, sí se precisan respuestas,

que serán enviadas por los dispositivos que satisfagan las especificaciones

definidas por el punto de control. Este mensaje de búsqueda es una petición

multicast con el método MSEARCH.

Debido a que los mensajes se envían sobre UDP, que no garantiza la entrega, un

punto de control debe enviar varios mensaje M-SEARCH.

Cuando un dispositivo recibe un mensaje de búsqueda que contiene en la

cabecera ST el campo ssdp:all, upnp:rootdevice, un UUID que coincida con el de

cualquier servicio o dispositivo integrado, o una petición de tipo de dispositivo o

servicio que se corresponde con lo que él ofrece, responde con un mensaje al

punto de control que envió el mensaje M-SEARCH.

El mensaje de respuesta es un mensaje parecido al de anuncio, pero en este caso

es un mensaje unicast, ya que se dispone de un puerto y una dirección conocida

desde donde se mandó el mensaje de búsqueda.

Un punto de control recibirá múltiples mensajes, algunos de ellos serán

respuestas duplicadas. Para filtrar las respuestas, el punto de control utiliza la

cabecera USN que proporciona un identificador único para búsqueda de

respuestas.

3.2.3 DESCRIPCIÓN

La descripción permite a un dispositivo listar las funcionalidades que

proporciona. Las descripciones de los dispositivos y sus servicios se encuentran

almacenados en documentos XML. Un documento de descripción del dispositivo

contiene información tal como: el fabricante, la marca, el modelo y número de

serie, un listado con los servicios prestados por el dispositivo, además de una

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

47

lista con sus dispositivos integrados. Mientras que un documento de descripción

del servicio contiene información detallada acerca del servicio de un dispositivo,

las acciones que el servicio proporciona, los parámetros y el valor devuelto por el

servicio. La pila de protocolos involucrada en la fase de descripción se muestra

en la Figura 3-8.

Figura 3-8: Protocolos. Fase de Descripción

Las respuestas que recibe un punto de control a los mensajes de búsqueda

contienen URLs que proporcionan descripciones de las capacidades del

dispositivo. Los puntos de control utilizan estos documentos de descripción para

obtener más información de los dispositivos, para así conocer sus características

e interactuar con ellos.

La descripción UPnP de un dispositivo se compone de dos partes: la descripción

de dispositivo que hace referencia al contenedor físico y lógico y, por otra parte,

la descripción de servicio que hace referencia a las capacidades que ofrece el

dispositivo. Ambas descripciones son confeccionadas por el fabricante y están

escritas en lenguaje XML. En la Figura 3-9 se muestra un esquema de los

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

48

documentos XML que proporcionan las descripciones del dispositivo y de los

servicios disponibles.

Figura 3-9: Documentos XML descriptivos (dispositivo y servicios)

Los dispositivos además de servicios pueden contener otros dispositivos lógicos.

El documento de descripción UPnP incluye una lista de los dispositivos

integrados y una descripción de los servicios disponibles. Para cada servicio, su

descripción incluye una lista de las acciones a las que el servicio responde y los

argumentos para cada acción.

La descripción de un servicio también incluye una lista de variables que reflejan

el estado del dispositivo. Estas variables son descritas en términos de su tipo de

dato, rango y evento característico.

Para recuperar la descripción de un dispositivo, el punto de control manda una

petición HTTP con el método GET a la URL contenida en el mensaje de

descubrimiento que previamente ha recibido del dispositivo. Cuando éste recibe

la petición responde con un mensaje HTTP que contiene la descripción del

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

49

dispositivo en el cuerpo del mensaje (el esquema de esta fase de descripción de

representa en la Figura 3-10). En esta descripción se incluyen las URLs de la

descripción de los servicios que contiene el dispositivo. La información contenida

en la descripción de dispositivo consiste en:

Un documento XML que contiene las características del dispositivo en

concreto.

Definiciones de todos los dispositivos anidados.

Una lista de todos los servicios soportados por el dispositivo, incluyendo

variables de estado y acciones.

El punto de control puede mandar otra petición HTTP con las URLs de

descripción de servicios para obtener las descripciones de servicio.

Figura 3-10: Descripción

Si en la cabecera HOST del mensaje de petición no viene definido el número de

puerto, se tomará por defecto el 80.

Por cada servicio que contenga un dispositivo, su descripción contendrá, además

de lo ya expuesto lo siguiente: el nombre y tipo del servicio, URL de descripción

del servicio, URL para control y URL para notificación de eventos. Por último, la

descripción de dispositivo también presenta una descripción de todos los

dispositivos anidados y una URL para presentación.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

50

Se recuerda que el contenido de una descripción de servicio incluye una lista de

acciones y parámetros para las mismas, una lista de variables que indican el

estado del servicio y se fija el rango, tipo de dato y si tienen capacidad de

notificar eventos.

3.2.4 CONTROL

Control es la fase de UPnP en la que los puntos de control invocan acciones a los

servicios de los dispositivos. Una vez que un punto de control dispone de toda la

información acerca de un dispositivo y uno de sus servicios mediante sus

descripciones, será capaz de controlar dicho servicio invocando acciones. La pila

de protocolos sobre la que se sustenta la fase de control en el funcionamiento de

UPnP se muestra en la Figura 3-11.

Figura 3-11: Protocolos. Fase de Control

Para el control de dispositivo, UPnP se basa en el protocolo SOAP, que hace uso

de XML y HTTP para proporcionar mensajería web y llamadas a procedimientos

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

51

remotos. XML expresa el contenido del mensaje y HTTP envía mensajes a su

destino. SOAP consta de cuatro partes:

Sobre extensible obligatorio para encapsular los datos. El sobre SOAP

define un mensaje SOAP y es la unidad básica de intercambio entre los

procesadores de mensajes SOAP. Ésta es la única parte obligatoria de la

especificación.

Reglas opcionales de codificación de datos para representar tipos de

datos definidos por la aplicación.

Enlace entre SOAP y HTTP. Esta parte también es opcional, ya que se

puede utilizar SOAP en combinación con cualquier protocolo de

transporte o mecanismo que pueda transportar el sobre SOAP.

Modelo de intercambio de mensajes RPC (solicitud/respuesta). Es una

convención para representar llamadas a procedimiento remoto y sus

respuestas.

Para invocar una acción, el punto de control envía un mensaje a la URL de

control que conoce de la fase de descripción estudiada en el apartado anterior.

El dispositivo responderá con el resultado o los errores de ejecutar la acción del

servicio (Figura 3-12). Además esta acción puede alterar el estado del servicio y

por tanto producir un cambio en alguna de sus variables.

Figura 3-12: Fase de Control

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

52

Para invocar una acción específica el punto de control debe enviar una petición

SOAP con el método POST al servicio de dispositivo. Este mensaje de control

contiene información específica del fabricante, nombre de la acción, nombres de

los argumentos, y variables que son definidas por el UPnP Forum. La información

viene expresada en formato XML y entre las etiquetas envelope y body, definidas

por SOAP para la llamada a procedimientos remotos, se incluyen el nombre de la

acción invocada y los argumentos que sean necesarios.

En caso de que el envío del mensaje anterior sea rechazado con el código 405

(Method Not Allowed), el punto de control deberá realizar otra petición, pero

esta vez la petición SOAP utilizará el método M-POST, dejando el cuerpo del

mensaje igual al de la anterior petición.

Tras recoger este mensaje, el servicio replicará con una respuesta HTTP. Si la

petición puede ser completada en 30 segundos, incluyendo el tiempo esperado

de transmisión, la respuesta contendrá el resultado de la acción. En caso

contrario, el dispositivo enviará una respuesta sin datos completos y

posteriormente lanzará un evento cuando la petición esté terminada.

Si la ejecución de la acción se desarrolla de manera adecuada el dispositivo

responderá con un mensaje HTTP con el método 200 OK. En cambio, si se

produce algún error se responderá con alguno de los códigos de error recogidos

en la Tabla 3-1.

CÓDIGO DE ERROR ERROR DESCRIPCIÓN DEL ERROR

401 Invalid Action No existe dicha acción

402 Invalid Args Argumentos insuficientes, demasiados argumentos, ningún argumento con ese nombre o tipo de argumento no válido

501 Action Failed Fallo al invocar la acción

600 Argument Value Invalid

El valor del argumento no es válido

601 Argument Value Out of Range

El valor del argumento está fuera del rango permitido o no está en la lista de valores permitidos

602 Optional Action Not La acción que se solicita es opcional y no

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

53

Implemented está implementada en el servicio

603 Out of Memory El dispositivo no tiene suficiente memoria para completar la acción

604 Human Intervention Required

El dispositivo ha encontrado una condición que necesita de la intervención del usuario

605 String Argument Too Long

La cadena del argumento es demasiado larga para ser manejada

606 Action not authorized La acción solicitada necesita autorización y el punto de control no la tiene

607 Signature failure Fallo al verificar la firma del solicitante

608 Signature missing La acción solicitada requiere firma digital que no ha sido proporcionada

609 Not encrypted La acción requiere confidencialidad y no ha sido cifrada

610 Invalid Sequence La secuencia proporcionada no es válida

611 Invalid control URL La URL de control no es válida

612 No such session No existe la sesión

600-699 TBD Errores comunes. Definido por los Comités Técnicos del UPnP Forum

700-799 TBD Errores específicos para acciones estándar. Definido por los Comités de Trabajo del UPnP Forum

800-899 TBD Errores específicos para acciones no estándar. Definido por el fabricante

Tabla 3-1: Códigos de errores

Las peticiones de las variables de estado están contempladas en UPnP, pero esta

forma de proceder ha sido desechada por el UPnP Forum y no debe ser usado

por los puntos de control. En su lugar, los Comités de Trabajo y los fabricantes

definen acciones que devuelvan el valor de la variable deseada y que puedan ser

invocadas por los puntos de control.

3.2.5 NOTIFICACIÓN DE EVENTOS

Mediante la notificación de eventos, en UPnP se ofrece la posibilidad de avisar a

un punto de control cuando cambia el estado de un dispositivo.

La pila de protocolos que se usa en esta fase se muestra en la Figura 3-13.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

54

Figura 3-13: Protocolos. Fase de Notificación de Eventos

Como se ha explicado anteriormente, una descripción de servicio contiene una

lista de variables que modelan el estado del servicio. Si alguna de estas variables

es susceptible de ser notificada como evento, variable de estado tipo evented, el

servicio publica actualizaciones cuando se modifican estas variables.

UPnP emplea un sistema de notificación de eventos usando un modelo

publicador/suscriptor en el que los puntos de control pueden suscribirse a

eventos enviados por un servicio, y los servicios publican notificaciones de

eventos a los suscriptores (Figura 3-14).

Figura 3-14: Suscripción y notificación de eventos (1)

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

55

Un evento es un mensaje enviado desde un servicio a los puntos de control

suscritos. Los eventos mantienen informados a los puntos de control interesados

de los cambios de estado asociados al servicio.

Un punto de control que desea recibir notificaciones de cambios en las variables

de estado se suscribe a un origen de eventos mediante el envío de una solicitud

de suscripción a la URL de eventos contenida en la descripción del dispositivo

correspondiente. Esta solicitud de suscripción debe incluir el servicio al que se

quiere suscribir, una URL a la que enviar los eventos y un tiempo de suscripción.

Si un servicio acepta la solicitud de suscripción, responde con un identificador

único de suscripción (SID) y la duración de la suscripción, que indica el tiempo de

validez de la misma. El identificador único permite al punto de control referirse a

la suscripción en sucesivas solicitudes del servicio, tales como la renovación o la

cancelación de la suscripción.

Los mensajes de eventos se envían a todos los suscriptores independientemente

del motivo del cambio de las variables de estado. Estos mensajes contienen

información expresada en lenguaje XML con los nombres y valores de aquellas

variables de estado que estén configuradas en el servicio como variables de

eventos. El protocolo de notificación de eventos es GENA y el uso de TCP

garantiza la entrega del mensaje al suscriptor. Cuando la suscripción caduca, el

identificador de suscripción deja de ser válido, y el servicio deja de enviar

mensajes de eventos al punto de control correspondiente. Si en este momento

ese punto de control intenta enviar cualquier mensaje (renovación o

cancelación) que no sea el de suscripción, el servicio lo rechaza debido a que el

identificador ya no es válido. En la Figura 3-15 se representan los procesos de

envío de mensajes correspondientes a esta fase del funcionamiento de UPnP.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

56

Figura 3-15: Suscripción y notificación de eventos (2)

Para que el punto de control reciba los eventos de un servicio, enviará un

mensaje de suscripción a la URL del servicio deseado. Este mensaje utiliza el

método SUBSCRIBE definido por GENA.

Al recibir este mensaje el servicio confecciona una lista de suscriptores con la

siguiente información para cada uno de ellos: identificador único de la

suscripción (SID), URL de entrega de los mensajes de eventos, contador de

eventos y duración de la suscripción.

Si se acepta la suscripción, el servicio envía un mensaje con el identificador de la

suscripción y el tiempo de validez. Después de este mensaje se debe enviar el

primer mensaje de notificación de eventos, que contendrá los nombres de las

variables y sus valores actuales en lenguaje XML. Además, cada vez que una de

estas variables que están configuradas como evento cambie, el servicio debe

enviar un mensaje de eventos a todos los puntos de control suscritos. Estos

mensajes de notificación de eventos, con el fin de detectar errores, se

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

57

encuentran etiquetados con una clave que es distinta para cada suscriptor. En

cada punto de control, en el mensaje inicial de eventos se inicia esta clave a 0 y

se incrementa con cada mensaje de notificación posterior. Así, si el suscriptor

recibe una notificación con una clave incorrecta, contesta al servicio con un

mensaje de error.

El mensaje de notificación de eventos usa el método NOTIFY definido por GENA.

Se debe responder antes de 30 segundos confirmando la correcta recepción del

mensaje. Si esta confirmación no llega, el servicio desechará esta notificación,

pero seguirá manteniendo la suscripción activa para futuros eventos. La

respuesta del punto de control será simplemente un mensaje HTTP indicando

que se ha recibido de forma adecuada con el método 200 OK.

En caso de que se produzca algún error en el mensaje de eventos, el suscriptor

debe enviar el correspondiente mensaje indicándolo para que el servicio reenvíe

el mensaje. Todas las suscripciones se deben renovar periódicamente para que

los puntos de control sigan recibiendo notificaciones. Para mantener una

suscripción activa, el punto de control debe enviar un mensaje de renovación

antes de que expire el tiempo de suscripción.

El mensaje de renovación se envía a la misma URL que el mensaje original de

suscripción, pero esta vez no se incluye la URL de entrega de los mensajes de

eventos. En su lugar, el mensaje de renovación incluye el identificador de

suscripción recibido en el mensaje inicial de confirmación de la suscripción. La

respuesta a este mensaje es exactamente igual a la respuesta del mensaje de

suscripción.

Cuando un punto de control no quiere recibir más eventos de un servicio, puede

cancelar su suscripción. Esto se hará enviando un mensaje de cancelación HTTP

con el método UNSUBSCRIBE. La respuesta del servicio a este mensaje es, como

en el caso anterior, una confirmación HTTP.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

58

Si el punto de control se desconecta de la red de forma abrupta sin enviar el

mensaje de cancelación de la suscripción, el servicio seguirá enviándole

notificaciones hasta que expire el tiempo de suscripción.

3.2.6 PRESENTACIÓN

En una red UPnP, un punto de control puede controlar un dispositivo o

comprobar su estado a través de la presentación de una página HTML. Una

página de presentación puede ser cargada por el punto de control en un

explorador y permite a los usuarios ver y controlar al dispositivo.

La pila de protocolos involucrada aparece en la Figura 3-16.

Figura 3-16: Protocolos. Fase de Presentación

Las páginas de presentación no son necesarias. Si un dispositivo no tiene página

de presentación, puede ser controlado a través del control estándar de

mensajes. Si el dispositivo permite página de presentación, su documento de

descripción contiene el URL para la página de presentación en la etiqueta

<presentationURL>. Esta etiqueta debe estar presente siempre, si el dispositivo

no tiene página de presentación, la etiqueta estará vacía.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

59

En la fase de presentación el punto de control envía una petición HTTP con el

método GET a la URL de presentación (disponible en la descripción de

dispositivo) y el dispositivo devuelve la página de presentación. Tras cargar la

página en el navegador, el punto de control puede controlar el dispositivo o

comprobar sus variables. Este proceso se representa en la Figura 3-17.

Figura 3-17: Presentación

El mensaje de petición de presentación incluye el campo ACCEPT-LANGUAGE y el

lenguaje de la página de presentación vendrá definido por el campo

CONTENTLANGUAGE definido en el dispositivo.

Un componente adicional de la red UPnP es la capa de aplicación. Las

capacidades de un dispositivo son definidas por el propio dispositivo y los

modelos de servicios que proporcionan el marco para la red de componentes,

descripción, control y eventos. Un fabricante de dispositivos puede preparar esos

modelos por sí mismo, o trabajar con otros fabricantes dentro del UPnP Forum

para preparar el estándar del dispositivo y los modelos de servicio. Actualmente

el comité de trabajo de UPnP ha elaborado definiciones de modelos estándar

que pueden ser adoptados por los fabricantes.

CONTROL E INTEGRACIÓN DE ROVIO BAJO UPNP Tecnología UPnP

60

3.3 CONCLUSIONES: VENTAJAS E INCONVENIENTES

La arquitectura de dispositivos UPnP proporciona un marco común donde los

dispositivos pueden interactuar y construir servicios. La tecnología UPnP es la

base para lograr mayores niveles de automatización e integración.

Las características de la arquitectura de dispositivos UPnP que animan al uso de

esta tecnología en el hogar digital son las siguientes:

No tiene necesidad de configuración previa de los dispositivos, lo que

permite una instalación rápida y un uso fácil para el hogar.

Se basa en protocolos, no en APIs, permitiendo ser verdaderamente

independiente de los medios y la plataforma.

La independencia de medios y dispositivos permiten extender su

funcionamiento sobre cualquier red incluyendo líneas telefónicas, red

eléctrica, WiFi, Ethernet, etc.

La independencia de plataformas, permite usar cualquier lenguaje de

programación o sistema operativo para el desarrollo de productos.

Tecnologías basadas en Internet, está desarrollada sobre IP, TCP, UDP,

HTTP y XML entre otras, de las cuales existe un amplio conocimiento y

son fácilmente integrables.

Aunque está basado en estándares, es flexible y puede satisfacer las

necesidades de los dispositivos que operan en las redes de hoy y del

futuro.

No obstante, esta tecnología también tiene sus inconvenientes:

El uso de UDP en la fase de descubrimiento, con la consiguiente pérdida

de información. Esto queda minimizado en cierta medida con el reenvío

periódico de los mensajes, con lo que se consigue la correcta detección

de los dispositivos a costa de introducir cierto retardo y carga en la red.

La principal desventaja es la seguridad. La falta de un protocolo de

autenticación o de seguridad, posibilita el riesgo de intrusión o infección

de los dispositivos.