Aller au contenu | Aller au menu | Aller à la recherche

ZOO Project: Evolutions et perspectives

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...

ZOO Project

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

1. Le mercredi 24 février 2010, 17:14 par David J

Je suits cela de loin maintnenant, mais avec beaucoup d'intérêt ... Bravo les gars ! :-)

La discussion continue ailleurs

1. Le mercredi 24 février 2010, 16:53 par relucblog

relucblog's status on Wednesday, 24-Feb-10 15:53:49 UTC

ZOO Project: Evolutions et persepectives http://3liz.org/blog/rldhont/index.php/2010/02/24/334-zoo-project-evolutions-et-persepectives