FR 2778046 A1 19991029 FR 9805110 A 19980423 L'invention concerne un procédé de gestion d'objets, notamment de modules logiciels, dans un réseau de communication pouvant être du type domotique. Elle concerne également des dispositifs aptes à être reliés à un tel réseau et comportant des moyens de mise en oeuvre du procédé. L'invention s'applique notamment dans un réseau domotique adapté à l'interconnexion d'appareils audio et vidéo. Dans un réseau d'appareils d'électronique grand public tels que des 1o téléviseurs, décodeurs câbles ou satellites ou encore magnétoscopes, il est nécessaire de prévoir des moyens de communication entre les appareils, tout en prenant en compte des contraintes de complexité et de prix inhérents à des appareils fabriqués en grande série. Selon le type de réseau envisagé, il peut être nécessaire pour un appareil (encore appelé noeud dans ce qui suit) du réseau de connaître le chemin d'accès ou l'adresse d'un autre appareil. Cela est aussi le cas si l'on remplace la notion d'appareil par la notion d'objet, ou de module logiciel, un appareil pouvant contenir un grand nombre d'objets. Il peut s'agir d'applications téléchargées ou résidentes, d'interfaces utilisateurs particulières ou de modules de plus bas niveau. Chaque objet ou module d'un appareil peut chercher à communiquer avec un autre objet ou module du même appareil ou d'un autre appareil du réseau. Chaque objet est considéré comme une ressource à disposition d'autres objets. Dans ce cas se pose le problème de l'obtention d'une ou de la liste de ressources disponibles dans le réseau. Dans ce cadre, I'invention a pour objet un procédé de gestion distribuée d'un catalogue d'objets dans un réseau de communication comportant des appareils caractérisé en ce qu'il comporte les étapes: - d'enregistrement d'objets locaux présents dans un appareil dans un registre local géré au niveau de cet appareil, - de propagation d'une requête de liste d'objets lancée par un objet local à des registres non locaux gérés par d'autres appareils du réseau, - de collecte des réponses des registres non locaux et de la réponse du registre local et de - transmission des réponses collectées à l'objet ayant lancé la requête. Chaque noeud (ou appareil) ne stocke que les informations locales à ce noeud ou appareil: les informations ne sont pas dupliquées dans d'autres noeuds. Ainsi, les besoins en mémoire dans chaque appareil sont restreints. La recherche des objets (modules logiciels) est répartie sur plusieurs appareils, chaque base de donnée étant interrogée au niveau local. Ainsi, les besoins de ressources de traitement de l'information au niveau local sont-elles également restreintes. La cohérence des données est maintenue de façon simple: il n'est o0 pas nécessaire de mettre à jour, grâce à des traitements complexes, des bases de données distantes lorsqu'un changement est effectué dans une base de données locale. Si un noeud disparaît, seules les informations liées à ce noeud sont perdues. Selon un mode de réalisation particulier, un objet possède une adresse (SEID) composée d'un identificateur d'un appareil dans lequel il est présent, cet identificateur étant unique dans le réseau, ainsi que d'un identificateur local unique à cet objet dans ledit appareil. Selon un mode de réalisation particulier, un registre local comporte pour chaque objet qui y est enregistré l'adresse de cet objet dans le réseau, ainsi que des attributs dudit objet. Selon un mode de réalisation particulier, I'étape de propagation d'une requête comporte l'étape de détermination des appareils connectés au réseau comportant eux-mêmes un registre local, et de transmission de la requête aux registres de ces appareils. Un objet peut ainsi lancer une requête pour l'obtention d'une liste d'autres objets sans se préoccuper du fait de savoir si ces objets sont localisés dans le même noeud ou pas. Selon une variante de réalisation, une requête n'est propagée qu'à un groupe déterminé de registres distants. Lorsque l'on sait par exemple par avance que des modules logiciels comportant certains attributs ne sont présents que dans un type donné d'appareils, alors il est possible de limiter la propagation de requêtes à ce type d'appareil pour limiter le nombre de messages circulant sur le réseau. L'invention a aussi pour objet un appareil dans un réseau de communication comportant: - des moyens de mémorisation (3, 4) d'objets locaux (21 à 28), - des moyens de mémorisation (3) d'un registre local (26) apte à io contenir un catalogue des objets locaux, - des moyens (31) de connexion au réseau, - des moyens de transmission de messages d'un objet local vers un autre objet et de propagation d'une requête d'une liste d'objets vers des registres non locaux. Selon un mode de réalisation particulier, chaque objet possède une adresse unique dans le réseau (SEID), une requête de liste d'objets visant à établir une liste d'adresses d'objets répondant à des critères déterminés. Selon un mode de réalisation particulier, le réseau de communication comporte un bus IEEE 1394. D'autres caractéristiques et avantages de l'invention apparaîtront à travers la description d'un exemple de réalisation particulier non limitatif, illustré par les figures jointes parmi lesquelles: - la figure l a représente schématiquement un réseau domotique comportant quatre appareils de type différent; - la figure lb est un diagramme bloc d'un des appareils de la figure 1; - la figure 2 est un schéma illustrant l'organisation logicielle de l'appareil de la figure lb; - la figure 3 représente les états d'un module de registre d'un appareil du réseau, - la figure 4 représente le séquencement des messages lors d'une requête nécessitant une propagation vers un module de registre distant. Selon le présent exemple de réalisation, le réseau domotique comporte quatre types d'appareils: les appareils audio-vidéo possédant les fonctionnalités complètes (FAV), les appareil audio-vidéo à fonction intermédiaire (IAV), les appareils audio-vidéo de base (BAV) et les appareils audio-vidéo hérités (LAV). Le bus de communication est de type IEEE1394, mais peut être d'un autre type. Le réseau admet un langage de commande commun, appelé langage HAVI. io Les appareils de type FAV possèdent les fonctionnalités les plus complètes de tous les appareils du réseau: un gestionnaire de communication, un module de registre, un gestionnaire de modules de contrôle d'appareil ainsi que des modules de contrôle d'appareil (appelés 'DCM' par la suite), ces derniers pouvant être téléchargés. Selon une variante, I'appareil comporte également un gestionnaire d'interface utilisateur. Les appareils FAV peuvent prendre le contrôle d'appareils moins sophistiqués, tels des appareils de type BAV et LAV par l'intermédiaire des modules de contrôle d'appareil. Un appareil FAV peut accéder à d'autres appareils de type FAV ou IAV pour accéder à des ressources dont il est dépourvu (par exemple un gestionnaire d'interface utilisateur). Les appareils de type IAV possèdent les mêmes fonctionnalités qu'un FAV excepté la possibilité de télécharger des modules de contrôle d'appareils. Les appareils de type BAV possèdent un langage de commande privé qui leur est propre, et qui n'est pas forcément celui utilisé par le reste des appareils. Ce type d'appareil est contrôlé par un appareil FAV par l'intermédiaire d'un module de contrôle (DCM) téléchargé à partir de l'appareil de type BAV lui même et adapté à son contrôle. Par exemple, l'appareil de type BAV peut être une imprimante, dont le gestionnaire d'impression est téléchargé. Les appareil de type LAV sont des appareils connectés au bus ou à des appareils de type IAV ou FAV par l'intermédiaire de connexions spécifiques. Les appareils de type LAV sont contrôlés par des modules de contrôle (DCM) spécifiques qui ne proviennent pas de l'appareil lui même et possèdent leur propre langage privé. La figure 1 a représente un exemple de réseau sous la forme de quatre appareils, FAV, IAV, BAV et LAV. Les appareils FAV, IAV et BAV sont connectés à un même bus, tandis que l'appareil LAV est connecté directement à l'appareil FAV et contrôlé par un module de contrôle présent dans ce dernier. L'appareil BAV est contrôlé, par exemple, par l'intermédiaire de l'appareil IAV. io La figure l b représente schématiquement l'appareil FAV 1. Il comporte un microprocesseur 2 relié à une mémoire vive 3 et une mémoire morte au moins partiellement reprogrammable 4, ainsi qu'une interface 1394 (référence 5) constituée d'un circuit liaison et d'un circuit physique. L'appareil 1 comporte également une interface spécifique 6 pour le branchement du magnétoscope LAV. Notamment quatre types de modules logiciels peuvent être présents dans la mémoire des appareils du présent réseau. Il s'agit des modules de contrôle d'appareils DCM, d'applications, de modules de service et d'un gestionnaire de transmission de messages. Les modules de contrôle d'appareils DCM permettent le contrôle d'un appareil ou d'un sous-ensemble de cet appareil. Le module de contrôle peut être localisé dans l'appareil à contrôler lui-même (s'il s'agit d'un appareil de type IAV ou FAV) ou dans un autre appareil que l'appareil à contrôler (si l'appareil à contrôler est de type LAV ou BAV, le gestionnaire de contrôle sera localisé dans un appareil de type IAV ou FAV, ce dernier servant de plate- forme d'exécution). Un gestionnaire de contrôle est soit présent dès l'origine, soit peut être téléchargé. Dans ce dernier cas, le téléchargement est réalisé au moment de l'initialisation de l'appareil, ou sur requête d'une application. Les modules de contrôle de fonctions (appelés FCM) sont des modules logiciels permettant le contrôle d'une fonction d'un appareil et sont inclus dans les modules de contrôle d'appareil DCM. Un appareil peut à ce titre posséder plusieurs fonctions: enregistrement, syntoniseur, caméra, affichage, mémoire de masse... Les modules de service offrent des fonctions ou services système. Ils sont accessibles soit par des modules logiciels locaux, soit a travers le système de transmission de messages à des modules d'autres appareils. Ces fonctions ou services système comportent notamment la gestion graphique d'interfaces utilisateur, la gestion (par exemple le téléchargement) des modules DCM, les procédures de connexion d'un appareil au réseau, I'initialisation du réseau (listage des ressources du réseau), ainsi que le module de registre, qui sera vu plus en détail plus loin. Chaque module logiciel (DCM ou application ou modules de services système) doit s'enregistrer auprès du module de registre local (c'est à dire le module de registre dans lequel il réside ou dans lequel il a été chargé) s'il veut donner accès à travers la couche message a d'autres modules logiciels du réseau. Les gestionnaires de transmission de messages se chargent de la communication de messages d'un module logiciel à un autre, quelque soient les appareils dans lesquels ces modules sont localisés. Quand un module logiciel souhaite envoyer un message à un autre module, il ne connaît pas l'appareil physique qui héberge le module destinataire. La figure 2 illustre un exemple d'une organisation logicielle d'un appareil de type FAV. Cet appareil comporte une application téléchargée 21 (par exemple un jeu), deux modules de contrôle DCM A et B 22 et 23, une application privée 24 (par exemple un guide de programmes électronique), un gestionnaire 25 de bus de communication de type IEEE 1883/1394, un module de registre 26, une interface utilisateur haut niveau 27, un gestionnaire 28 de DCM et un système 29 de transmission de messages. Les modules communiquent entre eux par l'intermédiaire du système de transmission de messages accessible au travers d'une interface 30 de programmation d'application (appelée 'API' par la suite). L'appareil comporte également une interface 31 avec le bus 1394. Lors de son installation dans le réseau, I'appareil FAV cherchera à charger les modules de contrôle DCM d'appareils de type BAV dans le but de les mettre à disposition de ses applications. Dans cette optique, les appareils BAV placent en une zone connue de leur mémoire et dans une structure de données auto-descriptive appelée SDD (SDD signifiant " Self Describing Device " en anglais) le code du module DCM correspondant. L'appareil de type FAV peut ainsi venir lire cet espace mémoire et charger le module DCM de l'appareil de type BAV. Un exemple est celui o l'appareil BAV est une imprimante. Le DCM ainsi chargés sont enregistrés dans le module du registre de l'appareil FAV et ainsi accessibles par le reste du réseau. Une structure de données de type SDD est obligatoire dans les appareils de type FAV, IAV ou BAV, et se situe a une adresse fixe dans chaque appareil. Lors de son initialisation, il devient ainsi possible pour un appareil de type FAV d'explorer le réseau pour charger les modules DCM de tous les to appareils de type BAV. C'est le gestionnaire de modules DCM de l'appareil FAV qui exécute cette tâche. Une structure de données SDD comporte également le type d'appareil (FAV, IAV, BAV, LAV). Le système de transmission de messages d'un appareil comporte: - le module 26 du registre (déclaration et recherche de modules logiciels), - une couche message, comprenant l'expéditeur 29 de messages (émission et réception de messages), I'interface 30 de programmation d'application (API) pour permettre l'accès au système de transmission et une sous-couche d'adaptation au bus IEEE 1394. La sous-couche d'adaptation au bus IEEE 1394 a notamment pour rôle d'adapter la transmission de données au protocole IEEE 1394, en encapsulant les messages a transmettre dans des paquets adaptés à la norme IEEE 1394. Un message comporte trois composantes: I'adresse du module logiciel de destination, I'adresse du module logiciel source et des données utiles. Une adresse d'un module logiciel se compose d'un identificateur du noeud sur lequel il s'exécute cet identificateur étant unique au réseau, suivi d'un identificateur de module logiciel unique au noeud dans lequel il s'exécute. L'allocation des identificateurs des modules logiciels est assurée par le système de transmission de messages. Les adresses sont utilisées par l'expéditeur de messages pour l'envoi de messages au module logiciel approprié. Selon le présent exemple de réalisation, une adresse ou identificateur de modules logiciels (référencé 'SEID' dans ce qui suit) est un mot binaire de 80 bits. Il comporte: a un identificateur d'appareil de 64 bits, mémorisé dans la ROM de l'appareil dans lequel s'exécute le module logiciel. Dans le cas d'un module téléchargé, c'est l'identificateur de l'hôte qui est utilisé. L'identificateur d'appareil est attribué au moment de la fabrication et correspond au champ EUI64 défini dans la norme IEEE 1394 - 1995. Une partie de cet identificateur d'appareil est administrée par l'organisation IEEE et est propre à chaque fabricant, I'autre est choisie par le fabricant de l'appareil lui-même, de façon à ce que chaque appareil fabriqué soit pourvu d'un identificateur différent; a un 'identificateur local constitué par un numéro d'ordre attribué directement par le système de transmission de messages d'un noeud, ce numéro étant codé sur 16 bits et concaténé avec l'identificateur d'appareil pour former l'identificateur SEID. Le système de transmission de messages maintient un compteur en ce sens. Un certain nombre de numéros d'ordre sont réservés (par exemple de 0x0000 à 0x0005) et utilisés pour identifier des modules de service particuliers. Par exemple, le numéro d'ordre 0xOO01 correspond systématiquement au module du registre d'un appareil. Ainsi, chaque module logiciel du réseau comporte un identificateur SEID distinct et unique. Il est cependant possible de définir des identificateurs uniques par des moyens autres que ceux indiqués ci-dessus. Le module du registre maintient une base de données comportant un répertoire des modules logiciels disponibles sur le réseau. Il met à disposition une interface de programmation rendant accessibles les fonctions d'enregistrement de modules logiciels et de recherche de modules suivant une 3o liste de critères. Il existe un module du registre dans chaque appareil de type FAV ou IAV. A l'intérieur d'un tel appareil, tous les modules logiciels sont enregistrés par le module du registre local. Si un module logiciel veut pouvoir être contacté, il doit s'enregistrer auprès du module du registre. Le module du registre maintient pour chaque module logiciel qui y est enregistré son adresse dans le réseau et les attributs de ce module. Selon une variante de réalisation, le module du registre comporte non pas l'adresse du module logiciel, mais son numéro d'ordre. Les attributs d'un module logiciel permettent de le caractériser. Pour chaque module logiciel, ces attributs sont stockés dans une table, comportant pour chaque attribut la référence de ce dernier sur 32 bits, sa taille en octets, ainsi que sa valeur. La table 1 donne une liste d'attributs prédéterminés: Référence d'attribut Format du Type Taille Présence Type de module logiciel entier 32 bits M Identificateur HUID chaîne d'octets 80 bits MI * Type d'appareil entier f32 bits M* Interface graphique entier 32 bits l _ Format de support champ de bits 32 bits O Format de dsupportnnées champ de bits 32 bits O Format de donnees,champ de bits 32 bits O Fabricant d'appareil chaîne de 15 octets M* caractères Fabricant de module chaîne de 15 octets logiciel caractères Version de module chaîne de 15 octets O logiciel caractères Langage de commande champ de bits 32 bits O audio-vidéo Table 1 Le type de module logiciel représente la fonction première du module. Si le module logiciel est un module de service système, alors le type de l'attribut désigne le service système lui-même. Le module du registre est un tel module de service. Si le module logiciel est un gestionnaire de contrôle de fonction FCM, le type définit la fonction: enregistreur, affichage, syntoniseur... Si le module logiciel est un gestionnaire de contrôle d'appareil DCM, le type est DCM'. Si le module logiciel possède une interface de programmation par application ('API') non compatible avec le reste du réseau, alors le type est Privé'. L'identificateur 'HUID' est un identificateur d'un l'appareil auquel est associé un gestionnaire DCM ou d'une fonction à laquelle est associée un gestionnaire FCM. Le type d'appareil associé au module logiciel est FAV, IAV, BAV ou LAV, comme déjà expliqué. Un gestionnaire DCM peut être associé à une interface utilisateur graphique. L'attribut 'Interface graphique' indique si c'est le cas, et le cas échéant quel est le degré de compatibilité de l'interface du gestionnaire DCM avec les différents niveaux d'interfaces prévus dans le réseau. L'attribut 'Format de support' indique le type de support de stockage de données qui est supporté par un appareil. Il s'agit par exemple de supports DVD, DAT, DVHS, DVC. L'attribut 'Format de données' indique le format de données manipulables par un appareil. Il s'agit par exemple de formats MPEG2, JPEG, MIDI, ASCII. Les attributs 'Fabricant d'appareil' et (Fabricant de modules logiciels') indiquent une référence respectivement du fabricant de l'appareil ou du module logiciel, tandis que l'attribut 'Version de module logiciel' indique le numéro de version d'un module. En dernier lieu, I'attribut 'Langage de commande audio/vidéo' indique les types des langages propres au module logiciel, en plus du langage de commande HAVI commun déjà évoqué. La valeur de l'attribut est un champ de bits de 32 bits, la valeur de chaque bit indiquant la compatibilité avec un langage de commande spécifique. La base de données d'un module de registre peut, selon une variante de réalisation, également comporter des attributs spécifiques ou privés'. Il est à noter que les modules des registres de différents appareils sont distincts. Il n'y a pas de registre centralisé, dans lequel tous les modules logiciels seraient répertoriés. Selon le présent exemple de réalisation, I'interface de programmation par une application d'un module du registre comporte cinq commandes, qui seront détaillées ci-dessous: (a) Enregistrement d'un module logiciel Cette commande est utilisée pour ajouter un module logiciel dans la base de données du registre local, ou pour modifier les attributs d'un module s logiciel déjà enregistré. Elle est utilisée notamment par un module logiciel pour s'enregistrer au moment du branchement de l'appareil comportant cet élément. Le module logiciel transmet son identificateur SEID et les attributs au module du registre. Si cet identificateur est déjà présent, les nouveaux attributs remplacent les anciens. Sinon, une nouvelle entrée est créée dans la io base de données locale (registre local). Le module du registre transmet un message d'état au module logiciel, suivant le résultat de l'inscription: confirmation de l'inscription ou message d'erreur. (b) Extraction d'un module logiciel Cette commande est utilisée pour lire les attributs d'un module logiciel, connaissant son identificateur SEID. Un pointeur vers une zone de la mémoire vive de l'appareil vers laquelle les données doivent être copiées est transmis avec la requête d'extraction. Si le module logiciel n'est pas présent dans la base de données locale, alors le pointeur est mis à zéro et renvoyé par le module du registre. Le module du registre renvoie également un message d'état, qui confirme la copie des attributs, ou indique que l'identificateur recherché n'est pas présent. (c) Effacer un module logiciel du registre Cette commande est utilisée pour éliminer un module logiciel de la base de données locale. Son identificateur SEID est fourni en tant que paramètre de la commande. Le module du registre renvoie un message d'état confirmant la suppression ou indiquant que le module logiciel correspondant n'a pas été trouvé. (d) Requête de liste de modules logiciels ('Requête simple') Cette commande permet de déterminer les identificateurs de modules logiciels enregistrés dans une base locale et répondant à certains critères. Selon le présent exemple de réalisation, ces critères sont la référence d'un attribut et la valeur d'un attribut. Un paramètre de la commande est également un opérateur indiquant la façon dont la comparaison entre la valeur de l'attribut spécifié dans la commande et les valeurs de la base doit se faire (égal, plus grand, plus grand ou égal, plus petit, plus petit ou égal, différent, ET' logique bit à bit, 'OU' logique bit à bit,...). Le module du registre renvoie le cas échéant la liste des identificateurs SEID des modules logiciels correspondants. Il renvoie également un message d'état indiquant le succès de l'opération (que des 0o identificateurs aient été trouvés ou non), ou son échec. (e) Effectuer une opération booléenne entre deux listes de modules logiciels ('Requête multiple') Cette commande est utilisée pour effectuer une opération booléenne sur deux listes d'identificateurs. La commande comporte en tant que paramètres les requêtes correspondant à chaque liste. Une requête peut être constituée par les critères déjà évoqués au paragraphe (d) (requête simple), ou par une autre requête multiple. Un paramètre de cette commande est également l'opérateur booléen à considérer ('ET' ou 'OU' dans le cadre du présent exemple de réalisation). Le module du registre renvoie le cas échéant la liste des identificateurs SEID, ainsi qu'un message d'état information du succès de l'opération ou de son échec, pour une raison quelconque, comme par exemple le manque de ressources. Pour accéder à d'autres modules logiciels, un module logiciel doit connaître l'identificateur SEID de ses correspondants. Pour ce qui est des modules logiciels enregistrés dans le même module du registre, ceci n'est pas un problème, les requêtes exposées précédemment permettant à chaque module logiciel d'extraire des listes d'identificateurs de la base de données locale. Un module logiciel accède au module du registre local à travers le système local de transmission de messages. Il peut également accéder à un module de registre distant, et ainsi rapatrier des identificateurs de modules enregistrés auprès d'autres modules de registres. Pour ce faire, chaque module de registre propage une requête qui lui a été transmise localement aux modules des registres de tous les autres appareils. Selon le présent exemple de réalisation, un module de registre distant pour lequel aucune réponse n'est reçue dans un intervalle de temps donné est ignoré. Chaque module du registre recevant la requête du module du registre initial effectue lui-même la recherche dans sa base de données locale et renvoie le cas échéant les identificateurs correspondant aux critères de la requête au module du registre initial. Ce dernier transmet alors la liste concaténée de tous les identificateurs reçus au module logiciel ayant lancé la l0 requête. Le module logiciel ayant lancé la requête peut alors communiquer avec les modules logiciels d'autres appareils et utiliser les ressources qui leur correspondent. La figure 3 est un diagramme d'état d'un module du registre d'un 1s appareil. Ce diagramme comporte deux états, A et B. L'état A est l'état d'attente d'une requête d'un module logiciel. L'état B est l'état d'attente d'une réponse à une requête lancée auprès des modules de registres distants par le module du registre local. La table 2 donne les événements déclenchant des actions de la part du module du registre local et les états de départ et d'arrivée correspondants. Les références des événements sont les mêmes que sur la figure 4. Evéne Signification Action Etat de Etat d'arrivée ment dpart n41 Enregistrement ou Déterminer et A A Extraction ou Effacement transmettre d'un module logiciel de réponse la base 142 Requête de liste 'simple' Déterminer et A A ou 'multiple' reçue de la!transmettre part d'un module de réponse registre distant 43 Requête de liste'simple' Déterminer A B ou 'multiple' reçue de la réponse pour part d'un module logiciel base locale et local transmettre requête aux modules de registres distants! 44 Toutes les réponses ont Déterminer et B A été reçues. transmettre réponse finale au module logiciel local La propagation des requêtes est effectuée par le module de registre. Il est rappelé que l'identificateur d'un module de registre est composé d'un identificateur du fabricant (fixé par IEEE), un identificateur de l'appareil (fixé par le fabricant) et d'un identificateur du module de registre, ce dernier étant identique pour tous les modules de registres. Pour pouvoir propager une requête, le module de registre d'un appareil recense l'ensemble des appareils du réseau, dont il obtient les io identificateurs. Il détermine ensuite parmi ces appareils ceux qui comportent également un registre. Dans le présent exemple de réalisation, il s'agit uniquement des appareils de type FAV ou IAV. Connaissant les identificateurs des appareils accessibles par le réseau, le module duregistre lit le type de chaque appareil dans la structure de données SDD mentionnée plus haut. Il t5 élimine ainsi les appareils de type BAV. La concaténation de chaque identificateur d'appareil avec l'identificateur local (numéro d'ordre) fixe commun à tous les modules de registres pour obtenir la liste des adresses complètes SEID de tous les modules de registres. Un module de registre obtient la liste des identificateurs d'appareils par l'intermédiaire du module local de gestion de bus (dit 'CMM'), qui surveille la connexion et la déconnexion d'appareils du réseau. Ce module lit la liste de tous les noeuds connectés au réseau dans un registre appelé 'TOPOLOGYMAP' défini par le document IEEE 1394- 1995, paragraphe 8.3.2.4.1. Ce registre se situe dans un appareil gestionnaire du bus (appelé 'Bus Manager' en langue anglaise dans le document IEEE cité ci- dessus) qui maintient à jour le registre relatif à la topologie du réseau. L'adresse de cet appareil est connue par les autres appareils par des moyens également décrits dans le document IEEE. La figure 4 est un diagramme indiquant le séquencement des messages lorsqu'une requête émise par un module logiciel A d'un premier appareil doit être propagée au module de registre d'un second appareil, un module logiciel B s'étant enregistré dans le registre de ce second appareil. Selon le mode de réalisation présenté ci-dessus, une requête émise par un module logiciel en vue de déterminer l'ensemble des modules logiciels non locaux est propagée à tous les modules de registres distants. Selon une variante de réalisation, ce type de requête peut également être limité à un groupe de modules de registres distants, par exemple ceux d'un type d'appareil particulier. Revendications 1. Procédé de gestion distribuée d'un catalogue d'objets dans un réseau de communication comportant des appareils caractérisé en ce qu'il comporte les étapes: - d'enregistrement d'objets locaux présents dans un appareil dans un registre local géré au niveau de cet appareil, - de propagation d'une requête de liste d'objets lancée par un objet io local à des registres non locaux gérés par d'autres appareils du réseau, - de collecte des réponses des registres non locaux et de la réponse du registre local et de - transmission des réponses collectées à l'objet ayant lancé la requête. 2. Procédé selon la revendication 1, caractérisé en ce que chaque objet possède une adresse (SEID) composée d'un identificateur d'un appareil dans lequel il est présent, cet identificateur étant unique dans le réseau, ainsi que d'un identificateur local unique à cet objet dans ledit appareil. 3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce qu'un registre local comporte pour chaque objet qui y est enregistré l'adresse de cet objet dans le réseau, ainsi que des attributs dudit objet. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape de propagation d'une requête comporte l'étape de détermination des appareils connectés au réseau comportant eux-mêmes un registre local, et de transmission de la requête aux registres de ces appareils. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'une requête n'est propagée qu'à un groupe déterminé de registres distants. 6. Appareil dans un réseau de communication comportant: - des moyens de mémorisation (3, 4) d'objets locaux (21 à 28), - des moyens de mémorisation (3) d'un registre local (26) apte à contenir un catalogue des objets locaux, - des moyens (31) de connexion au réseau, - des moyens de transmission de messages d'un objet local vers un autre objet et de propagation d'une requête d'une liste d'objets vers des registres non locaux. 7. Appareil selon la revendication 6, caractérisé en ce que chaque objet possède une adresse unique dans le réseau (SEID), une requête de liste d'objets visant à établir une liste d'adresses d'objets répondant à des critères déterminés. 8. Appareil selon l'une des revendications 6 ou 7, caractérisé en ce que le réseau de communication comporte un bus IEEE 1394.