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

 

La technologie de groupe

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)

 

Objets volumineux

Indexation

Regroupement des objets (clustering)

Reprise sur panne

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

Transactions courtes

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.

Deux solutions possibles

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.

Deux solutions possibles

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)

Banque Décors

Banque Modèles

Filière animation

Vue information

Modèle complet

Vue organisation

Phase de validation (check) entre chaque poste

Gestion des utilisateurs

Suivi de l'avancement de la production

 

Architecture générale

Architecture par étapes

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

Codage en C++

Utilisation d'attributs objets

 

 

Mécanismes généraux

Il doit y avoir étanchéité entre les grandes étapes : story, layout, animation.

Base multi-niveaux

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)

Architecture générale

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