16 novembre 2005 Présentation du projet final Développement d’un plugin pour l’importation de données 3D normalisées pour la plate-forme Gocad Dans le.

Slides:



Advertisements
Présentations similaires
Le struts validator – framework de validation
Advertisements

Linq, fonctionnement et architecture
Tomcat et son fonctionnement XML
SITools Présentation de l’outil (1/2)
Entre construction théorique et mise en œuvre opérationnelle
Exposé de Système - Informatique et Réseau
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Projet Webase. I. La définition du projet 1. Lexistant : Webase 4 2. Cahier des charges 3. La répartition des données 4. Le modèle de données 5. Le choix.
TP 3-4 BD21.
Conception d’une application de gestion de fiches études
Présentation des frameworks pour Java EE
CLUB DES UTILISATEURS FRANCOPHONES STAR- APIC Ville de Liège – Halle aux Viandes 24 et 25 novembre 2010 Bénéfices de la migration vers Elyx.
VI. Analyse des solutions techniques
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les outils d’intégration continue
Forum JEE: framework STRUTS 1 et iBATIS
Etude des Technologies du Web services
Communiquer avec ELYX.
Présentation Struts1-JaxB
JAVASERVER FACES Un framework Java pour le développement Web.
Sommaire Objectif de Peakup Principes de fonctionnement
Principes de persistance dans les applications orienté objet
Projet JAVA EE Approfondi
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Entre construction théorique et mise en œuvre opérationnelle
Développement d’application web
Calculatrice Financière Android
VI. Analyse des solutions techniques
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Projet de Master première année 2007 / 2008
Retour dexpérience Supportech INSA.NET Daniel Boteanu – Michaël Piffret.
Module I-C3 : Applications Web IUT R&T 2e année
Outil de gestion des cartes grises
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
« Le plaisir du chercheur : retrousser les jupes de la nature » Jean Rostand Proposer une « Interface Homme Machine » en utilisant une technologie Client.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Introduction à Visual Studio C++ (VC++)
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
Introduction au Génie Logiciel
Arbre GénéalogiqueDiagramme de Classes Comment la visualisation d’une hiérarchie de classes facilitera le travail de notre client ?
ANTOINE CHEVERT , PASCAL LAMY
Application de gestion des retards
L’Audio sur PC Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq: beaucoup de simulitudes avec la vidéo, mais débit.
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Visualisation d’un entrepôt de données Pré soutenance technique
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Struts.
Power AMC-Rational Rational Rose, Étude comparative
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Présentation ESTRABOX
L’enseignement de spécialité SLAM
Web Services 17/01/2009.
13/07/2015 JSF Java Server Faces Master 2 Pro GLR TER David Mihura Eric Le Merdy.
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
Architecture Client/Serveur
LES SIMULATEURS RÉSEAU
Outil de visualisation et d’export de données de format TRIDENT Fabien Ancelin, 17 Décembre 2008 Projet réalisé dans le cadre du cours SCG_67210 Encadré.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Analyse, élaboration et exploitation d’une Base de Données
Echanges de données géographiques Sandre Geography Markup Language (GML) GIGE 2014 – Dimitri MEUNIER.
Projet de session Par Eve Grenier Dans le cadre du cours SCG Réalisation d’applications en SIG Jeudi le 20 avril 2006.
Visual Information Solutions IDL 7.0 Pour une utilisation optimale d’IDL.
PROJET DE SESSION PRÉSENTÉ PAR : Rosemarie McHugh DANS LE CADRE DU COURS : SCG Réalisation d’applications en SIG 16 avril 2007.
15 décembre, 2006 CONCEPTION ET DÉVELOPPEMENT D’UN SIG-3D DANS UNE APPROCHE DE SERVICE WEB 3D : Exemple d’une application en modélisation géologique Présentation.
PROJET DE SESSION DANS LE CADRE DU COURS: SCG Réalisation d’applications en SIG PRÉSENTÉ PAR: Marie-Andrée Levesque 18 AVRIL 2006.
Implémentation d’une interface pour l’exécution d’ETL à distance Projet de développement logiciel dans le cadre du cours SCG : « Réalisation d’Applications.
Transcription de la présentation:

16 novembre 2005 Présentation du projet final Développement d’un plugin pour l’importation de données 3D normalisées pour la plate-forme Gocad Dans le cadre du cours Application SIG SCG Par Etienne Desgagné 20 avril 2006 Présentation du projet final Développement d’un plugin pour l’importation de données 3D normalisées pour la plate-forme Gocad Dans le cadre du cours Application SIG SCG Par Etienne Desgagné 20 avril 2006

16 novembre 2005  Introduction –Mise en contexte –Définiton du projet  Analyse et conception  Réalisation  Échéancier  Démonstration  Tests et résultats –Résultats, limites et travaux futurs  Introduction –Mise en contexte –Définiton du projet  Analyse et conception  Réalisation  Échéancier  Démonstration  Tests et résultats –Résultats, limites et travaux futurs Plan de la présentation

16 novembre 2005  Situé dans le cadre du projet de maîtrise: ÉLABORATION DE CONCEPTS NÉCESSAIRES À LA MISE EN PLACE D’UN SIG 3D Application XML en géologie  Mettre en place un système permettant: –Le couplage d’un outil de modélisation 3D avec un SGBD –Le requêtage tridimensionnel d’objets géométriques adapté au contexte de modélisation géologique adapté au contexte de modélisation géologique  Adopter une approche générique et normative visant l’interopérabilité  Situé dans le cadre du projet de maîtrise: ÉLABORATION DE CONCEPTS NÉCESSAIRES À LA MISE EN PLACE D’UN SIG 3D Application XML en géologie  Mettre en place un système permettant: –Le couplage d’un outil de modélisation 3D avec un SGBD –Le requêtage tridimensionnel d’objets géométriques adapté au contexte de modélisation géologique adapté au contexte de modélisation géologique  Adopter une approche générique et normative visant l’interopérabilité IntroductionIntroduction Mise en contexte

16 novembre 2005  Utilité du 3D en géologie –Besoin de systèmes pour gérer la 3 e dimension  Plusieurs CAD ont atteint une certaine maturité côté modélisation 3D (ex. gocad) –Mais capacités limitées pour le stockage des données descriptives et pour l’analyse 3D  Les SIG et les Geo-SGBD offrent des fonctionnalités intéressantes pour la gestion de données spatiales –Mais ne permettent pas la gestion efficace des modèles volumétriques 2.5 D2.5 D analyse spatiale 2Danalyse spatiale 2D  Utilité du 3D en géologie –Besoin de systèmes pour gérer la 3 e dimension  Plusieurs CAD ont atteint une certaine maturité côté modélisation 3D (ex. gocad) –Mais capacités limitées pour le stockage des données descriptives et pour l’analyse 3D  Les SIG et les Geo-SGBD offrent des fonctionnalités intéressantes pour la gestion de données spatiales –Mais ne permettent pas la gestion efficace des modèles volumétriques 2.5 D2.5 D analyse spatiale 2Danalyse spatiale 2D IntroductionIntroduction Mise en contexte

16 novembre 2005 IntroductionIntroduction Architecture global du système

16 novembre 2005  Développer une application permettant d’importer dans un outil de modélisation 3D (Gocad), des données géométriques 3D sous format standard disponible sur un serveur. –Obtenir les données à partir d’une URL –“Parser” les données –Convertir les données en objets géométriques Gocad –Afficher les objets à l’écran  Composante d’une architecture multi-tiers  Développer une application permettant d’importer dans un outil de modélisation 3D (Gocad), des données géométriques 3D sous format standard disponible sur un serveur. –Obtenir les données à partir d’une URL –“Parser” les données –Convertir les données en objets géométriques Gocad –Afficher les objets à l’écran  Composante d’une architecture multi-tiers IntroductionIntroduction Définition et objectifs du projet

16 novembre 2005  Application-cliente : Gocad  Serveur d’application : Apache Tomcat  Langages de programmation : –Java –C++  Pont entre Java et C++ : JNI  Format de stockage et d’échange : XML (GML)  Parser SAX : JAXP et Apache Xerces  Application-cliente : Gocad  Serveur d’application : Apache Tomcat  Langages de programmation : –Java –C++  Pont entre Java et C++ : JNI  Format de stockage et d’échange : XML (GML)  Parser SAX : JAXP et Apache Xerces Analyse et conception Choix des technologies

16 novembre 2005 Analyse et conception Justification des choix technologiques  Gocad: Beaucoup utilisé en géologie et décision départementale  Langage Java: –Portabilité, code indépendant des systèmes d’exploitation –Robustesse –Orienté-objets –Grande disponibilité de librairies et produits connexes (Eclipse, parser, serveur d’application, …) –Permet de développer gratuitement –Réutilisation du code au niveau du serveur d’application  JNI : Permet le passage entre Java et code natif dans Gocad  Tomcat: Développement en Java, gratuit, bonne réputation, performance similaire aux produits concurrents commerciaux  GML 3 : Norme OGC pour représentation de données géométriques 3D  Parser SAX : Plus rapide car ne nécessite pas la création d’un arbre représentant l’ensemble de notre fichier XML, seulement quelques balises représentant l’ensemble de notre fichier XML, seulement quelques balises bien-définies nous intéresse.  Gocad: Beaucoup utilisé en géologie et décision départementale  Langage Java: –Portabilité, code indépendant des systèmes d’exploitation –Robustesse –Orienté-objets –Grande disponibilité de librairies et produits connexes (Eclipse, parser, serveur d’application, …) –Permet de développer gratuitement –Réutilisation du code au niveau du serveur d’application  JNI : Permet le passage entre Java et code natif dans Gocad  Tomcat: Développement en Java, gratuit, bonne réputation, performance similaire aux produits concurrents commerciaux  GML 3 : Norme OGC pour représentation de données géométriques 3D  Parser SAX : Plus rapide car ne nécessite pas la création d’un arbre représentant l’ensemble de notre fichier XML, seulement quelques balises représentant l’ensemble de notre fichier XML, seulement quelques balises bien-définies nous intéresse.

16 novembre 2005 Analyse et conception Conception de l’application TOMCAT Fichiers GML Parser de données Conversion de GML vers format strGeom Application-cliente Création et affichage des objets géométriques avec l’API de Gocad PARSER SAX JAVA Ex: [(1 2 3,4 5 6,7 8 9 ),(4 6 3,8 9 4,7 2 3)] PLUGIN GOCAD C++ Serveur de données JNI solide_demo.xml ImportObjectsFromJava Passage de la géométrie entre Java et C++

16 novembre 2005 Analyse et conception Problématiques et contraintes (1/2)  Essayer de rester générique (éviter de tout coder dans l’API propriétaire de Gocad ) –On parse le GML et on récupère les coordonnées d’un côté –On construit les objets propriétaires de l’autre  Complexité du passage entre Java et C++ (JNI) –Essayer de garder le plus simple possible les échanges entre les deux (codification de la géométrie dans une string)  Réaliser un “mapping” entre les objets Gocad et la représentation en GML –Analyse de la structure et du modèle de données de Gocad –Analyse de la norme GML  Essayer de rester générique (éviter de tout coder dans l’API propriétaire de Gocad ) –On parse le GML et on récupère les coordonnées d’un côté –On construit les objets propriétaires de l’autre  Complexité du passage entre Java et C++ (JNI) –Essayer de garder le plus simple possible les échanges entre les deux (codification de la géométrie dans une string)  Réaliser un “mapping” entre les objets Gocad et la représentation en GML –Analyse de la structure et du modèle de données de Gocad –Analyse de la norme GML

16 novembre 2005 Analyse et conception Problématiques et contraintes (2/2)  L’utilisation de l’API GOCAD requiert la création d’un Plugin –Création et développement dans une structure arborescente parallèle à celle de Gocad –Structure complexe, documentation incomplète et non à jour  L’utilisation de l’API GOCAD requiert la création d’un Plugin –Création et développement dans une structure arborescente parallèle à celle de Gocad –Structure complexe, documentation incomplète et non à jour

16 novembre 2005 Analyse et conception Modèle de classe GobjCreator createTsurf(StrGeom,nom) void createGocadObjects init() : JNIEnv* create (env*,fichierGML,nom) void StrGeom StrGeom(string geom) getNbElement() : int getTypeGeom() : string getElement(int pos) : strGeom getPoint3d(int pos) : Point3D tokenize(str,vector,delimiters):void getNbOccurence(str,el) : int m_nbElement : int m_type : string m_strGeom : string SAXParser SAXParser(uri) getStrGeomFromGML(args):String setStrGeom(String strGeom): void m_strGeom : string SAX_contentHandler startDocument(…) void endDocument(…) void startElement(…) void endElement(…) void Characters(…) void CreateurDeGML Convertisseur de données Gocad ASCII -> GML

16 novembre 2005 Analyse et conception Structure de données géométriques :Surface  Dans Gocad, les surfaces (TSurf) sont composées d’un ensemble de TFace qui sont représentées par un maillage de triangles interconnectés.

16 novembre 2005 Analyse et conception Structure de données géométriques :Solide  Dans Gocad, les solides (TSolid) sont composées d’un ensemble de TVolume qui sont représentées par un maillage de tétraèdres interconnectés.

16 novembre 2005 Analyse et conception GMLGML  Dans la norme GML 3.0, les objets 3D peuvent être représentées par des géométries composées (geometric composite) c’est-à-dire des objets composés d’une collection de primitives homogènes. On y retrouve: –Les compositeCurve –Les compositeSurface –Les compositeSolid  Dans la norme GML 3.0, les objets 3D peuvent être représentées par des géométries composées (geometric composite) c’est-à-dire des objets composés d’une collection de primitives homogènes. On y retrouve: –Les compositeCurve –Les compositeSurface –Les compositeSolid

16 novembre 2005 Analyse et conception CompositeSurfaceCompositeSurface

16 novembre 2005 Analyse et conception CompositeSolidCompositeSolid

16 novembre 2005 RéalisationRéalisation Création des objets géométriques (API Gocad) strGeom en provenance de Java

16 novembre 2005 RéalisationRéalisation Implémentation du parser SAX  On réagit aux événements: –startDocument –endDocument –startElement –endElement –characters…  Si (nom balise == “CompositeSolid”) {…}  Si (nom balise == “CompositeSurface”) {…}  On réagit aux événements: –startDocument –endDocument –startElement –endElement –characters…  Si (nom balise == “CompositeSolid”) {…}  Si (nom balise == “CompositeSurface”) {…} startDocument(…) void endDocument(…) void startElement(…) void endElement(…) void Characters(…) void SAX_contentHandler

16 novembre 2005 RéalisationRéalisation Implémentation de JNI  Dans une classe C++ –On créer une JVM  init() –On récupère notre classe Java env->FindClass("SAXParser")env->FindClass("SAXParser") –On lance la méthode qui démarre le Parser env->CallStaticObjectMethod(classe,methodeID,args)env->CallStaticObjectMethod(classe,methodeID,args) –On récupère la strGeom –On lance la création de l’objet  **Attention à ne pas créer plusieurs JVM!!! –Gestion des thread ( jvm->AttachCurrentThread((void**) &env, NULL);)  Dans une classe C++ –On créer une JVM  init() –On récupère notre classe Java env->FindClass("SAXParser")env->FindClass("SAXParser") –On lance la méthode qui démarre le Parser env->CallStaticObjectMethod(classe,methodeID,args)env->CallStaticObjectMethod(classe,methodeID,args) –On récupère la strGeom –On lance la création de l’objet  **Attention à ne pas créer plusieurs JVM!!! –Gestion des thread ( jvm->AttachCurrentThread((void**) &env, NULL);) createGocadObjects init() : JNIEnv* create (env*,fichierGML,nom) void

16 novembre 2005 ÉchéancierÉchéancier Calendrier des activités  Configuration de l’environnement de développement de Gocad (4 sem) –Récupération et installation des composantes (QT, Gogad Dev Kit, VS6) –Création d’un “frame” de Plugin –Des heures de plaisir sur les forums et mailing list  Étude de l’API et création d’objets 3D par programmation (3 sem)  Implémentation de JNI (2 sem)  Étude de la norme et création de fichier GML (2 sem)  Implémentation du Parser Sax (1 sem)  Intégration et tests finaux (2 sem)  **Beaucoup de temps perdu au départ pour des technicalités!!! –Bouchés-doubles à la fin  Configuration de l’environnement de développement de Gocad (4 sem) –Récupération et installation des composantes (QT, Gogad Dev Kit, VS6) –Création d’un “frame” de Plugin –Des heures de plaisir sur les forums et mailing list  Étude de l’API et création d’objets 3D par programmation (3 sem)  Implémentation de JNI (2 sem)  Étude de la norme et création de fichier GML (2 sem)  Implémentation du Parser Sax (1 sem)  Intégration et tests finaux (2 sem)  **Beaucoup de temps perdu au départ pour des technicalités!!! –Bouchés-doubles à la fin

16 novembre 2005 Tests et résultats Réalisation des tests finaux  Nécessite des fichiers GML pour tester… –Développement d’un convertisseur du format de fichier ASCII de Gocad vers GML 3  Le système fonctionne bien  Performance acceptable pour la récupération de petits et moyens fichiers GML à partir du serveur Tomcat pour affichage dans Gocad (en local!)  Perte de performance dans le cas de gros fichier contenant plusieurs milliers de triangles.  Nécessite des fichiers GML pour tester… –Développement d’un convertisseur du format de fichier ASCII de Gocad vers GML 3  Le système fonctionne bien  Performance acceptable pour la récupération de petits et moyens fichiers GML à partir du serveur Tomcat pour affichage dans Gocad (en local!)  Perte de performance dans le cas de gros fichier contenant plusieurs milliers de triangles.

16 novembre 2005 Tests et résultats Limites et travaux futurs  Seulement la gestion des surfaces et des solides à été implémentée comme “proof of concept”  Le convertisseur de format ne créer que des surfaces  Optimisation du système  La gestion des propriétés associées à nos objets géologiques n’est pas encore traitée –Intégration de la structure SIGEOM et/ou NADM à notre structure GML –Ajout de fonctionnalité d’analyse spatiale tridimensionnelle Développement d’algorithmes sous TomcatDéveloppement d’algorithmes sous Tomcat  Stockage natif XML dans Oracle  Choix et implantation d’un langage de requête  Seulement la gestion des surfaces et des solides à été implémentée comme “proof of concept”  Le convertisseur de format ne créer que des surfaces  Optimisation du système  La gestion des propriétés associées à nos objets géologiques n’est pas encore traitée –Intégration de la structure SIGEOM et/ou NADM à notre structure GML –Ajout de fonctionnalité d’analyse spatiale tridimensionnelle Développement d’algorithmes sous TomcatDéveloppement d’algorithmes sous Tomcat  Stockage natif XML dans Oracle  Choix et implantation d’un langage de requête

16 novembre 2005 DémoDémo

DémoDémo

Merci!Merci!