1 Une plate-forme interopérable 4 décembre 2007
Plan 2 Vers une nouvelle plate-forme: GeOxygene L expérience des plates-formes au COGIT. Architecture de GeOxygene Organisation générale de la plate-forme et des outils. Développement d applications avec GeOxygene Exemples d applications Open source Prise en main
Plates-formes : l expérience COGIT 3 Durant les 15 dernières années, 3 plates-formes ont été développées au laboratoire COGIT : Généralisation : PlaGe [Lecordix et al, 1997] Généralisation peu contextuelle, développée en ADA Stratège [Ruas 1998] Généralisation contextuelle, basée sur un système expert, développé en Le-Lisp Depuis 1999 : Lamps2 (Laser Scan) puis Clarity Mise à jour et appariement : GéO 2 [Raynal et al, 1995] Développée sur le SGBDOO O 2, principalement en O 2 C (un C/C++ propriétaire) Depuis 2001 : GeOxygene (Oxygene)
Plates-formes : l expérience COGIT 4 Le développement d algorithmes de recherche au laboratoire COGIT a donc dû faire face : Une grande diversité de systèmes ne communiquant pas entre eux : le même algorithme a été développé dans les différentes platesformes. Des développements non centralisés, non documentés et bien souvent non maintenus : le même algorithme a été développé plusieurs fois. Les systèmes utilisés en production ou à l extérieur de l IGN sont généralement des logiciels SIG commerciaux : le reversement des applications de recherche est souvent très difficile (voire impossible).
Vers une nouvelle plate-forme 5 Afin de surmonter ces problèmes, de nombreuses technologies en génie logiciel ont émergées : des langages de programmation standardisés, extensibles, orientés objet et munis de capacités de communication sur les réseaux comme Internet (exemple :Java), des techniques de modélisation basées sur la notion de composants logiciels réutilisables (exemple : UML), des SGBD objet-relationnel permettant le stockage et l interrogation de données géographiques (Oracle, PostgreSQL/PostGIS)
Vers une nouvelle plate-forme 6 Implémentation d une nouvelle plate-forme interopérable : Fournissant aux utilisateurs un cadre ouvert pour le développement d applications de recherche. Permettant la centralisation des codes, de leur documentation et une maintenance aisée.
Architecture 7 Vers une nouvelle plate-forme: GeOxygene L expérience des plates-formes au COGIT. Architecture de GeOxygene Organisation générale de la plate-forme et des outils. Développement d applications avec GeOxygene Exemples d applications Open source Prise en main
Architecture 8 OGC, ISO, Oracle,... Schéma objet Mapping OJB (Castor) Réseau SGBD Oracle PostgreSQL Couche Spatiale Oracle Spatial PostGIS Bibliothèques (packages Java) Documentation (Javadoc) CVS (Concurrent Versioning) Traducteur / chargeur FME : chargeur Shape Oracle, chargeur Shape PostGIS
Architecture : modèle 9 OGC, ISO, Oracle,... Schéma objet Réseau Un modèle objet extensible en accord avec l OGC et les projets de l ISO/TC 211 (en charge de l Information Géographique / Géomatique) Géométrie et topologie (ISO 19107) GM_Object et TP_Object General feature model (ISO 19109) FT_Feature Métadonnées (ISO 19115) Référencement spatial basé sur les coordonnées (ISO 19111) Les utilisateurs implémentent leurs schémas d application afin de satisfaire les conditions liées au schéma principal. Implémenté en Java.
Organisation générale du modèle 10 ISO 19115 ISO 19107 ISO 19111 Métadonnées Spatiale SRC Implémentation partielle Dictionnaire ISO 19109 Schéma d application
Organisation générale du modèle 11 ISO 19107 OGC (feature geometry) / ISO 19107 : diagramme des classes géométriques
Organisation générale du modèle 12 Métadonnées Modèle OGC et quelques extensions : classes géographiques
Architecture : SGBD 13 OGC, ISO, Oracle,... Schéma objet Réseau SGBD Oracle PostgreSQL Couche spatiale Oracle Spatial PostGIS Les données sont stockées dans une SGBD relationnel (SGBDR) afin d assurer un accès rapide et fiable au système. Ce SGBD est soit Oracle soit PostgreSQL. La géométrie est stockée dans les extensions spatiales de ces SGBD : Oracle Spatial ou PostGIS.
Architecture : mapping 14 OGC, ISO, Schéma objet Oracle,... Mapping OJB Réseau SGBD Oracle PostgreSQL Couche spatiale Oracle Spatial PostGIS Les utilisateurs n ont pas à s inquiéter des traitements en SQL : ils modélisent leurs applications en UML et programment en Java. Le pont (mapping) entre les environnements objet et relationnel est réalisé grâce à un logiciel open source : OJB (Object Relationnal Bridge). Toutes les informations liées au mapping sont stockées dans des fichiers XML.
Architecture : bibliothèques 15 OGC, ISO, Oracle,... Schéma objet Mapping OJB Réseau SGBD Oracle PostgreSQL Bibliothèques (packages Java) Couche spatiale Oracle Spatial PostGIS Afin de préserver l indépendance des développements, les processus géographiques sont codés et stockés dans des librairies séparées. Les bibliothèques peuvent avoir différentes sources (web, anciens développements du laboratoire), sont codés dans différents langages (C, C++, Fortran, Ada) et peuvent être interfacées avec le langage Java grâce à JNI.
Architecture : outils 16 OGC, ISO, Oracle,... Schéma objet Mapping OJB Réseau SGBD Oracle PostgreSQL Couche spatiale Oracle Spatial PostGIS Bibliothèques (packages Java) Documentation (Javadoc) La documentation est automatiquement générée à partir du code et partagé sur un serveur web entre les différents utilisateurs.
Architecture : outils 17 OGC, ISO, Oracle,... Schéma objet Mapping OJB Réseau SGBD Oracle PostgreSQL Couche spatiale Oracle Spatial PostGIS Bibliothèques (packages Java) Documentation (Javadoc) CVS (Concurrent Versioning) Le code est systématiquement partagé sur un serveur grâce au CVS (Concurrent Versioning System).
Architecture : outils 18 OGC, ISO, Oracle,... Schéma objet Mapping OJB Réseau SGBD Oracle PostgreSQL Couche spatiale Oracle Spatial PostGIS Bibliothèques (packages Java) Documentation (Javadoc) CVS (Concurrent Versioning) Données géographiques Traducteur / Chargeur FME : chargeur Shape Oracle, chargeur Shape PostGIS Ou chargeur PostGIS intégré : shp2pgsql Les données géographiques sont chargées et converties grâce à un chargeur de données géographiques (FME) ou directement grâce à un chargeur PostGIS intégré (shp2pgsql).
Développement d applications 19 Vers une nouvelle plate-forme: GeOxygene L expérience des plates-formes au COGIT. Architecture de GeOxygene Organisation générale de la plate-forme et des outils. Développement d applications avec GeOxygene Exemples d applications Open source Prise en main
Développement d applications Troncon_route GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Code Java Modèle objet Visualisation SGBD Mapping 20
Développement d applications Troncon_route GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Code Java Modèle objet Visualisation SGBD Mapping 21
Développement d applications Troncon_route GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Code Java Modèle objet Visualisation SGBD Mapping 22
Développement d applications Troncon_route GM_Object type : string dept : string num_route : string categorie : string nom_route : string etat_cha : string importance : string nb_voies : string normalisee : string pos_sol : string toponyme : string FT_Feature TP_Object Code Java Modèle objet Visualisation SGBD Mapping 23
Développement d applications 24 Schéma objet SGBDR Couche spatiale Programme Java // débuter une transaction db.begin(); // Chargement d objets géographiques... features1 =db.load(...); features2 =db.load(...);... // Calcul d intersection entre objets... intersection =features1.intersection(features2);... // commit de la transaction db.commit();
Exemples d applications 25 Vers une nouvelle plate-forme: GeOxygene L expérience des plates-formes au COGIT. Architecture de GeOxygene Organisation générale de la plate-forme et des outils. Développement d applications avec GeOxygene Exemples d applications Open source Prise en main
Exemples d applications 26 Différentes couches d applications Noyau Visualisation de données Navigateur d objets Création de structures (java2sql, sql2java, mapping) Première couche applicative : les applications «bases» Opérateurs spatiaux : angle, vecteur, calculs géométriques Carte topologique, graphe Triangulation utilisation de code existant Seconde couche applicative : les applications experts Appariement 3D Manipulation de schémas
Exemples d applications : noyau 27 Visualisateur : JUMP/OpenJUMP
Exemples d applications : noyau 28 Navigateur d objets (browser)
Exemples d applications «bases» 29 Triangulation de Delaunay
Exemples d applications experts 30 Applications experts Appariement 3D Manipulation de schémas Éditeur de métadonnées : création d un jeu et de ses métadonnées Catalogue de traitements Système de déploiement de méthodes sous forme de services Ontologies Couleur Système de spécifications de cartes
Exemples d applications experts 31 Appariement automatique du réseau routier
Exemples d applications experts 32 Schéma utilisateur (en transformation) Échantillons de données reflétant le schéma utilisateur Exploration de schéma et transformation Amélioration de l utilisabilité des jeux de données géographiques par transformations interactives des schémas [Balley]
Open source 33 Vers une nouvelle plate-forme: GeOxygene L expérience des plates-formes au COGIT. Architecture de GeOxygene Organisation générale de la plate-forme et des outils. Développement d applications avec GeOxygene Exemples d applications Open source Prise en main
Open source : choix de licence 34 Veut-on connaître les modifications (code, date)? GPL, LGPL Sinon Apache, Souhaite-t-on que quelqu un puisse utiliser le logiciel avec ses propres logiciels? LGPL Sinon GPL Souhaite-t-on compiler ce logiciel avec des logiciels non libres? Oui : LGPL Non : GPL
Open source 35 http://oxygene-project.sourceforge.net
Open source : les dépôts 36 Release 1.0 Dépôt du noyau de GeOxygene (mai 2005) Release 1.1 Correction de bugs mineurs (juin 2006) Release 1.2 Dépôt des applications «bases» (août 2007) Release 2.0 Dépôt de l appariement (fin 2007 début 2008) Release 2.x Autres dépôts à organiser (3D, ) Projet ANR : GeOpenSim - Module Open Source pour l'analyse des Tissus Urbains
Open source : les dépôts 37 Visualisateur JUMP/OpenJUMP Appariement de données géographiques Applications d évaluation des risques Module 3D Carte topologique, opérateurs spatiaux, triangulation Ontologies Catalogue de traitements Manipulation de schémas Editeur de métadonnées Noyau de GeOxygene (ISO/OGC) Système de spécifications de cartes Couleur Contraste
Prise en main 38 Vers une nouvelle plate-forme: GeOxygene L expérience des plates-formes au COGIT. Architecture de GeOxygene Organisation générale de la plate-forme et des outils. Développement d applications avec GeOxygene Exemples d applications Open source Prise en main
Prise en main 39 chargement et affichage