Brevet FR2826749A1 — publié le 20030103

La présente invention concerne d'une manière générale la description d'une interface applicable à un objet informatique dans un langage de balisage. Dans un système orienté objet (en anglais"object oriented system"), l'objet informatique est un élément comprenant des données, également appelé attributs, et des fonctions (en anglais"Functions"ou"Method") utilisant éventuellement des paramètres ou arguments ("input arguments"en anglais). De manière classique, ces fonctions peuvent être appelées ou invoquées (en anglais"invoked") pour manipuler les données de l'objet. Une interface est un ensemble de fonctions applicables à un objet. Un langage de balisage connu sera plus particulièrement considéré dans la suite. Il s'agit du langage XML (d'après l'anglais Extended Markup Language ). Ce langage est défini par une norme, dite norme XML dont une description peut être trouvée via internet à l'adresse : http : //www. w3. orq/TR/2000/REC-xml-20001006). La norme XML définit une syntaxe permettant de structurer des documents à l'aide de balises délimitées par les signes (exemple : ). Ces balises sont regroupées par paires de balises ouvrantes ( ) et fermantes ( ). Une balise XML est un élément constitué par une balise ouvrante, la balise fermante correspondante et l'ensemble du contenu délimité par ces balises. Ce contenu est composé d'autres éléments et/ou de texte pur. Une balise sans contenu peut être représentée par une balise vide ( ). Un document XML est constitué d'un élément principal. Un langage de schéma XML permet de décrire un langage XML. Il existe plusieurs langages de schéma XML. Un exemple de langage de schéma XML est décrit dans la norme XML Schema , dont la version du 2 mai 2001 est disponible via internet à l'adresse suivante http : //www. w3. org/TR/2001/xmlschema-1. Un document écrit dans un langage de schéma XML est couramment appelé schéma XML. Un schéma XML décrit la structure d'un ensemble de document XML. Un schéma XML est la description des balises autorisées dans un document conforme à ce langage XML et de leurs imbrications possibles. Un document XML respectant la structure définie par un schéma XML est dit valide par rapport à ce schéma XML. Dans ce contexte, la demande de brevet français n 99 08155 déposée par la demanderesse décrit un procédé d'exécution à distance d'une fonction sur un objet informatique dans un réseau de communication. Plus particulièrement, ce document propose une méthode de description des interfaces d'un objet basée sur un langage XML. Le langage XML utilisé est spécifique à cette application et n'offre qu'un ensemble limité de types possibles pour les paramètres d'entrée et de sortie des fonctions. D'autre part, une spécification écrite par les sociétés IBM et Microsoft, appelée WSDL (d'après l'anglais Web Services Description Langage) propose une méthode de description de services utilisant la syntaxe XML. Un service est caractérisé par la description du document qu'il reçoit en entrée et du document qu'il produit en sortie. Ces documents sont des documents XML dont la structure peut être classiquement décrite par des schémas XML. Il est à noter que cette spécification n'utilise pas la notion d'objet. Le langage de schéma XML est utilisé selon sa fonction connue, c'est-à-dire pour décrire la structure de documents XML. Dans le cadre de cette spécification, les documents décrits sont les documents traités et produits par un service. Par ailleurs, le brevet américain US 6 125 391 décrit l'utilisation de documents pour réaliser des transactions entre partenaires commerciaux via un réseau. De manière similaire à la spécification WSDL, une transaction est décrite par ses documents d'entrée et de sortie. Là encore, la notion d'objet n'est pas utilisée et le langage de schéma XML est utilisé selon sa fonction connue, c'est-à-dire pour décrire la structure de documents XML. La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un procédé et un dispositif de description d'une fonction applicable à un objet informatique. A cette fin, l'invention propose un procédé de description d'une fonction applicable à un objet informatique, la fonction étant appelable dans un premier langage de balisage, la fonction étant initialement exprimée dans un langage de programmation prédéterminé différent du premier langage de balisage, caractérisé en ce qu'il comporte les étapes de : - définition d'une première balise décrivant la fonction, dans le premier langage de balisage, - définition de deuxièmes balises décrivant les arguments de la fonction, ces balises étant contenues dans la première balise décrivant la fonction et les types des arguments étant exprimés dans un second langage de balisage, et, si la fonction produit un résultat, - définition d'une troisième balise décrivant le résultat de la fonction, cette balise étant contenue dans la première balise décrivant la fonction et le type du résultat étant exprimé dans le second langage de balisage. Corrélativement, l'invention concerne un dispositif de description d'une fonction applicable à un objet informatique, la fonction étant appelable dans un premier langage de balisage, la fonction étant initialement exprimée dans un langage de programmation prédéterminé différent du premier langage de balisage, caractérisé en ce qu'il comporte : - des moyens de définition d'une première balise décrivant la fonction, dans le premier langage de balisage, - des moyens de définition de deuxièmes balises décrivant les arguments de la fonction, ces balises étant contenues dans la première balise décrivant la fonction et les types des arguments étant exprimés dans un second langage de balisage, et, si la fonction produit un résultat, - des moyens de définition d'une troisième balise décrivant le résultat de la fonction, cette balise étant contenue dans la première balise décrivant la fonction et le type du résultat étant exprimé dans le second langage de balisage. Grâce à l'invention, un unique interpréteur capable de traiter le langage de balisage est nécessaire pour traiter une interface. En outre, une interface est facilement lisible par un utilisateur tout en offrant une grande variété de types possibles. En particulier lorsque le premier langage de balisage est un langage XML et le second langage de balisage est un langage de schéma XML associé au langage XML, la partie typage des schémas XML est conservée. Enfin, il n'est pas nécessaire d'avoir un processeur complexe pour traiter une interface selon l'invention. Par exemple, l'invention peut être utilisée sur un agenda communiquant, dit PDA, ou un téléphone portable. Selon des caractéristiques préférées alternatives - le second langage de balisage est un langage de schéma associé au premier langage de balisage, ou - le second langage de balisage est un langage de balisage qui permet de construire des types complexes par agrégation de types simples prédéfinis. Le second langage procure ainsi soit les avantages d'un langage de schéma, soit une mise en oeuvre encore plus simple dans laquelle seuls de nouveau types complexes peuvent être créés. Selon une caractéristique préférée, la troisième balise est différenciée des deuxièmes balises par un attribut ayant une valeur spécifique. Ainsi, un résultat est facilement identifiable. Selon une autre caractéristique préférée, au moins une fonction faisant partie d'une interface, l'interface est mémorisée dans le langage de balisage et dans le langage de programmation. Le dispositif de description comporte des moyens de mises en oeuvre des caractéristiques précédentes. L'invention concerne aussi un procédé d'obtention, par un terminal client, d'une interface d'un objet, ladite interface comportant au moins une fonction décrite par le procédé présenté ci-dessus, caractérisé en ce qu'il comporte la traduction de ladite interface dans un langage de programmation différent du langage de balisage. Selon une caractéristique préférée, le procédé d'obtention comporte la mémorisation de l'interface dans le langage de balisage et dans le langage de programmation. L'invention concerne aussi un dispositif d'obtention comportant des moyens de mises en oeuvre des caractéristiques précédentes. Selon une caractéristique préférée, le langage de balisage est un langage XML et le langage de schéma associé est le langage de schéma XML décrit par la norme XML Schema . Le dispositif de description, le procédé et le dispositif d'obtention présentent des avantages analogues à ceux précédemment présentés. L'invention concerne aussi un ordinateur incluant le dispositif selon l'invention, ou des moyens de mise en oeuvre du procédé selon l'invention. Les avantages de l'ordinateur sont identiques à ceux précédemment exposés. Un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé selon l'invention. Un programme d'ordinateur lisible par un microprocesseur et comportant une ou plusieurs séquence d'instructions est apte à mettre en oeuvre les procédés selon l'invention. Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels : - la figure 1 est un mode de réalisation d'un dispositif mettant en oeuvre l'invention, - la figure 2 représente un réseau d'ordinateurs mettant en oeuvre l'invention, -la figure 3 est une représentation schématique des relations entre des documents, selon l'invention, - la figure 4 représente des exemples de documents utilisés selon l'invention, -les figures 5 et 6 représentent des tableaux mémorisés dans un ordinateur serveur, selon l'invention, - la figure 7 représente un mode de réalisation de procédé selon l'invention, - la figure 8 représente un mode de réalisation de procédé de génération d'une représentation d'un type de données en schéma XML, - la figure 9 représente un tableau mémorisé dans un ordinateur client, selon l'invention, - la figure 10 représente un mode de réalisation de procédé d'obtention des interfaces d'un objet par un ordinateur client. Selon le mode de réalisation choisi et représenté à la figure 1, un dispositif mettant en oeuvre l'invention est par exemple un micro-ordinateur 1 connecté à différents périphériques. Cet ordinateur peut être un client ou un serveur, dans le cadre de l'invention. Le dispositif 1 comporte une carte réseau 107 reliée à un réseau 4 apte à transmettre des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 1 comporte également un moyen de stockage 104 tel que par exemple un disque dur. Il comporte aussi un lecteur 105 de disque 2. Ce disque 2 peut être une disquette, un CD-ROM, ou un DVD-ROM, par exemple. Le disque 2 comme le disque dur 104 peuvent contenir des données traitées selon l'invention ainsi que le ou les programmes mettant en oeuvre l'invention qui, une fois lu par le dispositif 1, sera stocké dans le disque dur 104. Selon une variante, le programme permettant au dispositif de mettre en oeuvre l'invention, pourra être stocké en mémoire morte 102 (appelée ROM sur le dessin). En seconde variante, le programme pourra être reçu pour être stocké de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 4. Le dispositif 1 comporte un lecteur de carte 106 capable de lire une carte 3. Ce même dispositif possède une carte graphique 108 à laquelle sont reliés un écran 5 et un dispositif vidéo 6, tel qu'un magnétoscope ou une caméra, par exemple. Le dispositif 1 possède une carte d'entrée/sortie 109 à laquelle sont reliés par exemple un clavier 7, une souris 8, un appareil photographique 9, une imprimante 10. Le dispositif 1 possède une carte audio 110 à laquelle est relié un dispositif audio 11, tel qu'un microphone par exemple. L'unité centrale 100 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 102 ou dans les autres éléments de stockage. Lors de la mise sous tension, les programmes de traitement stockés dans une mémoire non volatile, par exemple la ROM 102, sont transférés dans la mémoire vive RAM 103 qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé selon l'invention. Le bus de communication 101 permet la communication entre les différents éléments inclus dans le micro-ordinateur 10 ou reliés à lui. La représentation du bus 101 n'est pas limitative et notamment l'unité centrale 100 est susceptible de communiquer des instructions à tout élément du microordinateur 1 directement ou par l'intermédiaire d'un autre élément du microordinateur 1. Selon l'invention, lorsque le dispositif est dans un terminal serveur, il comporte pour la description d'une fonction applicable à un objet informatique, la fonction étant appelable dans un premier langage de balisage, la fonction étant initialement exprimée dans un langage de programmation prédéterminé différent du premier langage de balisage, - des moyens de définition d'une première balise décrivant la fonction, dans le premier langage de balisage, - des moyens de définition de deuxièmes balises décrivant les arguments de la fonction, ces balises étant contenues dans la première balise décrivant la fonction et les types des arguments étant exprimés dans un second langage de balisage, et, si la fonction produit un résultat, - des moyens de définition d'une troisième balise décrivant le résultat de la fonction, cette balise étant contenue dans la première balise décrivant la fonction et le type du résultat étant exprimé dans le second langage de balisage. Selon l'invention, lorsque le dispositif est dans un terminal client, il comporte pour l'obtention, par un terminal client, d'une interface d'un objet, des moyens de traduction de ladite interface dans un langage de programmation différent du langage de balisage. Le fonctionnement de l'ordinateur dans le cadre de l'invention est exposé dans la suite. L'invention concerne aussi un programme d'ordinateur adapté à mettre en oeuvre l'invention. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable pour implémenter un procédé selon l'invention. Le programme d'ordinateur est dans ou sur un support d'information qui peut être n'importe quelle entité ou dispositif capable de stocker le programme. En référence à la figure 2, trois ordinateurs C200, C201 et C202 conformes à l'ordinateur décrit en référence à la figure 1 fournissent des services par l'intermédiaire des objets 0200,0201, 0202,0203 et 0204. La liste et les caractéristiques des fonctions applicables aux objets sont décrits par les interfaces 1200, 1201 et 1203. Un objet réfère aux interfaces qui décrivent les fonctions qui lui sont applicables. Un objet peut référer à une seule interface, par exemple l'objet 0200 ne réfère qu'à l'interface 1200. Un objet peut également référer à plusieurs interfaces, par exemple l'objet 0201 réfère aux interface 1200 et 1201. Un objet peut référer à une interface présente sur le même ordinateur ou sur un ordinateur distant. En référence à la figure 3, un objet est décrit par un document 300 écrit en un langage de balisage, par exemple un langage XML. Le document 300 est ici un document XML. Le document 300 réfère à un document représentant une interface 301. Selon l'invention, le document 301 est écrit dans le langage de balisage, mais un typage issu d'un langage de schéma associé au langage de balisage utilisé est introduit pour définir le type des arguments et du résultat des fonctions. Un appel de fonction applicable à l'objet représenté par le document XML 300 est représenté par un document XML 302. Lorsque l'appel de fonction produit un résultat, ce dernier est représenté par un document XML 303. La figure 4 représente des exemples de documents XML utilisés par l'invention. Le document 400 est la description d'un objet nommé image. Cet objet contient une référence vers son interface, sous la forme d'un attribut (interface="http : //www. crf. canon. fr/imagelnterface. xsd") de l'élément principal (image). La valeur de cet attribut est l'URI (d'après l'anglais Universal Resource Identifier) de l'interface. En extrayant cette URI de la définition de l'objet, il est possible d'obtenir par une connexion via le réseau Internet la description de l'interface de l'objet. Si les fonctions applicables à l'objet sont décrites par plusieurs interfaces, l'attribut interface aura pour valeur la liste des URI de ces interfaces. Par exemple : interface="http : //www. crf. canon. fr/image 1 nterface. xsd http : //www. crf. canon. fr/printi nq 1 nterface. xsd"). L'interface référencée par l'objet (à l'URI http : //www. crf. canon. fr/imagelnterface. xsd) est décrite par le document XML 410. Les parties 411,412 et 413 correspondent respectivement aux descriptions de trois fonctions appelées getDimension , setDimension et rotate . Comme le représente le document 410, une interface est définie par une balise nommée interface et comportant deux attributs : - name pour définir le nom de l'interface, et - href pour définir l'URI de l'interface. Comme représenté par les parties 411,412 et 413 du document 410, une fonction est définie par une balise. Le nom de cette balise est le nom de la fonction et elle se trouve à l'intérieur de la balise décrivant l'interface. Un argument d'une fonction est décrit par une balise dont le nom est le nom de l'argument et qui est à l'intérieur de la balise décrivant la fonction. Ainsi, la partie 412 du document 410 décrit une fonction setDimension ayant un argument dimension , et la partie 413 du document 410 décrit une fonction rotate ayant un argument angle . Si un argument a un type prédéfini dans le langage de schéma XML, ce type est spécifié en ajoutant un attribut à la balise décrivant cet argument. Par exemple, dans la partie 413 du document 410, le type de l'argument angle est le type entier et est spécifié par l'attribut type="xs : integer" . Sinon, une définition de type est ajoutée à l'intérieur de la balise définissant l'argument. Cette définition fait partie du typage d'un langage de schéma XML. Par exemple, dans la partie 412 du document 410, le type de l'argument dimension est un type complexe. Si une fonction produit un résultat, celui-ci est défini de la même manière qu'un argument. Un attribut out="true" est ajouté à la balise de définition du résultat pour indiquer que cette balise correspond à un résultat et non à un argument. C'est le cas pour la fonction getDimension de la partie 411 du document 410 dont le résultat est dimension . Les documents 420 et 430 correspondent à un appel et un résultat de la fonction nommée getDimension décrite dans la partie 411 du document 410. Le document 440 correspond quant à lui à un appel de la fonction nommée rotate décrite dans la partie 413 du document 410. La figure 5 représente un tableau T mémorisé dans la mémoire RAM 103 d'un ordinateur serveur, par exemple l'ordinateur C200 (figure 2). Le tableau T contient les associations entre objets et interfaces. La première colonne T500 du tableau T comporte les URI sous lesquelles sont respectivement publiés les objets. La deuxième colonne T501 comporte des références respectives aux objets publiés. Une référence pointe sur la représentation interne d'un objet dans la RAM 103 de l'ordinateur C200. La troisième colonne T502 comporte les URI des interfaces décrivant respectivement les fonctions applicables aux objets. Ainsi, une ligne du tableau T comporte l'URI sous laquelle est publié un objet, une référence à l'objet publié et l'URI d'une interface décrivant les fonctions applicables à l'objet. Si les fonctions applicables à un objet sont décrites par plusieurs interfaces, le tableau T comporte autant de lignes mettant respectivement en relation cet objet et chacune de ses interfaces. La figure 6 représente un tableau T'mémorisé dans la mémoire RAM 103 d'un ordinateur serveur par exemple l'ordinateur C200 (figure 2). Le tableau T contient les associations entre les interfaces et leur représentation en langage XML. La première colonne T'500 du tableau T'comporte les URI sous lesquelles sont respectivement publiées les interfaces. Il est à noter que ces URI se retrouvent dans la colonne T502 du tableau T. La deuxième colonne T'501 comporte les représentations en langage XML respectives de chaque interface sous forme de fichier texte. La troisième colonne T502 comporte les représentations internes des interfaces, par exemple en langage C ou C++. Ainsi, une ligne du tableau T'comporte l'URI sous laquelle est publiée une interface, la représentation en langage XML de cette interface et la représentation interne de l'interface. La figure 7 représente un mode de réalisation de description d'une interface dans un langage de balisage, selon l'invention. Ce procédé est mis en oeuvre dans un serveur et comporte des étapes E1 à E12. Le procédé est réalisé sous la forme d'un algorithme qui peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). Comme précisé plus haut, le langage de balisage est plus particulièrement le langage XML et un langage de schéma qui lui est associé est le langage de schéma XML. L'étape E1 est l'obtention de l'interface à décrire, par exemple par lecture en mémoire. L'interface est un ensemble de fonctions pouvant être appliquées à un objet informatique. L'interface est exprimée dans un langage de programmation prédéterminé, connu, différent du langage XML et quelconque, par exemple en langage C ou C++. Les fonctions de l'interface sont maintenant considérées successivement. L'étape suivante E2 est la sélection d'une première fonction. L'étape suivante E3 est la création d'une définition vide de la fonction courante. Cette définition est exprimée en langage XML, sous la forme d'une balise : Le nom de la balise est le nom de la fonction courante, par exemple ici la fonction getWidth . L'étape suivante E4 est un test pour déterminer si la fonction courante possède au moins un argument. Lorsque la réponse est positive, alors cette étape est suivie de l'étape E5 qui est la sélection d'un premier argument de la fonction courante. A l'étape suivante E6, une définition de l'argument courant est créée en langage de schéma XML en ajoutant une balise dont le nom est celui de l'argument courant à l'intérieur de la balise créée à l'étape E3. Si le type de l'argument est prédéfini dans le langage de schéma XML, un attribut : =ÇT 1 v type="..." est ajouté à la balise définissant l'argument courant et il n'est pas fait appel à l'algorithme de la figure 8. Dans le cas contraire, la définition du type est construite comme exposé dans la suite en référence à la figure 8 et est insérée dans la balise définissant l'argument courant. L'étape suivante E7 est un test pour déterminer s'il reste au moins un argument de la fonction courante à traiter. Lorsque la réponse est positive, l'étape E7 est suivie de l'étape E8 à laquelle un argument suivant est considéré. L'étape E8 est suivie de l'étape E6 précédemment décrite. Lorsque la réponse est négative à l'étape E7, c'est-à-dire il n'y a plus d'argument à considérer, l'étape E6 est suivie de l'étape E9. De même, lorsque la réponse est négative à l'étape E4, cette étape est suivie de l'étape E9. L'étape E9 est un test pour vérifier si l'appel de la fonction courante produit un résultat. Lorsque la réponse est positive, alors cette étape est suivie de l'étape E10 à laquelle une définition du résultat est créée en langage de schéma XML en ajoutant une balise dont le nom est celui du résultat à l'intérieur de la balise définissant la fonction courante. A cette balise est ajouté un attribut out="true" pour signifier qu'elle correspond à un résultat et non à un argument. Si le type du résultat est prédéfini dans le langage de schéma XML, un attribut : type="..." est ajouté à la balise définissant le résultat et il n'est pas fait appel à l'algorithme de la figure 8. Dans le cas contraire, on construit la définition du type comme exposé dans la suite en référence à la figure 8 et on l'ajoute à l'intérieur de la balise définissant le résultat. L'étape suivante E11 est un test pour déterminer s'il reste au moins une fonction à traiter. Lorsque la réponse est positive,l'étape EU est suivie de l'étape E12 à laquelle une fonction suivante est considérée. L'étape E12 est suivie de l'étape E3 précédemment décrite. Lorsque la réponse est négative à l'étape E9, c'est-à-dire un appel de la fonction courante ne produit pas de résultat, l'étape E9 est suivie de l'étape EU. Lorsque toutes les fonctions de l'interface courante ont été traitées, la réponse à l'étape E11 est négative et le traitement est terminé. Bien entendu, l'interface est mémorisée dans le tableau T'précédemment décrit. La définition d'un nouveau type est maintenant détaillée en référence à la figure 8, sous la forme d'un algorithme comportant des étapes E70 à E81. On décrit dans la suite la figure en référence à un argument, mais les étapes sont identiques pour décrire un résultat de fonction. L'étape E70 est un test pour vérifier si le type à définir est complexe. Un type complexe est composé de plusieurs champs. Chaque champ a son propre type. Lorsque la réponse est positive, cela signifie que le type courant comporte plusieurs champs et cette étape est suivie de l'étape E71 à laquelle une définition de type complexe est créée en langage de schéma XML. L'étape suivante E72 est la sélection d'un premier champ du type courant. A l'étape suivante E73, une balise pour définir le champ est créée en langage de schéma XML. Si le type du champ est un type prédéfini, il est précisé dans la balise par un attribut type="..." . Sinon, la description du type est ajoutée à l'intérieur de la balise en appelant de nouveau l'algorithme de la figure 8. En d'autres termes, dans ce dernier cas, l'étape E73 se branche à l'étape E70. L'étape suivante E74 est un test pour vérifier s'il reste au moins un champ du type complexe courant à traiter. Lorsque la réponse est positive, alors cette étape est suivie de l'étape E75 à laquelle un champ suivant est considéré. L'étape E75 est suivie de l'étape E73 précédemment décrite. Lorsque tous les champs du type complexe courant ont été décrits en langage de schéma XML, c'est-à-dire lorsque la réponse est négative à l'étape E73, alors le traitement du type courant est terminé. Lorsque la réponse est négative à l'étape E70, le type courant n'est pas complexe. Dans ce cas, cette étape est suivie de l'étape E76 qui est un test pour vérifier si le type est une collection. Une collection est un ensemble de valeurs d'un même type. Lorsque la réponse est positive, alors cette étape est suivie de l'étape E77 à laquelle une définition du type collection est créée en langage de schéma XML. A l'étape suivante E78, une balise pour définir le contenu de la collection est créée en langage de schéma XML. Si le type du contenu de la collection est un type prédéfini, il est précisé dans la balise par un attribut type="..." . Sinon, la description du type est ajoutée à l'intérieur de la balise en appelant de nouveau l'algorithme de la figure 8. En d'autres termes, dans ce dernier cas, l'étape E78 se branche à l'étape E70. Lorsque la réponse est négative à l'étape E76, cette étape est suivie de l'étape E79 qui est un test pour déterminer si l'argument courant a un type simple, c'est-à-dire ne comportant pas d'attribut ni de sous-élément. Des types simples sont par exemple un entier, un entier compris entre 1 et 10, une chaîne de caractère de 7 caractères. Lorsque la réponse est positive, cette étape est suivie de l'étape E80 qui est la création d'une définition d'élément possédant ce type simple. Lorsque la réponse est négative à l'étape E79, cette étape est suivie de l'étape E81 qui est la création d'une définition d'élément correspondant à une référence distante. Cet élément contient une URI à partir de laquelle pourra être téléchargé l'objet référencé. En variante, la description de type est réalisée de la manière suivante. Seuls les types prédéfinis sont repris du langage de schéma XML. Un type complexe est alors décrit à l'intérieur de la balise de l'élément ayant ce type complexe. A l'intérieur de cette balise, chaque champ du type complexe est défini par une balise dont le nom est celui du champ. Si le champ a un type prédéfini, il est indiqué par un attribut type="..." . Sinon, le type du champ est complexe et est décrit de manière récursive à l'intérieur de la balise décrivant le champ. Par exemple, selon cette variante, une fonction nommée asthumbnail est décrite ainsi : Cela est à interpréter de la manière suivante : la fonction asthumbail comporte un unique argument, nommé thumbnail , dont le type est complexe et est composé de trois champs, width , height et pixels ayant respectivement les types prédéfinis xs : integer , xs : integer et xs : base64 . La figure 9 représente un tableau Tc'analogue similaire au tableau T'de la figure 6, mais est mémorisé dans la mémoire RAM 103 d'un ordinateur client. Le tableau Tc'permet à l'ordinateur client de conserver les descriptions des interfaces qu'il rencontre. Les interfaces sont mémorisées à la fois sous forme de description en langage XML qui est la description telle que l'ordinateur client l'obtient depuis l'ordinateur serveur et sous forme interne, cette description étant reconstruite à partir de la description en langage XML. La figure 10 représente un procédé d'obtention des interfaces d'un objet par un ordinateur client, sous la forme d'un algorithme comportant des étapes E20 à E29. Ce procédé a pour but d'obtenir l'ensemble des interfaces décrivant les fonctions applicables à un objet. Cet algorithme peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque compact à mémoire figée). L'étape E20 est la réception de la description d'un objet sous la forme d'un document XML par exemple en réponse à une requête. L'ordinateur client reçoit par exemple le document 400 (figure 4). L'étape suivante E21 est l'extraction de l'URI d'une première interface depuis le document XML. Par exemple, l'URI : http ://www. crf. canon. fr/imaqel nterface. xsd est extraite du document 400. L'étape suivante E22 est un test pour déterminer si l'interface courante est mémorisée dans le tableau Tc' (figure 9) présent dans la mémoire RAM de l'ordinateur client. Lorsque la réponse est négative, l'étape E22 est suivie de l'étape E23 à laquelle une requête est envoyée à l'adresse définie par l'URI précédemment obtenue pour obtenir le document XML décrivant l'interface. L'étape suivante E24 est la réception du document XML décrivant l'interface. Par exemple, le document 410 est reçu par l'ordinateur client. A l'étape suivante E25, le document XML de l'interface courante est mémorisé dans le tableau Tc'. L'étape suivante E26 est la traduction du document XML de l'interface courante en langage interne, tel que C ou C++ par exemple, pour obtenir une description interne. A l'étape suivante E27, la description interne de l'interface courante est mémorisée dans le tableau Tc'. L'étape E27 est suivie de l'étape E28 qui est un test pour déterminer s'il reste au moins une interface à traiter. Si la réponse est positive, alors cette étape est suivie de l'étape E29 à laquelle l'URI d'une interface suivante est extraite. L'étape E29 est suivie de l'étape E22 précédemment décrite. Lorsque la réponse est positive à l'étape E22, cette étape est également suivie de l'étape E28. Lorsque la réponse est négative à l'étape E28, alors l'ensemble des interfaces décrivant les fonctionnalités d'un objet a été obtenu par l'ordinateur client. Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire, toute variante à la portée de l'homme du métier. REVENDICATIONS 1. Procédé de description d'une fonction applicable à un objet informatique, la fonction étant appelable dans un premier langage de balisage, la fonction étant initialement exprimée dans un langage de programmation prédéterminé différent du premier langage de balisage, caractérisé en ce qu'il comporte les étapes de : - définition (E3) d'une première balise décrivant la fonction, dans le premier langage de balisage, - définition (E6) de deuxièmes balises décrivant les arguments de la fonction, ces balises étant contenues dans la première balise décrivant la fonction et les types des arguments étant exprimés dans un second langage de balisage, et, si la fonction produit un résultat, - définition (E10) d'une troisième balise décrivant le résultat de la fonction, cette balise étant contenue dans la première balise décrivant la fonction et le type du résultat étant exprimé dans le second langage de balisage. 2. Procédé selon la revendication 1, caractérisé en ce que le second langage de balisage est un langage de schéma associé au premier langage de balisage. 3. Procédé selon la revendication 1, caractérisé en ce que le second langage de balisage est un langage de balisage qui permet de construire des types complexes par agrégation de types simples prédéfinis. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la troisième balise est différenciée des deuxièmes balises par un attribut ayant une valeur spécifique. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel au moins une fonction fait partie d'une interface, caractérisé en ce qu'il comporte la mémorisation de l'interface dans le langage de balisage et dans le langage de programmation. 6. Procédé d'obtention, par un terminal client, d'une interface d'un objet, ladite interface comportant au moins une fonction décrite par le procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte la traduction (E26) de ladite interface dans un langage de programmation différent du langage de balisage. 7. Procédé d'obtention selon la revendication 6, caractérisé en ce qu'il comporte la mémorisation de l'interface dans le langage de balisage et dans le langage de programmation. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le langage de balisage est un langage XML et le langage de schéma associé est un langage de schéma XML. 9. Dispositif de description d'une fonction applicable à un objet informatique, la fonction étant appelable dans un premier langage de balisage, la fonction étant initialement exprimée dans un langage de programmation prédéterminé différent du premier langage de balisage, caractérisé en ce qu'il comporte : - des moyens de définition d'une première balise décrivant la fonction, dans le premier langage de balisage, - des moyens de définition de deuxièmes balises décrivant les arguments de la fonction, ces balises étant contenues dans la première balise décrivant la fonction et les types des arguments étant exprimés dans un second langage de balisage, et, si la fonction produit un résultat, - des moyens de définition d'une troisième balise décrivant le résultat de la fonction, cette balise étant contenue dans la première balise décrivant la fonction et le type du résultat étant exprimé dans le second langage de balisage. 10. Dispositif selon la revendication 9, caractérisé en ce qu'il est adapté à mettre en oeuvre un second langage de balisage qui est un langage de schéma associé au premier langage de balisage. 11. Dispositif selon la revendication 9, caractérisé en ce qu'il est adapté à mettre en oeuvre un second langage de balisage qui permet de construire des types complexes par agrégation de types simples prédéfinis. 12. Dispositif selon l'une quelconque des revendications 9 à 11, caractérisé en ce que qu'il est adapté à mettre en oeuvre une troisième balise qui est différenciée des deuxièmes balises par un attribut ayant une valeur spécifique. 13. Dispositif selon l'une quelconque des revendications 9 à 12, dans lequel au moins une fonction fait partie d'une interface, caractérisé en ce qu'il comporte des moyens de mémorisation de l'interface dans le langage de balisage et dans le langage de programmation. 14. Dispositif d'obtention, par un terminal client, d'une interface d'un objet, ladite interface comportant au moins une fonction décrite par le dispositif selon l'une quelconque des revendications 9 à 13, caractérisé en ce qu'il comporte des moyens de traduction de ladite interface dans un langage de programmation différent du langage de balisage. 15. Dispositif d'obtention selon la revendication 14, caractérisé en ce qu'il comporte des moyens de mémorisation de l'interface dans le langage de balisage et dans le langage de programmation. 16. Dispositif selon l'une quelconque des revendications 9 à 15, caractérisé en ce qu'il est adapté à mettre en oeuvre un langage de balisage qui est un langage XML, et à mettre en oeuvre un langage de schéma associé qui est un langage de schéma XML. 17. Dispositif selon l'une quelconque des revendications 9 à 13, caractérisé en ce que les moyens de définition sont incorporés dans : - un microprocesseur (100), - une mémoire morte (102) comportant un programme pour traiter les données, et - une mémoire vive (103) comportant des registres adaptés à enregistrer des variables modifiées au cours de l'exécution dudit programme. 18. Ordinateur caractérisé en ce qu'il comporte le dispositif selon l'une quelconque des revendications 9 à 13. 19. Ordinateur caractérisé en ce qu'il comporte le dispositif selon la revendication 14 ou 15. 20. Réseau de communication, caractérisé en ce qu'il comporte au moins un ordinateur selon la revendication 18 et un ordinateur selon la revendication 19. 21. Programme d'ordinateur sur un support d'informations, caractérisé en ce qu'il comporte des instructions de programme adaptées à la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 8, lorsque ce programme d'ordinateur est chargé et exécuté dans un système informatique.