7. Solution
GeoPrisma
Une application de cartographie
Web qui gère l'accès aux données
géospatiales et génère
dynamiquement l'interface usager.
8. GeoPrisma 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
9. Appuyé sur du logiciel ”Open
Source”
OpenLayers
MapFish
GeoExt
ExtJS
FeatureServer
MapServer
TileCache
etc.
10. Sous le capot
WMS
TileCache
Scribble
FeatureServer
MapFishServer
WPS
34. GeoPrisma
Boréal Information Stratégiques Inc.
Mapgears Inc.
1
Boréalis
MapGears
35. Données géospatiales sur le web
Données Web 2
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.
36. Besoin : contrôle d'accès
? 3
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 ?
37. Exemple : Gmap (GeoGratis)
4
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.
38. Plusieurs applications
indépendantes
5
Sans outil de contrôle d'accès, nous aurions à créer
plusieurs applications individuelles et appliquer de la
sécurité à chacune.
39. x applications = un casse-tête
6
Plusieurs applications à maintenir est contre-
productif.
40. Solution
GeoPrisma
Une application de cartographie
Web qui gère l'accès aux données
géospatiales et génère
dynamiquement l'interface usager.
7
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.
41. GeoPrisma 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 8
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.
42. Appuyé sur du logiciel ”Open
Source”
OpenLayers
MapFish
GeoExt
ExtJS
FeatureServer
MapServer
TileCache
etc.
9
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...
43. Sous le capot
WMS
TileCache
Scribble
FeatureServer
MapFishServer
WPS
10
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
44. Architecture standard
Navigateur
Application
OpenLayers MapFish GeoExt
Services
WMS WFS TileCache FeatureServer
Données
11
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.
45. Architecture avec GeoPrisma
Navigateur
Application
OpenLayers MapFish GeoExt
GeoPrisma
Services
WMS WFS TileCache FeatureServer
Données
12
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.
46. Accès contrôlé par un "proxy"
Requête GetMap
wms
tuiles
Réponse
etc.
feature
Requête GetMap Services de données 13
Usagers IU Proxy géospatiales
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.
47. Proxy
Composantes
Authentification
Contrôle d'accès
Filtrage de données
14
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.
48. Proxy
Intégration avec plusieurs
bibliothèques d'authentification
LDAP
JOSSO
BD
XML
Le vôtre
15
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 !
49. Proxy
Intégration avec plusieurs
services de données géospatiales
WMS
FeatureServer
TileCache
GYMO
etc...
16
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 !
50. Proxy
Lien vers des
applications externes
Votre application !
17
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.
51. Architecture avec GeoPrisma
Navigateur
GeoPrisma
Application
OpenLayers MapFish GeoExt
GeoPrisma
Services
WMS WFS TileCache FeatureServer
Données
18
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é.
52. Interface usager dynamique
Modèles ("templates") sur mesure
19
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.
53. Interface usager dynamique
Internationalisation (i18n)
Anglais
20
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.
54. Interface usager dynamique
Internationalisation (i18n)
Français
21
Vous pouvez constater que l'interface présente est
exactement la même que la précédente, mais en
français.
55. Interface usager dynamique
Internationalisation (i18n)
Autres alphabets
22
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.
56. Interface usager dynamique
Widgets générés automatiquement
en fonction des droits d'accès
23
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.
57. Interface usager dynamique
Widgets générés automatiquement
en fonction des droits d'accès
24
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.
58. Interface usager dynamique
Widgets
Appuyé sur OpenLayers, MapFish, GeoExt, ExtJS, etc.
Map Merge
MapPanel Split
Toolbar Scale
ZoomSlider MousePosition
Query MeasureTool
FeaturePanel LayerTree
Editing tools Recenter
InitialView ...
25
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.
59. Interface usager dynamique
Retour sur l'application GMap
Create
Read
Update
26
Delete
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.
60. 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.
61. 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.
62. 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.
63. 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.
64. 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'.
65. Contributeurs
Boréal Information Stratégiques Inc.
Mapgears Inc.
Nippour Geomatik
32
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.
66. Conclusion
Nous sommes ouverts !
33
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 ?