ZOO Project: Evolutions et perspectives
Par René-Luc D'Hont le mercredi 24 février 2010, 16:04 - Système d'Information Géographique (SIG) - Lien permanent
En guise d'avant-goût à la prochaine présentation du projet ZOO au Géoséminaire 2010, je vous propose ce post qui liste les évolutions récentes et aborde la suite des aventures.
Le Projet ZOO a pour objectif de fournir un serveur de services WPS respectant la norme Web Processing Service de l'OGC. Les Web Processing Services permettent de réaliser des opérations sur des données en mode distribué comme par exemple la reprojection, la modification de format, différents traitements avancés, etc...
La force du ZOO est de pouvoir charger dynamiquement des modules externes codés dans différents langages C/C++, Python et PHP. C'est donc un serveur WPS extensible et personnalisable à souhaits.
Depuis la présentation du FOSS4G2009 de Sydney, GeoLabs et 3Liz se sont concentrées sur l'implémentation complète de la norme WPS et le support de différents langages, ainsi que le support multi-plateforme du ZOO (Linux, Mac et Windows). D'ici la release de ce projet sous licence open source, annoncée prochainement, un certain nombre de travaux restent à accomplir. En effet, nous sommes actuellement dans une phase de test et nous préparons le code et la documentation nécessaires à la prise en main du ZOO.
Une des récentes avancées du ZOO consiste à supporter le JavaScript comme langage de programmation de Process. Au même titre que le C/C++ ou Python, le JavaScript est un des langages qui vous permettra de créer vos propres traitements. Il est donc possible de compiler le ZOO avec le support du JavaScript. Celui-ci est assuré par l'interpréteur JavaScript SpiderMonkey, issu du navigateur de la fondation Mozilla, Firefox.
Toutefois, le support du JavaScript ne signifie pas que l'environnement d'exécution du JavaScript est le même que celui que nous retrouvons dans un navigateur. Le ZOO n'exploite que l'interpréteur JavaScript, donc un certain nombre d'éléments comme XMLHttpRequest, window, document ou encore le DOM ne sont pas présents.
Les possibilités vous semblent donc peut être limitées puisqu'il n'est pas
possible d'utiliser directement des bibliothèques de
fonctions développées pour les navigateurs. Qu'à cela ne tienne, nous
proposons tout de même de quoi faire du JavaScript un langage charnière
au sein de la création et au chainage de traitements.
La première chose que nous avons fait est d'ajouter à l'environnement
d'exécution JavaScript une méthode pour la réalisation de requêtes HTTP.
Il s'agit de la méthode ZOORequest et non d'un objet comme XMLHttpRequest.
Ensuite afin de faciliter les développements, nous proposons une API JavaScript (aka ZOO API).
Cette API JavaScript est a destination des développeurs du domaine de la
géomatique, et comme il existe déjà de très bonne bibliothèques de
fonctions JavaScript pour ce domaine (comme OpenLayers et Proj4JS), nous
nous en sommes inspiré.
La ZOO API se compose tout d'abord d'une adaptation de Proj4JS à l'environnement
d'exécution du JavaScript dans le ZOO. Il est donc possible d'utiliser
le JavaScript pour faire des transformations et exploiter dynamiquement
n'importe quelle projection définie sur spatialreference.org.
La seconde partie de l'API est une adaptation d'OpenLayers à l'environnement du ZOO.
Cette adaptation a consisté à supprimer toutes références aux
objets window et document, ne conserver que ce qui est utile côté serveur,
c'est à dire les classes Geometry et Format, et réécrire tout ce qui
exploite le DOM par des méthodes E4X (Ecma For XML).
Enfin cette API fourni des méthodes facilitant la réalisation de requêtes HTTP, mais aussi
de requêtes d'exécution de traitement WPS. Le JavaScript offre la
possibilité d'évaluer dynamiquement des scripts de traitement et de
réaliser des chaînages incluant des règles de décision.
Stay tuned!
Commentaires
Je suits cela de loin maintnenant, mais avec beaucoup d'intérêt ... Bravo les gars ! :-)