EP1222579A1 - Procede de traitement de donnees structurees utilisant un langage informatique oriente objet - Google Patents

Procede de traitement de donnees structurees utilisant un langage informatique oriente objet

Info

Publication number
EP1222579A1
EP1222579A1 EP01949573A EP01949573A EP1222579A1 EP 1222579 A1 EP1222579 A1 EP 1222579A1 EP 01949573 A EP01949573 A EP 01949573A EP 01949573 A EP01949573 A EP 01949573A EP 1222579 A1 EP1222579 A1 EP 1222579A1
Authority
EP
European Patent Office
Prior art keywords
data
name
value
container
dictionary
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
EP01949573A
Other languages
German (de)
English (en)
Inventor
Nicolas Hervé Edouard TREIL
Serge Jean François GREGOR
Vincent Philippe Leclerc
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.)
Cedara Software Corp
Original Assignee
Axicare
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 Axicare filed Critical Axicare
Publication of EP1222579A1 publication Critical patent/EP1222579A1/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Definitions

  • the present invention relates to the processing of structured data using an object oriented computer language.
  • Data processing methods are already known which make it possible to manage structured or hierarchical data, the lowest level of which is for example a document (text, image, sound, etc.).
  • a method which allows the link, via an application server, between pages originating from or passing through the Internet, also called web pages or "web pages", and a database.
  • the fields or variables that can be used at the web page level must refer to the fields described in the diagram of the database used.
  • Such a method has the disadvantage of limiting the structuring of the data to a fixed diagram determined in advance.
  • no learning ability is possible with this process.
  • updating the data schema involves a joint modification of the database and the page models, which weighs down, slows down and complicates this update.
  • a method is also known using an object oriented language and allowing the exchange of data between web pages (or forms) and a database.
  • the database is generally of relational type, which excludes any possibility of learning.
  • the correspondence between the data of the pages and the objects is done using fields defined by the class. object. Thus, data that does not correspond to a field of the object class cannot be managed in a page model.
  • the present invention overcomes these drawbacks.
  • It relates to a structured data processing using an object oriented computer language.
  • the method comprises the following steps:
  • a) receive a set of data to be processed, structured and linked together, of type value having a name and / or container having a name and capable of containing at least one value having a name and / or at least one other container having a last name;
  • step e) in the case of data of value type, store / find the value in the memory space under / corresponding to the name of the data to be processed, and return to step d) until processing the last data of said set;
  • step f) while in the case of data of the container type, create an empty dictionary sub-object in accordance with step c), fill said dictionary sub-object with the content of the data to be processed in accordance with steps d) to f), and return to step d) until the last data in the game is processed.
  • the purpose of the method according to the invention is to allow generation of extremely fast applications and a completely flexible object-oriented data structure.
  • the method according to the invention when the method according to the invention is applied to the storage of data in a database, the method according to the invention comprises the following steps:
  • step 6) in the affirmative, fill the dictionary object with the content of the data and return to step 4) until processing the last data of the game while in the negative, create an empty dictionary sub-object and fill the dictionary sub-object by the content of the data to be processed and return to step 4) until processing the last data of the game.
  • the data to be processed is received in the form of a dictionary object in order to be stored in series one after the other in a chosen storage space.
  • the method according to the invention comprises the following steps:
  • I) receive a dictionary object filled with at least one datum to be stored in a chosen storage space; II) for each value name and / or container stored in the dictionary object, analyze the structure of the data contained in the dictionary object under this name;
  • the dictionary object is capable of storing in addition at least one calculation method under a predetermined name, and of finding as a value under this name, the result of the associated calculation method.
  • the data to be processed comes from a form or page in which the data is structured and linked together with value type data having a name and / or container having a name and capable of containing a value or a container having a name.
  • FIG. 1 is a flowchart illustrating the general steps of the method according to the invention.
  • FIG. 2 is a flowchart illustrating the method of the invention in the data storage phase in a database
  • FIG. 3 is a flowchart illustrating the method of persistence of a database according to the invention.
  • the present invention describes a generic data encapsulation mechanism suitable for any data structure.
  • the encapsulation mechanism according to the invention uses a basic object called hereinafter a dictionary object.
  • dictionary object is meant here an object which makes it possible to process (store and / or find) data of value type having a name or container having a name, (the container being able to contain itself at least one value having a name or at least one other container with a name).
  • the basic function of a dictionary object is therefore to store in a memory space a container or a value under a predetermined name and also to find in a memory space said container or said value corresponding to a predetermined name.
  • the structure of a dictionary object is simple.
  • the dictionary object class contains an array of container names and values.
  • the dictionary object class also includes a table of labeled containers and values, that is to say arranged according to an index corresponding to that of the names of said containers or values.
  • hashing techniques such as those called “hastable” in JAVA language, or those described in the book “The art of computer programming, Vol 1-3 boxed set HBK, by Donald E. KNUTH, 1999” , allow you to create dictionary objects.
  • the encapsulation process is generally capable of processing data whose structure corresponds to that of the object. For example, a data item having a surname, first name and date of birth structure is suitably processed if the "person" object has the surname, first name, and date of birth variables. However, the data "address" is not processed if the structure of the "person” object does not include this type of variable.
  • the method according to the invention precisely makes it possible to encapsulate data whose structure is not known a priori.
  • the dictionary object DIC1 stores the value "Dupont” in the variable having the name "name”, stores the value "Paul” in the variable having the name "first name” "and stores a DIC2 dictionary object with the name" address ".
  • the DIC2 dictionary object is then capable of storing the value "3, aches des Violettes” in the variable having the name "street”; stores the value "Paris” under the name "city”; and stores the value "75012" under the name "postal code”.
  • step 12 define a dictionary object capable of storing / finding a container or a value in a memory space under / corresponding to a predetermined name (step 12);
  • step 16 check whether the structure of the data to be processed is of the container or value type (step 16); in the case of data of the value type (step 18), store / - find the value under its name (step 20) while in the case of data of the containing type (step 22), create an empty dictionary sub-object (step 24 ) in accordance with step 14, fill said dictionary sub-object with the content of the data (step 26) in accordance with steps 16 to 32, and return to step 16 until the last data in said set is processed (steps 28 , 30 and 32).
  • the method according to the invention also makes it possible to add to the data other variables whose values are not present in the objects or containers.
  • the object or container “person” can store the value "date of birth” and be encapsulated in a container “person” which is capable of further displaying age according to a method appropriate calculation.
  • the invention makes it possible to treat these variables, the values of which come from calculation methods.
  • These values are advantageously arranged according to the invention by means of a dictionary object making it possible to associate the name of a value and the calculation method used to supply the value.
  • the method according to the invention finds several applications. One of them consists in introducing new data into a database whose structure is not known a priori. For example, data is entered into user interface pages, called forms or entry pages.
  • the present invention proposes a formalism making it possible to name each field or variable of the form so as to generate self-structured data which can be persisted (updates) in a chosen storage space (database for example).
  • Formalism consists, for example, in naming each field of the form as follows:
  • Objects and sub-objects are containers with a name here.
  • variables may be empty.
  • This formalism allows, when the data and field names are sent to an application server, to generate objects (containers) corresponding to the desired data structure.
  • Dictionary object Dic 1 of dictionary type stores the value "Dupont” under the field name "last name”, stores the value "Jean” under the field name "first name” and stores a dictionary object, Dic 2, of dictionary type, under the field name "car”.
  • the dictionary object DIC2 of dictionary type then stores the value "Ford” under the field name "brand” and also the value "Escort” under the field name "model”.
  • FIG. 2 shows a flowchart which illustrates the procedure for storing a value according to the invention.
  • a DIC1 dictionary object According to step 100, a DIC1 dictionary object, a field name (step 102) and the corresponding assigned value (step 104) are provided or received.
  • steps 100, 102 and 104 it is possible to move on to storing the value (step 106).
  • step 108 For each field name, the structure of the data contained in said field under this name is analyzed (step 108). In practice, we check if the field name contains the slash "/".
  • the value is stored under the name "Field name" in the dictionary object (step 110). Indeed, at this stage, the data is of the simple variable type, that is to say of the data type containing only a value under a name. On the other hand, if the field name contains the arbitrary separator, this means that the data is of the “container” type suitable for containing another object or sub-object.
  • the name of this field is then extracted (step 112) and it is checked whether a sub-object exists in the dictionary object with this name (step 114).
  • step 116 If yes, we obtain the dictionary sub-object (step 116) and modify the field name (step 124) by deleting the part preceding the separator "/", as well as the separator itself (step 118) .
  • step 120 provision is made to create a sub-object (step 120) and it is stored in the dictionary object.
  • step 122 When the sub-object is thus created (step 122), it is planned to modify the field name (step 124) by deleting the part preceding the separator "/", as well as the separator itself (in accordance with 'step 118 mentioned above).
  • step 126 there is thus a sub-object (step 126), a modified field name (step 124) and a corresponding value (step 128), which makes it possible to store the value (step 130), by iteration of the method in accordance with steps 108 to 130.
  • This dictionary object also includes a container "CAR” storing the value "FORD" under the field name "BRAND”.
  • the value "JEAN” is stored in the field name "FIRST NAME”.
  • the value "ESCORT” is stored in the field name "CAR / MODEL”.
  • the present invention also relates to a method of persistence (updating) of the data of an encapsulated dictionary object as described above.
  • the method provides for analyzing the content (here each name) of the dictionary object to be processed (steps 206 and 208).
  • the value of the variable is persisted (updated) in the database (step 214), in accordance with storage methods which are not the subject of the present invention.
  • step 216 if the data is of the “containing” type, it is checked whether there is a static sub-object in the database having this name.
  • a static sub-object corresponding to this name is sought in the database (step 218), while in the absence of a static sub-object in the database data under this name, it is planned to create a static sub-object with this name in the database (step 220).
  • a static sub-object is available, and the software sub-object of the corresponding dictionary object is obtained (step 224), said sub-object being encapsulated in accordance with the method of encapsulation according to the invention.
  • step 224 there is thus a software sub-object (step 226), homologous to the software object defined in step 200, and a static sub-object (step 228), resulting of the database, peer of the static object defined in step 202.
  • the present invention is an application generation method capable of being implemented using a hierarchical data representation formalism and using an object oriented computer language of the Java, C ++ or similar type.
  • the main contribution of the present invention lies in the ability to dynamically modify the data description scheme, in particular to easily manage new types of objects or new values.
  • the invention makes it possible to reference objects from the database in pages on the web constituting the user interface. It thus makes it possible to reference values or containers of non-existent values in entry forms. Once these formulas have been sent to the application server according to the invention, these new containers and values are created in the database.
  • An advantageous, but non-limiting application of the present invention is found in the medical field, in particular during the establishment of a care network making it possible to manage clinical patient files.

Abstract

Le procédé de traitement de données, comprend les étapes suivantes: a) recevoir un jeu de données à traiter, structurées et reliées entre elles, de type valeur ayant un nom et/ou contenant ayant un nom et aptes à contenir au moins une valeur ayant un nom et/ou au moins un autre contenant ayant un nom; b) définir un objet dictionnaire apte à stocker/trouver dans un espace mémoire un contenant ou une valeur sous/correspondant à un nom prédéterminé; c) créer une instance vide de l'objet dictionnaire; d) vérifier si la structure de la donnée à traiter est du type valeur ou contenant; e) en cas de donnée de type valeur, stocker/trouver la valeur dans l'espace mémoire sous/correspondant au nom de la donnée à traiter, et revenir à l'étape d) jusqu'à la dernière donnée à traiter dudit jeu tandis qu'en cas de donnée de type contenant, créer un sous objet dictionnaire vide conformément à l'étape c), remplir ledit sous objet dictionnaire par le contenu de la donnée à traiter conformément aux étapes d) à e), et revenir à l'étape d) jusqu'à traiter la dernière donnée du jeu.

Description

Procédé de traitement de données structurées utilisant un langage informatique orienté objet
La présente invention concerne le traitement de données structurées utilisant un langage informatique orienté objet.
Elle trouve une application générale dans la modélisation informatique de données, la visualisation de données et la construction d'applications informatiques client-serveur.
On connaît déjà des procédés de traitement de données permettant de gérer des données structurées ou hiérarchiques, dont le niveau le plus bas est par exemple un document (texte, image, son, etc.).
Par exemple, on connaît un procédé qui permet le lien, via un serveur d'application, entre des pages émanant ou transitant par le réseau Internet, appelées encore pages sur la toile ou « pages web » , et une base de données . Dans ce genre de procédé, les champs ou variables utilisables au niveau des pages web doivent faire référence à des champs décrits dans le schéma de la base de données utilisée.
Un tel procédé a l'inconvénient de limiter la structuration des données à un schéma figé déterminé à l'avance. De plus, aucune capacité d'apprentissage n'est possible avec ce procédé. Il en résulte que la mise à jour du schéma des données implique une modification conjointe de la base de données et des modèles de page, ce qui alourdit, ralentit et complexifie cette mise à jour.
On connaît aussi un procédé utilisant un langage orienté objet et permettant l'échange de données entre des pages (ou formulaires) web et une base de données. Dans ce genre de procédé, la base de données est généralement de type relationnelle, ce qui exclut toute possibilité d'apprentissage. De plus, la correspondance entre les données des pages et les objets se fait en utilisant des champs définis par la classe d'objet. Ainsi, une donnée qui ne correspond pas à un champ de la classe d'objet ne peut être géré dans un modèle de page.
La présente invention remédie à ces inconvénients.
Elle porte sur un traitement de données structurées utilisant un langage informatique orienté objet.
Selon une définition générale du procédé selon l'invention, le procédé comprend les étapes suivantes :
a) recevoir un jeu de données à traiter, structurées et reliées entre elles, de type valeur ayant un nom et/ou contenant ayant un nom et apte à contenir au moins une valeur ayant un nom et/ou au moins un autre contenant ayant un nom;
b) définir un objet dictionnaire apte à stocker/trouver dans un espace mémoire un contenant ou une valeur sous/correspon- dant a un nom prédéterminé ;
c) créer une instance vide de l'objet dictionnaire ;
d) vérifier si la structure de la donnée à traiter est du type valeur ou contenant ;
e) en cas de donnée de type valeur, stocker/trouver la valeur dans l'espace mémoire sous/correspondant au nom de la donnée à traiter, et revenir à l'étape d) jusqu'à traiter la dernière donnée dudit jeu ;
f) tandis qu'en cas de donnée de type contenant, créer un sous objet dictionnaire vide conformément à l'étape c), remplir ledit sous objet dictionnaire par le contenu de la donnée à traiter conformément aux étapes d) à f), et revenir à l'étape d) jusqu'à traiter la dernière donnée du jeu. L' pport du procédé selon l' invention est de permettre une génération d'applications extrêmement rapides et une structure des données orientées objets totalement souple.
Par exemple, lorsque le procédé selon l'invention est appliqué au stockage de données dans une base de données, le procédé selon l'invention comprend les étapes suivantes :
1 ) prévoir une base de données ;
2) recevoir un jeu de données rangées selon une structure hiérarchique du type valeur ayant un nom et/ou contenant ayant un nom et apte à contenir au moins une valeur et/ou au moins un autre contenant ayant un nom ;
3) prévoir une instance de base de donnée remplie d'un objet dictionnaire ;
4) en cas de donnée de type valeur, stocker ou remplacer la valeur sous son nom dans l'objet dictionnaire ;
5) en cas de donnée de type contenant, vérifier s'il existe un objet dictionnaire sous le nom de la donnée à traiter ;
6) dans l'affirmative, remplir l'objet dictionnaire par le contenu de la donnée et revenir à l'étape 4) jusqu'à traiter la dernière donnée du jeu tandis que dans la négative, créer un sous-objet dictionnaire vide et remplir le sous-objet dictionnaire par le contenu de la donnée à traiter et revenir à l'étape 4) jusqu'à traiter la dernière donnée du jeu.
En pratique, les données à traiter sont reçues sous la forme d'objet dictionnaire afin d'être rangées en série les unes à la suite des autres dans un espace de stockage choisi. Dans ce cas, le procédé selon l'invention comprend les étapes suivantes :
I) recevoir un objet dictionnaire rempli d'au moins une donnée à stocker dans un espace de stockage choisi ; II) pour chaque nom de valeur et/ou contenant stocké dans l'objet dictionnaire, analyser la structure des données contenues dans l'objet dictionnaire sous ce nom ;
III) en cas de donnée de type valeur, écrire dans l'espace de stockage choisi le nom de la valeur suivi d'un marqueur de valeur et de la valeur elle-même tandis qu'en cas de donnée de type contenant, écrire, dans l'espace de stockage choisi, un marqueur de contenant, le nom du contenant, un marqueur de valeur, et le contenu de la donnée à traiter et un marqueur de fin de contenant.
Selon un autre mode préféré de mise en ouvre du procédé selon l'invention, l'objet dictionnaire est capable de stocker en outre au moins une méthode de calcul sous un nom prédéterminé, et à trouver comme valeur sous ce nom, le résultat de la méthode de calcul associée.
Par exemple, les données à traiter émanent d'un formulaire ou page dans lequel les données sont structurées et reliées entre elles avec des données de type valeur ayant un nom et/ou contenant ayant un nom et apte à contenir une valeur ou un contenant ayant un nom.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description détaillée ci- après des dessins dans lesquels :
- la figure 1 est un organigramme illustrant les étapes générales du procédé selon l'invention ;
- la figure 2 est un organigramme illustrant le procédé de l'invention dans la phase stockage de données dans une base de données ; et
- la figure 3 est un organigramme illustrant le procédé de persistance d'une base de données selon l'invention. La présente invention décrit un mécanisme générique d'encap- sulation de données adapté à toute structure de données. Le mécanisme d'encapsulation selon l'invention utilise un objet de base appelé ci-après objet dictionnaire.
On entend ici par objet dictionnaire, un objet qui permet de traiter (stocker et/ou trouver) une donnée de type valeur ayant un nom ou contenant ayant un nom, (le contenant étant apte à contenir lui même au moins une valeur ayant un nom ou au moins un autre contenant ayant un nom) .
La fonction de base d'un objet dictionnaire est par conséquent de stocker dans un espace mémoire un contenant ou une valeur sous un nom prédéterminé et aussi de trouver dans un espace mémoire ledit contenant ou ladite valeur correspondant à un nom prédéterminé.
La structure d'un objet dictionnaire est simple. La classe d'objets dictionnaires contient un tableau des noms des contenants et des valeurs. La classe d'objets dictionnaires comprend aussi un tableau des contenants et des valeurs étiquetés, c'est-à-dire rangés selon un index correspondant à celui des noms desdits contenants ou valeurs.
Par exemple, les techniques dites de hachage, telles que celles appelées "hastable" en langage JAVA, ou celles décrites dans l'ouvrage "The art of computer programming, Vol 1-3 boxed set HBK, de Donald E. KNUTH, 1999", permettent de réaliser des objets dictionnaires.
Dans l'art antérieur, la plupart des procédés d'encapsulation de données supposent que les objets possèdent une structure prédéfinie et qu'on dispose d'une connaissance précise de la structure des données. Le procédé d'encapsulation est généralement capable de traiter les données dont la structure correspond à celle de l'objet. Par exemple, une donnée ayant une structure nom, prénom, et date de naissance, est convenablement traitée si l'objet « personne » a pour variables nom, prénom, et date de naissance. Par contre, la donnée "adresse" n'est pas traitée si la structure de l'objet « personne » ne comprend par ce type de variable.
Le procédé selon l'invention permet justement d'encapsuler des données dont la structure n'est pas connue a priori.
Dans l'exemple mentionné ci-avant, l'objet dictionnaire DIC1, selon l'invention, stocke la valeur "Dupont" dans la variable ayant pour nom "nom", stocke la valeur "Paul" dans la variable ayant pour nom "prénom" et stocke un objet dictionnaire DIC2 sous le nom "adresse".
Selon l'invention, l'objet dictionnaire DIC2 est alors capable de stocker la valeur "3, allée des Violettes" dans la variable ayant pour nom "rue" ; stocke la valeur "Paris" sous le nom "ville" ; et stocke la valeur "75012" sous le nom "code-postal" .
En référence à la figure 1, le procédé de traitement de données selon l'invention peut être résumé sous l'organigramme suivant :
recevoir un jeu de données structurées selon une hiérarchie et reliées entre elles, la structure étant du type valeur ayant un nom et/ou contenant ayant un nom et apte à contenir une valeur et/ou un autre contenant ayant un nom
(étape 10);
définir un objet dictionnaire apte à stocker/ trouver un contenant ou une valeur dans un espace mémoire sous/correspondant à un nom prédéterminé (étape 12) ;
créer une instance vide de l'objet dictionnaire (étape 14);
vérifier si la structure de la donnée à traiter est du type contenant ou valeur (étape 16); en cas de donnée de type valeur (étape 18), stocker/- trouver la valeur sous son nom (étape 20) tandis qu'en cas de donnée de type contenant (étape 22), créer un sous-objet dictionnaire vide (étape 24) conformément à l'étape 14, remplir ledit sous-objet dictionnaire par le contenu de la donnée (étape 26) conformément aux étapes 16 à 32, et revenir à l'étape 16 jusqu'à traiter la dernière donnée dudit jeu (étapes 28, 30 et 32) .
Avantageusement, le procédé selon l'invention permet en outre d'ajouter aux données d'autres variables dont les valeurs ne sont pas présentes dans les objets ou contenants.
Ainsi dans l'exemple mentionné ci-avant, l'objet ou contenant "personne" peut stocker la valeur "date de naissance" et être encapsulé dans un contenant "personne" qui est capable d'afficher en outre l'âge selon une méthode de calcul appropriée.
Avantageusement, l'invention permet de traiter ces variables dont les valeurs sont issues de méthodes de calcul. Ces valeurs sont avantageusement rangées selon l'invention au moyen d'un objet dictionnaire permettant d'associer le nom d'une valeur et la méthode de calcul utilisée pour fournir la valeur.
Plus précisément, après réception d'un nom de valeur, il est vérifié si ce nom de valeur est associé à une méthode de calcul dans l'objet dictionnaire. En présence d'une méthode associée, il est prévu de calculer la valeur selon la méthode de calcul associée et d'obtenir ainsi un résultat. Dans la négative, il est prévu de rechercher dans l'objet dictionnaire des données formant résultat et de délivrer le résultat correspondant.
Le procédé selon l'invention trouve plusieurs applications. L'une d'elles consiste à introduire dans une base de données de nouvelles données dont la structure n'est pas connue a priori. Par exemple, les données sont saisies dans des pages d'interface utilisateur, appelées formulaires ou pages de saisie.
La présente invention propose un formalisme permettant de nommer chaque champ ou variable du formulaire de façon à générer des données auto-structurées pouvant être persistées (mises à jour) dans un espace de stockage choisi (base de données par exemple).
Le formalisme consiste par exemple à nommer chaque champ du formulaire de la façon suivante :
nom d'objet / nom de sous-objet 1 /... / nom de sous-objet n / nom de valeur .
Les objets et sous-objets sont ici des contenants ayant un nom.
Il est à remarquer que la barre oblique / est un séparateur arbitraire qui peut être remplacé par tout autre caractère arbitraire.
On peut aussi prévoir des marqueurs de fin de contenant et/ou de fin de valeur.
certaines variables (contenant et/ou valeur) peuvent être vides.
Ce formalisme permet, lorsque les données et noms de champs sont envoyés à un serveur d'application, de générer des objets (contenants) correspondants à la structure de données désirée.
Par exemple, un formulaire comportant les champs et valeurs suivants :
PERSONNE/NOM DUPONT
PERSONNE/PRÉNOM Jean PERSONNE/VOITURE/MARQUE Ford
PERSONNE/VOITURE/MODELE Escort
Un tel formulaire permet de générer l'objet suivant :
Objet dictionnaire Dic 1, de type dictionnaire stocke la valeur "Dupont" sous le nom de champ "nom", stocke la valeur "Jean" sous le nom de champ "prénom" et stocke un objet dictionnaire, Dic 2, de type dictionnaire, sous le nom de champ "voiture".
L'objet dictionnaire DIC2, de type dictionnaire stocke alors la valeur "Ford" sous le nom de champ "marque" et aussi la valeur "Escort" sous le nom de champ "modèle".
On a représenté en figure 2 un organigramme qui illustre la procédure de stockage d'une valeur selon l'invention.
Selon l'étape 100, on prévoit ou on reçoit un objet dictionnaire DIC1, un nom de champ (étape 102) et la valeur attribuée correspondante (étape 104).
A l'issue des étapes 100, 102 et 104, on peut passer au stoc- kage de la valeur (étape 106).
Pour chaque nom de champ, on analyse la structure des données contenues dans ledit champ sous ce nom (étape 108). En pratique, on vérifie si le nom de champ contient la barre oblique « / ».
Si le nom de champ ne contient pas le caractère séparateur arbitraire, (ici barre oblique), on stocke la valeur sous le nom « Nom de champ » dans l'objet dictionnaire (étape 110). En effet, à ce stade, la donnée est du type variable simple, c'est-à-dire du type donnée contenant seulement une valeur sous un nom. En revanche, si le nom de champ contient le séparateur arbitraire, cela signifie que la donnée est du type « contenant » propre à contenir un autre objet ou sous-objet. On extrait alors le nom de ce champ (étape 112) et on vérifie si un sous-objet existe dans l'objet dictionnaire sous ce nom (étape 114).
Dans l'affirmative, on obtient le sous-objet du dictionnaire (étape 116) et on modifie le nom de champ (étape 124) en supprimant la partie précédant le séparateur "/", ainsi que le séparateur lui-même (étape 118).
En revanche, s'il n'existe pas de sous-objet dans l'objet dictionnaire, on prévoit de créer un sous-objet (étape 120) et on le stocke dans l'objet dictionnaire.
Lorsque le sous-objet est ainsi créé (étape 122), il est prévu de modifier le nom de champ (étape 124) en supprimant la partie précédant le séparateur "/", ainsi que le sépara- teur lui-même (conformément à l'étape 118 mentionnée ci- avant) .
A l'issue du procédé, on dispose ainsi d'un sous-objet (étape 126), d'un nom de champ modifié (étape 124) et d'une valeur correspondante (étape 128), ce qui permet de stocker la valeur (étape 130), par itération du procédé conformément aux étapes 108 à 130.
Si l'on utilise l'exemple mentionné ci-avant à l'organigramme de la figure 2, on dispose d'un objet dictionnaire correspondant à la description d'une personne avec des noms de champ "NOM", "PRENOM" et des valeurs "DUPONT" et "JEAN".
Cet objet dictionnaire comprend également un contenant "VOITURE" stockant la valeur "FORD" sous le nom de champ "MARQUE".
Selon les étapes 108 à 110, la valeur "JEAN" est stockée dans le nom de champ "PRENOM". Selon les étapes 108, 112, 114, 116, 118, 124, 126, 128, 130, puis 108 à 110, la valeur "ESCORT" est stockée dans le nom de champ "VOITURE/MODELE" .
Enfin, selon les étapes 108, 112, 114, 120, 122, 118, 124, 126, 128, 130, puis 108 à 110, la valeur "PARIS" est stocké dans le nom de champ "ADRESSE/VILLE".
En référence à la figure 3, la présente invention a également pour objet un procédé de persistance (mise à jour) des données d'un objet dictionnaire encapsulé comme décrit précédemment .
A partir d'un objet dictionnaire dit "logiciel", c'est-à-dire résultant d'une encapsulation telle que celle décrite précédemment (étape 200) et d'un objet base de données, dit "statique", c'est-à-dire non encapsulé (étape 202), la procédure « persister objet logiciel » est prête à débuter (étape 204) .
Le procédé prévoit d'analyser le contenu (ici chaque nom) de l'objet dictionnaire à traiter (étapes 206 et 208).
En présence d'un nom, on passe à l'étape de traitement suivante (étape 212), sinon on met fin au procédé (étape 210)
Si le nom correspond à une variable simple, la valeur de la variable est persistée (mise à jour) dans la base de données (étape 214), conformément à des méthodes de stockage qui ne font pas l'objet de la présente invention.
En revanche, si la donnée est du type « contenant », on vérifie s'il y a un sous-objet statique dans la base de données possédant ce nom (étape 216).
Dans l'affirmative, il est recherché dans la base de données, un sous-objet statique correspondant à ce nom (étape 218), tandis qu'en l'absence de sous-objet statique dans la base de données sous ce nom, il est prévu de créer un sous-objet statique avec ce nom dans la base de données (étape 220).
A l'issue des étapes 218 ou 220, on dispose d'un sous-objet statique, et on obtient le sous-objet logiciel de l'objet dictionnaire correspondant (étape 224), ledit sous-objet étant encapsulé conformément au procédé d'encapsulation selon l'invention.
A l'issue de l'étape 224, on dispose ainsi d'un sous objet logiciel (étape 226), homologue de l'objet logiciel défini à l'étape 200, et d'un sous objet statique (étape 228), issu de la base de données, homologue de l'objet statique défini à l'étape 202.
Avec ces sous objets statique et logiciel, il est possible de mettre à jour (persister) les données de l'objet logiciel (ici dictionnaire) (étape 230) dans l'objet statique (ici la base de données ) .
La présente invention est un procédé de génération d'application susceptible d'être implanté en utilisant un formalisme de représentation de données hiérarchiques et utilisant un langage informatique orienté objet de type Java, C++ ou analogue.
L'apport principal de la présente invention réside dans la capacité de modifier dynamiquement le schéma de description des données, en particulier de gérer facilement de nouveaux types d'objets ou de nouvelles valeurs.
De plus, dans le cas d'une application client-serveur, dans laquelle les clients interagissent avec les données (création, modification, destruction), l'invention permet de référencer des objets de la base de données dans des pages sur la toile constituant l'interface utilisateur. Elle permet ainsi de référencer des valeurs ou des contenants de valeurs non existants dans des formulaires de saisie. Une fois ces formules envoyés au serveur d'application selon l'invention, ces nouveaux contenants et valeurs sont créés dans la base de données .
Une application avantageuse, mais non limitative de la présente invention se trouve dans le domaine médical, notamment lors de la mise en place de réseau de soins permettant de gérer des dossiers patients cliniques.

Claims

Revendications
1. Procédé de traitement de données, comprenant les étapes suivantes : a) recevoir un jeu de données à traiter, structurées et reliées entre elles, de type valeur ayant un nom et/ou contenant ayant un nom et aptes à contenir au moins une valeur ayant un nom et/ou au moins un autre contenant ayant un nom ; b) définir un objet dictionnaire apte à stocker/trouver dans un espace mémoire un contenant ou une valeur sous/correspondant à un nom prédéterminé ; c) créer une instance vide de l'objet dictionnaire ; d) vérifier si la structure de la donnée à traiter est du type valeur ou contenant ; e) en cas de donnée de type valeur, stocker/trouver la valeur dans l'espace mémoire sous/correspondant au nom de la donnée à traiter, et revenir à l'étape d) jusqu'à la dernière donnée à traiter dudit jeu tandis qu'en cas de donnée de type contenant, créer un sous objet dictionnaire vide conformément à l'étape c), remplir ledit sous objet dictionnaire par le contenu de la donnée à traiter conformément aux étapes d) à e), et revenir à l'étape d) jusqu'à traiter la dernière donnée du jeu.
2. Procédé selon la revendication 1, appliqué dans le stockage de données dans une base de données, caractérisé en ce qu'il comprend les étapes suivantes :
1) prévoir une base de données propre à contenir un jeu de données rangées selon une structure hiérarchique du type valeur ayant un nom et/ou contenant ayant un nom et apte à contenir au moins une valeur et/ou au moins un autre conte- nant ayant un nom, les données étant séparées les unes des autres par des marqueurs choisis ;
2 ) recevoir une donnée à traiter de type valeur ou contenant ayant un nom ; 3) prévoir une instance remplie d'un objet dictionnaire ;
4) en cas de donnée de type valeur, stocker ou remplacer la valeur sous son nom dans l'objet dictionnaire ;
5) en cas de donnée de type contenant, vérifier s'il existe un objet dictionnaire sous ce nom ;
6) dans l'affirmative, remplir l'objet dictionnaire par le contenu de la donnée et revenir à l'étape 4) jusqu'à traiter la dernière donnée du jeu tandis que dans la négative, créer un sous-objet dictionnaire vide conformément à l'étape 3) et remplir le sous-objet dictionnaire par le contenu de la donnée conformément aux étapes 4 à 6, et revenir à l'étape 4) jusqu'à traiter la dernière donnée du jeu.
3. Procédé selon la revendication 1, dans lequel données à traiter sont reçues sous la forme d'un objet dictionnaire afin d'être rangées en série les unes à la suite des autres dans un espace de stockage choisi, caractérisé en ce qu'il comprend en outre les étapes suivantes :
I) prévoir un objet dictionnaire rempli de données à traiter;
II) pour chaque nom de valeur et/ou contenant stocké dans l'objet dictionnaire, analyser la structure des données contenues dans l'objet dictionnaire sous ce nom ;
III) en cas de donnée de type valeur, écrire dans l'espace de stockage choisi le nom de la valeur suivi d'un marqueur de valeur et de la valeur elle-même tandis qu'en cas de donnée de type contenant, écrire, dans l'espace de stockage choisi, un marqueur de contenant, le nom du contenant, un marqueur de valeur, et le contenu de la donnée à traiter et un marqueur de fin de contenant.
4. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'objet dictionnaire est de type objet logiciel capable de stocker en outre au moins une méthode de calcul sous un nom prédéterminé, et à trouver comme valeur sous ce nom, le résultat de cette méthode de calcul.
5. Procédé selon l'une quelconque des précédentes revendica- tions, caractérisé en ce que les données à traiter émanent d'une page sur la toile dans laquelle les données sont structurées et reliées entre elles avec des données de type valeur ayant un nom et/ou contenant ayant un nom et apte à contenir une valeur ou un contenant ayant un nom.
EP01949573A 2000-07-03 2001-06-28 Procede de traitement de donnees structurees utilisant un langage informatique oriente objet Withdrawn EP1222579A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0008631 2000-07-02
FR0008631A FR2811101B1 (fr) 2000-07-03 2000-07-03 Procede de traitement de donnees structurees utilisant un langage informatique oriente objet
PCT/FR2001/002073 WO2002003246A1 (fr) 2000-07-03 2001-06-28 Procede de traitement de donnees structurees utilisant un langage informatique oriente objet

Publications (1)

Publication Number Publication Date
EP1222579A1 true EP1222579A1 (fr) 2002-07-17

Family

ID=8852052

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01949573A Withdrawn EP1222579A1 (fr) 2000-07-03 2001-06-28 Procede de traitement de donnees structurees utilisant un langage informatique oriente objet

Country Status (5)

Country Link
US (1) US7203689B2 (fr)
EP (1) EP1222579A1 (fr)
AU (1) AU2001270702A1 (fr)
FR (1) FR2811101B1 (fr)
WO (1) WO2002003246A1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574450B2 (en) * 2005-04-19 2009-08-11 International Business Machines Corporation Method for sharing an object between applications
US20080288269A1 (en) * 2007-05-18 2008-11-20 Siemens Power Generation, Inc. Enterprise-wide data standardization structure and method
CN103164220B (zh) * 2013-02-21 2016-03-02 北京控制工程研究所 一种星载计算机在轨维护所用浮点立即数的自主处理方法
CN112130890A (zh) * 2020-09-17 2020-12-25 北京金和网络股份有限公司 业务系统开发和维护方法、装置和存储介质及服务器

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156903A (en) * 1974-02-28 1979-05-29 Burroughs Corporation Data driven digital data processor
JPS6410353A (en) * 1987-07-03 1989-01-13 Hitachi Ltd Computer file system
US5202986A (en) 1989-09-28 1993-04-13 Bull Hn Information Systems Inc. Prefix search tree partial key branching
JP2901081B2 (ja) * 1989-12-19 1999-06-02 株式会社日立製作所 Osiディレクトリの非葉エントリの名称変更方法
US5257365A (en) * 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
CA2039365C (fr) * 1991-03-28 2000-01-18 T. Dora Velissaropoulos Methode et dispositif pour coder, stocker et extraire des informations de traitement de donnees hierarchiques pour un systeme informatique
US5687365A (en) * 1992-03-17 1997-11-11 International Business Machines Corporation System and method for creating a data dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system
US5506983A (en) * 1992-07-06 1996-04-09 Microsoft Corporation Method and system for transactioning of modifications to a tree structured file
US5530957A (en) * 1992-08-07 1996-06-25 At&T Corp. Storing trees in navigable form
US5634123A (en) * 1993-07-08 1997-05-27 Park City Group, Inc. Data management using nested records and code points
CA2117846C (fr) * 1993-10-20 2001-02-20 Allen Reiter Methode informatique et structure pour le stockage et l'extraction de donnees multidimensionnelles
US5867713A (en) * 1995-04-05 1999-02-02 International Business Machines Corporation Committing an install plan object for the network installation of application programs
US5930786A (en) * 1995-10-20 1999-07-27 Ncr Corporation Method and apparatus for providing shared data to a requesting client
US5778389A (en) * 1996-05-23 1998-07-07 Electronic Data Systems Corporation Method and system for synchronizing computer file directories
US5831558A (en) * 1996-06-17 1998-11-03 Digital Equipment Corporation Method of compressing and decompressing data in a computer system by encoding data using a data dictionary
US5956728A (en) * 1996-07-17 1999-09-21 Next Software, Inc. Object graph editing context and methods of use
US6226649B1 (en) * 1997-06-23 2001-05-01 Oracle Corporation Apparatus and method for transparent access of foreign databases in a heterogeneous database system
US5983267A (en) * 1997-09-23 1999-11-09 Information Architects Corporation System for indexing and displaying requested data having heterogeneous content and representation
US5995975A (en) * 1997-11-25 1999-11-30 International Business Machines Corporation Dictionary based process for object containment
US6230157B1 (en) * 1997-11-25 2001-05-08 International Business Machines Corporation Flattening complex data structures in Java/Javascript objects
US6047283A (en) * 1998-02-26 2000-04-04 Sap Aktiengesellschaft Fast string searching and indexing using a search tree having a plurality of linked nodes
US6499036B1 (en) * 1998-08-12 2002-12-24 Bank Of America Corporation Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation
US6486897B1 (en) * 1998-09-29 2002-11-26 Apple Computer, Inc. Multi-repository display system using separate presentation, adaptation and access layers
US6405209B2 (en) * 1998-10-28 2002-06-11 Ncr Corporation Transparent object instantiation/initialization from a relational store
US6628305B1 (en) * 1998-11-09 2003-09-30 International Business Machines Corporation Architecture and definition of an extensible, object-oriented graphical user interface framework for managing and administering heterogenous digital library datastores
US6356913B1 (en) * 1999-06-09 2002-03-12 Avaya Technology Corp. Generic (database-independent) and dynamically-modifiable schema
US6490719B1 (en) * 1999-07-26 2002-12-03 Gary Thomas System and method for configuring and executing a flexible computer program comprising component structures
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US6985905B2 (en) * 2000-03-03 2006-01-10 Radiant Logic Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0203246A1 *

Also Published As

Publication number Publication date
AU2001270702A1 (en) 2002-01-14
US7203689B2 (en) 2007-04-10
FR2811101A1 (fr) 2002-01-04
US20020194152A1 (en) 2002-12-19
FR2811101B1 (fr) 2002-09-20
WO2002003246A1 (fr) 2002-01-10

Similar Documents

Publication Publication Date Title
EP1470501B1 (fr) Procedes et systemes de recherche et d'association de ressources d'information telles que des pages web
US7792817B2 (en) System and method for managing complex relationships over distributed heterogeneous data sources
EP1444611A2 (fr) Interface graphique de portail web semantique
KR101775883B1 (ko) 정보 스트림의 정보를 처리하는 방법 및 시스템
EP1880325B1 (fr) Méthode dynamique de génération de documents xml á partir d'une base de données
EP1550958A2 (fr) Procédé et système de documentation pour rechercher dans une généalogie
EP1550960A1 (fr) systémes et procédés pour correler de données généalogiques
FR2853977A1 (fr) Systemes et procedes pour traiter des donnees de cadre de description de ressources
EP1550959A2 (fr) Méthode pour fournir des alternatives dans un système d'arbre généalogique
EP1096394A1 (fr) Système et procédé de gestion de la persistance des composants EJB dans un annuaire accédé par LDAP
US20190324968A1 (en) Adaptive analytics user interfaces
FR2909198A1 (fr) Procede et disositif de filtrage d'elements d'un document structure a partir d'une expression.
Hahmann et al. Connecting linkedgeodata and geonames in the spatial semantic web
JP2006048536A (ja) 情報処理装置、文書検索方法、ならびにプログラム、記憶媒体
US20110184959A1 (en) Summarizing medical content with iterative simplification rules
EP1272944A1 (fr) Systeme de recherche et d'aide au choix
EP1828941B1 (fr) Dispositif de traitement de données à définition formelle
EP1222579A1 (fr) Procede de traitement de donnees structurees utilisant un langage informatique oriente objet
EP1290578B1 (fr) Procede de recherche de donnees automatise et securise au moyen d'un reseau de transmission de donnees
Tooamnian et al. Automatic integration of spatial data in viewing services
WO2002003245A1 (fr) Procede de stockage d'objets informationnels au format xml dans une base de donnees relationnelle
FR2917518A1 (fr) Procede de tri d'informations
WO2000026775A1 (fr) Derivation d'une classe d'objets par heritage, instanciation ou clonage
EP1222575A1 (fr) Procede pour creer une structure hierarchique variable d'acces a des actions dans un systeme informatique
EP1408428A1 (fr) Système et procédé de traitement et de visualisation des résultats de recherches effectuées par un moteur de recherche à base d'indexation, modèle d'interface et méta-modèle correspondants

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20020226

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Free format text: AL;LT;LV;MK;RO;SI

17Q First examination report despatched

Effective date: 20080103

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: CEDARA SOFTWARE CORP.

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20090103