MapFaces

Framework, bibliothèque et composants pour applications géospatiales

Le projet Mapfaces est basé sur le framework de présentation JSF (Java Server Faces) et propose un environnement de développement Web-SIG. Il permet un couplage étroit entre le code fonctionnel en Java (performant et robuste) et les interfaces utilisateurs supportées par les navigateurs Internet.

Actuellement, Mapfaces propose des jeux de widgets exploitant la technologie AJAX, permettant la mise en oeuvre de clients capables d'exploiter les capacités spatio-temporelles du projet Constellation. Mapfaces reposant sur GeoAPI et Geotoolkit pour sa partie fonctionnelle, il respecte donc les normes et spécifications édictées par l'OGC et l'ISO, et permet donc une mise en oeuvre en environnement hétérogène proposant des services web normalisés tels que les proposent aussi Mapserver et Geoserver.

L'application utilise un conteneur Java Enterprise Edition (JEE) tels que Apache Tomcat ou Sun Glassfish. Le framework sépare de façon habile le code à traiter côté client de celui où la puissance d'un serveur est nécessaire.

La bibliothèque de composants fournit différents composants JSF et des widgets Javascript pour proposer des vues et des contrôles utiles à la manipulation de données spatiales.

MapFaces est un logiciel libre. L'utilisation, la modification et la redistribution sont accessibles à tous.

Framework

Le framework MapFaces s'appuie sur l'architecture du framework Java Server Faces pour construire des applications géospatiales. JSF associe des éléments d'interface utilisateur d'une page Web à des blocs de code côté serveur permettant ainsi de contrôler le rendu html client par des mécanismes sur le serveur. MapFaces utilise ce principe de séparation pour isoler les fonctionnalités qui peuvent décharger le navigateur client de certaines tâches non légitimes et qui nécessitent le plus souvent la mise en place de patrons de conception (plus connus sous l'expression anglophone design pattern) pour fonctionner efficacement.

Composants

Le projet a déjà permis de créer des composants JSF variés et des composants graphiques d'interface de type widgets Javascript qui peuvent être intégrés de différente manière dans n'importe quelle application Web :

➔ MapPane : fournit une vue cartographique interactive dans laquelle toutes les couches de données, raster et vecteur, sont correctement géoréférencées à partir d'un système de coordonnées réferentiel définit par l'utilisateur. Ce composant apporte aux utilisateurs un ensemble d'outils pour naviguer et interagir sur les éléments de la carte.

➔ LayerControl : permet aux utilisateurs de modifier les données affichées par le composant MapPane en sélectionnant les différentes couches pour ajuster les styles de représentation de chacune d'entres elles.

➔ ChartPane : fournit aux utilisateurs un outil puissant pour afficher des graphiques de données et parcourir de manière interactive les résultats obtenus tout en s'appuyant sur des modèles source de JFreechart.

➔ TreeTable : fournit un composant extensible pour afficher et éditer les données alpha-numériques associées aux objets géographiques via une interface graphique avancée.

➔ TimeLine : fournit un composant souple et paramétrable pour sélectionner des instants ou des périodes temporelles en s'appuyant sur l'ISO 19108 Geographic information -- Temporal schema.

➔ DatePicker : apporte un composant élaborée comprenant un calendrier et une zone de saisie manuelle pour faciliter les sélections temporelles reposant sur le standard international ISO8601.

➔ AutoCompleter : apporte à n'importe quel champ de saisie un mécanisme d'auto-complétion permettant d'offrir des choix aux utilisateurs dès le début de la saisie d'un mot ou d'une phrase avec la possiblité à l'utilisateur de connecter le composant à des web services thesaurus tels que Geonames.

MapFaces compte aujourd'hui une soixantaine de composants.

Librairie

La bibliothèque principale de MapFaces, son coeur, est construit avec les composants produits par le projet Geotootlkit.org. Cette bibliothèque apporte la gestion des métadonnées, des fonctionnalités sophistiquées de géoréférencement et de transformation de coordonnées, un efficace système de stockage et de manipulation pour les données GRID régulières comme les mosaïques d'images satellites. La bibliothèque permet également de manipuler les données attributaires et de générer des cartes complexes avec une symbologie élaborée.

MapFaces s'inscrit dans un contexte SOA. Il est résolument orienté services web dans la mesure où il propose des clients web prêts à l'emploi tout en offrant en plus la possibilité à l'utilisateur de créer son propre client.

MapFaces est résolument orienté services web en comportant plusieurs services interagissant avec les différents webservices standards tels que ceux définis par l'OGC : CSW, SOS, WMS, WCS et WFS. Les objets de modèle interne de la bibliothèque MapFaces peuvent être automatiquement convertis dans un format XML, et inversement, en utilisant les annotations JAXB du code source.

Exemples

Déploiement

Les applications utilisant MapFaces peuvent être deployées sur un nombre conséquent de configurations différentes. Un logiciel serveur construit en utilisant MapFaces peut fournir une unique application web ou bien en combiner plusieurs. Une application peut ne fournir qu'une fonctionnalité apportée localement mais peut aussi s'inscrire dans une architecture distribuée composée de clients web consommateurs de services web distants. La nature OpenSource du projet abaisse les contraintes financières qui habituellement limitent les possibilités et les ambitions en terme d'architecture de production.

Projet

Le projet MapFaces est développé dans une approche collaborative en utilisant des logiciels libres répondants aux standards. Le dépôt de code Subversion, les listes de diffusion du projet et le site web sont tous hébergés sur la forge Mercurial.

Pour plus d'informations, consultez le site Web consacré à MapFaces : http://mapfaces.codehaus.org/