TinyOWS : un serveur haute performance pour les services WMS et WFS-T de l'OGC
Présenté par Olivier Courtin (Camptocamp France SAS)
Présentation de TinyOWS
TinyOWS est un nouveau serveur de WebService de l’OGC pour postGIS. L’objectif de ce serveur est la vitesse et l’implémentation des dernières versions des standards. Les webservices présents sont le WFS-T et le WMS (en cours). L’approche choisie par les développeurs est de relier le serveur à PostGIS et le rendre facile à déployer. Il est distribué sous licence MIT.
Pourquoi un tel projet ? En effet de nombreux serveurs sont aujourd’hui développés à des stades plus ou moins avancés. C’est tout d’abord un projet en Recherche et Développement. La priorité est donc donnée aux développements les plus proche des standards de l’OGC, ce qui peut poser problème en fonction des besoins, puisque MapServer et GeoServer – pour ne donner que les principaux serveurs – sont en retard de quelques versions. Enfin la priorité est également donnée à la performance.
Les objectifs peuvent donc être résumés par :
- proche des standards ;
- performance ;
- facilité d’installation et de déploiement.
Développement
Au niveau du service WFS, TinyOWS gère le profile basic et transactionnel pour les versions WFS 1.0.0 et 1.1.1. Il gère les formats de sortie GML 2.2.2 et 3.1.1.
Pour le service Filter Encoding, les versions FE 1.0.0 et 1.1.0 sont eux aussi gérés.
Enfin, concernant le service WMS, les requêtes GetCapabilities et GetMap sont gérés pour les versions WMS 1.1.0 et 1.3.0. Le format de sortie est le format SVG.
Pourquoi utiliser le format SVG pour un serveur de carte ? Au niveau du standard, il n’y a aucune obligation de passer par une image raster. Il est donc tout à fait possible de générer une carte au format SVG qui, lui, gère le format raster dans sa définition.
Concernant le code, TinyOWS est un script CGI écrit en C. Il contient à l’heure actuelle 15 000 lignes de code et n’est dépendant que de trois bibliothèques : libxml2, l’API C de postgresql et PostGIS (version svn).
Le développement de TinyOWS a permis de proposer des corrections sur l’export GML 2.1.2 pour être conforme aux standards de l’OGC ainsi que l’ajout de la gestion de GML 3.1.1.
La configuration se fait avec un fichier XML dont on renseigne des méta-données : définition de layer, connection à la base de données, etc.
Conclusions
Les performances sont excellentes pour des jeux de données moyens, mais l’utilisation de certains opérateurs entraîne des baisses de performances.
Vous trouverez plus d’information sur le site du projet : http://www.tinyows.org
La Roadmap prévoit une version 1.0 comprenant le WFS lock, des formats alternatifs (GeoJSON, GeoRSS, KML), le développement du standards SLD avec conversion des styles en SVG, l’implémentation complet du WMS, un système de cache et l’utilisation de TinyOWS en mode FastCGI.
Liens :
Désolé, les commentaires pour cet articles sont clos pour le moment.