\title{Mapbuilder}
\maketitle

\begin{description}
		\item  [P\'eriode couverte  part le rapport :] Jan-D\'ec 2007
		\item  [Nom du contact :] Cameron Shorter
		\item  [Traducteur :] Yves Jacolin
\end{description}

\section*{Introduction}

% This document summarises the state of the Mapbuilder project and it's relationship with projects around it.  It doubles as Mapbuilder's OSGeo annual report.\footnote{For the complete Mapbuilder report including metrics and graphs see: \url{http://docs.codehaus.org/display/MAP/Strategic+Direction+-+February+2008}}
Ce document r\'esume l'\'etat du projet Mapbuilder et la relation avec les projets autour de lui. Il r\'esume le rapport annuel de l'OSGeo Mapbuilder. \footnote{Pour le rapport complet sur Mapbuilder y compris des statistiques et des graphiques, consultez :
\url{http://docs.codehaus.org/display/MAP/Strategic+Direction+-+February+2008}}


% Community Mapbuilder is a browser based, standards compliant advanced web mapping client and framework.
Community Mapbuilder est un framework et un client internet de cartographie avanc\'e et compatible avec les standards.

% 2007 has been a solid year for Mapbuilder which has grown into a mature, stable project. Many new features have been added, there has been significant collaboration, sharing of code and developers with OpenLayers and our Project Steering Committee has steadily grown.
2007 a \'et\'e une bonne ann\'ee pour Mapbuilder qui est devenu un projet stable et mature. Beaucoup de nouvelles fonctionnalit\'es ont \'et\'e ajout\'ees. Il y a eu une collaboration importante, par le partage de code et de d\'eveloppeurs, avec OpenLayers et le Comit\'e directeur du projet n'a cess\'e de cro\^itre.

\section*{Mapbuilder en relation aux autres projets de l'OSGeo}

\subsection*{OpenLayers}

% \href{http://OpenLayers.org/}{OpenLayers} is a browser based mapping library while Mapbuilder is more of a \href{http://en.wikipedia.org/wiki/Framework}{framework}. OpenLayers provides one Javascript API which can access multiple data sources: Google Maps, Yahoo Maps, MSN Maps, WMS, WFS, Tiled Cache, KML, GML, etc. OpenLayers has a strong community behind it and its feature set continues to grow. If I were writing a SWAT analysis, OpenLayers could be listed under ``Threats''.
\href{http://OpenLayers.org/}{OpenLayers} est une biblioth\`eque bas\'ee sur un navigateur tandis que Mapbuilder est plus qu'\href{http://en.wikipedia.org/wiki/Framework}{framework}. OpenLayers fournit une API JavaScript qui peut acc\'eder \`a plusieurs sources de donn\'ees : Google Maps, Yahoo Maps, MSN Maps, WMS, WFS, TileCache, KML, GML, etc. OpenLayers a une forte communaut\'e derri\`ere lui et ses fonctionnalit\'es ne cessent de cro\^itre. Si je devais \'ecrire une analyse SWAT, OpenLayers pourrait \^etre r\'epertori\'e sous le terme de ``menaces''.

%There has been significant collaboration between OpenLayers and Mapbuilder. Developers from the two projects regularly and openly share ideas and code and make adjustments to ensure functionality is useful for both projects. Many developers contribute to both projects. Recent areas of collaboration include:
Il y a eu une collaboration importante entre OpenLayers et Mapbuilder. Les d\'eveloppeurs des deux projets ont librement et r\'eguli\`erement \'echang\'e des id\'ees et du code et ont r\'ealis\'e des ajustements pour s'assurer que les fonctionnalit\'es \'etaient utiles pour les deux projets. Beaucoup de d\'eveloppeurs contribuent aux deux projets. Les domaines r\'ecents de collaboration comprennent :
\begin{itemize}
	\item partage d'id\'ees de conception ;
	\item rendu vectoriel ;
	\item style ;
	\item projection (Proj4js) ;
	\item couches KML.
\end{itemize}

%  Mapbuilder differs from OpenLayers by:
Mapbuilder diff\`ere de OpenLayers par :
\begin{enumerate}
% 	\item Using a Model/View/Controller design pattern in the client, which means that multiple widgets (views) can present data from one model in numerous ways, or one widget can aggregate data from multiple models. There is no dependency between widgets, so a designer can add/remove widgets without effecting the overall Mapbuilder framework.
	\item Utilisation dans le client d'un motif de conception Mod\`ele / Vue / Contr\^oleur, ce qui signifie que plusieurs composants graphiques (vues) peuvent pr\'esenter de diff\'erentes mani\`eres des donn\'ees \`a partir d'un m\^eme mod\`ele ou une vue peut agr\'eger des donn\'ees \`a partir de plusieurs mod\`eles. Il n'y a pas de d\'ependance entre les composants graphiques, un concepteur peut ajouter / supprimer des composants graphiques sans affecter l'ensemble du framework Mapbuilder.
	\begin{enumerate}
		\item Mapbuilder sait prendre en charge plusieurs mod\`eles qui pilotent des composants graphiques interd\'ependants.
	\end{enumerate}
% 	\item Most state is stored as XML inside the model. Consequently:
	\item La plupart des \'etats sont stock\'ees au format XML \`a l'int\'erieur du mod\`ele. En cons\'equence :
	\begin{enumerate}
% 		\item Using XML makes transactions with XML based web services simpler. In particular, standards based OGC services are mostly defined as XML and there is no loss of information round tripping XML-$>$JS-$>$XML.
		\item Utiliser XML simplifie les transactions avec les services Web bas\'es sur XML. En particulier, les services standardis\'es de l'OGC sont g\'en\'eralement d\'efinis sous forme XML et il n'y a pas de perte d'informations par le processus XML-$>$JS-$>$XML.
% 		\item XSLT can be used to transform Models to views or transactions. XSLT is easier to work with than Javascript transformations from XML to Javascript then back to XML again.
		\item XSLT peut \^etre utilis\'e pour transformer les mod\`eles de vues ou de transactions. XSLT est plus facile \`a utiliser que les transformations Javascript consistant \`a passer de XML \`a Javascript pour ensuite retourner \`a nouveau vers XML.
	\end{enumerate}
% 	\item OWS Context: Mapbuilder stores state in OWS Context format. OWS Context is a draft OGC standard for describing layers and an AreaOfInterest from multiple data sources. It can be shared between supporting clients (like uDig).
	\item OWS Context : Mapbuilder stocke les \'etats au format OWS Context. OWS Context est un projet de standard de l'OGC pour d\'ecrire les couches et une zone d'int\'er\^et \`a partir de multiples sources de donn\'ees. Il peut \^etre partag\'e entre des clients le g\'erant (comme uDig).
% 	\item The configuration of Mapbuilder is stored in an XML file making it easy to develop a Mapbuilder application and migrate an application from one version to the other.
	\item La configuration de Mapbuilder est stock\'ee dans un fichier XML, ce qui facilite le d\'eveloppement d'une application Mapbuilder et sa migration d'une version \`a l'autre.
\end{enumerate}

% For less complicated web mapping applications, OpenLayers should be considered.
Pour des applications de cartographie web moins compliqu\'ees, OpenLayers doit \^etre envisag\'e.

\subsection*{Mapbender}

\href{http://www.mapbender.org/Main_Page}{Mapbender} est un autre client de webmapping de l'OSGeo.

\subsection*{Services web}

%  Mapbuilder acts as a client to WMS and WFS services like \href{http://geoserver.org/}{Geoserver} and \href{http://mapserver.gis.umn.edu/}{Mapserver}. In particular, Mapbuilder shares examples with OpenLayers which makes it easy to test both applications.
Mapbuilder agit comme un client de services WMS et WFS tels que \href{http://geoserver.org/}{GeoServer} et \href{http://mapserver.gis.umn.edu/}{Mapserver}. En particulier, Mapbuilder partage des exemples avec OpenLayers, ce qui facilite les tests des deux applications.

\subsection*{Clients lourds}

%  Mapping systems usually need a light, web based client, as well as functionally complete desktop applications like uDig, Jump, OpenJUMP, etc.
Les syst\`emes de cartographie en g\'en\'eral ont besoin d'un client l\'eger, bas\'e sur internet, ainsi que d'applications autonomes fonctionnellement compl\`etes comme uDig, Jump, OpenJUMP, etc.

\subsection*{R\'ealisations cl\'es}

 \textbf{Feb 2006 :} L'OSGeo a \'et\'e fond\'ee avec Mapbuilder comme un des projets fondateurs. La visibilit\'e suppl\'ementaire a permis de doubler le nombre de t\'el\'echargements de Mapbuilder du jour au lendemain.
% OSGeo was founded with Mapbuilder one of the founding projects. The extra visibility meant the number of Mapbuilder downloads doubled overnight.

 \textbf{Oct 2006 :} Mapbuilder a \'et\'e le deuxi\`eme projet de l'OSGeo \`a terminer l'incubation de l'OSGeo. Il s'agit d'un audit de la licence du code, ainsiqu'un affinage et une documentation de nos processus.
% Mapbuilder was the second OSGeo project to graduate OSGeo incubation. This involved a code license audit, and refining and documenting our processes:

 \textbf{Dec 2006 :} Le client visualisateur de GML a \'et\'e compl\'et\'e dans le cadre du banc d'essai OWS4 de l'OGC. Ce projet a pr\'esent\'e OpenLayers comme un moteur de rendu et a d\'evelopp\'e le rendu vectoriel en liaison avec OpenLayers.
  Nous avons commenc\'e une s\'erieuse collaboration entre OpenLayers et Mapbuilder puisque les projets ont d\'evelopp\'e en commun le rendu vectoriel (GML) compatible avec plusieurs navigateurs.
% GML Viewer client completed as part of OGC Testbed OWS4. This project introduced OpenLayers as a rendering engine and developed vector rendering in conjunction with OpenLayers.\\ 
%  started serious collaboration between OpenLayers and Mapbuilder as the projects shared the development of cross-browser vector (GML) rendering.

 \textbf{2007 :} Migration vers le moteur de rendu d'OpenLayers termin\'e. Gr\^ace \`a OpenLayers, Mapbuilder a acc\`es \`a une multitude de types de couches diff\'erentes : WMS, WFS, Google Maps, MSM Maps, Yahoo Maps, GML, KML, ...
% Migration to OpenLayers' rendering engine completed. Through OpenLayers, Mapbuilder has access to the multitude of different layers types: WMS, WFS, Google Maps, MSM Maps, Yahoo Maps, GML, KML, ...

 \textbf{2007 :} Le code de re-projection de Mapbuilder a \'et\'e r\'e\'ecrit et a \'et\'e migr\'e vers sa propre biblioth\`eque afin qu'il puisse :
% Mapbuilder's re-projection code was re-factored and migrated to its own library so that it can:
\begin{enumerate}
	\item \^etre utilis\'e par d'autres biblioth\`eque AJAX - le code est en cours d'incorporation dans OpenLayers.
% Be used by other AJAX libraries - the code is currently being incorporated into OpenLayers.
	\item utiliser la reprojection en tant que service.
% Use re-projection as a service.
\end{enumerate}

 \textbf{2007 :} Internationalisation. Mapbuilder utilise une table multilingue pour tous les messages pr\'esent\'es aux utilisateurs.
% Mapbuilder uses a language lookup table for all user messages.

 \textbf{2007 :} \href{http://docs.codehaus.org/display/MAP/Commercial+Support}{Support commercial} fournit officiellement.

\section*{\`A am\'eliorer}

%  Mapbuilder needs to define and sell its market position with respect to other webmapping clients, particularly OpenLayers. OpenLayers has attracted many of the potential Mapbuilder developers at the low end of the market. Our next focus needs to be on make Mapbuilder functionality accessible to OpenLayers developers, enabling Mapbuilder to be an extension to OpenLayers. This is to be achieved by moving Mapbuilder to use the same inheritance model as OpenLayers. (Some work has already been done in this area. For instance, projection code has been restructured to make it accessible to OpenLayers).
Mapbuilder a besoin de d\'efinir et de promouvoir sa position sur le march\'e \`a l'\'egard d'autres clients de webmapping, en particulier OpenLayers. OpenLayers a attir\'e un grand nombre de d\'eveloppeurs potentiels pour Mapbuilder. Notre prochaine focalisation est de faciliter l'acc\`es aux fonctionnalit\'es aux d\'eveloppeurs d'OpenLayers, permettant \`a Mapbuilder d'\^etre une extension d'OpenLayers. Cet objectif doit \^etre atteint en faisant \'evoluer Mapbuilder pour utiliser le m\^eme mod\`ele d'h\'eritage qu'OpenLayers. (Certains travaux ont d\'ej\`a \'et\'e r\'ealis\'es dans ce domaine. Par exemple, le code de projection a \'et\'e restructur\'e afin de le rendre accessible \`a OpenLayers).

%  While Mapbuilder's documentation is now passable and has most issues covered, there is still room for improvement.
Tandis que la documentation de Mapbuilder est maintenant diffusable et couvre la plupart des questions, il y a encore lieu \`a am\'elioration.

\section*{Appel \`a contribution}

%  Key areas where people can help Mapbuilder include:
Les principaux domaines o\`u les gens peuvent aider Mapbuilder comprennent :
\begin{enumerate}
%	_item Marketing, including demonstrating Mapbuilder functionality at conferences, providing workshops etc.
	\item Marketing, dont d\'emonstration des fonctionnalit\'es de Mapbuilder au cours de conf\'erences, fourniture de workshop, etc.
% 	\item Focusing documentation. Refining the documentation to be easier to use. Writing and refining tutorials.
	\item Focalisation sur la documentation. Restructurer la documentation afin de faciliter son utilisation. \'Ecriture et restructuration de cours.
% 	\item Integrate codebase with OpenLayers, to enable OpenLayers users to use Mapbuilder.
	\item Int\'egrer le code avec OpenLayers, pour permettre aux utilisateurs d'OpenLayers d'utiliser Mapbuilder.

\end{enumerate}

\section*{Apercu pour 2008}

%  Expect to see:
Attendez-vous \`a voir :
\begin{enumerate}
% 	\item proj4js spin off into a separate project
	\item Proj4js d\'eplac\'e dans un projet distinct.
% 	\item Reshaping of Mapbuilder as a framework which complements OpenLayers and makes it easy for OpenLayers users to access Mapbuilder functionality. This is a good opportunity for a Google Summer of Code student.
	\item Mapbuilder r\'eorganis\'e comme un framework qui compl\`ete OpenLayers et facilite, pour les utilisateurs d'OpenLayers, l'acc\`es aux fonctionnalit\'es de Mapbuilder. C'est une bonne opportunit\'e pour un \'etudiant de Google Summer of Code.
% 	\item Extension of Mapbuilder's testing process to include TestAnotherWay, as used by OpenLayers. The will complement Mapbuilder's existing testing which targeted at the integration level.\\ 
	\item Extension du processus de test de Mapbuilder pour inclure TestAnotherWay, utilis\'e par OpenLayers. Cela compl\`etera les tests existants de Mapbuilder qui sont cibl\'es sur l'int\'egration.

\end{enumerate}

\noindent [Pour le rapport complet sur Mapbuilder incluant des statistiques et des graphiques voyez 
%For the complete Mapbuilder report including metrics and graphs see
 \href{http://docs.codehaus.org/display/MAP/Strategic+Direction+-+February+2008}{ici}.]\footnote{Rapport complet sur Mapbuilder : \url{http://docs.codehaus.org/display/MAP/Strategic+Direction+-+February+2008}}
