présentation

publicité
1
Une plate-forme interopérable
4 décembre 2007
Plan
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
2
Plates-formes : l’expérience COGIT
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éO2 [Raynal et al, 1995]
Développée sur le SGBDOO O2, principalement en
O2C (un C/C++ propriétaire)
Depuis 2001 :
GeOxygene (Oxygene)
3
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…
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)
5
Vers une nouvelle plate-forme…
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.
6
Architecture
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
7
8
Architecture
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
Mapping OJB (Castor)
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
9
Architecture : modèle
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
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
ISO 19115
Métadonnées
ISO 19107
Spatiale
ISO 19109
Implémentation
partielle
Dictionnaire
Schéma
d’application
ISO 19111
SRC
10
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
Métadonnées
Modèle OGC et quelques extensions : classes géographiques
12
13
Architecture : SGBD
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
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
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
Mapping OJB
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
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
Mapping OJB
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
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
Mapping OJB
SGBD
Oracle
PostgreSQL
Bibliothèques
(packages Java)
• Documentation (Javadoc)
Couche spatiale
Oracle Spatial
PostGIS
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
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
Mapping OJB
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
Réseau
OGC,
ISO,
Oracle,
...
Schéma objet
Mapping OJB
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
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
19
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
Programme Java
Schéma objet
SGBDR
Couche spatiale
// 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();
24
Exemples d’applications
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
25
Exemples d’applications
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
…
26
Exemples d’applications : noyau
Visualisateur : JUMP/OpenJUMP
27
Exemples d’applications : noyau
Navigateur d’objets (browser)
28
29
Exemples d’applications « bases »
Triangulation de Delaunay
Exemples d’applications experts
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
…
30
Exemples d’applications experts
Appariement automatique du réseau routier
31
Exemples d’applications experts
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]
32
Open source
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
33
Open source : choix de licence
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
34
Open source
35
http://oxygene-project.sourceforge.net
Open source : les dépôts
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
36
37
Visualisateur JUMP/OpenJUMP
Open source : les dépôts
Ontologies
Appariement de
données
géographiques
Applications
d’évaluation
des risques
Module 3D
Carte topologique, opérateurs
spatiaux, triangulation
Catalogue de
traitements
Manipulation de
schémas
Système de
spécifications
de cartes
Editeur de
métadonnées
Couleur
Contraste
Noyau de GeOxygene
(ISO/OGC)
Prise en main
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
38
Prise en main
chargement et affichage
39
Téléchargement