FR2795536A1 - Procede de traduction, de transfert et de mise a jour d'un objet informatique sur un reseau de communication informatique - Google Patents

Procede de traduction, de transfert et de mise a jour d'un objet informatique sur un reseau de communication informatique Download PDF

Info

Publication number
FR2795536A1
FR2795536A1 FR9908156A FR9908156A FR2795536A1 FR 2795536 A1 FR2795536 A1 FR 2795536A1 FR 9908156 A FR9908156 A FR 9908156A FR 9908156 A FR9908156 A FR 9908156A FR 2795536 A1 FR2795536 A1 FR 2795536A1
Authority
FR
France
Prior art keywords
computer
address
data field
communication network
extracted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR9908156A
Other languages
English (en)
Inventor
Jean Jacques Moreau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Research Center France SAS
Original Assignee
Canon Research Center France SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Research Center France SAS filed Critical Canon Research Center France SAS
Priority to FR9908156A priority Critical patent/FR2795536A1/fr
Priority to DE60039554T priority patent/DE60039554D1/de
Priority to EP00401754A priority patent/EP1065592B1/fr
Priority to US09/598,199 priority patent/US6766350B1/en
Priority to JP2000191597A priority patent/JP4965014B2/ja
Publication of FR2795536A1 publication Critical patent/FR2795536A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Un procédé de traduction sur un réseau de communication informatique permet de traduire un objet informatique d'un langage de programmation utilisé par une application informatique vers un langage de communication utilisable par un protocole de communication du réseau de communication informatique. Ce procédé de traduction comprend les étapes suivantes :- lecture (E1) d'un champ de données inclus dans l'objet informatique;- substitution (E5-E7) du champ de données par une adresse informatique associée au champ de données lorsque la structure du champ de données est complexe; et- mémorisation (E5-E7) de l'adresse informatique associée au champ de données dans une table d'associations (T).

Description

<Desc/Clms Page number 1>
La présente invention concerne un procédé de traduction d'un objet informatique sur un réseau de communication informatique.
Elle concerne également un procédé de transfert d'un objet informatique sur un réseau de communication informatique et un procédé de mise à jour à distance d'un objet informatique sur un site d'un réseau de communication informatique.
Corrélativement, la présente invention concerne un dispositif de traduction d'un objet informatique, un dispositif de transfert d'un objet informatique et un dispositif de mise à jour à distance d'un objet informatique sur un site d'un réseau de communication informatique adaptés à mettre en #uvre les procédés précités conformes à l'invention.
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
<Desc/Clms Page number 2>
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 (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
<Desc/Clms Page number 3>
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 est peu adapté à la traduction et au transfert d'un objet informatique ayant des champs de données de structure complexe. Une telle structure complexe s'observe notamment lorsqu'un champ de données pointe vers ou contient au moins un autre champ de données qui lui-même peut être complexe.
Le système WDDX dans ce cas requiert que la représentation XML de la structure de données supérieure contienne également la représentation XML des structures de données inférieures, et cela de manière récursive.
Cette manière de procéder affecte considérablement les performances de la traduction et du transfert d'objets informatiques sur un réseau.
En outre, la représentation en langage de communication XML occupe inutilement une large bande passante du réseau, alors que le site destinataire peut en réalité ne pas avoir besoin des structures de données inférieures.
La présente invention a pour but de faciliter le partage d'objets informatiques sur un réseau de communication.
A cet effet, la présente invention vise un procédé de traduction d'un objet informatique sur un réseau de communication informatique, d'un langage de programmation utilisé par une application informatique vers un langage de communication utilisable par un protocole de communication du réseau de communication informatique, caractérisé en ce qu'il comprend les étapes suivantes :
<Desc/Clms Page number 4>
- lecture d'un champ de données inclus dans ledit objet informatique ; - substitution dudit champ de données par une adresse informatique associée audit champ de données lorsque la structure dudit champ de données est complexe ; et - mémorisation de ladite adresse informatique associée audit champ de données dans une table d'associations.
Ainsi, le procédé de traduction d'un objet informatique conforme à l'invention permet de remplacer temporairement au moins un champ de données complexes par une adresse informatique et éventuellement de ne procéder à la traduction dans un langage de communication de ce champ de données seulement lorsqu'il est requis par un site du réseau de communication.
Les champs de données inclus dans un objet informatique comprennent à la fois des données ou attributs proprement dits, les interfaces liées à cet objet et les fonction applicables.
Grâce à la table d'associations dans laquelle sont mémorisées les adresses informatiques associées à chaque champ de données, différents champs de données complexes sont rendus visibles pour l'ensemble des sites connectés au réseau.
Seuls les objets littéraux sont traduits par valeur.
Ces objets littéraux sont par exemple des entiers, des nombres à virgule, des booléens, des caractères ou une chaîne courte de caractères.
Selon une caractéristique préférée de l'invention, à l'étape de mémorisation, ledit champ de données est mémorisé dans ledit langage de programmation.
Ainsi, on peut générer à l'avance des représentations des différents champs de données à l'aide d'une adresse informatique stockée dans la table d'associations sans devoir réaliser effectivement la traduction de ce champ de données du langage de programmation vers le langage de communication.
<Desc/Clms Page number 5>
Cette traduction dans le langage de communication peut être reportée jusqu'à ce qu'un objet soit demandé par un des sites du réseau via une adresse informatique.
En pratique, les structures de données complexes sont choisies parmi au moins un objet informatique, un tableau ou une chaîne de caractères d'une longueur minimale.
Ainsi, lorsque les champs de données complexes sont eux-mêmes des objets informatiques, le procédé de traduction conforme à l'invention permet d'obtenir une représentation d'un objet informatique à l'aide de liens pointant vers d'autres objets informatiques, analogues aux pointeurs inclus dans le langage d'annotation HTML utilisé sur le réseau Internet.
On obtient ainsi un graphe d'objets informatiques analogue au graphe de documents pointant les uns vers les autres qui forment la Toile (en anglais "World-Wide-Web") dans un réseau de communication du type Internet.
Selon une caractéristique avantageuse de l'invention, le procédé de traduction comporte une étape de comparaison de la structure d'un champ de données avec une liste préétablie de structures de données complexes.
Cette comparaison facilite en pratique la détection des champs de données complexes inclus dans un objet informatique afin de leur associer une adresse informatique.
Selon un autre aspect de l'invention, un procédé de transfert d'un objet informatique sur un réseau de communication informatique, est caractérisé en ce qu'il comprend les étapes suivantes : - réception d'une requête informatique de transfert ; - extraction d'une adresse informatique de ladite requête informatique ; - identification d'un objet informatique associé à ladite adresse informatique dans une table d'associations ; - traduction dudit objet informatique identifié dans un langage de communication utilisable par un protocole de communication dudit réseau de communication ; et
<Desc/Clms Page number 6>
- transfert de l'objet informatique traduit.
Ainsi, grâce à l'identification de chaque objet informatique dans une table d'associations au moyen de son adresse informatique, les objets informatiques peuvent être partagés facilement sur le réseau de communication et être transférés d'un site sur un autre selon les besoins.
Selon un troisième aspect de l'invention, un procédé de mise à jour à distance d'un objet informatique sur un site d'un réseau de communication informatique, est caractérisé en ce qu'il comprend les étapes suivantes : - réception d'une requête informatique de mise à jour ; - extraction d'une adresse informatique de ladite requête informatique ; - extraction de ladite requête informatique d'un objet informatique traduit dans un langage de communication utilisable par un protocole de communication dudit réseau de communication informatique ; et - association, dans une table d'associations dudit site, de ladite adresse informatique et de l'objet informatique extraits.
On peut ainsi mettre à jour à distance une table d'associations sur un site, à partir de requêtes informatiques incluant à la fois une adresse informatique et un objet informatique traduit dans un langage de communication.
En pratique, lorsqu'une opération a eu lieu sur un objet informatique et que les champs de données ont été modifiées, le site sur lequel l'objet informatique a été modifié peut émettre une requête informatique de mise à jour générale (en anglais "Broadcast request"), à destination de l'ensemble des sites de réseau, afin que ces derniers mettent à jour les tables d'associations stockées respectivement sur ces sites.
Chaque site peut également conserver en mémoire la liste des objets informatiques qui ont été copiés sur des sites distants, en association avec l'adresse de ces sites distants et émettre une requête de mise à jour à destination de ces sites distants lorsque l'objet associé a été modifié.
<Desc/Clms Page number 7>
De préférence, le procédé de mise à jour à distance comporte en outre une étape de traduction de l'objet informatique extrait dans un langage de programmation utilisé par une application informatique dudit site.
Ainsi, chaque site peut mettre à jour dans ses données internes des objets informatiques traduits dans un langage de programmation propre à l'application informatique du site.
Selon une caractéristique préférée de ce procédé de mise à jour à distance, l'étape d'association comprend les sous-étapes suivantes : - identification de l'adresse informatique extraite dans la table d'associations dudit site ; et - dans l'affirmative, substitution d'un objet informatique antérieur stocké en association avec l'adresse informatique extraite dans la table d'associations, par l'objet informatique extrait.
Ainsi, la table des associations est mise à jour de telle sorte que l'adresse informatique soit associée au nouvel objet informatique transféré.
De préférence, à l'étape de substitution, des champs de données de l'objet informatique extrait sont recopiés vers l'objet informatique antérieur stocké dans la table d'associations dudit site.
Ainsi, au lieu de supprimer globalement l'objet informatique antérieur stocké dans la table d'association, on recopie un à un les champs de données du nouvel objet vers l'objet informatique antérieur. Par conséquent, tous les liens internes à l'application qui pointaient vers l'objet informatique antérieur sont toujours valables et pointeront alors sur un objet informatique mis à jour.
Alternativement, l'étape d'association comprend les sous-étapes suivantes : - identification de l'adresse informatique extraite dans la table d'associations dudit site ; et - dans la négative, ajout de l'association dudit objet de informatique extrait et de ladite adresse informatique extraite dans la table d'associations dudit site.
<Desc/Clms Page number 8>
La table d'associations d'un site peut être ainsi enrichie à distance par l'insertion de nouveaux objets informatiques issus d'une requête de mise à jour.
Corrélativement, la présente invention concerne un dispositif de traduction d'un objet informatique sur un réseau de communication informatique, d'un langage de programmation utilisé par une application informatique par un langage de communication utilisable par un protocole de communication dudit réseau de communication informatique, caractérisé en ce qu'il comporte : - des moyens de lecture d'un champ de données inclus dans ledit objet informatique ; - des moyens de substitution dudit champ de données par une adresse informatique associée audit champ de données, lorsque la structure dudit champ de données est complexe ; et - des moyens de mémorisation de ladite adresse informatique associée audit champ de données dans une table d'associations.
Selon un second aspect de l'invention, un dispositif de transfert d'un objet informatique sur un réseau de communication informatique, est caractérisé en ce qu'il comporte : - des moyens de réception d'une requête informatique de transfert ; - des moyens d'extraction d'une adresse informatique de ladite requête informatique ; - des moyens d'identification d'un objet informatique associé à ladite adresse informatique dans une table d'associations ; - des moyens de traduction dudit objet informatique identifié dans un langage de communication utilisable par un protocole de communication dudit réseau de communication ; et - des moyens de transfert dudit objet informatique traduit.
Enfin, selon un troisième aspect de l'invention, un dispositif de mise à jour à distance d'un objet informatique sur un site d'un réseau de communication informatique comporte :
<Desc/Clms Page number 9>
- des moyens de réception d'une requête informatique de mise à jour; - des moyens d'extraction d'une adresse informatique de ladite requête informatique ; - des moyens d'extraction de ladite requête informatique d'un objet informatique traduit dans un langage de communication utilisable par un protocole de communication dudit réseau de communication informatique ; - des moyens d'association, dans une table d'associations dudit site, de ladite adresse informatique et de l'objet informatique extraits.
Les caractéristiques et avantages des dispositifs de traduction, de transfert et de mise à jour à distance conformes à l'invention, sont analogues à ceux décrits précédemment, respectivement pour les procédés de traduction, de transfert et de mise à jour à distance.
La présente invention concerne également un ordinateur comprenant un dispositif de traduction d'un objet informatique et/ou un dispositif de transfert d'un objet informatique et/ou un dispositif de mise à jour à distance conformes à l'invention.
Elle vise aussi un réseau de communication informatique comportant un dispositif de traduction d'un objet informatique et/ou un dispositif de transfert d'un objet informatique et/ou un dispositif de mise à jour à distance 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 également un programme d'ordinateur stocké sur un moyen de stockage ou de support d'information, éventuellement amovible, incorporé ou non dans un ordinateur, comprenant des portions de codes logiciels ou des instructions de programme adaptées à mettre en #uvre les étapes du procédé de traduction conforme à l'invention et/ou les étapes du procédé de transfert conforme à l'invention et/ou les étapes du procédé de
<Desc/Clms Page number 10>
mise à jour à distance conforme à 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 ; - la figure 7 est un algorithme illustrant un procédé de traduction d'un objet informatique conforme à un premier aspect de l'invention ; - la figure 8 est un algorithme illustrant un procédé de transfert d'un objet informatique conforme à un second aspect de l'invention ; - la figure 9 est un algorithme illustrant un procédé de mise à jour à distance d'un objet informatique conforme à un troisième aspect de l'invention ; et - la figure 10 est un algorithme illustrant un procédé de suppression d'un objet informatique.
La présente invention dont un mode de réalisation va être décrit cidessous, s'applique en général aux réseaux de communication informatique.
<Desc/Clms Page number 11>
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 ; etle 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
<Desc/Clms Page number 12>
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 données de l'objet. 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.
<Desc/Clms Page number 13>
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.
Cet ordinateur comporte un microprocesseur 500, une mémoire morte 501 comprenant un programme pour mettre en oeuvre 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.
<Desc/Clms Page number 14>
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.
Un ordinateur C1 comporte un dispositif de traduction 10 tel que représenté schématiquement à la figure 4, un dispositif de transfert et un dispositif de mise à jour des objets informatiques.
Bien entendu, chaque ordinateur C1 à C6 du réseau de communication peut comporter de tels dispositifs.
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
<Desc/Clms Page number 15>
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.
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.
<objects> <object>...</object> <int .../> <exception .../> <ordered-sequence>...</ordered-sequence> </objects>
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.
<object
Figure img00150001

href="httplloceanialweb-obilobiJperson 1.xml"> <int name="age" value="33"/> <object-ref name="spouse" href=" http://ocea n ia/web-ob i/ob i/pe rson2 xml"/> </object>
<Desc/Clms Page number 16>
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 supporter ainsi l'ensemble des opérations ou fonctions comprises dans cette interface.
Conformément au procédé de traduction de l'invention, 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
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.
<interfaces> <interface>...</interface> </interfaces>
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.
<Desc/Clms Page number 17>
Il existe en outre des interfaces prédéfinies pour des objets littéraux et des objets complexes.
<interface name="Employee"
Figure img00170001

h ref="http'//ocean)a/web-ob!/c)ass/Empbyee xml"> <attributes>...</attributes> <functions>..</functions> </interface>
Champ : Attribut
Il 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.
<attributes> <int ... /> <object>...</object> <keyed-sequence-ref ... /> </attributes>
Champ : fonctions
Il contient la liste des fonctions ou opérations associées à l'objet informatique supportant cette interface.
<functions> <function>...</function> </functions>
Champ : fonction
Il 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.
<Desc/Clms Page number 18>
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.
<function name="square" type="int"> <arguments>...</arguments> <code>..</code> </function>
Champ : arguments
II contient la liste des paramètres (en anglais "input arguments") dont une fonction a besoin pour sa mise en #uvre.
<arguments> <arg>...</arg> </arguments>
Champ : argument
II 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.
<arg name="x" type="int"/>
Champ : Code
II 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 qu'une fonction ne précise pas nécessairement son code d'exécution. Si ce code est trop important, il peut être inclus par référence à l'aide de l'attribut "href'.
<code language="JavaScript" type="source"
Figure img00180001

href="http-/loceania/web-obi/code/Integer/square 15"> </code>
<Desc/Clms Page number 19>
On donne en outre ci-dessous une liste non limitative de champs permettant de représenter des objets littéraux.
Champ : Entier <int name="age" value="33"/>
Champ : Virgule <float name="pi" value="3.14159"/>
Champ : Booléen <bool name="isRoot" value="true"/>
Champ : Caractère <char name="key" charset="iso-8859-1" value="C"/>
Champ : Chaîne
Notons que ce champ ne doit être utilisé, conformément à l'invention, que pour les chaînes de caractères courtes, les autres chaînes étant de préférences incluses par référence à l'aide de l'attribut "ref".
<string name="title" charset="iso-8859-1">The complete Shakespeare's work.
</string>
Champ : Heure <time name="now" value="13 13 :57 GMT"/>
Champ : Date <date name="today" value="Fri, 05 Mar 1999/>
Champ : Adresse URI <uri
<Desc/Clms Page number 20>
name="CRF" va! ue="http://www.crf.canon.fr/"/>
Champ : Exception
Il correspond au concept générique d'exception qui permet de signaler qu'une erreur s'est produite.
<exception value="Index not found" href="http //oceania/web-obj/ex/IndexNotFound 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.
<interval> <int name="lower" value="1"/> <int name="upper" value="10" /> <int name="step" value="2" /> </interval>
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.
<unordered-sequence> <int .../> <int .../> </unordered-sequence>
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.
<ordered-sequence> <object-ref ... /> <object-ref ... /> </ordered-sequence>
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.
<Desc/Clms Page number 21>
Champ : Suite codée
II 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.
<keyed-sequence> <key>...</key><value>...</value> </keyed-sequence>
Champ : Clé
Il est utilisé pour différencier une clé dans une collection de clés.
<key> </key>
Champ : Valeur
II est utilisé pour différencier la valeur d'une clé dans une collection de clés.
<value> </value>
On définit également des champs pour inclure un autre champ par référence.
Champ : Interface-référence
II permet de référencer une interface par un nom et une adresse informatique URI.
<interface-ref name="Person" href="http //oceania/web-obj/class/Person xml"/>
Champ : Objet-référence
II permet de référencer un objet par un nom et une adresse informatique URI.
<object-ref name="child"
Figure img00210001

href="http.//oceanJa/web-obi/obi/child 1.xml"/>
<Desc/Clms Page number 22>
Champ : Chaîne-référence
Il permet de référencer une chaîne par un nom et une adresse informatique URI.
Conformément à l'invention, 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.
<string-ref name="speech" href="http //oceania/web-obj/obj/speech1 xml"/>
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.
<unordered-seqref name="childrens" href="http //oceania/web-obj/obj/set1 xml"/>
Champ : Suite ordonnée-référence
Il permet de référencer une suite ordonnées par un nom et une adresse informatique URI.
<unordered-seqref name="childrens" href="http://oceania/web-obj/obj/array1 xml"/>
Champ : Suite codée-référence
Il permet de référencer une suite codée non ordonnées par un nom et une adresse informatique URI.
<unordered-seqref name="childrens" href="http://oceania/web-obj/obj/dictionary1 xml"/>
Champ : Nul
Il permet de référencer un objet inexistant.
<null />
Champ : Fonctions
<Desc/Clms Page number 23>
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.
<functions> <function>...</function> <function>...</function> <function>...</function> <function>...</function> </functions>
La réponse est une suite d'objets divers, dans l'ordre d'exécution des fonctions énumérées dans la requête.
<objects> <object>...</object> <int ... /> <exception ... /> <object-ref .../> </object>
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.
<function name="square"
Figure img00230001

h ref="http7/oceania/web-obi/obi/calculator1,xmPsquare"> <target href="http //oceania/web-obj/obj/calculator1.xml"/> <arguments> <int value="5" /> </arguments> </function>
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
<Desc/Clms Page number 24>
adressée en retour si l'application distante n'a pas la capacité d'évaluer dynamiquement les fonctions.
<function> <target href="http //oceania/web-obj/obj/calculator1 xml"/> <arguments> <int value="5" /> </arguments> <code language="JavaScript"> </code> </function>
Comme illustré à la figure 5, un même ordinateur C1 peut mettre en #uvre 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
<Desc/Clms Page number 25>
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 et 7, le procédé de traduction conforme à un mode de réalisation.
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.
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, qui peut être par exemple en langage C++.
La traduction de cet objet informatique 01 est réalisée vers un langage de communication XML défini 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.
<Desc/Clms Page number 26>
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.
Conformément à l'invention, 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 une table d'associations T telle qu'illustrée à la figure 6.
Cette table d'associations T est ainsi formée par exemple dans la mémoire vive 502, puis mémorisée dans une mémoire non volatile, telle que dans le disque dur 506 de l'ordinateur C1 illustré à la figure 3.
Cette table d'associations T permet 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
<Desc/Clms Page number 27>
de l'objet informatique 01, sont mémorisés dans la 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.
De préférence, dans cette table T, les champs de données 02, A1, 03, S1...0m sont mémorisés dans le langage de programmation, c'est-à-dire ici dans un langage informatique C++.
La traduction est différée, pour n'être réalisée que si nécessaire, lorsque le champ de données est demandé par une autre application informatique.
Pour la mise en #uvre de ce procédé de traduction, des moyens de lecture de champs de données, de substitution et de mémorisation sont incorporés dans le microprocesseur 500 de l'ordinateur C1, la mémoire morte 501 stockant les instructions de programme pour la mise en #uvre du procédé et la mémoire vive stockant dans des registres les variables modifiées lors de l'exécution de la traduction, et notamment le tableau d'associations T.
Par ailleurs, la présente invention concerne également un procédé de transfert d'un objet informatique sur un réseau de communication informatique tel qu'illustré à la figure 8. Ce procédé de transfert d'objet informatique permet de requérir des objets informatiques sur le réseau de communication, dès lors que ces objets ont été rendus visibles par le procédé de traduction tel que décrit précédemment et sont référencés dans une table d'associations T par leur adresse informatique URI.
Ce procédé de transfert comporte essentiellement une étape de réception E11d'une requête informatique de transfert.
<Desc/Clms Page number 28>
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 : <object href="http://oceania/web-obj/obj/person1 xml"> <int name="age" value="33"/> <object-ref name="spouse" href="http://oceania/web-obj/obj/person2 xml"/> </object>
Cet objet ("personi") 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://oceania/web-obj/obj/employee1.xml#age
Cet objet littéral peut également avoir sa propre adresse URI : http ://oceania/web-obj/obj/interger1.xml
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 :
Figure img00280001

http://oceania/web-obe/class/Calculator.xml#square
<Desc/Clms Page number 29>
Une étape d'extraction E12 est alors mise en #uvre pour extraire une adresse informatique, par exemple URI1, de la requête informatique de transfert.
Une étape d'identification E13 permet ensuite sur l'ordinateur ayant reçu la requête d'identifier l'objet informatique 02 associé à l'adresse informatique URI1dans la table d'associations T.
Plus précisément, une étape de test E4 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 E16 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 E17 de cet objet informatique traduit 02 est alors mise en #uvre en réponse à la requête de transfert émise.
Les moyens de réception, d'extraction, d'identification, de traduction et de transfert du dispositif de transfert sont incorporés dans le microprocesseur 500 de l'ordinateur C1, la mémoire morte 501 mémorisant les instructions de programme pour transférer un objet et la mémoire vive comportant des registres pour mémoriser les variables modifiées lors de l'exécution du procédé de transfert.
On obtient ainsi, grâce au procédé de traduction conforme à l'invention, un système d'objets distribués sur le réseau de communication analogue à la Toile formée par l'ensemble des documents accessibles sur ce réseau.
En comparaison des systèmes d'objets distribués existants, l'invention permet d'introduire des avantages liés au réseau de communication à un système d'objets informatiques partagés sur le réseau, et notamment :
<Desc/Clms Page number 30>
- de cacher des objets dans des serveurs intermédiaires du Web (en anglais "proxy servers") ; - de transporter ces objets de manière sécurisée selon le protocole SSL (en anglais Secure Socket Layer) ou SHTTP (protocole HTTP sécurisé) ; - de signer ces objets numériquement ; - d'inclure ces objets dans des messages électroniques du type e.mail ; - de représenter ces objets visuellement en utilisant des feuilles de style par exemple écrites dans le langage XSL (en anglais Extended Style Sheet) ; - d'accéder à ces objets par des applications standard XML/DOM (en anglais Extended Markup Language/ Document Object Management) ; - de découvrir ces objets par des outils classiques du Web et de les référencer dans des répertoires du Web ; - d'intégrer ces objets avec un code source du type JavaScript ; - de nommer ces objets par une adresse informatique URI classique sur le Web ; et - de coder ces objets selon des méthodes classiques du Web.
Selon un troisième aspect de l'invention, un procédé de mise à jour à distance des objets informatiques sur un site peut également être mis en #uvre conformément à l'exemple de réalisation illustré à la figure 9.
Pour cela, une requête informatique de mise à jour est émise à partir d'un ordinateur, par exemple à destination de l'ensemble des ordinateurs du réseau. Une telle requête peut être une requête générale, appelée "Broadcast request" en anglais.
On peut également mémoriser les objets informatiques qui ont été adressés à d'autres sites, en association avec l'adresse de ces sites et n'adresser la requête de mise à jour qu'aux sites concernés.
Cette requête de mise à jour peut être également écrite dans un format conforme au protocole de communication HTTP sur le réseau Internet, et comporter notamment des champs permettant d'inclure une adresse
<Desc/Clms Page number 31>
informatique d'un objet à mettre à jour, ainsi que l'objet lui-même traduit dans un langage XML.
Un exemple de requête de mise à jour PUT est illustré ci-après permettant de créer un objet "Person", accessible à l'adresse http://oceania/web-obj/obj/person2.xml en supposant que la requête est adressée à un ordinateur appelé "oceania".
PUT /web-obj/obj/person2.xml HTTP/1.1 <objects> <object> <interface name="Person" href="http //oceania/web-obj/class/Person xml"/> <int name="age" value="33"/> <float name="size" value="1.82"/> <object-ref name="spouse" href="http //tasmania/web-obj/obj/peson1 xml"/> </object> </objects>
Cette requête de mise à jour PUT permet également de modifier à distance des objets existants.
PUT /web-obj/obj/person2.xml HTTP/1.1 <objects> <object> <interface name="Employee"
Figure img00310001

href="http7/oceania/web-obi/class/Emplovee.xml7> <int name="age" value="33"/> <string name="email">moreau@crf.canon.fr</string> <string name="phone">00.100 200.300</string> </object> </objects>
L'objet informatique lui-même peut être envoyé de manière différée, à la demande des ordinateurs du réseau intéressés.
Chaque ordinateur distant met alors en #uvre tout d'abord une étape de réception E20 de la requête informatique de mise à jour.
Une étape d'extraction E21 permet ensuite d'extraire l'adresse informatique de cette requête informatique, par exemple URI3.
<Desc/Clms Page number 32>
Une étape d'extraction E22 permet parallèlement d'extraire de cette même requête informatique l'objet informatique 03 traduit dans le langage de communication XML, qui doit être mis à jour.
De préférence, bien que cela ne soit pas nécessaire, une étape de traduction E23 de cet objet informatique 03 permet de retranscrire l'objet informatique 03 dans un langage de programmation utilisé par l'application informatique mise en oeuvre sur le site distant.
Bien entendu, cette étape de traduction E23 pourrait être différée dans le temps jusqu'à ce que l'application informatique du site distant ait besoin de cet objet 03.
Une étape d'identification E24 permet de vérifier si l'adresse informatique extraite URI3 est présente dans la table d'associations T du site distant.
A l'issue de l'étape de test E25, dans l'affirmative, on substitue l'objet informatique antérieur stocké en association avec l'adresse informatique extraite URI3 dans la table d'associations T par l'objet informatique extrait 03.
De préférence, à cette étape de mise à jour E26, on ne substitue pas directement l'objet lui-même, mais les champs de données de l'objet informatique extrait 03 sont recopiés vers l'objet informatique antérieur stocké dans la table d'associations T du site.
Cette précaution permet de garder inchangés les liens, ou pointeurs, dirigés vers cet objet mis à jour 03.
A contrario, si à l'étape de test E25, aucun objet correspondant à l'adresse informatique extraite URI3 n'a été trouvé dans la table d'associations T, une étape d'ajout E27 est mise en #uvre de manière à ajouter cette nouvelle association de l'objet informatique extrait et de l'adresse informatique extraite dans la table d'association T du site.
Ainsi, on peut enrichir à distance la table d'associations T d'un site du réseau.
<Desc/Clms Page number 33>
Dans tous les cas, ce procédé de mise à jour à distance consiste à associer, dans la table d'association T du site distant, une adresse informatique et un objet informatique extraits de la requête de mise à jour.
Eventuellement, une étape E28 de réponse peut être adressée à l'ordinateur ayant émis la requête de mise à jour pour attester que cette mise à jour a bien été faite.
Des moyens de réception d'une requête, d'extraction d'une adresse et d'un objet, d'association de ces adresse et objet dans la table T par substitution ou ajout, et de traduction de cet objet, sont incorporés dans le microprocesseur 500 de l'ordinateur C1. La mémoire morte 501 mémorise les instructions de programme adaptées à mettre en #uvre le procédé de mise à jour et la mémoire vive mémorise la table d'associations T mise à jour.
De même, une requête de suppression d'un objet informatique dans une table d'associations T pourrait également être émise sur le réseau de communication, afin de supprimer certains objets informatiques du réseau.
Dans ce cas, une requête de suppression comportant l'adresse informatique de l'objet à supprimer est adressée à l'ensemble des sites du réseau ou aux sites concernés.
Un exemple de requête de suppression DELETE d'un objet est donné ci-dessous :
L'objet à supprimer dans cet exemple est situé à l'adresse http://oceania/web-obj/obj/person2.xml en supposant que la requête DELETE est adressée à l'ordinateur appelé "oceania".
DELETE /web-obj/obj/person2.xml HTTP/1.1
L'objet n'est plus accessible à partir de l'adresse précédente URI mais demeure cependant en mémoire et utilisable par l'application informatique de l'ordinateur. En outre, l'objet pourrait également être encore accessible via une autre adresse informatique.
<Desc/Clms Page number 34>
A réception E30 de cette requête de suppression, comme illustré figure 10, l'association de cette adresse informatique et de l'objet informatique, si elle existe, est supprimée de la table d'associations T.
En pratique, une étape d'extraction E31 permet d'extraire l'adresse informatique URI de l'objet informatique à supprimer.
Une étape d'identification E32 est mise en #uvre pour rechercher cette adresse URI dans la table T.
A l'issue de l'étape de test E33, si l'adresse extraite URI n'a pas été identifiée, une exception est renvoyée dans une étape de réponse E34.
A contrario, si l'adresse extraite a été identifiée, on supprime de la table T l'association de cette adresse et de l'objet informatique qui lui est associé dans une étape de suppression E35.
Une réponse du type "OK" peut être envoyée dans une étape finale E36 pour signaler que la suppression requise a été réalisée correctement.
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.
Dès lors que cet objet a été publié, ou rendu visible, grâce à son adresse informatique unique URI, les autres applications du réseau peuvent accéder à cet objet à travers sa représentation dans un langage de communication commun au réseau, en utilisant cette adresse informatique.

Claims (28)

REVENDICATIONS
1. Procédé de traduction d'un objet informatique (01) sur un réseau de communication informatique (4), d'un langage de programmation utilisé par une application informatique vers un langage de communication utilisable par un protocole de communication dudit réseau de communication informatique (4), caractérisé en ce qu'il comprend les étapes suivantes : - lecture (E1) d'un champ de données inclus dans ledit objet informatique (01) ; - substitution (E5-E7) dudit champ de données par une adresse informatique (URI) associée audit champ de données lorsque la structure dudit champ de données est complexe ; et - mémorisation (E5-E7) de ladite adresse informatique (URI) associée audit champ de données dans une table d'associations (T).
2. Procédé de traduction conforme à la revendication 1, caractérisé en ce qu'à l'étape de mémorisation, ledit champ de données est mémorisé dans ledit langage de programmation.
3. Procédé de traduction conforme à l'une des revendications 1 ou 2, caractérisé en ce que les structures de données complexes sont choisies parmi au moins un objet informatique (02,03), un tableau (A1) ou une chaîne (S1) de caractères de longueur minimale.
4. Procédé de traduction conforme à l'une des revendications 1 à 3, caractérisé en ce qu'il comporte une étape de comparaison (E2-E4) de la structure dudit champ de données avec une liste préétablie (L) de structures de données complexes.
5. Procédé de transfert d'un objet informatique sur un réseau de communication informatique, caractérisé en ce qu'il comprend les étapes suivantes : - réception (EU) d'une requête informatique de transfert ;
<Desc/Clms Page number 36>
extraction (E12) d'une adresse informatique (URI) de ladite requête informatique ; - identification (E13-E14) d'un objet informatique associé à ladite adresse informatique (URI) dans une table d'associations (T) ; - traduction (E16) dudit objet informatique identifié dans un langage de communication utilisable par un protocole de communication dudit réseau de communication (4) ; et - transfert (E17) dudit objet informatique traduit.
6. Procédé de mise à jour à distance d'un objet informatique sur un site d'un réseau de communication informatique, caractérisé en ce qu'il comprend les étapes suivantes : - réception (E20) d'une requête informatique de mise à jour ; - extraction (E21) d'une adresse informatique (URI) de ladite requête informatique ; - extraction (E22) de ladite requête informatique d'un objet informatique traduit dans un langage de communication utilisable par un protocole de communication dudit réseau de communication informatique (4) ; et - association (E24-E27) , dans une table d'associations (T) dudit site, de ladite adresse informatique (URI) et de l'objet informatique extraits.
7. Procédé de mise à jour à distance conforme à la revendication 6, caractérisé en ce qu'il comporte une étape de traduction (E23) de l'objet informatique extrait dans un langage de programmation utilisé par une application informatique dudit site.
8. Procédé de mise à jour à distance conforme à l'une des revendications 6 ou 7, caractérisé en ce que l'étape d'association comprend les sous-étapes suivantes : - identification (E24-E25) de l'adresse informatique (URI) extraite dans la table d'associations (T) dudit site ; et
<Desc/Clms Page number 37>
dans l'affirmative, substitution (E26) d'un objet informatique antérieur stocké en association avec ladite adresse informatique (URI) extraite dans la table d'associations (T), par l'objet informatique extrait.
9. Procédé de mise à jour à distance conforme à la revendication 8, caractérisé en ce qu'à l'étape de substitution (E26), des champs de données de l'objet informatique extrait sont recopiés vers l'objet informatique antérieur stocké dans la table d'associations (T) dudit site.
10. Procédé de mise à jour à distance conforme à l'une des revendications 6 à 9, caractérisé en ce que l'étape d'association comprend les sous-étapes suivantes : - identification (E24-E25) de l'adresse informatique extraite (URI) dans la table d'associations (T) dudit site ; et - dans la négative, ajout (E27) de l'association dudit objet informatique extrait et de ladite adresse informatique extraite dans la table d'associations (T) dudit site.
11. Dispositif de traduction d'un objet informatique (01) sur un réseau de communication informatique (4), d'un langage de programmation utilisé par une application informatique vers un langage de communication utilisable par un protocole de communication dudit réseau de communication informatique, caractérisé en ce qu'il comporte : - des moyens de lecture (500,501, 502) d'un champ de données inclus dans ledit objet informatique ; - des moyens de substitution (500,501, 502) dudit champ de données par une adresse informatique (URI) associée audit champ de données lorsque la structure dudit champ de données est complexe ; et - des moyens de mémorisation (500,501, 502) de ladite adresse informatique associée audit champ de données dans une table d'associations (T).
12. Dispositif de traduction conforme à la revendication 11, caractérisé en ce que les moyens de mémorisation (500,501, 502) sont
<Desc/Clms Page number 38>
adaptés à mémoriser ledit champ de données dans ledit langage de programmation.
13. Dispositif de traduction conforme à l'une des revendications 11 ou 12, caractérisé en ce que les structures de données complexes sont choisies parmi au moins un objet informatique (02,03), un tableau (A1 ) ou une chaîne (S1) de caractères de longueur minimale.
14. Dispositif de traduction conforme à l'une des revendications 11 à 13, caractérisé en ce qu'il comporte en outre des moyens de stockage (501) d'une liste préétablie (L) de structures de données complexes et des moyens de comparaison (500,501, 502) de la structure dudit champ de données avec ladite liste préétablie (L).
15. Dispositif de traduction conforme à l'une des revendications 11 à 14, 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 traduction d'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.
16. Dispositif de transfert d'un objet informatique sur un réseau de communication informatique, caractérisé en ce qu'il comporte : - des moyens de réception (500,501, 502) d'une requête informatique de transfert ; - des moyens d'extraction (500,501, 502) d'une adresse informatique de ladite requête informatique ; - des moyens d'identification (500, 501, 502) d'un objet informatique associé à ladite adresse informatique dans une table d'associations (T) ; - des moyens de traduction (10) dudit objet informatique identifié dans un langage de communication utilisable par un protocole de communication dudit réseau de communication ; et - des moyens de transfert (500, 501, 502) dudit objet informatique traduit.
<Desc/Clms Page number 39>
17. Dispositif de transfert conforme à la revendication 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 de transfert d'un objet informatique sur un 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 dudit programme.
18. Dispositif de mise à jour à distance d'un objet informatique sur un site d'un réseau de communication informatique, caractérisé en ce qu'il comporte : des moyens de réception (500,501, 502) d'une requête informatique de mise à jour ; - des moyens d'extraction (500, 501,502) d'une adresse informatique de ladite requête informatique ; - des moyens d'extraction (500, 501, 502) de ladite requête informatique d'un objet informatique traduit dans un langage de communication utilisable par un protocole de communication dudit réseau de communication informatique ; et - des moyens d'association (500,501, 502), dans une table d'associations (T) dudit site, de ladite adresse informatique (URI) et de l'objet informatique extraits.
19. Dispositif de mise à jour à distance conforme à la revendication 18, caractérisé en ce qu'il comporte en outre des moyens de traduction (13) de l'objet informatique extrait dans un langage de programmation utilisé par une application informatique dudit site.
20. Dispositif de mise à jour à distance conforme à l'une des revendications 18 ou 19, caractérisé en ce que lesdits moyens d'association comprennent : - des moyens d'identification (500, 501,502) de l'adresse informatique extraite dans la table d'associations dudit site ; et
<Desc/Clms Page number 40>
des moyens de substitution (500,501, 502) d'un objet informatique antérieur stocké en association avec ladite adresse informatique extraite dans la table d'associations (T), par l'objet informatique extrait.
21. Dispositif de mise à jour à distance conforme à la revendication 20, caractérisé en ce que lesdits moyens de substitution (500,501, 502) sont adaptés à recopier des champs de données de l'objet informatique extrait vers l'objet informatique antérieur stocké dans la table d'associations dudit site.
22. Dispositif de mise à jour à distance conforme à l'une des revendications 18 à 21, caractérisé en ce que lesdits moyens d'association (500,501, 502) comprennent en outre des moyens d'ajout d'une association d'un objet informatique extrait et d'une adresse informatique extraite dans ladite table d'associations (T) dudit site.
23. Dispositif de mise à jour à distance conforme à l'une des revendications 18 à 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 de mise à jour à distance d'un objet informatique sur un site d'un 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 dudit programme.
24. Ordinateur, caractérisé en ce qu'il comprend un dispositif de traduction d'un objet informatique conforme à l'une des revendications 11 à 15.
25. Ordinateur, caractérisé en ce qu'il comporte un dispositif de transfert d'un objet informatique conforme à l'une des revendications 16 ou 17.
26. Ordinateur, caractérisé en ce qu'il comporte un dispositif de mise à jour à distance conforme à l'une des revendications 18 à 23.
27. Réseau de communication informatique, caractérisé en ce qu'il comporte un dispositif de traduction d'un objet informatique conforme à l'une des revendications 11 à 15 et/ou un dispositif de transfert d'un objet informatique conforme à l'une des revendications 16 ou 17 et/ou un dispositif de mise à jour à distance conforme à l'une des revendications 18 à 23.
<Desc/Clms Page number 41>
28. Réseau de communication informatique conforme à la revendication 27, caractérisé en ce qu'il forme un réseau de grande étendue.
FR9908156A 1999-06-25 1999-06-25 Procede de traduction, de transfert et de mise a jour d'un objet informatique sur un reseau de communication informatique Withdrawn FR2795536A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR9908156A FR2795536A1 (fr) 1999-06-25 1999-06-25 Procede de traduction, de transfert et de mise a jour d'un objet informatique sur un reseau de communication informatique
DE60039554T DE60039554D1 (de) 1999-06-25 2000-06-20 Verteilte Verwaltung von Datenobjekten in einem Kommunikations-Netzwerk
EP00401754A EP1065592B1 (fr) 1999-06-25 2000-06-20 Gestion partagée d'objets dans un réseau de communication
US09/598,199 US6766350B1 (en) 1999-06-25 2000-06-21 Shared management of data objects in a communication network
JP2000191597A JP4965014B2 (ja) 1999-06-25 2000-06-26 コンピュータ通信ネットワークにおけるデータオブジェクトの転送方法および転送装置、起動方法と起動装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9908156A FR2795536A1 (fr) 1999-06-25 1999-06-25 Procede de traduction, de transfert et de mise a jour d'un objet informatique sur un reseau de communication informatique

Publications (1)

Publication Number Publication Date
FR2795536A1 true FR2795536A1 (fr) 2000-12-29

Family

ID=9547308

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9908156A Withdrawn FR2795536A1 (fr) 1999-06-25 1999-06-25 Procede de traduction, de transfert et de mise a jour d'un objet informatique sur un reseau de communication informatique

Country Status (1)

Country Link
FR (1) FR2795536A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003044695A1 (fr) * 1999-06-09 2003-05-30 Soederstroem Gert Peter Willia Procede de recherche de taches multiples

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
J. ALLAIRE: "The Emerging dDistributed Web Part 3/4 and 4/4", UNDERSTANDING WEB DISTRIBUTED DATA EXCHANGE, September 1998 (1998-09-01), XP002135919 *
MOELLER E ET AL: "The BERKOM multimedia-mail teleservice", COMPUTER COMMUNICATIONS,NL,ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, vol. 18, no. 2, 1 February 1995 (1995-02-01), pages 89 - 102, XP004032505, ISSN: 0140-3664 *
NEKOVEI R: "Data interoperability via surrogate API libraries", PROCEEDINGS INTERNATIONAL SYMPOSIUM ON SOFTWARE ENGINEERING FOR PARALLEL AND DISTRIBUTED SYSTEMS, PROCEEDINGS INTERNATIONAL SYMPOSIUM ON SOFTWARE ENGINEERING FOR PARALLEL AND DISTRIBUTED SYSTEMS, LOS ANGELES, CA, USA, 17-18 MAY 1999, 1999, Los Alamitos, CA, USA, IEEE Comput. Soc, USA, pages 190 - 196, XP002135920, ISBN: 0-7695-0191-5 *
S. SIMEONOV: "WDDX: Distributed Data for the Web", NEWS AND ARTICLES WEB DISTRIBUTED DATA EXCHANGE, 7 December 1998 (1998-12-07), XP002135918 *
STORER J A ET AL: "A PARALLEL ARCHITECTURE FOR HIGH SPEED DATA COMPRESSION", PROCEEDINGS OF THE SYMPOSIUM ON FRONTIERS OF MASSIVELY PARALLEL COMPUTATION,US,LOS ALAMITOS, IEEE COMP. SOC. PRESS, vol. SYMP. 3, 1990, pages 238 - 243, XP000268914 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003044695A1 (fr) * 1999-06-09 2003-05-30 Soederstroem Gert Peter Willia Procede de recherche de taches multiples

Similar Documents

Publication Publication Date Title
JP4993876B2 (ja) Webサービス・アプリケーション・プロトコルおよびSOAP処理モデル
Beazley et al. Python cookbook: Recipes for mastering Python 3
US8370423B2 (en) Data synchronization and sharing relationships
US7490167B2 (en) System and method for platform and language-independent development and delivery of page-based content
Nagarajan et al. Semantic interoperability of web services-challenges and experiences
US7493592B2 (en) Programming interface for a computer platform
Burke RESTful Java with Jax-RS
US20030037181A1 (en) Method and apparatus for providing process-container platforms
JP2006139763A (ja) テキストマイニングおよび検索のためのアプリケーションプログラミングインターフェース
JP2014044743A (ja) コンピュータプラットフォームのプログラミングインターフェース
JP2000089988A (ja) 文書プロパティに基づく自己管理型文書の文書管理方法
EP2122514A1 (fr) Service de stockage internet d&#39;entités en direct
FR2906383A1 (fr) Referentiel semantique de services web et procede utilisant ce referentiel
FR2844370A1 (fr) Document electronique de description d&#39;un service informatique
US6766350B1 (en) Shared management of data objects in a communication network
FR2826753A1 (fr) Procede et dispositif de traitement d&#39;un document informatique dans un systeme informatique
WO2001093094A1 (fr) Systeme de publication multi-terminal et procede de mise en oeuvre correspondant
FR2826748A1 (fr) Description d&#39;une interface applicable a un objet informatique
FR2841998A1 (fr) Procede d&#39;execution sur une station d&#39;un reseau de communication d&#39;un programme informatique represente dans un langage de balisage
FR2853972A1 (fr) Procede de generation d&#39;une interface de programme d&#39;application pour des informations basees sur un cadre de description de ressources (rdf)
FR2795536A1 (fr) Procede de traduction, de transfert et de mise a jour d&#39;un objet informatique sur un reseau de communication informatique
FR2795535A1 (fr) Procede d&#39;execution a distance d&#39;une fonction sur un objet informatique dans un reseau de communication
Kozlovičs Efficient model repository for web applications
US20230367786A1 (en) Unified cloud storage data processing framework for multi-source systems
FR2853974A1 (fr) Procede de generation d&#39;une interface de communication a distance pour des informations basees sur un cadre de description de ressources (rdf)

Legal Events

Date Code Title Description
ST Notification of lapse