Brevet FR2795535A1 — publié le 20001229

La présente invention concerne un procédé d'exécution à distance, sur un réseau de communication informatique, d'une fonction sur un objet informatique. Elle concerne également un procédé d'activation sur un ordinateur local d'une fonction d'un objet informatique distant, un procédé de transfert d'une interface sur un réseau de communication informatique, un procédé d'élaboration d'une requête informatique d'activation d'une fonction d'un objet informatique sur un ordinateur distant, et un procédé d'activation sur un réseau de communication informatique d'une fonction d'un objet informatique sur un ordinateur distant. Corrélativement, la présente invention concerne un dispositif d'exécution à distance, sur un réseau de communication informatique, d'une fonction sur un objet informatique, un dispositif d'activation sur un ordinateur local d'une fonction d'un objet informatique distant, un dispositif de transfert d'une interface sur un réseau de communication informatique, un dispositif d'élaboration d'une requête informatique d'activation d'une fonction d'un objet informatique sur un ordinateur distant, et un dispositif d'activation sur un réseau de communication informatique d'une fonction d'un objet informatique sur un ordinateur distant. La présente invention s'intègre de manière générale dans le domaine des réseaux de communication informatiques qui permettent de transférer des informations entre des sites connectés au réseau. La présente invention s'applique aux réseaux de communication qui définissent un protocole de communication entre les différents sites reliés au réseau. Un tel réseau peut être à titre exemple non limitatif le réseau de communication planétaire tel que le réseau Internet, bâti au-dessus du protocole de communication HTTP (en anglais Hypertext Transfer Protocol). De tels réseaux de communication définissent également un langage d'annotations, par exemple le langage XML (en anglais "Extended Markup Language) qui permet en particulier sur ces réseaux de relier des documents entre eux par des liens hypertextes appelés couramment "pointeurs". La présente invention vise notamment à améliorer la gestion partagée d'objets informatiques sur de tels réseaux de communication informatique. Dans un système orienté objet (en anglais "distributed object 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 ("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. L'ensemble des fonctions applicables à un objet et des attributs constitue son interface. Chaque objet informatique est créé dans un langage de programmation utilisé par une application informatique qui est mise en #uvre sur le site du réseau sur lequel est créé l'objet. De tels langages de programmation sont connus, par exemple sous le nom de JAVA ou C++. Pour qu'un objet informatique puisse être partagé sur un réseau de communication, il est nécessaire de le coder d'une manière telle qu'il ne soit ni dépendant de l'architecture du réseau de communication, ni dépendant du langage de programmation dans lequel l'application informatique a créé l'objet. Cela est nécessaire dès lors qu'un autre ordinateur peut ne pas avoir la même architecture de réseau ou peut implémenter une application informatique différente. Lorsque l'objet informatique est reçu par un autre site, une opération inverse de traduction doit être appliquée à l'objet pour obtenir une représentation de l'objet dans l'application informatique mise en #uvre sur ce second site. La société ALLAIRE CORPORATION a développé récemment un système WDDX qui permet de distribuer des objets informatiques sur un réseau. Ce système WDDX utilise un langage de communication XML pour faciliter les échanges de structures de données complexes sur un réseau de communication. Par exemple, ce système WDDX permet à une structure de données programmée en langage C d'être traduite (en anglais "marshalled") dans le langage de communication XML, puis transférée d'un premier ordinateur à un second ordinateur du réseau, et enfin retraduite (en anglais "unmarshalled") sur le second ordinateur dans une structure de données équivalente. Cependant, ce système WDDX ne concerne que le transfert de données, et ne permet pas l'invocation de fonction sur des données à distance. De manière générale, le système WDDX n'est pas concerné par l'interface de l'objet. La société DATACHANNEL a proposé également un système Web Broker qui permet de distribuer des objets informatiques sur un réseau de communication. Ce système Web Broker permet de définir le concept des interfaces sur le réseau. Cependant, il n'est pas possible dans ce système d'obtenir un code source pour une fonction répertoriée dans une interface. Aussi, il n'est pas possible de réimplémenter cette fonction sur un ordinateur local et de l'invoquer localement sur une copie d'un objet distant. De même, il n'est pas possible de mettre en #uvre une fonction sur un objet informatique stocké sur un ordinateur distant. Or, dans un réseau de communication informatique, la contrainte principale réside dans le débit et la bande passante disponible sur ce réseau. La présente invention a pour but de permettre l'exécution à distance, sur un réseau de communication informatique, d'une fonction sur un objet informatique. A cet effet, la présente invention vise un procédé d'exécution à distance, sur un réseau de communication informatique, d'une fonction sur un objet informatique. Conformément à l'invention, ce procédé d'exécution comporte une étape de transfert selon un protocole de communication du réseau de communication, de la fonction associée à un code d'exécution de cette fonction. Ainsi, il est possible d'obtenir à distance le code d'exécution d'une fonction répertoriée dans une interface d'un objet informatique. Cela permet de transporter sur le réseau le comportement des objets informatiques et non seulement leur état. Ce procédé ouvre ainsi la possibilité de redéfinir des fonctions à distance, dès lors que les applications informatiques mises en oeuvre sur les ordinateurs du réseau supportent au moins un code d'exécution, par exemple un code source tel que ECMA Script (JAVA Script 1.3). Ainsi, le code d'exécution des fonctions est rendu visible sur le réseau. Selon une caractéristiques préférée de l'invention, à ladite étape de transfert, ladite fonction est en outre associée à au moins un paramètre traduit dans un langage de communication utilisable par le protocole de communication du réseau de communication informatique. Ainsi, les paramètres d'entrée (en anglais "input arguments") sont également transmis à ladite étape de transfert et permettent de mettre en #uvre la fonction en lui associant des paramètres d'entrée choisis. De préférence, le procédé d'exécution à distance comporte une étape de transfert selon un protocole de communication du réseau de communication, d'une interface d'un objet informatique, comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. On peut ainsi transférer et rendre visible sur le réseau de communication non seulement une fonction associée à un objet informatique, mais également l'ensemble de son interface, dans laquelle chaque fonction répertoriée est associée à son code d'exécution, afin de permettre l'exécution des fonctions à distance sur le réseau de communication. En pratique, le code d'exécution est un code source, tel que le code JAVA Script, un code précompilé, tel qu'un bytecode ou un code compilé, prêt à être exécuté par l'application informatique. Selon un deuxième aspect de l'invention, un procédé d'activation sur un ordinateur local d'une fonction d'un objet informatique distant sur un réseau de communication informatique, comporte les étapes suivantes : - réception sur l'ordinateur local d'une copie de l'objet informatique distant traduit dans un langage de communication utilisable par le protocole de communication du réseau de communication ; - extraction de l'objet informatique reçu d'au moins une adresse informatique référençant une interface dudit objet ; - envoi à un ordinateur distant d'une requête d'obtention de ladite interface incluant l'adresse informatique ; et - réception en réponse de ladite interface comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. Le procédé d'activation permet ainsi de copier sur un ordinateur local à la fois un objet informatique distant et au moins une interface associée, de telle sorte que les fonctions de l'objet peuvent être appliquées directement sur l'ordinateur local, sur une copie de l'objet. L'exécution de cette fonction n'est alors plus tributaire de la bande passante disponible sur le réseau, qui constitue le goulot d'étranglement dans un tel système de communication. En outre, l'activation de cette fonction peut également être mise en #uvre lorsque l'ordinateur local n'est connecté que par intermittence au réseau. On notera que le code d'exécution associé à chaque fonction de l'interface peut être directement inclus dans la réponse, en étant traduit dans un langage de communication utilisable par le réseau, ou bien seulement inclus par référence au moyen d'une adresse informatique référençant ce code d'exécution sur le réseau. Dans ce dernier cas, l'ordinateur local pourra requérir le transfert de ce code d'exécution de manière différée, seulement lorsque la fonction associée devra être exécutée. Selon une caractéristique avantageuse de ce deuxième aspect de l'invention, le procédé d'activation comporte en outre une étape de création d'une classe dans un langage de programmation utilisé par une application informatique dudit ordinateur local, ladite classe comprenant la ou les fonctions de ladite interface réceptionnée et le code d'exécution de ces fonctions. On obtient ainsi une classe standard, analogue à celle qu'on aurait obtenue en compilant une classe sur l'ordinateur local à partir d'un code source associé. Selon un troisième aspect de l'invention, un procédé de transfert d'une interface sur un réseau de communication informatique, en réponse à une requête d'obtention envoyée à l'étape d'envoi du procédé d'activation conforme à l'invention, comprend les étapes suivantes : - réception de la requête d'obtention ; - extraction de l'adresse informatique référençant ladite interface ; - identification de ladite interface dans une table d'associations mémorisant l'adresse électronique en association avec une interface ; et - transfert de ladite interface traduite dans un langage de communication utilisable par le protocole de communication du réseau, comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. Ce procédé de transfert d'une interface permet ainsi de manière pratique, de retrouver, grâce à une table d'associations, l'interface associée à un objet informatique, et de transférer cette interface à un autre ordinateur du réseau, afin de permettre l'exécution à distance de cette fonction sur une copie de l'objet informatique. Selon un quatrième aspect de l'invention, un procédé d'élaboration d'une requête informatique d'activation d'une fonction d'un objet informatique sur un ordinateur distant du réseau de communication informatique, comporte les étapes suivantes : - inscription d'une adresse informatique référençant ledit objet informatique ; - inscription d'un identificateur de ladite fonction ; et - ajout du code d'exécution associé à ladite fonction. Grâce à l'élaboration de cette requête informatique, dans laquelle, outre la fonction à exécuter, est également introduit le code d'exécution associé à cette fonction, on peut exécuter cette fonction à distance sur un objet informatique stocké dans un ordinateur distant du réseau. Ainsi, les fonctionnalités de l'ordinateur distant ne sont pas fixées, mais peuvent être augmentées par la réception de telles requêtes informatiques d'activation à distance, qui permettent d'identifier à la fois la fonction et son code d'exécution. Selon un cinquième aspect de l'invention, un procédé d'activation sur un réseau de communication informatique d'une fonction d'un objet informatique sur un ordinateur distant, comporte les étapes suivantes : - réception d'une requête d'activation élaborée selon le procédé d'élaboration conforme à l'invention ; - extraction de cette requête d'activation de l'adresse informatique référençant l'objet informatique ; - extraction de l'identificateur de la fonction ; - extraction du code d'exécution associé à cette fonction ; et - exécution dudit code extrait sur l'objet informatique. On peut ainsi invoquer et activer à distance une fonction sur un objet informatique du réseau de communication. Corrélativement, la présente invention concerne un dispositif d'exécution à distance, sur un réseau de communication informatique, d'une fonction sur un objet informatique, comprenant des moyens de transfert selon un protocole de communication du réseau de communication, adapté à transférer ladite fonction associée à un code d'exécution de ladite fonction. Selon un deuxième aspect de l'invention, un dispositif d'activation sur un ordinateur local d'une fonction d'un objet informatique distant sur un réseau de communication informatique, comprend : - des moyens de réception sur l'ordinateur local d'une copie dudit objet informatique distant traduit dans un langage de communication utilisable par le protocole de communication du réseau de communication ; - des moyens d'extraction dudit objet informatique reçu d'au moins une adresse informatique référençant une interface dudit objet ; - des moyens d'envoi à un ordinateur distant d'une requête d'obtention de ladite interface incluant l'adresse informatique ; et - des moyens de réception en réponse de ladite interface comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. Selon un troisième aspect de l'invention, un dispositif de transfert d'une interface sur un réseau de communication informatique, en réponse à une requête d'obtention envoyée par les moyens d'envoi dudit dispositif d'activation conforme à l'invention, comprend : - des moyens de réception de ladite requête d'obtention ; - des moyens d'extraction de l'adresse informatique référençant ladite interface ; - des moyens d'identification de ladite interface dans une table d'associations mémorisant ladite adresse électronique en association avec une interface ; et - des moyens de transfert de ladite interface traduite dans un langage de communication utilisable par le protocole de communication du réseau, comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. Selon un quatrième aspect de l'invention, un procédé d'élaboration d'une requête informatique d'activation d'une fonction d'un objet informatique sur un ordinateur distant du réseau de communication informatique, comprend : - des moyens d'inscription d'une adresse informatique référençant ledit objet informatique ; - des moyens d'inscription d'un identificateur de ladite fonction ; et - des moyens d'ajout du code d'exécution associé à ladite fonction. Selon un cinquième aspect de l'invention, un dispositif d'activation sur un réseau de communication informatique d'une fonction d'un objet informatique sur un ordinateur distant, comprend : - des moyens de réception d'une requête d'activation élaborée par le dispositif d'élaboration conforme à l'invention ; - des moyens d'extraction de ladite requête d'activation de l'adresse informatique référençant l'objet informatique ; - des moyens d'extraction de l'identificateur de ladite fonction ; - des moyens d'extraction du code d'exécution associé à ladite fonction ;et - des moyens d'exécution dudit code extrait sur l'objet informatique. Les caractéristiques et avantages des dispositifs d'exécution à distance, d'activation d'une fonction sur un ordinateur local, de transfert d'une interface, d'élaboration d'une requête informatique d'activation et d'activation d'une fonction sur un ordinateur distant conformes à l'invention, sont analogues à ceux décrits précédemment, respectivement pour les procédé d'exécution à distance, procédé d'activation d'une fonction sur un ordinateur local, procédé de transfert d'une interface, procédé d'élaboration d'une requête informatique d'activation et procédé d'activation d'une fonction sur un ordinateur distant. La présente invention concerne également un ordinateur comprenant un dispositif d'exécution à distance, et/ou un dispositif d'activation d'une fonction sur un ordinateur local et/ou un dispositif de transfert d'une interface, et/ou un dispositif d'élaboration d'une requête informatique d'activation et/ou un dispositif d'activation d'une fonction sur un ordinateur distant conformes à l'invention. Elle vise également un réseau de communication informatique comportant un dispositif d'exécution à distance et/ou un dispositif d'activation d'une fonction sur un ordinateur local et/ou un dispositif de transfert d'une interface sur un réseau et/ou un dispositif d'élaboration d'une requête informatique d'activation et/ou un dispositif d'activation d'une fonction sur un ordinateur distant conformes à l'invention. Cet ordinateur et ce réseau de communication informatique présentent des avantages analogues à ceux décrits précédemment en relation avec les procédés conformes à l'invention. La présente invention vise en outre un programme d'ordinateur stocké sur un moyen de stockage ou de support d'informations, éventuellement amovible, incorporé ou non dans un ordinateur, comprenant des portions de code logiciel ou des instructions de programme adaptées à mettre en #uvre les étapes du procédé d'exécution à distance et/ou les étapes du procédé de l'activation d'une fonction sur un ordinateur local et/ou les étapes du procédé de transfert d'une interface et/ou les étapes du procédé d'élaboration d'une requête informatique d'activation et/ou les étapes du procédé d'activation d'une fonction sur un ordinateur distant conformes à l'invention, lorsque ledit programme d'ordinateur est chargé dans un ordinateur. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. Aux dessins annexés, donnés à titre d'exemples non limitatifs : - la figure 1 illustre schématiquement des réseaux de communication adaptés à mettre en #uvre la présente invention ; - la figure 2 est un graphe illustrant schématiquement un système d'objets distribués ; - la figure 3 est un diagramme bloc illustrant un ordinateur adapté à mettre en #uvre l'invention ; - la figure 4 est un diagramme illustrant la traduction directe et inverse d'un objet informatique, d'un langage de programmation vers un langage de communication ; - la figure 5 est un diagramme bloc illustrant deux ordinateurs adaptés à mettre en #uvre la présente invention ; - la figure 6 est une représentation schématique d'un espace mémoire adapté à mémoriser une table d'associations d'objets ; - la figure 7 est un algorithme illustrant la traduction d'un objet informatique ; - la figure 8 est une représentation schématique d'un espace mémoire adapté à mémoriser une table d'associations d'interfaces ; - la figure 9 est un algorithme illustrant un procédé d'activation d'une fonction sur un ordinateur local conforme à un premier mode de réalisation de l'invention ; - la figure 10 est un algorithme illustrant un procédé de transfert d'une interface conforme au premier mode de réalisation de l'invention ; - la figure 11 est un algorithme illustrant un procédé d'élaboration d'une requête informatique d'activation conforme à un second mode de réalisation de l'invention ; et - la figure 12 est un algorithme illustrant un procédé d'activation d'une fonction sur un ordinateur distant conforme au second mode de réalisation de l'invention. La présente invention s'applique en général aux réseaux de communication informatique. Elle s'applique particulièrement bien aux réseaux de communication de grande étendue dans lesquels un très grand nombre de serveurs informatiques sont reliés entre eux. Un tel réseau peut être à titre d'exemple le réseau de communication planétaire, tel que le réseau Internet, bâti au-dessus d'un protocole de communication qui permet aux ordinateurs connectés au réseau de communication d'échanger des documents. Un tel réseau Internet est illustré par exemple à la figure 1. Dans cet exemple, et à titre non limitatif, trois réseaux informatiques R1, R2 et R3 sont des réseaux du type Ethernet, connectés entre eux par exemple par l'intermédiaire d'un réseau Internet. Chaque réseau R1, R2 et R3 comporte un ou plusieurs ordinateurs. Ici, à titre d'exemple, le réseau R1 comporte deux ordinateurs C1, C2 ; le réseau R2 comporte un seul ordinateur C3 ; le réseau R3 comporte trois ordinateurs C4, C5 et C6. Chacun de ces ordinateurs C1, C2, C3, C4, C5, C6 est donc capable d'envoyer et de recevoir des données de l'un des quelconques autres ordinateurs. Dans un tel réseau, il est courant qu'un système d'information, où l'information est stockée dans des documents, soit bâti au-dessus du réseau de communication. Un tel système d'information peut être un système hypertexte de sorte que les documents stockés comportent des liens hypertextes, appelés également pointeurs, reliant certains documents entre eux. En d'autres termes, des documents comportent des pointeurs pointant vers d'autres documents, et un utilisateur du réseau peut demander la transmission de ces autres documents en actionnant les pointeurs d'un document initial. A titre d'exemple, le système hypertexte classique bâti au-dessus du réseau de communication Internet est le système WWW (en anglais World Wide Web) traduit en français par la Toile, le protocole de communication utilisé pouvant être le protocole de transfert hypertexte HTTP (en anglais Hyper Text Transfert Protocol). Dans un tel réseau de communication, l'ensemble des documents regroupés dans la mémoire d'un serveur informatique forme un site informatique, de sorte que le réseau de communication permet de relier un très grand nombre de sites entre eux. On comprendra aisément que chacun des ordinateurs C1 à C6 illustrés à la figure 1 peut être tour à tour un serveur informatique adapté à servir des documents en réponse à des requêtes émises sur le réseau, ou un utilisateur du réseau de communication (appelé encore client), adapté à émettre des requêtes pour demander des documents sur ce réseau. Outre ces documents formant un système d'information classique sur un réseau de communication, les ordinateurs C1 à C6 peuvent également stocker et créer des objets informatiques grâce à des applications informatiques. On définit un objet informatique comme un élément comprenant à la fois différents attributs, et un ensemble de fonctions qui permettent de manipuler les attributs de l'objet et d'en modifier la valeur. Cet ensemble de fonctions et d'attributs forme une interface de l'objet informatique. Chaque objet informatique peut être créé dans un langage de programmation utilisé par une application informatique. De tels langages de programmation sont connus par exemple sous le nom de JAVA ou C++. Il est classique que dans un tel système d'objets distribués, ces objets informatiques pointent les uns vers les autres, c'est-à-dire que certains champs de données d'un objet sont eux-mêmes des objets informatiques. La figure 2 illustre notamment des objets qui pointent les uns vers les autres par le biais de liens illustrés par des flèches. Ainsi, un premier objet 01, résidant sur l'ordinateur C1, pointe à la fois vers un objet 02 résidant sur un ordinateur C3 et vers un objet 03 résidant sur un ordinateur C5. Cet objet 03 pointe à son tour vers un objet 04 résidant sur le premier ordinateur C1. Ici, l'objet 04 pointe à son tour vers l'objet 01, ces deux objets 01 et 04 résidant sur le même ordinateur C1. Le graphe de la figure 2 n'est qu'un exemple parmi d'autres d'un système d'objets pointant les uns vers les autres. De manière générale, il suffit de préciser que certains objets, tels que 01 et 03, peuvent être à la fois des objets pointeurs et des objets pointés et que les objets pointant les uns vers les autres peuvent appartenir à un même ordinateur, tels que les objets 01 et 04, ou à des ordinateurs différents, tels que les objets 01 et 02. Un ordinateur adapté à mettre en #uvre l'invention est illustré en outre à la figure 3, par exemple l'ordinateur C1 du réseau de communication R1. Cet ordinateur comporte un microprocesseur 500, une mémoire morte 501 comprenant un programme pour mettre en #uvre l'invention, et une mémoire vive 502 comportant des registres adaptés à enregistrer les variables modifiées au cours de l'exécution du programme. Cet ordinateur C1 par exemple peut être connecté à différents périphériques, tels qu'une caméra numérique 800 ou un microphone 601, un casque 602, ou un haut-parleur 600 par l'intermédiaire d'une carte entrée/sortie 511afin de réceptionner et stocker des documents. Cet ordinateur C1 comporte une interface de communication 510 reliée à un réseau de communication 4, tel que le réseau Ethernet R1. L'ordinateur C1 comporte en outre des moyens de stockage de documents, tels qu'un disque dur 506, ou est adapté à coopérer au moyen d'un lecteur de disquette 507, d'un lecteur de disque compact 508 ou d'un lecteur de cartes informatiques 509 avec des moyens de stockage de documents amovibles, respectivement des disquettes 700, des disques compacts 701 (CD) ou des cartes informatiques 702 (PC-CARD). Ces moyens de stockage fixes ou amovibles peuvent également comporter le code du procédé conforme à l'invention qui, une fois lu par le microprocesseur 500, sera stocké dans le disque dur 506. A titre de variante, le programme adapté à mettre en #uvre l'invention pourrait être stocké dans la mémoire morte 501. En seconde variante, le programme pourrait être reçu puis stocké comme décrit précédemment par l'intermédiaire du réseau de communication R1. L'ordinateur C1 possède également un écran 503 permettant par exemple de servir d'interface avec un opérateur à l'aide du clavier 504 ou de la souris 505 ou de tout autre moyen. L'unité centrale 500 va exécuter les instructions relatives à la mise en #uvre de l'invention. Lors de la mise sous tension de l'ordinateur C1, les programmes et méthodes relatives à l'invention stockés dans une mémoire non volatile, par exemple la mémoire morte 501, sont transférés dans la mémoire vive 502 qui contiendra alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en #uvre de l'invention. Le bus de communication 512 permet la communication entre les différents sous-éléments de l'ordinateur C1 ou liés à lui. Cette représentation du bus de communication 512 n'est pas limitative, et notamment le microprocesseur 500 est susceptible de communiquer des instructions à tout sous-élément directement ou par l'intermédiaire d'un autre sous-élément. L'ordinateur C1 comporte un dispositif de traduction 10 tel que représenté schématiquement à la figure 4. Bien entendu, chaque ordinateur C1 à C6 du réseau de communication peut comporter un tel dispositif de traduction. Le dispositif de traduction (en anglais "marshaller") permet de traduire un objet informatique 11 créé dans un langage informatique, ici un objet C++, vers un langage de communication tel que le langage XML utilisable dans le protocole de communication HTTP d'un réseau Internet. Un même ordinateur comporte également un dispositif de traduction inverse 13 qui permet d'opérer la conversion inverse pour transformer un objet 12 représenté dans un langage de communication en un objet 11 dans un langage informatique. L'opération de traduction réalisée par le dispositif de traduction 10 permet ainsi, sur un ordinateur, de rendre visible les objets créés par une application de cet ordinateur, ou autrement dit de les publier sur le réseau. Un exemple d'un langage de communication utilisable sur le réseau Internet est donné ci-après, avec la description des différents champs de données qu'il est nécessaire de traduire pour partager des objets informatiques entre les différents sites reliés au réseau de communication. Ce langage de communication se présente comme une version perfectionnée du langage XML. Champ : Objets Il permet à plusieurs objets d'être envoyés à une application distante. Cette application distante n'a pas besoin d'attendre que tous les objets aient été reçus pour commencer leur traduction inverse dans le langage informatique utilisé par l'application distante, par le dispositif de traduction 13. ... ... Champ : Objet Il permet de coder un objet qui n'est ni un objet littéral, tel qu'un entier, un nombre à virgule, un booléen, un caractère, ou une chaîne de caractères courte, ni un objet complexe ( en anglais "container object") tel qu'une chaîne, un intervalle ou un tableau d'objets divers. L'objet peut avoir son adresse informatique URI comme attribut. Il peut inclure d'autres objets informatiques, des objets complexes, des objets littéraux et des références à des objets. Les objets peuvent également inclure une ou plusieurs références à des interfaces et supportés ainsi l'ensemble des opérations ou fonctions comprises dans cette interface. Bien que les objets informatiques et les objets complexes puissent être inclus directement dans les objets informatiques traduits dans ce langage de communication, il est préférable que seuls les objets littéraux soient traduits et que les autres objets soient inclus seulement par référence. Champ : Interfaces Conformément à un aspect de l'invention, il permet d'envoyer plusieurs interfaces à des applications distantes. Comme précédemment, l'application distante n'a pas besoin d'attendre la réception de toutes les interfaces pour opérer leur traduction inverse dans le langage utilisé par l'application et les utiliser. ... Champ : Interface Il correspond au concept générique d'un "Type" ou d'une "Classe" d'objets, comme défini dans les langages JAVA ou C++. Une interface décrit les opérations qui sont supportées par un objet. Ces opérations utilisent généralement des paramètres (en anglais "input arguments") et fournissent éventuellement un résultat. Une interface décrit également les attributs ou champs de données que tous les objets supportant cette interface contiennent lorsqu'ils sont traduits dans le langage de communication. Une interface peut également contenir une référence à d'autres interfaces, soit qu'elle s'étende à ces autres interfaces ou fournisse seulement un raccourci (en anglais "shorthand") pour utiliser ces autres interfaces. L'objet supporte alors toutes ces autres interfaces référencées. Il existe en outre des interfaces prédéfinies pour des objets littéraux et des objets complexes. ... ... Champ : Attribut II comporte la liste des attributs qu'un objet supportant l'interface contient lorsqu'il est traduit dans le langage de communication. Cette liste peut contenir des objets littéraux, des objets complexes, des objets informatiques eux-mêmes et des références à des objets. Elle peut également être vide. De préférence, les objets informatiques et les objets complexes sont remplacés lors de la traduction, par des références à ces objets utilisant une adresse informatique URI. ... Champ : fonctions Il contient la liste des fonctions ou opérations associées à l'objet informatique supportant cette interface. ... Champ : fonction II correspond au concept générique de "fonction" (en anglais "function" ou "method"). Une fonction est identifiée par sa signature, par exemple un nom, le type de paramètres utilisés et le type d'objet obtenu lors de l'exécution de cette fonction. Conformément à l'invention, une fonction peut contenir son code d'exécution tel que le code source, le code précompilé (en anglais "bytecode") ou le code compilé. Dans ce cas, la fonction peut être implémentée par une application distante. ... ... Champ : arguments Il contient la liste des paramètres (en anglais "input arguments") dont une fonction a besoin pour sa mise en #uvre. ... Champ : argument Il correspond à un paramètre d'une fonction et peut être un objet littéral, un objet complexe, un objet informatique ou une référence à un de ces objets au moyen d'une adresse informatique URI. Champ : Code Il contient le code d'exécution d'une fonction et éventuellement le langage informatique dans lequel le code est fourni. Le type de code peut être précisé, par exemple code source tel que JavaScript, code précompilé tel que Java ou code compilé tel que C++. Notons que lors de la traduction d'un objet informatique, une fonction pourrait ne pas préciser son code d'exécution. En outre, si ce code est trop important, il peut être inclus par référence à l'aide de l'attribut "href'. On donne en outre ci-dessous une liste non limitative de champs permettant de représenter des objets littéraux. Champ : Entier Champ : Virgule Champ : Booléen Champ : Caractère Champ : Chaîne Notons que ce champ n'est de préférence utilisé que pour les chaînes de caractères courtes, les autres chaînes étant de préférence incluses par référence à l'aide de l'attribut "ref". The complete Shakespeare's work. Champ : Heure Champ : Date Champ : Adresse URI Champ : Exception Il correspond au concept générique d'exception qui permet de signaler qu'une erreur s'est produite. href="http -//ocean ia/web-obi/ex/1 ndexnot Fou nd xml"/> On donne en outre ci-dessous une liste non limitative de champs permettant de représenter des objets complexes. Champ : Intervalle Il correspond au concept générique d'intervalle, avec une limite supérieure et une limite inférieure, de même type et dont l'ordre est important. Champ : Suite non-ordonnée Il correspond au concept générique d'une suite (en anglais "set") contenant des objets divers dont l'ordre est sans importance. Champ : Suite ordonnée Il correspond au concept générique d'un tableau (en anglais "array") contenant des objets divers dont l'ordre est significatif. Les références par une adresse informatique URI devraient être utilisées pour inclure dans ces suites des objets informatiques ou des objets complexes. Champ : Suite codée Il correspond au concept générique d'un tableau ou d'un dictionnaire dans lequel des objets ne sont pas accessibles directement mais au moyen de clés. Ces clés peuvent elles-mêmes être des objets divers. L'ordre des objets est sans importance. ... ... Champ : Clé Il est utilisé pour différencier une clé dans une collection de clés. Champ : Valeur Il est utilisé pour différencier la valeur d'une clé dans une collection de clés. On définit également des champs pour inclure un autre champ par référence. Champ : Interface-référence Il permet de référencer une interface par un nom et une adresse informatique URI. Champ : Objet-référence Il permet de référencer un objet par un nom et une adresse informatique URI. href="http:lloceania/web-obilobilchild1.xml"/> Champ : Chaîne-référence Il permet de référencer une chaîne par un nom et une adresse informatique URI. De préférence, les chaînes de caractères courtes sont traduites comme des objets et les chaînes longues sont traduites par référence, afin de réduire l'occupation du réseau de communication. La valeur de seuil choisie pour trier les chaînes longues des chaînes courtes peut être dépendante de l'application informatique. Champ : Suite non-ordonnée-référence Il permet de référencer une suite non-ordonnée par un nom et une adresse informatique URI. Champ : Suite ordonnée-référence Il permet de référencer une suite ordonnée par un nom et une adresse informatique URI. Champ : Suite codée-référence Il permet de référencer une suite codée non ordonnée par un nom et une adresse informatique URI. Champ : Nul Il permet de référencer un objet inexistant. Champ : Fonctions Il permet de contenir une liste de fonctions qui doivent être appliquées à un objet éloigné, en mode différé, par exemple si l'application est connectée de manière intermittente au réseau. L'application peut préparer à l'avance la requête, l'envoyer par la suite et recevoir en réponse une suite d'objets. ... ... ... ... La réponse est une suite d'objets divers, dans l'ordre d'exécution des fonctions énumérées dans la requête. ... Champ : Fonction Il permet d'invoquer une fonction sur un objet distant. On doit spécifier l'objet cible et les paramètres de la fonction comme décrit précédemment. L'objet cible peut être omis lorsque la requête est adressée directement à l'adresse informatique URI de l'objet . La réponse est constituée d'un objet ou d'une exception en cas d'erreur. href="http //oceania/web-obj/obj/calculatori xml9square"> Conformément à l'invention, si une application veut exécuter un code sur un objet distant, il faut fournir le code d'exécution au lieu de la fonction elle- même. Une exception sera adressée en retour si l'application distante n'a pas la capacité d'évaluer dynamiquement les fonctions. Ce langage de communication permet d'échanger sur le réseau non seulement les objets informatiques et leurs attributs, mais aussi les interfaces de ces objets. Ainsi, les fonctions associées aux objets sont facilement partagées sur le réseau et peuvent être exécutées sur des objets distants. Comme illustré à la figure 5, un même ordinateur C1 peut mettre en oeuvre deux applications 20,21 qui coopèrent entre elles. Ces deux applications 20,21 peuvent partager les données via un même serveur d'objets 22. Chacune des applications 20,21 utilise d'une part des données internes 23 et d'autre part des données externes 24 qui sont rendues visibles aux autres applications par l'utilisation d'un traducteur tel que décrit précédemment à la figure 4. Les données externes 24 sont en fait des données internes 23 créées ou utilisées par chacune des applications 20, 21, qui ont été traduites par un traducteur 10 dans un langage de communication commun aux deux applications et qui peuvent ainsi être transmises à l'une ou l'autre des applications via le serveur d'objets 22. Des interfaces 25 permettent de lister les fonctions et les attributs liés aux objets informatiques. Bien entendu, un fonctionnement analogue est obtenu entre deux ordinateurs C1, C3 reliés par un réseau 4, du type le réseau Internet. Comme illustré à la figure 5, l'ordinateur C3 comporte une troisième application 26 qui utilise elle aussi des données internes 23 et des données externes 24. Ces données externes 24 sont également obtenues par traduction de certaines données internes 23 créées par une application informatique 26 de l'ordinateur C3. Ces données externes 24 sont ainsi rendues visibles pour les applications 20 et 21 de l'ordinateur C1 par l'intermédiaire du réseau de communication 4, via un serveur d'objets 22 analogue au serveur d'objets 22 de l'ordinateur C1. On va décrire maintenant, en référence aux figures 6,7 et 8, un procédé de traduction qui permet de publier sur le réseau 4 un objet informatique et son interface. De manière non limitative, dans cet exemple, on considère la traduction d'un objet 01 sur un ordinateur C1 tel qu'illustré à la figure 2. Bien entendu, la traduction peut être réalisée sur tout ordinateur C1 à C6 du réseau 4. Cet objet 01 peut avoir été créé dans un langage de programmation utilisé par l'application informatique 20 mis en #uvre sur l'ordinateur C1, par exemple en langage C++. La traduction de cet objet informatique 01 est réalisée vers un langage de communication utilisable par le protocole de communication HTTP du réseau de communication informatique 4. Il comporte d'abord une étape de lecture E1 d'un champ de données inclus dans l'objet informatique 01. Pour cela, on sélectionne un premier champ de données inclus dans l'objet 01. Une série d'étapes de test E2, E3 et E4 permet de déterminer si la structure de ce champ de données est une structure complexe ou simple. Typiquement, les structures de données complexes sont par exemple un tableau (en anglais "ARRAY"), une chaîne de caractères de longueur minimale ou encore un objet informatique lui-même. D'autres exemples de champs de données de structure complexe ont été donnés précédemment, en référence au langage de communication utilisé à titre d'exemple. En pratique, on compare la structure de chaque champ de données avec une liste préétablie L de structures de données complexes. Cette liste préétablie L peut être mémorisée dans la mémoire morte 501 de l'ordinateur C1 comme illustré à la figure 3. Ainsi, on peut d'abord vérifier dans une étape de test E2 si la structure de données est elle-même un objet informatique. Dans l'affirmative, une étape E5 de traduction par référence est mise en #uvre comme décrite ci-après. Sinon, une seconde étape de test E2 permet de vérifier si la structure du champ de données est un tableau. Dans l'affirmative, une étape de traduction par référence E6 est également mise en #uvre comme décrit ci-après. Sinon, une dernière étape de test E4 est mise en #uvre pour vérifier si le champ de données est une chaîne de caractères de longueur minimale T. Dans l'affirmative, une troisième étape de traduction par référence E7 est mise en #uvre comme décrit ci-après. Sinon, on considère que la structure du champ de données est simple et une étape E8 de traduction par valeur est mise en #uvre, permettant de traduire dans le langage de communication l'ensemble du champ de données. Les étapes E5, E6 et E7 de traduction par référence constituent une étape de substitution du champ de données par une adresse informatique URI (en anglais "Uniforme Ressource Identifier"). Cette étape de substitution E5, E6 et E7 consiste en réalité à ne pas traduire directement l'ensemble du champ de données complexe, mais à substituer à celui-ci une adresse informatique permettant de retrouver ce champ de données si nécessaires. Ces mêmes étapes de traduction par référence E5, E6 et E7 comprennent également une étape de mémorisation de cette adresse informatique URI associée au champ de données dans des tables d'associations T et T' telles qu'illustrées aux figures 6 et 8. Ces tables d'associations T et T' sont constituées par exemple dans la mémoire vive 502, puis mémorisées dans une mémoire non volatile, telle que dans le disque dur 506 de l'ordinateur C1 illustré à la figure 3. Ces tables d'associations T et T' permettent ainsi de mémoriser des associations d'un champ de données complexe avec une adresse informatique URI. A titre d'exemple, ici, dans la traduction de l'objet informatique 01, deux autres objets informatiques 02 et 03, inclus dans les champs de données de l'objet informatique 01, sont mémorisés dans la première table T en association respectivement avec une adresse informatique URI1 et URI3. L'objet informatique 01 peut également comporter une structure de données sous forme de tableau A1, mémorisée en association avec une adresse informatique URI2. Elle peut également comporter une chaîne S1 d'une longueur supérieure à une valeur seuil, préfixée, en association avec une autre adresse informatique URI4. Ce procédé de traduction évite de traduire l'intégralité des champs de données d'un objet informatique 01. Par ailleurs, la seconde table d'associations T' permet de mémoriser des interfaces 11, 12, ..., Ip en association respectivement avec une adresse informatique URI1', URI2', ... URIp'. De préférence, dans ces tables T et T', les champs de données 02, A1, 03, S1...0m et les interfaces 11, 12, Ip sont mémorisés dans le langage de programmation, c'est-à-dire ici dans un langage informatique C++. Ainsi, les interfaces sont utilisables directement par l'application informatique de l'ordinateur C1, sous forme d'une classe standard. La traduction est différée, pour n'être réalisée que si nécessaire, lorsque le champ de données ou l'interface est demandé par une autre application informatique et doit être transféré sur le réseau de communication. La seconde table T' d'interfaces permet, étant donné une adresse informatique URI', de trouver l'interface correspondante. Elle permet à un serveur de gérer les interfaces des objets qu'il supporte. Notons par ailleurs qu'une autre table pourrait être mémorisée sur le serveur, permettant d'associer à un type d'objet informatique l'adresse URI' de l'interface correspondant. Grâce au langage de communication décrit précédemment, et à la traduction d'un objet informatique, il devient possible d'exécuter à distance, sur un réseau de communication informatique 4, une fonction sur cet objet informatique. De manière générale, une étape de transfert selon le protocole de communication défini par le réseau de communication 4, permet de transférer la fonction associée à un code d'exécution de cette fonction. Le code d'exécution peut être, comme décrit précédemment, soit le code source, soit un code précompilé (en anglais "byte code") ou un code compilé. Outre le code d'exécution, lors de cette étape de transfert, la fonction est associée aux paramètres nécessaires à son exécution, qui sont également traduits dans le langage de communication utilisable par le protocole de communication du réseau 4. Lorsque l'on souhaite exécuter à distance une fonction sur un objet informatique à partir de son interface, l'étape de transfert permet de transférer l'intégralité de l'interface de cet objet, comprenant une, voire plusieurs fonctions associées respectivement au code d'exécution de ces fonctions. On va décrire à présent deux modes de réalisation pratiques de l'invention, en référence aux figures 9 à 12. Afin de faciliter cette description, et de manière nullement limitative, on considère dans la suite de la description que l'ordinateur C1 du réseau R1 est un ordinateur local, et l'ordinateur C3 du réseau R2, connecté à l'ordinateur C1 via le réseau Internet 4, est un ordinateur distant. Bien entendu, tous les ordinateurs du réseau de communication 4 peuvent être tour à tour des ordinateurs locaux ou distants. On va décrire tout d'abord, en référence aux figures 9 et 10, un procédé qui permet d'activer sur l'ordinateur local C1, une fonction sur un objet informatique distant, par exemple l'objet informatique 02 créé par l'ordinateur distant C3, sur le réseau de communication informatique 4. Comme illustré à la figure 9, ce procédé d'activation comporte tout d'abord une étape de réception E40 sur l'ordinateur local C1 d'une copie de l'objet informatique distant 02, traduit dans un langage de communication XML utilisable par le protocole de communication du réseau de communication 4. Cette obtention d'un objet informatique distant 02 est réalisé par exemple en utilisant une requête informatique de transfert. Cette requête informatique de transfert peut avoir un format classique de requête HTTP défini par le protocole de communication du réseau Internet. Elle peut comporter notamment un champ dans lequel est inscrite l'adresse informatique de l'objet requis. Un exemple de requête de transfert GET d'un objet est donné cidessous : Soit l'objet informatique suivant : Cet objet ("personl") est situé à l'adresse informatique suivante : http //oceania/web-obj/obj/employee1.xml Il peut être transféré en utilisant une requête de transfert GET suivant le protocole de communication HTTP : GET /web-obj/obj/person1.xml HTTP/1.1 Les objets inclus dans les autres objets ont un nom de telle sorte qu'ils peuvent être obtenus en concaténant l'adresse de l'objet avec le nom de l'objet inclus. Par exemple, l'objet "age" de l'exemple précédent peut être obtenu directement en utilisant l'adresse informatique URI suivante : http://occeania/web-obj/obj/employee1.xml#age Cet objet littéral peut également avoir sa propre adresse URI : http ://oceania/web-obj/obj/interger1.xm1 Une fonction peut également être référencée en concaténant l'adresse de l'interface qui la définit avec le nom de la fonction : http://oceania/web-obj/class/Calculator.xml#square Une étape d'extraction est alors mise en #uvre sur l'ordinateur distant C3 pour extraire une adresse informatique, par exemple URI1, de la requête informatique de transfert. Une étape d'identification permet ensuite sur l'ordinateur C3 ayant reçu la requête d'identifier l'objet informatique 02 associé à l'adresse informatique URI1 dans la table d'associations T. Plus précisément, une étape de test permet de vérifier si un objet informatique est bien associé à l'adresse informatique URI1 extraite dans la table d'associations T. Dans la négative, de manière classique sur un réseau de communication, l'ordinateur envoie en guise de réponse, une exception, avec un message du type "objet absent". Au contraire, si l'objet 02 est trouvé dans la table d'associations T, une étape de traduction est mise en #uvre pour traduire cet objet informatique identifié 02 dans le langage de communication XML défini par le réseau de communication. Une étape de transfert de cet objet informatique traduit 02 est alors mise en #uvre en réponse à la requête de transfert émise. A réception de l'objet 02 sur l'ordinateur local C1, une étape d'extraction E41 de cet objet informatique d'une adresse informatique URI' référençant une interface de l'objet est mise en #uvre. Bien entendu, l'objet 02 peut comporter plusieurs interfaces référencées chacune par une adresse informatique sur le réseau de communication. Une étape E42 d'envoi à l'ordinateur distant C3 d'une requête d'obtention GET de cette interface est mise en #uvre, la requête d'obtention GET interface incluant l'adresse informatique extraite, par exemple l'adresse informatique URI1'. Un procédé de transfert de l'interface sur le réseau de communication informatique 4, en réponse à cette requête d'obtention envoyée, est alors mis en #uvre sur l'ordinateur distant C3. Comme illustré à la figure 10, ce procédé de transfert comporte tout d'abord une étape de réception E51 d'une requête GET interface. Puis une étape d'extraction E52 permet d'extraire de cette requête d'obtention, l'adresse informatique URI1' référençant l'interface demandée. Une étape d'identification E53 est ensuite mise en #uvre pour trouver l'interface dans la table d'associations T' des interfaces. Ici, à titre d'exemple, la lecture de la table d'associations T' d'interface permet de trouver l'interface 11 en association avec l'adresse informatique URI1'. Une étape de test E54 permet de vérifier qu'une telle interface 11 a bien été trouvée. Dans la négative, l'envoi d'une réponse est réalisée dans une étape E55 en envoyant une exception signalant l'erreur. En revanche, lorsque l'interface 11 a été identifiée, une étape de traduction E56 est mise en #uvre si nécessaire pour traduire cette interface dans le langage XML. Cette étape de traduction E56 n'est bien évidemment mise en oeuvre que si l'interface 11 stockée dans la table d'associations T' est dans un langage de programmation et non déjà traduite. Une étape de transfert E57 de cette interface traduite dans le langage de communication XML est ensuite mise en #uvre afin de renvoyer l'interface à l'ordinateur local C1. Cette interface traduite comprend, comme décrit précédemment en référence au langage de communication XML, une ou plusieurs fonctions associées respectivement au code d'exécution de ces fonctions. Une étape de réception E43 du résultat de la requête GET interface est alors réalisée sur l'ordinateur local C1. Une étape d'extraction E44 permet alors d'extraire l'interface 11 comprenant une ou plusieurs fonctions associées respectivement à leur code d'exécution. De préférence, dans ce mode de réalisation, des étapes E45 à E50 permettent de créer une classe dans le langage de programmation utilisé par l'application informatique de l'ordinateur local C1. Cette classe comprend les fonctions de l'interface réceptionnée 11 et le code d'exécution de ces fonctions directement exécutables ainsi par l'application informatique de l'ordinateur local C1. Pour cela, on crée une classe correspondante dans une étape de création E45 et on sélectionne une première fonction de l'interface à l'étape de sélection E46. Une étape de test E47 permet de vérifier s'il existe ou non des fonctions non traitées dans cette interface. S'il reste des fonctions, une étape E48 permet d'obtenir le nom et le code d'exécution de la fonction et une étape d'ajout E49 permet d'inscrire ce code dans la classe correspondante. On considère ensuite une fonction suivante de l'interface 11 dans une étape E50 et on met en #uvre de manière itérative les étapes E47 à E49 pour ajouter le code de chacune des fonctions dans la classe correspondante. Lorsque toutes les fonctions ont été traitées, on peut exécuter une fonction directement sur l'objet informatique copié 02 sur l'ordinateur local C1 à partir des codes enregistrés dans la classe. Grâce à l'invention, dans ce mode de réalisation, on peut activer une fonction sur la copie d'un objet distant 02, directement sur un ordinateur local C1. On comprend que dans ce mode de réalisation, le dispositif d'exécution à distance conforme à l'invention et le procédé d'exécution à distance mis en #uvre par ce dispositif sont incorporés dans l'ordinateur distant C3. Plus précisément, des moyens de réception d'une requête d'obtention, des moyens d'extraction d'une adresse informatique, des moyens d'identification d'une interface et des moyens de transfert de cette interface sont incorporés dans un microprocesseur 500 de l'ordinateur C3, la mémoire morte 501 étant adaptée à mémoriser un programme de transfert d'une interface d'un objet informatique sur le réseau de communication informatique, et une mémoire vive 502 comprenant des registres adaptés à mémoriser des variables modifiées lors de l'exécution du programme, et notamment mémorisant la table d'associations T' telle qu'illustrée à la figure 8. De manière analogue, un dispositif d'activation sur l'ordinateur local C1 d'une fonction d'un objet informatique distant 02 comporte des moyens de réception d'une copie de cet objet informatique 02, des moyens d'extraction d'une adresse informatique associée à l'interface de cet objet, des moyens d'envoi d'une requête d'obtention de cette interface, des moyens de réception de cette interface et des moyens de création d'une classe dans un langage de programmation utilisé par l'ordinateur local C1. Ces moyens du dispositif d'activation sont incorporés dans le microprocesseur 500 de l'ordinateur local C1, une mémoire morte étant adaptée à mémoriser un programme d'activation sur cet ordinateur local C1 d'une fonction d'un objet informatique distant 02, et une mémoire vive étant adaptée à mémoriser dans des registres les variables modifiées lors de l'exécution de ce programme. On va décrire à présent en référence aux figures 11 et 12 un second mode de réalisation de l'invention, qui permet d'activer sur un réseau de communication informatique une fonction d'un objet informatique 02 stocké sur un ordinateur distant C3. Dans ce mode de réalisation, un procédé d'élaboration d'une requête informatique est mis en #uvre sur l'ordinateur local C1. Une étape d'initialisation E60 permet de créer une requête d'invocation POST vide, pour invoquer une fonction à distance. Une étape d'inscription E61 est ensuite mise en #uvre afin d'inscrire l'adresse informatique référençant l'objet informatique distant 02. Dans cet exemple, l'adresse informatique de l'objet distant 02 est l'UR11. Une étape d'inscription E62 permet ensuite d'ajouter dans cette requête un identificateur de la fonction invoquée. Typiquement, cette fonction peut être identifiée par son nom. De préférence, dans ce mode de réalisation, une étape de test E63 permet de vérifier si des paramètres (en anglais "input arguments") sont nécessaires pour exécuter cette fonction. Dans l'affirmative, une étape de traduction E64 est mise en #uvre afin de traduire ces paramètres du langage de programmation, ici C++, vers un langage de communication XML, selon le procédé de traduction décrit précédemment. Une étape E65 permet d'ajouter ces paramètres à la requête d'invocation POST. On considère ensuite dans une étape E66 le paramètre suivant associé à la fonction et on réitère sur l'ensemble des paramètres les étapes E63 à E66. Lorsque tous les paramètres de la fonction ont été traités et ajoutés à la requête d'invocation POST, une étape de test E67 permet de vérifier si un code d'exécution est associé à cette fonction. Dans l'affirmative, une étape d'ajout E68 permet d'associer ce code d'exécution à la fonction dans la requête d'invocation POST. * Cette requête est ensuite envoyée dans une étape de transfert E69 à destination de l'ordinateur distant C3. Un exemple de requête d'invocation POST de fonction à distance est donnée ci-dessous. L'adresse à laquelle est envoyée la requête devrait être celle de l'objet sur lequel s'applique la fonction. POST /web-obj/obj/calculator1.xml HTTP/1.1 Comme illustré à la figure 12, le procédé d'activation de la fonction sur l'objet informatique 02 est ensuite mis en #uvre sur l'ordinateur distant C3. Une étape de réception E70 permet de réceptionner la requête d'invocation POST élaborée comme décrit précédemment. Une étape d'extraction E71 est ensuite mise en #uvre afin d'extraire l'adresse informatique référençant l'objet informatique 02 sur lequel est invoquée la fonction. Une étape d'extraction E72 est également mise en #uvre afin d'extraire de la requête l'identificateur de la fonction. De préférence, une étape de test E73 permet de vérifier si des paramètres sont nécessaires à l'exécution de cette fonction. Dans l'affirmative, une étape d'extraction E74 de ces paramètres est mise en #uvre, puis une étape de traduction inverse E75 permet de traduire l'ensemble de ces paramètres du langage de communication XML vers un langage de programmation tel que le langage C++. On considère ensuite dans une étape E76 le paramètre suivant, et l'ensemble de ces paramètres est ainsi analysé en réitérant les étapes E73 à E76. Lorsque tous les paramètres ont été extraits de la requête POST et traduits, une étape E77 permet de vérifier si un code d'exécution est inséré dans la requête POST. Dans l'affirmative, le procédé d'activation comporte une étape d'extraction E78 de ce code d'exécution associé à la fonction, et une étape d'exécution E79 de ce code sur l'objet informatique distant 02. Bien entendu, si aucun code d'exécution n'est inséré dans la requête d'invocation POST, une étape E80 permet d'exécuter la méthode locale disponible sur l'ordinateur distant C3. Une étape de test E81 permet de vérifier si l'activation de cette fonction à été réalisée sans erreur. Si une erreur s'est produite, une réponse est envoyée dans une étape E82 à destination de l'ordinateur local C1, cette réponse comportant de manière connue une exception afin de signaler l'erreur produite. Sinon, une étape de test E83 permet de vérifier si la fonction exécutée fournit ou non un résultat. Dans la négative, la réponse adressée à l'ordinateur local est envoyée dans une étape E84 et comporte seulement la mention "OK". En revanche, si un résultat doit être fourni, tel qu'un objet modifié, une étape de traduction E85 est alors mise en #uvre sur l'objet informatique 02 sur lequel la fonction a été réalisée, afin de traduire cet objet informatique 02 de son langage de programmation C++ vers le langage de communication XML. Une étape d'envoi E86 est ensuite mise en #uvre afin de renvoyer le résultat, c'est-à-dire l'objet informatique 02 traduit, à destination de l'ordinateur local C1 qui a invoqué à distance la fonction. Dans ce mode de réalisation, le dispositif d'exécution à distance et le procédé associé conformes à l'invention sont incorporés dans l'ordinateur local C1. Plus précisément, le dispositif d'élaboration de la requête informatique POST comprenant des moyens d'inscription d'une adresse informatique, des moyens d'inscription d'un identificateur de la fonction à invoquer et des moyens d'ajout du code d'exécution associé à cette fonction, est incorporé dans le microprocesseur 500 de l'ordinateur local C1, la mémoire morte 501 étant adaptée à mémoriser le programme d'élaboration d'une telle requête informatique poste, et la mémoire vive 502 comprenant des registres adaptés à mémoriser des variables modifiées lors de l'exécution de ce programme. De manière analogue, un dispositif d'activation conforme à l'invention est incorporé dans l'ordinateur distant C3. Il comporte des moyens de réception d'une requête d'activation POST, des moyens d'extraction de l'adresse informatique référençant l'objet informatique distant, des moyens d'extraction de l'identificateur de la fonction à invoquer, des moyens d'extraction du code d'exécution de cette fonction et des moyens d'exécution de ce code, incorporés dans le microprocesseur 500 de l'ordinateur C3. La mémoire morte 501 de cet ordinateur C3 est adaptée à mémoriser un programme adapté à mettre en #uvre le procédé d'activation sur le réseau de communication informatique et la mémoire vive 502 comprenant des registres adaptés à mémoriser des variables modifiées lors de l'exécution de ce programme. Ainsi, grâce à l'invention, les objets informatiques créés par chaque application informatique sur les différents sites d'un réseau de communication peuvent être partagés facilement par les différents sites connectés à ce réseau. En particulier, les fonctions associées à ces objets peuvent être invoquées à distance sur ce réseau de communication, afin notamment d'éviter tout transfert inutile sur le réseau de communication proprement dit. REVENDICATIONS 1. Procédé d'exécution à distance, sur un réseau de communication informatique (4), d'une fonction sur un objet informatique (02), caractérisé en ce qu'il comporte une étape de transfert (E57, E69) selon un protocole de communication du réseau de communication (4), de la fonction associée à un code d'exécution de ladite fonction. 2. Procédé d'exécution à distance conforme à la revendication 1, caractérisé en ce qu'à ladite étape de transfert (E57, E69), ladite fonction est en outre associée à au moins un paramètre traduit dans un langage de communication (XML) utilisable par le protocole de communication du réseau de communication informatique (4). 3. Procédé d'exécution à distance conforme à l'une des revendications 1 ou 2, caractérisé en ce qu'il comporte une étape de transfert (E57) selon un protocole de communication dudit réseau de communication (4), d'une interface (11) dudit objet informatique (02) comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. 4. Procédé d'exécution à distance conforme à l'une des revendications 1 à 3, caractérisé en ce que le code d'exécution associé à ladite fonction lors de l'étape de transfert (E57, E69) est un code source, un code précompilé ou un code compilé. 5. Procédé d'activation sur un ordinateur local (C1) d'une fonction d'un objet informatique distant (02) sur un réseau de communication informatique (4), caractérisé en ce qu'il comporte les étapes suivantes : - réception (E40) sur l'ordinateur local (C1) d'une copie dudit objet informatique distant (02) traduit dans un langage de communication (XML) utilisable par le protocole de communication du réseau de communication (4) ; - extraction (E41) dudit objet informatique reçu (02) d'au moins une adresse informatique (URI1') référençant une interface dudit objet (02) ; - envoi (E42) à un ordinateur distant (C3) d'une requête d'obtention de ladite interface incluant l'adresse informatique (URI1') ; et - réception (E43) en réponse de ladite interface (11) comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. 6. Procédé d'activation conforme à la revendication 5, caractérisé en ce qu'il comporte en outre une étape de création (E45-E50) d'une classe dans un langage de programmation utilisé par une application informatique dudit ordinateur local (C1) pour mémoriser la ou les fonctions de ladite interface réceptionnée (11) et le code d'exécution desdites fonctions. 7. Procédé de transfert d'une interface sur un réseau de communication informatique (4), en réponse à une requête d'obtention envoyée à l'étape d'envoi (E42) dudit procédé d'activation conforme à l'une des revendications 5 ou 6, caractérisé en ce qu'il comprend les étapes suivantes : - réception (E51) de ladite requête d'obtention ; - extraction (E52) de l'adresse informatique (URI1') référençant ladite interface (11) ; - identification (E53) de ladite interface (11) dans une table d'association (T') mémorisant ladite adresse électronique en association avec une interface ; et - transfert (E57) de ladite interface (11) traduite dans un langage de communication (XML) utilisable par le protocole de communication du réseau (4), comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. 8. Procédé d'élaboration d'une requête informatique d'activation d'une fonction d'un objet informatique (02) sur un ordinateur distant (C3) du réseau de communication informatique (4), caractérisé en ce qu'il comporte les étapes suivantes : - inscription (E61) d'une adresse informatique (URI1) référençant ledit objet informatique (02) ; - inscription (E62) d'un identificateur de la fonction ; et - ajout (E68) du code d'exécution associé à ladite fonction. 9. Procédé d'activation sur un réseau de communication informatique (4) d'une fonction d'un objet informatique (02) sur un ordinateur distant (C3), caractérisé en ce qu'il comporte les étapes suivantes : - réception (E70) d'une requête d'activation élaborée selon le procédé d'élaboration conforme à la revendication 8 ; - extraction (E71) de ladite requête d'activation, de l'adresse informatique (URI1) référençant l'objet informatique (02) ; - extraction (E72) de l'identificateur de ladite fonction ; - extraction (E78) du code d'exécution associé à ladite fonction ; et - exécution (E79) dudit code extrait sur l'objet informatique (02). 10. Dispositif d'exécution à distance, sur un réseau de communication informatique (4), d'une fonction sur un objet informatique (02), caractérisé en ce qu'il comprend des moyens de transfert (500,501, 502) selon un protocole de communication du réseau de communication (4), adaptés à transférer une fonction associée à un code d'exécution de la fonction. 11. Dispositif d'exécution à distance conforme à la revendication 10, caractérisé en ce que les moyens de transfert (500,501, 502) sont adaptés à associer à ladite fonction au moins un paramètre traduit dans un langage de communication (XML) utilisable par le protocole de communication dudit réseau de communication informatique (4). 12. Dispositif d'exécution à distance conforme à l'une des revendications 10 ou 11, caractérisé en ce qu'il comporte des moyens de transfert (500,501, 502) adaptés à transférer selon un protocole de communication du réseau de communication (4), une interface de l'objet informatique (02), comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. 13. Dispositif d'exécution à distance conforme à l'une des revendications 10 à 12, caractérisé en ce que le code d'exécution associé à une fonction transférée est un code source, un code précompilé ou un code compilé. 14. Dispositif d'exécution à distance conforme à l'une des revendications 10 à 13, caractérisé en ce qu'il est incorporé dans un microprocesseur (500), une mémoire morte (501) étant adaptée à mémoriser un programme d'exécution à distance d'une fonction sur un objet informatique, et une mémoire vive (502) comprenant des registres adaptés à mémoriser des variables modifiées lors de l'exécution dudit programme. 15. Dispositif d'activation sur un ordinateur local (C1) d'une fonction d'un objet informatique distant (02) sur un réseau de communication informatique (4), caractérisé en ce qu'il comprend : - des moyens de réception (500,501, 502) sur l'ordinateur local (C1) d'une copie dudit objet informatique distant (02) traduit dans un langage de communication (XML) utilisable par le protocole de communication du réseau de communication (4) ; - des moyens d'extraction (500,501, 502) dudit objet informatique reçu (02) d'au moins une adresse informatique (URI1') référençant une interface (11) dudit objet (02) ; - des moyens d'envoi (500,501, 502) à un ordinateur distant (C3) d'une requête d'obtention de ladite interface (11) incluant l'adresse informatique (URI1') ; et - des moyens de réception (500,501, 502) en réponse de ladite interface (11) comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. 16. Dispositif d'activation conforme à la revendication 15, caractérisé en ce qu'il comprend en outre des moyens de création (500,501, 502) d'une classe dans un langage de programmation (XML) utilisé par une application informatique dudit ordinateur local (C1) pour mémoriser la ou les fonctions de ladite interface réceptionnée (11) et le code d'exécution desdites fonctions. 17. Dispositif d'activation conforme à l'une des revendications 15 ou 16, caractérisé en ce qu'il est incorporé dans un microprocesseur (500), une mémoire morte (501) étant adaptée à mémoriser un programme d'activation d'une fonction sur un objet informatique distant, et une mémoire vive (502) comprenant des registres adaptés à mémoriser des variables modifiées lors de l'exécution dudit programme. 18. Dispositif de transfert d'une interface sur un réseau de communication informatique (4), en réponse à une requête d'obtention envoyée par les moyens d'envoi dudit dispositif d'activation conforme à l'une des revendications 15 à 17, caractérisé en ce qu'il comprend : - des moyens de réception (500,501, 502) de ladite requête d'obtention ; - des moyens d'extraction (500,501, 502) de l'adresse informatique (URI1') référençant ladite interface (11) ; - des moyens d'identification (500,501, 502) de ladite interface (11) dans une table d'association (T') mémorisant ladite adresse informatique en association avec une interface ; - des moyens de transfert (500, 501,502) de ladite interface (I1) traduite dans un langage de communication (XML) utilisable par le protocole de communication du réseau (4), comprenant une ou plusieurs fonctions associées respectivement au code d'exécution desdites fonctions. 19. Dispositif de transfert d'une interface conforme à la revendication 18, caractérisé en ce qu'il est incorporé dans un microprocesseur (500), une mémoire morte (501) étant adaptée à mémoriser un programme de transfert d'une interface, et une mémoire vive (502) comprenant des registres adaptés à mémoriser des variables modifiés lors de l'exécution dudit programme. 20. Dispositif d'élaboration d'une requête informatique d'activation d'une fonction d'un objet informatique (02) sur un ordinateur distant (C3) du réseau de communication informatique (4), caractérisé en ce qu'il comprend : - des moyens d'inscription (500,501, 502) d'une adresse informatique (URI1) référençant ledit objet informatique (02) ; - des moyens d'inscription (500,501, 502) d'un identificateur de la fonction ; et - des moyens d'ajout (500,501, 502) du code d'exécution associé à ladite fonction. 21. Dispositif d'élaboration d'une requête informatique conforme à la revendication 20, caractérisé en ce qu'il est incorporé dans un microprocesseur (500), une mémoire morte (501) étant adaptée à mémoriser un programme d'élaboration d'une requête informatique d'activation, et une mémoire vive (502) comprenant des registres adaptés à mémoriser des variables modifiées lors de l'exécution dudit programme. 22. Dispositif d'activation sur un réseau de communication informatique (4) d'une fonction d'un objet informatique (02) sur un ordinateur distant (C3), caractérisé en ce qu'il comprend : - des moyens de réception (500,501, 502) d'une requête d'activation élaborée selon le procédé d'élaboration conforme à la revendication 8 ; - des moyens d'extraction (500,501, 502) de ladite requête d'activation, de l'adresse informatique (URI1) référençant l'objet informatique (02) ; - des moyens d'extraction (500,501, 502) de l'identificateur de ladite fonction ; - des moyens d'extraction (500, 501, 502) du code d'exécution associé à ladite fonction ; et - des moyens d'exécution (500,501, 502) dudit code extrait sur l'objet informatique (02). 23. Dispositif d'activation conforme à la revendication 22, caractérisé en ce qu'il est incorporé dans un microprocesseur (500), une mémoire morte (501) étant adaptée à mémoriser un programme d'activation d'une fonction sur un objet informatique distant, et une mémoire vive (502) comprenant des registres adaptés à mémoriser des variables modifiées lors de l'exécution dudit programme. 24. Ordinateur, caractérisé en ce qu'il comprend un dispositif d'exécution à distance conforme à l'une des revendications 10 à 14. 25. Ordinateur, caractérisé en ce qu'il comporte un dispositif d'activation sur ledit ordinateur d'une fonction d'un objet informatique distant conforme à l'une des revendications 15 à 17. 26. Ordinateur, caractérisé en ce qu'il comporte un dispositif de transfert d'une interface conforme à l'une des revendications 18 ou 19. 27. Ordinateur, caractérisé en ce qu'il comporte un dispositif d'élaboration d'une requête informatique d'activation conforme à l'une des revendications 20 ou 21. 28. Ordinateur, caractérisé en ce qu'il comporte un dispositif d'activation d'une fonction sur un ordinateur distant conforme à l'une des revendications 22 ou 23. 29. Réseau de communication informatique, caractérisé en ce qu'il comporte un dispositif d'exécution à distance conforme à l'une des revendications 10 à 14 et/ou un dispositif d'activation sur un ordinateur local d'une fonction d'un objet informatique distant conforme à l'une des revendications 15 à 17 et/ou un dispositif de transfert d'une interface conforme à l'une des revendications 18 ou 19 et/ou un dispositif d'élaboration d'une requête informatique d'activation conforme à l'une des revendications 20 ou 21 et/ou un dispositif d'activation d'une fonction sur un ordinateur distant conforme à l'une des revendications 22 ou 23. 30. Réseau de communication informatique conforme à la revendication 29, caractérisé en ce qu'il forme un réseau de grande étendue.