geoprisma : génération dynamique de cartes dans un environnement sécurisé
TRANSCRIPT
GeoPrismaGeoPrismaBoréal Boréal Information Stratégiques Inc.Information Stratégiques Inc.Mapgears Inc.Mapgears Inc.
Données géospatiales sur le webDonnées géospatiales sur le web
Données Web
Besoin : contrôle d'accèsBesoin : contrôle d'accès
?
Exemple : Gmap (GeoGratis)Exemple : Gmap (GeoGratis)
Plusieurs applications Plusieurs applications indépendantesindépendantes
xx applications = un casse-tête applications = un casse-tête
GeoPrismaGeoPrisma
Solution
Une application de cartographie Une application de cartographie Web qui gère l'accès aux données Web qui gère l'accès aux données géospatiales et génère géospatiales et génère dynamiquement l'interface usager.dynamiquement l'interface usager.
GeoPrisma en brefGeoPrisma en bref
Appuyé sur du logiciel "Open Source"
Architecture
Accès contrôlé par un "proxy"
Intégration à plusieurs services de données géospatiales
Intégration à plusieurs bibliothèques d'authentification
Lien vers des applications externes
Interface usager dynamique (IU)
Modèles ("templates") sur mesure
Internationalisation (i18n)
Widgets (fonctionnalités) en fonction des droits d'accès
Appuyé sur du logiciel ”Open Source”
OpenLayersOpenLayers
MapFishMapFish
GeoExtGeoExt
ExtJSExtJS
FeatureServerFeatureServer
MapServerMapServer
TileCacheTileCache
etc.etc.
Sous le capotSous le capot
WMSWMS
WPSWPS
FeatureServerFeatureServer
TileCacheTileCache
Scribble
MapFishServerMapFishServer
Architecture standardArchitecture standard
Navigateur
Application
OpenLayersOpenLayers MapFishMapFish GeoExtGeoExt
Services
WMSWMS WFSWFS FeatureServerFeatureServerTileCacheTileCache
Données
Architecture avec GeoPrismaArchitecture avec GeoPrisma
Navigateur
Application
OpenLayersOpenLayers MapFishMapFish GeoExtGeoExt
Services
WMSWMS WFSWFS FeatureServerFeatureServerTileCacheTileCache
Données
GeoPrismaGeoPrisma
Accès contrôlé par un "proxy"Accès contrôlé par un "proxy"
wms
tuiles
feature
etc.
Requête GetMap
Requête GetMap
RéponseRéponse
Usagers ProxyServices de données
géospatialesIU
ProxyProxy
Authentification Contrôle d'accès Filtrage de données
Composantes
ProxyProxy
LDAP JOSSO BD XML Le vôtre
Intégration avec plusieurs
bibliothèques d'authentification
ProxyProxy
WMS FeatureServer TileCache GYMO etc...
Intégration avec plusieurs
services de données géospatiales
ProxyProxy
Votre application !
Lien vers des
applications externes
Architecture avec GeoPrismaArchitecture avec GeoPrisma
Navigateur
GeoPrismaGeoPrismaApplication
OpenLayersOpenLayers MapFishMapFish GeoExtGeoExt
Services
WMSWMS WFSWFS FeatureServerFeatureServerTileCacheTileCache
Données
GeoPrismaGeoPrisma
Interface usager dynamiqueInterface usager dynamique
Modèles ("templates") sur mesure
Internationalisation (i18n)
Interface usager dynamiqueInterface usager dynamique
Anglais
Internationalisation (i18n)
Interface usager dynamiqueInterface usager dynamique
Français
Internationalisation (i18n)
Interface usager dynamiqueInterface usager dynamique
Autres alphabets
Widgets générés automatiquement
en fonction des droits d'accès
Interface usager dynamiqueInterface usager dynamique
Widgets générés automatiquement
en fonction des droits d'accès
Interface usager dynamiqueInterface usager dynamique
Widgets
Interface usager dynamiqueInterface usager dynamique
Appuyé sur OpenLayers, MapFish, GeoExt, ExtJS, etc.
Map MapPanel Toolbar ZoomSlider Query FeaturePanel Editing tools InitialView
Merge Split Scale MousePosition MeasureTool LayerTree Recenter ...
Retour sur l'application GMap
Interface usager dynamiqueInterface usager dynamique
CCreatereate RReadead UUpdatepdate DDeleteelete
Contributeurs
Boréal Information Stratégiques Inc.Boréal Information Stratégiques Inc.Mapgears Inc.Mapgears Inc.
Nippour GeomatikNippour Geomatik
Conclusion
Nous sommes ouverts !Nous sommes ouverts !
1
GeoPrismaGeoPrismaBoréal Boréal Information Stratégiques Inc.Information Stratégiques Inc.Mapgears Inc.Mapgears Inc.
Boréalis
MapGears
2
Données géospatiales sur le webDonnées géospatiales sur le web
Données Web
Un besoin d'actualité est de publier des données géospatiales sur le web.
Mais il existe déjà des solutions à ce problème. Inutile de s'étendre sur le sujet.
3
Besoin : contrôle d'accèsBesoin : contrôle d'accès
?Par contre, qu'en est-il du contrôle d'accès sur ces données ?
Que faire si vous voulez diffuser vos données géospatiales sur le web, mais de manière sélective ?
4
Exemple : Gmap (GeoGratis)Exemple : Gmap (GeoGratis)
Le moyen le plus facile de vous démontrer le besoin est avec un exemple simple.
Voici le démo GMap. Nous allons lui appliquer du contrôle d'accès.
5
Plusieurs applications Plusieurs applications indépendantesindépendantes
Sans outil de contrôle d'accès, nous aurions à créer plusieurs applications individuelles et appliquer de la sécurité à chacune.
6
xx applications = un casse-tête applications = un casse-tête
Plusieurs applications à maintenir est contre-productif.
7
GeoPrismaGeoPrisma
Solution
Une application de cartographie Une application de cartographie Web qui gère l'accès aux données Web qui gère l'accès aux données géospatiales et génère géospatiales et génère dynamiquement l'interface usager.dynamiquement l'interface usager.
Notre solution : GeoPrisma
Une application de cartographie pour le Web qui intègre le contrôle d'accès aux données géospatiales et une interface usager dynamique.
8
GeoPrisma en brefGeoPrisma en bref
Appuyé sur du logiciel "Open Source"
Architecture
Accès contrôlé par un "proxy"
Intégration à plusieurs services de données géospatiales
Intégration à plusieurs bibliothèques d'authentification
Lien vers des applications externes
Interface usager dynamique (IU)
Modèles ("templates") sur mesure
Internationalisation (i18n)
Widgets (fonctionnalités) en fonction des droits d'accès
Regardons ça de plus près.
GeoPrisma comporte deux fonctionnalités majeures : un „proxy” et une interface usager dynamique.
Avant d'entrer dans les détails, voyons d'abord brièvement comment est fait GeoPrisma.
9
Appuyé sur du logiciel ”Open Source”
OpenLayersOpenLayers
MapFishMapFish
GeoExtGeoExt
ExtJSExtJS
FeatureServerFeatureServer
MapServerMapServer
TileCacheTileCache
etc.etc.
GeoPrisma ne réinvente pas la roue.
Nous utilisons des composantes „Open Source” existantes et qui ont fait leurs preuves telles qu'OpenLayers, MapServer, MapFish et bien d'autres...
10
Sous le capotSous le capot
WMSWMS
WPSWPS
FeatureServerFeatureServer
TileCacheTileCache
Scribble
MapFishServerMapFishServer
Contrôle d'accès configuré dans le XML
Multiples services : WMS, FeatureServer, TileCache et bientôt MapFishServer, WPS.
Tous les services peuvent „servir” la même couche (ressource).
C'est sur la ressource que nous appliquons le contrôle d'accès
11
Architecture standardArchitecture standard
Navigateur
Application
OpenLayersOpenLayers MapFishMapFish GeoExtGeoExt
Services
WMSWMS WFSWFS FeatureServerFeatureServerTileCacheTileCache
Données
Afin de mieux vous faire comprendre le rôle de GeoPrisma, voyons d'abord une architecture typique d'une application de cartographie sur le web.
Voyez les composantes standards :● Un navigateur qui roule des applications JavaScript, comme OpenLayers et● Qui se connecte à des services de données géospatiales du côté serveur, comme WMS, WFS, TileCache, FeatureServer, etc.
12
Architecture avec GeoPrismaArchitecture avec GeoPrisma
Navigateur
Application
OpenLayersOpenLayers MapFishMapFish GeoExtGeoExt
Services
WMSWMS WFSWFS FeatureServerFeatureServerTileCacheTileCache
Données
GeoPrismaGeoPrisma
GeoPrisma fournit une couche supplémentaire qui s'insère entre le client et le serveur de l'architecture pour combler le rôle du contrôleur d'accès.
13
Accès contrôlé par un "proxy"Accès contrôlé par un "proxy"
wms
tuiles
feature
etc.
Requête GetMap
Requête GetMap
RéponseRéponse
Usagers ProxyServices de données
géospatialesIU
Voyons un cas simple et facile à comprendre.
● Une utilisatrice A tente de se connecter à un service WMS● GeoPrisma confirme qu'elle a accès à ces données● La requête est exécutée au serveur● Et une carte est retournée à son écran
● Un utilisateur B tente la même requête mais se fait refuser l'accès puisqu'il n'a pas les droits nécessaires.
14
ProxyProxy
Authentification Contrôle d'accès Filtrage de données
Composantes
Vous devez vous demander: 'Qu'est-ce GeoPrisma a de si spécial ? Je pourrais faire de même en PHP, en Python, qu'importe.'
Bien-sûr, mais notre proxy peut s'intégrer à n'importe quelle librairie d'authentification and peut se connecter à n'importe quel service de données géospatiales.
15
ProxyProxy
LDAP JOSSO BD XML Le vôtre
Intégration avec plusieurs
bibliothèques d'authentification
Nous avons des pilotes pour utiliser LDAP, JOSSO, des bases de données PostgreSQL et des fichiers XML en tant que librairie d'authentification.
Et il est facile d'en ajouter d'autres : il suffit d'étendre une classe PHP !
16
ProxyProxy
WMS FeatureServer TileCache GYMO etc...
Intégration avec plusieurs
services de données géospatiales
N'importe quel type de service peut être configuré pour fonctionner avec GeoPrisma et pas seulement ceux de l'OGC.
Voyez la liste des services que nous supportons présentement. À nouveau : il suffit d'étendre une classe PHP !
17
ProxyProxy
Votre application !
Lien vers des
applications externes
GeoPrisma peut aussi se connecter à des applications externes. Nous l'avons déjà fait avec GeoNetwork and avec une application que vous pourrez voir ici-même demain, Salle Fontaine E, à 10 h 25.
18
Architecture avec GeoPrismaArchitecture avec GeoPrisma
Navigateur
GeoPrismaGeoPrismaApplication
OpenLayersOpenLayers MapFishMapFish GeoExtGeoExt
Services
WMSWMS WFSWFS FeatureServerFeatureServerTileCacheTileCache
Données
GeoPrismaGeoPrisma
Le second point fort de GeoPrisma est la génération dynamique des interfaces usagers.
Chaque interface est automatiquement générée en fonction des permissions de l'usager qui se connecte à l'application.
Voyons en plus en détails cette fonctionnalité.
19
Interface usager dynamiqueInterface usager dynamique
Modèles ("templates") sur mesure
D'abord, il est possible d'avoir plus d'un modèle (pour le moment des „templates” XSLT) de base pour l'interface.
GeoPrisma se sert du modèle choisi pour y mettre ses outils. De cette manière, il est possible d'avoir des applications différentes seulement en changeant de modèle.
20
Internationalisation (i18n)
Interface usager dynamiqueInterface usager dynamique
Anglais
Ensuite, le support multilingue est implanté dans GeoPrisma depuis les débuts.
Présentement, tous les „widgets” de GeoPrisma sont disponibles en anglais et en français.
21
Internationalisation (i18n)
Interface usager dynamiqueInterface usager dynamique
Français
Vous pouvez constater que l'interface présente est exactement la même que la précédente, mais en français.
22
Internationalisation (i18n)
Interface usager dynamiqueInterface usager dynamique
Autres alphabets
Encore la même application, mais avec un alphabet non latin !
À propos, les cartes que vous venez de voir viennent d'une application réelle qui a été déployée à la fin de l'été 2009.
23
Widgets générés automatiquement
en fonction des droits d'accès
Interface usager dynamiqueInterface usager dynamique
Enfin, revenons sur l'une des principales raisons pour utiliser GeoPrisma : l'interface usager dynamique automatiquement générée en fonction des droits d'accès.
Voyez les outils ( aussi appelés 'widgets' ) dans la présente application; ils ont été inclus uniquement parce que l'usager avait les droit d'accès à ceux-ci.
24
Widgets générés automatiquement
en fonction des droits d'accès
Interface usager dynamiqueInterface usager dynamique
Il en va de même pour tous les éléments de l'interface :● Les couches affichées● La légende● Mais également des outils plus spécifiques comme le bouton de requête ou les outils d'édition.
25
Widgets
Interface usager dynamiqueInterface usager dynamique
Appuyé sur OpenLayers, MapFish, GeoExt, ExtJS, etc.
Map MapPanel Toolbar ZoomSlider Query FeaturePanel Editing tools InitialView
Merge Split Scale MousePosition MeasureTool LayerTree Recenter ...
Concernant les outils, GeoPrisma en a déjà une bonne liste et elle continue de grandir. La majeure partie d'entre eux sont des outils provenant d'OpenLayers, MapFish et GeoExt.
Nous vous rappelons encore une fois que nous ne réinventons pas la roue.
Lorsqu'un outil est déjà disponible, nous l'utilisons. S'il ne l'est pas, nous le développons et le contribuons à son projet respectif. Nous tentons de ne pas créer d'outils propres à notre système.
26
Retour sur l'application GMap
Interface usager dynamiqueInterface usager dynamique
CCreatereate RReadead UUpdatepdate DDeleteelete
Maintenant, voyons GeoPrisma en action. Enfin, une présentation de 20 minutes ne nous permet pas de vous montrer un démo 'Live', mais pour les intéressés allez à geoprisma.org.
Dans le présent démo, nous aurons 5 utilisateurs avec des droits d'accès différents. Quelque-uns n'auront que des droits en lecture, d'autres auront accès en écriture.
27
Notre première utilisatrice est une secrétaire. Elle a les accès en lecture à la plupart des données.
Donc, seulement les outils de base sont ajoutés à son interface.
28
Regardons maintenant un utilisateur 'Jardinier'. Vous pouvez immédiatement voir qu'il y a beaucoup moins de couches et moins d'outils.
Remarquez que le jardinier a le bouton de requête, le petit 'i', seulement actif pour les parcs. Les routes ne sont affichées.
29
Un 'Ingénieur en Civil' a les droit d'écriture sur les routes, donc les outils d'édition sont automatiquement ajoutés à son interface.
Remarquez que des outils d'édition et de nouvelles couches ont été ajoutés.
30
Un 'Colon' peut quand à lui modifier les villes, comme vous pouvez le voir.
Il est important de noter que même si l'interface usager a été générée avec des outils limités, chaque transaction faite au serveur est tout de même sécurisée pour assurer la validité de chaque requête.
31
Enfin, notre 'SuperAdmin' a :● Tous les accès● Toutes les couches● Tous les outils attachés à chaque couche.
Voilà pour la partie 'interface usager dynamique'.
32
Contributeurs
Boréal Information Stratégiques Inc.Boréal Information Stratégiques Inc.Mapgears Inc.Mapgears Inc.
Nippour GeomatikNippour Geomatik
GeoPrisma a présentement 3 contributeurs.
Le projet est une initiative de Boréal – Information Stratégiques et a été développé avec l'aide de Mapgears.
Nippour Géomatik s'est joint par la suite afin d'utiliser GeoPrisma dasn un projet de Portail de Cartographie sur le web.
33
Conclusion
Nous sommes ouverts !Nous sommes ouverts !
En conclusion, Boréal – Information Stratégiques a contribué le code de GeoPrisma selon une licence BSD et en conséquence GeoPrisma est maintenant un projet „Open Source”. Allez voir sur geoprisma.org pour plus d'informations.
Et en passant, cette présentation fait en fait partie du lancement officiel du projet. La même présentation est également donnée en ce moment à la conférence FOSS4G à Sydney en Australie, de l'autre côté de la planète !
Questions ?