Brevet FR2820852A1 — publié le 20020816

appliqué au chiffrement d'une signature. La présente invention concerne les applications objet. L' invention concerne en particulier une technique de restitution de données orientées non- objet à partir d'un modèle orienté objet en mettant en _uvre une application d' objet à dimension nulle. La complexité de conception d'une microplaquette du type intégré à très grande échelle, ou VLSI selon les initiales du terme anglo-saxon Very large scale integrated, a produit de nombreux outils d' automation de conception assistée par ordinateur, ou de CAD selon les initiales du terme anglo-saxon Computer assisted design, qui aide les concepteurs dans la synChèse et l' abstraction dans les domaines de comportement, de structure et d' implantation. Un modèle d'informations qui décrit comment l' information est organisée est central à tous les outils. Le modèle d' information est une abstraction d'un modèle de données, qui décrit lui-même des détails de mise en application. Il existe de nombreuses infrastructures de CAD actuellement utilisées. Les infrastructures à legs ont été développées depuis de nombreuses annces et les sociétés ont effectué des investissements significatifs en termes de conceptions, de moteurs ou de programmes qui utilisent ces logiciels standards personnalisés. Des infrastructures émergentes de CAD utilisent des modèles orientés objets. La présente invention tente d'appliquer un modèle orienté objet dans un type legs. Pour accéder aux données du modèle de legs, les concepteurs ne souhaitent pas copier toutes les donnces sur le modèle orienté objet parce que ceci serait très onéreux. Il existe donc un besoin de superposer le nouveau modèle orienté objet à la mémoire que le modèle de legs contient. Au fur et à mesure que des méthodologies orientées objet se répandent, on constate une augmentation des modèles de données à base orientée objet pour les infrastructures CAD. Le besoin de prendre en charge des modèles de données à legs, qui sont structurels par nature, amène à force les concepteurs à rechercher des variantes qui adoptent de nouvelles technologies tout en préservant les investissements existants. Mais ces tâches ne sont malheureusement guère compatibles entre elles, car elles exigent soit une adoption complète des modèles de donnces de legs, soit leur amélioration. Il existe actuellement plusieurs techniques qui utilisent des objets de dimension nulle pour réaliser une application entre des modèles de données orientées objet et des modèles à base orientée objet. Une application d'objet dite de dimension nulle est une forme de superposition à une mémoire existante occupée par un autre objet. Certaines techniques de codage antérieures destinées à réaliser une application d'objet de dimension nulle sont désignces par les termes anglo-saxons de reinterpret-cast et placement of objects, c'est-à-dire réinterprétation des projections et mise en place d'objets, qui sont expliqués de façon plus détaillée dans les lignes qui suivent. Une réinterprétation des projections est une forme de conversion de type explicite qui peut également étre utilisce pour superposition à une mémoire existante. Une opération de réinterprétation des projections convertit entre des types d' objets, méme lorsqu'il n'existe aucune liaison entre les objets. Ceci peut poser de sérieux problèmes si les images de mémoire des types sont différentes. Cette technique de superposition de mémoire est. de plus, intransportable. Le fonctionnement de cette méthodologie, dans un moyen intransportable de réinterprétation des projections, ne serait pas le même que sur une machine sur laquelle le code a été compilé. La technique de mise en place d'objets est un procédé qui surcharge le nouvel opérateur. Cette technique amène spécifiquement à force le nouvel opérateur à placer le nouvel objet à un emplacement spécifique de mémoire, au lieu d'utiliser le procédé d'enregistrement par amoncellement et libération, qui est utilisé dans la réinterprétation des projections. Des variantes additionnelles à ces deux méthadologies incluent un maintien de deux modèles séparés de données qui doivent être maintenus en synchronisation permanente. Mais ceci implique une grande utilisation de mémoire. De plus, le concepteur peut choisir, soit de maintenir et améliorer le système de legs, soit de migrer vers une interface CAD totalement nouvelle. Mais ceci serait à la fois exigeant en temps et onéreux puisqu'il faudrait davantage de mémoire. Une vraie possibilité d'échange d'informations entre des infrastructures de CAD, appelée aussi interfonctionnement, représente un défi difficile, et aucune société ne peut se permettre de choisir un système nouveau qui ignore les investissements antérieurs sur les infrastructures orientées non objet. La présente invention peut être utilisce comme approche évolutionnaire pour aider à mettre en _uvre de nouvelles technologies tout en continuant à utiliser des bases de données de logs existantes. C'est le but de la présente invention que de résoudre le problème d'une fusion entre un modèle de donnces orientées non-objet et un modèle de données orientées objet. Puisque les deux modèles sont utilisés, les avantages d'un modèle d' information intégré facilitent grandement le développement de nouveaux outils. Utiliser la présente invention pour atteindre des objets de dimension nulle afin de fusionner les deux modèles de données ouvre aux concepteurs de deux infrastructures de CAD un portail par lequel ils peuvent maintenant disposer éventuellement d'un accès bidirectionnel entre les modèles. De plus, même si les concepteurs utilisent, pour accéder à des données, des interfaces de programmation d' application, ou API selon les initiales du terme anglo-saxon Application programming interface, qui sont disparates, leur information est automatiquement synchronisée parce qu'ils se réfèrent à la même zone de mémoire. Selon un premier aspect, l' invention atteint ce but par un appareil comprenant: au moins un processeuri une mémoire qui est couplée au processeur, et mémorise des données orientées non-objet; et un logiciel d'application qui réside dans la mémoire, caractérisé en ce que le processeur met en _uvre le logiciel d' application pour appliquer un objet sur les données orientées non-objet situées dans la mémoire sans exiger aucune mémoire substantielle en plus d'une fraction de la mémoire qui enregistre les données orientées non-objet. Les données peuvent être appliquées au moyen d'une mémoire de dimension nulle. Les données orientées non-objet peuvent être mémorisces à l'intérieur d'une structure de données de legs. Selon un deuxième aspect, l' invention atteint son but au moyen d'un procédé de restitution de données orientées non-objet à partir d'un modèle orienté objet, caractérisé en ce qu'il comprend les étapes consistant à: charger des données orientées non-objet dans une mémoire; appliquer un modèle orienté objet sur un espace de mémoire occupé par les données orientées non-objet sans exiger aucun espace additionnel substantiel de mémoire; et restituer de la mémoire un élément de données orientées non-objet dans le modèle orienté objet. L' étape d' application peut comprendre en outre la sous-étape consistant à: hériter de la mémoire les données orientées non objet. L'étape d'application peut alors comprendre en outre la sous-étape consistant à: crécr une classe à partir des données orientées non-objet, et/ou la sousétape consistant à: représenter concrètement un exemple ou, en d'autres termes, une représentation concrète de la classe. Une telle sous-étape de représentation concrète peut en particulier s'effectuer par projections statiques. L'étape d' application peut comprendre en outre la sous-étape consistant à: accéder aux donnces orientées non-objet en utilisant un modèle orienté objet. L'étape de restitution peut se produire au moyen d'une mémoire de dimension nulle. Les buts, particularités et avantages de la présente invention exposés cidessus, ainsi que d'autres, ressortiront davantage à la lecture de la description qui suit de modes de réalisation préférés de l' invention, en conjonction avec les dessins annexés dans lesquels: La Figure 1 est un schéma fonctionnel d'un système informatique, ou en d'autres termes un système d'ordinateur, qui inclut un mode de réalisation préféré de la présente invention; la Figure 2 est un schéma qui illustre une application de données entre deux modèles différents; la Figure 3 est un schéma logique qui illustre les étapes de création d'une application objet de dimension nulle. La Figure 1 est un schéma fonctionnel d'un système informatique 100. Le système informatique 100 comprend un dispositif d'affichage 105, un dispositif d'entrée 110, et un processeur 115 connecté à une mémoire principale 120. Les composants du système 100 sont connectés entre eux par un bus 125 de système. Un dispositif de mémoire de masse 130, par exemple une unité de disque souple, est connecté au système informatique 100. Le système informatique 100 peut mémoriser des données dans le disque 130 et y lire des données. La mémoire principale 120 contient des données 135 orientées non-objet et un programme d' application conforme au mode de réalisation préféré. Les données 135 orientées non-objet pourraient être mémorisées, par exemple, à l'intérieur de structures C. Le programme d'application 140 applique un objet sur une image dans la mémoire 120 occupée par les données orientées non-objet 135. En appliquant directement dans la mémoire 120 occupée par les donnces orientées non-objet, aucune allocation nouvelle ou additionnelle de mémoire n'est nocessaire. Une telle application d'objet est dite de dimension nulle. Une application d'objet de dimension nulle est une forme de superposition d'un objet autre sur une mémoire occupée existante. Avant d' exposer la manière dont l' application est effectuée entre un modèle orienté objet et un modèle orienté non-objet, quelques termes clés, utilisés dans une programmation classique orientée objet, seront définis. Un premier concept dans une programmation orientée objet est une classe. Une classe est un gabarit qui définit un type d'objet. Pour définir une classe, un programmeur peut employer une section de code appelée une définition de classe. Un objet est un exemple, ou représentation concrète, d'une classe. Un objet peut inclure des attributs ou des données ainsi que des fonctions ou des procédés. La définition de classe spécifie les attributs et les procédés. Les attributs sont représentés dans un objet par les valeurs de variables d'exemples. Un autre concept de la programmation orientée objet est l'héritage. L'héritage est la capacité de dériver une nouvelle classe à partir d'une ou plusieurs classes existantes. La nouvelle classe, appelée une sousclasse, peut hériter de toutes les propriétés d'une classe de base, ou en d'autres termes incorporer ces propriétés, y compris ses attributs et ses procédés. Un autre concept de la programmation orientée objet est l'enrobage. Une définition de classe peut spécifier que les données d'objets de cette classe sont privées et ne peuvent pas étre restituées par un autre objet. Des objets doivent communiquer entre eux par l'intermédiaire de leurs interfaces d'objets, et les données peuvent être enrobées en limitant un accès à celles-ci par l'intermédiaire de l' interface d'objet. La Figure 2 illustre la manière dont les donnces sont appliquées. Initialement, un système 200 orienté non-objet possède une certaine représentation d'une structure C en mémoire. La définition de structure contient une information concernant les données. Dans le système orienté objet, au lieu de crcer une autre mémoire pour les données situées dans le système 200 orienté non-objet, le système orienté objet s'applique sur la mémoire orientée non-objet. Lorsqu'un programmeur crée un exemple, ou représentation concrète, de cette structure en mémoire, le programmeur doit allouer une mémoire pour contenir l'information. Pour appliquer, le système orienté objet hérite des données orientées non-objet qui proviennent de la structure C. L'héritage permet au programmeur d'accéder à la structure orientée non- objet ou à toutes autres données de la structure de base. Par l'héritage, le système 100 crée une classe enfant A 210. La classe enfant A 210 représente la définition de l'objet A 205 à base orientée objet et le dérive de la structure C 200 orientée non-objet. Lorsqu'un exemple de la classe dérivée A 210 est représenté concrètement par projections statiques, le nouvel objet peut accéder totalement à l' information orientée non-objet contenue dans la structure C 210. Pour des projections statiques, le concepteur peut maintenant utiliser les processus orientés objets pour accéder aux données orientées non- objet. Par conséquent, le programmeur bénéficie des avantages d' abstraction et d' enrobage d' objet, typiques d'un système orienté objet, sans augmenter la dimension des donnces orientées non-objet. Le nouvel objet réalise donc un enrobage complet des données orientées non objet dans un mécanisme naturel et facile à entretenir. Par conséquent, chaque fois qu'un programmeur crce un objet, le programmeur applique le système orienté objet sur les données orientées non-objet au lieu d'allouer davantage de mémoire. Le programmeur peut maintenant utiliser le système orienté objet pour accéder aux données orientées non-objet. En outre, ce processus est transparent pour l'utilisateur qui ne connaît aucun système autre que le système orienté objet. La Figure 3 illustre les étapes d' application d'un objet orienté objet dans une image d'une mémoire occupée par un modèle de données orientées non-objet. Initialement, le système 100 détermine si des données doivent être chargées dans la mémoire 120 (étape 300). Si les données ne doivent pas y être chargées, le système termine le programme (étape 305) tandis que, dans le cas contraire, les données sont chargées dans la mémoire 120 (étape 310). Le programmeur doit ensuite décider s'il souhaite accéder aux données orientées non-objet dans une structure appliquée (étape 315). Si le programmeur ne souhaite pas les données dans une structure appliquée, il peut exécuter d'autres tâches (étape 320). Dans le cas contraire, le programmeur projette, vers un objet Y du modèle orienté objet (étape 325), du dernier enregistrement d'un élément particulier X de données dans la structure orientée non- objet. Le programmeur accède ensuite à l'élément X de données en utilisant l' interface de l'objet Y (étape 330). Le système a maintenant atteint une application de dimension nulle en utilisant un héritage. Si le programmeur a terminé, le processus est achevé (étape 335), alors que le programmeur exécute d'autres tâches dans le cas contraire (étape 320). Des modèles entiers de donnces orientées non- objet peuvent être appliqués à des modèles de données à base orientée objet en utilisant la technique précédente. Les modèles de données à base orientée objet peuvent eux-même définir de nombreuses nouvelles interfaces pour accéder à des données orientées non- objet sans exiger aucune dimension de mémoire sur ces nouveaux objets. Non seulement cette technique préserve les investissements et applique des procédés à base orientée objet pour élargir l'accès, mais elle y parvient en outre sans exiger aucune mémoire additionnelle. DESSlNS Fig. 1 Titre: systme informatique 1QQ lQS = dispositif d'affichage llQ = dispositif d'entre = processeur 12Q = memoir principals 13Q = disque = donnes orientates non-objet 1Q 140 = programme d' application Fig. 2 Structure C oriente non-objet 20Q 205 Objet A 210 Classe A Eig. 3 Begin = dbut Q = charger donnes ? 3QS = fin 31Q = charger dans mmoire principale 2Q 315 = accder donnes orientes non-objet dans une structure applique ? 32Q = autres tAches 325 = projeter objet de type "Y" enregistrement de donnes "X" 330 = accAder donnes "X" par l'intermdiaire de l' interface de l'objet "Y" 335 = achev end = fin 1= REVENDICATIONS 1. Appareil comprenant: au moins un processeur (115); une mémoire (120) qui est couplée au processeur (115), et mémorise des données orientées non-objet; et un logiciel d' application (140) qui réside dans la mémoire (120), caractérisé en ce que le processeur (115) met en _uvre le logiciel d' application pour appliquer un objet sur les données orientées nonobjet situées dans la mémoire (120) sans exiger aucune mémoire substantielle en plus d'une fraction de la mémoire (120) qui enregistre les données orientées non-objet. 2. Appareil selon la revendication 1, caractérisé en ce que les données sont appliquées au moyen d'une mémoire de dimension nulle. 3. Appareil selon la revendication 1, caractérisé en ce que les données orientées non-objet sont mémorisées à l'intérieur d'une structure de donnces de legs. 4. Procédé de restitution de données orientées non-objet à partir d'un modèle orienté objet, caractérisé en ce qu'il comprend les étapes consistant à: charger des données orientées non-objet (310) dans une mémoire; appliquer un modèle orienté objet sur un espace de mémoire occupé par les données orientées non-objet sans exiger aucun espace additionnel substantiel (315) de mémoire; et restituer de la mémoire un élément de donnces orientées non-objet dans le modèle orienté objet (330). 5. Procédé selon la revendication 4, caractérisé en ce que l'étape d' application comprend en outre la sous-étape consistant à: hériter de la mémoire (325) les données orientées non-objet. 6. Procédé selon la revendication 5 caractérisé en ce que l 'étape d' application comprend en outre la sous-étape consistant à: créer une classe à partir des données orientées non-objet (325). 7. Procédé selon la revendication 6 caractérisé en ce que l'étape d' application comprend en outre la sous-étape consistant à: repré senter concrètement un exempl e de la cl as s e (325). S. Procédé selon la revendication 7 caractérisé en ce que la sous-étape de représentation concrète s'effectue par projections statiques (325). 9. Procédé selon la revendication 4 caractérisé en ce que l'étape d' application comprend en outre la sous-étape consistant à: accéder aux données orientées non-objet en utilisant un modèle orienté objet (330). 10. Procédé selon la revendication 4 caractérisé en ce que l'étape de restitution se produit au moyen