Sur la modélisation des connaissances
et l'utilisation de bases de données objet
en productique
Introduction
Contexte
Deux projets industriels de productique
Fabrication de pièces composites à l'Aérospatiale
Projet fichier référence
Production de dessins animés dans l'industrie cinématographique
Projet animation 2000
Problématique
Développer des environnements capables de supporter les différents paradigmes intervenant dans les environnements industriels.
De tels environnements nécessitent :
- de bonne capacité de modélisation.
- des mécanismes de programmation efficaces.
- des mécanismes efficaces de stockage et de contrôle de concurrence.
- une capacité d'intégration et de communication avec d'autres outils.
Notre thèse
Les Systèmes de Gestions de Bases de Données Objet (SGBDO), sont à même de jouer un rôle central et fédérateur dans la réalisation d'un système d'information technique au sein d'une entreprise.
Plan
La productique
Représentation des connaissances
Les bases de données objet
Filière composite
Filière animation
Conclusion
La productique
Historique
Années 70 et 80 : systèmes assistés par ordinateur.
Années 90 : concept de CIM (Computer Integrated Manufacturing).
Définition (à l'Aérospatiale)
Productique : concept de mise en uvre, par les hommes, des méthodes et moyens informatiques et automatiques concourant à assurer simultanément la rentabilité, la qualité et la réactivité de tout ou partie d'un ensemble industriel.
Modèle général
Approche systémique
Pas de description des ressources et de l'organisation générale
La productique
Le modèle CIM-OSA
Génération : vues du modèle
Dérivation : niveaux d'expression des spécifications
Instantiation : niveaux de généricité
La productique
Les filières technologiques
Définitions
Ensemble d'activités relatives à un produit de base (ex filière bois).
Système permettant de répondre à une demande client par un produit fini, à l'aide de familles de solutions technologiques maîtrisées.
Les concepts
Cycle de vie d'un produit
Matrice activité/technologie
La productique
Etude des filières technologiques selon le modèle CIM-OSA
Vue fonction
Identification des activités
Identification des postes de travail
Vue information
Modèle complet
Réunion de l'ensemble des informations contenues dans l'ensemble des vues
Ensemble des informations strictement nécessaires pour réaliser une pièce
Vue ressource
Identification des types de données
Données propres à un produit (données internes)
Les données utilisées et partagées par plusieurs produits (données externes)
Répartition en banque (ou bibliothèque) de composants
Identification des modes d'utilisation
Banque par copie
Banque par référence
Vue organisation
Définition de l'architecture générale du système
Définition des rôles et droits d'accès
Définition de scénarios d'utilisation en accès concurrent.
La productique
Architecture générale : moyens d'intégration
Intégration par échanges de fichiers
Standard d'Echange et de Transfert (SET), norme Afnor Z68-300
PDES/STEP (Product Data Exchange Specification / STandard for the Exchange of Product)
Tiff, jpeg, mpeg
Intégration par utilisation d'une base de données
Base GILDA (aérospatiale)
Intégration par communication inter-applications
Dans le domaine de la C.A.O. : les projets Anaxagore, Archix, Export.
Dans le monde Unix : ftp, smtp, nntp, http
Utilisation d'une base de données distribuée
Synthèse des moyens précédents
--> C'est l'objet de cette thèse
Représentation des connaissances
Quatre points de vues
1) Point de vue théorique : choix d'un formalisme de représentation
Choix d'une approche multi-paradigmes basé sur le concept d'objet.
2) Point de vue cognitif : que doit on représenter ?
Modèle complet : réunion de l'ensemble des informations
Nécessité de représenter des méta-informations
Unité
Etat et validité
Relations inter-objets
Versions
- historique des modifications apportées à un objet
- gestion de différentes configurations d'un objet
Hypothèses
- alternatives dans la conception d'un objet
Représentation du temps
Il peut être modélisé suivant deux axes : le temps de transaction et le temps réel
- systèmes temps réel.
- planification et ordonnancement
Représentation de l'espace
- placements d'objet (en 2 ou 3 dimensions)
3) Point de vue Implémentation : choix de moyens efficaces de représentation
Utilisation de langages objet
Utilisation de techniques issues de l'I.A.
ex : modèle PDM
4) Point de vue méthodologique
Analyse du système en terme de filière technologique
Utilisation de méthodologies objet
Représentation des connaissances
Le modèle PDM (Property Driven Model) [Barthes et al 79]
Ce modèle considère que l'on peut représenter le monde réel comme étant constitué d'objets ou entités, ces entités elles même possédant un certain nombre d'attributs ou propriétés.
Les objets sont représentés par des paires attribut-valeur.
On distingue deux types d'attributs objets :
propriétés de structure : elles pointent sur d'autres objets
propriétés terminales : elles pointent directement sur une valeur
Les propriétés et les modèles (les classes) sont à leurs tours représentés comme des objets. De plus, certaines propriétés peuvent être partagées entre les objets.
Le modèle PDM est structuré en trois niveaux
- les instances,
- les modèles, formant une hiérarchie IS-A (treillis),
- le méta-modèle.
Les bases de données objet
Définitions
Un système de gestion de base de données, est un outil qui est le gestionnaire et le dépositaire persistant et partageable d'un ensemble d'objets.
Quatre grands aspects
Objets et relations : aspect représentation objet.
Dépositaire persistant : aspect stockage persistant.
Dépositaire partageable : aspect multi-utilisateurs.
Gestionnaire : aspect administration.
Base de données et ingénierie : les spécificités
Support de données complexes
·Données complexes de type "graphe d'objets"
·Données de taille très variable
·Données évolutives (versions)
·Données interdépendantes (configuration)
Support de travail coopératif
·Organisation par projets = travail coopératif
·Architecture distribuée sur réseau de stations de travail
·Transactions longues et complexes
Aspect multi-niveaux
·Niveau utilisateur
·Niveau groupe ou atelier
·Niveau entreprise
Aspect multi-états
·Base de production ou d'exploitation
·Base de travail ou base de test.
Les bases de données objet
Les autres types de base de données
Fichiers
+ Simple
- Il faut tout gérer soi même
Base Hiérarchique et Réseau
+ Bonnes performances et accès navigationnel procédural (curseurs)
- Mauvaise indépendance logique / physique, mise-à- jour complexe
Base Relationnelle
+ Souple et bien maîtrisé (standard SQL)
- Mauvaise adaptation d'impédance
Les bases de données objet
Représentation
Identité
Notion d'identifiant d'objet
Persistance
Par instantiation à partir d'une classe persistante
A la création de l'objet
Par envoi de message rendant l'objet persistant.
Par stockage dans une zone définie comme persistante.
Par attachement de l'objet à une structure persistante
Relations
Directement intégrées dans le langage
Utilisation de "container"
Liste
Ensemble
Tableau
Dictionnaire
Requêtes
Accès direct et navigationnel
Par déréférentiation des identifiants d'objet
Accès associatif
Définition d'un langage de Requêtes
Versions
Systèmes à versions locales
Systèmes à versions globales
Les bases de données objet
Persistance
Mise à plat des objets (flatening)
Système de gestion de mémoire virtuelle persistante (ex : ObjectStore)
Serveur d'objets (ex : G-Base, Versant)
Regroupement des objets (clustering)
Les bases de données objet
Contrôle de concurrence
Finalité
- Assurer la cohérence des données.
- Assurer un niveau de parallélisme élevé.
Environnement classique (opérations courtes)
Mécanisme de base : la transaction
Une transaction est la suite d'opérations qui permet de passer d'un état cohérent à un autre état cohérent de la base de données de façon atomique et récupérable.
Algorithme usuel
Verrouillage à deux phases (two phases lock )
Les bases de données objet
Environnement productique (opérations longues)
Mécanisme de base : le check-in / check-out
check-out : copie locale des données dans une base de travail.
check-in : bascule les données validées dans une base de groupe
Algorithmes usuels
Algorithme pessimiste
Check-in / check-out avec pose de verrous longs
Algorithmes optimistes
Notification
Utilisation de versions
Filière composite
Etude du système productique
Vue fonctionnelle
Identification des activités
Préparation
Activité de préparation
Fabrication
Activité de préparation de cassettes
Activité de découpe des tissus
Activité de palettisation
Activité de drapage
Activité de polymérisation
Activité de démoulage et reconditionnement d'outillage
Identification des postes de travail
Poste de préparation
Station de découpe : réaliser des kits
Station de drapage : draper
Station de polymérisation : polymériser, démouler
Vue ressource
Banque de produit d'environement
Banque de cycle de polymérisation
Vue information
Modèle complet (voir diagramme OOA)
Vue organisation
Gestion des banques
Gestion de production
Filière composite
Implantation avec G-Base
Architecture générale
Base de donnés centralisée en client / serveur.
Serveur sur VAX/VMS
Client en lisp sur SUN/UNIX
Modélisation et codage
Modélisation par enrichissement du méta-modèle
Au niveau des "Terminal Property"
- unité attendue (mm, Kg, °C, ...).
- le type du champ (alphanumérique, entier, réel...)
- la taille du champ à éditer (nombre de caractères)
Au niveau des "Structural Property"
- représentation de la sémantique des différents types de liens entre objets
Création quasi-directe du schéma à partir du diagramme OOA
Interface graphique de type Modèle/Vue/Contrôleur (MVC)
Aspect multi-utilisateurs
Verrouillage à deux phases
Filière composite
Difficultés rencontrées
Gestion des versions
Le serveur GBase permet uniquement une gestion des versions historiques des transactions, via la macro
with-current-time
. Ce mécanisme ne permet donc pas de faire de la réelle gestion de configuration.
Système de versions locales par utilisation d'un objet générique
Système de gestion de version de type global, par annotations
Gestion des états
Il était nécessaire de pouvoir gérer au moins deux états des objets :
- Un état temporaire pour les pièces en cours de préparation et non encore validées.
- Un état définitif pour les pièces validées et entrées en production.
Attribut d'état au niveau de chaque objet
Utilisation de deux bases différentes
- Une base de préparation
- Une base de production
Extentions possibles (par le constructeur)
Gestion des états
Mécanisme de check-in / check-out
Gestion des versions
Système de gestion de versions de type global au niveau des transactions
Filière composite
Comparaison avec la solution relationnelle
Simplicité de conception
Base objet
+ Passage "naturel" du diagramme entité-association au schéma de la base
+ Modélisation au niveau du méta-modèle
Base relationnelle
- Passage complexe (normalisation) entre le schéma entité-association et les tables
- Nécessité de jointures complexes pour reconstruire les objets en mémoire
Codage réduit
Base objet
+ Meilleure capacité d'abstraction
+ Correspondance directe entre la représentation mémoire et la représentation disque
Base relationnelle
- Peu d'abstraction ==> beaucoup de code souvent très semblable
- Problème constant de passage entre le schéma physique et le schéma "objet"
Solution partielle = générateur de code
Généricité de l'application
Base objet
+ Le schéma est lui même sous forme objet
+ Une partie du code peut faire directement référence de façon dynamique à ce schéma
Base relationnelle
- Toute modification du schéma entraîne la réecriture de code
Souplesse accrue en mode multi-utilisateurs
+ Verrouillage au "bon" niveau sémantique
Meilleures performances
+ Pas de mauvaise adaptation d'impédance
Filière animation
Etude du système productique
Vue fonctionnelle
Identification des activités et postes de travail
Vue ressource (importance des réutilisations)
Banque Episodes (le stock)
Filière animation
Vue organisation
Phase de validation (check) entre chaque poste
Suivi de l'avancement de la production
Architecture générale
Architecture par production, épisodes, plans
Architecture par sites et postes de travail
Filière animation
Implantation avec Versant
Architecture
Base de données hétérogène répartie.
Postes de scan / gouache sur PC/WindowsNT
Postes de layout, animation sur SiliconGraphics/UNIX
Codage
Utilisation d'attributs objets
Mécanismes généraux
Il doit y avoir étanchéité entre les grandes étapes : story, layout, animation.
Utilisation systématique du mécanisme de check-in/check-out
Gestion des réutilisations à l'aide de banques
Banque modèles
Banque décors
Possibilité de faire de l'archivage
Archivage par épisode ou acte
Archivage par étape (layout ou animation)
Filière animation
Difficultés rencontrées
Granularité et taille des données sur disque
Notion de "light-weight objects"
Stockage d'objets de grande taille
Accès aux routines d'entrée / sortie
Utilisation d'algorithmes de compression en mémoire
Stockage externe sur fichier
Filière animation
Difficultés rencontrées
Echanges de données entre sites distants
Identifiant = <identifiant de base><identifiant d'objet>
Problème d'unicité des identifiants entre sites distants
Plusieurs solutions possibles :
Echanges par utilisation de format neutre de fichier
Exportation / Importation de fichiers au format STEP
Partitionnement de l'espace des bases
Identifiant = <identifiant de site><identifiant de base><identifiant d'objet>
Utilisation de bases temporaires d'échange
check-out copy check-in
SiteA --------> TempSiteA ----> TempSiteB -------> SiteB
Il est alors nécessaire de gérer des identifiants "logiques" et d'effectuer la fusion des bases de données lors du check-in
Conclusion
Intérêt général des bases de donnés objet pour la réalisation de base de données d'ingénierie.
Validation de la démarche d'analyse et de conception
Etude du système productique
Vue fonctionnelle (identification des activités et postes de travail)
Vue information (définition du modèle complet)
Vue ressource (identification des données partagées, répartition en banques)
Vue organisation (architecture générale, rôles et droits d'accès, scénarios d'utilisation)
Conception et codage
Approche Objet
Analyse à l'aide la méthode OOA
Conception à l'aide de la méthode OOD
Démarche incrémentale et itérative
Mise en oeuvre concrète des bases de données objet
Représentation
Représentation directe sous forme objet
Utilisation des possibilités des langages objets
Stockage des données
Stockage d'objets complexes directement sous forme d'objets.
Bonne efficacité car pas de mauvaise adaptation d'impédance
Partage des données
Bases de données multi-niveaux (user / group / public)
Mécanisme de check-in / check-out et de transactions longues
Mécanisme de notification possible
Administration
Bonne maturité, outils disponibles
Conclusion
Recherches et développements
Mieux utiliser la masse des données
Aide à la prévision des coûts et moyens
Analogie [Gentner 83]
Classification, technologie de groupe
Aide à la réutilisation.
Techniques d'indexation
Techniques de raisonnement pas cas (Case based resoning) [Slade 91]
Développer l'aspect travail coopératif (groupware)
Meilleure prise en compte des sites distants
Mécanismes de gestion de versions
Techniques optimistes de contrôle de concurrence
Utilisation de versions
Mécanisme de notification