Brevet FR2827726A1 — publié le 20030124

Prise en compte d'informations relatives à l'environnement des noeuds actifs pour la détermination du code associé à une application active La présente invention est relative aux réseaux de télécommunication dont les noeuds sont capables de traiter de façon spécifique, les messages d'information qu'ils reçoivent. L'invention s'applique particulièrement aux réseaux actifs. Ce concept de réseau actif a été introduit par les travaux du DARPA en 1994 et a fait l'objet de plusieurs conférences internationales, par exemple IWAN 99 (international Workshop on Active Networks) ou IWAN 2000. Un réseau actif est un réseau dans lequel les n#uds, ou certains d'entre eux, sont capables de traiter d'une façon spécifique, certains messages véhiculés par le réseau. Autrement dit, cela signifie que ces n#uds doivent être capables de dérouler un algorithme autre que ceux qu'ils connaissaient lors de leur conception. Au sein d'un réseau actif, tous les n#uds ne sont pas obligatoirement pourvus de cette capacité de traitement : on distingue donc des n#uds actifs de noeuds non actifs (c'est-à-dire normaux). De la même façon, tous les messages ne nécessitent pas forcément un traitement spécifique : on distingue donc les messages (ou paquets) actifs des messages non-actifs (ou normaux). De façon connue en soi, un message actif peut contenir un identificateur d'une application active. A la réception d'un message actif, un routeur actif peut exécuter le code associé à cette application active. Toutefois, un n#ud actif possède des ressources de stockage limitées, tandis que le nombre d'applications actives n'est a priori pas limité. Aussi, une solution de l'état de l'art consiste à fournir un serveur d'applications actives : A la réception d'un message actif, le n#ud actif contacte alors le serveur d'applications actives afin de télécharger le code correspondant à l'application active identifiée par le message actif. Toutefois, cette solution de l'état de l'art est insuffisante car elle suppose qu'il n'y ait qu'un seul code possible correspondant à une application active. Or le Demandeur a remarqué qu'une même application active pourrait donner lieu à différents codes en fonction de spécificités du noeud actif. Par exemple, les différents n#uds actifs d'un réseau actif peuvent posséder des environnements d'exécutions différents. C'est typiquement le cas lorsque ceux-ci proviennent de fournisseurs différents ou/et lorsqu'ils mettent en oeuvre des systèmes d'exploitation différents (système d'exploitation spécifique au fournisseur, système d'exploitation de type Unix etc.) Un autre exemple est la fonction du noeud actif. Un cas classique est la distinction entre les routeurs internes (Core Router selon la terminologie en langue anglaise consacrée) et les routeurs frontières (Edge Router). Le but de la présente invention est de permettre de prendre en compte des spécificités du n#ud actif lors de la détermination du code correspondant à une application active. Pour ce faire, l'invention a pour premier objet un n#ud comportant un moyen pour recevoir un message actif, ce message actif contenant un identificateur d'application active, un moyen pour transmettre l'identificateur d'application active vers un serveur d'applications actives et un moyen pour recevoir du serveur d'applications actives et exécuter un code associé. Ce n#ud se caractérise en ce qu'il comporte en outre un moyen pour transmettre au serveur d'applications actives des informations relatives à son environnement. L'invention a pour deuxième objet un serveur d'applications actives comportant un moyen pour recevoir un identificateur d'application active provenant d'un n#ud actif, un moyen d'association pour déterminer un code associé dépendant de l'identificateur d'application active, et un moyen pour télécharger ce code associé vers le n#ud actif. Ce serveur d'applications actives se caractérise en ce qu'il comporte en outre un moyen pour recevoir des informations relatives à l'environnement du n#ud actif et en ce que le moyen d'association détermine le code associé en fonction de ces informations. Enfin, l'invention a pour troisième objet un procédé de transmission d'un message actif par un noeud actif consistant à : # Recevoir le message actif, le message actif contenant un identificateur d'application active, # Transmettre un message de requête à un serveur d'applications actives (S), contenant cet identificateur d'application active, # Déterminer, par le serveur d'applications actives, d'un code associé, en fonction de l'identificateur d'application active, # Télécharger ce code associé vers le n#ud actif, # Exécution du code associé et transmission du message actif vers un noeud actif suivant. Ce procédé se caractérise en ce que le message de requête contient de surcroît des informations relatives à l'environnement du n#ud actif, et en ce que la détermination du code associé est faite en fonction de ces informations. Selon une mise en #uvre de l'invention, les informations relatives à l'environnement comprennent un identificateur de l'environnement d'exécution du noeud actif. Selon une mise en #uvre de l'invention, les informations relatives à l'environnement comprennent un identificateur de la caractéristique d'intériorité du n#ud actif. Selon une mise en #uvre de l'invention, le message de requête est conforme au protocole HTTP. L'invention et ses avantages apparaîtront de façon plus claire dans la description de mises en #uvre qui va suivre, en liaison avec les figures jointes. La figure 1 illustre une première mise en #uvre de l'invention. La figure 2 schématise le moyen d'association dans le cas de cette première mise en #uvre. La figure 3 représente une deuxième mise en #uvre de l'invention. La figure 4 schématise le moyen d'association dans le cas de cette deuxième mise en #uvre. La figure 1 montre un réseau actif AN composé de n#uds actifs R1, R2, R3... Rn. Un message actif est reçu par ce réseau et transmis au sein des noeuds actifs de ce réseau. Ce n#ud actif contient l'identificateur d'une application active. A la réception du message actif, le noeud actif R, transmet à un serveur d'applications actives S un message de requête Req, contenant l'identificateur d'application active. Il transmet en outre des informations relatives à son environnement. Selon cette mise en #uvre, ces informations peuvent comprendre un identificateur de l'environnement d'exécution associé : système d'exploitation, modules supplémentaires disponibles, fournisseur du n#ud actif... Le serveur d'applications S possède un moyen pour recevoir ces deux types d'identificateurs ainsi qu'un moyen d'association entre des identificateurs d'applications actives, des informations relatives à l'environnement des noeuds actifs et un code associé. Ce moyen d'association peut prendre la forme d'une table de correspondance ainsi qu'illustré par la figure 2. Dans la table de correspondance T, la colonne de gauche représente les identificateurs d'application A1, A2, A3... Ap. La colonne du milieu contient des informations relatives aux n#uds actifs. Dans ce mode de réalisation, on n'a représenté que le fournisseur de noeud actif, pour la clarté de l'exposé. Deux fournisseurs F, et F2 sont présentés. La colonne de droite représente le code associé. Il peut par exemple s'agir d'un pointeur vers un espace mémoire contenant ce code. Ainsi, si le message actif contient l'identificateur d'application A2 et que le noeud actif R, provient du fournisseur F1, alors le code associé est le code C21. Ce code associé C21 est alors téléchargé vers le n#ud actif R1 où il peut être exécuté. Le message actif peut alors être transmis au noeud R2. On suppose que ce noeud actif provient du fournisseur F2. A la réception du message actif, le n#ud actif transmet alors un message de requête Req2 comprenant d'une part un identificateur de ce fournisseur F2 et l'identificateur de l'application active A2. Le serveur d'applications actives S peut alors déterminer, grâce au moyen d'association T représenté sur la figure 2, que le code a télécharger est le code C22. Le noeud R2 peut alors exécuter ce code C22 qui lui est adapté. La figure 3 représente une deuxième mise en oeuvre de l'invention. Le réseau actif AN est composé de n#uds actifs R1, R2, R3... Rn. Les noeuds actifs R, et R3 sont des n#uds frontières (Edge routers) tandis que les noeuds R2 et Rn sont des n#uds internes (Core Router). Les n#uds frontières peuvent communiquer avec l'extérieur du réseau AN tandis que les n#uds internes ne communiquent qu'avec des noeuds du réseau actif. Cette différence peut influer sur l'architecture de ces différents types de noeuds : # Les n#uds internes sont plus spécifiquement dédiés au routage de messages et possèdent des capacités matérielles de routage accrues au détriment des capacités logicielles. # Au contraire, les n#uds frontières possèdent des capacités logicielles plus importantes car ils doivent généralement mettre en #uvre davantage de fonctions (contrôle d'accès etc.) Lorsqu'un message actif est reçu par un routeur frontière, par exemple R1, celui transmet d'une part l'identificateur d'application active qu'il contient et d'autre part des informations relatives à son environnement, c'est- à-dire, dans cette mise en #uvre de l'invention un identificateur de la caractéristique d'intériorité du n#ud actif concerné. Ainsi, lorsque le n#ud actif R, reçoit un message actif, il transmet à un serveur d'applications actives S, via un message de requête Req1, d'une part un identificateur de l'application active contenu dans le message actif reçu, et d'autre part identificateur de la caractéristique d'intériorité du n#ud actif concerné. Le serveur d'applications actives S dispose de moyens pour recevoir ces deux types d'identificateurs, ainsi que d'un moyen d'association destiné à déterminer un code associé dépendant de ces deux identificateurs. Une mise en #uvre possible de ce moyen d'association est représentée sur la figure 4. Selon cette mise en #uvre, le moyen d'association est une table de correspondance T. La première colonne représente l'identificateur de l'application active ; Sa valeur est ici A ou A2. La deuxième colonne représente la fonction n#ud interne/ n#ud frontière ; Elle ne peut prendre que deux valeurs : F pour Frontière et Int pour Interne . Enfin, la troisième colonne représente le code associé, C1F, C1Int, C2F et C2Int. Si le message actif reçu par R, contient l'identificateur de l'application active A2, le n#ud actif R1 transmet au serveur d'applications actives S un message de requête Req1 contenant d'une part cet identificateur d'application active A2 et d'autre part l'identificateur de sa caractéristique d'intériorité valant ici F . Le serveur d'applications actives S, grâce au moyen d'association T, peut alors déterminer que le code associé est le code C2F. Ce code C2F peut alors être téléchargé vers le noeud actif demandeur R1 pour y être exécuté. Le n#ud actif R, peut alors transmettre le message actif au n#ud actif R2 qui est un n#ud interne (i. e. qui ne possède pas de liens de communication avec des n#uds situés en dehors du réseau actif considéré). Comme précédemment, à la réception du message actif, le n#ud actif R2 transmet un message de requête Req2 au serveur d'applications actives S, contenant d'une part un identificateur d'application active A2 et d'autre part un identificateur de sa caractéristique d'intériorité qui, dans son cas, vaut Int . Comme précédemment, le serveur d'applications actives S peut, grâce à son moyen d'association T, déterminer que le code associé est le code C2Int. Le code C2Int est alors téléchargé vers le n#ud actif demandeur R2. Ce n#ud actif R2 peut alors l'exécuter et transmettre le message actif au n#ud suivant, par exemple au n#ud actif R3. L'invention ne saurait se limiter aux modes de réalisation précédemment décrits mais peut s'appliquer à toute sorte d'informations relatives à l'environnement des n#uds actifs. Notamment, l'invention s'applique à la combinaison de plusieurs types d'informations relatives à l'environnement des n#uds actifs. Par exemple, les n#uds actifs peuvent transmettre à la fois un identificateur du fournisseur et un identificateur de la caractéristique d'intériorité du noeud actif concerné. Selon un mode de réalisation particulier, la communication entre les noeuds actifs et le serveur d'applications actives, c'est-à-dire les messages de requêtes Req1 et Req2, se fait conformément au protocole HTTP (HyperText Transfer Protocol). Dans ce mode de réalisation, les informations sur l'environnement du noeud actif sont transmises au serveur d'applications actives selon l'une des méthodes conformes au protocole HTTP, et le code actif correspondant est retourné de manière conforme à ce même protocole HTTP. La présente invention ne saurait toutefois se limiter à ce mode de réalisation et est susceptible d'être mise en #uvre en utilisant n'importe quel autre protocole de communication et d'échange de données. Ce peut être un protocole applicatif comme FTP (File Transfer Protocol) ou non (communication par sockets...). Il peut aussi s'agir d'un protocole sécurisé tel SSL (Secure Socket Layer). REVENDICATIONS 1) N#ud actif (R,, R2... Rn) comportant un moyen pour recevoir un message actif, ledit message actif contenant un identificateur d'application active (A1, A2), un moyen pour transmettre ledit identificateur d'application active vers un serveur d'applications actives (S) et un moyen pour recevoir dudit serveur d'applications actives et exécuter un code associé (C,,, C12, C2,...), caractérisé en ce qu'il comporte en outre un moyen pour transmettre audit serveur d'applications actives des informations relatives à son environnement (F1, F2, Int, F). 2) Noeud actif selon la revendication précédente, dans lequel lesdites informations relatives à l'environnement comprennent un identificateur de l'environnement d'exécution (F1, F2) dudit n#ud actif. 3) N#ud actif selon l'une des revendications 1 ou 2, dans lequel lesdites informations relatives à l'environnement comprennent un identificateur de la caractéristique d'intériorité (F, Int) dudit noeud actif. 4) Serveur d'applications actives (S) comportant un moyen pour recevoir un identificateur d'application active [Au A2) provenant d'un n#ud actif (R1, R2... Rn), un moyen d'association (T) pour déterminer un code associé (C11, C12...) dépendant dudit identificateur d'application active, et un moyen pour télécharger ledit code associé vers ledit n#ud actif, caractérisé en ce ~qu'il comporte en outre un moyen pour recevoir des informations relatives à l'environnement (F1, F2, Int, F) dudit n#ud actif et en ce que ledit moyen d'association détermine ledit code associé en fonction desdites informations. 5) Serveur d'applications actives selon la revendication précédente, dans lequel lesdites informations relatives à l'environnement comprennent un identificateur de l'environnement d'exécution dudit noeud actif. 6) Serveur d'applications actives selon l'une des revendications 4 ou 5, dans lequel lesdites informations relatives à l'environnement comprennent un identificateur de la caractéristique d'intériorité dudit n#ud actif. 7) Procédé de transmission d'un message actif par un n#ud actif (R1, R2... Rn) consistant à : # Recevoir ledit message actif, ledit message actif contenant un identificateur d'application active (A,, A2), # Transmettre un message de requête (Req, Req2) à un serveur d'applications actives (S), contenant ledit identificateur d'application active, # Déterminer, par ledit serveur d'applications actives, d'un code associé (Clli C,2, CUnt...), en fonction dudit identificateur d'application active, # Télécharger ledit code associé vers ledit noeud actif, # Exécution dudit code associé et transmission du message actif vers un noeud actif suivant, caractérisé en ce que ledit message de requête contient de surcroît des informations relatives à l'environnement (F1, F2, Int, F) dudit noeud actif, et en ce que la détermination du code associé est faite en fonction desdites informations. 8) Procédé selon la revendication précédente, dans lequel lesdites informations relatives à l'environnement comprennent un identificateur de l'environnement d'exécution dudit n#ud actif. 9) Procédé selon l'une des revendications 7 ou 8, dans lequel lesdites informations relatives à l'environnement comprennent un identificateur de la caractéristique d'intériorité dudit noeud actif. 10) Procédé selon l'une des revendications 7 à 9, dans lequel ledit message de requête est conforme au protocole HTTP.