miniaturadeimagen|Logo - Universal Plug and Play Universal Plug and Play (UPnP) es un conjunto de protocolos de comunicación que permite a periféricos en red, como computadoras personales, impresoras, pasarelas de Internet, puntos de acceso Wi-Fi y dispositivos móviles, descubrir de manera transparente la presencia de otros dispositivos en la red y establecer servicios de red de comunicación, compartir datos y entretenimiento. UPnP está diseñado principalmente para redes de hogar sin dispositivos del ámbito empresarial.
El Foro UPnP es el encargado de promocionar el uso de la tecnología UPnP. Es una iniciativa de la industria informática para permitir una conectividad simple y robusta entre los dispositivos autónomos y computadoras personales de diferentes fabricantes. El Foro UPnP está compuesto por más de ochocientos fabricantes de diferentes ámbitos que van desde la Electrónica de consumo hasta las redes de computadoras.
El concepto de UPnP es una extensión de Plug and play, una tecnología para conectar dispositivos de manera directa y sin necesidad de configuración a una computadora, aunque UPnP no está relacionada directamente con la tecnología plug-and-play. Los dispositivos UPnP son "plug-and-play" en el sentido de que una vez conectados a una red son capaces de establecer de manera automática comunicaciones con otros dispositivos.
Visión general
La arquitectura UPnP permite la interconexión entre dispositivos como computadoras personales, electrodomésticos, dispositivos de electrónica de consumo y dispositivos inalámbricos. Es un protocolo con una arquitectura abierta y distribuida que se basa en estándares reconocidos como la Familia de protocolos de Internet (TCP/IP), HTTP, XML, y SOAP. Los puntos de control UPnP son dispositivos que utilizan UPnP para controlar dispositivos UPnP.
La arquitectura UPnP soporta Zero Configuration Networking. Un dispositivo compatible con UPnP de cualquier fabricante es capaz de conectarse de manera dinámica a una red, obtener una dirección IP, anunciar sus servicios, comunicar sus funciones bajo demanda y descubrir la presencia y capacidades de los demás dispositivos existentes. Los servidores Dynamic Host Configuration Protocol (DHCP) y Domain Name System (DNS) son opcionales y sólo se utilizarán en caso de que estén presentes en la red. Los dispositivos se pueden desconectar de la red de manera automática sin dejar información de estado.
UPnP se publicó en diciembre de 2008 como un estándar internacional compuesto por 73 partes.International Electrotechnical Commission, 2008-12-09. Consultado el 2009-05-07.International Organization for Standardization "ISO/IEC standard on UPnP device architecture makes networking simple and easy", 2008-12-10. Consultado el 2009-05-07.UPnP Forum "UPnP Specifications Named International Standard for Device Interoperability for IP-based Network Devices", 2009-02-05. Consultado el 2009-05-07.
UPnP incluye otras características destacadas como: Independencia de formato y dispositivo la tecnología UPnP puede ejecutarse en muchos medios que soportan IP incluyendo Ethernet, FireWire, IR (IrDA) y RF (Bluetooth, Wi-Fi). No son necesarios controladores especiales, en su lugar se utilizan protocolos de red comunes. Control mediante Interfaz de usuario (IU) la arquitectura UPnP permite que los dispositivos presenten una interfaz de usuario mediante un navegador web (ver Presentación más abajo). Independencia de Sistema operativo y lenguaje de programación se puede utilizar cualquier sistema operativo y cualquier lenguaje de programación para desarrollar productos UPnP. UPnP no especifica o restringe el diseño de un API de las aplicaciones que se ejecutan en los puntos de control; los desarrolladores de sistemas operativos pueden crear APIs que se ajusten a las necesidades de sus usuarios. Extensibilidad Los productos UPnP pueden tener servicios específicos para dicho dispositivo en capas superiores a la arquitectura básica UPnP. Además de combinar servicios definidos por el Foro UPnP de múltiples formas, los fabricantes pueden definir tipos de servicios y dispositivos propios, y pueden extender dispositivos y servicios ya definidos en el estándar para soportar acciones, variables de estado, elementos de estructuras de datos y variables definidas por ellos mismos.
Protocolo
UPnP utiliza el puerto UDP 1900 y el puerto TCP 2869.
Direccionamiento La base de UPnP es el direccionamiento IP: cada dispositivo debe implementar un cliente DHCP y buscará un servidor DHCP en cuanto se conecte por primera vez a la red. Si no hay ningún servidor DHCP disponible, el dispositivo debe asignarse a sí mismo una dirección. El proceso por el cual un dispositivo UPnP se auto-asigna una dirección se denomina AutoIP. En la versión 1.0 de la especificación de la arquitectura UPnP,Foro UPnP, UPnP Device Architecture versión 1.0, 2008-04-24 se incluye textualmente la propia especificación de AutoIP; en versión 1.1,Foro UPnP, UPnP Device Architecture versión 1.1, 2008-10-15 la especificación de AutoIP referencia el RFC 3927 de IETF RFC 3927.Stuart Cheshire, et al, IETF RFC 3927, "Dynamic Configuration of IPv4 Link-Local Addresses", May 2005 Si durante la transacción DHCP, el dispositivo obtiene un nombre de dominio, por ejemplo, mediante un servidor DNS o mediante DNS forwarding, el dispositivo deberá emplear dicho nombre en las operaciones de red posteriores; en otro caso, el dispositivo deberá utilizar su propia dirección IP.
Descubrimiento Una vez que un dispositivo ha establecido una dirección IP, el siguiente paso en UPnP es el descubrimiento. El protocolo de descubrimiento de UPnP se denomina Simple Service Discovery Protocol (SSDP). SSDP permite a los dispositivos que acaban de añadirse a una red anunciar sus servicios a los puntos de control presentes en la red. Asimismo, cuando se añade un punto de control a la red, SSDP le permite buscar los dispositivos que le interese controlar. El intercambio fundamental en ambos casos es un mensaje de descubrimiento que contiene datos básicos del dispositivo o uno de sus servicios, por ejemplo, su tipo, identificador y un enlace una URL en la que obtener información más detallada.
Descripción Después de que un punto de control haya descubierto un dispositivo, todavía dispone de muy poca información acerca de él. El punto de control debe obtener la descripción del dispositivo desde la URL proporcionada por el dispositivo en el mensaje de descubrimiento para conocer mejor sus capacidades y poder interactuar con él. La descripción de un dispositivo se codifica en XML e incluye información específica del fabricante como nombre de modelo y número, número de serie, nombre de fabricante, URLs a sitios web específicos de fabricante, etc. La descripción también incluye una lista de dispositivos o servicios embebidos, así como URLs de control, manejo de eventos y presentación. Para cada servicio, la descripción incluye una lista de los comandos, o acciones, a las que responderá el servicio, y parámetros, o argumentos, de cada acción; la descripción de un servicio también incluye una lista de variables; estas variables modelan el estado del servicio en tiempo de ejecución, y se describen en términos de su tipo de datos, rango y las características de sus eventos.
Control Al obtener la descripción del dispositivo, el punto de control puede enviar acciones a los servicios de un dispositivo. Para ello, el punto de control envía un mensaje de control apropiado a la URL de control del servicio (proporcionada en la descripción del dispositivo). Los mensajes de control también se codifican en XML mediante Simple Object Access Protocol (SOAP). El servicio responderá con un mensaje de control con los resultados de la acción de forma similar a una llamada a una función. Los efectos de la acción, en caso de existir, se modelarán mediante cambios en las variables que describen el estado del servicio.
Notificación de eventos Una capacidad adicional de UPnP es la notificación de eventos o eventing. El protocolo de notificación de eventos definido en la arquitectura UPnP se conoce como General Event Notification Architecture (GENA). La descripción UPnP de un servicio incluye una lista de las acciones a las que el servicio responde y otra con las variables que modelan el estado del servicio en tiempo de ejecución. El servicio enviará actualizaciones cuando cambien dichas variables a cualquier punto de control que se haya suscrito para recibir dicha información. El servicio publica actualizaciones enviando mensajes codificados en XML de evento que contiene los nombre de una o más variables de estado y el valor actual de dichas variables. Cuando un punto de control se suscribe por primera vez se le envía un mensaje especial de eventos; que contiene el nombre y los valores de todas las variables que generan eventos y permite al suscriptor conocer el estado actual del servicio. La notificación de eventos UPnP se ha diseñado para mantener a todos los puntos de control informados por igual sobre los efectos de cualquier acción, de este modo se permite soportar escenarios con múltiples puntos de control. Por tanto, los mensajes de eventos se envían a todos los suscriptores, los suscriptores reciben mensajes para todas las variables que han cambiado a las que se han suscrito y los mensajes se envían sin importar el motivo que modificó la variable de estado (tanto en respuesta a una petición, como por el cambio del estado interno del servicio).
Presentación El último paso en UPnP es la presentación. Si un dispositivo tiene una URL de presentación, entonces el punto de control podrá obtener una página desde dicha URL, mostrarla en un navegador y, dependiendo de las características de la página, permitirá al usuario controlar el dispositivo y/o consultar su estado. El grado de control que se puede obtener depende en gran medida del dispositivo y de la interactividad presente en la interfaz de presentación.
Estándares UPnP AV
UPnP AV es una extensión de audio y vídeo para UPnP. El Foro UPnP publicó la versión 2 de la especificación el 12 de julio de 2006, con una versión 2.0 de las clases MediaServer y MediaRenderer. La mejora consistió en añadir funciones a los dispositivos de clase MediaServer y MediaRenderer que permitían un mayor grado de interoperabilidad entre MediaServers y MediaRenderers de diferentes fabricantes.
Los estándares UPnP AV sirven como base de especificaciones publicadas por otras organizaciones como las Networked Device Interoperability Guidelines de Digital Living Network Alliance,Digital Living Network Alliance, DLNA Networked Device Interoperability Guidelines, 2006-10 IEC 62481-1 de International Electrotechnical Commission,International Electrotechnical Commission, IEC 62481-1,"Digital living network alliance (DLNA) home networked device interoperability guidelines - Part 1: Architecture and protocols", 2007-08-30 y el protocolo OpenCable de CableLabs.Cable Television Laboratories, OpenCable Home Networking Protocol, 2006-06-30
Componentes UPnP AV
Servidor multimedia Un Servidor Multimedia UPnP AV es el servidor UPnP (un dispositivo 'maestro') que proporciona información sobre su biblioteca de medios y transmite información multimedia (como audio/vídeos/imágenes/ficheros) a los clientes UPnP de la red. En otras palabras, es un dispositivo o una aplicación que almacena contenido multimedia, como fotografías, películas o música y lo comparte en red.
Los servidores multimedia UPnP AV proporcionan un servicio a los clientes UPnP AV, denominados puntos de control, que les permite consultar los contenidos multimedia del servidor y solicitar el envío de un fichero para su reproducción.