• Aucun résultat trouvé

3.5 Analyse de l’architecture Universal Plug and Play (UPnP)

3.5.5 Les fonctionnalités et mécanismes d’UPnP

L'adressage est la fonctionnalité initiale pour tous les dispositifs UPnP. Chaque dispositif doit acquérir une adresse IP avant qu'il ne puisse découvrir les autres dispositifs ou offrir ses services sur un réseau ambiant UPnP. Une fois qu'un dispositif UPnP acquiert une adresse IP, il est prêt pour fournir ses services aux points de contrôle. La Figure 55 présente le modèle interne d'un Dispositif Device UPnP.

Adressage

Adressage

DHCP

DHCP Auto -IPAuto-IP

Événement généré par le dispositif Notification d'événement Événement Événement Souscription d'événement Souscription d'événement Contrôle Contrôle Requête de ServiceRequête de Service Réponse d‘invocation Invocation de Service Invocation de Service Résultat de Service Découverte Découverte Annonce de dispositif

Code du Dispositif Device

Code du Dispositif Device

Description Description Services Dispositif UPnP Demande de découverte Demande de découverte Réseau Ambiant IP Réseau Ambiant IP

Figure 55: Modèle d'un Dispositif Device UPnP.

La découverte, la fonctionnalité suivante dans l'opération des dispositifs UPnP, permet aux points de contrôle de rechercher les dispositifs et leurs services sur le réseau ambiant et de trouver ceux qui peuvent satisfaire ses critères de recherche. Après qu'un point de contrôle UPnP a découvert un dispositif, il a seulement l'information contenue dans le message de découverte : le type de dispositif, son identificateur universel unique (UUDI), et une URL pour accéder à son document de description XML. Pour découvrir plus d’information sur un dispositif, y compris les services et les actions qu’il supporte, le point de contrôle recherche les documents de description XML du dispositif. Donc, après que le dispositif UPnP ait acquis une adresse IP et ait annoncé sa présence sur le réseau ambiant, les points de contrôle peuvent alors découvrir les dispositifs et invoquer n'importe quelle action fournie par les services d’un dispositif particulier. Dans la terminologie UPnP, ce processus d'invocation s'appelle contrôle. Après que le point de contrôle ait découvert un dispositif et ait recherché la description d’un dispositif et ses services, le point de contrôle peut souhaiter réagir aux changements d'état du dispositif. La gestion d’événements d’UPnP permet aux points de contrôle de s'inscrire auprès des serveurs d’événements pour recevoir des messages lorsque l'état d’un dispositif change. Les interactions entre les points de contrôle et les dispositifs peuvent être entièrement automatiques, n'exigeant aucune intervention humaine. Cependant, il est également possible de contrôler manuellement les dispositifs UPnP en utilisant une page web de présentation fournie par le dispositif. La Figure 56 présente le modèle interne d'un Point de Contrôle UPnP.

Adressage Adressage DHCP DHCP Auto-IPAuto-IP Réseau Ambiant IP Réseau Ambiant IP Réponse de découverte Découverte

Découverte ContrôleContrôle ÉvénementÉvénement

Réponse de service Présentation

Présentation

Code du Point de Contrôle

Code du Point de Contrôle

Point de Contrôle UPnP Notification d'événement Demande de Découverte Demande de Découverte Invocation de service Invocation

de service Souscription Souscription événementévénement

3.5.5.1 L’adressage IP

L’objectif de la fonction adressage est d’assigner une adresse IP à chaque dispositif ou point de contrôle qui joint dynamiquement le réseau ambiant, soit par Auto IP, soit par DHCP (Dynamic Host Configuration Protocol). Chaque dispositif doit être un client DHCP, ou alors, il devient un serveur DHCP lorsqu’il est le premier à être connecté sur le réseau. Si un serveur DHCP est disponible, le dispositif qui intègre le réseau UPnP doit utiliser l’adresse IP qui lui a été assigné par le serveur DHCP. S’il n’y a pas de serveur DHCP sur le réseau, le dispositif doit utiliser l’Auto IP afin d’obtenir une adresse IP automatiquement. Auto IP définit la manière dont un dispositif choisit une adresse IP à partir d’une suite d’adresses privées et réservées pour cet effet.

3.5.5.2 L’annonce et la découverte d’un dispositif et ses services

Dans l’étape de découverte des dispositifs ou devices, UPnP utilise le protocole SSDP qui opère conjointement avec HTTPU et HTTPMU. Lorsqu’un nouveau dispositif est connecté au réseau, il annonce sa présence, ses dispositifs embarqués (si c’est le cas) et ses services, par multicast, aux points de contrôle, au moyen de messages de description du dispositif. Ces messages de description contiennent un URI (Universal Ressource Identifier), qui identifie de manière unique le dispositif, et l’URL d’un fichier XML pour trouver la description détaillée du dispositif. Egalement, quand un point de contrôle est ajouté sur le réseau, le protocole de découverte lui permet de rechercher, en multicast, les dispositifs et les services qui les intéressent. De cette façon, tous les dispositifs écoutent et répondent si leurs services ou leurs dispositifs embarqués satisfont le critère émis dans le message de recherche. La Figure 57 représente les deux mécanismes de découverte. La partie gauche de la figure, illustre l’annonce d’un dispositif sur le réseau ambiant en utilisant le protocole SSDP sur HTTPMU (multicast). La partie droite de la figure illustre la recherche des dispositifs et leurs services en utilisant le protocole SSDP sur HTTPMU (multicast). Dans ce dernier cas, la réponse du dispositif est informée par HTTPU (unicast).

SSDP sur HTTPMU / HTTPU SSDP sur HTTPMU Point de contrôle A Point de contrôle B Point de contrôle C Dispositif A ssdp: alive (URL de fichier XML) Point de contrôle A Dispositif A URL de fichier XML ssdp: discover

Figure 57 : L’annonce d’un dispositif et la recherche des dispositifs dans un réseau ambiant UPnP.

3.5.5.3 La description d’un dispositif et ses services

Un point de contrôle, qui a découvert un dispositif, peut obtenir plus d’information en récupérant le fichier XML de description du dispositif, grâce à l’URL informée dans le message échangé au moment de la découverte. Ce fichier contient la description du dispositif, la liste de ses dispositifs embarqués et la liste des services offerts par le dispositif. Le document de description d’un dispositif inclut des informations basiques sur le dispositif (telles que le type de dispositif, le nom du constructeur du

dispositif, l’identificateur du dispositif, la liste des dispositifs embarqués, …), ainsi que la liste des services disponibles : le type de service, le nom du service, l’URL pour la description détaillée du service, l’URL pour le contrôle, et l’URL pour la notification d’événements et l’URL pour la présentation. <?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion>

<URLBase>base URL for all relative URLs</URLBase> <device>

<deviceType> urn:schemas-upnp-org:device:DeviceType:1 </deviceType>

<friendlyName> short user-friendly title </friendlyName>

<manufacturer> manufacturer name </manufacturer>

<manufacturerURL> URL to manufacturer site </manufac turerURL > <modelDescription> long user-friendly title </modelDescription> <modelName> model name </modelName>

<modelNumber> model number </modelNumber> <modelURL> URL to model site </modelURL>

<serialNumber> manufacturer's serial number </serialNumber> <UDN> uuid:UUID </UDN>

<UPC> Universal Product Code </UPC>

<iconList> <icon> <mimetype>image/format</mimetype> <width>horizontal pixels</width> <height>vertical pixels</height> <depth>color depth</depth> <url>URL to icon</url> </icon>

XML to declare other icons, if any, go here </iconList>

<serviceList>

<service>

<serviceType>urn:schemas-upnp-org:service:Service1:1</serviceType> <serviceId>urn:upnp-org:serviceId:Service Id1</serviceId>

<SCPDURL>URL to service description</SCPDURL> <controlURL>URL for control</controlURL> <eventSubURL>URL for eventing</eventSubURL> </service>

Declarations for other services

</serviceList>

<presentationURL>URL for presentation</presentationURL> </device>

</root>

Des information basiques sur le dispositif

Liste des services du dispositif

Figure 58 : Fichier XML de description d’un dispositif.

La Figure 58 illustre le document de description d’un dispositif en indiquant dans la partie supérieure, les informations basiques du dispositif et, dans la partie inférieure, la liste des services supportés par le dispositif.

La description d’un service est un document XML qui contient la liste des actions qui sont supportées par le service ainsi que les arguments pour chaque action. La description d’un service inclut aussi la liste des variables associées à chaque service du dispositif. Ces variables modélisent l’état d’un service et sont décrites selon leur type, valeur par défaut, leur intervalle de valeurs et leur caractère événementiel. La montre Figure 59 la structure d’un fichier XML pour décrire les services d’un dispositif. Les deux parties principales de ce document sont indiquées dans la Figure 59: la liste des actions supportées par le dispositif et la liste des variables qui décrivent les services du dispositif.

<?xml version="1.0"?>

<scpd xmlns="urn:schemas-upnp-org:service-1-0"> <specVersion> <!-- UPnP version 1.0 --> <major>1</major> <minor>0</minor> </specVersion> <actionList> <action> <name>ActionName2</name> <argumentList> <argument> <name> FormalParameterActionName2</name> <relatedStateVariable>StateVariableName2</relatedStateVariable> <direction>in</direction> </argument> </argumentList> </action>

Declarations for other actions </actionList>

<serviceStateTable>

<stateVariable sendEvents="yes"> <name>VariableName2</name>

<dataType>variable data type</dataType> <defaultValue>default value</defaultValue> </stateVariable>

</stateVariable>

Declarations for other state variables </serviceStateTable>

</scpd>

Liste d’actions

Liste de variables

Figure 59 : Fichier XML de description des services d’un dispositif.

3.5.5.4 Le contrôle d’un dispositif

Grâce à l’utilisation du protocole SOAP, les points de contrôles sont capables d’exécuter des actions à distance sur les dispositifs. La liste des actions est obtenue à partir du fichier XML qui décrit chaque service. Un point de contrôle peut envoyer un message de contrôle à l’URL de contrôle fournie par le dispositif au travers de sa description. Les messages de contrôle sont exprimés en XML. Lorsque l’action s’est terminée, le service retourne le résultat de l’action, ou une erreur en cas contraire. La Figure 60 illustre l’invocation d’une action sur un dispositif en utilisant le protocole SOAP. Dans la figure le Point de contrôle A exécute l’action (A1,1) associée au service (A,1) du Dispositif A. Ensuite, le dispositif lui envoie le résultat.

SOAP sur HHTP TCP IP Point de Contrôle A

Dispositif UPnP A

Service (A,1) Service (A,2) Action(A1,1)

Action(A1,2)

Action(A2,1) soap:invocation d’action

résultat

3.5.5.5 La gestion des événements

Un point de contrôle peut s’abonner auprès des services afin d’être informé lors des changements d’état d’une variable d’état. Le service diffuse ses mises à jour en envoyant des messages d’événements aux points de contrôle souscrits. Chaque message contient les noms d’une ou plusieurs variables d’état, ainsi que leurs valeurs actuelles. Pour souscrire à un événement, un point de contrôle envoie un message de souscription à l'URL du serveur d'événements du service, qui se trouve dans le document de description du dispositif. Si la souscription est acceptée, le dispositif répond sur la durée de la souscription. Pour laisser la souscription active, le point de contrôle doit renouveler sa souscription avant que celle-ci n’expire. Le point de contrôle peut annuler la souscription à un événement. Pour gérer le multipoint, un message d’événement, provenant du dispositif, est envoyé à tous les points de contrôle intéressés par cet événement. Pour la gestion d’événements, le protocole utilisé est GENA. La Figure 61 illustre le mécanisme de souscription aux événements d’un service déterminé en utilisant le protocole GENA sur HTTP TCP IP. Ici, le Point de contrôle A souscrit aux événements associés avec les changements d’une variable contenue dans une table d’état. Lorsqu’un changement dans une variable concernée se produit, le point de contrôle est informé.

GENA sur HHTP TCP IP Point de Contrôle A

Dispositif UPnP A

Service (A,1) Service (A,2) Action(A1,1) Action(A2,1) Table d’état (A,1) gena: souscription Notification de changement Table d’état (A,2) Action(A1,2)

Figure 61 : La souscription aux événements.

3.5.5.6 La présentation d’un dispositif

Un point de contrôle peut charger une page HTML, ou interface d’utilisation, dont l’URL est contenue dans la description du dispositif, afin de voir l’état d’un dispositif, et ainsi, contrôler le dispositif à distance. Le point de contrôle utilise une requête GET HTTP vers l’URL de présentation et le dispositif retourne sa page de présentation.