Purpose: Specify Mapbuilder long term Goals and outline roadmap for achieving them.
- Introduction
- Other Projects
- Key Accomplishments
- Areas for Improvement
- Opportunities for help
- Outlook for 2008
- Metrics
- Previous Strategic Direction Papers
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.
Commmunity Mapbuilder is a browser based, standards compliant advanced web mapping client and framework.
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.
Mapbuilder related to other OSGeo projects
OpenLayers
OpenLayers is a browser based mapping library while Mapbuilder is more of a 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".
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:
- Sharing design ideas
- Vector Rendering
- Styling
- Projection (Proj4js)
- KML layers
Mapbuilder differs from OpenLayers by:
- 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.
- Mapbuilder is good at handling multiple models which drive interdependent widgets.
- Most state is stored as XML inside the model. Consequently:
- 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.
- 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.
- OWS Context: Mapbuilder stores state in OWS Context format. OWS Context is a draft OGC standard for describing layers and an AreaOfInterst from multiple data sources. It can be shared between supporting clients (like UDig).
- 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.
For less complicated web mapping applications, OpenLayers should be considered.
Mapbender
Mapbender is another OSGeo webmapping client.
Web Services
Mapbuilder acts as a client to WMS and WFS services like Geoserver and Mapserver. In particular, Mapbuilder shares examples with OpenLayers which makes it easy to test both applications.
Heavy clients
Mapping systems usually need a light, web based client, as well as functionally complete desktop applications like UDig, Jump, OpenJUMP, etc.
Key Accomplishments
Feb 2006: OSGeo was founded with Mapbuilder one of the founding projects. The extra visibility meant the number of Mapbuilder downloads doubled overnight.
Oct 2006: Mapbuilder was the second OSGeo project to graduate OSGeo incubation. This involved a code license audit, and refining and documenting our processes:
Dec 2006: 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.
2007: Migration to OpenLayers' rendering engine completed. Through OpenLayers, Mapbuilder has access to the multitude of different layers types: WMS, WFS, GoogleMaps, MSM Maps, Yahoo Maps, GML, KML, ...
2007: Mapbuilder's re-projection code was re-factored and migrated to its own library so that it can:
- Be used by other AJAX libraries - the code is currently being incorporated into OpenLayers.
- Use re-projection as a service.
2007: Internationalization. Mapbuilder uses a language lookup table for all user messages.
2007: Commercial Support officially provided.
Areas for Improvement
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).
While Mapbuilder's documentation is now passable and has most issues covered, there is still room for improvement.
Opportunities for help
Key areas where people can help Mapbuilder include:
- Marketing, including demonstrating Mapbuilder functionality at conferences, providing workshops etc.
- Focusing documentation. Refining the documentation to be easier to use. Writing and refining tutorials.
- Integrate codebase with OpenLayers, to enable OpenLayers users to use Mapbuilder.
Outlook for 2008
Expect to see:
- proj4js spin off into a separate project
- 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.
- 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.
Metrics
Key Milestones
| Release | Date | Comment |
|---|---|---|
| 2001-09-29 | First email from Cameron Shorter announcing the project | |
| 2002 | Initial development as an applet started in geotools | |
| 2003 | Raj Singh builds prototype AJAX application | |
| 2003-12-22 | Coding starts on current codebase | |
| mapbuilder-lib-0.1-rc1 | 2004-05-17 | Browser client for WMS map layers built from a WMC |
| mapbuilder-lib-0.1-rc2 | 2004-05-17 | |
| mapbuilder-0.1rc3 | 2004-05-28 | |
| mapbuilder-lib-0.1 | 2004-06-04 | |
| mapbuilder-lib-0.2-alpha | 2005-03-18 | WFS-T client, WFS transactions, vector rendering, Time series WMS, JS compression |
| 2005-03-18 | Mapbuilder bundled with Geoserver as a WFS-T client | |
| mapbuilder-lib-0.3-alpha | 2005-03-30 | |
| mapbuilder-lib-0.3.1-alpha | 2005-06-12 | |
| mapbuilder-lib-0.4 | 2005-08-10 | Change from GPL to LGPL license |
| 2005-09-15 | Openlayers initial release | |
| mapbuilder-lib-1.0-rc1 | 2005-12-02 | |
| OSGeo Founded | 2006-02-04 | Downloads of Mapbuilder doubles |
| mapbuilder-lib-1.0-rc2 | 2006-02-23 | Migrate from Sourceforge hosting to Codehaus |
| mapbuilder-lib-1.0-release | 2006-04-25 | |
| mapbuilder-lib-1.0.1-release | 2006-07-18 | Internationalisation |
| 2006-09-11 | FOSS4G 2006 Webmapping Bird of Feather. Participants agreed to collaborate and use Openlayers as a rendering engine. This marks the beginning of the end for Mapbuilder | |
| 2006-10-26 | Graduate OSGeo incubation | |
| gml-viewer-1.0 | 2006-12-13 | |
| mapbuilder-lib-1.5-alpha1 | 2006-12-21 | use SVG/VML for vector rendering, support OWS Context, provide a SLD Editor, start moving to Openlayers for rendering, GeoRSS support |
| mapbuilder-lib-1.5-alpha2 | 2007-08-23 | Projection library refactored into its own project |
| mapbuilder-lib-1.5-rc1 | 2007-12-24 | |
| mapbuilder-lib-1.5-rc2 | 2008-04-27 | Add a CS/W catalog client |
| 2008-07-28 | Announce Mapbuilder retiremen |
Data Source: http://sourceforge.net/project/showfiles.php?group_id=35246&package_id=116388
Release Date Metrics
This data shows steady software development and releases over many years which is indicative of a stable mature project.
The project started with some quick release cycles, but leveled out to 3 to 4 months as the project matured.
| Release | Months since last release |
|---|---|
| 0.1rc3 | 0.5 |
| 0.1 | 0.5 |
| 0.2a | 3 |
| 0.3a | 0.5 |
| 0.3a | 2.5 |
| 0.4 | 2 |
| 1.0rc1 | 4 |
| 1.0rc2 | 3 |
| 1.0 | 2 |
| 1.0.1 | 3 |
| 1.5a1 | 5 |
| 1.5a2 | 4 |
| 1.5rc1 | 4 |
Data Source: http://sourceforge.net/project/showfiles.php?group_id=35246&package_id=116388
Download Metrics
This graph shows a steady growth in interest since the start of the project, with a doubling of downloads when the OSGeo Foundation was founded (with Mapbuilder a founding project) in March 2006.
Email Traffic Metrics
This shows the monthly number of emails for Developer and User email lists. The fact that User emails is less than Developer emails suggests that Mapbuilder is too difficult for users to download and get working and we should focus more on user needs.
A drop in developer activity over the last couple of months is probably due to:
- Some time being focused toward incorporating Mapbuilder in OSGeo.
- Some corresponding focus on documentation.
- Some key developers focusing on applying Mapbuilder to applications rather than extending Mapbuilder.
Date Devel User Total May-03 2 2 Jun-03 20 20 Jul-03 24 24 Aug-03 38 38 Sep-03 23 23 Oct-03 0 Nov-03 10 10 Dec-03 24 24 Jan-04 88 88 Feb-04 200 200 Mar-04 114 114 Apr-04 85 85 May-04 85 85 Jun-04 191 191 Jul-04 60 60 Aug-04 75 75 Sep-04 53 53 Oct-04 47 47 Nov-04 103 103 Dec-04 72 72 Jan-05 57 57 Feb-05 71 71 Mar-05 153 2 155 Apr-05 79 15 94 May-05 121 1 122 Jun-05 153 14 167 Jul-05 147 147 Aug-05 203 3 206 Sep-05 417 8 425 Oct-05 267 37 304 Nov-05 182 14 196 Dec-05 211 42 253 Jan-06 363 148 511 Feb-06 338 108 446 Mar-06 369 104 473 Apr-06 128 84 212 May-06 150 133 283 Jun-06 128 66 194 Jul-06 96 82 178 Aug-06 63 34 97 Sep-06 71 86 157 Oct-06 107 59 166 Nov-06 145 83 228 Dec-06 182 45 227 Jan-07 119 75 194 Feb-07 72 60 132 Mar-07 130 73 203 Apr-07 232 56 288 May-07 134 65 199 Jun-07 135 137 272 Jul-07 200 105 305 Aug-07 174 111 285 Sep-07 80 63 143 Oct-07 69 35 104 Nov-07 103 36 139 Dec-07 89 79 168 Data source: http://sourceforge.net/mailarchive/forum.php?forum_name=mapbuilder-devel and http://sourceforge.net/mailarchive/forum.php?forum_name=mapbuilder-users .
Subversion Commit Metrics
This graph tracks the number of lines of code in the Mapbuilder repository. The graph shows a that mapbuilder has been steadily growing since December 2003.
There is a spike in the code size between mid 2005 - 2007 when the code was duplicated into a test environment. Also at the end of 2007, deprecated widgets were cleaned up and archived.
Source data:
http://fisheye.codehaus.org/browse/mapbuilder/trunk/mapbuilder
Previous Strategic Direction Papers
- Strategic Direction - February 2008 (Doubling as Mapbuilder's OSGeo 2007 Annual Report).
- September 2006
- April 2006
- June 2005